Python3.5파이썬 sklearn 로지스틱 회귀 K-개최 교차 검증 : coef_에 대한 drameframe을 만드는 방법
나는 varibale, file
에 저장된 데이터 집합을 가지고 있고, 나는 10 홀드 교차 검증을 적용하려고 로지스틱 회귀. 내가 찾고있는 것은 clf.coef_
의 평균을 나열하는 방법입니다. 여기
print(file.head())
Result Interest Limit Service Convenience Trust Speed
0 0 1 1 1 1 1 1
1 0 1 1 1 1 1 1
2 0 1 1 1 1 1 1
3 0 4 4 3 4 2 3
4 1 4 4 4 4 4 4
내가
coef_
의 목록을 보여주기 위해 작성한 간단한 로지스틱 회귀 코드입니다.
[있음]
import pandas as pd
from pandas import DataFrame
import numpy as np
from sklearn import cross_validation
from sklearn.linear_model import LogisticRegression
X = file.drop(['Result'],1)
y = file['Result']
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X,y,test_size=0.25)
clf = LogisticRegression(penalty='l1')
clf.fit(X_train,y_train)
accuracy = clf.score(X_test,y_test)
print(accuracy)
coeff_df = pd.DataFrame([X.columns, clf.coef_[0]]).T
print(coeff_df)
[출력]
0.823061630219
0 1
0 Interest 0.163577
1 Limit -0.161104
2 Service 0.323073
3 Convenience 0.121573
4 Trust 0.370012
5 Speed 0.089934
6 Major 0.183002
7 Ads 0.0137151
그리고, I는 동일한 데이터 세트에 10 배 교차 검증을 적용하려고. 나는 아래 코드를 가지고 있지만 위의 분석을 위해했던 것처럼 coef_, coeff_df
목록의 데이터 프레임을 생성 할 수 없었습니다. 누군가가 해결책을 제공 할 수 있습니까?
[있음]
from sklearn.cross_validation import cross_val_score
scores = cross_val_score(clf, X, y, cv=10)
print (scores)
print (np.average(scores))
[출력]
[ 0.82178218 0.7970297 0.84158416 0.80693069 0.84158416 0.80693069
0.825 0.825 0.815 0.76 ]
0.814084158416
고마워요! 코드가 작동합니다! 한 가지 추가 질문 - 코드를 기반으로 점수 목록을 만드는 방법이 있습니까? 나는 'L1 penalty'를 설정하고 cross_val_score는 나를 허용하지 않을 것입니다. – Ryo
이 문제를 해결하기 위해 내 대답이 업데이트되었습니다. –