머신러닝 모델을 학습할 때 설정하는 외부 구성 값
이 값은 모델 학습 과정 자체에 의해 학습되지 않으며, 모델의 성능에 큰 영향을 미칠 수 있다.
파라미터들의 최적의 조합을 찾는 과정을 말하며, 이를 통해 모델의 성능을 최대화 할 수 있다.
릿지 회귀 모델
from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score, KFold
# K-Fold 교차 검증 설정
kf = KFold(n_splits=5, shuffle=True, random_state=40)
# alpha 값의 후보 리스트
alpha_list = [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08]
scores_list = []
# 각 alpha에 대한 교차 검증 수행
for alpha in alpha_list:
ridge_model = Ridge(alpha=alpha) # 모델을 학습
scores = cross_val_score(ridge_model, X_train, y_train, scoring='neg_mean_squared_error', cv=kf) # 교차검증
scores_list.append(np.mean(scores)) # 점수 저장
# 최적 alpha 값 및 성능 확인
optimal_alpha = max(scores_list)# 최고득점에서의 alpha값
best_score = alpha_list[np.argmax(scores_list)]# 최고득점
print(f"Optimal alpha: {optimal_alpha}")
print(f"Best Score: {best_score}")
# 결과 시각화
plt.figure(figsize=(10,6))
plt.plot(alpha_list, scores_list, marker='o', linestyle='--')
plt.xlabel('Alpha')
plt.ylabel('Cross-Validation Score (Neg Mean Squared Error)')
plt.title('Alpha vs. CV Score')
plt.xscale('log')
plt.show()
Optimal alpha: -3031.3111796421226
Best Score: 0.05