• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

강의 마지막 부분 모델 성능 관련 질문

23.03.15 15:30 작성 조회수 269

0

안녕하세요 선생님. 먼저 좋은 강의 감사드립니다.

제가 질문을 드리는 이유는 다름이 아니라 모델을 선택하는것과 관련되어 질문이 있어 드립니다.

강의 마지막 정도 부분에 데이터 셋마다 좋은 성능을 나타내는 모델들이 다를 수 있다고 하셨는데, 그러면 예를 들어 아래와 같이

lr_reg = LinearRegression()
ridge_reg = Ridge(alpha=10)
lasso_reg = Lasso(alpha=.01)
rf_reg = RandomForestRegressor(n_estimators=500)
gbm_reg = GradientBoostingRegressor(n_estimators=500)
xgb_reg = XGBRegressor(n_estimators=500)
lgbm_reg = LGBMRegressor(n_estimators=500)

이렇게 모든 모델 객체를 반복문을 통해서 다 성능을 한 뒤에, 가장 좋은 성능을 보인 모델의 하이퍼 파라미터를 조정해서 더 성능을 높이는 방향으로 가야하는 것인가요?

제가 아직 머신러닝의 전체적인 과정에 대한 지식이 부족해 이렇게 질문을 드립니다.

감사합니다:)

답변 1

답변을 작성해보세요.

0

안녕하십니까,

말씀하신 방법대로 하는것도 좋은 방법일 수 있습니다.

일반적으로는 모델 성능이 좋은 알고리즘이 널리 인식(?)되어 있어서,

회귀모델의 경우

선형인 Ridge 또는 Lasso

그리고 LightGBM 또는 XGboost 를 선택해서 최적화 하이퍼 파라미터를 튜닝합니다.

제 개인적으로는

먼저 Ridge 또는 Lasso 모델로 최적화 하이퍼 파라미터를 여러가지 테스트 하여 Base Model 성능을 갖춥니다.

Ridge/Lasso는 최적화 하이퍼 파라미터의 갯수가 많지 않고, 모델 학습의 시간이 오래 걸리지 않기 때문에 빠르게 최적화 모델 구성이 가능합니다.

그런 다음에 LightGBM을 이용해서 최적화를 수행합니다. XGBoost는 상대적으로 학습에 오랜 시간이 걸리기 때문에 LightGBM을 저는 선호합니다.

LightGBM은 하이퍼 파라미터가 많기 때문에 아무래도 최적화에 오랜 시간이 걸리지만, 높은 모델 성능을 가져올 확률이 높습니다. 이때 최적화 목표는 앞서 Ridge/Lasso 모델 보다는 더 좋은 성능이 나오는 것을 1차적인 목표, 이후에는 좀 더 시간을 투자해서 최적화를 수행합니다.

고민하시는 부분에 대해서 도움이 되었으면 합니다.

감사합니다.

최원빈님의 프로필

최원빈

질문자

2023.03.16

고민하던 부분에 답변이 되었습니다! 감사합니다:)

선생님 그렇다면 분류의 경우는 보통 어떤 클래스파이어를 먼저 쓰시고,
그 다음에 xgboost 혹은 lightgbm으로 넘어가시나요?

분류는 그냥 LightGBM 부터 시작합니다. ^^

가끔 RandomForest 부터 먼저 하는 경우가 있지만, 현재는 LightGBM이 분류에서는 가장 성능이 좋은 것 같습니다.

회귀에서는 가끔 선형 모델이 LightGBM 보다 좋을 때도 있는 것 같습니다.

최원빈님의 프로필

최원빈

질문자

2023.03.16

빠른 답변과 좋은 답변 감사합니다 선생님.

항상 감사드립니다.