새소식

AI 개발

[캐글] 중고차 가격 예측 모델2_Gradient Boost, Random Forest

  • -

● Gradient Boost

 

 

Gradient Boosting Algorithm (GBM)은 회귀분석 또는 분류 분석을 수행할 수 있는 예측모형이며 예측모형의 앙상블 방법론 중 부스팅 계열에 속하는 알고리즘입니다. Gradient Boosting Algorithm은 Tabular format 데이터 (엑셀형태와 같이 X-Y Grid로 되어있는 데이터)에 대한 예측에서 엄청난 성능을 보여주고, 머신러닝 알고리즘 중에서도 가장 예측 성능이 높다고 알려진 알고리즘입니다. 그렇기 때문에 Gradient Boosting Algorithm을 구현한 패키지들이 많습니다. LightGBM, CatBoost, XGBoost 같은 파이썬 패키지들이 모두 Gradient Boosting Algorithm을 구현한 패키지들입니다. GBM은 계산량이 상당히 많이 필요한 알고리즘이기 때문에, 이를 하드웨어 효율적으로 구현하는 것이 필요한데, 위 패키지들은 모두 GBM을 효율적으로 구현하려고한 패키지들이라고 볼 수 있습니다. (출처)

 

● Random Forest

 

 

Random Forest 방식도 앙상블의 기법 중 하나입니다. 랜덤 포레스트의 포레스트는 숲이고 결정 트리는 나무입니다. 즉, 여러 결정트리들이 모여서 하나의 앙상블 모델을 이루는 것을 랜덤포레스트 모델이라고 합니다. 결정 트리에서 컬럼(Feature)가 많아지면 오버피팅 문제가 일어날 것입니다. 이를 해결하기 위해 Feature의 갯수를 추려 작은 결정트리를 여러개로 만들어 하나로 합치는 것을 랜덤포레스트라고 합니다.

 

 

앙상블 관련 이전글 참고 2019/12/31 - [분류 전체보기] - [케라스] 무작정 튜토리얼10 - 앙상블(ensemble)

 

 

 

 

데이터 구조파악, 전처리, 이상치 확인, Train set, Test set 생성 과정시간은 이전과 동일하므로 데이터셋을 이미 마련하였다고 가정하고 바로 모델링 사용하는 법을 보겠습니다. 

이전글 2020/01/16 - [SW개발/AI Keras] - [캐글] 중고차 가격 예측 모델1_선형회귀 Linear Regression()

 

 

 

 

| GradientBoostingRegresoor() 사용하기

 

 

XGBoost나 랜덤포레스트 모델등과 같이 파라미터가 많은 함수를 사용할때 각각의 파라미터 값에 어떤 값을 넣어야할지 의문이 들때가 있습니다... 일일히 테스트 해보는 것도 힘든 과정입니다... 그래서 각각의 파라미터로 모델을 여러개 만들어 최적의 파라미터를 찾아주며 교차검증까지 가능하게 해주는 함수가 GridSearchCV()입니다.

GridSearchCV() 알아보기

 

 

LinearRegression()을 사용하였을때의 오차인 2.96xx 보다 훨씬 줄어든 1.42xx값이 나왔습니다!

사백만원대였던 오차가 이백만원대로 줄었네요. 그리고 train의 acc값과 test acc 값이 비슷하게 잘 나왔습니다.

 

 

 

 

| RandomForestRegressor() 사용하기

 

RandomForestRegressor()의 파라미터는 따로 gridSearchCV를 통해 추출한 값을 적용해 주지는 않았습니다. 아마 이를 적용하면 mae가 더 낮아질 것으로 예상합니다.

 

확실히 컬럼수가 많은 모델은 일반 다중선형회귀보다는 앙상블 모델을 이용해야 잘 돌아가는 것을 캐글 문제를 통해 확인 할 수 있었습니다!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.