소개
머신 러닝에서 모든 추정량은 장단점을 가지고 있습니다. 추정량의 일반화 오차는 편향, 분산 및 노이즈로 분해될 수 있습니다. 추정량의 편향은 서로 다른 학습 데이터 세트에 대한 평균 오차이고, 분산은 서로 다른 학습 데이터 세트에 대한 민감도를 나타냅니다. 노이즈는 데이터의 특성입니다.
이 실습에서는 검증 곡선을 사용하여 머신 러닝 모델의 성능을 평가하는 방법을 살펴볼 것입니다. 검증 곡선은 단일 하이퍼파라미터가 학습 점수와 검증 점수에 미치는 영향을 플롯하여 모델이 특정 하이퍼파라미터 값에 대해 과적합되거나 과소적합되는지 확인하는 데 도움이 됩니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근합니다.
때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 검증을 자동화할 수 없습니다.
학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.
필요한 라이브러리 가져오기 및 데이터 로드
필요한 라이브러리를 가져오고 데이터 세트를 로드하는 것으로 시작하겠습니다. 이 예제에서는 Iris 데이터 세트를 사용합니다.
import numpy as np
from sklearn.model_selection import validation_curve
from sklearn.datasets import load_iris
from sklearn.linear_model import Ridge
np.random.seed(0)
X, y = load_iris(return_X_y=True)
데이터 섞기
분석의 무작위성을 보장하기 위해 데이터 세트의 샘플 순서를 섞어 보겠습니다.
indices = np.arange(y.shape[0])
np.random.shuffle(indices)
X, y = X[indices], y[indices]
검증 곡선 플롯
이제 validation_curve 함수를 사용하여 검증 곡선을 플롯해 보겠습니다. Ridge 추정기를 사용하고 alpha 하이퍼파라미터를 다양한 값 범위에서 변경할 것입니다.
param_range = np.logspace(-7, 3, 3)
train_scores, valid_scores = validation_curve(
Ridge(), X, y, param_name="alpha", param_range=param_range, cv=5)
요약
이 실험에서는 검증 곡선의 개념과 기계 학습 모델을 평가하는 데 어떻게 사용될 수 있는지 살펴보았습니다. 다양한 하이퍼파라미터 값에 대한 학습 점수와 검증 점수를 플롯함으로써 모델이 과적합인지 또는 과소적합인지 판단할 수 있습니다. 이 정보는 모델에 대한 최적의 하이퍼파라미터를 선택하고 성능을 개선하는 데 도움이 됩니다.