K-겹 교차 검증
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 37번째.
이 장에서는 점수를 신뢰할 수 있게 만드는 방법을 배웁니다. 이 장을 마칠 때쯤이면 다음과 같은 차트를 활용해 모델을 조정하게 됩니다:
하나의 테스트 분할은 운이 좋을 수 있습니다. K-겹 교차 검증은 행을 폴드로 나눕니다. 여기서는 5개로 나누고, 각 폴드를 차례로 테스트하면서 나머지 폴드로 학습합니다:
한 번 호출하면 다섯 번 모두 실행됩니다. 여기서는 붓꽃 데이터에 트리를 사용합니다:
from sklearn.model_selection import cross_val_score
tree = DecisionTreeClassifier(random_state=0)
scores = cross_val_score(tree, X, y, cv=5)
print(np.round(scores, 3))
print(f"{scores.mean():.3f} {scores.std():.3f}")다음이 출력됩니다:
[0.967 0.967 0.9 0.967 1. ]
0.960 0.033평균을 점수로, 표준 편차를 점수가 얼마나 흔들리는지를 나타내는 값으로 보고하세요.
챌린지
중급콤부차 양조장은 5개의 실험실 측정값을 바탕으로 상한 배치를 예측합니다. 모델은 얼마나 안정적일까요? 프로그램은 폴드 수를 입력받고, 초기 코드에서 데이터와 모델을 생성합니다.
- 해당 폴드 수로 모델을 교차 검증하세요.
- 각 폴드의 정확도를 출력한 다음, 평균과 표준 편차를 모두 소수점 셋째 자리까지 출력하세요.
- 가장 성능이 낮은 폴드의 번호를 1부터 세어 출력하세요.
다른 배치와 4의 경우:
Fold 1: 0.917
Fold 2: 0.933
Fold 3: 0.883
Fold 4: 0.917
Mean 0.912, std 0.018
Weakest fold: 3직접 해보기
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
n_folds = int(input())
# 아래 줄은 변경하지 마세요: 콤부차 배치 240개, 각 배치의 실험실 측정값 5개; 레이블 1은 상했음을 의미합니다
X, y = make_classification(n_samples=240, n_features=5, n_informative=3, n_redundant=0,
flip_y=0.08, class_sep=0.9, random_state=2)
model = LogisticRegression(max_iter=1000)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러