Kaggle์ ๋น๋กฏํ ๋ฐ์ดํฐ ๊ฒฝ์ง๋ํ ํ๋ซํผ์์ ํญ์ ์์๊ถ์ ์ฐจ์งํ๋ ์๊ณ ๋ฆฌ์ฆ XGBoost, LightGBM, CatBoost์ ๋ํด ์ ๋ฆฌํ๊ณ ์ฐจ์ด์ ์ ๋น๊ตํด๋ณด๋ ค๊ณ ํ๋ค.
๋ด๊ฐ ๋ถํธ์บ ํ์์ ์ธ๊ณต์ง๋ฅ์ ๋ฐฐ์ ์๋๋ ๋ค๋ฅธ ๊ต์ก์ ๋ค์์๋ ํญ์ ์ฒ์๋ถํฐ ์ผ๋ ๋ชจ๋ธ์ด๋ ๋ฐฉ๋ฒ๋ก ๋ถํฐ ๋ฐฐ์ฐ๋ค ๋ณด๋๊น ์ต๊ทผ์ ์ฐ์ด๋ ๋ชจ๋ธ, ํ์ฌ ์ฐ๊ณ ์๋ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ฐฐ์ฑ๊ธฐ๋ ์ ์ ๊ต์ก์ด ๋๋๋ค. ๋๋ ์์ ๊ฒ๋ ๋ฐฐ์์ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐฐ์ฐ๋ ๊ฒ๋ ์ค์ํ์ง๋ง ์ธ๋งํ ๊ฒ๋ค์ ๋ฐฐ์ฐ๊ณ ์ถ์๋ค.
๋๋ decision tree, random forest ๊ฐ์ด ์๋ ์ ๋ง๋ค์ด์ ธ์ ์ง๊ธ์ ์ฐ์ฌ์ง์ง ์๋ ๋จธ์ ๋ฌ๋๊ธฐ๋ฒ๋ง ๋ฐฐ์ฐ๋ค๊ฐ ๊ต์ก๊ธฐ๊ฐ์ด ๋๋ฌ๋ค. ์ค๊ฐ์ ๋ถํธ์บ ํ ๋ด ๋ํ๋ฅผ ๊ฐ์ตํ๊ฑฐ๋ ๋ค๋ฅธ ๋ํ๋ฅผ ์ฐธ์ฌํ ๋๋ ๋ถํธ์บ ํ์์ ๋ฐฐ์ด ๋จธ์ ๋ฌ๋๋ง ์ฐ๋ค๊ฐ ์ ์๋ ๋ด์ง ๋ชปํ๊ณ ์ฐพ์๋ณด๊ณ xgboost, light gbm, catboost ๋ฑ์ ์ฐพ์์ ์ผ์๋ค. ํ์ง๋ง ๊ทธ๋๋ ๋ญ๊ฐ ๋จผ์ ๋์๊ณ , ๋ด ์ํฉ์์๋ ์ด๋ค ๋ชจ๋ธ์ ์จ์ผํ๋์ง๋ ๋ชฐ๋๋ค.
์ง๊ธ ํ์ฌ์์ ํ์ค์ค๋น๋ฅผ ์งํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค์ํ ๋ชจ๋ธ๋ค์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค.
๋๋ ์ง๊ธ ํ์ค์ค๋น๋ก ๊ณต๋ถํด์ผํ ๋ถ๋ถ์ด ์ง๋ํ์ต์ ๋ถ๋ฅํํธ์ด๋ค. ์ถํ์ ๊ตฐ์งํ๋ ์ฌ์ฉํ์ฌ ์ถ์ฒ์๋น์ค๋ฅผ ๊ฐ๋ฐํด์ผ ํ์ง๋ง ์ฐ์ ์ ์ง๋ํ์ต์ ๋จผ์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค.
๊ฒฐ์ ํธ๋ฆฌ์ ๋๋คํฌ๋ ์คํธ๋ ๋ง์ด ์ฐ์ด์ง ์์ ๋น๊ต์ ์ต์ ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฒ์ธ xgboost, lightGBM, CatBoost์ ์ฐจ์ด๋ฅผ ๋น๊ตํด๋ณด๊ณ ์ด๋ค ๋ชจ๋ธ์ ์ฌ์ฉํ ์ง ์ ํด๋ณด๋ ค ํ๋ค.
XGBoost
XGBoost๋ ๊ธฐ๋ณธ์ ์ผ๋ก GBM๊ณผ ๊ฐ์ด decision Tree์ ์์๋ธ ๋ชจํ์ด๊ณ ํ์ด์ ๋งํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ฝํ ์์ฌ๊ฒฐ์ ๋๋ฌด(Decision Tree)๋ฅผ ์กฐํฉํด์ ์ฌ์ฉํ๋ ์์๋ธ(Ensemble) ๊ธฐ๋ฒ ์ค ํ๋์ด๋ค. ์ด๋ฆ์ ๋ป์ Extreme Gradient Boosting์ ์ฝ์์ด๋ค. ํด์ํ๋ฉด ๊ทนํ ๋ณํ๋(๊ฒฝ์ฌ๋) ๋ถ์คํ ์ด๋ผ๋ ๋ป์ด๋ค. Gradient Boost ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๋ ฌ ํ์ต์ด ์ง์๋๋๋ก ๊ตฌํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ XGBoost ์ด๋ค.
Image๋ Text์ ๊ฐ์ ๋น์ ํ๋ฐ์ดํฐ์์๋ Nerual Network ๋ชจ๋ธ์ด ์๋์ ์ธ ์ฑ๋ฅ์ ๋ณด์ด๊ณ ์์ง๋ง, ์ ํ๋ฐ์ดํฐ์์๋ XGBoost์ ๊ฐ์ tree based ์๊ณ ๋ฆฌ์ฆ์ด ์์ง๊น์ง๋ ๋ง์ด ์ฐ์ธ๋ค. Regression, Classification ๋ฌธ์ ๋ฅผ ๋ชจ๋ ์ง์ํ๋ฉฐ, ์ฑ๋ฅ๊ณผ ์์ ํจ์จ์ด ์ข์์, ์ธ๊ธฐ ์๊ฒ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ ์ด๋ค.
์ฅ์
- GBM ๋๋น ๋น ๋ฅธ ์ํ์๊ฐ
- ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ก ํ์ต, ๋ถ๋ฅ ์๋๊ฐ ๋น ๋ฅด๋ค.
- ๊ณผ์ ํฉ ๊ท์ (Regularization)
- ํ์ค GBM ๊ฒฝ์ฐ ๊ณผ์ ํฉ ๊ท์ ๊ธฐ๋ฅ์ด ์์ผ๋, XGBoost๋ ์์ฒด์ ๊ณผ์ ํฉ ๊ท์ ๊ธฐ๋ฅ์ผ๋ก ๊ฐํ ๋ด๊ตฌ์ฑ ์ง๋๋ค.
- ๋ถ๋ฅ์ ํ๊ท์์ญ์์ ๋ฐ์ด๋ ์์ธก ์ฑ๋ฅ ๋ฐํ
- ์ฆ, CART(Classification and regression tree) ์์๋ธ ๋ชจ๋ธ์ ์ฌ์ฉ
- Early Stopping(์กฐ๊ธฐ ์ข ๋ฃ) ๊ธฐ๋ฅ์ด ์์
- ๋ค์ํ ์ต์ ์ ์ ๊ณตํ๋ฉฐ Customizing์ด ์ฉ์ดํ๋ค.
- Missing Values : ๊ฒฐ์ธก์น๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์ฒ๋ฆฌํด์ค๋ค. ์ค์ ๋ก kaggle์ ์ ์ฉํด๋ณด๋ ๊ณผ์ ์์ ํธ๋ฆฌํจ
LightGBM
LightGBM์ ๋ฉ์ธ ๊ธฐ์ ์ GOSS(Gradient-based One-Side Sampling)์ด๋ค. GOSS๋ Information gain์ ๊ณ์ฐํ ๋ ๊ธฐ์ธ๊ธฐ๊ฐ ์์(๊ฐ์ค์น๊ฐ ์์)๊ฐ์ฒด์ ์น์ ์์๋ฅผ ์ ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฆํญ์ํจ๋ค. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ๋ฐ์ดํฐ ๋ถํฌ๋ฅผ ๋ง์ด ๋ณ๊ฒฝํ์ง ์ํน๋ ํ๋ จ์ด ๋ ๋ ๊ฐ์ฒด์ ์ด์ ์ ๋ณด๋ค ์ ๋ง์ถ ์ ์๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก LightGBM์ด XGBoost๋ณด๋ค ์๋์ ์ฑ๋ฅ๋ฉด์์ ๋ชจ๋ ์ข์ ํผํฌ๋จผ์ค๋ฅผ ๊ฐ์ง๋ค.
๊ธฐ์กด์ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ LightGBM์์ ์ฑํํ leaf-wise(๋ฆฌํ ์ค์ฌ ํธ๋ฆฌ ๋ถํ )์ ํธ๋ฆฌ๊ฐ ๊น์ด์ง๋ฉด์ ์์๋๋ ์๊ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋๋ฅผ ์ ์ฝ ํ ์ ์๋ค. ํ์ง๋ง ์ด LightGBM์ ์ ์ ๋ฐ์ดํฐ์ (์ฝ 10000๊ฑด)์์๋ ๊ณผ์ ํฉ์ด ์ผ์ด๋๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ์ ์ด ๋ง์๋ ์ฌ์ฉํด์ผ ํ๋ค. ๋ ํ๋์ ํน์ง์ผ๋ก๋ ์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ๋ฒ์ฃผํ ๋ณ์๋ค์(Object, Category) ์ซ์ํ ๋ณ์๋ก ๋ฐ๊พธ์ด์ ํ์ต์ํจ๋ค. ๊ทธ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ๊ฒ์ด ์ํซ์ธ์ฝ๋ฉ์ธ๋ฐ, ํธ๋ฆฌ ๋ชจ๋ธ์์ high cardinality categorical features(๋ฒ์ฃผ์ ๊ฐ์๊ฐ ๋ง์ ๋ณ์)๋ฅผ ์ํซ์ธ์ฝ๋ฉํ์ฌ ๋ฃ๊ฒ ๋๋ฉด ํธ๋ฆฌ๊ฐ ์ธ๋ฐธ๋ฐ์ค ํด์ง๊ณ , ์ข์ ์ฑ๋ฅ์ ๋ด๊ธฐ ์ํด ๋ ๊น์ด์ง๋ค๊ณ ํ๋ค. ์ฆ, ํ๋ จ์ํค๋ ๋ฐ ์๊ฐ์ด ๋ ์์๋๊ณ ๊ณผ์ ํฉํ ์ํ์ด ๋๋ค. ์ด๊ฒ์ ๋๋นํ์ฌ LGBM์์๋ Category type์ ๋ณ์๋ ๊ทธ๋๋ก ํ์ต์ด ๋๋ค. ์ค์ ๋ก๋ ์ํซ์ธ์ฝ๋ฉ๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ค๊ณ ํ๋ ์์๋๋ฉด ์ข์ ๋ฏํ๋ค.
CatBoost
CatBoost๋ ๊ธฐ๊ณ ํ์ต ๋ถ์ผ์์ ์ฌ์ฉ๋๋ gradient boosting ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค. CatBoost๋ ์นดํ ๊ณ ๋ฆฌํ ๋ณ์๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์์ด์ ๋งค์ฐ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ๋๊ท๋ชจ ๋ฐ์ดํฐ ์งํฉ์์ ๋์ ์ ํ๋๋ฅผ ๋ณด์ด๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค. CatBoost์ ํต์ฌ ๊ธฐ๋ฅ ์ค ํ๋๋ ์๋์ผ๋ก ์นดํ ๊ณ ๋ฆฌํ ๋ณ์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด๋ค. ๊ธฐ์กด์ gradient boosting ์๊ณ ๋ฆฌ์ฆ๋ค์ ์นดํ ๊ณ ๋ฆฌํ ๋ณ์๋ฅผ ์์นํ ๋ณ์๋ก ๋ณํํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์๋ค. ํ์ง๋ง CatBoost๋ ์นดํ ๊ณ ๋ฆฌํ ๋ณ์๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๋ชจ๋ธ ํ์ต์ ๋ณด๋ค ์ฝ๊ฒ ๋ง๋ค์ด์ค๋ค. ๋ํ CatBoost๋ overfitting์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค. ์ด๋ฅผ ์ํด CatBoost๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์์๋ก ์์ด์ ํ์ตํ๊ณ , ์๋์ผ๋ก regularization์ ์ ์ฉํ๋ค. ์ด๋ฅผ ํตํด ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ณ ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค. CatBoost๋ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์งํฉ์์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค. CatBoost๋ Python, R, C++ ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ค.
XGBoost ์ ๋๋ถ์ด Catboost ๋ Level-wise ๋ก ํธ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋๊ฐ๋ค. Level-wise ์ Leaf-wise ์ ์ฐจ์ด๋, ๊ทธ๋ฅ ์ง๊ด์ ์ผ๋ก ๋งํ๋ฉด Level-wise ๋ BFS ๊ฐ์ด ํธ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋๊ฐ๋ ํํ๊ณ , Leaf-wise ๋ DFS ๊ฐ์ด ํธ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋๊ฐ๋ ํํ๋ค. ๋ฌผ๋ก max_depth = -1 ์ด๋ฉด ๋์ ๊ฐ์ ํํ์ง๋ง, ๋๋ถ๋ถ์ ๋ถ์คํ ๋ชจ๋ธ์์์ ํธ๋ฆฌ๋ max_depth != -1 ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋์ ๊ตฌ๋ถํ๋ ๊ฒ์ด๋ค.
3๊ฐ์ ๋จธ์ ๋ฌ๋์ ๋ํด ์์๋ณด์๋๋ฐ, ๋๋ ์ฐ๋ฆฌ ์ดํ์ด ๋ฐ์ดํฐ๋ ๋ง๊ณ ๋ฒ์ฃผํ๋ฐ์ดํฐ๊ฐ ๋ง๊ธฐ๋๋ฌธ์ Light GBM์ ์ ํํ๊ธฐ๋ก ํ๋ค. ์ด์ ๋ฐ์ดํฐ์ ์ ์ ์ฒ๋ฆฌํ๊ณ ๋ชจ๋ธ์ ํ ์คํธํด๋ณด๊ณ ์๋ค. ๋ด๊ฐ ์์ํ๊ธฐ๋ก Light GBM์ด ์ ๋ง์ ๊ฒ ๊ฐ์ง๋ง ํน์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๋จธ์ ๋ฌ๋์ ๊ฐ๊ฐ ํ์ต์์ผ ๊ฐ์ฅ ์ข์ ์ ํ๋๋ฅผ ๊ฐ์ง ๋ชจ๋ธ์ ์ฌ์ฉํ ์์ ์ด๋ค.
'๐ผ๐ > ๐๐ฉ๐ช๐๐ฎ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์ฉ๋ ์ฒ๋ฆฌ์๋ for ๋ฃจํ๋ณด๋ค numpy, df ๋ฒกํฐ๋ฅผ ์ฌ์ฉํด๋ณด์. (0) | 2024.01.11 |
---|---|
ํ์ด์ฌ ๊ฐ์ข OCR ์ฌ์ฉํด๋ณด๊ธฐ ๋ฐ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ AI OCR ์ฌ์ฉ๋ฒ (2) (0) | 2023.04.05 |
AI ํ์คํ์ ๋ํด์ (0) | 2023.03.13 |
๋๊ธ