저번에 다뤘던 그래디언트 부스팅(Gradient Boosting)의 실습을 진행하겠습니다.
Outline
EM에서 제공하는 그레이디언트 부스팅(Gradient Boosting)노드를 사용할 것 이며 과적합을 방지하기 위한 옵션들에 대해 살펴보고 옵션들을 변경하여 성능에 어떤 영향을 미치는지 살펴보겠습니다.
반복수
일반적으로 반복수 N을 높이면 성능은 높아지지만 과적합이 일어나고 연산량이 늘어나는 단점이 있습니다. 따라서 적절한 N을 설정하는 것이 중요합니다.
축소
그래디언트 부스팅의 성능은 축소(shrinkage)에 따라도 달라지는데 그 과정은 아래와 같이 학습속도의 개념을 가지는 매개변수v를 이용하는 것입니다.
일반적으로 학습속도가 작은 (v<1) 그래디언 부스팅이 shrinkage가 없는 (v=1) 것 보다 모델의 일반화 능력이 좋아지는 것으로 알려져 있습니다. 그러나 학습속도 v가 작을수록 더 많은 반복이 필요하기 때문에 연산량이 증가한다는 것과 과적합의 단점이 있습니다.
후버 손실함수
저번시간에 언급했던 후버손실함수(이상치가 많은 데이터셋에 사용)도 옵션에 포함되어 있습니다. 하지만 이번 실습에는 사용하진 않겠습니다.
Dataset
데이터셋은 UCI machine learning repository에서 배포한 redwinequality.scv 를 사용했고 포함된 변수들은 아래와 같습니다. 와인의 평점을 의미하는 quality 변수를 타겟으로 설정하였습니다. 데이터를 가져오는 과정에서는 변수제거 없이 전부 가져왔으며 변수변환 노드를 연결하여 Interval input을 Best로 설정하였습니다.
Flow diagram
분석 흐름도는 다음과 같습니다.
우선 반복수N이 증가함에 따라 모델의 성능이 좋아지는 지 확인하기 위해 v값(shrinkage)을 0.5로 고정한 상태에서 N값을 20, 50, 100, 150, 200으로 다르게 하여 모델을 만들어 보았습니다.
하지만 모든 경우에서 평가의 기준이 되는 통계량들이 모두 같게 나왔고, 이는 v=0.5일 때는 반복수가 20만 되어도 충분한 반복수이기 때문인 것으로 판단하여 반복수를 1, 5, 10, 15 , 20으로 설정하여 다시 돌려보았습니다.
그 결과, 반복수 20에서 10까지는 마찬가지로 똑같은 값들이 나왔지만 5에서부터는 성능이 낮아진 것으로 보아 최적의 반복수는 10에서 5사이에 존재한다는 것을 발견했습니다.
마찬가지 방법으로 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
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!