Workshop: Explaining and Interpreting XGBoost Models

This workshop will focus on two primary objectives:

Understanding the overall dynamics of your data and your model:

  • Using more sophisticated modeling packages (like XGBoost) to understand more complicated dynamics in the data

  • How to approach data exploration to understand more complicated relationships between the variables in your data

  • Why the "coherence" of a model is important - arguably, on the same level as its predictive performance

  • How to assess the "coherence" of a model using ICE plots

Understanding and explaining individual predictions from the model

  • How to ascribe "reasons" to individual predictions

  • How to "consolidate" features to make the reasons more coherent and understandable

  • Using visualizations independently and from the SHAP package

StructureBoost - boosting with categorical structure (time permitting)

  • Intro to the StructureBoost package

  • Example using the geographical structure of US States


In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('classic')  # I prefer the appearance of the "old-school" color scheme

%matplotlib inline
from sklearn.metrics import roc_auc_score, confusion_matrix, log_loss, accuracy_score, r2_score, roc_curve, precision_recall_curve
import xgboost as xgb


pd.set_option("display.max_rows",999)
pd.set_option("display.max_columns",999)
np.set_printoptions(edgeitems=30, linewidth=100000)

In [2]:
# must have ml_insights installed ('pip install ml_insights')
import ml_insights as mli

In [3]:
mli.__version__


Out[3]:
'0.0.21'

Load data

You can get the data at:

https://drive.google.com/open?id=1wS-nOWQtZ3DA057or43E-zpm7duoqEMM

or

https://cutt.ly/ht2KeDk

Download the file and place in the same directory as the notebook.


In [4]:
df_ins = pd.read_csv('ins_data.csv')
df_ins.info()


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6820 entries, 0 to 6819
Data columns (total 19 columns):
 #   Column                     Non-Null Count  Dtype  
---  ------                     --------------  -----  
 0   has_umbrella               6820 non-null   int64  
 1   homeown_premium            6820 non-null   float64
 2   auto_premium               6820 non-null   float64
 3   num_home_pol               6820 non-null   float64
 4   home_dwell_cov             6820 non-null   float64
 5   home_pers_prop_cov         6820 non-null   float64
 6   num_vehicles               6820 non-null   float64
 7   max_vehicle_year           6820 non-null   float64
 8   min_vehicle_year           6820 non-null   float64
 9   num_drivers_by_dob         6820 non-null   float64
 10  yob_policyholder           6820 non-null   float64
 11  max_driver_yob             6820 non-null   float64
 12  min_driver_yob             6820 non-null   float64
 13  state_abbrev               6820 non-null   object 
 14  avg_homeown_rate_in_state  6820 non-null   float64
 15  median_household_income    6820 non-null   float64
 16  median_house_value         6820 non-null   float64
 17  fold_num_1                 6820 non-null   int64  
 18  fold_num_2                 6820 non-null   int64  
dtypes: float64(15), int64(3), object(1)
memory usage: 1012.5+ KB

In [ ]:

Data Exploration

This data set contains information about different insurance customers who have both home insurance and auto insurance with an agency. The information includes their premiums, coverages, vehicles, drivers, state of residence, and zip-code demographics.

