2014-07-08 3 views

답변

2

이 기능은 그것에 대해 어떤 상태를 노출하지 않는 한, cross_val_score에 사용 된 내부 상호 검증 분할을 추출 할 수있는 방법이 없습니다. documentation에서 언급했듯이 k=3으로 k 배 또는 층화 k 배 중 하나를 사용합니다. 당신이 사용하는 교차 검증 분할을 추적해야하는 경우

그러나, 당신은 명시 적으로 만들어 cross_val_scorecv 인수를 전달 할 수 cross validation iterators 자신의 : 당신이 지정한 분할을 사용하는

from sklearn.cross_validation import KFold, cross_val_score 
from sklearn.datasets import load_iris 
from sklearn.svm import SVC 

iris = load_iris() 
kf = KFold(len(iris.target), 5, random_state=0) 
clf = SVC(kernel='linear', C=1) 
scores = cross_val_score(clf, iris.data, iris.target, cv=kf) 

그래서 자체적으로 롤링하는 대신 정확하게

+0

뭔가를 만들고 싶습니다. 파티션을 나누는 데 임의적 인 문제가 있습니까? 동일한 kfold 설정 및 대상 레이블에 대해 동일한 파티션이 생성됩니까? – eman

+1

인수''random_state'에 의해 제어되는 스플릿에는 무작위성이 있습니다. 이것을 지정하지 않으면,''numpy''의 내부 무작위 상태가 사용되며, 다중 실행에 대한 결과는 다를 수 있습니다. ''KFold''의 경우, 무작위성은''shuffle = True''에만 적용됩니다. –

+0

StratifiedKFold에는 "shuffle"또는 "random_state"라는 매개 변수가 없으므로 어떻게됩니까? – eman

2

cross_val_score위한 디폴트 공통 검사기 분류 K = 3을 가진 StratifiedKFold이다. StratifiedKFold을 사용하고 예제에 표시된대로 분할을 반복하여 교차 유효성 검사 반복자를 얻을 수 있습니다.

+0

그래, 내가 그렇게 할 수 있지만, 많은 노력을 저장 cross_val_score 알고, 그래서 그것을 사용하는 동안 주름을 추출하는 방법을 찾고 있어요. – eman

+0

하나도 존재하지 않습니다. –