시작하기무료로 시작하기

eta 튜닝

이제 다른 XGBoost 하이퍼파라미터를 본격적으로 튜닝하고, 모델 성능에 어떤 영향이 있는지 확인해 볼 차례예요! 먼저 학습률이라 불리는 "eta"부터 튜닝해 보겠습니다.

XGBoost의 학습률은 01 사이의 값을 가지며, "eta" 값이 클수록 특성 가중치에 더 강한 패널티가 적용되어 정규화가 더 강해집니다.

이 연습은 강의의 일부입니다

XGBoost로 익히는 Extreme Gradient Boosting

강의 보기

연습 안내

  • 다음 "eta" 값들을 저장할 eta_vals 리스트를 만드세요: 0.001, 0.01, 0.1.
  • for 반복문으로 eta_vals 리스트를 순회하세요.
  • 각 반복에서 params"eta" 키를 curr_val과 같게 설정하세요. 그런 다음 조기 종료(5 라운드)를 사용하는 3-겹 교차 검증, 부스팅 라운드 10, 평가 지표 "rmse", seed123으로 설정해 실행하세요. 출력은 DataFrame이 되도록 하세요.
  • 마지막 라운드의 RMSE를 best_rmse 리스트에 추가하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary for each tree (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}

# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []

# Systematically vary the eta 
for curr_val in ____:

    params["___"] = curr_val
    
    # Perform cross-validation: cv_results
    cv_results = ____
    
    
    
    # Append the final round rmse to best_rmse
    ____.____(____["____"].tail().values[-1])

# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))
코드 편집 및 실행