In this exercise we will be building a model to predict who is likely to have an umbrella policy. Imagine, that our goal is to be able to recommend to new agencies (which currently don't sell umbrella policies) which customers are the best candidates. Our binary outcome variable is has_umbrella

We will focus on techniques for exploring, understanding, and interpreting data and models in a binary classification framework.


In [ ]:

Look at the "baseline" (marginal) probability of the outcome variable

It is always a good idea to know ahead of time what the baseline probability of your outcome variable is. Without this information, it is difficult to properly interpret the effectiveness of your model.


In [5]:
df_ins.has_umbrella.value_counts(), np.mean(df_ins.has_umbrella)


Out[5]:
(0    5799
 1    1021
 Name: has_umbrella, dtype: int64, 0.1497067448680352)

Initial Predictors

To start, let's look only at the variables homeown_premium and auto_premium and see how they relate to the outcome variable has_umbrella


In [6]:
plt.hist(df_ins.homeown_premium)


Out[6]:
(array([6.345e+03, 4.070e+02, 4.500e+01, 1.400e+01, 5.000e+00, 1.000e+00, 1.000e+00, 0.000e+00, 1.000e+00, 1.000e+00]),
 array([    0.,  2165.,  4330.,  6495.,  8660., 10825., 12990., 15155., 17320., 19485., 21650.]),
 <a list of 10 Patch objects>)

In [7]:
# Generally a good idea to put in custom bin widths

plt.hist(df_ins.homeown_premium, bins=np.linspace(0,10000,101));



In [8]:
bins_1 = np.linspace(0,2000,9)
bins_2 = np.array([2000,3000, 6000, 10000])
bins_final = np.unique(np.concatenate((bins_1, bins_2)))
mli.histogram_pair(df_ins.homeown_premium, df_ins.has_umbrella, bins=bins_final);



In [9]:
plt.hist(df_ins.auto_premium);



In [10]:
plt.hist(df_ins.auto_premium,np.linspace(0,15000,30+1));



In [ ]:


In [11]:
bins_1 = np.linspace(0,4000,8+1)
bins_2 = np.array([4000,6000, 8000, 15000])
bins_final = np.unique(np.concatenate((bins_1, bins_2)))
mli.histogram_pair(df_ins.auto_premium, df_ins.has_umbrella, bins=bins_final);



In [12]:
## Could do this on all the variables to understand...

In [ ]:

Simple model: 2 variables

It is often a good idea to build a model on a small number of variables first, just to get a sense of the behavior.


In [13]:
chosen_fold_variant = 'fold_num_1'
test_fold_num = 0

In [14]:
features_1 = ['auto_premium','homeown_premium']

Question

  • ### How high do you expect your precision to get? (at, say, recall=.1)

In [ ]:


In [ ]:


In [15]:
# Define train and test sets

X_train_1 = df_ins.loc[df_ins[chosen_fold_variant]!=test_fold_num,features_1]
X_test_1 = df_ins.loc[df_ins[chosen_fold_variant]==test_fold_num,features_1]

y_train = df_ins.has_umbrella[df_ins[chosen_fold_variant]!=test_fold_num]
y_test = df_ins.has_umbrella[df_ins[chosen_fold_variant]==test_fold_num]

In [ ]:

First model - default XGBoost


In [16]:
xgb_def1 = xgb.XGBClassifier()

In [17]:
xgb_def1.fit(X_train_1,y_train)
pred_probs_def1 = xgb_def1.predict_proba(X_test_1)[:,1]

Question: How should we evaluate this model?


In [18]:
roc_auc_score(y_test, pred_probs_def1), log_loss(y_test, pred_probs_def1)


Out[18]:
(0.5593078688964107, 0.43412508282348267)

In [19]:
mli.plot_pr_curves([y_test],[pred_probs_def1])


To Do: Perform your own evaluation of the model here


In [ ]:


In [ ]:


In [ ]:

Other less utilized ways to "examine" your model

  • ### Calibration (Reliability Diagram)
  • ### Variation to individual Parameter changes (Individual Conditional Expectation (ICE) plots)
  • ### Coherence - does the "story" of the model hold together?

Calibration

Idea: When your model predicts probability of 20%, does it really happen 20% of the time?

Method:

  • #### Look at test set when your model predicted outcome 1 with a probability of (approximately) 20%.
  • #### Look at fraction that actually occured.
  • #### Determine if it is within the expected range of frequency if the probability were accurate
  • #### Doing this requires binning the data

In [20]:
plt.figure(figsize=(12,4))
bins1 = np.linspace(0,.2,8+1)
bins2 = np.linspace(.2,1,8+1)
bins_final = np.unique(np.concatenate((bins1, bins2)))

mli.plot_reliability_diagram(y_test,pred_probs_def1,size_points=False, bins=bins_final);


Question: What do you think of the above reliability diagram?


In [ ]:

Individual Conditional Expectation Plot

Idea:

  • #### Hold all features constant except for one.
  • #### Vary the value of the feature over a range of values
  • #### Examine how the model prediction changes
  • #### Examine how the response curve may take different shapes (because of interactions)

In [21]:
### Define an example set
X_explore_1 =  X_test_1.sample(100)

### "Mutate" the data points and make predictions on them
mxr_def_1 = mli.ModelXRay(xgb_def1,X_explore_1)

In [22]:
mxr_def_1.feature_dependence_plots(num_pts=1, y_scaling='logit')


Out[22]:
array([33])

In [23]:
### Visualize the responses
indices = mxr_def_1.feature_dependence_plots(y_scaling='logit')


Question: What do you think about these ICE plots?


In [ ]:


In [ ]:

Second model: Let's try adding a bit more regularization

  • use an "eval_set" and early stopping
  • low learning rate and high number of trees (since it will early stop anyway)
  • smaller max_depth
  • subsample percentage
  • larger gamma and reg_lambda

In [24]:
xgb_complex1 = xgb.XGBClassifier(n_estimators=1000, learning_rate=.01, gamma=5,
                                 max_depth=2, subsample=.9, 
                                 reg_lambda=3)

In [25]:
xgb_complex1.fit(X_train_1,y_train, eval_set=[(X_test_1, y_test)], 
                 eval_metric='logloss', early_stopping_rounds = 50)
pred_probs_complex_1 = xgb_complex1.predict_proba(X_test_1)[:,1]


[0]	validation_0-logloss:0.688316
Will train until validation_0-logloss hasn't improved in 50 rounds.
[1]	validation_0-logloss:0.683585
[2]	validation_0-logloss:0.678929
[3]	validation_0-logloss:0.674391
[4]	validation_0-logloss:0.669905
[5]	validation_0-logloss:0.66556
[6]	validation_0-logloss:0.661283
[7]	validation_0-logloss:0.657071
[8]	validation_0-logloss:0.652906
[9]	validation_0-logloss:0.648884
[10]	validation_0-logloss:0.644952
[11]	validation_0-logloss:0.64111
[12]	validation_0-logloss:0.637314
[13]	validation_0-logloss:0.633592
[14]	validation_0-logloss:0.629893
[15]	validation_0-logloss:0.626373
[16]	validation_0-logloss:0.62287
[17]	validation_0-logloss:0.619443
[18]	validation_0-logloss:0.616012
[19]	validation_0-logloss:0.612687
[20]	validation_0-logloss:0.609404
[21]	validation_0-logloss:0.606176
[22]	validation_0-logloss:0.603019
[23]	validation_0-logloss:0.599926
[24]	validation_0-logloss:0.596908
[25]	validation_0-logloss:0.593962
[26]	validation_0-logloss:0.59103
[27]	validation_0-logloss:0.588148
[28]	validation_0-logloss:0.585333
[29]	validation_0-logloss:0.582555
[30]	validation_0-logloss:0.579862
[31]	validation_0-logloss:0.577217
[32]	validation_0-logloss:0.57462
[33]	validation_0-logloss:0.57207
[34]	validation_0-logloss:0.569555
[35]	validation_0-logloss:0.567068
[36]	validation_0-logloss:0.564608
[37]	validation_0-logloss:0.562247
[38]	validation_0-logloss:0.559952
[39]	validation_0-logloss:0.557674
[40]	validation_0-logloss:0.555423
[41]	validation_0-logloss:0.553222
[42]	validation_0-logloss:0.551052
[43]	validation_0-logloss:0.548902
[44]	validation_0-logloss:0.546791
[45]	validation_0-logloss:0.544702
[46]	validation_0-logloss:0.542658
[47]	validation_0-logloss:0.540652
[48]	validation_0-logloss:0.538684
[49]	validation_0-logloss:0.536735
[50]	validation_0-logloss:0.534859
[51]	validation_0-logloss:0.53298
[52]	validation_0-logloss:0.531161
[53]	validation_0-logloss:0.529367
[54]	validation_0-logloss:0.527584
[55]	validation_0-logloss:0.525892
[56]	validation_0-logloss:0.524176
[57]	validation_0-logloss:0.522521
[58]	validation_0-logloss:0.520867
[59]	validation_0-logloss:0.51925
[60]	validation_0-logloss:0.517665
[61]	validation_0-logloss:0.51608
[62]	validation_0-logloss:0.514543
[63]	validation_0-logloss:0.513015
[64]	validation_0-logloss:0.511529
[65]	validation_0-logloss:0.510092
[66]	validation_0-logloss:0.508641
[67]	validation_0-logloss:0.507247
[68]	validation_0-logloss:0.505863
[69]	validation_0-logloss:0.504506
[70]	validation_0-logloss:0.503144
[71]	validation_0-logloss:0.501846
[72]	validation_0-logloss:0.500545
[73]	validation_0-logloss:0.499292
[74]	validation_0-logloss:0.498068
[75]	validation_0-logloss:0.496834
[76]	validation_0-logloss:0.495613
[77]	validation_0-logloss:0.494436
[78]	validation_0-logloss:0.493289
[79]	validation_0-logloss:0.49216
[80]	validation_0-logloss:0.49106
[81]	validation_0-logloss:0.489931
[82]	validation_0-logloss:0.488866
[83]	validation_0-logloss:0.487799
[84]	validation_0-logloss:0.486769
[85]	validation_0-logloss:0.485755
[86]	validation_0-logloss:0.484758
[87]	validation_0-logloss:0.483762
[88]	validation_0-logloss:0.482804
[89]	validation_0-logloss:0.481856
[90]	validation_0-logloss:0.480914
[91]	validation_0-logloss:0.480013
[92]	validation_0-logloss:0.47912
[93]	validation_0-logloss:0.478215
[94]	validation_0-logloss:0.477328
[95]	validation_0-logloss:0.476454
[96]	validation_0-logloss:0.475599
[97]	validation_0-logloss:0.474783
[98]	validation_0-logloss:0.473955
[99]	validation_0-logloss:0.473163
[100]	validation_0-logloss:0.472356
[101]	validation_0-logloss:0.471577
[102]	validation_0-logloss:0.47082
[103]	validation_0-logloss:0.470067
[104]	validation_0-logloss:0.469335
[105]	validation_0-logloss:0.468607
[106]	validation_0-logloss:0.467879
[107]	validation_0-logloss:0.467194
[108]	validation_0-logloss:0.466519
[109]	validation_0-logloss:0.465847
[110]	validation_0-logloss:0.465183
[111]	validation_0-logloss:0.464546
[112]	validation_0-logloss:0.46391
[113]	validation_0-logloss:0.463281
[114]	validation_0-logloss:0.462669
[115]	validation_0-logloss:0.462064
[116]	validation_0-logloss:0.461472
[117]	validation_0-logloss:0.460887
[118]	validation_0-logloss:0.460336
[119]	validation_0-logloss:0.459771
[120]	validation_0-logloss:0.459222
[121]	validation_0-logloss:0.458695
[122]	validation_0-logloss:0.458164
[123]	validation_0-logloss:0.457648
[124]	validation_0-logloss:0.457146
[125]	validation_0-logloss:0.456639
[126]	validation_0-logloss:0.456138
[127]	validation_0-logloss:0.455626
[128]	validation_0-logloss:0.455145
[129]	validation_0-logloss:0.454685
[130]	validation_0-logloss:0.454211
[131]	validation_0-logloss:0.453755
[132]	validation_0-logloss:0.453318
[133]	validation_0-logloss:0.452883
[134]	validation_0-logloss:0.452463
[135]	validation_0-logloss:0.452057
[136]	validation_0-logloss:0.451651
[137]	validation_0-logloss:0.451246
[138]	validation_0-logloss:0.450876
[139]	validation_0-logloss:0.450472
[140]	validation_0-logloss:0.450087
[141]	validation_0-logloss:0.449715
[142]	validation_0-logloss:0.449335
[143]	validation_0-logloss:0.448981
[144]	validation_0-logloss:0.448618
[145]	validation_0-logloss:0.448279
[146]	validation_0-logloss:0.447934
[147]	validation_0-logloss:0.447598
[148]	validation_0-logloss:0.447272
[149]	validation_0-logloss:0.446944
[150]	validation_0-logloss:0.446619
[151]	validation_0-logloss:0.446318
[152]	validation_0-logloss:0.446016
[153]	validation_0-logloss:0.44572
[154]	validation_0-logloss:0.44542
[155]	validation_0-logloss:0.445114
[156]	validation_0-logloss:0.444832
[157]	validation_0-logloss:0.444526
[158]	validation_0-logloss:0.444241
[159]	validation_0-logloss:0.443986
[160]	validation_0-logloss:0.443735
[161]	validation_0-logloss:0.443472
[162]	validation_0-logloss:0.443213
[163]	validation_0-logloss:0.442983
[164]	validation_0-logloss:0.442726
[165]	validation_0-logloss:0.442489
[166]	validation_0-logloss:0.442258
[167]	validation_0-logloss:0.442027
[168]	validation_0-logloss:0.44181
[169]	validation_0-logloss:0.441593
[170]	validation_0-logloss:0.441371
[171]	validation_0-logloss:0.441159
[172]	validation_0-logloss:0.440961
[173]	validation_0-logloss:0.440729
[174]	validation_0-logloss:0.440543
[175]	validation_0-logloss:0.440348
[176]	validation_0-logloss:0.44016
[177]	validation_0-logloss:0.439965
[178]	validation_0-logloss:0.439785
[179]	validation_0-logloss:0.439605
[180]	validation_0-logloss:0.439431
[181]	validation_0-logloss:0.439254
[182]	validation_0-logloss:0.439068
[183]	validation_0-logloss:0.438906
[184]	validation_0-logloss:0.43874
[185]	validation_0-logloss:0.438578
[186]	validation_0-logloss:0.438419
[187]	validation_0-logloss:0.438264
[188]	validation_0-logloss:0.43811
[189]	validation_0-logloss:0.437966
[190]	validation_0-logloss:0.437835
[191]	validation_0-logloss:0.437683
[192]	validation_0-logloss:0.437559
[193]	validation_0-logloss:0.437403
[194]	validation_0-logloss:0.437269
[195]	validation_0-logloss:0.437144
[196]	validation_0-logloss:0.437007
[197]	validation_0-logloss:0.436883
[198]	validation_0-logloss:0.43676
[199]	validation_0-logloss:0.436636
[200]	validation_0-logloss:0.436519
[201]	validation_0-logloss:0.436396
[202]	validation_0-logloss:0.436279
[203]	validation_0-logloss:0.436168
[204]	validation_0-logloss:0.43606
[205]	validation_0-logloss:0.435951
[206]	validation_0-logloss:0.435855
[207]	validation_0-logloss:0.435743
[208]	validation_0-logloss:0.435656
[209]	validation_0-logloss:0.43554
[210]	validation_0-logloss:0.435445
[211]	validation_0-logloss:0.435354
[212]	validation_0-logloss:0.435271
[213]	validation_0-logloss:0.435168
[214]	validation_0-logloss:0.43509
[215]	validation_0-logloss:0.434999
[216]	validation_0-logloss:0.434914
[217]	validation_0-logloss:0.434837
[218]	validation_0-logloss:0.434761
[219]	validation_0-logloss:0.434689
[220]	validation_0-logloss:0.434609
[221]	validation_0-logloss:0.434536
[222]	validation_0-logloss:0.43443
[223]	validation_0-logloss:0.43436
[224]	validation_0-logloss:0.434285
[225]	validation_0-logloss:0.4342
[226]	validation_0-logloss:0.434131
[227]	validation_0-logloss:0.434065
[228]	validation_0-logloss:0.433994
[229]	validation_0-logloss:0.43393
[230]	validation_0-logloss:0.433857
[231]	validation_0-logloss:0.433805
[232]	validation_0-logloss:0.43375
[233]	validation_0-logloss:0.433704
[234]	validation_0-logloss:0.433628
[235]	validation_0-logloss:0.433581
[236]	validation_0-logloss:0.433525
[237]	validation_0-logloss:0.43348
[238]	validation_0-logloss:0.433435
[239]	validation_0-logloss:0.43338
[240]	validation_0-logloss:0.433333
[241]	validation_0-logloss:0.433282
[242]	validation_0-logloss:0.433227
[243]	validation_0-logloss:0.433181
[244]	validation_0-logloss:0.433134
[245]	validation_0-logloss:0.433092
[246]	validation_0-logloss:0.433048
[247]	validation_0-logloss:0.433015
[248]	validation_0-logloss:0.432983
[249]	validation_0-logloss:0.432944
[250]	validation_0-logloss:0.432891
[251]	validation_0-logloss:0.43285
[252]	validation_0-logloss:0.432813
[253]	validation_0-logloss:0.432776
[254]	validation_0-logloss:0.43275
[255]	validation_0-logloss:0.432708
[256]	validation_0-logloss:0.432682
[257]	validation_0-logloss:0.432646
[258]	validation_0-logloss:0.432625
[259]	validation_0-logloss:0.432592
[260]	validation_0-logloss:0.432556
[261]	validation_0-logloss:0.43252
[262]	validation_0-logloss:0.432479
[263]	validation_0-logloss:0.432445
[264]	validation_0-logloss:0.432412
[265]	validation_0-logloss:0.43238
[266]	validation_0-logloss:0.432348
[267]	validation_0-logloss:0.432308
[268]	validation_0-logloss:0.432282
[269]	validation_0-logloss:0.432258
[270]	validation_0-logloss:0.432233
[271]	validation_0-logloss:0.4322
[272]	validation_0-logloss:0.432184
[273]	validation_0-logloss:0.43216
[274]	validation_0-logloss:0.432139
[275]	validation_0-logloss:0.432111
[276]	validation_0-logloss:0.432089
[277]	validation_0-logloss:0.432073
[278]	validation_0-logloss:0.432054
[279]	validation_0-logloss:0.432031
[280]	validation_0-logloss:0.432027
[281]	validation_0-logloss:0.432012
[282]	validation_0-logloss:0.432006
[283]	validation_0-logloss:0.431987
[284]	validation_0-logloss:0.431976
[285]	validation_0-logloss:0.431945
[286]	validation_0-logloss:0.431928
[287]	validation_0-logloss:0.431898
[288]	validation_0-logloss:0.431861
[289]	validation_0-logloss:0.431839
[290]	validation_0-logloss:0.431832
[291]	validation_0-logloss:0.431831
[292]	validation_0-logloss:0.431816
[293]	validation_0-logloss:0.431809
[294]	validation_0-logloss:0.431788
[295]	validation_0-logloss:0.431777
[296]	validation_0-logloss:0.431765
[297]	validation_0-logloss:0.431756
[298]	validation_0-logloss:0.431756
[299]	validation_0-logloss:0.431734
[300]	validation_0-logloss:0.431736
[301]	validation_0-logloss:0.431728
[302]	validation_0-logloss:0.431727
[303]	validation_0-logloss:0.431732
[304]	validation_0-logloss:0.43172
[305]	validation_0-logloss:0.431717
[306]	validation_0-logloss:0.431696
[307]	validation_0-logloss:0.431689
[308]	validation_0-logloss:0.43169
[309]	validation_0-logloss:0.431678
[310]	validation_0-logloss:0.431668
[311]	validation_0-logloss:0.431655
[312]	validation_0-logloss:0.431651
[313]	validation_0-logloss:0.431641
[314]	validation_0-logloss:0.431647
[315]	validation_0-logloss:0.431652
[316]	validation_0-logloss:0.431644
[317]	validation_0-logloss:0.43165
[318]	validation_0-logloss:0.431648
[319]	validation_0-logloss:0.431634
[320]	validation_0-logloss:0.43163
[321]	validation_0-logloss:0.431624
[322]	validation_0-logloss:0.431623
[323]	validation_0-logloss:0.431605
[324]	validation_0-logloss:0.431571
[325]	validation_0-logloss:0.431568
[326]	validation_0-logloss:0.431551
[327]	validation_0-logloss:0.431546
[328]	validation_0-logloss:0.431542
[329]	validation_0-logloss:0.431533
[330]	validation_0-logloss:0.431536
[331]	validation_0-logloss:0.431542
[332]	validation_0-logloss:0.431543
[333]	validation_0-logloss:0.431527
[334]	validation_0-logloss:0.431524
[335]	validation_0-logloss:0.431519
[336]	validation_0-logloss:0.431515
[337]	validation_0-logloss:0.43151
[338]	validation_0-logloss:0.431507
[339]	validation_0-logloss:0.431503
[340]	validation_0-logloss:0.431509
[341]	validation_0-logloss:0.431506
[342]	validation_0-logloss:0.431496
[343]	validation_0-logloss:0.431494
[344]	validation_0-logloss:0.431502
[345]	validation_0-logloss:0.431493
[346]	validation_0-logloss:0.431504
[347]	validation_0-logloss:0.431513
[348]	validation_0-logloss:0.431511
[349]	validation_0-logloss:0.431515
[350]	validation_0-logloss:0.431505
[351]	validation_0-logloss:0.431504
[352]	validation_0-logloss:0.431493
[353]	validation_0-logloss:0.431492
[354]	validation_0-logloss:0.431495
[355]	validation_0-logloss:0.431499
[356]	validation_0-logloss:0.43151
[357]	validation_0-logloss:0.431522
[358]	validation_0-logloss:0.431527
[359]	validation_0-logloss:0.431525
[360]	validation_0-logloss:0.431525
[361]	validation_0-logloss:0.431525
[362]	validation_0-logloss:0.431498
[363]	validation_0-logloss:0.431498
[364]	validation_0-logloss:0.431491
[365]	validation_0-logloss:0.431491
[366]	validation_0-logloss:0.431492
[367]	validation_0-logloss:0.431503
[368]	validation_0-logloss:0.431506
[369]	validation_0-logloss:0.431518
[370]	validation_0-logloss:0.431517
[371]	validation_0-logloss:0.431505
[372]	validation_0-logloss:0.431494
[373]	validation_0-logloss:0.431493
[374]	validation_0-logloss:0.431494
[375]	validation_0-logloss:0.431496
[376]	validation_0-logloss:0.431497
[377]	validation_0-logloss:0.431496
[378]	validation_0-logloss:0.431498
[379]	validation_0-logloss:0.431511
[380]	validation_0-logloss:0.431513
[381]	validation_0-logloss:0.431514
[382]	validation_0-logloss:0.431515
[383]	validation_0-logloss:0.431516
[384]	validation_0-logloss:0.431528
[385]	validation_0-logloss:0.431523
[386]	validation_0-logloss:0.431525
[387]	validation_0-logloss:0.431525
[388]	validation_0-logloss:0.431526
[389]	validation_0-logloss:0.431527
[390]	validation_0-logloss:0.431523
[391]	validation_0-logloss:0.431524
[392]	validation_0-logloss:0.431525
[393]	validation_0-logloss:0.431526
[394]	validation_0-logloss:0.431528
[395]	validation_0-logloss:0.431536
[396]	validation_0-logloss:0.431538
[397]	validation_0-logloss:0.431537
[398]	validation_0-logloss:0.431521
[399]	validation_0-logloss:0.431533
[400]	validation_0-logloss:0.431535
[401]	validation_0-logloss:0.431536
[402]	validation_0-logloss:0.431542
[403]	validation_0-logloss:0.431543
[404]	validation_0-logloss:0.431539
[405]	validation_0-logloss:0.431541
[406]	validation_0-logloss:0.431536
[407]	validation_0-logloss:0.431529
[408]	validation_0-logloss:0.431518
[409]	validation_0-logloss:0.43152
[410]	validation_0-logloss:0.431522
[411]	validation_0-logloss:0.431516
[412]	validation_0-logloss:0.431518
[413]	validation_0-logloss:0.431513
[414]	validation_0-logloss:0.431515
Stopping. Best iteration:
[364]	validation_0-logloss:0.431491


In [26]:
## Performance of this model
roc_auc_score(y_test, pred_probs_complex_1), log_loss(y_test, pred_probs_complex_1)


Out[26]:
(0.5583129461443078, 0.43149143935742224)

In [27]:
## Performance of previous model
roc_auc_score(y_test, pred_probs_def1), log_loss(y_test, pred_probs_def1)


Out[27]:
(0.5593078688964107, 0.43412508282348267)

In [28]:
mli.plot_pr_curves([y_test,y_test],[pred_probs_def1,pred_probs_complex_1])



In [ ]:


In [29]:
bins1 = np.linspace(0,.2,8+1)
bins2 = np.linspace(.2,1,8+1)
bins_final = np.unique(np.concatenate((bins1, bins2)))
plt.figure(figsize=(10,4))
mli.plot_reliability_diagram(y_test,pred_probs_complex_1,size_points=False, 
                             bins=bins_final);



In [30]:
### Examine Model More Deeply

mxr_complex_1 = mli.ModelXRay(xgb_complex1,X_explore_1)

In [31]:
## Result for more regularized model

mxr_complex_1.feature_dependence_plots(pts_selected=indices, y_scaling='logit')


Out[31]:
array([21, 22, 55, 24,  9])

In [32]:
## Results for less regularized model

mxr_def_1.feature_dependence_plots(pts_selected=indices, y_scaling='logit')


Out[32]:
array([21, 22, 55, 24,  9])

Questions

  • ### Which model looks more "coherent" ?
  • ### Which model would you feel more comfortable justifying to your boss / clients?
  • ### Which model will provide a better "user experience"?
  • ### Which model do you expect to generalize better to new cases?

One more question

  • ### What do you think accounts for the non-monotonicity of the response wrt the premiums?

In [ ]:


In [ ]:

Next model: Add in one additional feature


In [33]:
features_1a = ['auto_premium','homeown_premium'
                 ,'avg_homeown_rate_in_state']

In [34]:
X_train_1a = df_ins.loc[df_ins[chosen_fold_variant]!=test_fold_num,features_1a]
X_test_1a = df_ins.loc[df_ins[chosen_fold_variant]==test_fold_num,features_1a]

In [35]:
xgb_complex1a= xgb.XGBClassifier(n_estimators=3000, learning_rate=.01, gamma=5, max_depth=3,
                                 subsample=.8, reg_lambda=3)

In [36]:
xgb_complex1a.fit(X_train_1a,y_train, eval_metric='logloss',
                  eval_set=[(X_test_1a, y_test)], early_stopping_rounds=50)


[0]	validation_0-logloss:0.687633
Will train until validation_0-logloss hasn't improved in 50 rounds.
[1]	validation_0-logloss:0.682155
[2]	validation_0-logloss:0.676769
[3]	validation_0-logloss:0.671567
[4]	validation_0-logloss:0.666418
[5]	validation_0-logloss:0.661365
[6]	validation_0-logloss:0.656466
[7]	validation_0-logloss:0.651609
[8]	validation_0-logloss:0.646844
[9]	validation_0-logloss:0.642166
[10]	validation_0-logloss:0.637582
[11]	validation_0-logloss:0.633123
[12]	validation_0-logloss:0.628737
[13]	validation_0-logloss:0.624364
[14]	validation_0-logloss:0.620085
[15]	validation_0-logloss:0.615948
[16]	validation_0-logloss:0.611784
[17]	validation_0-logloss:0.607811
[18]	validation_0-logloss:0.603806
[19]	validation_0-logloss:0.599944
[20]	validation_0-logloss:0.596101
[21]	validation_0-logloss:0.592349
[22]	validation_0-logloss:0.588679
[23]	validation_0-logloss:0.585123
[24]	validation_0-logloss:0.581596
[25]	validation_0-logloss:0.578082
[26]	validation_0-logloss:0.574645
[27]	validation_0-logloss:0.571228
[28]	validation_0-logloss:0.567943
[29]	validation_0-logloss:0.56473
[30]	validation_0-logloss:0.561514
[31]	validation_0-logloss:0.558386
[32]	validation_0-logloss:0.55528
[33]	validation_0-logloss:0.55225
[34]	validation_0-logloss:0.549307
[35]	validation_0-logloss:0.546315
[36]	validation_0-logloss:0.543433
[37]	validation_0-logloss:0.540659
[38]	validation_0-logloss:0.537866
[39]	validation_0-logloss:0.535164
[40]	validation_0-logloss:0.53243
[41]	validation_0-logloss:0.529795
[42]	validation_0-logloss:0.527162
[43]	validation_0-logloss:0.524584
[44]	validation_0-logloss:0.522019
[45]	validation_0-logloss:0.519517
[46]	validation_0-logloss:0.517102
[47]	validation_0-logloss:0.514722
[48]	validation_0-logloss:0.512388
[49]	validation_0-logloss:0.510057
[50]	validation_0-logloss:0.507757
[51]	validation_0-logloss:0.505529
[52]	validation_0-logloss:0.503325
[53]	validation_0-logloss:0.501164
[54]	validation_0-logloss:0.499012
[55]	validation_0-logloss:0.496939
[56]	validation_0-logloss:0.494857
[57]	validation_0-logloss:0.492812
[58]	validation_0-logloss:0.490782
[59]	validation_0-logloss:0.488772
[60]	validation_0-logloss:0.486825
[61]	validation_0-logloss:0.484881
[62]	validation_0-logloss:0.482943
[63]	validation_0-logloss:0.481085
[64]	validation_0-logloss:0.479261
[65]	validation_0-logloss:0.477456
[66]	validation_0-logloss:0.47566
[67]	validation_0-logloss:0.473926
[68]	validation_0-logloss:0.472185
[69]	validation_0-logloss:0.470508
[70]	validation_0-logloss:0.468859
[71]	validation_0-logloss:0.467181
[72]	validation_0-logloss:0.465558
[73]	validation_0-logloss:0.463974
[74]	validation_0-logloss:0.46238
[75]	validation_0-logloss:0.460841
[76]	validation_0-logloss:0.459303
[77]	validation_0-logloss:0.457755
[78]	validation_0-logloss:0.456245
[79]	validation_0-logloss:0.454778
[80]	validation_0-logloss:0.453339
[81]	validation_0-logloss:0.451946
[82]	validation_0-logloss:0.450617
[83]	validation_0-logloss:0.449279
[84]	validation_0-logloss:0.447958
[85]	validation_0-logloss:0.446636
[86]	validation_0-logloss:0.445314
[87]	validation_0-logloss:0.443995
[88]	validation_0-logloss:0.442702
[89]	validation_0-logloss:0.441451
[90]	validation_0-logloss:0.440254
[91]	validation_0-logloss:0.439074
[92]	validation_0-logloss:0.437912
[93]	validation_0-logloss:0.436696
[94]	validation_0-logloss:0.435542
[95]	validation_0-logloss:0.434384
[96]	validation_0-logloss:0.433257
[97]	validation_0-logloss:0.432148
[98]	validation_0-logloss:0.431068
[99]	validation_0-logloss:0.429977
[100]	validation_0-logloss:0.428903
[101]	validation_0-logloss:0.427871
[102]	validation_0-logloss:0.426847
[103]	validation_0-logloss:0.425843
[104]	validation_0-logloss:0.424865
[105]	validation_0-logloss:0.423882
[106]	validation_0-logloss:0.422925
[107]	validation_0-logloss:0.421948
[108]	validation_0-logloss:0.420974
[109]	validation_0-logloss:0.42004
[110]	validation_0-logloss:0.419155
[111]	validation_0-logloss:0.418274
[112]	validation_0-logloss:0.4174
[113]	validation_0-logloss:0.416497
[114]	validation_0-logloss:0.415656
[115]	validation_0-logloss:0.414812
[116]	validation_0-logloss:0.413989
[117]	validation_0-logloss:0.413145
[118]	validation_0-logloss:0.412331
[119]	validation_0-logloss:0.411553
[120]	validation_0-logloss:0.410772
[121]	validation_0-logloss:0.410023
[122]	validation_0-logloss:0.409262
[123]	validation_0-logloss:0.408505
[124]	validation_0-logloss:0.407806
[125]	validation_0-logloss:0.407071
[126]	validation_0-logloss:0.406349
[127]	validation_0-logloss:0.405625
[128]	validation_0-logloss:0.404927
[129]	validation_0-logloss:0.404223
[130]	validation_0-logloss:0.403559
[131]	validation_0-logloss:0.402901
[132]	validation_0-logloss:0.402254
[133]	validation_0-logloss:0.40158
[134]	validation_0-logloss:0.400942
[135]	validation_0-logloss:0.400325
[136]	validation_0-logloss:0.399704
[137]	validation_0-logloss:0.399084
[138]	validation_0-logloss:0.3985
[139]	validation_0-logloss:0.397936
[140]	validation_0-logloss:0.397358
[141]	validation_0-logloss:0.396782
[142]	validation_0-logloss:0.396229
[143]	validation_0-logloss:0.395693
[144]	validation_0-logloss:0.395143
[145]	validation_0-logloss:0.394613
[146]	validation_0-logloss:0.394067
[147]	validation_0-logloss:0.393532
[148]	validation_0-logloss:0.392994
[149]	validation_0-logloss:0.392465
[150]	validation_0-logloss:0.391954
[151]	validation_0-logloss:0.391472
[152]	validation_0-logloss:0.390955
[153]	validation_0-logloss:0.390481
[154]	validation_0-logloss:0.390023
[155]	validation_0-logloss:0.389575
[156]	validation_0-logloss:0.389111
[157]	validation_0-logloss:0.388631
[158]	validation_0-logloss:0.388156
[159]	validation_0-logloss:0.387715
[160]	validation_0-logloss:0.387265
[161]	validation_0-logloss:0.386854
[162]	validation_0-logloss:0.386434
[163]	validation_0-logloss:0.386002
[164]	validation_0-logloss:0.385596
[165]	validation_0-logloss:0.385205
[166]	validation_0-logloss:0.384832
[167]	validation_0-logloss:0.384445
[168]	validation_0-logloss:0.384079
[169]	validation_0-logloss:0.383655
[170]	validation_0-logloss:0.383279
[171]	validation_0-logloss:0.382904
[172]	validation_0-logloss:0.382512
[173]	validation_0-logloss:0.382162
[174]	validation_0-logloss:0.381777
[175]	validation_0-logloss:0.381437
[176]	validation_0-logloss:0.381036
[177]	validation_0-logloss:0.38071
[178]	validation_0-logloss:0.380394
[179]	validation_0-logloss:0.380063
[180]	validation_0-logloss:0.379747
[181]	validation_0-logloss:0.379369
[182]	validation_0-logloss:0.379056
[183]	validation_0-logloss:0.378745
[184]	validation_0-logloss:0.378459
[185]	validation_0-logloss:0.37815
[186]	validation_0-logloss:0.377857
[187]	validation_0-logloss:0.377571
[188]	validation_0-logloss:0.377253
[189]	validation_0-logloss:0.376961
[190]	validation_0-logloss:0.376655
[191]	validation_0-logloss:0.376384
[192]	validation_0-logloss:0.376089
[193]	validation_0-logloss:0.375777
[194]	validation_0-logloss:0.375481
[195]	validation_0-logloss:0.375182
[196]	validation_0-logloss:0.374891
[197]	validation_0-logloss:0.374616
[198]	validation_0-logloss:0.374377
[199]	validation_0-logloss:0.374114
[200]	validation_0-logloss:0.373857
[201]	validation_0-logloss:0.373602
[202]	validation_0-logloss:0.373352
[203]	validation_0-logloss:0.373128
[204]	validation_0-logloss:0.372913
[205]	validation_0-logloss:0.372681
[206]	validation_0-logloss:0.372472
[207]	validation_0-logloss:0.372265
[208]	validation_0-logloss:0.372072
[209]	validation_0-logloss:0.371831
[210]	validation_0-logloss:0.371599
[211]	validation_0-logloss:0.371385
[212]	validation_0-logloss:0.371181
[213]	validation_0-logloss:0.370929
[214]	validation_0-logloss:0.370742
[215]	validation_0-logloss:0.370506
[216]	validation_0-logloss:0.370324
[217]	validation_0-logloss:0.370123
[218]	validation_0-logloss:0.369924
[219]	validation_0-logloss:0.369721
[220]	validation_0-logloss:0.369556
[221]	validation_0-logloss:0.36938
[222]	validation_0-logloss:0.369214
[223]	validation_0-logloss:0.369004
[224]	validation_0-logloss:0.368806
[225]	validation_0-logloss:0.36862
[226]	validation_0-logloss:0.368458
[227]	validation_0-logloss:0.368315
[228]	validation_0-logloss:0.368169
[229]	validation_0-logloss:0.368019
[230]	validation_0-logloss:0.367856
[231]	validation_0-logloss:0.367686
[232]	validation_0-logloss:0.367511
[233]	validation_0-logloss:0.367333
[234]	validation_0-logloss:0.36714
[235]	validation_0-logloss:0.366999
[236]	validation_0-logloss:0.366854
[237]	validation_0-logloss:0.366735
[238]	validation_0-logloss:0.36659
[239]	validation_0-logloss:0.366417
[240]	validation_0-logloss:0.366285
[241]	validation_0-logloss:0.366144
[242]	validation_0-logloss:0.366014
[243]	validation_0-logloss:0.365883
[244]	validation_0-logloss:0.365733
[245]	validation_0-logloss:0.365615
[246]	validation_0-logloss:0.365446
[247]	validation_0-logloss:0.365277
[248]	validation_0-logloss:0.365188
[249]	validation_0-logloss:0.365051
[250]	validation_0-logloss:0.364927
[251]	validation_0-logloss:0.3648
[252]	validation_0-logloss:0.364687
[253]	validation_0-logloss:0.364573
[254]	validation_0-logloss:0.364479
[255]	validation_0-logloss:0.364364
[256]	validation_0-logloss:0.364256
[257]	validation_0-logloss:0.364185
[258]	validation_0-logloss:0.364126
[259]	validation_0-logloss:0.364019
[260]	validation_0-logloss:0.363902
[261]	validation_0-logloss:0.363826
[262]	validation_0-logloss:0.363736
[263]	validation_0-logloss:0.363654
[264]	validation_0-logloss:0.363589
[265]	validation_0-logloss:0.363508
[266]	validation_0-logloss:0.363404
[267]	validation_0-logloss:0.363267
[268]	validation_0-logloss:0.363134
[269]	validation_0-logloss:0.363051
[270]	validation_0-logloss:0.362919
[271]	validation_0-logloss:0.3628
[272]	validation_0-logloss:0.362668
[273]	validation_0-logloss:0.36256
[274]	validation_0-logloss:0.362459
[275]	validation_0-logloss:0.362407
[276]	validation_0-logloss:0.362326
[277]	validation_0-logloss:0.362255
[278]	validation_0-logloss:0.362146
[279]	validation_0-logloss:0.362059
[280]	validation_0-logloss:0.36193
[281]	validation_0-logloss:0.361872
[282]	validation_0-logloss:0.361796
[283]	validation_0-logloss:0.361682
[284]	validation_0-logloss:0.361609
[285]	validation_0-logloss:0.361549
[286]	validation_0-logloss:0.361451
[287]	validation_0-logloss:0.361399
[288]	validation_0-logloss:0.36132
[289]	validation_0-logloss:0.361247
[290]	validation_0-logloss:0.361189
[291]	validation_0-logloss:0.361098
[292]	validation_0-logloss:0.361008
[293]	validation_0-logloss:0.360959
[294]	validation_0-logloss:0.360899
[295]	validation_0-logloss:0.360824
[296]	validation_0-logloss:0.360733
[297]	validation_0-logloss:0.360697
[298]	validation_0-logloss:0.360655
[299]	validation_0-logloss:0.360602
[300]	validation_0-logloss:0.360544
[301]	validation_0-logloss:0.360489
[302]	validation_0-logloss:0.360442
[303]	validation_0-logloss:0.360399
[304]	validation_0-logloss:0.360323
[305]	validation_0-logloss:0.360256
[306]	validation_0-logloss:0.3602
[307]	validation_0-logloss:0.360101
[308]	validation_0-logloss:0.36006
[309]	validation_0-logloss:0.359961
[310]	validation_0-logloss:0.35994
[311]	validation_0-logloss:0.3599
[312]	validation_0-logloss:0.359844
[313]	validation_0-logloss:0.359772
[314]	validation_0-logloss:0.359759
[315]	validation_0-logloss:0.359702
[316]	validation_0-logloss:0.35966
[317]	validation_0-logloss:0.359595
[318]	validation_0-logloss:0.359584
[319]	validation_0-logloss:0.359529
[320]	validation_0-logloss:0.359476
[321]	validation_0-logloss:0.359427
[322]	validation_0-logloss:0.359369
[323]	validation_0-logloss:0.359332
[324]	validation_0-logloss:0.35929
[325]	validation_0-logloss:0.359259
[326]	validation_0-logloss:0.359202
[327]	validation_0-logloss:0.359174
[328]	validation_0-logloss:0.359131
[329]	validation_0-logloss:0.359096
[330]	validation_0-logloss:0.35904
[331]	validation_0-logloss:0.358999
[332]	validation_0-logloss:0.35895
[333]	validation_0-logloss:0.358922
[334]	validation_0-logloss:0.358875
[335]	validation_0-logloss:0.35883
[336]	validation_0-logloss:0.358785
[337]	validation_0-logloss:0.358756
[338]	validation_0-logloss:0.358697
[339]	validation_0-logloss:0.358679
[340]	validation_0-logloss:0.358587
[341]	validation_0-logloss:0.358585
[342]	validation_0-logloss:0.358519
[343]	validation_0-logloss:0.358531
[344]	validation_0-logloss:0.358505
[345]	validation_0-logloss:0.358435
[346]	validation_0-logloss:0.358393
[347]	validation_0-logloss:0.358359
[348]	validation_0-logloss:0.358298
[349]	validation_0-logloss:0.35825
[350]	validation_0-logloss:0.358203
[351]	validation_0-logloss:0.358193
[352]	validation_0-logloss:0.358182
[353]	validation_0-logloss:0.358164
[354]	validation_0-logloss:0.358156
[355]	validation_0-logloss:0.358076
[356]	validation_0-logloss:0.358057
[357]	validation_0-logloss:0.358031
[358]	validation_0-logloss:0.358014
[359]	validation_0-logloss:0.357986
[360]	validation_0-logloss:0.35799
[361]	validation_0-logloss:0.357965
[362]	validation_0-logloss:0.357877
[363]	validation_0-logloss:0.357863
[364]	validation_0-logloss:0.357853
[365]	validation_0-logloss:0.357829
[366]	validation_0-logloss:0.357779
[367]	validation_0-logloss:0.357749
[368]	validation_0-logloss:0.357733
[369]	validation_0-logloss:0.357689
[370]	validation_0-logloss:0.357661
[371]	validation_0-logloss:0.357646
[372]	validation_0-logloss:0.357625
[373]	validation_0-logloss:0.357646
[374]	validation_0-logloss:0.357647
[375]	validation_0-logloss:0.357615
[376]	validation_0-logloss:0.357616
[377]	validation_0-logloss:0.357599
[378]	validation_0-logloss:0.357547
[379]	validation_0-logloss:0.357545
[380]	validation_0-logloss:0.357497
[381]	validation_0-logloss:0.357414
[382]	validation_0-logloss:0.357338
[383]	validation_0-logloss:0.357317
[384]	validation_0-logloss:0.357302
[385]	validation_0-logloss:0.357308
[386]	validation_0-logloss:0.357319
[387]	validation_0-logloss:0.357242
[388]	validation_0-logloss:0.357243
[389]	validation_0-logloss:0.357232
[390]	validation_0-logloss:0.357181
[391]	validation_0-logloss:0.357163
[392]	validation_0-logloss:0.357162
[393]	validation_0-logloss:0.357138
[394]	validation_0-logloss:0.357105
[395]	validation_0-logloss:0.357081
[396]	validation_0-logloss:0.35703
[397]	validation_0-logloss:0.357032
[398]	validation_0-logloss:0.357025
[399]	validation_0-logloss:0.356985
[400]	validation_0-logloss:0.356991
[401]	validation_0-logloss:0.356909
[402]	validation_0-logloss:0.356867
[403]	validation_0-logloss:0.356869
[404]	validation_0-logloss:0.356842
[405]	validation_0-logloss:0.356847
[406]	validation_0-logloss:0.356815
[407]	validation_0-logloss:0.356803
[408]	validation_0-logloss:0.356805
[409]	validation_0-logloss:0.356784
[410]	validation_0-logloss:0.356771
[411]	validation_0-logloss:0.356773
[412]	validation_0-logloss:0.356739
[413]	validation_0-logloss:0.356729
[414]	validation_0-logloss:0.356686
[415]	validation_0-logloss:0.356688
[416]	validation_0-logloss:0.356679
[417]	validation_0-logloss:0.356648
[418]	validation_0-logloss:0.356654
[419]	validation_0-logloss:0.356653
[420]	validation_0-logloss:0.356685
[421]	validation_0-logloss:0.356669
[422]	validation_0-logloss:0.356646
[423]	validation_0-logloss:0.356649
[424]	validation_0-logloss:0.356586
[425]	validation_0-logloss:0.356535
[426]	validation_0-logloss:0.356542
[427]	validation_0-logloss:0.356547
[428]	validation_0-logloss:0.35648
[429]	validation_0-logloss:0.356464
[430]	validation_0-logloss:0.356483
[431]	validation_0-logloss:0.356462
[432]	validation_0-logloss:0.356463
[433]	validation_0-logloss:0.356467
[434]	validation_0-logloss:0.356468
[435]	validation_0-logloss:0.356448
[436]	validation_0-logloss:0.356451
[437]	validation_0-logloss:0.356417
[438]	validation_0-logloss:0.356394
[439]	validation_0-logloss:0.356342
[440]	validation_0-logloss:0.356335
[441]	validation_0-logloss:0.356308
[442]	validation_0-logloss:0.356282
[443]	validation_0-logloss:0.356286
[444]	validation_0-logloss:0.356265
[445]	validation_0-logloss:0.35626
[446]	validation_0-logloss:0.356253
[447]	validation_0-logloss:0.356255
[448]	validation_0-logloss:0.356259
[449]	validation_0-logloss:0.356263
[450]	validation_0-logloss:0.356257
[451]	validation_0-logloss:0.356206
[452]	validation_0-logloss:0.356132
[453]	validation_0-logloss:0.356118
[454]	validation_0-logloss:0.356124
[455]	validation_0-logloss:0.356125
[456]	validation_0-logloss:0.356091
[457]	validation_0-logloss:0.356062
[458]	validation_0-logloss:0.356059
[459]	validation_0-logloss:0.356063
[460]	validation_0-logloss:0.356068
[461]	validation_0-logloss:0.356002
[462]	validation_0-logloss:0.356005
[463]	validation_0-logloss:0.356012
[464]	validation_0-logloss:0.356015
[465]	validation_0-logloss:0.355987
[466]	validation_0-logloss:0.355996
[467]	validation_0-logloss:0.355998
[468]	validation_0-logloss:0.356
[469]	validation_0-logloss:0.356003
[470]	validation_0-logloss:0.356005
[471]	validation_0-logloss:0.355983
[472]	validation_0-logloss:0.356001
[473]	validation_0-logloss:0.355982
[474]	validation_0-logloss:0.355986
[475]	validation_0-logloss:0.355965
[476]	validation_0-logloss:0.355969
[477]	validation_0-logloss:0.35596
[478]	validation_0-logloss:0.355964
[479]	validation_0-logloss:0.355944
[480]	validation_0-logloss:0.355951
[481]	validation_0-logloss:0.355972
[482]	validation_0-logloss:0.355897
[483]	validation_0-logloss:0.355872
[484]	validation_0-logloss:0.355874
[485]	validation_0-logloss:0.355869
[486]	validation_0-logloss:0.355856
[487]	validation_0-logloss:0.355862
[488]	validation_0-logloss:0.355838
[489]	validation_0-logloss:0.355841
[490]	validation_0-logloss:0.355842
[491]	validation_0-logloss:0.355843
[492]	validation_0-logloss:0.355844
[493]	validation_0-logloss:0.35585
[494]	validation_0-logloss:0.355856
[495]	validation_0-logloss:0.355858
[496]	validation_0-logloss:0.355847
[497]	validation_0-logloss:0.355824
[498]	validation_0-logloss:0.355827
[499]	validation_0-logloss:0.355828
[500]	validation_0-logloss:0.35583
[501]	validation_0-logloss:0.35583
[502]	validation_0-logloss:0.35583
[503]	validation_0-logloss:0.355821
[504]	validation_0-logloss:0.355805
[505]	validation_0-logloss:0.355807
[506]	validation_0-logloss:0.355742
[507]	validation_0-logloss:0.355747
[508]	validation_0-logloss:0.355691
[509]	validation_0-logloss:0.355696
[510]	validation_0-logloss:0.355697
[511]	validation_0-logloss:0.355704
[512]	validation_0-logloss:0.355693
[513]	validation_0-logloss:0.355697
[514]	validation_0-logloss:0.355698
[515]	validation_0-logloss:0.355655
[516]	validation_0-logloss:0.355653
[517]	validation_0-logloss:0.355654
[518]	validation_0-logloss:0.355656
[519]	validation_0-logloss:0.355629
[520]	validation_0-logloss:0.355562
[521]	validation_0-logloss:0.355564
[522]	validation_0-logloss:0.35557
[523]	validation_0-logloss:0.355572
[524]	validation_0-logloss:0.355572
[525]	validation_0-logloss:0.35557
[526]	validation_0-logloss:0.355554
[527]	validation_0-logloss:0.355503
[528]	validation_0-logloss:0.355512
[529]	validation_0-logloss:0.355514
[530]	validation_0-logloss:0.35553
[531]	validation_0-logloss:0.355531
[532]	validation_0-logloss:0.355525
[533]	validation_0-logloss:0.355512
[534]	validation_0-logloss:0.355513
[535]	validation_0-logloss:0.355503
[536]	validation_0-logloss:0.355465
[537]	validation_0-logloss:0.355442
[538]	validation_0-logloss:0.355444
[539]	validation_0-logloss:0.355406
[540]	validation_0-logloss:0.355409
[541]	validation_0-logloss:0.355412
[542]	validation_0-logloss:0.355413
[543]	validation_0-logloss:0.355416
[544]	validation_0-logloss:0.355417
[545]	validation_0-logloss:0.355419
[546]	validation_0-logloss:0.355424
[547]	validation_0-logloss:0.355421
[548]	validation_0-logloss:0.355399
[549]	validation_0-logloss:0.3554
[550]	validation_0-logloss:0.355406
[551]	validation_0-logloss:0.355407
[552]	validation_0-logloss:0.355388
[553]	validation_0-logloss:0.355388
[554]	validation_0-logloss:0.355367
[555]	validation_0-logloss:0.355368
[556]	validation_0-logloss:0.355353
[557]	validation_0-logloss:0.355318
[558]	validation_0-logloss:0.35531
[559]	validation_0-logloss:0.35531
[560]	validation_0-logloss:0.355313
[561]	validation_0-logloss:0.355313
[562]	validation_0-logloss:0.355314
[563]	validation_0-logloss:0.355315
[564]	validation_0-logloss:0.355314
[565]	validation_0-logloss:0.355316
[566]	validation_0-logloss:0.355318
[567]	validation_0-logloss:0.355285
[568]	validation_0-logloss:0.355288
[569]	validation_0-logloss:0.355289
[570]	validation_0-logloss:0.355292
[571]	validation_0-logloss:0.355273
[572]	validation_0-logloss:0.355274
[573]	validation_0-logloss:0.355254
[574]	validation_0-logloss:0.355255
[575]	validation_0-logloss:0.355259
[576]	validation_0-logloss:0.355249
[577]	validation_0-logloss:0.355198
[578]	validation_0-logloss:0.355199
[579]	validation_0-logloss:0.355206
[580]	validation_0-logloss:0.355208
[581]	validation_0-logloss:0.355211
[582]	validation_0-logloss:0.355208
[583]	validation_0-logloss:0.35521
[584]	validation_0-logloss:0.355212
[585]	validation_0-logloss:0.355209
[586]	validation_0-logloss:0.355207
[587]	validation_0-logloss:0.355206
[588]	validation_0-logloss:0.355208
[589]	validation_0-logloss:0.355185
[590]	validation_0-logloss:0.355191
[591]	validation_0-logloss:0.355169
[592]	validation_0-logloss:0.355171
[593]	validation_0-logloss:0.355183
[594]	validation_0-logloss:0.355167
[595]	validation_0-logloss:0.35517
[596]	validation_0-logloss:0.355171
[597]	validation_0-logloss:0.355168
[598]	validation_0-logloss:0.355186
[599]	validation_0-logloss:0.355188
[600]	validation_0-logloss:0.355189
[601]	validation_0-logloss:0.355181
[602]	validation_0-logloss:0.35518
[603]	validation_0-logloss:0.355182
[604]	validation_0-logloss:0.355167
[605]	validation_0-logloss:0.355168
[606]	validation_0-logloss:0.355173
[607]	validation_0-logloss:0.355174
[608]	validation_0-logloss:0.355176
[609]	validation_0-logloss:0.355163
[610]	validation_0-logloss:0.355177
[611]	validation_0-logloss:0.355175
[612]	validation_0-logloss:0.35516
[613]	validation_0-logloss:0.355102
[614]	validation_0-logloss:0.355044
[615]	validation_0-logloss:0.355014
[616]	validation_0-logloss:0.355014
[617]	validation_0-logloss:0.354999
[618]	validation_0-logloss:0.355001
[619]	validation_0-logloss:0.355005
[620]	validation_0-logloss:0.354982
[621]	validation_0-logloss:0.354986
[622]	validation_0-logloss:0.354971
[623]	validation_0-logloss:0.354944
[624]	validation_0-logloss:0.35494
[625]	validation_0-logloss:0.354942
[626]	validation_0-logloss:0.354938
[627]	validation_0-logloss:0.354938
[628]	validation_0-logloss:0.354936
[629]	validation_0-logloss:0.354931
[630]	validation_0-logloss:0.354934
[631]	validation_0-logloss:0.354935
[632]	validation_0-logloss:0.354932
[633]	validation_0-logloss:0.354935
[634]	validation_0-logloss:0.354937
[635]	validation_0-logloss:0.354933
[636]	validation_0-logloss:0.354935
[637]	validation_0-logloss:0.354938
[638]	validation_0-logloss:0.354936
[639]	validation_0-logloss:0.354925
[640]	validation_0-logloss:0.354924
[641]	validation_0-logloss:0.354925
[642]	validation_0-logloss:0.354928
[643]	validation_0-logloss:0.354895
[644]	validation_0-logloss:0.354895
[645]	validation_0-logloss:0.354902
[646]	validation_0-logloss:0.354907
[647]	validation_0-logloss:0.354919
[648]	validation_0-logloss:0.354915
[649]	validation_0-logloss:0.354917
[650]	validation_0-logloss:0.35491
[651]	validation_0-logloss:0.35491
[652]	validation_0-logloss:0.354916
[653]	validation_0-logloss:0.354922
[654]	validation_0-logloss:0.35492
[655]	validation_0-logloss:0.35488
[656]	validation_0-logloss:0.354882
[657]	validation_0-logloss:0.354889
[658]	validation_0-logloss:0.354892
[659]	validation_0-logloss:0.354893
[660]	validation_0-logloss:0.354895
[661]	validation_0-logloss:0.354899
[662]	validation_0-logloss:0.354897
[663]	validation_0-logloss:0.354918
[664]	validation_0-logloss:0.354917
[665]	validation_0-logloss:0.354919
[666]	validation_0-logloss:0.354921
[667]	validation_0-logloss:0.354919
[668]	validation_0-logloss:0.354919
[669]	validation_0-logloss:0.354918
[670]	validation_0-logloss:0.354896
[671]	validation_0-logloss:0.354895
[672]	validation_0-logloss:0.354901
[673]	validation_0-logloss:0.354901
[674]	validation_0-logloss:0.354902
[675]	validation_0-logloss:0.354905
[676]	validation_0-logloss:0.354907
[677]	validation_0-logloss:0.354907
[678]	validation_0-logloss:0.354911
[679]	validation_0-logloss:0.354912
[680]	validation_0-logloss:0.354913
[681]	validation_0-logloss:0.354914
[682]	validation_0-logloss:0.354902
[683]	validation_0-logloss:0.354903
[684]	validation_0-logloss:0.354904
[685]	validation_0-logloss:0.354913
[686]	validation_0-logloss:0.354915
[687]	validation_0-logloss:0.354916
[688]	validation_0-logloss:0.35491
[689]	validation_0-logloss:0.354911
[690]	validation_0-logloss:0.354907
[691]	validation_0-logloss:0.354908
[692]	validation_0-logloss:0.354905
[693]	validation_0-logloss:0.354906
[694]	validation_0-logloss:0.354903
[695]	validation_0-logloss:0.354889
[696]	validation_0-logloss:0.354871
[697]	validation_0-logloss:0.354874
[698]	validation_0-logloss:0.354892
[699]	validation_0-logloss:0.354894
[700]	validation_0-logloss:0.354898
[701]	validation_0-logloss:0.354898
[702]	validation_0-logloss:0.354898
[703]	validation_0-logloss:0.354898
[704]	validation_0-logloss:0.354921
[705]	validation_0-logloss:0.354924
[706]	validation_0-logloss:0.354925
[707]	validation_0-logloss:0.354919
[708]	validation_0-logloss:0.354915
[709]	validation_0-logloss:0.354915
[710]	validation_0-logloss:0.354901
[711]	validation_0-logloss:0.354899
[712]	validation_0-logloss:0.354895
[713]	validation_0-logloss:0.354897
[714]	validation_0-logloss:0.354885
[715]	validation_0-logloss:0.354897
[716]	validation_0-logloss:0.354896
[717]	validation_0-logloss:0.354843
[718]	validation_0-logloss:0.35484
[719]	validation_0-logloss:0.354838
[720]	validation_0-logloss:0.354836
[721]	validation_0-logloss:0.354837
[722]	validation_0-logloss:0.35485
[723]	validation_0-logloss:0.354852
[724]	validation_0-logloss:0.354852
[725]	validation_0-logloss:0.354873
[726]	validation_0-logloss:0.354877
[727]	validation_0-logloss:0.354837
[728]	validation_0-logloss:0.354825
[729]	validation_0-logloss:0.35482
[730]	validation_0-logloss:0.354794
[731]	validation_0-logloss:0.354814
[732]	validation_0-logloss:0.354778
[733]	validation_0-logloss:0.354762
[734]	validation_0-logloss:0.35476
[735]	validation_0-logloss:0.354742
[736]	validation_0-logloss:0.354736
[737]	validation_0-logloss:0.354735
[738]	validation_0-logloss:0.354733
[739]	validation_0-logloss:0.354731
[740]	validation_0-logloss:0.354732
[741]	validation_0-logloss:0.354722
[742]	validation_0-logloss:0.354666
[743]	validation_0-logloss:0.354669
[744]	validation_0-logloss:0.35467
[745]	validation_0-logloss:0.354669
[746]	validation_0-logloss:0.354672
[747]	validation_0-logloss:0.354663
[748]	validation_0-logloss:0.354663
[749]	validation_0-logloss:0.354662
[750]	validation_0-logloss:0.354661
[751]	validation_0-logloss:0.354621
[752]	validation_0-logloss:0.354623
[753]	validation_0-logloss:0.354621
[754]	validation_0-logloss:0.354618
[755]	validation_0-logloss:0.354618
[756]	validation_0-logloss:0.354607
[757]	validation_0-logloss:0.354608
[758]	validation_0-logloss:0.35458
[759]	validation_0-logloss:0.35458
[760]	validation_0-logloss:0.354581
[761]	validation_0-logloss:0.354582
[762]	validation_0-logloss:0.354544
[763]	validation_0-logloss:0.354541
[764]	validation_0-logloss:0.35454
[765]	validation_0-logloss:0.354541
[766]	validation_0-logloss:0.354486
[767]	validation_0-logloss:0.354489
[768]	validation_0-logloss:0.354479
[769]	validation_0-logloss:0.354461
[770]	validation_0-logloss:0.354459
[771]	validation_0-logloss:0.35446
[772]	validation_0-logloss:0.354461
[773]	validation_0-logloss:0.354463
[774]	validation_0-logloss:0.354476
[775]	validation_0-logloss:0.354484
[776]	validation_0-logloss:0.354456
[777]	validation_0-logloss:0.354485
[778]	validation_0-logloss:0.354484
[779]	validation_0-logloss:0.354482
[780]	validation_0-logloss:0.354481
[781]	validation_0-logloss:0.354483
[782]	validation_0-logloss:0.35448
[783]	validation_0-logloss:0.354477
[784]	validation_0-logloss:0.354478
[785]	validation_0-logloss:0.354477
[786]	validation_0-logloss:0.354456
[787]	validation_0-logloss:0.354455
[788]	validation_0-logloss:0.354456
[789]	validation_0-logloss:0.354457
[790]	validation_0-logloss:0.354455
[791]	validation_0-logloss:0.354456
[792]	validation_0-logloss:0.354459
[793]	validation_0-logloss:0.354458
[794]	validation_0-logloss:0.354455
[795]	validation_0-logloss:0.354454
[796]	validation_0-logloss:0.354453
[797]	validation_0-logloss:0.354427
[798]	validation_0-logloss:0.354427
[799]	validation_0-logloss:0.354431
[800]	validation_0-logloss:0.354429
[801]	validation_0-logloss:0.354428
[802]	validation_0-logloss:0.354441
[803]	validation_0-logloss:0.354439
[804]	validation_0-logloss:0.354438
[805]	validation_0-logloss:0.354438
[806]	validation_0-logloss:0.354442
[807]	validation_0-logloss:0.354444
[808]	validation_0-logloss:0.354447
[809]	validation_0-logloss:0.354446
[810]	validation_0-logloss:0.354444
[811]	validation_0-logloss:0.354442
[812]	validation_0-logloss:0.354443
[813]	validation_0-logloss:0.354441
[814]	validation_0-logloss:0.354389
[815]	validation_0-logloss:0.354391
[816]	validation_0-logloss:0.354407
[817]	validation_0-logloss:0.354407
[818]	validation_0-logloss:0.354381
[819]	validation_0-logloss:0.35438
[820]	validation_0-logloss:0.354372
[821]	validation_0-logloss:0.354373
[822]	validation_0-logloss:0.354367
[823]	validation_0-logloss:0.35437
[824]	validation_0-logloss:0.354375
[825]	validation_0-logloss:0.354381
[826]	validation_0-logloss:0.35438
[827]	validation_0-logloss:0.354383
[828]	validation_0-logloss:0.354355
[829]	validation_0-logloss:0.35431
[830]	validation_0-logloss:0.354309
[831]	validation_0-logloss:0.354308
[832]	validation_0-logloss:0.354296
[833]	validation_0-logloss:0.354295
[834]	validation_0-logloss:0.354295
[835]	validation_0-logloss:0.354301
[836]	validation_0-logloss:0.3543
[837]	validation_0-logloss:0.3543
[838]	validation_0-logloss:0.354306
[839]	validation_0-logloss:0.354308
[840]	validation_0-logloss:0.354309
[841]	validation_0-logloss:0.354309
[842]	validation_0-logloss:0.354311
[843]	validation_0-logloss:0.354311
[844]	validation_0-logloss:0.354317
[845]	validation_0-logloss:0.354315
[846]	validation_0-logloss:0.354307
[847]	validation_0-logloss:0.354306
[848]	validation_0-logloss:0.354305
[849]	validation_0-logloss:0.354306
[850]	validation_0-logloss:0.354308
[851]	validation_0-logloss:0.354307
[852]	validation_0-logloss:0.354331
[853]	validation_0-logloss:0.35433
[854]	validation_0-logloss:0.354329
[855]	validation_0-logloss:0.35433
[856]	validation_0-logloss:0.354328
[857]	validation_0-logloss:0.354327
[858]	validation_0-logloss:0.354328
[859]	validation_0-logloss:0.354336
[860]	validation_0-logloss:0.354342
[861]	validation_0-logloss:0.354363
[862]	validation_0-logloss:0.354362
[863]	validation_0-logloss:0.35436
[864]	validation_0-logloss:0.35436
[865]	validation_0-logloss:0.354362
[866]	validation_0-logloss:0.354363
[867]	validation_0-logloss:0.354363
[868]	validation_0-logloss:0.354311
[869]	validation_0-logloss:0.354311
[870]	validation_0-logloss:0.354309
[871]	validation_0-logloss:0.354308
[872]	validation_0-logloss:0.354308
[873]	validation_0-logloss:0.354295
[874]	validation_0-logloss:0.354297
[875]	validation_0-logloss:0.354299
[876]	validation_0-logloss:0.354297
[877]	validation_0-logloss:0.354298
[878]	validation_0-logloss:0.354306
[879]	validation_0-logloss:0.354267
[880]	validation_0-logloss:0.354265
[881]	validation_0-logloss:0.354267
[882]	validation_0-logloss:0.354266
[883]	validation_0-logloss:0.354269
[884]	validation_0-logloss:0.35427
[885]	validation_0-logloss:0.354271
[886]	validation_0-logloss:0.35428
[887]	validation_0-logloss:0.354298
[888]	validation_0-logloss:0.354296
[889]	validation_0-logloss:0.354292
[890]	validation_0-logloss:0.354296
[891]	validation_0-logloss:0.354293
[892]	validation_0-logloss:0.354292
[893]	validation_0-logloss:0.35429
[894]	validation_0-logloss:0.35429
[895]	validation_0-logloss:0.354293
[896]	validation_0-logloss:0.354293
[897]	validation_0-logloss:0.354296
[898]	validation_0-logloss:0.354295
[899]	validation_0-logloss:0.354296
[900]	validation_0-logloss:0.354296
[901]	validation_0-logloss:0.354298
[902]	validation_0-logloss:0.354259
[903]	validation_0-logloss:0.354258
[904]	validation_0-logloss:0.354258
[905]	validation_0-logloss:0.354256
[906]	validation_0-logloss:0.354254
[907]	validation_0-logloss:0.354253
[908]	validation_0-logloss:0.354252
[909]	validation_0-logloss:0.354251
[910]	validation_0-logloss:0.354221
[911]	validation_0-logloss:0.354223
[912]	validation_0-logloss:0.354223
[913]	validation_0-logloss:0.354225
[914]	validation_0-logloss:0.354222
[915]	validation_0-logloss:0.354217
[916]	validation_0-logloss:0.354217
[917]	validation_0-logloss:0.354215
[918]	validation_0-logloss:0.354217
[919]	validation_0-logloss:0.354224
[920]	validation_0-logloss:0.354224
[921]	validation_0-logloss:0.354208
[922]	validation_0-logloss:0.354208
[923]	validation_0-logloss:0.354204
[924]	validation_0-logloss:0.35421
[925]	validation_0-logloss:0.354218
[926]	validation_0-logloss:0.354216
[927]	validation_0-logloss:0.354207
[928]	validation_0-logloss:0.354204
[929]	validation_0-logloss:0.354202
[930]	validation_0-logloss:0.354206
[931]	validation_0-logloss:0.354208
[932]	validation_0-logloss:0.354153
[933]	validation_0-logloss:0.354155
[934]	validation_0-logloss:0.354154
[935]	validation_0-logloss:0.354157
[936]	validation_0-logloss:0.354154
[937]	validation_0-logloss:0.354155
[938]	validation_0-logloss:0.354157
[939]	validation_0-logloss:0.354161
[940]	validation_0-logloss:0.354169
[941]	validation_0-logloss:0.354161
[942]	validation_0-logloss:0.354159
[943]	validation_0-logloss:0.354133
[944]	validation_0-logloss:0.354133
[945]	validation_0-logloss:0.354131
[946]	validation_0-logloss:0.354133
[947]	validation_0-logloss:0.35413
[948]	validation_0-logloss:0.35413
[949]	validation_0-logloss:0.354132
[950]	validation_0-logloss:0.354134
[951]	validation_0-logloss:0.354137
[952]	validation_0-logloss:0.354134
[953]	validation_0-logloss:0.354131
[954]	validation_0-logloss:0.35413
[955]	validation_0-logloss:0.354131
[956]	validation_0-logloss:0.354131
[957]	validation_0-logloss:0.354122
[958]	validation_0-logloss:0.354121
[959]	validation_0-logloss:0.354124
[960]	validation_0-logloss:0.354125
[961]	validation_0-logloss:0.35412
[962]	validation_0-logloss:0.354107
[963]	validation_0-logloss:0.354106
[964]	validation_0-logloss:0.354106
[965]	validation_0-logloss:0.354106
[966]	validation_0-logloss:0.354107
[967]	validation_0-logloss:0.354148
[968]	validation_0-logloss:0.354139
[969]	validation_0-logloss:0.354141
[970]	validation_0-logloss:0.354144
[971]	validation_0-logloss:0.354146
[972]	validation_0-logloss:0.354146
[973]	validation_0-logloss:0.354133
[974]	validation_0-logloss:0.354098
[975]	validation_0-logloss:0.354101
[976]	validation_0-logloss:0.354115
[977]	validation_0-logloss:0.354114
[978]	validation_0-logloss:0.354114
[979]	validation_0-logloss:0.354114
[980]	validation_0-logloss:0.354118
[981]	validation_0-logloss:0.354115
[982]	validation_0-logloss:0.354114
[983]	validation_0-logloss:0.354112
[984]	validation_0-logloss:0.354117
[985]	validation_0-logloss:0.35412
[986]	validation_0-logloss:0.354117
[987]	validation_0-logloss:0.354116
[988]	validation_0-logloss:0.354118
[989]	validation_0-logloss:0.354116
[990]	validation_0-logloss:0.354116
[991]	validation_0-logloss:0.354122
[992]	validation_0-logloss:0.354124
[993]	validation_0-logloss:0.354123
[994]	validation_0-logloss:0.354123
[995]	validation_0-logloss:0.354125
[996]	validation_0-logloss:0.354125
[997]	validation_0-logloss:0.354122
[998]	validation_0-logloss:0.354127
[999]	validation_0-logloss:0.354132
[1000]	validation_0-logloss:0.35413
[1001]	validation_0-logloss:0.354132
[1002]	validation_0-logloss:0.354132
[1003]	validation_0-logloss:0.354133
[1004]	validation_0-logloss:0.354132
[1005]	validation_0-logloss:0.354133
[1006]	validation_0-logloss:0.354132
[1007]	validation_0-logloss:0.354138
[1008]	validation_0-logloss:0.35414
[1009]	validation_0-logloss:0.354139
[1010]	validation_0-logloss:0.354139
[1011]	validation_0-logloss:0.354139
[1012]	validation_0-logloss:0.354137
[1013]	validation_0-logloss:0.35414
[1014]	validation_0-logloss:0.354138
[1015]	validation_0-logloss:0.354134
[1016]	validation_0-logloss:0.354135
[1017]	validation_0-logloss:0.354138
[1018]	validation_0-logloss:0.354137
[1019]	validation_0-logloss:0.354147
[1020]	validation_0-logloss:0.354148
[1021]	validation_0-logloss:0.354149
[1022]	validation_0-logloss:0.354148
[1023]	validation_0-logloss:0.354144
[1024]	validation_0-logloss:0.354142
Stopping. Best iteration:
[974]	validation_0-logloss:0.354098

Out[36]:
XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
              colsample_bynode=1, colsample_bytree=1, gamma=5,
              learning_rate=0.01, max_delta_step=0, max_depth=3,
              min_child_weight=1, missing=None, n_estimators=3000, n_jobs=1,
              nthread=None, objective='binary:logistic', random_state=0,
              reg_alpha=0, reg_lambda=3, scale_pos_weight=1, seed=None,
              silent=None, subsample=0.8, verbosity=1)

