我有分类问题。我为数据构建了一组功能。我使用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_)