작성
·
954
0
선생님 안녕하세요. 즐겁게 머신러닝에 대해서 공부를 하고 있습니다.
다양한 데이터를 가지고 적용하고 있는데요, 모델을 선택하는 과정에서 그 이유를 제대로 설명을 못하는 어려움을 개인적으로 느끼고 있습니다.
예를 들어, 축구 경기 결과의 데이터를 가지고 승패예측을 하는 예측모델을 만든다고 가정할 때, xgboost, logistic회귀를 사용하여 모델을 만들었다고 가정했을 때, 왜 그 모델들을 사용했냐는 질문에 어떻게 답을 해야될지 모르겠습니다.
정리하면, "분류를 하는 문제에서는 이런이런 상황에서는 ~~~ 모델을 사용해야지 적합하다"라는 내용을 공부하기 위해서는 어떠한 레퍼런스 또는 자료를 공부해야 하나요?
답변 1
3
안녕하십니까,
모델을 선택한다는 것은 xgboost, logistic regression과 같은 알고리즘만을 선택한다는 것은 아닙니다. 모델은 Feature engineering과 같은 다양한 데이터 처리방식과 알고리즘이 결합된 것입니다.
모델을 만들때 어떤 알고리즘이 어떤 상황에 적용되느냐의 기준이 없습니다. 다양한 알고리즘을 적용해서 그 중에 좋은 알고리즘을 선택하면 됩니다. 다만 알고리즘 성능은 조금 떨어지더라도 학습 시간이 대폭 줄어든다거나, 데이터 전처리에 많은 시간과 노력이 필요하지 않은 알고리즘을 선택하는 취사 선택 정도의 기준이 있습니다.
일반적으로 어떤 상황에서 어떤 알고리즘이 좋더라는 것은 정해진 바는 없지만, 워낙 분류에서는 Ensemble 기반의 알고리즘이 대세입니다. 하지만 Sparse한 Text 분류에서는 Xgboost 보다 Logistic Regression이 더 나을때도 있습니다. 확실한 것은 알고리즘을 적용해 봐야 합니다.
회귀에서는 회귀 트리보다 Ridge, Lasso등의 선형 회귀도 더 좋은 경우도 있지만, 피처들이 많다거나 할 경우 Xgboost나 lightgbm 기반의 회귀 트리가 더 좋은 경우도 있습니다.
결론적으로 어떤 알고리즘이 어떤 상황에서 더 좋다는 정해진 게 없습니다. 적용해 봐야 아는 것입니다. 다만 어느 정도 특정 알고리즘이 뛰어난 성능을 발휘하는 경우를 경험적으로 인지하고 이를 먼저 적용해 보면서 최적 모델을 찾습니다. 예를 들어 분류에서 Xgboost나 LightGBM을 먼저 적용해서 어느 정도 성능이 나오는 지 판단한 뒤에 혹 다른 알고리즘도 더 좋은 성능이 되는지 확인하는 것입니다. 흔하지는 않지만 분류에서 이 2개 알고리즘 보다 더 좋게 나오는 경우도 있습니다. 또한 여러개의 모델을 다시 Ensemble 한다거나 Stacking 하는 다양한 방법을 시도해서 좋으면 선택하는 것입니다(물론 무조건 좋다고 선택하는 것이 아니라 앞에서 말씀드린 학습의 시간이나 데이터 전처리의 어려움도 감안되어야 합니다)
감사합니다.