In [37]:
pred_probs_complex_1a = xgb_complex1a.predict_proba(X_test_1a)[:,1]

In [38]:
roc_auc_score(y_test, pred_probs_complex_1a), log_loss(y_test, pred_probs_complex_1a)


Out[38]:
(0.8119658835751868, 0.35409770229962195)

In [39]:
mli.plot_pr_curves([y_test,y_test, y_test],[pred_probs_def1,pred_probs_complex_1, pred_probs_complex_1a])



In [ ]:


In [40]:
bins1 = np.linspace(0,.1,5)
bins2 = np.linspace(.2,1,9)
bins_final = np.unique(np.concatenate((bins1, bins2)))
plt.figure(figsize = (10,4))
mli.plot_reliability_diagram(y_test,pred_probs_complex_1a,size_points=False, 
                             bins=bins_final);



In [41]:
X_explore_1a = X_test_1a.sample(100)
mxr1a = mli.ModelXRay(xgb_complex1a,X_explore_1a)

In [42]:
mxr1a.feature_dependence_plots(y_scaling='logit')


Out[42]:
array([80, 66, 14,  2, 96])

Question

  • ### What conclusions do you draw from the shapes of the curves above?

In [ ]:


In [ ]:


In [ ]:

Next model: Add in a bunch more variables


In [43]:
features_2 = ['auto_premium','homeown_premium', 'home_dwell_cov', 'home_pers_prop_cov',
                'num_home_pol',
                'yob_policyholder','min_vehicle_year', 'max_vehicle_year', 'num_vehicles',
                  'max_driver_yob', 'min_driver_yob',
                'median_household_income','median_house_value'
                  ,'avg_homeown_rate_in_state'
                ]

In [44]:
X_train_2 = df_ins.loc[df_ins[chosen_fold_variant]!=test_fold_num,features_2]
X_test_2 = df_ins.loc[df_ins[chosen_fold_variant]==test_fold_num,features_2]

In [45]:
xgb_complex2 = xgb.XGBClassifier(n_estimators = 3000, learning_rate=.01, 
                                 max_depth=3, subsample=.8, gamma=5, 
                                 reg_alpha=2, reg_lambda=5)
xgb_complex2.fit(X_train_2,y_train, eval_metric='logloss', 
                 eval_set=[(X_test_2, y_test)], early_stopping_rounds=50)
pred_probs_complex2 = xgb_complex2.predict_proba(X_test_2)[:,1]


