% matplotlib inline
本专栏所有例题数据放在 网址[https://download.youkuaiyun.com/download/u012338969/85439555(https://download.youkuaiyun.com/download/u012338969/85439555)
This script demonstrate how to access the eval metrics
import os
import xgboost as xgb
dtrain = xgb. DMatrix( './data/agaricus.txt.train' )
dtest = xgb. DMatrix( './data/agaricus.txt.test' )
param = [ ( 'max_depth' , 2 ) , ( 'objective' , 'binary:logistic' ) , ( 'eval_metric' , 'logloss' ) , ( 'eval_metric' , 'error' ) ]
num_round = 10
watchlist = [ ( dtest, 'eval' ) , ( dtrain, 'train' ) ]
evals_result = { }
bst = xgb. train( param, dtrain, num_round, watchlist, evals_result= evals_result)
[0] eval-logloss:0.48039 eval-error:0.04283 train-logloss:0.48254 train-error:0.04652
[1] eval-logloss:0.35776 eval-error:0.04283 train-logloss:0.35954 train-error:0.04652
[2] eval-logloss:0.28009 eval-error:0.02483 train-logloss:0.27993 train-error:0.02334
[3] eval-logloss:0.21606 eval-error:0.04035 train-logloss:0.21860 train-error:0.04161
[4] eval-logloss:0.17013 eval-error:0.01924 train-logloss:0.17063 train-error:0.01735
[5] eval-logloss:0.14026 eval-error:0.02173 train-logloss:0.13910 train-error:0.02226
[6] eval-logloss:0.12097 eval-error:0.01552 train-logloss:0.11891 train-error:0.01336
[7] eval-logloss:0.10550 eval-error:0.02731 train-logloss:0.10227 train-error:0.02150
[8] eval-logloss:0.09550 eval-error:0.02731 train-logloss:0.09150 train-error:0.02150
[9] eval-logloss:0.08723 eval-error:0.02731 train-logloss:0.08313 train-error:0.02150
D:\d_programe\Anaconda3\lib\site-packages\xgboost\core.py:525: FutureWarning: Pass `evals` as keyword args. Passing these as positional arguments will be considered as error in future releases.
warnings.warn(
print ( 'Access logloss metric directly from evals_result:' )
print ( evals_result[ 'eval' ] [ 'logloss' ] )
Access logloss metric directly from evals_result:
[0.4803859960359494, 0.35775544743668136, 0.28009184384701197, 0.21605562400662479, 0.1701263918926966, 0.14025616379423514, 0.12096623357207341, 0.10550202664004062, 0.09549925424283444, 0.08723436453808064]
print ( '' )
print ( 'Access metrics through a loop:' )
for e_name, e_mtrs in evals_result. items( ) :
print ( '- {}' . format ( e_name) )
for e_mtr_name, e_mtr_vals in e_mtrs. items( ) :
print ( ' - {}' . format ( e_mtr_name) )
print ( ' - {}' . format ( e_mtr_vals) )
print ( '' )
print ( 'Access complete dictionary:' )
print ( evals_result)
Access metrics through a loop:
- eval
- logloss
- [0.4803859960359494, 0.35775544743668136, 0.28009184384701197, 0.21605562400662479, 0.1701263918926966, 0.14025616379423514, 0.12096623357207341, 0.10550202664004062, 0.09549925424283444, 0.08723436453808064]
- error
- [0.04283054003724395, 0.04283054003724395, 0.02482929857231533, 0.04034761018001241, 0.01924270639354438, 0.02172563625077592, 0.01551831160769708, 0.02731222842954686, 0.02731222842954686, 0.02731222842954686]
- train
- logloss
- [0.4825405066196003, 0.3595360331769255, 0.27993453837989496, 0.2185990637634164, 0.17062663876404507, 0.13910131798203448, 0.11891032012147178, 0.10226806316741524, 0.09149656920272982, 0.08312625405458002]
- error
- [0.04652233993551359, 0.04652233993551359, 0.02333793950560418, 0.04160908951328113, 0.01734991555350837, 0.02226316597574083, 0.0133578995854445, 0.02149547059726701, 0.02149547059726701, 0.02149547059726701]
Access complete dictionary:
{'eval': OrderedDict([('logloss', [0.4803859960359494, 0.35775544743668136, 0.28009184384701197, 0.21605562400662479, 0.1701263918926966, 0.14025616379423514, 0.12096623357207341, 0.10550202664004062, 0.09549925424283444, 0.08723436453808064]), ('error', [0.04283054003724395, 0.04283054003724395, 0.02482929857231533, 0.04034761018001241, 0.01924270639354438, 0.02172563625077592, 0.01551831160769708, 0.02731222842954686, 0.02731222842954686, 0.02731222842954686])]), 'train': OrderedDict([('logloss', [0.4825405066196003, 0.3595360331769255, 0.27993453837989496, 0.2185990637634164, 0.17062663876404507, 0.13910131798203448, 0.11891032012147178, 0.10226806316741524, 0.09149656920272982, 0.08312625405458002]), ('error', [0.04652233993551359, 0.04652233993551359, 0.02333793950560418, 0.04160908951328113, 0.01734991555350837, 0.02226316597574083, 0.0133578995854445, 0.02149547059726701, 0.02149547059726701, 0.02149547059726701])])}