我有分类问题。我为数据构建了一组功能。我使用SVM进行分类。我要评估功能。

ch2=SelectKBest(score_func=chi2, k='all')
top_ranked_features = sorted(enumerate(ch2.scores_),key=lambda x:x[1], reverse=True)[:1000]
top_ranked_features_indices = map(list,zip(*top_ranked_features))[0]
for feature_pvalue in zip(np.asarray(featurenames)[top_ranked_features_indices],ch2.pvalues_[top_ranked_features_indices]):
       print feature_pvalue


但是当我运行它时,出现以下错误


  AttributeError:“ SelectKBest”对象没有属性“ scores_”


注意:我还没有使用矢量化器。我在列表名称featurenames中具有要素名称,我想打印所有或前K个要素的名称和卡方值

最佳答案

您仅声明了要使用的评分功能以及要选择的功能数量。但是,要素选择需要数据才能使用一些统计测试找到最佳的要素,然后您就可以访问分数。这是一个示例,其中X包含功能,而Y包含目标值。

ch2= SelectKBest(score_func=chi2, k='all').fit_transform(X, Y)
print(ch2.scores_)

08-20 00:15