십자가 유효성 검사를 사용하여 혼란스러워하는 scikitlearn을 사용하여 회귀 모델을 평가하려면 cross_val_score
과 cross_val_predict
두 가지 기능 중 어느 것을 사용해야합니까? 하나의 옵션은 다음과 같습니다cross_val_score와 cross_val_predict의 차이
cvs = DecisionTreeRegressor(max_depth = depth)
scores = cross_val_score(cvs, predictors, target, cv=cvfolds, scoring='r2')
print("R2-Score: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
다른 하나는, 표준 r2_score
과 CV-예측을 사용하는 : 나는 두 가지 방법이 유효하다고 가정 및 비슷한 결과를 줄 것이다
cvp = DecisionTreeRegressor(max_depth = depth)
predictions = cross_val_predict(cvp, predictors, target, cv=cvfolds)
print ("CV R^2-Score: {}".format(r2_score(df[target], predictions_cv)))
. 그러나 이것은 작은 k- 주름이있는 경우에만 해당됩니다. r^2는 10 배 - cv에 대해 대략 동일하지만 "cross_vall_score"를 사용하는 첫 번째 버전의 경우 더 높은 k 값에 대해 점점 더 낮아집니다. 두 번째 버전은 주름 수의 변화에 거의 영향을받지 않습니다.
이 동작이 예상 되나 SKLearn의 이력서에 대한 이해가 부족합니까?
대단히 감사합니다. 하지만 아직 어떤 기능을 사용해야하는지 궁금합니다. 첫 번째는 자습서에서 가장 자주 찾는 예제로 보이지만 두 번째는 더 안정적이며 따라서 유용한 접근 방법 인 것으로 보입니다. 또는 cross_val_predict를 사용하여 평가 한 결과가 지나치게 적합하지 않습니까? – Bobipuegi
@Bobipuegi 귀하의 질문에 대한 답변을 편집했습니다. –
다시 한번 감사드립니다! – Bobipuegi