3장에서 사용한 iris 데이터셋에 기본 층화 추출법을 어떻게 적용할 수 있을까요? 교차 검증 분리를 실행하면 각 훈련 세트는 세 가지 타깃을 골고루 얻을 수 있습니다. 층화 추출을 원하지 않는다면 어떻게 해야 할까요? 조금 까다롭지만 가능합니다.
In [20]:
# 비층화 추출 CV를 실행합니다 iris = datasets.load_iris() model = neighbors.KNeighborsClassifier(10) non_strat_kf = skms.KFold(5) skms.cross_val_score(model, iris.data, iris.target, cv=non_strat_kf)
Out [20]:
array([1. , 1. , 0.8667, 0.9667, 0.7667])
마지막 폴드의 분포에 문제가 있다는 것을 어렵지 않게 추측할 수 있습니다. 아마 패턴을 학습하기에 충분한 정보를 얻지 못한 클래스가 있었던 것 같군요.