最佳答案
我想做监督式学习。
直到现在我才知道要对所有的特征做监督式学习。
然而,我也想进行实验与 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 _ name 列表? ?
我知道我应该用:
select_k_best_classifier.get_support()
返回布尔值数组。
数组中的真值表示右列中的索引。
我应该如何使用这个布尔数组和我可以通过这个方法得到的所有特性名称的数组:
feature_names = list(features_dataframe.columns.values)