2017-02-16 3 views
1

sklearn python 모듈에서 kfolds 교차 유효성 검사를 사용하는 것을 이해하려고합니다. 예를 들어,sklearn cross_val_score 및 kfolds를 사용하여 모델 예측에 적합

  • 인스턴스화 모델 :

    나는 기본 흐름을 이해 model = LogisticRegression()
  • 예 : model.fit(xtrain, ytrain)
  • 예 : model.predict(ytest)
  • 예 : 크로스 밸런스 스코어를 사용하여 적합 모델 정확도를 테스트합니다.

나는 혼란스러워서 sklearn kfolds와 교차점 점수를 사용하고 있습니다. 내가 이해하는대로 cross_val_score 함수는 모델에 적합하고 각 폴드에 대한 정확도 점수를 제공하는 kfolds를 예측합니다.

이 같은 사용하여 코드 : I 교육 및 시험 데이터와 데이터 집합을 가지고, 나는 각각의 배에 대한 내 훈련 데이터에 알고리즘의 정확성을 결정하기 위해 kfolds와 cross_val_score 기능을 사용하는 경우

kf = KFold(n=data.shape[0], n_folds=5, shuffle=True, random_state=8) 
lr = linear_model.LogisticRegression() 
accuracies = cross_val_score(lr, X_train,y_train, scoring='accuracy', cv = kf) 

는 그래서, model입니다 이제 테스트 데이터에 적합하고 예측할 준비가 되었습니까? 그래서 위의 경우에 사용 lr.predict

어떤 도움을 주셔서 감사합니다.

+0

저는 그렇게 생각하지 않지만, 당신은'GridSearchCV'를 조사해야합니다. 기본적으로 여러분이 적합하고 예측할 수있는 모델과 비슷하기 때문에 거의 항상 cross_val_score 대신 이것을 사용합니다. 모델의 매개 변수를 튜닝하는 데 유용합니다. 매개 변수를 조정하지 않으려면'{}'을 전달하면됩니다. – justincai

답변

6

아니요 모델에 맞지 않습니다. source code for cross_val_score에서 상대 :

scores=parallel(delayed(_fit_and_score)(clone(estimator),X,y,scorer, 
             train,test,verbose,None,fit_params) 

당신이 볼 수 있듯이, 그것은에 배 훈련 데이터를 피팅하기 전에 cross_val_score 클론 추. cross_val_score은 데이터의 초과 변형 여부를 확인하기 위해 데이터의 여러 폴드에 대해 견적을 수행하는 방법을 알기 위해 분석 할 수있는 점수 배열을 출력합니다. 할 수 있습니다 know more about it here

당신 당신이 cross_val_score의 결과에 만족하면 당신이 테스트 데이터에 예측하는 데 사용할 수 있습니다 전에 추정에 전체 훈련 데이터에 맞게해야합니다.

+0

cross_val_score를 사용할 때 교육 및 테스트 시간을 얻을 수있는 방법이 있습니까? 소스 코드에서 볼 수 있듯이 _fit_and_score는 fit_time 및 score_time을 반환하지만 cross_val_score를 사용할 때이를 검색하는 방법이 있는지 확실하지 않습니다. –