我想进行监督式学习。在Scikit中运行SelectKBest后获取功能名称的最简单方法了解
直到现在我知道要做监督学习所有功能。
但是,我还想进行K最佳功能的实验。
我阅读了文档,发现Scikit学到了SelectKBest方法。
不幸的是,我不知道如何寻找那些最好的功能后,创建新的数据框:
假设我想用5个最佳特性进行实验:
from sklearn.feature_selection import SelectKBest, f_classif
select_k_best_classifier = SelectKBest(score_func=f_classif, k=5).fit_transform(features_dataframe, targeted_class)
现在,如果我想补充下一行:
dataframe = pd.DataFrame(select_k_best_classifier)
我将收到一个没有功能名称的新数据框(仅索引从0到4)。
我应该把它替换到:
dataframe = pd.DataFrame(fit_transofrmed_features, columns=features_names)
我的问题是如何创建features_names名单?
我知道,我应该使用: select_k_best_classifier.get_support()
它返回布尔值的数组。
数组中的真实值代表右列中的索引。
我应该如何使用这个布尔数组与所有的阵列功能的名字我可以通过该方法获得:
feature_names = list(features_dataframe.columns.values)