์ ๋ Xgboost์ python ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด AUC์์ ์กฐ๊ธฐ ์ค์ง๋ฅผ ์ค์ ํ๋ ค๊ณ ํฉ๋๋ค.
param = {
'bst:max_depth':4,
'bst:eta':0.1,
'silent':1,
'objective':'binary:logistic'
}
param['nthread'] = 10
param['eval_metric'] = "auc"
param['seed'] = 0
plst = param.items()
evallist = [(dtrain_test1,'train'), (dtest2,'eval')]
num_round = 50
bst = xgb.train( plst, dtrain_test1, num_round, evallist, early_stopping_rounds = 5)
๊ทธ๋ฌ๋ AUC๊ฐ ์ฌ์ ํ ์ฆ๊ฐํ๊ณ ์์ด๋ 5๋ผ์ด๋ ํ์ ๋ฐ๋ณต์ด ์ค์ง๋ฉ๋๋ค.
ํ๊ฐ ์ค๋ฅ๊ฐ 5๋ผ์ด๋ ๋์ ๊ฐ์ํ์ง ์์ ๋๊น์ง ํ๋ จํฉ๋๋ค.
[0] ๊ธฐ์ฐจ- auc:0.681576 ํ๊ฐ- auc:0.672914
[1] ๊ธฐ์ฐจ- auc:0.713940 ํ๊ฐ- auc:0.705898
[2] ๊ธฐ์ฐจ- auc:0.719168 ํ๊ฐ- auc:0.710064
[3] ๊ธฐ์ฐจ- auc:0.724578 ํ๊ฐ- auc:0.713953
[4] ๊ธฐ์ฐจ- auc:0.729903 ํ๊ฐ- auc:0.718029
[5] ๊ธฐ์ฐจ- auc:0.732958 ํ๊ฐ- auc:0.719815
๋ฉ๋. ์ต๊ณ ์ ๋ฐ๋ณต:
[0] ๊ธฐ์ฐจ- auc:0.681576 ํ๊ฐ- auc:0.672914
Xgboost๋ AUC๊ฐ ์ฆ๊ฐํ๋ ๋์ ๊ณ์ ๊ฐ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์กฐ๊ธฐ ์ค์ง๊ฐ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ์ ์ด๋ฐ ํ์์ด ๋ฐ์ํ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํฉ๋๊น?
ํ ๊ฐ์ง ์๋ฃจ์
์ https://github.com/tqchen/xgboost/blob/master/demo/guide-python/custom_objective.py์ ์ค๋ช
๋ ๋๋ก ๊ณ ์ ํ ํ๊ฐ ๋ฉํธ๋ฆญ์ ์ ์ํ๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์์ผ๋ก auc ๊ณ์ฐ(-auc)์ ๊ณ์ฐํ๋ ๋์ ๊ฐ์ํฉ๋๋ค.
@myouness ๊ฐ์ฌํฉ๋๋ค! ๊ทธ๊ฒ์ด ์ฐธ์ผ๋ก ํด๊ฒฐ์ฑ ์ ๋๋ค. ์ด ๋์์ด ํจํค์ง์ ๋ฒ๊ทธ์ ๋๊น?
์๋ง๋ maximum=True๋ฅผ ์ค์ ํ๋ ค๊ณ ํ ์ ์์ต๋๋ค. xgboost.train ๋ฐ xgboost.cv ๋ฉ์๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ง๋ maximum=True๋ฅผ ์ค์ ํ๋ ค๊ณ ํ ์ ์์ต๋๋ค. xgboost.train ๋ฐ xgboost.cv ๋ฉ์๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.