[0]	validation_0-logloss:0.687536
Will train until validation_0-logloss hasn't improved in 50 rounds.
[1]	validation_0-logloss:0.682053
[2]	validation_0-logloss:0.676602
[3]	validation_0-logloss:0.671373
[4]	validation_0-logloss:0.666172
[5]	validation_0-logloss:0.661181
[6]	validation_0-logloss:0.656218
[7]	validation_0-logloss:0.651351
[8]	validation_0-logloss:0.646551
[9]	validation_0-logloss:0.641786
[10]	validation_0-logloss:0.637168
[11]	validation_0-logloss:0.632632
[12]	validation_0-logloss:0.62817
[13]	validation_0-logloss:0.623783
[14]	validation_0-logloss:0.619456
[15]	validation_0-logloss:0.615278
[16]	validation_0-logloss:0.611075
[17]	validation_0-logloss:0.607031
[18]	validation_0-logloss:0.603032
[19]	validation_0-logloss:0.599095
[20]	validation_0-logloss:0.595246
[21]	validation_0-logloss:0.591518
[22]	validation_0-logloss:0.587814
[23]	validation_0-logloss:0.584172
[24]	validation_0-logloss:0.580573
[25]	validation_0-logloss:0.576995
[26]	validation_0-logloss:0.573533
[27]	validation_0-logloss:0.570085
[28]	validation_0-logloss:0.566751
[29]	validation_0-logloss:0.563451
[30]	validation_0-logloss:0.560151
[31]	validation_0-logloss:0.557068
[32]	validation_0-logloss:0.553895
[33]	validation_0-logloss:0.550872
[34]	validation_0-logloss:0.54796
[35]	validation_0-logloss:0.544914
[36]	validation_0-logloss:0.542078
[37]	validation_0-logloss:0.539289
[38]	validation_0-logloss:0.536514
[39]	validation_0-logloss:0.533767
[40]	validation_0-logloss:0.531076
[41]	validation_0-logloss:0.528399
[42]	validation_0-logloss:0.525673
[43]	validation_0-logloss:0.523005
[44]	validation_0-logloss:0.5204
[45]	validation_0-logloss:0.517841
[46]	validation_0-logloss:0.515416
[47]	validation_0-logloss:0.512941
[48]	validation_0-logloss:0.510503
[49]	validation_0-logloss:0.508113
[50]	validation_0-logloss:0.50581
[51]	validation_0-logloss:0.5035
[52]	validation_0-logloss:0.501212
[53]	validation_0-logloss:0.498925
[54]	validation_0-logloss:0.496719
[55]	validation_0-logloss:0.494564
[56]	validation_0-logloss:0.492441
[57]	validation_0-logloss:0.490327
[58]	validation_0-logloss:0.488228
[59]	validation_0-logloss:0.486142
[60]	validation_0-logloss:0.484121
[61]	validation_0-logloss:0.482148
[62]	validation_0-logloss:0.48022
[63]	validation_0-logloss:0.478283
[64]	validation_0-logloss:0.476392
[65]	validation_0-logloss:0.474518
[66]	validation_0-logloss:0.472668
[67]	validation_0-logloss:0.470822
[68]	validation_0-logloss:0.469029
[69]	validation_0-logloss:0.467294
[70]	validation_0-logloss:0.46552
[71]	validation_0-logloss:0.463801
[72]	validation_0-logloss:0.462096
[73]	validation_0-logloss:0.460417
[74]	validation_0-logloss:0.45876
[75]	validation_0-logloss:0.457133
[76]	validation_0-logloss:0.455545
[77]	validation_0-logloss:0.454008
[78]	validation_0-logloss:0.452483
[79]	validation_0-logloss:0.450924
[80]	validation_0-logloss:0.449399
[81]	validation_0-logloss:0.447934
[82]	validation_0-logloss:0.446514
[83]	validation_0-logloss:0.445088
[84]	validation_0-logloss:0.443633
[85]	validation_0-logloss:0.442332
[86]	validation_0-logloss:0.44095
[87]	validation_0-logloss:0.439631
[88]	validation_0-logloss:0.438281
[89]	validation_0-logloss:0.436935
[90]	validation_0-logloss:0.435632
[91]	validation_0-logloss:0.43431
[92]	validation_0-logloss:0.43299
[93]	validation_0-logloss:0.431712
[94]	validation_0-logloss:0.430471
[95]	validation_0-logloss:0.429212
[96]	validation_0-logloss:0.428003
[97]	validation_0-logloss:0.426835
[98]	validation_0-logloss:0.425638
[99]	validation_0-logloss:0.424508
[100]	validation_0-logloss:0.423368
[101]	validation_0-logloss:0.422295
[102]	validation_0-logloss:0.421156
[103]	validation_0-logloss:0.420102
[104]	validation_0-logloss:0.419006
[105]	validation_0-logloss:0.418055
[106]	validation_0-logloss:0.416997
[107]	validation_0-logloss:0.41592
[108]	validation_0-logloss:0.414853
[109]	validation_0-logloss:0.41391
[110]	validation_0-logloss:0.412956
[111]	validation_0-logloss:0.411966
[112]	validation_0-logloss:0.41105
[113]	validation_0-logloss:0.410118
[114]	validation_0-logloss:0.409169
[115]	validation_0-logloss:0.408255
[116]	validation_0-logloss:0.407387
[117]	validation_0-logloss:0.406467
[118]	validation_0-logloss:0.40553
[119]	validation_0-logloss:0.40459
[120]	validation_0-logloss:0.403771
[121]	validation_0-logloss:0.402871
[122]	validation_0-logloss:0.402014
[123]	validation_0-logloss:0.401235
[124]	validation_0-logloss:0.400466
[125]	validation_0-logloss:0.399631
[126]	validation_0-logloss:0.398816
[127]	validation_0-logloss:0.398041
[128]	validation_0-logloss:0.397255
[129]	validation_0-logloss:0.396479
[130]	validation_0-logloss:0.395747
[131]	validation_0-logloss:0.394985
[132]	validation_0-logloss:0.394207
[133]	validation_0-logloss:0.393457
[134]	validation_0-logloss:0.392748
[135]	validation_0-logloss:0.392029
[136]	validation_0-logloss:0.391357
[137]	validation_0-logloss:0.390649
[138]	validation_0-logloss:0.389939
[139]	validation_0-logloss:0.389284
[140]	validation_0-logloss:0.388592
[141]	validation_0-logloss:0.387913
[142]	validation_0-logloss:0.387297
[143]	validation_0-logloss:0.386679
[144]	validation_0-logloss:0.386099
[145]	validation_0-logloss:0.385514
[146]	validation_0-logloss:0.384917
[147]	validation_0-logloss:0.384252
[148]	validation_0-logloss:0.383672
[149]	validation_0-logloss:0.383053
[150]	validation_0-logloss:0.382462
[151]	validation_0-logloss:0.381926
[152]	validation_0-logloss:0.381296
[153]	validation_0-logloss:0.380765
[154]	validation_0-logloss:0.380271
[155]	validation_0-logloss:0.379747
[156]	validation_0-logloss:0.37919
[157]	validation_0-logloss:0.378671
[158]	validation_0-logloss:0.378165
[159]	validation_0-logloss:0.377675
[160]	validation_0-logloss:0.377148
[161]	validation_0-logloss:0.376697
[162]	validation_0-logloss:0.376199
[163]	validation_0-logloss:0.375727
[164]	validation_0-logloss:0.375227
[165]	validation_0-logloss:0.374754
[166]	validation_0-logloss:0.374238
[167]	validation_0-logloss:0.373791
[168]	validation_0-logloss:0.373328
[169]	validation_0-logloss:0.372905
[170]	validation_0-logloss:0.372428
[171]	validation_0-logloss:0.372044
[172]	validation_0-logloss:0.371606
[173]	validation_0-logloss:0.371135
[174]	validation_0-logloss:0.370712
[175]	validation_0-logloss:0.370322
[176]	validation_0-logloss:0.369923
[177]	validation_0-logloss:0.369474
[178]	validation_0-logloss:0.369064
[179]	validation_0-logloss:0.368634
[180]	validation_0-logloss:0.36825
[181]	validation_0-logloss:0.367844
[182]	validation_0-logloss:0.367423
[183]	validation_0-logloss:0.367021
[184]	validation_0-logloss:0.366681
[185]	validation_0-logloss:0.366326
[186]	validation_0-logloss:0.365928
[187]	validation_0-logloss:0.365544
[188]	validation_0-logloss:0.365223
[189]	validation_0-logloss:0.364846
[190]	validation_0-logloss:0.36449
[191]	validation_0-logloss:0.364197
[192]	validation_0-logloss:0.363861
[193]	validation_0-logloss:0.363468
[194]	validation_0-logloss:0.36314
[195]	validation_0-logloss:0.362801
[196]	validation_0-logloss:0.362467
[197]	validation_0-logloss:0.362102
[198]	validation_0-logloss:0.361788
[199]	validation_0-logloss:0.361481
[200]	validation_0-logloss:0.361155
[201]	validation_0-logloss:0.360841
[202]	validation_0-logloss:0.360577
[203]	validation_0-logloss:0.360235
[204]	validation_0-logloss:0.359992
[205]	validation_0-logloss:0.359726
[206]	validation_0-logloss:0.359418
[207]	validation_0-logloss:0.359164
[208]	validation_0-logloss:0.358872
[209]	validation_0-logloss:0.358604
[210]	validation_0-logloss:0.358332
[211]	validation_0-logloss:0.35806
[212]	validation_0-logloss:0.357817
[213]	validation_0-logloss:0.357546
[214]	validation_0-logloss:0.357249
[215]	validation_0-logloss:0.356973
[216]	validation_0-logloss:0.356751
[217]	validation_0-logloss:0.356464
[218]	validation_0-logloss:0.356217
[219]	validation_0-logloss:0.355985
[220]	validation_0-logloss:0.35577
[221]	validation_0-logloss:0.35553
[222]	validation_0-logloss:0.355307
[223]	validation_0-logloss:0.355087
[224]	validation_0-logloss:0.354879
[225]	validation_0-logloss:0.354612
[226]	validation_0-logloss:0.354394
[227]	validation_0-logloss:0.354176
[228]	validation_0-logloss:0.353985
[229]	validation_0-logloss:0.353787
[230]	validation_0-logloss:0.353576
[231]	validation_0-logloss:0.353356
[232]	validation_0-logloss:0.353162
[233]	validation_0-logloss:0.352955
[234]	validation_0-logloss:0.352701
[235]	validation_0-logloss:0.352494
[236]	validation_0-logloss:0.352317
[237]	validation_0-logloss:0.352133
[238]	validation_0-logloss:0.351919
[239]	validation_0-logloss:0.351748
[240]	validation_0-logloss:0.351539
[241]	validation_0-logloss:0.351406
[242]	validation_0-logloss:0.35119
[243]	validation_0-logloss:0.351008
[244]	validation_0-logloss:0.350867
[245]	validation_0-logloss:0.350643
[246]	validation_0-logloss:0.350442
[247]	validation_0-logloss:0.350283
[248]	validation_0-logloss:0.350073
[249]	validation_0-logloss:0.34988
[250]	validation_0-logloss:0.349683
[251]	validation_0-logloss:0.349486
[252]	validation_0-logloss:0.349364
[253]	validation_0-logloss:0.349224
[254]	validation_0-logloss:0.349053
[255]	validation_0-logloss:0.348906
[256]	validation_0-logloss:0.348766
[257]	validation_0-logloss:0.348585
[258]	validation_0-logloss:0.348432
[259]	validation_0-logloss:0.34827
[260]	validation_0-logloss:0.348094
[261]	validation_0-logloss:0.347971
[262]	validation_0-logloss:0.347855
[263]	validation_0-logloss:0.347715
[264]	validation_0-logloss:0.347579
[265]	validation_0-logloss:0.347409
[266]	validation_0-logloss:0.347261
[267]	validation_0-logloss:0.347124
[268]	validation_0-logloss:0.347035
[269]	validation_0-logloss:0.346925
[270]	validation_0-logloss:0.346776
[271]	validation_0-logloss:0.346625
[272]	validation_0-logloss:0.346515
[273]	validation_0-logloss:0.346403
[274]	validation_0-logloss:0.346268
[275]	validation_0-logloss:0.346113
[276]	validation_0-logloss:0.346
[277]	validation_0-logloss:0.345872
[278]	validation_0-logloss:0.345722
[279]	validation_0-logloss:0.34555
[280]	validation_0-logloss:0.3454
[281]	validation_0-logloss:0.345313
[282]	validation_0-logloss:0.345192
[283]	validation_0-logloss:0.345024
[284]	validation_0-logloss:0.344937
[285]	validation_0-logloss:0.344839
[286]	validation_0-logloss:0.344704
[287]	validation_0-logloss:0.344611
[288]	validation_0-logloss:0.344491
[289]	validation_0-logloss:0.344368
[290]	validation_0-logloss:0.34425
[291]	validation_0-logloss:0.344144
[292]	validation_0-logloss:0.344034
[293]	validation_0-logloss:0.34395
[294]	validation_0-logloss:0.34385
[295]	validation_0-logloss:0.343676
[296]	validation_0-logloss:0.343587
[297]	validation_0-logloss:0.343466
[298]	validation_0-logloss:0.343398
[299]	validation_0-logloss:0.34331
[300]	validation_0-logloss:0.343197
[301]	validation_0-logloss:0.343057
[302]	validation_0-logloss:0.342929
[303]	validation_0-logloss:0.342817
[304]	validation_0-logloss:0.34268
[305]	validation_0-logloss:0.342568
[306]	validation_0-logloss:0.342468
[307]	validation_0-logloss:0.342365
[308]	validation_0-logloss:0.34226
[309]	validation_0-logloss:0.342138
[310]	validation_0-logloss:0.342102
[311]	validation_0-logloss:0.342001
[312]	validation_0-logloss:0.341919
[313]	validation_0-logloss:0.341843
[314]	validation_0-logloss:0.341756
[315]	validation_0-logloss:0.341626
[316]	validation_0-logloss:0.341564
[317]	validation_0-logloss:0.341525
[318]	validation_0-logloss:0.341482
[319]	validation_0-logloss:0.341403
[320]	validation_0-logloss:0.341322
[321]	validation_0-logloss:0.341187
[322]	validation_0-logloss:0.341118
[323]	validation_0-logloss:0.341023
[324]	validation_0-logloss:0.340926
[325]	validation_0-logloss:0.340874
[326]	validation_0-logloss:0.34079
[327]	validation_0-logloss:0.340726
[328]	validation_0-logloss:0.340669
[329]	validation_0-logloss:0.340616
[330]	validation_0-logloss:0.340524
[331]	validation_0-logloss:0.340442
[332]	validation_0-logloss:0.340373
[333]	validation_0-logloss:0.340305
[334]	validation_0-logloss:0.340205
[335]	validation_0-logloss:0.340116
[336]	validation_0-logloss:0.340055
[337]	validation_0-logloss:0.339979
[338]	validation_0-logloss:0.339976
[339]	validation_0-logloss:0.339919
[340]	validation_0-logloss:0.339899
[341]	validation_0-logloss:0.339845
[342]	validation_0-logloss:0.339798
[343]	validation_0-logloss:0.339716
[344]	validation_0-logloss:0.339623
[345]	validation_0-logloss:0.339527
[346]	validation_0-logloss:0.339428
[347]	validation_0-logloss:0.339338
[348]	validation_0-logloss:0.339259
[349]	validation_0-logloss:0.339235
[350]	validation_0-logloss:0.33919
[351]	validation_0-logloss:0.339099
[352]	validation_0-logloss:0.339071
[353]	validation_0-logloss:0.339007
[354]	validation_0-logloss:0.33897
[355]	validation_0-logloss:0.338922
[356]	validation_0-logloss:0.338831
[357]	validation_0-logloss:0.338733
[358]	validation_0-logloss:0.338658
[359]	validation_0-logloss:0.338573
[360]	validation_0-logloss:0.338543
[361]	validation_0-logloss:0.338504
[362]	validation_0-logloss:0.33849
[363]	validation_0-logloss:0.338413
[364]	validation_0-logloss:0.338325
[365]	validation_0-logloss:0.338298
[366]	validation_0-logloss:0.338257
[367]	validation_0-logloss:0.338205
[368]	validation_0-logloss:0.338171
[369]	validation_0-logloss:0.338104
[370]	validation_0-logloss:0.338061
[371]	validation_0-logloss:0.337997
[372]	validation_0-logloss:0.337968
[373]	validation_0-logloss:0.337965
[374]	validation_0-logloss:0.337872
[375]	validation_0-logloss:0.337813
[376]	validation_0-logloss:0.337703
[377]	validation_0-logloss:0.337669
[378]	validation_0-logloss:0.337582
[379]	validation_0-logloss:0.337547
[380]	validation_0-logloss:0.337502
[381]	validation_0-logloss:0.337471
[382]	validation_0-logloss:0.337359
[383]	validation_0-logloss:0.337311
[384]	validation_0-logloss:0.337283
[385]	validation_0-logloss:0.337269
[386]	validation_0-logloss:0.337258
[387]	validation_0-logloss:0.337183
[388]	validation_0-logloss:0.337134
[389]	validation_0-logloss:0.337085
[390]	validation_0-logloss:0.336991
[391]	validation_0-logloss:0.336922
[392]	validation_0-logloss:0.336912
[393]	validation_0-logloss:0.33688
[394]	validation_0-logloss:0.336846
[395]	validation_0-logloss:0.336792
[396]	validation_0-logloss:0.336775
[397]	validation_0-logloss:0.336733
[398]	validation_0-logloss:0.336718
[399]	validation_0-logloss:0.336665
[400]	validation_0-logloss:0.336659
[401]	validation_0-logloss:0.336615
[402]	validation_0-logloss:0.33654
[403]	validation_0-logloss:0.336517
[404]	validation_0-logloss:0.336464
[405]	validation_0-logloss:0.336424
[406]	validation_0-logloss:0.336392
[407]	validation_0-logloss:0.33636
[408]	validation_0-logloss:0.336302
[409]	validation_0-logloss:0.336257
[410]	validation_0-logloss:0.336199
[411]	validation_0-logloss:0.336195
[412]	validation_0-logloss:0.336121
[413]	validation_0-logloss:0.336074
[414]	validation_0-logloss:0.335975
[415]	validation_0-logloss:0.335958
[416]	validation_0-logloss:0.335889
[417]	validation_0-logloss:0.33585
[418]	validation_0-logloss:0.335838
[419]	validation_0-logloss:0.335805
[420]	validation_0-logloss:0.33575
[421]	validation_0-logloss:0.335724
[422]	validation_0-logloss:0.335652
[423]	validation_0-logloss:0.335632
[424]	validation_0-logloss:0.335577
[425]	validation_0-logloss:0.33555
[426]	validation_0-logloss:0.335519
[427]	validation_0-logloss:0.335471
[428]	validation_0-logloss:0.335453
[429]	validation_0-logloss:0.335432
[430]	validation_0-logloss:0.335413
[431]	validation_0-logloss:0.33533
[432]	validation_0-logloss:0.335316
[433]	validation_0-logloss:0.335258
[434]	validation_0-logloss:0.335254
[435]	validation_0-logloss:0.335218
[436]	validation_0-logloss:0.335147
[437]	validation_0-logloss:0.335122
[438]	validation_0-logloss:0.335055
[439]	validation_0-logloss:0.335021
[440]	validation_0-logloss:0.334984
[441]	validation_0-logloss:0.334958
[442]	validation_0-logloss:0.334904
[443]	validation_0-logloss:0.334887
[444]	validation_0-logloss:0.334871
[445]	validation_0-logloss:0.33488
[446]	validation_0-logloss:0.334898
[447]	validation_0-logloss:0.334887
[448]	validation_0-logloss:0.334899
[449]	validation_0-logloss:0.334838
[450]	validation_0-logloss:0.33484
[451]	validation_0-logloss:0.334808
[452]	validation_0-logloss:0.33478
[453]	validation_0-logloss:0.334745
[454]	validation_0-logloss:0.334715
[455]	validation_0-logloss:0.334698
[456]	validation_0-logloss:0.334692
[457]	validation_0-logloss:0.334673
[458]	validation_0-logloss:0.334634
[459]	validation_0-logloss:0.334613
[460]	validation_0-logloss:0.334611
[461]	validation_0-logloss:0.334589
[462]	validation_0-logloss:0.334577
[463]	validation_0-logloss:0.334527
[464]	validation_0-logloss:0.334524
[465]	validation_0-logloss:0.334487
[466]	validation_0-logloss:0.334462
[467]	validation_0-logloss:0.334459
[468]	validation_0-logloss:0.334466
[469]	validation_0-logloss:0.334432
[470]	validation_0-logloss:0.334382
[471]	validation_0-logloss:0.334369
[472]	validation_0-logloss:0.334349
[473]	validation_0-logloss:0.334348
[474]	validation_0-logloss:0.334339
[475]	validation_0-logloss:0.334355
[476]	validation_0-logloss:0.334329
[477]	validation_0-logloss:0.334259
[478]	validation_0-logloss:0.334217
[479]	validation_0-logloss:0.33419
[480]	validation_0-logloss:0.334133
[481]	validation_0-logloss:0.334148
[482]	validation_0-logloss:0.334144
[483]	validation_0-logloss:0.334105
[484]	validation_0-logloss:0.334064
[485]	validation_0-logloss:0.334033
[486]	validation_0-logloss:0.334004
[487]	validation_0-logloss:0.333983
[488]	validation_0-logloss:0.333957
[489]	validation_0-logloss:0.333956
[490]	validation_0-logloss:0.333921
[491]	validation_0-logloss:0.333914
[492]	validation_0-logloss:0.333915
[493]	validation_0-logloss:0.333918
[494]	validation_0-logloss:0.333897
[495]	validation_0-logloss:0.333859
[496]	validation_0-logloss:0.333825
[497]	validation_0-logloss:0.333772
[498]	validation_0-logloss:0.333777
[499]	validation_0-logloss:0.33371
[500]	validation_0-logloss:0.333712
[501]	validation_0-logloss:0.333674
[502]	validation_0-logloss:0.333676
[503]	validation_0-logloss:0.333643
[504]	validation_0-logloss:0.333627
[505]	validation_0-logloss:0.333586
[506]	validation_0-logloss:0.333579
[507]	validation_0-logloss:0.333551
[508]	validation_0-logloss:0.333549
[509]	validation_0-logloss:0.333494
[510]	validation_0-logloss:0.333485
[511]	validation_0-logloss:0.333463
[512]	validation_0-logloss:0.333455
[513]	validation_0-logloss:0.333463
[514]	validation_0-logloss:0.333455
[515]	validation_0-logloss:0.333452
[516]	validation_0-logloss:0.333423
[517]	validation_0-logloss:0.333418
[518]	validation_0-logloss:0.333384
[519]	validation_0-logloss:0.333348
[520]	validation_0-logloss:0.333292
[521]	validation_0-logloss:0.333261
[522]	validation_0-logloss:0.333261
[523]	validation_0-logloss:0.333266
[524]	validation_0-logloss:0.333253
[525]	validation_0-logloss:0.333224
[526]	validation_0-logloss:0.333214
[527]	validation_0-logloss:0.333213
[528]	validation_0-logloss:0.333194
[529]	validation_0-logloss:0.333213
[530]	validation_0-logloss:0.333202
[531]	validation_0-logloss:0.333175
[532]	validation_0-logloss:0.333123
[533]	validation_0-logloss:0.333097
[534]	validation_0-logloss:0.333074
[535]	validation_0-logloss:0.333066
[536]	validation_0-logloss:0.333054
[537]	validation_0-logloss:0.333012
[538]	validation_0-logloss:0.332968
[539]	validation_0-logloss:0.332951
[540]	validation_0-logloss:0.332956
[541]	validation_0-logloss:0.332956
[542]	validation_0-logloss:0.332983
[543]	validation_0-logloss:0.332942
[544]	validation_0-logloss:0.332942
[545]	validation_0-logloss:0.332921
[546]	validation_0-logloss:0.332904
[547]	validation_0-logloss:0.332822
[548]	validation_0-logloss:0.332746
[549]	validation_0-logloss:0.332725
[550]	validation_0-logloss:0.332725
[551]	validation_0-logloss:0.332684
[552]	validation_0-logloss:0.332664
[553]	validation_0-logloss:0.33264
[554]	validation_0-logloss:0.332629
[555]	validation_0-logloss:0.332579
[556]	validation_0-logloss:0.332564
[557]	validation_0-logloss:0.332556
[558]	validation_0-logloss:0.332578
[559]	validation_0-logloss:0.332562
[560]	validation_0-logloss:0.332552
[561]	validation_0-logloss:0.332541
[562]	validation_0-logloss:0.332502
[563]	validation_0-logloss:0.332502
[564]	validation_0-logloss:0.332484
[565]	validation_0-logloss:0.332505
[566]	validation_0-logloss:0.332505
[567]	validation_0-logloss:0.332496
[568]	validation_0-logloss:0.332496
[569]	validation_0-logloss:0.332497
[570]	validation_0-logloss:0.332476
[571]	validation_0-logloss:0.332476
[572]	validation_0-logloss:0.332481
[573]	validation_0-logloss:0.332474
[574]	validation_0-logloss:0.332475
[575]	validation_0-logloss:0.332476
[576]	validation_0-logloss:0.332447
[577]	validation_0-logloss:0.332462
[578]	validation_0-logloss:0.332456
[579]	validation_0-logloss:0.332451
[580]	validation_0-logloss:0.332432
[581]	validation_0-logloss:0.332443
[582]	validation_0-logloss:0.332419
[583]	validation_0-logloss:0.332373
[584]	validation_0-logloss:0.332349
[585]	validation_0-logloss:0.332346
[586]	validation_0-logloss:0.332282
[587]	validation_0-logloss:0.332301
[588]	validation_0-logloss:0.33228
[589]	validation_0-logloss:0.332256
[590]	validation_0-logloss:0.332224
[591]	validation_0-logloss:0.33218
[592]	validation_0-logloss:0.33218
[593]	validation_0-logloss:0.33217
[594]	validation_0-logloss:0.33217
[595]	validation_0-logloss:0.332148
[596]	validation_0-logloss:0.332129
[597]	validation_0-logloss:0.332108
[598]	validation_0-logloss:0.33211
[599]	validation_0-logloss:0.33211
[600]	validation_0-logloss:0.332112
[601]	validation_0-logloss:0.33204
[602]	validation_0-logloss:0.33202
[603]	validation_0-logloss:0.332021
[604]	validation_0-logloss:0.331927
[605]	validation_0-logloss:0.331928
[606]	validation_0-logloss:0.33193
[607]	validation_0-logloss:0.33193
[608]	validation_0-logloss:0.331914
[609]	validation_0-logloss:0.331896
[610]	validation_0-logloss:0.331856
[611]	validation_0-logloss:0.331855
[612]	validation_0-logloss:0.33178
[613]	validation_0-logloss:0.331771
[614]	validation_0-logloss:0.331717
[615]	validation_0-logloss:0.331695
[616]	validation_0-logloss:0.331691
[617]	validation_0-logloss:0.331663
[618]	validation_0-logloss:0.331664
[619]	validation_0-logloss:0.331664
[620]	validation_0-logloss:0.331595
[621]	validation_0-logloss:0.331566
[622]	validation_0-logloss:0.331561
[623]	validation_0-logloss:0.331562
[624]	validation_0-logloss:0.331558
[625]	validation_0-logloss:0.331559
[626]	validation_0-logloss:0.33153
[627]	validation_0-logloss:0.331464
[628]	validation_0-logloss:0.331428
[629]	validation_0-logloss:0.331404
[630]	validation_0-logloss:0.331373
[631]	validation_0-logloss:0.331374
[632]	validation_0-logloss:0.331357
[633]	validation_0-logloss:0.331341
[634]	validation_0-logloss:0.331333
[635]	validation_0-logloss:0.331308
[636]	validation_0-logloss:0.331309
[637]	validation_0-logloss:0.331286
[638]	validation_0-logloss:0.331284
[639]	validation_0-logloss:0.331248
[640]	validation_0-logloss:0.331223
[641]	validation_0-logloss:0.331229
[642]	validation_0-logloss:0.331229
[643]	validation_0-logloss:0.331235
[644]	validation_0-logloss:0.331207
[645]	validation_0-logloss:0.331158
[646]	validation_0-logloss:0.331173
[647]	validation_0-logloss:0.331175
[648]	validation_0-logloss:0.33117
[649]	validation_0-logloss:0.33117
[650]	validation_0-logloss:0.331167
[651]	validation_0-logloss:0.331141
[652]	validation_0-logloss:0.331141
[653]	validation_0-logloss:0.331143
[654]	validation_0-logloss:0.331157
[655]	validation_0-logloss:0.331138
[656]	validation_0-logloss:0.331138
[657]	validation_0-logloss:0.331118
[658]	validation_0-logloss:0.331053
[659]	validation_0-logloss:0.33103
[660]	validation_0-logloss:0.331015
[661]	validation_0-logloss:0.331016
[662]	validation_0-logloss:0.331002
[663]	validation_0-logloss:0.33093
[664]	validation_0-logloss:0.330907
[665]	validation_0-logloss:0.330885
[666]	validation_0-logloss:0.330886
[667]	validation_0-logloss:0.330856
[668]	validation_0-logloss:0.330855
[669]	validation_0-logloss:0.33084
[670]	validation_0-logloss:0.33084
[671]	validation_0-logloss:0.330819
[672]	validation_0-logloss:0.330774
[673]	validation_0-logloss:0.330774
[674]	validation_0-logloss:0.33076
[675]	validation_0-logloss:0.330739
[676]	validation_0-logloss:0.33074
[677]	validation_0-logloss:0.330754
[678]	validation_0-logloss:0.330716
[679]	validation_0-logloss:0.330733
[680]	validation_0-logloss:0.330694
[681]	validation_0-logloss:0.330694
[682]	validation_0-logloss:0.330703
[683]	validation_0-logloss:0.33063
[684]	validation_0-logloss:0.330617
[685]	validation_0-logloss:0.330619
[686]	validation_0-logloss:0.330604
[687]	validation_0-logloss:0.330582
[688]	validation_0-logloss:0.330562
[689]	validation_0-logloss:0.330546
[690]	validation_0-logloss:0.330533
[691]	validation_0-logloss:0.330534
[692]	validation_0-logloss:0.330526
[693]	validation_0-logloss:0.330526
[694]	validation_0-logloss:0.33051
[695]	validation_0-logloss:0.330473
[696]	validation_0-logloss:0.330474
[697]	validation_0-logloss:0.330475
[698]	validation_0-logloss:0.330448
[699]	validation_0-logloss:0.330436
[700]	validation_0-logloss:0.330434
[701]	validation_0-logloss:0.330434
[702]	validation_0-logloss:0.33043
[703]	validation_0-logloss:0.330422
[704]	validation_0-logloss:0.33043
[705]	validation_0-logloss:0.330408
[706]	validation_0-logloss:0.330393
[707]	validation_0-logloss:0.330393
[708]	validation_0-logloss:0.330369
[709]	validation_0-logloss:0.33037
[710]	validation_0-logloss:0.330372
[711]	validation_0-logloss:0.330372
[712]	validation_0-logloss:0.330354
[713]	validation_0-logloss:0.330354
[714]	validation_0-logloss:0.330283
[715]	validation_0-logloss:0.33029
[716]	validation_0-logloss:0.330228
[717]	validation_0-logloss:0.3302
[718]	validation_0-logloss:0.330213
[719]	validation_0-logloss:0.330212
[720]	validation_0-logloss:0.330184
[721]	validation_0-logloss:0.330187
[722]	validation_0-logloss:0.330182
[723]	validation_0-logloss:0.33017
[724]	validation_0-logloss:0.330106
[725]	validation_0-logloss:0.330105
[726]	validation_0-logloss:0.330106
[727]	validation_0-logloss:0.330043
[728]	validation_0-logloss:0.330022
[729]	validation_0-logloss:0.330017
[730]	validation_0-logloss:0.330018
[731]	validation_0-logloss:0.329999
[732]	validation_0-logloss:0.329981
[733]	validation_0-logloss:0.329981
[734]	validation_0-logloss:0.329923
[735]	validation_0-logloss:0.329899
[736]	validation_0-logloss:0.329899
[737]	validation_0-logloss:0.329903
[738]	validation_0-logloss:0.329897
[739]	validation_0-logloss:0.329903
[740]	validation_0-logloss:0.329892
[741]	validation_0-logloss:0.329893
[742]	validation_0-logloss:0.329884
[743]	validation_0-logloss:0.3299
[744]	validation_0-logloss:0.3299
[745]	validation_0-logloss:0.3299
[746]	validation_0-logloss:0.329901
[747]	validation_0-logloss:0.329903
[748]	validation_0-logloss:0.329903
[749]	validation_0-logloss:0.329903
[750]	validation_0-logloss:0.329903
[751]	validation_0-logloss:0.329904
[752]	validation_0-logloss:0.329905
[753]	validation_0-logloss:0.329905
[754]	validation_0-logloss:0.329904
[755]	validation_0-logloss:0.329871
[756]	validation_0-logloss:0.329851
[757]	validation_0-logloss:0.329852
[758]	validation_0-logloss:0.329801
[759]	validation_0-logloss:0.329801
[760]	validation_0-logloss:0.329777
[761]	validation_0-logloss:0.32976
[762]	validation_0-logloss:0.329696
[763]	validation_0-logloss:0.329665
[764]	validation_0-logloss:0.329665
[765]	validation_0-logloss:0.329665
[766]	validation_0-logloss:0.329666
[767]	validation_0-logloss:0.329666
[768]	validation_0-logloss:0.329665
[769]	validation_0-logloss:0.329581
[770]	validation_0-logloss:0.329567
[771]	validation_0-logloss:0.329549
[772]	validation_0-logloss:0.329544
[773]	validation_0-logloss:0.329549
[774]	validation_0-logloss:0.32955
[775]	validation_0-logloss:0.329551
[776]	validation_0-logloss:0.329541
[777]	validation_0-logloss:0.329541
[778]	validation_0-logloss:0.329541
[779]	validation_0-logloss:0.329532
[780]	validation_0-logloss:0.329532
[781]	validation_0-logloss:0.329513
[782]	validation_0-logloss:0.329513
[783]	validation_0-logloss:0.329511
[784]	validation_0-logloss:0.329512
[785]	validation_0-logloss:0.329507
[786]	validation_0-logloss:0.329518
[787]	validation_0-logloss:0.329475
[788]	validation_0-logloss:0.329475
[789]	validation_0-logloss:0.329475
[790]	validation_0-logloss:0.329467
[791]	validation_0-logloss:0.329468
[792]	validation_0-logloss:0.329488
[793]	validation_0-logloss:0.329488
[794]	validation_0-logloss:0.32948
[795]	validation_0-logloss:0.329475
[796]	validation_0-logloss:0.329484
[797]	validation_0-logloss:0.329455
[798]	validation_0-logloss:0.329456
[799]	validation_0-logloss:0.329456
[800]	validation_0-logloss:0.329444
[801]	validation_0-logloss:0.329444
[802]	validation_0-logloss:0.329445
[803]	validation_0-logloss:0.329445
[804]	validation_0-logloss:0.32943
[805]	validation_0-logloss:0.32943
[806]	validation_0-logloss:0.329403
[807]	validation_0-logloss:0.329403
[808]	validation_0-logloss:0.329384
[809]	validation_0-logloss:0.329356
[810]	validation_0-logloss:0.329345
[811]	validation_0-logloss:0.329345
[812]	validation_0-logloss:0.329345
[813]	validation_0-logloss:0.329345
[814]	validation_0-logloss:0.329285
[815]	validation_0-logloss:0.329286
[816]	validation_0-logloss:0.329286
[817]	validation_0-logloss:0.329286
[818]	validation_0-logloss:0.329294
[819]	validation_0-logloss:0.329282
[820]	validation_0-logloss:0.329282
[821]	validation_0-logloss:0.329283
[822]	validation_0-logloss:0.329283
[823]	validation_0-logloss:0.329284
[824]	validation_0-logloss:0.329286
[825]	validation_0-logloss:0.329261
[826]	validation_0-logloss:0.329261
[827]	validation_0-logloss:0.329262
[828]	validation_0-logloss:0.329243
[829]	validation_0-logloss:0.329243
[830]	validation_0-logloss:0.329243
[831]	validation_0-logloss:0.329214
[832]	validation_0-logloss:0.329214
[833]	validation_0-logloss:0.329199
[834]	validation_0-logloss:0.329199
[835]	validation_0-logloss:0.329202
[836]	validation_0-logloss:0.329202
[837]	validation_0-logloss:0.329195
[838]	validation_0-logloss:0.329212
[839]	validation_0-logloss:0.329227
[840]	validation_0-logloss:0.32922
[841]	validation_0-logloss:0.329228
[842]	validation_0-logloss:0.329229
[843]	validation_0-logloss:0.329219
[844]	validation_0-logloss:0.329218
[845]	validation_0-logloss:0.329218
[846]	validation_0-logloss:0.329218
[847]	validation_0-logloss:0.329235
[848]	validation_0-logloss:0.329235
[849]	validation_0-logloss:0.329175
[850]	validation_0-logloss:0.329176
[851]	validation_0-logloss:0.329176
[852]	validation_0-logloss:0.329176
[853]	validation_0-logloss:0.329176
[854]	validation_0-logloss:0.329175
[855]	validation_0-logloss:0.32913
[856]	validation_0-logloss:0.329093
[857]	validation_0-logloss:0.329093
[858]	validation_0-logloss:0.329111
[859]	validation_0-logloss:0.329111
[860]	validation_0-logloss:0.329083
[861]	validation_0-logloss:0.32906
[862]	validation_0-logloss:0.329066
[863]	validation_0-logloss:0.329066
[864]	validation_0-logloss:0.329042
[865]	validation_0-logloss:0.329043
[866]	validation_0-logloss:0.329031
[867]	validation_0-logloss:0.329031
[868]	validation_0-logloss:0.328974
[869]	validation_0-logloss:0.328987
[870]	validation_0-logloss:0.328956
[871]	validation_0-logloss:0.328956
[872]	validation_0-logloss:0.328956
[873]	validation_0-logloss:0.328942
[874]	validation_0-logloss:0.328942
[875]	validation_0-logloss:0.328943
[876]	validation_0-logloss:0.328942
[877]	validation_0-logloss:0.328942
[878]	validation_0-logloss:0.328942
[879]	validation_0-logloss:0.328903
[880]	validation_0-logloss:0.328903
[881]	validation_0-logloss:0.328874
[882]	validation_0-logloss:0.328874
[883]	validation_0-logloss:0.328879
[884]	validation_0-logloss:0.328879
[885]	validation_0-logloss:0.328879
[886]	validation_0-logloss:0.32889
[887]	validation_0-logloss:0.328877
[888]	validation_0-logloss:0.328877
[889]	validation_0-logloss:0.328876
[890]	validation_0-logloss:0.328885
[891]	validation_0-logloss:0.328884
[892]	validation_0-logloss:0.328884
[893]	validation_0-logloss:0.328874
[894]	validation_0-logloss:0.32887
[895]	validation_0-logloss:0.328871
[896]	validation_0-logloss:0.32883
[897]	validation_0-logloss:0.32883
[898]	validation_0-logloss:0.32883
[899]	validation_0-logloss:0.328831
[900]	validation_0-logloss:0.32883
[901]	validation_0-logloss:0.32882
[902]	validation_0-logloss:0.328821
[903]	validation_0-logloss:0.328821
[904]	validation_0-logloss:0.328821
[905]	validation_0-logloss:0.328808
[906]	validation_0-logloss:0.328804
[907]	validation_0-logloss:0.328804
[908]	validation_0-logloss:0.328789
[909]	validation_0-logloss:0.328789
[910]	validation_0-logloss:0.328789
[911]	validation_0-logloss:0.32879
[912]	validation_0-logloss:0.32879
[913]	validation_0-logloss:0.32879
[914]	validation_0-logloss:0.328789
[915]	validation_0-logloss:0.328773
[916]	validation_0-logloss:0.328761
[917]	validation_0-logloss:0.328761
[918]	validation_0-logloss:0.328762
[919]	validation_0-logloss:0.328742
[920]	validation_0-logloss:0.328703
[921]	validation_0-logloss:0.328704
[922]	validation_0-logloss:0.328704
[923]	validation_0-logloss:0.32869
[924]	validation_0-logloss:0.328667
[925]	validation_0-logloss:0.328667
[926]	validation_0-logloss:0.328666
[927]	validation_0-logloss:0.328666
[928]	validation_0-logloss:0.328665
[929]	validation_0-logloss:0.328652
[930]	validation_0-logloss:0.328617
[931]	validation_0-logloss:0.328617
[932]	validation_0-logloss:0.328554
[933]	validation_0-logloss:0.328524
[934]	validation_0-logloss:0.328517
[935]	validation_0-logloss:0.328533
[936]	validation_0-logloss:0.32852
[937]	validation_0-logloss:0.32852
[938]	validation_0-logloss:0.32852
[939]	validation_0-logloss:0.328523
[940]	validation_0-logloss:0.328522
[941]	validation_0-logloss:0.328502
[942]	validation_0-logloss:0.328502
[943]	validation_0-logloss:0.328503
[944]	validation_0-logloss:0.328503
[945]	validation_0-logloss:0.328503
[946]	validation_0-logloss:0.328458
[947]	validation_0-logloss:0.328457
[948]	validation_0-logloss:0.328469
[949]	validation_0-logloss:0.328468
[950]	validation_0-logloss:0.328461
[951]	validation_0-logloss:0.328462
[952]	validation_0-logloss:0.328461
[953]	validation_0-logloss:0.32846
[954]	validation_0-logloss:0.328461
[955]	validation_0-logloss:0.328468
[956]	validation_0-logloss:0.328468
[957]	validation_0-logloss:0.328428
[958]	validation_0-logloss:0.328429
[959]	validation_0-logloss:0.32837
[960]	validation_0-logloss:0.32837
[961]	validation_0-logloss:0.328351
[962]	validation_0-logloss:0.328352
[963]	validation_0-logloss:0.328337
[964]	validation_0-logloss:0.328336
[965]	validation_0-logloss:0.32834
[966]	validation_0-logloss:0.32831
[967]	validation_0-logloss:0.328311
[968]	validation_0-logloss:0.328257
[969]	validation_0-logloss:0.328258
[970]	validation_0-logloss:0.32821
[971]	validation_0-logloss:0.328211
[972]	validation_0-logloss:0.32821
[973]	validation_0-logloss:0.328202
[974]	validation_0-logloss:0.328202
[975]	validation_0-logloss:0.328188
[976]	validation_0-logloss:0.328187
[977]	validation_0-logloss:0.328187
[978]	validation_0-logloss:0.328188
[979]	validation_0-logloss:0.328211
[980]	validation_0-logloss:0.328213
[981]	validation_0-logloss:0.328212
[982]	validation_0-logloss:0.328212
[983]	validation_0-logloss:0.328211
[984]	validation_0-logloss:0.328216
[985]	validation_0-logloss:0.328217
[986]	validation_0-logloss:0.328216
[987]	validation_0-logloss:0.328216
[988]	validation_0-logloss:0.328216
[989]	validation_0-logloss:0.328215
[990]	validation_0-logloss:0.328216
[991]	validation_0-logloss:0.328216
[992]	validation_0-logloss:0.328216
[993]	validation_0-logloss:0.328216
[994]	validation_0-logloss:0.328216
[995]	validation_0-logloss:0.32823
[996]	validation_0-logloss:0.32823
[997]	validation_0-logloss:0.328229
[998]	validation_0-logloss:0.328231
[999]	validation_0-logloss:0.328232
[1000]	validation_0-logloss:0.328206
[1001]	validation_0-logloss:0.328197
[1002]	validation_0-logloss:0.328197
[1003]	validation_0-logloss:0.328197
[1004]	validation_0-logloss:0.328197
[1005]	validation_0-logloss:0.328188
[1006]	validation_0-logloss:0.328139
[1007]	validation_0-logloss:0.328135
[1008]	validation_0-logloss:0.328135
[1009]	validation_0-logloss:0.32814
[1010]	validation_0-logloss:0.32811
[1011]	validation_0-logloss:0.32811
[1012]	validation_0-logloss:0.328109
[1013]	validation_0-logloss:0.32811
[1014]	validation_0-logloss:0.328109
[1015]	validation_0-logloss:0.328108
[1016]	validation_0-logloss:0.328108
[1017]	validation_0-logloss:0.32811
[1018]	validation_0-logloss:0.32811
[1019]	validation_0-logloss:0.328089
[1020]	validation_0-logloss:0.328097
[1021]	validation_0-logloss:0.328097
[1022]	validation_0-logloss:0.328097
[1023]	validation_0-logloss:0.328087
[1024]	validation_0-logloss:0.328086
[1025]	validation_0-logloss:0.328088
[1026]	validation_0-logloss:0.328087
[1027]	validation_0-logloss:0.328082
[1028]	validation_0-logloss:0.328059
[1029]	validation_0-logloss:0.328059
[1030]	validation_0-logloss:0.328042
[1031]	validation_0-logloss:0.328042
[1032]	validation_0-logloss:0.328042
[1033]	validation_0-logloss:0.328042
[1034]	validation_0-logloss:0.328013
[1035]	validation_0-logloss:0.328013
[1036]	validation_0-logloss:0.328001
[1037]	validation_0-logloss:0.328002
[1038]	validation_0-logloss:0.328001
[1039]	validation_0-logloss:0.328001
[1040]	validation_0-logloss:0.327976
[1041]	validation_0-logloss:0.327975
[1042]	validation_0-logloss:0.327976
[1043]	validation_0-logloss:0.327976
[1044]	validation_0-logloss:0.327945
[1045]	validation_0-logloss:0.32795
[1046]	validation_0-logloss:0.327951
[1047]	validation_0-logloss:0.327935
[1048]	validation_0-logloss:0.327936
[1049]	validation_0-logloss:0.327921
[1050]	validation_0-logloss:0.327921
[1051]	validation_0-logloss:0.327921
[1052]	validation_0-logloss:0.32792
[1053]	validation_0-logloss:0.327921
[1054]	validation_0-logloss:0.327922
[1055]	validation_0-logloss:0.327922
[1056]	validation_0-logloss:0.327921
[1057]	validation_0-logloss:0.32792
[1058]	validation_0-logloss:0.32792
[1059]	validation_0-logloss:0.327921
[1060]	validation_0-logloss:0.327921
[1061]	validation_0-logloss:0.327921
[1062]	validation_0-logloss:0.327921
[1063]	validation_0-logloss:0.327922
[1064]	validation_0-logloss:0.327922
[1065]	validation_0-logloss:0.327922
[1066]	validation_0-logloss:0.327922
[1067]	validation_0-logloss:0.327889
[1068]	validation_0-logloss:0.327876
[1069]	validation_0-logloss:0.327877
[1070]	validation_0-logloss:0.327876
[1071]	validation_0-logloss:0.327876
[1072]	validation_0-logloss:0.327863
[1073]	validation_0-logloss:0.327863
[1074]	validation_0-logloss:0.327844
[1075]	validation_0-logloss:0.327835
[1076]	validation_0-logloss:0.327821
[1077]	validation_0-logloss:0.327821
[1078]	validation_0-logloss:0.327822
[1079]	validation_0-logloss:0.327822
[1080]	validation_0-logloss:0.327816
[1081]	validation_0-logloss:0.327816
[1082]	validation_0-logloss:0.327817
[1083]	validation_0-logloss:0.327838
[1084]	validation_0-logloss:0.327837
[1085]	validation_0-logloss:0.327836
[1086]	validation_0-logloss:0.327836
[1087]	validation_0-logloss:0.327835
[1088]	validation_0-logloss:0.327834
[1089]	validation_0-logloss:0.327781
[1090]	validation_0-logloss:0.327781
[1091]	validation_0-logloss:0.327783
[1092]	validation_0-logloss:0.327785
[1093]	validation_0-logloss:0.327768
[1094]	validation_0-logloss:0.327736
[1095]	validation_0-logloss:0.327735
[1096]	validation_0-logloss:0.327735
[1097]	validation_0-logloss:0.327737
[1098]	validation_0-logloss:0.327737
[1099]	validation_0-logloss:0.327737
[1100]	validation_0-logloss:0.327737
[1101]	validation_0-logloss:0.327727
[1102]	validation_0-logloss:0.327673
[1103]	validation_0-logloss:0.327673
[1104]	validation_0-logloss:0.327674
[1105]	validation_0-logloss:0.327634
[1106]	validation_0-logloss:0.327634
[1107]	validation_0-logloss:0.327635
[1108]	validation_0-logloss:0.327602
[1109]	validation_0-logloss:0.327604
[1110]	validation_0-logloss:0.327604
[1111]	validation_0-logloss:0.327604
[1112]	validation_0-logloss:0.327605
[1113]	validation_0-logloss:0.327613
[1114]	validation_0-logloss:0.327619
[1115]	validation_0-logloss:0.327625
[1116]	validation_0-logloss:0.327625
[1117]	validation_0-logloss:0.327626
[1118]	validation_0-logloss:0.327626
[1119]	validation_0-logloss:0.327603
[1120]	validation_0-logloss:0.327602
[1121]	validation_0-logloss:0.327603
[1122]	validation_0-logloss:0.327605
[1123]	validation_0-logloss:0.327606
[1124]	validation_0-logloss:0.327605
[1125]	validation_0-logloss:0.327584
[1126]	validation_0-logloss:0.327584
[1127]	validation_0-logloss:0.327585
[1128]	validation_0-logloss:0.327569
[1129]	validation_0-logloss:0.327577
[1130]	validation_0-logloss:0.327578
[1131]	validation_0-logloss:0.327579
[1132]	validation_0-logloss:0.327579
[1133]	validation_0-logloss:0.327578
[1134]	validation_0-logloss:0.32757
[1135]	validation_0-logloss:0.327571
[1136]	validation_0-logloss:0.327571
[1137]	validation_0-logloss:0.32757
[1138]	validation_0-logloss:0.327558
[1139]	validation_0-logloss:0.327558
[1140]	validation_0-logloss:0.327558
[1141]	validation_0-logloss:0.327558
[1142]	validation_0-logloss:0.327558
[1143]	validation_0-logloss:0.327558
[1144]	validation_0-logloss:0.327557
[1145]	validation_0-logloss:0.327556
[1146]	validation_0-logloss:0.327556
[1147]	validation_0-logloss:0.327556
[1148]	validation_0-logloss:0.327556
[1149]	validation_0-logloss:0.327526
[1150]	validation_0-logloss:0.327527
[1151]	validation_0-logloss:0.327532
[1152]	validation_0-logloss:0.327531
[1153]	validation_0-logloss:0.327531
[1154]	validation_0-logloss:0.327524
[1155]	validation_0-logloss:0.327523
[1156]	validation_0-logloss:0.327523
[1157]	validation_0-logloss:0.327523
[1158]	validation_0-logloss:0.327522
[1159]	validation_0-logloss:0.327522
[1160]	validation_0-logloss:0.327522
[1161]	validation_0-logloss:0.32752
[1162]	validation_0-logloss:0.32752
[1163]	validation_0-logloss:0.327505
[1164]	validation_0-logloss:0.327505
[1165]	validation_0-logloss:0.327505
[1166]	validation_0-logloss:0.327505
[1167]	validation_0-logloss:0.327504
[1168]	validation_0-logloss:0.327504
[1169]	validation_0-logloss:0.327512
[1170]	validation_0-logloss:0.327513
[1171]	validation_0-logloss:0.327509
[1172]	validation_0-logloss:0.32751
[1173]	validation_0-logloss:0.32751
[1174]	validation_0-logloss:0.327498
[1175]	validation_0-logloss:0.327475
[1176]	validation_0-logloss:0.327475
[1177]	validation_0-logloss:0.32749
[1178]	validation_0-logloss:0.327489
[1179]	validation_0-logloss:0.327489
[1180]	validation_0-logloss:0.32749
[1181]	validation_0-logloss:0.327471
[1182]	validation_0-logloss:0.327486
[1183]	validation_0-logloss:0.327444
[1184]	validation_0-logloss:0.327397
[1185]	validation_0-logloss:0.327396
[1186]	validation_0-logloss:0.32741
[1187]	validation_0-logloss:0.327401
[1188]	validation_0-logloss:0.327401
[1189]	validation_0-logloss:0.327411
[1190]	validation_0-logloss:0.32738
[1191]	validation_0-logloss:0.327358
[1192]	validation_0-logloss:0.327358
[1193]	validation_0-logloss:0.327357
[1194]	validation_0-logloss:0.327358
[1195]	validation_0-logloss:0.327348
[1196]	validation_0-logloss:0.327349
[1197]	validation_0-logloss:0.327347
[1198]	validation_0-logloss:0.327288
[1199]	validation_0-logloss:0.327286
[1200]	validation_0-logloss:0.327288
[1201]	validation_0-logloss:0.327288
[1202]	validation_0-logloss:0.327268
[1203]	validation_0-logloss:0.32727
[1204]	validation_0-logloss:0.327286
[1205]	validation_0-logloss:0.327287
[1206]	validation_0-logloss:0.32722
[1207]	validation_0-logloss:0.327219
[1208]	validation_0-logloss:0.327221
[1209]	validation_0-logloss:0.327228
[1210]	validation_0-logloss:0.327228
[1211]	validation_0-logloss:0.327219
[1212]	validation_0-logloss:0.32722
[1213]	validation_0-logloss:0.32722
[1214]	validation_0-logloss:0.327219
[1215]	validation_0-logloss:0.327219
[1216]	validation_0-logloss:0.327219
[1217]	validation_0-logloss:0.327219
[1218]	validation_0-logloss:0.327219
[1219]	validation_0-logloss:0.327219
[1220]	validation_0-logloss:0.327218
[1221]	validation_0-logloss:0.32722
[1222]	validation_0-logloss:0.327219
[1223]	validation_0-logloss:0.327212
[1224]	validation_0-logloss:0.327212
[1225]	validation_0-logloss:0.327212
[1226]	validation_0-logloss:0.327222
[1227]	validation_0-logloss:0.327221
[1228]	validation_0-logloss:0.327221
[1229]	validation_0-logloss:0.327221
[1230]	validation_0-logloss:0.327221
[1231]	validation_0-logloss:0.327222
[1232]	validation_0-logloss:0.327221
[1233]	validation_0-logloss:0.327221
[1234]	validation_0-logloss:0.327221
[1235]	validation_0-logloss:0.327221
[1236]	validation_0-logloss:0.327221
[1237]	validation_0-logloss:0.327222
[1238]	validation_0-logloss:0.327222
[1239]	validation_0-logloss:0.327222
[1240]	validation_0-logloss:0.327234
[1241]	validation_0-logloss:0.327234
[1242]	validation_0-logloss:0.327237
[1243]	validation_0-logloss:0.327238
[1244]	validation_0-logloss:0.327236
[1245]	validation_0-logloss:0.327227
[1246]	validation_0-logloss:0.327229
[1247]	validation_0-logloss:0.327228
[1248]	validation_0-logloss:0.327228
[1249]	validation_0-logloss:0.327228
[1250]	validation_0-logloss:0.327228
[1251]	validation_0-logloss:0.327228
[1252]	validation_0-logloss:0.327235
[1253]	validation_0-logloss:0.327247
[1254]	validation_0-logloss:0.327247
[1255]	validation_0-logloss:0.327228
[1256]	validation_0-logloss:0.327228
[1257]	validation_0-logloss:0.327228
[1258]	validation_0-logloss:0.327228
[1259]	validation_0-logloss:0.327228
[1260]	validation_0-logloss:0.327228
[1261]	validation_0-logloss:0.327216
[1262]	validation_0-logloss:0.327217
[1263]	validation_0-logloss:0.327217
[1264]	validation_0-logloss:0.327217
[1265]	validation_0-logloss:0.327217
[1266]	validation_0-logloss:0.327212
[1267]	validation_0-logloss:0.327212
[1268]	validation_0-logloss:0.327212
[1269]	validation_0-logloss:0.327212
[1270]	validation_0-logloss:0.327211
[1271]	validation_0-logloss:0.327202
[1272]	validation_0-logloss:0.327201
[1273]	validation_0-logloss:0.327201
[1274]	validation_0-logloss:0.327201
[1275]	validation_0-logloss:0.327201
[1276]	validation_0-logloss:0.327203
[1277]	validation_0-logloss:0.327187
[1278]	validation_0-logloss:0.327189
[1279]	validation_0-logloss:0.327189
[1280]	validation_0-logloss:0.327189
[1281]	validation_0-logloss:0.327189
[1282]	validation_0-logloss:0.327189
[1283]	validation_0-logloss:0.327192
[1284]	validation_0-logloss:0.327192
[1285]	validation_0-logloss:0.327191
[1286]	validation_0-logloss:0.32723
[1287]	validation_0-logloss:0.32723
[1288]	validation_0-logloss:0.32723
[1289]	validation_0-logloss:0.327231
[1290]	validation_0-logloss:0.327229
[1291]	validation_0-logloss:0.327228
[1292]	validation_0-logloss:0.327229
[1293]	validation_0-logloss:0.327203
[1294]	validation_0-logloss:0.327203
[1295]	validation_0-logloss:0.327203
[1296]	validation_0-logloss:0.327204
[1297]	validation_0-logloss:0.327207
[1298]	validation_0-logloss:0.327207
[1299]	validation_0-logloss:0.327208
[1300]	validation_0-logloss:0.327208
[1301]	validation_0-logloss:0.32721
[1302]	validation_0-logloss:0.327211
[1303]	validation_0-logloss:0.327208
[1304]	validation_0-logloss:0.327207
[1305]	validation_0-logloss:0.327211
[1306]	validation_0-logloss:0.327211
[1307]	validation_0-logloss:0.327213
[1308]	validation_0-logloss:0.327213
[1309]	validation_0-logloss:0.327213
[1310]	validation_0-logloss:0.327213
[1311]	validation_0-logloss:0.327212
[1312]	validation_0-logloss:0.327184
[1313]	validation_0-logloss:0.327185
[1314]	validation_0-logloss:0.327172
[1315]	validation_0-logloss:0.327138
[1316]	validation_0-logloss:0.327138
[1317]	validation_0-logloss:0.327138
[1318]	validation_0-logloss:0.327149
[1319]	validation_0-logloss:0.32715
[1320]	validation_0-logloss:0.327149
[1321]	validation_0-logloss:0.327148
[1322]	validation_0-logloss:0.32716
[1323]	validation_0-logloss:0.32716
[1324]	validation_0-logloss:0.32716
[1325]	validation_0-logloss:0.32716
[1326]	validation_0-logloss:0.32716
[1327]	validation_0-logloss:0.32716
[1328]	validation_0-logloss:0.32716
[1329]	validation_0-logloss:0.32716
[1330]	validation_0-logloss:0.32716
[1331]	validation_0-logloss:0.327161
[1332]	validation_0-logloss:0.327161
[1333]	validation_0-logloss:0.327161
[1334]	validation_0-logloss:0.327162
[1335]	validation_0-logloss:0.327162
[1336]	validation_0-logloss:0.327162
[1337]	validation_0-logloss:0.327159
[1338]	validation_0-logloss:0.327147
[1339]	validation_0-logloss:0.327148
[1340]	validation_0-logloss:0.327136
[1341]	validation_0-logloss:0.327134
[1342]	validation_0-logloss:0.327135
[1343]	validation_0-logloss:0.327135
[1344]	validation_0-logloss:0.327137
[1345]	validation_0-logloss:0.327137
[1346]	validation_0-logloss:0.32713
[1347]	validation_0-logloss:0.327118
[1348]	validation_0-logloss:0.327118
[1349]	validation_0-logloss:0.327118
[1350]	validation_0-logloss:0.327117
[1351]	validation_0-logloss:0.327116
[1352]	validation_0-logloss:0.327115
[1353]	validation_0-logloss:0.327117
[1354]	validation_0-logloss:0.327114
[1355]	validation_0-logloss:0.327121
[1356]	validation_0-logloss:0.327107
[1357]	validation_0-logloss:0.327107
[1358]	validation_0-logloss:0.327109
[1359]	validation_0-logloss:0.3271
[1360]	validation_0-logloss:0.3271
[1361]	validation_0-logloss:0.327093
[1362]	validation_0-logloss:0.327091
[1363]	validation_0-logloss:0.327063
[1364]	validation_0-logloss:0.327064
[1365]	validation_0-logloss:0.327064
[1366]	validation_0-logloss:0.32705
[1367]	validation_0-logloss:0.32705
[1368]	validation_0-logloss:0.327043
[1369]	validation_0-logloss:0.327043
[1370]	validation_0-logloss:0.327023
[1371]	validation_0-logloss:0.327023
[1372]	validation_0-logloss:0.327023
[1373]	validation_0-logloss:0.327024
[1374]	validation_0-logloss:0.327022
[1375]	validation_0-logloss:0.327036
[1376]	validation_0-logloss:0.327037
[1377]	validation_0-logloss:0.327037
[1378]	validation_0-logloss:0.327037
[1379]	validation_0-logloss:0.327037
[1380]	validation_0-logloss:0.327039
[1381]	validation_0-logloss:0.327053
[1382]	validation_0-logloss:0.327053
[1383]	validation_0-logloss:0.327053
[1384]	validation_0-logloss:0.327041
[1385]	validation_0-logloss:0.32702
[1386]	validation_0-logloss:0.326999
[1387]	validation_0-logloss:0.326999
[1388]	validation_0-logloss:0.326998
[1389]	validation_0-logloss:0.326998
[1390]	validation_0-logloss:0.326996
[1391]	validation_0-logloss:0.326997
[1392]	validation_0-logloss:0.326996
[1393]	validation_0-logloss:0.326996
[1394]	validation_0-logloss:0.326996
[1395]	validation_0-logloss:0.326995
[1396]	validation_0-logloss:0.326996
[1397]	validation_0-logloss:0.32702
[1398]	validation_0-logloss:0.327019
[1399]	validation_0-logloss:0.327017
[1400]	validation_0-logloss:0.327018
[1401]	validation_0-logloss:0.327017
[1402]	validation_0-logloss:0.327017
[1403]	validation_0-logloss:0.327017
[1404]	validation_0-logloss:0.327017
[1405]	validation_0-logloss:0.327017
[1406]	validation_0-logloss:0.327018
[1407]	validation_0-logloss:0.327018
[1408]	validation_0-logloss:0.327017
[1409]	validation_0-logloss:0.326971
[1410]	validation_0-logloss:0.326972
[1411]	validation_0-logloss:0.326964
[1412]	validation_0-logloss:0.326966
[1413]	validation_0-logloss:0.326967
[1414]	validation_0-logloss:0.326968
[1415]	validation_0-logloss:0.326968
[1416]	validation_0-logloss:0.326968
[1417]	validation_0-logloss:0.326961
[1418]	validation_0-logloss:0.326963
[1419]	validation_0-logloss:0.326961
[1420]	validation_0-logloss:0.326962
[1421]	validation_0-logloss:0.326964
[1422]	validation_0-logloss:0.326965
[1423]	validation_0-logloss:0.326988
[1424]	validation_0-logloss:0.326955
[1425]	validation_0-logloss:0.326955
[1426]	validation_0-logloss:0.326955
[1427]	validation_0-logloss:0.326955
[1428]	validation_0-logloss:0.326951
[1429]	validation_0-logloss:0.32695
[1430]	validation_0-logloss:0.326941
[1431]	validation_0-logloss:0.326933
[1432]	validation_0-logloss:0.326933
[1433]	validation_0-logloss:0.326916
[1434]	validation_0-logloss:0.326916
[1435]	validation_0-logloss:0.32692
[1436]	validation_0-logloss:0.32692
[1437]	validation_0-logloss:0.32692
[1438]	validation_0-logloss:0.326907
[1439]	validation_0-logloss:0.326908
[1440]	validation_0-logloss:0.326908
[1441]	validation_0-logloss:0.326913
[1442]	validation_0-logloss:0.326914
[1443]	validation_0-logloss:0.326913
[1444]	validation_0-logloss:0.326914
[1445]	validation_0-logloss:0.326914
[1446]	validation_0-logloss:0.326914
[1447]	validation_0-logloss:0.326915
[1448]	validation_0-logloss:0.326915
[1449]	validation_0-logloss:0.326916
[1450]	validation_0-logloss:0.326916
[1451]	validation_0-logloss:0.326915
[1452]	validation_0-logloss:0.326872
[1453]	validation_0-logloss:0.326889
[1454]	validation_0-logloss:0.326891
[1455]	validation_0-logloss:0.326892
[1456]	validation_0-logloss:0.326892
[1457]	validation_0-logloss:0.326892
[1458]	validation_0-logloss:0.326894
[1459]	validation_0-logloss:0.326894
[1460]	validation_0-logloss:0.326917
[1461]	validation_0-logloss:0.32691
[1462]	validation_0-logloss:0.32691
[1463]	validation_0-logloss:0.32691
[1464]	validation_0-logloss:0.32691
[1465]	validation_0-logloss:0.326911
[1466]	validation_0-logloss:0.326911
[1467]	validation_0-logloss:0.326903
[1468]	validation_0-logloss:0.326903
[1469]	validation_0-logloss:0.326903
[1470]	validation_0-logloss:0.326903
[1471]	validation_0-logloss:0.32692
[1472]	validation_0-logloss:0.32692
[1473]	validation_0-logloss:0.326921
[1474]	validation_0-logloss:0.32692
[1475]	validation_0-logloss:0.32692
[1476]	validation_0-logloss:0.326905
[1477]	validation_0-logloss:0.326907
[1478]	validation_0-logloss:0.326907
[1479]	validation_0-logloss:0.326908
[1480]	validation_0-logloss:0.326908
[1481]	validation_0-logloss:0.326908
[1482]	validation_0-logloss:0.326893
[1483]	validation_0-logloss:0.326895
[1484]	validation_0-logloss:0.326862
[1485]	validation_0-logloss:0.326854
[1486]	validation_0-logloss:0.326854
[1487]	validation_0-logloss:0.326829
[1488]	validation_0-logloss:0.32683
[1489]	validation_0-logloss:0.32683
[1490]	validation_0-logloss:0.326824
[1491]	validation_0-logloss:0.326826
[1492]	validation_0-logloss:0.326826
[1493]	validation_0-logloss:0.326824
[1494]	validation_0-logloss:0.326808
[1495]	validation_0-logloss:0.326808
[1496]	validation_0-logloss:0.326808
[1497]	validation_0-logloss:0.326808
[1498]	validation_0-logloss:0.326809
[1499]	validation_0-logloss:0.326809
[1500]	validation_0-logloss:0.326809
[1501]	validation_0-logloss:0.32681
[1502]	validation_0-logloss:0.326791
[1503]	validation_0-logloss:0.32679
[1504]	validation_0-logloss:0.326781
[1505]	validation_0-logloss:0.32678
[1506]	validation_0-logloss:0.326781
[1507]	validation_0-logloss:0.326781
[1508]	validation_0-logloss:0.326781
[1509]	validation_0-logloss:0.326781
[1510]	validation_0-logloss:0.326781
[1511]	validation_0-logloss:0.326781
[1512]	validation_0-logloss:0.326781
[1513]	validation_0-logloss:0.32678
[1514]	validation_0-logloss:0.326772
[1515]	validation_0-logloss:0.326771
[1516]	validation_0-logloss:0.32677
[1517]	validation_0-logloss:0.326771
[1518]	validation_0-logloss:0.326771
[1519]	validation_0-logloss:0.326771
[1520]	validation_0-logloss:0.326771
[1521]	validation_0-logloss:0.32677
[1522]	validation_0-logloss:0.326769
[1523]	validation_0-logloss:0.326771
[1524]	validation_0-logloss:0.326759
[1525]	validation_0-logloss:0.326758
[1526]	validation_0-logloss:0.326758
[1527]	validation_0-logloss:0.326757
[1528]	validation_0-logloss:0.326729
[1529]	validation_0-logloss:0.326729
[1530]	validation_0-logloss:0.326729
[1531]	validation_0-logloss:0.326729
[1532]	validation_0-logloss:0.326729
[1533]	validation_0-logloss:0.326729
[1534]	validation_0-logloss:0.326729
[1535]	validation_0-logloss:0.326729
[1536]	validation_0-logloss:0.326722
[1537]	validation_0-logloss:0.326723
[1538]	validation_0-logloss:0.326722
[1539]	validation_0-logloss:0.326721
[1540]	validation_0-logloss:0.326722
[1541]	validation_0-logloss:0.326722
[1542]	validation_0-logloss:0.326722
[1543]	validation_0-logloss:0.326723
[1544]	validation_0-logloss:0.326723
[1545]	validation_0-logloss:0.326723
[1546]	validation_0-logloss:0.326724
[1547]	validation_0-logloss:0.326724
[1548]	validation_0-logloss:0.326723
[1549]	validation_0-logloss:0.32673
[1550]	validation_0-logloss:0.32673
[1551]	validation_0-logloss:0.32673
[1552]	validation_0-logloss:0.32673
[1553]	validation_0-logloss:0.326729
[1554]	validation_0-logloss:0.32673
[1555]	validation_0-logloss:0.326728
[1556]	validation_0-logloss:0.326728
[1557]	validation_0-logloss:0.326728
[1558]	validation_0-logloss:0.326728
[1559]	validation_0-logloss:0.326727
[1560]	validation_0-logloss:0.326727
[1561]	validation_0-logloss:0.326728
[1562]	validation_0-logloss:0.326729
[1563]	validation_0-logloss:0.326729
[1564]	validation_0-logloss:0.326729
[1565]	validation_0-logloss:0.326729
[1566]	validation_0-logloss:0.32673
[1567]	validation_0-logloss:0.326725
[1568]	validation_0-logloss:0.326726
[1569]	validation_0-logloss:0.326714
[1570]	validation_0-logloss:0.326713
[1571]	validation_0-logloss:0.326711
[1572]	validation_0-logloss:0.326712
[1573]	validation_0-logloss:0.326713
[1574]	validation_0-logloss:0.326712
[1575]	validation_0-logloss:0.326713
[1576]	validation_0-logloss:0.326713
[1577]	validation_0-logloss:0.326712
[1578]	validation_0-logloss:0.326712
[1579]	validation_0-logloss:0.326711
[1580]	validation_0-logloss:0.326711
[1581]	validation_0-logloss:0.326712
[1582]	validation_0-logloss:0.326712
[1583]	validation_0-logloss:0.326712
[1584]	validation_0-logloss:0.326711
[1585]	validation_0-logloss:0.326711
[1586]	validation_0-logloss:0.326711
[1587]	validation_0-logloss:0.326711
[1588]	validation_0-logloss:0.326712
[1589]	validation_0-logloss:0.326711
[1590]	validation_0-logloss:0.326712
[1591]	validation_0-logloss:0.326711
[1592]	validation_0-logloss:0.326718
[1593]	validation_0-logloss:0.326717
[1594]	validation_0-logloss:0.326717
[1595]	validation_0-logloss:0.326727
[1596]	validation_0-logloss:0.326726
[1597]	validation_0-logloss:0.326726
[1598]	validation_0-logloss:0.326759
[1599]	validation_0-logloss:0.32676
[1600]	validation_0-logloss:0.326759
[1601]	validation_0-logloss:0.326759
[1602]	validation_0-logloss:0.326758
[1603]	validation_0-logloss:0.326758
[1604]	validation_0-logloss:0.326758
[1605]	validation_0-logloss:0.326757
[1606]	validation_0-logloss:0.326757
[1607]	validation_0-logloss:0.326757
[1608]	validation_0-logloss:0.326757
[1609]	validation_0-logloss:0.326724
[1610]	validation_0-logloss:0.326722
[1611]	validation_0-logloss:0.326757
[1612]	validation_0-logloss:0.326731
[1613]	validation_0-logloss:0.326706
[1614]	validation_0-logloss:0.326706
[1615]	validation_0-logloss:0.326705
[1616]	validation_0-logloss:0.326705
[1617]	validation_0-logloss:0.326706
[1618]	validation_0-logloss:0.326705
[1619]	validation_0-logloss:0.326706
[1620]	validation_0-logloss:0.326706
[1621]	validation_0-logloss:0.326707
[1622]	validation_0-logloss:0.326708
[1623]	validation_0-logloss:0.326708
[1624]	validation_0-logloss:0.326709
[1625]	validation_0-logloss:0.326708
[1626]	validation_0-logloss:0.326708
[1627]	validation_0-logloss:0.326672
[1628]	validation_0-logloss:0.326672
[1629]	validation_0-logloss:0.326672
[1630]	validation_0-logloss:0.326685
[1631]	validation_0-logloss:0.326689
[1632]	validation_0-logloss:0.326668
[1633]	validation_0-logloss:0.326669
[1634]	validation_0-logloss:0.326656
[1635]	validation_0-logloss:0.326656
[1636]	validation_0-logloss:0.326656
[1637]	validation_0-logloss:0.326657
[1638]	validation_0-logloss:0.326657
[1639]	validation_0-logloss:0.326674
[1640]	validation_0-logloss:0.326675
[1641]	validation_0-logloss:0.326675
[1642]	validation_0-logloss:0.326676
[1643]	validation_0-logloss:0.326677
[1644]	validation_0-logloss:0.326678
[1645]	validation_0-logloss:0.32668
[1646]	validation_0-logloss:0.32668
[1647]	validation_0-logloss:0.32668
[1648]	validation_0-logloss:0.326682
[1649]	validation_0-logloss:0.326683
[1650]	validation_0-logloss:0.326655
[1651]	validation_0-logloss:0.326655
[1652]	validation_0-logloss:0.326655
[1653]	validation_0-logloss:0.326655
[1654]	validation_0-logloss:0.326625
[1655]	validation_0-logloss:0.326625
[1656]	validation_0-logloss:0.326641
[1657]	validation_0-logloss:0.326641
[1658]	validation_0-logloss:0.326642
[1659]	validation_0-logloss:0.326635
[1660]	validation_0-logloss:0.326634
[1661]	validation_0-logloss:0.326609
[1662]	validation_0-logloss:0.326609
[1663]	validation_0-logloss:0.32661
[1664]	validation_0-logloss:0.326608
[1665]	validation_0-logloss:0.326608
[1666]	validation_0-logloss:0.326613
[1667]	validation_0-logloss:0.326614
[1668]	validation_0-logloss:0.326598
[1669]	validation_0-logloss:0.326598
[1670]	validation_0-logloss:0.326598
[1671]	validation_0-logloss:0.326598
[1672]	validation_0-logloss:0.326596
[1673]	validation_0-logloss:0.326595
[1674]	validation_0-logloss:0.326594
[1675]	validation_0-logloss:0.326595
[1676]	validation_0-logloss:0.326564
[1677]	validation_0-logloss:0.326564
[1678]	validation_0-logloss:0.326564
[1679]	validation_0-logloss:0.326564
[1680]	validation_0-logloss:0.326564
[1681]	validation_0-logloss:0.326564
[1682]	validation_0-logloss:0.326565
[1683]	validation_0-logloss:0.326564
[1684]	validation_0-logloss:0.326564
[1685]	validation_0-logloss:0.326562
[1686]	validation_0-logloss:0.326564
[1687]	validation_0-logloss:0.326564
[1688]	validation_0-logloss:0.326563
[1689]	validation_0-logloss:0.326564
[1690]	validation_0-logloss:0.326563
[1691]	validation_0-logloss:0.32657
[1692]	validation_0-logloss:0.326573
[1693]	validation_0-logloss:0.326564
[1694]	validation_0-logloss:0.326565
[1695]	validation_0-logloss:0.326564
[1696]	validation_0-logloss:0.326564
[1697]	validation_0-logloss:0.326563
[1698]	validation_0-logloss:0.326563
[1699]	validation_0-logloss:0.326573
[1700]	validation_0-logloss:0.326572
[1701]	validation_0-logloss:0.326572
[1702]	validation_0-logloss:0.326571
[1703]	validation_0-logloss:0.326571
[1704]	validation_0-logloss:0.326571
[1705]	validation_0-logloss:0.326571
[1706]	validation_0-logloss:0.32657
[1707]	validation_0-logloss:0.326572
[1708]	validation_0-logloss:0.326572
[1709]	validation_0-logloss:0.326572
[1710]	validation_0-logloss:0.326571
[1711]	validation_0-logloss:0.326571
[1712]	validation_0-logloss:0.326572
[1713]	validation_0-logloss:0.326573
[1714]	validation_0-logloss:0.326573
[1715]	validation_0-logloss:0.326573
[1716]	validation_0-logloss:0.326572
[1717]	validation_0-logloss:0.326572
[1718]	validation_0-logloss:0.326573
[1719]	validation_0-logloss:0.326571
[1720]	validation_0-logloss:0.32657
[1721]	validation_0-logloss:0.32657
[1722]	validation_0-logloss:0.32657
[1723]	validation_0-logloss:0.326555
[1724]	validation_0-logloss:0.326555
[1725]	validation_0-logloss:0.326554
[1726]	validation_0-logloss:0.326553
[1727]	validation_0-logloss:0.32654
[1728]	validation_0-logloss:0.32654
[1729]	validation_0-logloss:0.32654
[1730]	validation_0-logloss:0.326542
[1731]	validation_0-logloss:0.326522
[1732]	validation_0-logloss:0.326523
[1733]	validation_0-logloss:0.326522
[1734]	validation_0-logloss:0.326523
[1735]	validation_0-logloss:0.326523
[1736]	validation_0-logloss:0.326523
[1737]	validation_0-logloss:0.326519
[1738]	validation_0-logloss:0.326518
[1739]	validation_0-logloss:0.326519
[1740]	validation_0-logloss:0.326519
[1741]	validation_0-logloss:0.326519
[1742]	validation_0-logloss:0.326544
[1743]	validation_0-logloss:0.326545
[1744]	validation_0-logloss:0.326545
[1745]	validation_0-logloss:0.326545
[1746]	validation_0-logloss:0.326545
[1747]	validation_0-logloss:0.326544
[1748]	validation_0-logloss:0.326542
[1749]	validation_0-logloss:0.326543
[1750]	validation_0-logloss:0.326544
[1751]	validation_0-logloss:0.326543
[1752]	validation_0-logloss:0.326545
[1753]	validation_0-logloss:0.326544
[1754]	validation_0-logloss:0.326543
[1755]	validation_0-logloss:0.326567
[1756]	validation_0-logloss:0.326567
[1757]	validation_0-logloss:0.326567
[1758]	validation_0-logloss:0.326568
[1759]	validation_0-logloss:0.326558
[1760]	validation_0-logloss:0.326542
[1761]	validation_0-logloss:0.326543
[1762]	validation_0-logloss:0.326517
[1763]	validation_0-logloss:0.326516
[1764]	validation_0-logloss:0.326516
[1765]	validation_0-logloss:0.326516
[1766]	validation_0-logloss:0.326516
[1767]	validation_0-logloss:0.326504
[1768]	validation_0-logloss:0.326504
[1769]	validation_0-logloss:0.326504
[1770]	validation_0-logloss:0.326528
[1771]	validation_0-logloss:0.326528
[1772]	validation_0-logloss:0.326528
[1773]	validation_0-logloss:0.326528
[1774]	validation_0-logloss:0.326529
[1775]	validation_0-logloss:0.326527
[1776]	validation_0-logloss:0.326527
[1777]	validation_0-logloss:0.326527
[1778]	validation_0-logloss:0.326527
[1779]	validation_0-logloss:0.326516
[1780]	validation_0-logloss:0.326517
[1781]	validation_0-logloss:0.326481
[1782]	validation_0-logloss:0.32648
[1783]	validation_0-logloss:0.326482
[1784]	validation_0-logloss:0.326466
[1785]	validation_0-logloss:0.326465
[1786]	validation_0-logloss:0.326432
[1787]	validation_0-logloss:0.326433
[1788]	validation_0-logloss:0.3264
[1789]	validation_0-logloss:0.326401
[1790]	validation_0-logloss:0.326381
[1791]	validation_0-logloss:0.326381
[1792]	validation_0-logloss:0.326383
[1793]	validation_0-logloss:0.326381
[1794]	validation_0-logloss:0.326381
[1795]	validation_0-logloss:0.326335
[1796]	validation_0-logloss:0.326333
[1797]	validation_0-logloss:0.326333
[1798]	validation_0-logloss:0.326333
[1799]	validation_0-logloss:0.326334
[1800]	validation_0-logloss:0.326334
[1801]	validation_0-logloss:0.326335
[1802]	validation_0-logloss:0.326335
[1803]	validation_0-logloss:0.326328
[1804]	validation_0-logloss:0.326327
[1805]	validation_0-logloss:0.326327
[1806]	validation_0-logloss:0.326327
[1807]	validation_0-logloss:0.326315
[1808]	validation_0-logloss:0.326315
[1809]	validation_0-logloss:0.326325
[1810]	validation_0-logloss:0.326353
[1811]	validation_0-logloss:0.326353
[1812]	validation_0-logloss:0.326321
[1813]	validation_0-logloss:0.326321
[1814]	validation_0-logloss:0.326322
[1815]	validation_0-logloss:0.326321
[1816]	validation_0-logloss:0.326321
[1817]	validation_0-logloss:0.326321
[1818]	validation_0-logloss:0.326317
[1819]	validation_0-logloss:0.326316
[1820]	validation_0-logloss:0.326298
[1821]	validation_0-logloss:0.326298
[1822]	validation_0-logloss:0.326298
[1823]	validation_0-logloss:0.326298
[1824]	validation_0-logloss:0.326299
[1825]	validation_0-logloss:0.326299
[1826]	validation_0-logloss:0.326299
[1827]	validation_0-logloss:0.326299
[1828]	validation_0-logloss:0.326299
[1829]	validation_0-logloss:0.326301
[1830]	validation_0-logloss:0.326302
[1831]	validation_0-logloss:0.326303
[1832]	validation_0-logloss:0.326303
[1833]	validation_0-logloss:0.326303
[1834]	validation_0-logloss:0.326303
[1835]	validation_0-logloss:0.326302
[1836]	validation_0-logloss:0.32631
[1837]	validation_0-logloss:0.32631
[1838]	validation_0-logloss:0.326311
[1839]	validation_0-logloss:0.32631
[1840]	validation_0-logloss:0.32631
[1841]	validation_0-logloss:0.32631
[1842]	validation_0-logloss:0.32631
[1843]	validation_0-logloss:0.326309
[1844]	validation_0-logloss:0.326309
[1845]	validation_0-logloss:0.326321
[1846]	validation_0-logloss:0.326321
[1847]	validation_0-logloss:0.32632
[1848]	validation_0-logloss:0.326319
[1849]	validation_0-logloss:0.32632
[1850]	validation_0-logloss:0.326321
[1851]	validation_0-logloss:0.326321
[1852]	validation_0-logloss:0.326321
[1853]	validation_0-logloss:0.326322
[1854]	validation_0-logloss:0.326323
[1855]	validation_0-logloss:0.326322
[1856]	validation_0-logloss:0.326322
[1857]	validation_0-logloss:0.326322
[1858]	validation_0-logloss:0.326322
[1859]	validation_0-logloss:0.326321
[1860]	validation_0-logloss:0.326321
[1861]	validation_0-logloss:0.326285
[1862]	validation_0-logloss:0.326286
[1863]	validation_0-logloss:0.326286
[1864]	validation_0-logloss:0.326286
[1865]	validation_0-logloss:0.326286
[1866]	validation_0-logloss:0.326287
[1867]	validation_0-logloss:0.326286
[1868]	validation_0-logloss:0.326287
[1869]	validation_0-logloss:0.326287
[1870]	validation_0-logloss:0.326287
[1871]	validation_0-logloss:0.326283
[1872]	validation_0-logloss:0.326283
[1873]	validation_0-logloss:0.326283
[1874]	validation_0-logloss:0.326248
[1875]	validation_0-logloss:0.326248
[1876]	validation_0-logloss:0.326248
[1877]	validation_0-logloss:0.326247
[1878]	validation_0-logloss:0.326246
[1879]	validation_0-logloss:0.32625
[1880]	validation_0-logloss:0.32625
[1881]	validation_0-logloss:0.326249
[1882]	validation_0-logloss:0.326247
[1883]	validation_0-logloss:0.326248
[1884]	validation_0-logloss:0.326248
[1885]	validation_0-logloss:0.326248
[1886]	validation_0-logloss:0.326249
[1887]	validation_0-logloss:0.326249
[1888]	validation_0-logloss:0.326227
[1889]	validation_0-logloss:0.326216
[1890]	validation_0-logloss:0.326217
[1891]	validation_0-logloss:0.326218
[1892]	validation_0-logloss:0.326217
[1893]	validation_0-logloss:0.326217
[1894]	validation_0-logloss:0.326217
[1895]	validation_0-logloss:0.326218
[1896]	validation_0-logloss:0.326218
[1897]	validation_0-logloss:0.326219
[1898]	validation_0-logloss:0.326218
[1899]	validation_0-logloss:0.32622
[1900]	validation_0-logloss:0.32622
[1901]	validation_0-logloss:0.32622
[1902]	validation_0-logloss:0.32622
[1903]	validation_0-logloss:0.32622
[1904]	validation_0-logloss:0.326229
[1905]	validation_0-logloss:0.326229
[1906]	validation_0-logloss:0.32625
[1907]	validation_0-logloss:0.32625
[1908]	validation_0-logloss:0.326249
[1909]	validation_0-logloss:0.326248
[1910]	validation_0-logloss:0.32625
[1911]	validation_0-logloss:0.326251
[1912]	validation_0-logloss:0.326251
[1913]	validation_0-logloss:0.326251
[1914]	validation_0-logloss:0.326251
[1915]	validation_0-logloss:0.326251
[1916]	validation_0-logloss:0.326205
[1917]	validation_0-logloss:0.326205
[1918]	validation_0-logloss:0.326185
[1919]	validation_0-logloss:0.326185
[1920]	validation_0-logloss:0.326185
[1921]	validation_0-logloss:0.326185
[1922]	validation_0-logloss:0.326185
[1923]	validation_0-logloss:0.326184
[1924]	validation_0-logloss:0.326184
[1925]	validation_0-logloss:0.326184
[1926]	validation_0-logloss:0.326183
[1927]	validation_0-logloss:0.326212
[1928]	validation_0-logloss:0.326212
[1929]	validation_0-logloss:0.326212
[1930]	validation_0-logloss:0.326212
[1931]	validation_0-logloss:0.326188
[1932]	validation_0-logloss:0.326188
[1933]	validation_0-logloss:0.326197
[1934]	validation_0-logloss:0.326165
[1935]	validation_0-logloss:0.326164
[1936]	validation_0-logloss:0.326162
[1937]	validation_0-logloss:0.326163
[1938]	validation_0-logloss:0.326142
[1939]	validation_0-logloss:0.326142
[1940]	validation_0-logloss:0.32614
[1941]	validation_0-logloss:0.32614
[1942]	validation_0-logloss:0.326142
[1943]	validation_0-logloss:0.326142
[1944]	validation_0-logloss:0.326143
[1945]	validation_0-logloss:0.326143
[1946]	validation_0-logloss:0.326142
[1947]	validation_0-logloss:0.326142
[1948]	validation_0-logloss:0.326142
[1949]	validation_0-logloss:0.326144
[1950]	validation_0-logloss:0.326145
[1951]	validation_0-logloss:0.326145
[1952]	validation_0-logloss:0.326152
[1953]	validation_0-logloss:0.326152
[1954]	validation_0-logloss:0.326152
[1955]	validation_0-logloss:0.32615
[1956]	validation_0-logloss:0.32615
[1957]	validation_0-logloss:0.32615
[1958]	validation_0-logloss:0.32615
[1959]	validation_0-logloss:0.326133
[1960]	validation_0-logloss:0.326134
[1961]	validation_0-logloss:0.326135
[1962]	validation_0-logloss:0.326141
[1963]	validation_0-logloss:0.326119
[1964]	validation_0-logloss:0.326118
[1965]	validation_0-logloss:0.326118
[1966]	validation_0-logloss:0.326118
[1967]	validation_0-logloss:0.326118
[1968]	validation_0-logloss:0.326118
[1969]	validation_0-logloss:0.326118
[1970]	validation_0-logloss:0.326118
[1971]	validation_0-logloss:0.326119
[1972]	validation_0-logloss:0.326123
[1973]	validation_0-logloss:0.326128
[1974]	validation_0-logloss:0.326127
[1975]	validation_0-logloss:0.326127
[1976]	validation_0-logloss:0.326127
[1977]	validation_0-logloss:0.326127
[1978]	validation_0-logloss:0.326127
[1979]	validation_0-logloss:0.326127
[1980]	validation_0-logloss:0.326128
[1981]	validation_0-logloss:0.326128
[1982]	validation_0-logloss:0.326128
[1983]	validation_0-logloss:0.326127
[1984]	validation_0-logloss:0.326128
[1985]	validation_0-logloss:0.326129
[1986]	validation_0-logloss:0.326129
[1987]	validation_0-logloss:0.326127
[1988]	validation_0-logloss:0.326129
[1989]	validation_0-logloss:0.326129
[1990]	validation_0-logloss:0.326129
[1991]	validation_0-logloss:0.326127
[1992]	validation_0-logloss:0.326127
[1993]	validation_0-logloss:0.326143
[1994]	validation_0-logloss:0.326135
[1995]	validation_0-logloss:0.326133
[1996]	validation_0-logloss:0.326133
[1997]	validation_0-logloss:0.326134
[1998]	validation_0-logloss:0.326134
[1999]	validation_0-logloss:0.326135
[2000]	validation_0-logloss:0.326135
[2001]	validation_0-logloss:0.326108
[2002]	validation_0-logloss:0.326106
[2003]	validation_0-logloss:0.326107
[2004]	validation_0-logloss:0.326106
[2005]	validation_0-logloss:0.326116
[2006]	validation_0-logloss:0.326116
[2007]	validation_0-logloss:0.326107
[2008]	validation_0-logloss:0.326106
[2009]	validation_0-logloss:0.326082
[2010]	validation_0-logloss:0.326081
[2011]	validation_0-logloss:0.326064
[2012]	validation_0-logloss:0.326064
[2013]	validation_0-logloss:0.326064
[2014]	validation_0-logloss:0.326064
[2015]	validation_0-logloss:0.326045
[2016]	validation_0-logloss:0.326045
[2017]	validation_0-logloss:0.326045
[2018]	validation_0-logloss:0.326046
[2019]	validation_0-logloss:0.326012
[2020]	validation_0-logloss:0.326012
[2021]	validation_0-logloss:0.326012
[2022]	validation_0-logloss:0.326012
[2023]	validation_0-logloss:0.326012
[2024]	validation_0-logloss:0.326011
[2025]	validation_0-logloss:0.326024
[2026]	validation_0-logloss:0.326022
[2027]	validation_0-logloss:0.326022
[2028]	validation_0-logloss:0.326021
[2029]	validation_0-logloss:0.326021
[2030]	validation_0-logloss:0.326021
[2031]	validation_0-logloss:0.326031
[2032]	validation_0-logloss:0.326031
[2033]	validation_0-logloss:0.326031
[2034]	validation_0-logloss:0.326031
[2035]	validation_0-logloss:0.326032
[2036]	validation_0-logloss:0.326033
[2037]	validation_0-logloss:0.326034
[2038]	validation_0-logloss:0.326034
[2039]	validation_0-logloss:0.326034
[2040]	validation_0-logloss:0.326035
[2041]	validation_0-logloss:0.326034
[2042]	validation_0-logloss:0.326035
[2043]	validation_0-logloss:0.326035
[2044]	validation_0-logloss:0.326034
[2045]	validation_0-logloss:0.326034
[2046]	validation_0-logloss:0.326034
[2047]	validation_0-logloss:0.326034
[2048]	validation_0-logloss:0.326033
[2049]	validation_0-logloss:0.326033
[2050]	validation_0-logloss:0.326033
[2051]	validation_0-logloss:0.326032
[2052]	validation_0-logloss:0.326031
[2053]	validation_0-logloss:0.326032
[2054]	validation_0-logloss:0.326032
[2055]	validation_0-logloss:0.326037
[2056]	validation_0-logloss:0.326037
[2057]	validation_0-logloss:0.32604
[2058]	validation_0-logloss:0.326019
[2059]	validation_0-logloss:0.326019
[2060]	validation_0-logloss:0.326018
[2061]	validation_0-logloss:0.326018
[2062]	validation_0-logloss:0.326019
[2063]	validation_0-logloss:0.326019
[2064]	validation_0-logloss:0.326018
[2065]	validation_0-logloss:0.326018
[2066]	validation_0-logloss:0.326017
[2067]	validation_0-logloss:0.326016
[2068]	validation_0-logloss:0.326014
[2069]	validation_0-logloss:0.326
[2070]	validation_0-logloss:0.326
[2071]	validation_0-logloss:0.325999
[2072]	validation_0-logloss:0.326
[2073]	validation_0-logloss:0.326
[2074]	validation_0-logloss:0.326
[2075]	validation_0-logloss:0.326003
[2076]	validation_0-logloss:0.326003
[2077]	validation_0-logloss:0.326003
[2078]	validation_0-logloss:0.326003
[2079]	validation_0-logloss:0.325998
[2080]	validation_0-logloss:0.325999
[2081]	validation_0-logloss:0.325996
[2082]	validation_0-logloss:0.325996
[2083]	validation_0-logloss:0.325996
[2084]	validation_0-logloss:0.325995
[2085]	validation_0-logloss:0.326003
[2086]	validation_0-logloss:0.326002
[2087]	validation_0-logloss:0.325997
[2088]	validation_0-logloss:0.325996
[2089]	validation_0-logloss:0.325996
[2090]	validation_0-logloss:0.32598
[2091]	validation_0-logloss:0.32598
[2092]	validation_0-logloss:0.325981
[2093]	validation_0-logloss:0.32598
[2094]	validation_0-logloss:0.32598
[2095]	validation_0-logloss:0.325979
[2096]	validation_0-logloss:0.325961
[2097]	validation_0-logloss:0.325961
[2098]	validation_0-logloss:0.325961
[2099]	validation_0-logloss:0.325963
[2100]	validation_0-logloss:0.325963
[2101]	validation_0-logloss:0.325963
[2102]	validation_0-logloss:0.325985
[2103]	validation_0-logloss:0.325986
[2104]	validation_0-logloss:0.325985
[2105]	validation_0-logloss:0.325988
[2106]	validation_0-logloss:0.325988
[2107]	validation_0-logloss:0.325989
[2108]	validation_0-logloss:0.32599
[2109]	validation_0-logloss:0.325981
[2110]	validation_0-logloss:0.325966
[2111]	validation_0-logloss:0.325966
[2112]	validation_0-logloss:0.325966
[2113]	validation_0-logloss:0.325964
[2114]	validation_0-logloss:0.325965
[2115]	validation_0-logloss:0.325964
[2116]	validation_0-logloss:0.325963
[2117]	validation_0-logloss:0.325963
[2118]	validation_0-logloss:0.325963
[2119]	validation_0-logloss:0.325963
[2120]	validation_0-logloss:0.325963
[2121]	validation_0-logloss:0.325963
[2122]	validation_0-logloss:0.325963
[2123]	validation_0-logloss:0.325964
[2124]	validation_0-logloss:0.325964
[2125]	validation_0-logloss:0.325964
[2126]	validation_0-logloss:0.325964
[2127]	validation_0-logloss:0.325964
[2128]	validation_0-logloss:0.325963
[2129]	validation_0-logloss:0.325962
[2130]	validation_0-logloss:0.325962
[2131]	validation_0-logloss:0.325942
[2132]	validation_0-logloss:0.325907
[2133]	validation_0-logloss:0.325907
[2134]	validation_0-logloss:0.325906
[2135]	validation_0-logloss:0.325906
[2136]	validation_0-logloss:0.325906
[2137]	validation_0-logloss:0.325906
[2138]	validation_0-logloss:0.325903
[2139]	validation_0-logloss:0.325906
[2140]	validation_0-logloss:0.325905
[2141]	validation_0-logloss:0.325905
[2142]	validation_0-logloss:0.325905
[2143]	validation_0-logloss:0.325907
[2144]	validation_0-logloss:0.325909
[2145]	validation_0-logloss:0.325909
[2146]	validation_0-logloss:0.32591
[2147]	validation_0-logloss:0.325892
[2148]	validation_0-logloss:0.325892
[2149]	validation_0-logloss:0.325882
[2150]	validation_0-logloss:0.325882
[2151]	validation_0-logloss:0.325883
[2152]	validation_0-logloss:0.325883
[2153]	validation_0-logloss:0.325884
[2154]	validation_0-logloss:0.325884
[2155]	validation_0-logloss:0.325884
[2156]	validation_0-logloss:0.325883
[2157]	validation_0-logloss:0.325882
[2158]	validation_0-logloss:0.325882
[2159]	validation_0-logloss:0.325882
[2160]	validation_0-logloss:0.325882
[2161]	validation_0-logloss:0.325882
[2162]	validation_0-logloss:0.325882
[2163]	validation_0-logloss:0.325882
[2164]	validation_0-logloss:0.325882
[2165]	validation_0-logloss:0.325882
[2166]	validation_0-logloss:0.325903
[2167]	validation_0-logloss:0.325903
[2168]	validation_0-logloss:0.325903
[2169]	validation_0-logloss:0.325903
[2170]	validation_0-logloss:0.325903
[2171]	validation_0-logloss:0.325904
[2172]	validation_0-logloss:0.325903
[2173]	validation_0-logloss:0.325887
[2174]	validation_0-logloss:0.325887
[2175]	validation_0-logloss:0.325886
[2176]	validation_0-logloss:0.325887
[2177]	validation_0-logloss:0.325886
[2178]	validation_0-logloss:0.325886
[2179]	validation_0-logloss:0.325877
[2180]	validation_0-logloss:0.325877
[2181]	validation_0-logloss:0.325877
[2182]	validation_0-logloss:0.325877
[2183]	validation_0-logloss:0.325877
[2184]	validation_0-logloss:0.325877
[2185]	validation_0-logloss:0.325877
[2186]	validation_0-logloss:0.325877
[2187]	validation_0-logloss:0.325889
[2188]	validation_0-logloss:0.325889
[2189]	validation_0-logloss:0.325889
[2190]	validation_0-logloss:0.325889
[2191]	validation_0-logloss:0.325888
[2192]	validation_0-logloss:0.32589
[2193]	validation_0-logloss:0.325895
[2194]	validation_0-logloss:0.325894
[2195]	validation_0-logloss:0.325894
[2196]	validation_0-logloss:0.325895
[2197]	validation_0-logloss:0.325844
[2198]	validation_0-logloss:0.325845
[2199]	validation_0-logloss:0.325857
[2200]	validation_0-logloss:0.325858
[2201]	validation_0-logloss:0.325858
[2202]	validation_0-logloss:0.325858
[2203]	validation_0-logloss:0.325858
[2204]	validation_0-logloss:0.325858
[2205]	validation_0-logloss:0.325858
[2206]	validation_0-logloss:0.325858
[2207]	validation_0-logloss:0.325864
[2208]	validation_0-logloss:0.325863
[2209]	validation_0-logloss:0.325853
[2210]	validation_0-logloss:0.325853
[2211]	validation_0-logloss:0.325853
[2212]	validation_0-logloss:0.325854
[2213]	validation_0-logloss:0.325854
[2214]	validation_0-logloss:0.325853
[2215]	validation_0-logloss:0.325854
[2216]	validation_0-logloss:0.325848
[2217]	validation_0-logloss:0.325848
[2218]	validation_0-logloss:0.325847
[2219]	validation_0-logloss:0.325848
[2220]	validation_0-logloss:0.325869
[2221]	validation_0-logloss:0.32587
[2222]	validation_0-logloss:0.325869
[2223]	validation_0-logloss:0.32587
[2224]	validation_0-logloss:0.325871
[2225]	validation_0-logloss:0.325863
[2226]	validation_0-logloss:0.325861
[2227]	validation_0-logloss:0.325863
[2228]	validation_0-logloss:0.325863
[2229]	validation_0-logloss:0.325837
[2230]	validation_0-logloss:0.325837
[2231]	validation_0-logloss:0.325838
[2232]	validation_0-logloss:0.325837
[2233]	validation_0-logloss:0.325837
[2234]	validation_0-logloss:0.325835
[2235]	validation_0-logloss:0.325835
[2236]	validation_0-logloss:0.325835
[2237]	validation_0-logloss:0.325835
[2238]	validation_0-logloss:0.325835
[2239]	validation_0-logloss:0.325835
[2240]	validation_0-logloss:0.325834
[2241]	validation_0-logloss:0.325834
[2242]	validation_0-logloss:0.325834
[2243]	validation_0-logloss:0.325834
[2244]	validation_0-logloss:0.325852
[2245]	validation_0-logloss:0.325851
[2246]	validation_0-logloss:0.325852
[2247]	validation_0-logloss:0.325853
[2248]	validation_0-logloss:0.325852
[2249]	validation_0-logloss:0.325853
[2250]	validation_0-logloss:0.325853
[2251]	validation_0-logloss:0.325852
[2252]	validation_0-logloss:0.325852
[2253]	validation_0-logloss:0.325852
[2254]	validation_0-logloss:0.325852
[2255]	validation_0-logloss:0.32585
[2256]	validation_0-logloss:0.32585
[2257]	validation_0-logloss:0.325852
[2258]	validation_0-logloss:0.325851
[2259]	validation_0-logloss:0.325853
[2260]	validation_0-logloss:0.325853
[2261]	validation_0-logloss:0.325853
[2262]	validation_0-logloss:0.325853
[2263]	validation_0-logloss:0.325853
[2264]	validation_0-logloss:0.325853
[2265]	validation_0-logloss:0.325853
[2266]	validation_0-logloss:0.325855
[2267]	validation_0-logloss:0.325856
[2268]	validation_0-logloss:0.325846
[2269]	validation_0-logloss:0.325847
[2270]	validation_0-logloss:0.325847
[2271]	validation_0-logloss:0.325805
[2272]	validation_0-logloss:0.325806
[2273]	validation_0-logloss:0.325806
[2274]	validation_0-logloss:0.325807
[2275]	validation_0-logloss:0.32578
[2276]	validation_0-logloss:0.325744
[2277]	validation_0-logloss:0.325744
[2278]	validation_0-logloss:0.325745
[2279]	validation_0-logloss:0.325758
[2280]	validation_0-logloss:0.325759
[2281]	validation_0-logloss:0.325741
[2282]	validation_0-logloss:0.325742
[2283]	validation_0-logloss:0.325742
[2284]	validation_0-logloss:0.325742
[2285]	validation_0-logloss:0.325743
[2286]	validation_0-logloss:0.325743
[2287]	validation_0-logloss:0.325742
[2288]	validation_0-logloss:0.325742
[2289]	validation_0-logloss:0.325743
[2290]	validation_0-logloss:0.325745
[2291]	validation_0-logloss:0.325746
[2292]	validation_0-logloss:0.325739
[2293]	validation_0-logloss:0.325739
[2294]	validation_0-logloss:0.325739
[2295]	validation_0-logloss:0.325739
[2296]	validation_0-logloss:0.325739
[2297]	validation_0-logloss:0.325738
[2298]	validation_0-logloss:0.325737
[2299]	validation_0-logloss:0.325737
[2300]	validation_0-logloss:0.325737
[2301]	validation_0-logloss:0.325737
[2302]	validation_0-logloss:0.325738
[2303]	validation_0-logloss:0.325773
[2304]	validation_0-logloss:0.325774
[2305]	validation_0-logloss:0.325771
[2306]	validation_0-logloss:0.325771
[2307]	validation_0-logloss:0.325775
[2308]	validation_0-logloss:0.325775
[2309]	validation_0-logloss:0.325773
[2310]	validation_0-logloss:0.325774
[2311]	validation_0-logloss:0.325773
[2312]	validation_0-logloss:0.325774
[2313]	validation_0-logloss:0.325772
[2314]	validation_0-logloss:0.325767
[2315]	validation_0-logloss:0.325765
[2316]	validation_0-logloss:0.325764
[2317]	validation_0-logloss:0.325764
[2318]	validation_0-logloss:0.325766
[2319]	validation_0-logloss:0.325766
[2320]	validation_0-logloss:0.325765
[2321]	validation_0-logloss:0.325765
[2322]	validation_0-logloss:0.325765
[2323]	validation_0-logloss:0.325765
[2324]	validation_0-logloss:0.325765
[2325]	validation_0-logloss:0.325765
[2326]	validation_0-logloss:0.325766
[2327]	validation_0-logloss:0.325767
[2328]	validation_0-logloss:0.325767
[2329]	validation_0-logloss:0.325766
[2330]	validation_0-logloss:0.325768
[2331]	validation_0-logloss:0.325768
[2332]	validation_0-logloss:0.325768
[2333]	validation_0-logloss:0.325767
[2334]	validation_0-logloss:0.325767
[2335]	validation_0-logloss:0.325767
[2336]	validation_0-logloss:0.325767
[2337]	validation_0-logloss:0.325767
[2338]	validation_0-logloss:0.325769
[2339]	validation_0-logloss:0.325771
[2340]	validation_0-logloss:0.32577
[2341]	validation_0-logloss:0.325771
[2342]	validation_0-logloss:0.325764
[2343]	validation_0-logloss:0.325763
[2344]	validation_0-logloss:0.325762
[2345]	validation_0-logloss:0.325762
[2346]	validation_0-logloss:0.325761
[2347]	validation_0-logloss:0.325751
[2348]	validation_0-logloss:0.325751
Stopping. Best iteration:
[2298]	validation_0-logloss:0.325737


In [46]:
roc_auc_score(y_test, pred_probs_complex2), log_loss(y_test, pred_probs_complex2)


Out[46]:
(0.8452570461476592, 0.32573712488875817)

In [47]:
mli.plot_pr_curves([y_test, y_test],[pred_probs_complex_1a,pred_probs_complex2])



In [48]:
bins1 = np.linspace(0,.1,5)
bins2 = np.linspace(.2,1,9)
bins_final = np.unique(np.concatenate((bins1, bins2)))
plt.figure(figsize = (10,4))
mli.plot_reliability_diagram(y_test,pred_probs_complex2,size_points=False, 
                             bins=bins_final);



In [49]:
X_explore_2 =  X_test_2[X_test_2.median_house_value<1000000].sample(100)
mxr_complex2 = mli.ModelXRay(xgb_complex2,X_explore_2)

In [50]:
mxr_complex2.feature_dependence_plots(pts_selected=indices, y_scaling='logit')


Out[50]:
array([21, 22, 55, 24,  9])

In [ ]:

For comparison sake, let's look at the default XGB settings


In [51]:
xgb_def2 = xgb.XGBClassifier()
xgb_def2.fit(X_train_2,y_train)
pred_probs_def2 = xgb_def2.predict_proba(X_test_2)[:,1]

In [52]:
roc_auc_score(y_test, pred_probs_def2), log_loss(y_test, pred_probs_def2)


Out[52]:
(0.8410720868661818, 0.3292322508310892)

In [53]:
mli.plot_pr_curves([y_test, y_test, y_test],[pred_probs_complex_1a,pred_probs_complex2, pred_probs_def2])



In [54]:
bins1 = np.linspace(0,.1,5)
bins2 = np.linspace(.2,1,9)
bins_final = np.unique(np.concatenate((bins1, bins2)))
plt.figure(figsize = (10,4))
mli.plot_reliability_diagram(y_test,pred_probs_def2,size_points=False, 
                             bins=bins_final);



In [55]:
mxr_def2 = mli.ModelXRay(xgb_def2,X_explore_2)

In [56]:
indices = mxr_def2.feature_dependence_plots(y_scaling='logit')



In [ ]:

Summary of Part I

  • ### Model understanding is still possible even when models are more complex
  • ### Need to broaden your thinking beyond the assumptions of linear / logistic regression
  • ### Effects of a variable are not constant across its range of values (non-linearity)
  • ### Shape of the response curve may vary depending on values of other variables (interactions)
  • ### But can still explore and understand them!

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:

Part II: Giving reasons to model predictions

  • ### In the previous, we focused our attention to understanding the overall dynamics of the model.

  • ### However, in many cases, we want to understand the reasons behind a specific prediction.

Goal:

  • ### Explain why a particular instance is "different" from average.
  • ### Which features / concepts contributed most to its "distinctiveness"?
  • ### Can we attribute the "distance from average" of a particular case to the individual features?

SHAP

Idea:

  • #### arbitrarily order the features $X_1, X_2, \ldots, X_k$.

  • #### Compare $P(Y=1|X_1 = x_1, X_2 = x_2, \ldots, X_{j-1}=x_{j-1})$ to $P(Y=1|X_1 = x_1, X_2 = x_2, \ldots, X_j=x_j)$ (actually, compare the log odds) and attribute the difference to feature $X_j$ being equal to $x_j$.

  • #### Average the "attributions" to a feature over all possible orderings of the features

This is motivated by the "Shapley Value" in Game Theory

Same approach attributes ~98% of the "power" in the Security Council to the 5 permanent members

The "magic" of SHAP is that step (3) (averaging over all possible orderings) is typically computationally prohibitive, but for tree-based models they found a clever way to compute it by exploiting the structure.

End Result

Given a particular data point and its prediction, we can assign numerical values to each feature such that the sum of those values represents the distance between the "baseline" average and the predicted value.

References

A Unified Approach to Interpreting Model Predictions Scott Lundberg, Su-In Lee https://arxiv.org/abs/1705.07874

