모델 선택
정규화와 교차 검증은 모델 선택에서 매우 강력한 도구예요. 정규화는 과적합을 막는 데 도움이 되고, 교차 검증은 모델이 올바르게 평가되도록 보장해요. 이 연습에서는 정규화와 교차 검증을 함께 사용해 모델 간에 유의미한 차이가 있는지 확인해 보겠습니다. 여기서는 정밀도만 계산하지만, 동일한 방식으로 재현율 및 다른 평가 지표에도 쉽게 적용할 수 있어요.
X_train, y_train, X_test, y_test가 작업 공간에 준비되어 있어요. pandas는 pd로, numpy는 np로, 그리고 sklearn도 사용할 수 있어요. sklearn.metrics의 precision_score()와 recall_score(), 그리고 sklearn.model_selection의 KFold()와 cross_val_score()를 모두 사용할 수 있어요.
이 연습은 강의의 일부입니다
Python으로 Machine Learning을 활용한 CTR 예측
연습 안내
n_splits를 사용해 4개 분할의 K-겹 교차 검증을 설정하고k-fold에 할당하세요.- 결정 트리 분류기를 만드세요.
k_fold를 사용해 교차 검증을 실행하고, 지정된max_depth값에 대해 결정 트리 모델의 정밀도와 재현율을 평가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Iterate over different levels of max depth and set up k-fold
for max_depth_val in [3, 5, 10]:
k_fold = ____(____ = 4, random_state = 0, shuffle = True)
clf = ____(____ = max_depth_val)
print("Evaluating Decision Tree for max_depth = %s" %(max_depth_val))
y_pred = clf.fit(____, ____).predict(____)
# Calculate precision for cross validation and test
cv_precision = ____(
____, X_train, y_train, cv = k_fold, scoring = 'precision_weighted')
precision = ____(y_test, y_pred, average = 'weighted')
print("Cross validation Precision: %s" %(cv_precision))
print("Test Precision: %s" %(precision))