목록XGBoost (3)
수학쟁이의 공부 이야기

xgboost, lightgbm과 같은 트리 기반 앙상블 모델은 크게 classification(분류), regression(회귀)의 문제로 나뉜다. 각각의 경우 어떻게 앙상블 모델의 feature importance를 구하는지 알아보겠다. 그리고 더 나아가 기존의 built in feature importance의 단점을 보완한 permutation importance에 대해서도 다뤄보겠다. classification(분류)를 위한 트리 기반 앙상블 모델 우리가 위의 그림처럼 이진분류를 한다고 가정해보자. 분류가 한쪽으로 몰릴수록 잘 분류된 것이므로 impurity(불순도)라는 개념을 도입한다. 1에서 비율의 제곱합들을 빼주는데 (0.5,0.5) 비율로 나눠질 때 가장 큰 값을 가지고 (1,0) 비율로..

Gradient Boosting Machine의 개념을 제안한 Jerome H. Friedman의 Greedy Function Approximation: A Gradient Boosting Machine 논문을 바탕으로 작성해봤습니다. Gradient Boosting Machine 이란? Gradient Boosting 모델은 additive model로서 weak learner들이 예측한 결과 값과 label 데이터의 편차(residual)를 학습해나가는 모델입니다. Loss를 줄이기 위해 Gradient Descent 알고리즘을 사용하고 주로 decision tree 모델에서 사용됩니다. Decision tree에서 leaves들의 loss를 본 후 loss가 큰 부분들의 가중치를 좀 더 크게 조정하..

kaggle의 Predict Future Sales 데이터 셋을 분석하던 중 xgboost를 활용하여 머신러닝 모델을 학습시키게 되었습니다. train data의 row 수가 2935849개로 xgboost 모델 파라미터 튜닝하기엔 학습 속도가 너무 느렸습니다. 그리하여 colab gpu를 활용하여 속도를 향상할 수 있는 방법을 찾았고, 다음처럼 진행하면 됩니다. 1. colab에서 런타임을 눌러 '런타임 유형 변경'을 클릭하게 되면 아래와 같은 창이 뜹니다. 이때 하드웨어 가속기를 GPU로 변경해줍니다. 2. 필요한 모델을 colab에 import 합니다. import xgboost from xgboost import XGBRegressor 3. 기존 xgboost를 uninstall 하고 pre-bu..