使用 SelectKBest 在 Python 中的特征重要性

Feature importance in Python using SelectKBest

我正在尝试使用 X_train 和 y_train 为我的数据框 df 获取前 5 个特征。

bestfeatures = SelectKBest(score_func=chi2, k=5) #k=5 means select top 5 features
fit = bestfeatures.fit(X_train,y_train)
dfscores = pd.DataFrame(fit.scores_)
dfcolumns = pd.DataFrame(X_train.columns)
#concat two dataframes for better visualization 
featureScores = pd.concat([dfcolumns,dfscores],axis=1)
featureScores.columns = ['Features','Score']  #naming the dataframe columns
print(featureScores.nlargest(5,'Score'))  #print 5best features

错误

ValueError                                Traceback (most recent call last)
<ipython-input-54-47286ab0e6e9> in <module>
      6 
      7 bestfeatures = SelectKBest(score_func=chi2, k=5)
----> 8 fit = bestfeatures.fit(X_train,y_train)
   
    ValueError: Unknown label type: (array([23.5, 35, 38.......
   .......]),)      

P.S。我的 Y_train 是 23.5 , 35, 38 等等...如 valueerror

如何解决?

你的得分函数是 chi2 所以你在做分类,而不是回归。因此,您必须以有限的 space 形式传递值(例如:字符串、整数等);浮点数只能用于回归。