2017-12-17 5 views
0

Iは因子AとBはCSklearn単変量選択タイプエラー

df = df[['A','B','C']] 
print (df.head()) 
print (df.tail()) 


from sklearn.feature_selection import SelectKBest 
from sklearn.feature_selection import chi2 

names = ['A','B'] 
for n in range(0, len(names)): 
    test = SelectKBest(score_func=chi2, k=all) 
    fit = test.fit(X_train, y_train) 

    print(" %s : %.2f") % (names[n], fit.scores_[n]) 

データフレームが

  A   B    C 
1 -0.000078 0.115441    0 
2 -0.002767 0.089734    1 
3 -0.000848 0.069986    1 
4 0.0.079025    1 
5 0.004776 0.087153    0 
       A  B    C 
2831 -0.001210 0.109015    1 
2832 -0.003597 0.109474    1 
2833 0.000190 0.115139    1 
2834 0.003153 0.134228    1 
2835 0.005453 0.133333    0 

それ以下の通りであるを予測するために使用される以下のコードと型エラーを有してい次のエラーが発生します

TypeError: '<=' not supported between instances of 'int' and 'builtin_function_or_method' 

私はこのエラーを解決する方法を理解していません、誰でも助言してくださいできますか?

SelectKBest(score_func=chi2, k=all) 

all

答えて

0

は、Python組み込み関数です。何が必要

SelectKBest(score_func=chi2, k="all") 

文字列を持つことです。

また、X値はこの方法では負ではないことが要求されるため、df[['A', 'B']]X_trainとして使用する場合は問題になります。

最後に、このループにfitメソッドを配置することは意味がありません。おそらく、印刷のループが必要でした。

これは動作する例です。私はabsのX値を非負にしました。あなたの文脈でこれが意味をなさないかどうかわかりません。

test = SelectKBest(score_func=chi2, k="all") 
fit = test.fit(np.abs(df[['A', 'B']]), df['C']) 
for n in range(len(names)): 
    print("{} : {:.2g}".format(names[n], fit.scores_[n])) 
関連する問題