์๋ ,
์ ๋ xgboost์ ํ์ ๋ฐ๊ฒฌํ๊ธฐ ์์ํ๊ณ ๋ฐ๋ผ์ ๋ฐ๋ชจ ๋ฐ์ดํฐ ์ธํธ(์ง๊ธ ๋น์ฅ sklearn.datasets์ ๋ณด์คํด ๋ฐ์ดํฐ ์ธํธ)๋ฅผ ๊ฐ์ง๊ณ ๋๊ณ ์์ต๋๋ค.
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ฉด ๋ค์์ ์ ํํฉ๋๋ค.
plst=[('silent', 1),
('eval_metric', 'rmse'),
('nthread', 1),
('objective', 'reg:linear'),
('eta', 1),
('booster', 'gblinear'),
('lambda', 0),
('alpha', 10)]
์ฝํ ํ์ต์๋ก ์ฌ๊ฐ๋ฏธ ํ๊ท๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ์คํ
์ ์ํํด์ผ ํฉ๋๋ค. _๋ง๋์?_ ๊ทธ๋ ๋ค๋ฉด num_round=1์ผ ๋ ๋จ์ผ ์ฌ๊ฐ๋ฏธ ํ๊ท์ ์ถ๋ ฅ์ ๋ค์ ๊ฐ์ ธ์์ผ ํ๋ฏ๋ก ๋งค์ฐ ํฌ์ํ ๊ฐ์ค์น ๋ฒกํฐ๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. ์ด๋ ์์ ํ ์ฌ์ค์ด ์๋๋๋ค.
ํ์ง๋ง ์ฌ์ค ํ ๋ผ์ด๋์ ๊ฒฐ๊ณผ๋ฌผ์ ์ป๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค์ ๋ก num_round=1์ธ ๊ฒฝ์ฐ์๋ eta๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋ชจ๋ธ ๊ฐ์ค์น ๋ฒกํฐ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ฆ, ์ต์ํ ๋ ๊ฐ์ ๋ผ์ด๋๊ฐ ์๊ฑฐ๋ ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ์๋ชป ์ดํดํ๋ค๋ ์๋ฏธ์
๋๋ค. _๋ด ํด์์ด ๋ง๋์?_
๋ํ ๋ช ๊ฐ์ง ํ
์คํธ ํ์ ๋งค๊ฐ๋ณ์ eta๊ฐ ๊ตฌํ์์ ๊ทธ๋ผ๋์ธํธ ๋ถ์คํ
ํธ๋ฆฌ๋ก ์ ํ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฌธ์์์๋ ํ์ ์น์
_tree ๋งค๊ฐ๋ณ์_์ ์์ต๋๋ค. ํ์ต๋ฅ ์ ์ค์ ํ์ฌ ์ถ์ํ๋ ๊ฒ์ ๋ถ์คํ
ํธ๋ฆฌ์๋ง ๊ตญํ๋์ง ์๋ ๋ถ์คํ
์ ์ ๊ทํํ๋ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ณด์
๋๋ค.
๋ํ ๋ถ์คํ
ํธ๋ฆฌ์ ๊ตญํ๋์ง ์๋ ๊ฒ์ '์๋ธ์ํ' ์ต์
์
๋๋ค. ์ด๊ฒ์ ๋ถ์คํ
ํธ๋ฆฌ(์ ์ด๋ ์ด๋ก ์)๋ฟ๋ง ์๋๋ผ ๋ถ์คํ
์ ํ ํ๊ท๋ฅผ ์ ๊ทํํ๋ ๋ฐฉ๋ฒ์ด ๋ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋ด๊ฐ ํ์คํ ์ดํดํ๊ธฐ ์ํด ํ์ต ๋ชฉํ๋ ์ฃผ์ด์ง ์์ค์ ํด๋นํ๋ฉฐ, ์ด๋ ๋ฐ๋์ eval_metric์ ์ฐ๊ฒฐ๋์ง ์๊ณ ์ฌ์ฉ์ ํ๊ฐ์๋ง ์ฌ์ฉ๋ฉ๋๊น? ๋ง์ eval_metrics๋ฅผ ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๊ฒฝ์ฐ reg:logistic , reg:linear ๋ฐ multi:softmax ์ ๋ํ ๋ค๋ฅธ ์์ค์ ๋ฌด์์ ๋๊น? (์: ํ๊ท์ ๋ํ ์ ๊ณฑ ์์ค ๋๋ ์ ๋ ์์ค, ๋ถ๋ฅ์ ๋ํ ์ง์ ๋๋ ์ดํ๋ ์์ค?)
๋ต๋ณํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์ต์์,
์จ๋ฆฌ์ค
๋จ์ผ ์ฌ๊ฐ๋ฏธ ํ๊ท๋ฅผ ๋ค์ ์ป๊ธฐ ์ํด gblinear์์ ์ฌ๋ฌ ๋ผ์ด๋๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ ์ ํ ๋ชจ๋ธ(๋ค์ ์ ํ ๋ชจ๋ธ์ด์์)์ ์๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ๋จ์ผ ์ฌ๊ฐ๋ฏธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ์ num_round ๋จ๊ณ๊ฐ ๊ณต๋์ผ๋ก ์ฌ์ฉ๋์์ต๋๋ค.
eval_metric์ ๋ชฉ์ ํจ์์ ๊ด๋ จ์ด ์์ต๋๋ค. ์์ค ํจ์๋ ๋ก์ง์คํฑ ํ๊ท์ ๋ํ md reg:logistic , ์ ๊ณฑ ์์ค์ ๋ํ reg:linear ๋ฐ softmax ๋ค์ค ํด๋์ค ๋ถ๋ฅ์ ๋ํ muti:softmax ์ ๋ํ ๋งค๊ฐ๋ณ์์ ๋ฌธ์ํ๋์ด ์์ต๋๋ค.
์๋ ,
๋ต๋ณํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! 1์ด ์๋ ํฐ num_rounds ํ์ ๋จ์ผ ์ฌ๊ฐ๋ฏธ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ์ดํดํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ๋ ์ ๊ณตํฉ๋๋ค. ์ฆ ํ๊ท์ ์ ๊ณฑ ์์ค์ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ฅ์ ์ดํญ/๋คํญ ํธ์ฐจ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. _๊ทธ ๋ง์ต๋๊น?_
ํ๊ท์ ๊ฒฝ์ฐ ์๋ฅผ ๋ค์ด L1 ์์ค ๋๋ Huber ์์ค์ ์ฌ์ฉํ ์๋ ์๊ธฐ ๋๋ฌธ์ ํ์คํ์ง ์์์ต๋๋ค(ํต๊ณ ํ์ต ์์์ ์น์ 10.10.2์ ์ ๊ณต๋ ์ผ๋ฐ์ ์ธ ์).
๋์์ ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์จ๋ฆฌ์ค
์๋ ,
ํ๊ท ๋ชจ๋ธ์ xgboost๋ฅผ ์ ์ฉํ๊ณ ์ถ์ต๋๋ค. ๋ด ์ข ์ ๋ณ์๊ฐ ์ฐ์ ์ซ์ ์ ํ์์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฌ๋ "label" ์ธ์์ ๋ฌด์์ ์ ๊ณตํด์ผ ํ๋์ง ํผ๋์ค๋ฝ์ต๋๋ค. ์ฌ๊ธฐ์์ ๋์์ฃผ์ธ์.
๋ฌธ์ ์ธ์ฌ,
๋น๋ฒก
ํ๊ท์ ๊ฒฝ์ฐ ๋ ์ด๋ธ์ ํ๊ท ๋์์ ๋๋ค.
2015๋
5์ 25์ผ ์์์ผ ์ค์ 8์ 43๋ถ, Vivek Agarwal [email protected]
์ผ๋ค:
์๋ ,
ํ๊ท ๋ชจ๋ธ์ xgboost๋ฅผ ์ ์ฉํ๊ณ ์ถ์ต๋๋ค. ๋ด ์ข ์ ๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฐ์ ์ซ์ ์ ํ์ ๋๋ค. ๊ทธ๋ฌ๋ ํผ๋์ค๋ฌ์ ๋ฌด์์ ์ ๊ณตํด์ผํฉ๋๊น?
"label" ์ธ์์์. ์ฌ๊ธฐ์์ ๋์์ฃผ์ธ์.๋ฌธ์ ์ธ์ฌ,
๋น๋ฒกโ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/dmlc/xgboost/issues/332#issuecomment -105253915.
์ฒํฐ์์น
์ปดํจํฐ ๊ณผํ ๋ฐ ๊ณตํ, ์์ฑํด ๋ํ๊ต
๋ชฉํ ๋ฌธ์ ์ฐธ์กฐ
https://github.com/dmlc/xgboost/blob/master/doc/parameter.md
๋ค๋ฅธ ๋ชฉ์ ํจ์๋ฅผ ์ง์ ํ ์ ์์ผ๋ฉฐ ์๋ฏธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
ํ์ฌ ๋งค๊ฐ๋ณ์
ํ์น
2015๋ 5์ 25์ผ ์์์ผ ์ค์ 1์ 47๋ถ์ AliceS [email protected] ์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์๋ ,
๋ต๋ณํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๋น์ ์ด ์ฑ๊ธ์ ๋์ฐพ๋ ๋ฐฉ๋ฒ์ ์ดํดํ์ต๋๋ค
1์ด ์๋ ํฐ num_rounds ๋ค์ ์ฌ๊ฐ๋ฏธ.์์ค ํจ์์ ๊ด๋ จํ์ฌ ์์ง ๋ช ํํ์ง ์์ต๋๋ค.
์ต์ํ ํ๊ท๋ฅผ ์ํด. ์ ๊ณฑ ์์ค, L1 ์์ค ๋๋
์๋ฅผ ๋ค์ด Huber ์์ค(์ผ๋ฐ์ ์ธ ์๋ ์น์ 10.10.2์
ํต๊ณ ํ์ต์ ์์). ๋ถ๋ฅ๋ฅผ ์ํด ๋๋ ๋น์ ์ด ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์์
์ดํญ/๋คํญ ํธ์ฐจ(์ง์ ์์ค์ผ ์๋ ์์ต๋๋ค.
ํด๋์ ๋ถ์คํ ์ ๋ค์ ์ป๋ ๊ฒฝ์ฐ).๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์จ๋ฆฌ์คโ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/dmlc/xgboost/issues/332#issuecomment -105170486.
์ฒํฐ์์น
์ปดํจํฐ ๊ณผํ ๋ฐ ๊ณตํ, ์์ฑํด ๋ํ๊ต
Tianqi๋, ๊ฐ์ฌํฉ๋๋ค.
์จ๋ฆฌ์ค
์ข ์ ๋ณ์์๋ ์ซ์ ๊ฐ์ด ์์ต๋๋ค. ๋ค์์ ํ๊ท ๋์์ ์ฒ์ 6๊ฐ ๊ด์ฐฐ์ ๋๋ค.
head(final_data[1:n.train,'์ข ์'])
[1] 4996 3784 1504 4994 3687 3084
์ด์ ์ด ์ข ์ ๋ณ์๋ฅผ ๋ ์ด๋ธ์ ๋ฃ๊ณ ์๋ ์ฝ๋๋ฅผ ์คํํ๋ฉด:
param <- list("๋ชฉํ" = "reg:linear",
"num_class" = 9,
"nthread" = 8,
"์ํ" = 0.08,
"ํ์ ์ํ"= 0.8,
"๊ฐ๋ง" = 1,
"min_child_weight" = 2,
"์ต๋_๊น์ด"= 12,
"colsample_bytree" = 1
)
model_xg <- xgboost(param=param,data = final_data[1:n.train,],label=final_data[1:n.train,'Dependent'],nrounds=250)
๊ทธ๋ฐ ๋ค์ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
xgb.get.DMatrix(data, label) ์ค๋ฅ: xgboost: ์๋ชป๋ ๋ฐ์ดํฐ ์ ๋ ฅ
์ถ๊ฐ: ๊ฒฝ๊ณ ๋ฉ์์ง:
xgb.get.DMatrix(data, label)์์ : xgboost: label์ ๋ฌด์๋ฉ๋๋ค.
๋ด๊ฐ ๋ญ ์๋ชปํ๊ณ ์๋์ง ์๋ ค์ฃผ์ธ์.
@vivekag ์ด์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์ธ์. ๋ฌธ์ ๋ฅผ ์ฌํํ๊ธฐ ์ํด ์คํํ ์ ์๋ ์ฝ๋ ์ค๋ํซ(์ผ๋ถ ๋๋ฏธ ๋ฐ์ดํฐ ํฌํจ)์ ์ ๊ณตํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
final_data์ ๋ฐ์ดํฐ ์ ํ์ด xgboost๊ฐ ์์ํ ๊ฒ๊ณผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค(xgboost๋ ํ๋ ฌ ๋๋ ํฌ์ ํ๋ ฌ์ ์์ํจ) @hetong007
@tqchen gblinear๊ฐ ์ค์ ๋ก ํ๋ ์ผ์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ธฐ์ฌ/๊ณต์์ ๋ํ ์ฐธ์กฐ๊ฐ ์ข์ต๋๋ค.
ํนํ, 1๋ผ์ด๋ ํ๋ จ( nrounds=1
)์ ๋ํ ์์ธก์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค์์ ์ํ ๋ฐ์ดํฐ์ธํธ์
๋๋ค.
> train
x y
1: 13.36 37.54
2: 5.35 14.54
3: 0.26 -0.72
4: 84.16 261.19
5: 24.67 76.90
6: 22.26 67.15
7: 18.02 53.89
8: 14.29 43.48
9: 61.66 182.60
10: 57.26 179.44
{ booster="gblinear"
, objective="reg:linear"
, eta=1
, subsample=1
, lambda=0
, lambda_bias=0
๋งค๊ฐ๋ณ์๊ฐ ์๋ ์ ํ ํ๊ท ๋ชจ๋ธ๊ณผ xgboost ๋ชจ๋ธ์ ํ๋ จ์ํจ ํ alpha=0
} ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค
> test
x y Pred.linreg Pred.xgb
1: 47.75 153.23 146.25 155.7
2: 12.13 40.05 35.78 107.9
3: 89.05 274.37 274.34 211.1
4: 38.87 116.51 118.71 143.8
5: 27.30 80.61 82.83 128.2
6: 87.66 267.95 270.02 209.3
7: 39.33 114.97 120.14 144.4
8: 64.32 191.73 197.64 177.9
9: 13.18 48.28 39.04 109.3
10: 8.89 23.30 25.73 103.5
์ฌ๊ธฐ์์ ์ค์ ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์์ต๋๊น? ๊ฐ์ฌ ํด์!
xg ํ๊ท์ ๋ค๋ฅธ ์ผ๋ฐ ํ๊ท์ ์ฐจ์ด์ ์ ๋ฌด์์
๋๊น?
xgboost์๋ ๋ค๋ฅธ ํธ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ค๋ฅธ ํธ๋ฆฌ ๋ฒ์ ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์์ค๋ฅผ ํดํนํด์ผ ํ ๊ฒ ๊ฐ์์.
xgboost์์ gblinear๋ฅผ ์ฌ์ฉํ ๋ ๋ชจ๋ ์ ๋ ฅ ๊ธฐ๋ฅ์ ์ต์ข ๊ฐ์ค์น๋ฅผ ์ถ์ถํ ์ ์์ต๋๊น? ๊ฐ์ค์น๋ฅผ ์ถ์ถํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@tqchen gblinear๊ฐ ์ค์ ๋ก ํ๋ ์ผ์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ธฐ์ฌ/๊ณต์์ ๋ํ ์ฐธ์กฐ๊ฐ ์ข์ต๋๋ค.
ํนํ, 1๋ผ์ด๋ ํ๋ จ(
nrounds=1
)์ ๋ํ ์์ธก์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ค์์ ์ํ ๋ฐ์ดํฐ์ธํธ์ ๋๋ค.{
booster="gblinear"
,objective="reg:linear"
,eta=1
,subsample=1
,lambda=0
,lambda_bias=0
๋งค๊ฐ๋ณ์๊ฐ ์๋ ์ ํ ํ๊ท ๋ชจ๋ธ๊ณผ xgboost ๋ชจ๋ธ์ ํ๋ จ์ํจ ํalpha=0
} ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค์ฌ๊ธฐ์์ ์ค์ ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์์ต๋๊น? ๊ฐ์ฌ ํด์!