하이퍼파라미터의 이해

CHOI CHOI·2024년 7월 1일
0

파이썬 중급

목록 보기
30/30

하이퍼파라미터란

머신러닝 모델을 학습할 때 설정하는 외부 구성 값
이 값은 모델 학습 과정 자체에 의해 학습되지 않으며, 모델의 성능에 큰 영향을 미칠 수 있다.

하이퍼파라미터 튜닝

파라미터들의 최적의 조합을 찾는 과정을 말하며, 이를 통해 모델의 성능을 최대화 할 수 있다.

  • 경험과 직관에 의한 조정 : 경험이 풍부한 개발자나 전문가는 이전에 유사한 모델이나 데이터에 대해 실험한 경험을 바탕으로 하이퍼파라미터를 선택한다
  • 모델 및 데이터 이해에 기반한 조정 : 모델과 데이터에 대한 이해를 바탕으로 하이퍼파라미터를 조정. 예를 들어, 데이터의 특성이나 모델의 구조에 따라 적절한 학습률이나 규제 파라미터를 선택할 수 있다.
  • 시험 및 오류에 의한 조정 : 초기에 몇 가지 하이퍼파라미터 조합을 시도하고, 그 결과를 통해 하이퍼파라미터를 조정

회귀 모델 하이퍼파라미터 튜닝 연습

릿지 회귀 모델

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

profile
뭐가 됐든 데이터분석가

0개의 댓글