我想使用 Scikit learn 在我的数据框中找到每个功能的重要性。
我正在尝试在 Scikit learn 中使用它,而不是通过 WEKA 软件使用 Info Gain,该软件提供分数和旁边的功能名称。
我实现了下一个方法,但是我不知道如何替换分数中的排名数字。
例如:
我不想看到:
- 功能 6
- 特色 4
...
但是,我更喜欢:
0.4 特征 6
0.233 特征 4
...
这是我的方法:
def _rank_features(self, dataframe, targeted_class):
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression
feature_names = list(dataframe.columns.values)
# use linear regression as the model
lr = LinearRegression()
# rank all features, i.e continue the elimination until the last one
rfe = RFE(lr, n_features_to_select=1)
rfe.fit(dataframe, targeted_class)
print "Features sorted by their rank:"
print sorted(zip(map(lambda x: round(x, 4), rfe.ranking_), feature_names))
有人知道如何从排名转换为分数吗?