Loading...

Light GBM 모형

LightGBM은 그 이름 Light에서도 알 수 있듯이 computational cost를 줄이기 위해 여러 가지 고급기술?을 도입하였다고 합니다. 그 중 하나인 Gradient based one sided sampling에 대해 직관적으로 이해해봅시다. 위에서 gradient boosting 기법을 다시 한번 생각해보면 각 data row마다 residual을 계산하여 learning rate를 이용한 예측값을 갱신하는 과정이 있었습니다. 이것은 마치 data row가 가지는 gradient로부터 gradient descent를 하는 과정을 연상시키죠. 그런데 Gradient based one sided sampling은 이름에서도 알 수 있듯이 gradient를 기반으로 필요없는 데이터는 버리겠다는..

2021. 11. 2. 18:32

XGBoost 모델

1. XGBoost 모델 gradient boosting의 약점은 train data에 대해 한없이 loss인 residual을 줄여나가니까 overfitting되기 쉽다는 단점이 있습니다. 이런 단점을 인식하여 나온 방법이 XGBoost입니다. XGBoost는 실제 값과 예측 값의 차이를 일반적인 loss에 regularization term을 더하여 이것을 줄이는 방향으로 학습을 진행합니다. loss function도 단순한 MSE같은 차이뿐만 아니라 다양한 loss function을 사용하여 task에 따른 유연한 튜닝을 가능하게 하였다고 합니다. 2. parameter norm penalty parameter norm penalty 기법은 loss function에 norm penalty를 더하는..

2021. 11. 1. 19:33

Gradient boosting 모형

기존 boosting이 model의 정확성을 점점 개선하는 방식으로 진행되었다면 gradient boosting은 그 이름에서도 알 수 있듯이 loss function을 정의하고 이것을 줄여나가는 방식으로 model을 학습해나갑니다. loss function은 딥러닝에서도 자주 사용하듯이 실제값과 예측값의 차이로 정의합니다. 예시 그림을 보면 이해하기 쉬울 것이라고 생각합니다. 위 그림에서 weight를 예측하는 model을 만든다고 합시다. 실제값과 예측값의 차이인 loss function을 최소로하는 최초 예측은 모든 weight의 평균값으로 예측하는 것이 제일 간단합니다. 여기서 평균은 71.2라고 합니다. 예측한 값과 실제 값들의 차이(이것을 residual 혹은 loss라고 부릅니다)를 각 ro..

2021. 11. 1. 19:25

Adaboost 모형

boosting 알고리즘 중에 여러개의 model을 만들어 voting시킨다는 것이 조금 이상하다는 생각이 들 수도 있을 것 같습니다. boosting에서 말한 알고리즘 중 두 번째 알고리즘이 Adaboost인데요. 조금 더 구체적이지만 아주 간단하게? 설명하자면 다음과 같습니다. 전체 train data에서 random하게 data를 뽑습니다. random하게 data를 뽑은 sample로 하나의 model A를 학습합니다. 참고로 Adaboost에서 사용한 model A는 random forest가 완전한 tree를 사용하던 것과는 조금 다르게 두 개의 leaf만 가지는(1번만 분기하는) stump라는 tree를 사용합니다. 학습한 A로 전체 train data에 대해 validation을 수행합니다..

2021. 10. 29. 16:49

boosting에 대하여

boosting에 대한 알고리즘 설명이 2가지 정도 있습니다. 주어진 training data set이 있다고 생각해봅시다. 여기서 random하게 sampling하여 sample dataset을 구성합니다. sampling을 하는 과정을 boosting round라고 부릅니다. boosting round에서 구성한 sample dataset을 이용하여 하나의 model A를 학습시킵니다. (처음 가지고 있던 train set으로 학습시키는게 아니고 sampling한 것으로 학습시킴) 이 학습시킨 model A를 가지고 있던 training data set 전체에 대해서 validation을 수행합니다. 일부 뽑은 sample set으로 validation을 하는 것이 아니라 전체 train data s..

2021. 10. 28. 19:48

random forest 모형

bagging방식에서 bootstrap sampling을 한 data set에 적합시키는 model이 decision tree이면 random forest 알고리즘이 됩니다. 그 이름이 forest인데 여러개의 tree들이 모이면 forest가 된다는 점에서 상당히 어울리는 이름이라고 할 수 있습니다. 몇가지 핵심 아이디어를 나열해보면 다음과 같습니다. bootstrap에 기반하므로 tree를 학습시키는 데이터는 동일한 데이터 row가 포함될 수 있습니다. 다음으로 데이터로부터 decision tree를 성장시킬 때 feature에 대해 information gain이 가장 큰 feature를 선택하여 성장시켰는데 random forest는 데이터의 모든 feature의 information gain을 ..