【问题标题】:How to define variable's names in feature selection如何在特征选择中定义变量名称
【发布时间】:2017-08-06 04:57:17
【问题描述】:

我尝试在特征选择中定义变量的名称。我有一个这样的数据集

import pandas as pd
df = pd.DataFrame ({'a' : [1, 0,1, 0,1, 0,1, 0,1, 0 ],
             'b' : ['foo', 'bar','foo', 'bar','foo', 'bar','foo', 'bar','foo', 'bar' ] ,
             'c' : ['foo', 'bar','bar','foo','foo', 'bar','bar','foo','foo', 'bar' ],
                'd' :['d','d','b','a','d','d','a','b','d','a']    })

所以

X, y = df.ix[:, 1:], df.ix[:,[0]]
X_dummy = pd.get_dummies(X)

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
X_new = SelectKBest(chi2, k=4).fit_transform(X_dummy, y)
X_new

array([[0, 1, 0, 1],
       [1, 0, 0, 1],
       [0, 1, 0, 0],
       [1, 0, 1, 0],
       [0, 1, 0, 1],
       [1, 0, 0, 1],
       [0, 1, 1, 0],
       [1, 0, 0, 0],
       [0, 1, 0, 1],
       [1, 0, 1, 0]], dtype=uint8)

我得到数组,但我想知道模型中必须包含哪些变量(bcd 或它们的虚拟选项)。如何找出这个?谢谢!

【问题讨论】:

    标签: python pandas scikit-learn feature-selection


    【解决方案1】:

    您可以使用拟合选择器的scores_ 属性

    >> kbest = SelectKBest(chi2, k=4)
    >> X_new = kbest.fit_transform(X_dummy, y)
    >> X_dummy.columns[kbest.scores_.argsort()[::-1][:4]]
    Index(['b_foo', 'b_bar', 'd_a', 'd_d'], dtype='object')
    

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 2020-07-27
      • 2012-12-17
      • 2022-07-06
      • 2017-02-10
      • 2020-08-13
      • 2021-01-28
      • 2017-06-03
      • 2014-02-27
      相关资源
      最近更新 更多