BookmarkSubscribeRSS Feed

[EM] 그래디언트 부스팅(Gradient Boosting) 실습

Started ‎06-10-2020 by
Modified ‎06-10-2020 by
Views 191

   

저번에 다뤘던 그래디언트 부스팅(Gradient Boosting)의 실습을 진행하겠습니다.

 

 

Outline

EM에서 제공하는 그레이디언트 부스팅(Gradient Boosting)노드를 사용할 것 이며 과적합을 방지하기 위한 옵션들에 대해 살펴보고 옵션들을 변경하여 성능에 어떤 영향을 미치는지 살펴보겠습니다.

Vt0wif2E1IGIsrD41kZuIsSaiIqxMIsbC6lMTuYkYayIqwsokYiysPjWRm4ixJqIirEwixsLqUxO5iRhrIirCyiRiLKw_NZGbiLE.png

B7jsR7mBr6doZtA1oDShp4P8qEbt2nqxNfQAAAABJRU5ErkJggg__.png

반복수

일반적으로 반복수 N을 높이면 성능은 높아지지만 과적합이 일어나고 연산량이 늘어나는 단점이 있습니다따라서 적절한 N을 설정하는 것이 중요합니다.

 

축소

그래디언트 부스팅의 성능은 축소(shrinkage) 따라도 달라지는데  과정은 아래와 같이 학습속도의 개념을 가지는 매개변수v 이용하는 것입니다.

ayCFjGQHSQNJAw00kEJGA2Ul0qSBpIEUMpINJA0kDTTQQAoZDZSVSJMGkgZSyEg2kDSQNNBAAylkNFBWIk0aSBr4H1kAhtstOEnL.png

일반적으로 학습속도가 작은 (v<1) 그래디언 부스팅이 shrinkage 없는 (v=1)  보다 모델의 일반화 능력이 좋아지는 것으로 알려져 있습니다그러나 학습속도 v 작을수록  많은 반복이 필요하기 때문에 연산량이 증가한다는 것과 과적합의 단점이 있습니다.

 

 wFMAc9Fg2yzkAAAAABJRU5ErkJggg__.png

후버 손실함수

저번시간에 언급했던 후버손실함수(이상치가 많은 데이터셋에 사용)도 옵션에 포함되어 있습니다하지만 이번 실습에는 사용하진 않겠습니다.

 

Dataset

데이터셋은 UCI machine learning repository에서 배포한 redwinequality.scv  사용했고 포함된 변수들은 아래와 같습니다와인의 평점을 의미하는 quality 변수를 타겟으로 설정하였습니다. 데이터를 가져오는 과정에서는 변수제거 없이 전부 가져왔으며 변수변환 노드를 연결하여 Interval input Best로 설정하였습니다.

 

wFMOLeWybr86gAAAABJRU5ErkJggg__.png

A_5M6wr1HNadAAAAAElFTkSuQmCC.png

 

Flow diagram

분석 흐름도는 다음과 같습니다.

1.PNG

우선 반복수N이 증가함에 따라 모델의 성능이 좋아지는 지 확인하기 위해 v(shrinkage) 0.5 고정한 상태에서 N값을 20, 50, 100, 150, 200으로 다르게 하여 모델을 만들어 보았습니다.

 

 

 2.PNG

하지만 모든 경우에서 평가의 기준이 되는 통계량들이 모두 같게 나왔고이는 v=0.5일 때는 반복수가 20만 되어도 충분한 반복수이기 때문인 것으로 판단하여 반복수를 1, 5, 10, 15 , 20으로 설정하여 다시 돌려보았습니다.

 

   

 iF80VzanN55uTXnDbTN_7CSs61FitVn6IVOsWKaS_28gc2hHb5k5xsFBg7vHHbciZWcHe2AWoAACIAACFRMAHpyFQNG9iAAAiAAA.png

그 결과반복수 20에서 10까지는 마찬가지로 똑같은 값들이 나왔지만 5에서부터는 성능이 낮아진 것으로 보아 최적의 반복수는 10에서 5사이에 존재한다는 것을 발견했습니다.

 

 FnlBNUNnpq0AAAAASUVORK5CYII_.png

 

마찬가지 방법으로 v=0.1인 경우 최적의 반복수를 알아본 결과 30에서 50 사이에 최적의 반복수가 존재하였습니다. V가 작아졌기 때문에 최적의 반복수가 커진 것을 확인하였습니다.

 

 

Conclusion

 

이번시간에는 부스팅의 발전된 형태인 그래디언트 부스팅을 E-Miner 의그레이디언트 부스팅(Gradient Boosting)노드를 통해 실습해보았습니다학습속도를 나타내는 매개변수v에 따라 최적의 반복수가 달라지는 것을 알 수 있었습니다하지만 v가 작아질수록 모델의 성능이 반드시 좋아지는 것은 아니었습니다이에 대한 이유는 아직 공부가 덜 돼서 설명해 드릴 수는 없지만 최적의 그래디언트 부스팅 모델을 만들기 위해서는 매개변수를 너무 크지도 작지도 않게 조절하는 것이 중요하다는 것을 알 수 있었습니다다음시간에는  SVM (support vector machine) 에 대해 알아보도록 하겠습니다.

 

 

 

 

Reference

 

https://en.wikipedia.org/wiki/Gradient_boosting

 

https://projecteuclid.org/download/pdf_1/euclid.aos/1013203451

 

 

Version history
Last update:
‎06-10-2020 10:12 PM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags