2017-12-17 2 views
0

내가 계수 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]) 

dataframe는 같은 당

  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

는 파이썬 내장 함수입니다. 당신은 무엇이 필요

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

문자열하는 것입니다.

또한 X 값은이 방법에 대해 음수가 아니어야하므로 df[['A', 'B']]X_train으로 사용하는 경우에도 문제가 될 수 있습니다.

마지막으로, 해당 루프에 맞추기 방법을 적용하는 것은 의미가 없습니다. 아마도 루프를 인쇄하기를 원했을 것입니다.

다음은 작동하는 예입니다. X 값 중 abs을 사용하여 음수가 아닌 값으로 만들었습니다. 당신의 맥락에서 이것이 의미가 있든 없든 나는 말할 수 없습니다.

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])) 
관련 문제