Consistent Individualized Feature Attribution for Tree Ensembles Scott M. Lundberg, Gabriel G. Erion, Su-In Lee https://arxiv.org/abs/1802.03888


In [ ]:


In [57]:
reas_df = mli.get_reason_score_matrix(xgb_complex2, X_test_2)
reas_df.round(decimals=2).head()


Out[57]:
auto_premium homeown_premium home_dwell_cov home_pers_prop_cov num_home_pol yob_policyholder min_vehicle_year max_vehicle_year num_vehicles max_driver_yob min_driver_yob median_household_income median_house_value avg_homeown_rate_in_state Intercept
0 0.13 -0.04 -0.37 -0.32 -0.03 -0.34 -0.01 -0.15 0.03 -0.13 -0.08 -0.17 -0.47 -0.11 -1.87
1 -0.08 -0.06 0.09 0.10 -0.02 -0.03 -0.01 -0.13 0.02 0.14 0.00 -0.14 0.26 -0.80 -1.87
2 -0.09 -0.05 -0.62 -0.51 0.24 -0.01 0.05 0.06 0.00 0.11 0.01 -0.18 -0.53 -0.13 -1.87
3 -0.14 0.03 -0.62 -0.58 0.21 -0.03 -0.05 0.06 0.00 -0.05 0.00 -0.13 -0.52 -0.48 -1.87
4 -0.16 0.03 0.63 0.52 0.14 -0.06 -0.03 0.07 -0.01 -0.09 -0.00 -0.29 -0.07 -0.73 -1.87

In [58]:
## get_reason_matrix is essentially the following 3 lines
# X_test_dmat = xgb.DMatrix(X_test_2)
# reas_mat = xgb_complex2.get_booster().predict(X_test_dmat, pred_contribs=True)
# reas_df_2 = pd.DataFrame(reas_mat, columns = list(X_test_2.columns)+['Intercept'])
# reas_df_2.head()

In [59]:
## Demonstrate that these numbers sum up to the overall log_odds

log_odds_vec = np.sum(reas_df, axis=1)
pv = 1/(1+np.exp(-log_odds_vec))
np.sum(np.abs(pv- pred_probs_complex2)>.0001)


Out[59]:
934

In [ ]:


In [60]:
## Let's examine a specific case
row_num = 72
case_df = pd.DataFrame(X_test_2.iloc[row_num])
case_df['feat_importance'] = pd.DataFrame(reas_df.iloc[row_num])
case_df.columns = ['feat_value', 'feat_importance']

In [61]:
case_df.sort_values('feat_importance', ascending=False)


Out[61]:
feat_value feat_importance
home_dwell_cov 760000.0 0.744315
home_pers_prop_cov 380000.0 0.493349
auto_premium 2450.0 0.142085
max_vehicle_year 2018.0 0.083670
min_vehicle_year 2017.0 0.074119
min_driver_yob 1956.0 0.044326
yob_policyholder 1960.0 0.030441
num_vehicles 2.0 0.026435
homeown_premium 2600.0 0.021991
num_home_pol 1.0 -0.026817
max_driver_yob 1960.0 -0.032627
avg_homeown_rate_in_state 1073.0 -0.060798
median_house_value 215000.0 -0.069462
median_household_income 75000.0 -0.082069

In [62]:
# Get the average "impact" of each variable
reas_df.abs().mean().sort_values(ascending=False)


Out[62]:
Intercept                    1.870137
avg_homeown_rate_in_state    0.510019
home_pers_prop_cov           0.387286
home_dwell_cov               0.341805
median_house_value           0.328445
yob_policyholder             0.169387
median_household_income      0.128389
max_driver_yob               0.111908
auto_premium                 0.105168
max_vehicle_year             0.088370
num_home_pol                 0.046333
min_driver_yob               0.034745
min_vehicle_year             0.031603
num_vehicles                 0.029607
homeown_premium              0.028269
dtype: float32

In [63]:
## Look at correlations between the reasons
pd.DataFrame(np.round(np.corrcoef(reas_df.values[:,:-1].T), decimals=2), columns = reas_df.columns[:-1], index = reas_df.columns[:-1])


Out[63]:
auto_premium homeown_premium home_dwell_cov home_pers_prop_cov num_home_pol yob_policyholder min_vehicle_year max_vehicle_year num_vehicles max_driver_yob min_driver_yob median_household_income median_house_value avg_homeown_rate_in_state
auto_premium 1.00 -0.12 0.01 0.02 0.00 -0.09 0.00 0.12 0.20 -0.08 -0.02 -0.00 0.08 0.06
homeown_premium -0.12 1.00 -0.00 -0.03 0.04 0.02 0.07 0.01 -0.04 0.01 -0.00 0.06 0.05 0.13
home_dwell_cov 0.01 -0.00 1.00 0.88 0.12 0.12 0.11 0.16 0.22 0.04 0.12 0.31 0.46 0.08
home_pers_prop_cov 0.02 -0.03 0.88 1.00 0.09 0.13 0.10 0.15 0.20 0.05 0.13 0.33 0.42 0.15
num_home_pol 0.00 0.04 0.12 0.09 1.00 0.14 0.01 0.03 0.03 0.12 0.09 0.08 0.07 -0.01
yob_policyholder -0.09 0.02 0.12 0.13 0.14 1.00 -0.07 -0.05 -0.02 0.74 0.52 -0.03 0.03 0.04
min_vehicle_year 0.00 0.07 0.11 0.10 0.01 -0.07 1.00 0.40 -0.28 -0.00 -0.02 0.14 0.04 -0.05
max_vehicle_year 0.12 0.01 0.16 0.15 0.03 -0.05 0.40 1.00 0.17 -0.06 0.07 0.15 0.06 -0.08
num_vehicles 0.20 -0.04 0.22 0.20 0.03 -0.02 -0.28 0.17 1.00 -0.08 0.11 0.04 0.08 0.02
max_driver_yob -0.08 0.01 0.04 0.05 0.12 0.74 -0.00 -0.06 -0.08 1.00 0.41 -0.06 -0.00 0.03
min_driver_yob -0.02 -0.00 0.12 0.13 0.09 0.52 -0.02 0.07 0.11 0.41 1.00 0.03 0.07 0.03
median_household_income -0.00 0.06 0.31 0.33 0.08 -0.03 0.14 0.15 0.04 -0.06 0.03 1.00 0.56 0.14
median_house_value 0.08 0.05 0.46 0.42 0.07 0.03 0.04 0.06 0.08 -0.00 0.07 0.56 1.00 0.32
avg_homeown_rate_in_state 0.06 0.13 0.08 0.15 -0.01 0.04 -0.05 -0.08 0.02 0.03 0.03 0.14 0.32 1.00

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [64]:
def analyze_effect(feature_name, reas_df, test_df, fillna_val=0):
    plt.subplot(2,2,1)
    plt.scatter(test_df[feature_name].fillna(fillna_val), reas_df[feature_name], alpha=.1)
    plt.subplot(2,2,2)
    plt.scatter(reas_df[feature_name], test_df[feature_name].fillna(fillna_val), alpha=.1)
    plt.subplot(2,2,3)
    plt.hist(test_df[feature_name].fillna(fillna_val))
    plt.subplot(2,2,4)
    plt.hist(reas_df[feature_name])

In [65]:
plt.figure(figsize=(10,8))
analyze_effect('yob_policyholder',reas_df, X_test_2, fillna_val=1900)



In [66]:
plt.figure(figsize=(10,8))
analyze_effect('num_home_pol',reas_df, X_test_2, fillna_val=0)



In [67]:
# plt.figure(figsize=(10,8))
# analyze_effect('auto_premium',reas_df, X_test_2, fillna_val=-1000)

In [68]:
# plt.figure(figsize=(10,8))
# analyze_effect('median_house_value',reas_df, X_test_2, fillna_val=-1000)

In [69]:
# plt.figure(figsize=(10,8))
# analyze_effect('median_household_income',reas_df, X_test_2, fillna_val=-10000)

In [ ]:

Consolidating Reasons for better Interpretability

Often, ascribing value to individual features may yield confusing results. For example, many individual features may represent the same concept or otherwise be highly correlated. In these cases, it may be somewhat arbitary which of the correlated features gets "credit" for the impact. In other cases, there may be many similar variables, each of which has a tiny impact, but collectively have a much greater impact. For this reason, we may want to "consolidate" the impact of features.


In [70]:
# Create a dictionary mapping the "group name" to the list of features included in that group
reason_mapping_umb = {
              'Value_of_Real_Estate':['homeown_premium', 'home_dwell_cov','home_pers_prop_cov','num_home_pol'],
              'State_Specific_Factors':['avg_homeown_rate_in_state'],
              'Value_of_Automobiles':['min_vehicle_year', 'max_vehicle_year', 'num_vehicles','auto_premium'],
              'Age_of_Policyholder_and_Family':['yob_policyholder', 'min_driver_yob', 'max_driver_yob'],
              'Zipcode_Wealth':['median_household_income','median_house_value']}

In [71]:
cons_df = mli.consolidate_reason_scores(reas_df, reason_mapping_umb)

In [72]:
cons_df.head()


Out[72]:
Value_of_Real_Estate State_Specific_Factors Value_of_Automobiles Age_of_Policyholder_and_Family Zipcode_Wealth
0 -0.755253 -0.110768 -0.003501 -0.550045 -0.636730
1 0.107459 -0.796689 -0.192273 0.114018 0.122732
2 -0.940113 -0.126719 0.025241 0.106991 -0.713791
3 -0.960737 -0.482353 -0.121594 -0.080733 -0.646720
4 1.324282 -0.730371 -0.118699 -0.144511 -0.357983

In [73]:
cons_df.abs().mean().sort_values(ascending=False)


Out[73]:
Value_of_Real_Estate              0.713722
State_Specific_Factors            0.510019
Zipcode_Wealth                    0.427924
Age_of_Policyholder_and_Family    0.277580
Value_of_Automobiles              0.153941
dtype: float32

In [ ]:


In [74]:
## Look at correlations between the reasons
pd.DataFrame(np.round(np.corrcoef(cons_df.values.T), decimals=2), columns = cons_df.columns, index = cons_df.columns)


Out[74]:
Value_of_Real_Estate State_Specific_Factors Value_of_Automobiles Age_of_Policyholder_and_Family Zipcode_Wealth
Value_of_Real_Estate 1.00 0.12 0.15 0.13 0.47
State_Specific_Factors 0.12 1.00 -0.01 0.04 0.29
Value_of_Automobiles 0.15 -0.01 1.00 -0.09 0.12
Age_of_Policyholder_and_Family 0.13 0.04 -0.09 1.00 0.01
Zipcode_Wealth 0.47 0.29 0.12 0.01 1.00

In [75]:
reason_string_vector = mli.predict_reason_strings(xgb_complex2, X_test_2, reason_mapping_umb, .3)

In [ ]:


In [76]:
pd.Series(reason_string_vector[pred_probs_complex2>.5]).value_counts()


Out[76]:
Value_of_Real_Estate;Zipcode_Wealth                                                          24
State_Specific_Factors;Zipcode_Wealth                                                        16
State_Specific_Factors;Value_of_Real_Estate;Zipcode_Wealth                                   15
State_Specific_Factors;Value_of_Real_Estate                                                  12
State_Specific_Factors;Zipcode_Wealth;Value_of_Real_Estate                                    7
Value_of_Real_Estate;Zipcode_Wealth;Age_of_Policyholder_and_Family                            7
State_Specific_Factors;Age_of_Policyholder_and_Family;Value_of_Real_Estate;Zipcode_Wealth     7
Value_of_Real_Estate;State_Specific_Factors;Zipcode_Wealth                                    4
State_Specific_Factors;Age_of_Policyholder_and_Family;Value_of_Real_Estate                    3
State_Specific_Factors;Age_of_Policyholder_and_Family                                         3
State_Specific_Factors;Value_of_Real_Estate;Age_of_Policyholder_and_Family                    2
State_Specific_Factors;Age_of_Policyholder_and_Family;Zipcode_Wealth                          2
State_Specific_Factors;Zipcode_Wealth;Age_of_Policyholder_and_Family                          2
Value_of_Real_Estate;Age_of_Policyholder_and_Family;Value_of_Automobiles                      1
Value_of_Real_Estate;Age_of_Policyholder_and_Family;Zipcode_Wealth;Value_of_Automobiles       1
State_Specific_Factors;Value_of_Real_Estate;Age_of_Policyholder_and_Family;Zipcode_Wealth     1
State_Specific_Factors;Zipcode_Wealth;Value_of_Automobiles                                    1
Age_of_Policyholder_and_Family;State_Specific_Factors;Value_of_Real_Estate                    1
Value_of_Real_Estate;Age_of_Policyholder_and_Family                                           1
State_Specific_Factors;Zipcode_Wealth;Age_of_Policyholder_and_Family;Value_of_Real_Estate     1
dtype: int64

In [ ]:


In [ ]:

SHAP Package

The SHAP package is continually adding new features and visualization capabilities. Here we explore a few basics


In [77]:
# if needed
# !pip install shap

In [78]:
import shap
shap.initjs()
#X_test_2_sm = X_test_2



In [79]:
explainer = shap.TreeExplainer(xgb_complex2)


Setting feature_perturbation = "tree_path_dependent" because no background data was given.

In [80]:
shap_values = explainer.shap_values(X_test_2)

In [81]:
row_num=72
shap.force_plot(explainer.expected_value, shap_values[row_num,:], X_test_2.iloc[row_num,:], matplotlib=True)



In [82]:
cons_shap_df = mli.consolidate_reason_scores(pd.DataFrame(shap_values, columns=X_test_2.columns), reason_mapping_umb)

In [83]:
shap.force_plot(explainer.expected_value, cons_shap_df.iloc[row_num,:].values, feature_names=cons_shap_df.columns,matplotlib=True)



In [ ]:


In [ ]:

Interesting interaction between age and neighborhood income


In [84]:
shap_interaction_values = shap.TreeExplainer(xgb_complex2).shap_interaction_values(X_test_2)

In [85]:
shap.summary_plot(shap_interaction_values, X_test_2)



In [86]:
shap.dependence_plot(
    ("median_household_income", "median_household_income"),
    shap_interaction_values, X_test_2,
    display_features=X_test_2
)



In [87]:
shap.dependence_plot(
    ("median_household_income", "yob_policyholder"),
    shap_interaction_values, X_test_2,
    display_features=X_test_2
)



In [ ]:


In [ ]:


In [ ]:

Extra topic: StructureBoost

  • Suppose we want to use US State as a feature because we expect neighboring states to behave similarly
  • Want our decision trees to examine splits such as "East of Mississippi" vs "West of Mississippi" or "New England States" vs rest of the country
  • But we don't want to pre-select regions - want the "data" to decide which (geographically consistent) splits to consider

StructureBoost lets you pass in a "graph" (e.g. vertices and edges)

to represent the structure of your categorical variable. It will then explore splits of that graph that result in two connected components.

Github repo: https://www.github.com/numeristical/structureboost

Example notebooks: https://github.com/numeristical/structureboost/tree/master/examples

Documentation: https://structureboost.readthedocs.io/en/latest/

Installation: pip install structureboost

Reference Paper: "Exploiting Categorical Structure Using Tree-Based Methods" to appear at AISTATS 2020 (and should be available on Arxiv shortly)

This is a recently developed (and still developing) package -- would love feedback, bug reports etc. Feel free to create issues on Github or email me at brian@numeristical.com


In [88]:
#!pip install structureboost

In [89]:
import structureboost as stb

In [90]:
features_3 = ['auto_premium','homeown_premium', 'home_dwell_cov', 'home_pers_prop_cov',
                'num_home_pol',
                'yob_policyholder','min_vehicle_year', 'max_vehicle_year', 'num_vehicles',
                  'max_driver_yob', 'min_driver_yob',
                'median_household_income','median_house_value'
                  ,'state_abbrev'
                ]

In [91]:
X_train_3 = df_ins.loc[df_ins[chosen_fold_variant]!=test_fold_num,features_3]
X_test_3 = df_ins.loc[df_ins[chosen_fold_variant]==test_fold_num,features_3]

In [92]:
US_50_graph = stb.graphs.US_50_and_DC_graph()

In [93]:
US_50_graph.vertices


Out[93]:
{'AK',
 'AL',
 'AR',
 'AZ',
 'CA',
 'CO',
 'CT',
 'DC',
 'DE',
 'FL',
 'GA',
 'HI',
 'IA',
 'ID',
 'IL',
 'IN',
 'KS',
 'KY',
 'LA',
 'MA',
 'MD',
 'ME',
 'MI',
 'MN',
 'MO',
 'MS',
 'MT',
 'NC',
 'ND',
 'NE',
 'NH',
 'NJ',
 'NM',
 'NV',
 'NY',
 'OH',
 'OK',
 'OR',
 'PA',
 'RI',
 'SC',
 'SD',
 'TN',
 'TX',
 'UT',
 'VA',
 'VT',
 'WA',
 'WI',
 'WV',
 'WY'}

In [94]:
US_50_graph.edges


Out[94]:
{frozenset({'CO', 'WY'}),
 frozenset({'CT', 'NY'}),
 frozenset({'CO', 'UT'}),
 frozenset({'DC', 'MD'}),
 frozenset({'CO', 'KS'}),
 frozenset({'CT', 'MA'}),
 frozenset({'NM', 'OK'}),
 frozenset({'NY', 'PA'}),
 frozenset({'CA', 'HI'}),
 frozenset({'MS', 'TN'}),
 frozenset({'KY', 'OH'}),
 frozenset({'MD', 'VA'}),
 frozenset({'CO', 'OK'}),
 frozenset({'FL', 'GA'}),
 frozenset({'MA', 'RI'}),
 frozenset({'MD', 'PA'}),
 frozenset({'NC', 'VA'}),
 frozenset({'AL', 'MS'}),
 frozenset({'MI', 'WI'}),
 frozenset({'NH', 'VT'}),
 frozenset({'OH', 'WV'}),
 frozenset({'MT', 'ND'}),
 frozenset({'NE', 'WY'}),
 frozenset({'AR', 'MO'}),
 frozenset({'CA', 'NV'}),
 frozenset({'GA', 'TN'}),
 frozenset({'GA', 'NC'}),
 frozenset({'ME', 'NH'}),
 frozenset({'NC', 'TN'}),
 frozenset({'AL', 'FL'}),
 frozenset({'ID', 'WA'}),
 frozenset({'NJ', 'NY'}),
 frozenset({'IL', 'WI'}),
 frozenset({'MO', 'TN'}),
 frozenset({'AR', 'OK'}),
 frozenset({'IA', 'IL'}),
 frozenset({'ID', 'MT'}),
 frozenset({'DE', 'PA'}),
 frozenset({'IN', 'KY'}),
 frozenset({'NM', 'TX'}),
 frozenset({'MA', 'NH'}),
 frozenset({'ID', 'NV'}),
 frozenset({'KS', 'OK'}),
 frozenset({'IA', 'MN'}),
 frozenset({'AR', 'TX'}),
 frozenset({'CT', 'RI'}),
 frozenset({'IN', 'MI'}),
 frozenset({'AL', 'TN'}),
 frozenset({'IA', 'NE'}),
 frozenset({'GA', 'SC'}),
 frozenset({'IL', 'MO'}),
 frozenset({'KY', 'VA'}),
 frozenset({'PA', 'WV'}),
 frozenset({'NE', 'SD'}),
 frozenset({'KS', 'NE'}),
 frozenset({'OR', 'WA'}),
 frozenset({'ND', 'SD'}),
 frozenset({'MD', 'WV'}),
 frozenset({'UT', 'WY'}),
 frozenset({'MN', 'ND'}),
 frozenset({'ID', 'WY'}),
 frozenset({'IA', 'MO'}),
 frozenset({'AR', 'LA'}),
 frozenset({'AL', 'GA'}),
 frozenset({'AZ', 'NM'}),
 frozenset({'MO', 'NE'}),
 frozenset({'KY', 'WV'}),
 frozenset({'AZ', 'NV'}),
 frozenset({'ID', 'OR'}),
 frozenset({'KY', 'TN'}),
 frozenset({'LA', 'TX'}),
 frozenset({'CA', 'OR'}),
 frozenset({'AR', 'TN'}),
 frozenset({'OK', 'TX'}),
 frozenset({'IN', 'OH'}),
 frozenset({'TN', 'VA'}),
 frozenset({'IA', 'SD'}),
 frozenset({'VA', 'WV'}),
 frozenset({'MA', 'NY'}),
 frozenset({'MT', 'SD'}),
 frozenset({'DC', 'VA'}),
 frozenset({'MI', 'OH'}),
 frozenset({'MN', 'SD'}),
 frozenset({'NJ', 'PA'}),
 frozenset({'IL', 'KY'}),
 frozenset({'LA', 'MS'}),
 frozenset({'MT', 'WY'}),
 frozenset({'NY', 'VT'}),
 frozenset({'AZ', 'CA'}),
 frozenset({'CO', 'NM'}),
 frozenset({'AZ', 'UT'}),
 frozenset({'NV', 'OR'}),
 frozenset({'CO', 'NE'}),
 frozenset({'IA', 'WI'}),
 frozenset({'KS', 'MO'}),
 frozenset({'DE', 'MD'}),
 frozenset({'KY', 'MO'}),
 frozenset({'MA', 'VT'}),
 frozenset({'SD', 'WY'}),
 frozenset({'MO', 'OK'}),
 frozenset({'NC', 'SC'}),
 frozenset({'OH', 'PA'}),
 frozenset({'AK', 'WA'}),
 frozenset({'ID', 'UT'}),
 frozenset({'DE', 'NJ'}),
 frozenset({'IL', 'IN'}),
 frozenset({'MN', 'WI'}),
 frozenset({'AR', 'MS'}),
 frozenset({'NV', 'UT'})}

In [95]:
def_config = stb.default_config_dict()
my_feat_config = stb.get_basic_config(X_train_3, def_config)
my_feat_config


Out[95]:
{'auto_premium': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'homeown_premium': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'home_dwell_cov': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'home_pers_prop_cov': {'feature_type': 'numerical',
  'max_splits_to_search': 25},
 'num_home_pol': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'yob_policyholder': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'min_vehicle_year': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'max_vehicle_year': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'num_vehicles': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'max_driver_yob': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'min_driver_yob': {'feature_type': 'numerical', 'max_splits_to_search': 25},
 'median_household_income': {'feature_type': 'numerical',
  'max_splits_to_search': 25},
 'median_house_value': {'feature_type': 'numerical',
  'max_splits_to_search': 25},
 'state_abbrev': {'feature_type': 'categorical_str',
  'graph': <graphs.graph_undirected at 0x13cfb2d30>,
  'split_method': 'span_tree',
  'num_span_trees': 1}}

In [96]:
my_feat_config['state_abbrev']['graph'] = US_50_graph

In [97]:
my_stboost = stb.StructureBoost(num_trees=2000, learning_rate=.03,
                                 feature_configs=my_feat_config,
                                 max_depth=2, mode='classification')

In [98]:
my_stboost.fit(X_train_3, y_train, eval_set=(X_test_3, y_test), early_stop_past_steps = 5, eval_freq=20)


i=0, eval_set_log_loss = 0.4375436344882318
i=20, eval_set_log_loss = 0.38103412600677866
i=40, eval_set_log_loss = 0.35891672970865374
i=60, eval_set_log_loss = 0.3479834170200377
i=80, eval_set_log_loss = 0.34101659612063695
i=100, eval_set_log_loss = 0.3366859166929356
i=120, eval_set_log_loss = 0.33305534375564705
i=140, eval_set_log_loss = 0.33021133252124607
i=160, eval_set_log_loss = 0.3287049520705769
i=180, eval_set_log_loss = 0.32667381942636764
i=200, eval_set_log_loss = 0.3259502964128313
i=220, eval_set_log_loss = 0.32457672838370333
i=240, eval_set_log_loss = 0.3236489987850979
i=260, eval_set_log_loss = 0.3231011958867113
i=280, eval_set_log_loss = 0.3222110205198792
i=300, eval_set_log_loss = 0.32132262288058194
i=320, eval_set_log_loss = 0.32128721914062774
i=340, eval_set_log_loss = 0.320867488553113
i=360, eval_set_log_loss = 0.32047773535281493
i=380, eval_set_log_loss = 0.31982772353015143
i=400, eval_set_log_loss = 0.3197140263610975
i=420, eval_set_log_loss = 0.319001189252198
i=440, eval_set_log_loss = 0.31853484586862324
i=460, eval_set_log_loss = 0.31853929366018086
i=480, eval_set_log_loss = 0.31893431169278785
i=500, eval_set_log_loss = 0.31894881622749194
i=520, eval_set_log_loss = 0.3193952066237007
Stopping early: curr_loss of 0.3193952066237007
                                        exceeds compare_loss of 0.319001189252198

In [99]:
pred_probs_stb = my_stboost.predict(X_test_3)

In [100]:
# StructureBoost performance
roc_auc_score(y_test, pred_probs_stb), log_loss(y_test, pred_probs_stb)


Out[100]:
(0.8554282985354738, 0.31853484586862324)

In [101]:
# Previous XGBoost performance
roc_auc_score(y_test, pred_probs_complex2), log_loss(y_test, pred_probs_complex2)


Out[101]:
(0.8452570461476592, 0.32573712488875817)

In [ ]:


In [ ]:

Wrap-up

  • ## Please rate this talk on the ODSC app!
  • ## If you find the ml_insights / structureboost packages useful, please give them a star on Github!

In [ ]: