使用 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 形式传递值(例如:字符串、整数等);浮点数只能用于回归。
我正在尝试使用 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 形式传递值(例如:字符串、整数等);浮点数只能用于回归。