In [1]:
import sys
sys.path.append('/home/jbourbeau/cr-composition')
print('Added to PYTHONPATH')


Added to PYTHONPATH

In [2]:
from __future__ import division
import argparse
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import seaborn.apionly as sns

from sklearn.metrics import accuracy_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import validation_curve, GridSearchCV, cross_val_score, ParameterGrid

import composition as comp

%matplotlib inline


/home/jbourbeau/.local/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')

In [3]:
sns.set_palette('muted')
sns.set_color_codes()

In [4]:
df, cut_dict = comp.load_sim(return_cut_dict=True)
selection_mask = np.array([True] * len(df))
standard_cut_keys = ['lap_reco_success', 'lap_zenith', 'num_hits_1_30', 'IT_signal',
                     'StationDensity', 'max_qfrac_1_30', 'lap_containment', 'energy_range_lap']
for key in standard_cut_keys:
    selection_mask *= cut_dict[key]

df = df[selection_mask]

feature_list, feature_labels = comp.get_training_features()
print('training features = {}'.format(feature_list))
X_train, X_test, y_train, y_test, le = comp.get_train_test_sets(
    df, feature_list, train_he=True, test_he=True)

print('number training events = ' + str(y_train.shape[0]))


/home/jbourbeau/cr-composition/composition/load_sim.py:109: RuntimeWarning: divide by zero encountered in log10
  df['log_NChannels_1_30'] = np.nan_to_num(np.log10(df['NChannels_1_30']))
training features = ['lap_log_energy', 'InIce_log_charge_1_30', 'lap_cos_zenith', 'NChannels_1_30', 'log_s125']
number training events = 109652

In [5]:
pipeline = comp.get_pipeline('AB')
param_range = np.linspace(0.2, 1.0, 20)
# param_range = np.arange(1, 20)
train_scores, test_scores = validation_curve(
                estimator=pipeline, 
                X=X_train, 
                y=y_train, 
                param_name='classifier__learning_rate', 
#                 param_name='classifier__max_depth', 
                param_range=param_range,
                cv=10,
                verbose=3,
                n_jobs=20)

train_mean = np.mean(train_scores, axis=1)
train_std = np.std(train_scores, axis=1)
test_mean = np.mean(test_scores, axis=1)
test_std = np.std(test_scores, axis=1)

plt.plot(param_range, train_mean, 
         color='b', marker='o', 
         markersize=5, label='training accuracy')

plt.fill_between(param_range, train_mean + train_std,
                 train_mean - train_std, alpha=0.15,
                 color='b')

plt.plot(param_range, test_mean, 
         color='g', linestyle='None', 
         marker='s', markersize=5, 
         label='validation accuracy')

plt.fill_between(param_range, 
                 test_mean + test_std,
                 test_mean - test_std, 
                 alpha=0.15, color='g')

plt.grid()
# plt.xscale('log')
plt.legend()
# plt.legend(loc='lower right')
plt.xlabel('Learning rate')
plt.ylabel('Accuracy [\%]')
# plt.ylim([0.8, 1.0])
# plt.tight_layout()
plt.savefig('/home/jbourbeau/public_html/figures/composition/parameter-tuning/AdaBoost-validation_curve_learning_rate.png', dpi=300)
# plt.show()


[CV] classifier__learning_rate=0.2 ...................................
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] classifier__learning_rate=0.284210526316 ........................
[CV] classifier__learning_rate=0.326315789474 ........................
[CV] classifier__learning_rate=0.368421052632 ........................
[CV] classifier__learning_rate=0.410526315789 ........................
[CV] classifier__learning_rate=0.452631578947 ........................
[CV] classifier__learning_rate=0.494736842105 ........................
[CV] classifier__learning_rate=0.536842105263 ........................
[CV] classifier__learning_rate=0.578947368421 ........................
[CV] classifier__learning_rate=0.621052631579 ........................
[CV] classifier__learning_rate=0.663157894737 ........................
[CV] classifier__learning_rate=0.705263157895 ........................
[CV] classifier__learning_rate=0.747368421053 ........................
[CV] classifier__learning_rate=0.789473684211 ........................
[CV] classifier__learning_rate=0.831578947368 ........................
[CV] classifier__learning_rate=0.873684210526 ........................
[CV] classifier__learning_rate=0.915789473684 ........................
[CV] classifier__learning_rate=0.957894736842 ........................
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.368421052632, score=0.548970 -   0.2s
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.410526315789, score=0.544866 -   0.2s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.541765 -   0.2s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV]  classifier__learning_rate=0.242105263158, score=0.541127 -   0.2s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.543863 -   0.2s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.543133 -   0.2s
[CV]  classifier__learning_rate=0.663157894737, score=0.545960 -   0.2s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV] classifier__learning_rate=0.452631578947 ........................
[CV] .......... classifier__learning_rate=0.2, score=0.542039 -   0.4s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.544045 -   0.3s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.326315789474, score=0.545413 -   0.3s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.547419 -   0.4s
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.539850 -   0.4s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.957894736842, score=0.542404 -   0.4s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.540124 -   0.4s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.543954 -   0.4s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.539759 -   0.4s
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.747368421053, score=0.539850 -   0.4s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.544319 -   0.4s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV] .......... classifier__learning_rate=1.0, score=0.541674 -   0.4s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.542313 -   0.4s
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.242105263158, score=0.547693 -   0.2s
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.326315789474, score=0.546690 -   0.2s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.545048 -   0.2s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.544592 -   0.4s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.545048 -   0.4s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV] .......... classifier__learning_rate=0.2, score=0.544592 -   0.4s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.543225 -   0.2s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.547875 -   0.5s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.542769 -   0.5s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.541492 -   0.4s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.539577 -   0.3s
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.532099 -   0.2s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.747368421053, score=0.540489 -   0.2s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.242105263158, score=0.529911 -   0.4s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.663157894737, score=0.541036 -   0.4s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.540580 -   0.3s
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.540489 -   0.4s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.542313 -   0.4s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.539759 -   0.4s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.957894736842, score=0.540033 -   0.4s
[CV] classifier__learning_rate=1.0 ...................................
[CV] .......... classifier__learning_rate=0.2, score=0.526719 -   0.2s
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.873684210526, score=0.541948 -   0.3s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] .......... classifier__learning_rate=1.0, score=0.537935 -   0.4s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV]  classifier__learning_rate=0.326315789474, score=0.534470 -   0.4s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.663157894737, score=0.536568 -   0.2s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.535929 -   0.4s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.533741 -   0.2s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.537388 -   0.4s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.542039 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.533832 -   0.3s
[CV]  classifier__learning_rate=0.410526315789, score=0.535564 -   0.4s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.537935 -   0.3s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.537206 -   0.4s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.533649 -   0.4s
[CV]  classifier__learning_rate=0.747368421053, score=0.536932 -   0.4s
[CV]  classifier__learning_rate=0.284210526316, score=0.540033 -   0.2s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV] classifier__learning_rate=0.789473684211 ........................
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.544045 -   0.2s
[CV]  classifier__learning_rate=0.789473684211, score=0.537571 -   0.2s
[CV]  classifier__learning_rate=0.831578947368, score=0.536020 -   0.3s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.541127 -   0.2s
[CV]  classifier__learning_rate=0.410526315789, score=0.542951 -   0.3s
[CV] .......... classifier__learning_rate=0.2, score=0.534653 -   0.4s
[CV]  classifier__learning_rate=0.957894736842, score=0.539394 -   0.3s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.542313 -   0.2s
[CV]  classifier__learning_rate=0.242105263158, score=0.538209 -   0.3s
[CV] .......... classifier__learning_rate=1.0, score=0.536020 -   0.2s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV] classifier__learning_rate=0.2 ...................................
[CV] classifier__learning_rate=1.0 ...................................
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] classifier__learning_rate=0.284210526316 ........................
[CV] classifier__learning_rate=0.410526315789 ........................
[CV] classifier__learning_rate=0.368421052632 ........................
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.541036 -   0.2s
[CV]  classifier__learning_rate=0.326315789474, score=0.544501 -   0.2s
[Parallel(n_jobs=20)]: Done  67 out of 200 | elapsed:  1.3min remaining:  2.6min
[CV] classifier__learning_rate=0.452631578947 ........................
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.546599 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.540671 -   0.3s
[CV]  classifier__learning_rate=0.494736842105, score=0.542404 -   0.3s
[CV]  classifier__learning_rate=0.747368421053, score=0.544410 -   0.3s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV] classifier__learning_rate=0.621052631579 ........................
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.539577 -   0.3s
[CV]  classifier__learning_rate=0.663157894737, score=0.542860 -   0.3s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.546690 -   0.3s
[CV]  classifier__learning_rate=0.705263157895, score=0.541583 -   0.3s
[CV] .......... classifier__learning_rate=0.2, score=0.530549 -   0.3s
[CV]  classifier__learning_rate=0.957894736842, score=0.540671 -   0.3s
[CV]  classifier__learning_rate=0.284210526316, score=0.532738 -   0.2s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.535747 -   0.2s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.544410 -   0.3s
[CV]  classifier__learning_rate=0.242105263158, score=0.532464 -   0.3s
[CV]  classifier__learning_rate=0.915789473684, score=0.536750 -   0.3s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.534653 -   0.2s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.326315789474, score=0.533923 -   0.3s
[CV] classifier__learning_rate=0.2 ...................................
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.538483 -   0.2s
[CV] .......... classifier__learning_rate=1.0, score=0.537388 -   0.2s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV] classifier__learning_rate=0.410526315789 ........................
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.536203 -   0.2s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.536294 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.535747 -   0.3s
[CV]  classifier__learning_rate=0.663157894737, score=0.534653 -   0.3s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.537115 -   0.4s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.747368421053, score=0.535109 -   0.4s
[CV]  classifier__learning_rate=0.831578947368, score=0.534926 -   0.3s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.532829 -   0.4s
[CV]  classifier__learning_rate=0.873684210526, score=0.534105 -   0.4s
[CV]  classifier__learning_rate=0.789473684211, score=0.533649 -   0.4s
[CV]  classifier__learning_rate=0.368421052632, score=0.548108 -   0.3s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.547560 -   0.3s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV] classifier__learning_rate=0.957894736842 ........................
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.532008 -   0.4s
[CV]  classifier__learning_rate=0.536842105263, score=0.546557 -   0.3s
[CV]  classifier__learning_rate=0.284210526316, score=0.544095 -   0.3s
[CV]  classifier__learning_rate=0.957894736842, score=0.534105 -   0.3s
[CV]  classifier__learning_rate=0.242105263158, score=0.539626 -   0.3s
[CV] classifier__learning_rate=1.0 ...................................
[CV] .......... classifier__learning_rate=0.2, score=0.536252 -   0.4s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] .......... classifier__learning_rate=1.0, score=0.532829 -   0.4s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV] classifier__learning_rate=0.284210526316 ........................
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.326315789474, score=0.546375 -   0.4s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.545372 -   0.2s
[CV]  classifier__learning_rate=0.452631578947, score=0.547652 -   0.3s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV] classifier__learning_rate=0.494736842105 ........................
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.545463 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.544916 -   0.2s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.747368421053, score=0.543912 -   0.3s
[CV]  classifier__learning_rate=0.705263157895, score=0.546740 -   0.3s
[CV]  classifier__learning_rate=0.663157894737, score=0.542453 -   0.3s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.541268 -   0.3s
[CV]  classifier__learning_rate=0.915789473684, score=0.542453 -   0.2s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.542088 -   0.3s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV] classifier__learning_rate=0.789473684211 ........................
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.542453 -   0.3s
[CV] .......... classifier__learning_rate=1.0, score=0.545463 -   0.2s
[CV]  classifier__learning_rate=0.957894736842, score=0.541450 -   0.4s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV] classifier__learning_rate=0.915789473684 ........................
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.535340 -   0.3s
[CV]  classifier__learning_rate=0.368421052632, score=0.538258 -   0.3s
[CV]  classifier__learning_rate=0.326315789474, score=0.537346 -   0.3s
[CV]  classifier__learning_rate=0.242105263158, score=0.533333 -   0.3s
[CV]  classifier__learning_rate=0.494736842105, score=0.538440 -   0.3s
[CV] classifier__learning_rate=1.0 ...................................
[CV] classifier__learning_rate=0.2 ...................................
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] classifier__learning_rate=0.284210526316 ........................
[CV] classifier__learning_rate=0.326315789474 ........................
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.538805 -   0.3s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.538896 -   0.3s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.537802 -   0.3s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV] .......... classifier__learning_rate=0.2, score=0.528226 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.540447 -   0.4s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.538623 -   0.4s
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.663157894737, score=0.538805 -   0.2s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.540994 -   0.2s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.539352 -   0.2s
[CV] classifier__learning_rate=0.747368421053 ........................
[Parallel(n_jobs=20)]: Done 134 out of 200 | elapsed:  2.7min remaining:  1.3min
[CV]  classifier__learning_rate=0.747368421053, score=0.539079 -   0.3s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.539444 -   0.4s
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.242105263158, score=0.546333 -   0.3s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.542636 -   0.4s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.541359 -   0.3s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV] .......... classifier__learning_rate=0.2, score=0.544783 -   0.4s
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.326315789474, score=0.549799 -   0.3s
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.410526315789, score=0.550803 -   0.3s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV] .......... classifier__learning_rate=1.0, score=0.538988 -   0.4s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.549799 -   0.2s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.553721 -   0.4s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.552718 -   0.3s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.548705 -   0.4s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV]  classifier__learning_rate=0.452631578947, score=0.551623 -   0.4s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.551806 -   0.2s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.549708 -   0.4s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV]  classifier__learning_rate=0.663157894737, score=0.550073 -   0.2s
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.551259 -   0.4s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV]  classifier__learning_rate=0.957894736842, score=0.539991 -   1.4s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.957894736842, score=0.551988 -   0.2s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.550347 -   0.4s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.326315789474, score=0.548340 -   0.2s
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.551441 -   0.3s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.915789473684, score=0.552353 -   0.4s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV] .......... classifier__learning_rate=0.2, score=0.543050 -   0.3s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.621052631579, score=0.546425 -   0.2s
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.873684210526, score=0.553265 -   0.4s
[CV] classifier__learning_rate=0.2 ...................................
[CV]  classifier__learning_rate=0.747368421053, score=0.551350 -   0.4s
[CV] classifier__learning_rate=0.242105263158 ........................
[CV]  classifier__learning_rate=0.747368421053, score=0.548066 -   0.2s
[CV] classifier__learning_rate=0.284210526316 ........................
[CV]  classifier__learning_rate=0.242105263158, score=0.543232 -   0.4s
[CV] classifier__learning_rate=0.326315789474 ........................
[CV]  classifier__learning_rate=0.578947368421, score=0.548522 -   0.3s
[CV] classifier__learning_rate=0.368421052632 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.546242 -   0.3s
[CV] classifier__learning_rate=0.410526315789 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.546425 -   0.2s
[CV] classifier__learning_rate=0.452631578947 ........................
[CV]  classifier__learning_rate=0.831578947368, score=0.547063 -   0.2s
[CV] classifier__learning_rate=0.494736842105 ........................
[CV]  classifier__learning_rate=0.368421052632, score=0.545421 -   0.3s
[CV] classifier__learning_rate=0.536842105263 ........................
[CV]  classifier__learning_rate=0.705263157895, score=0.547246 -   0.3s
[CV] classifier__learning_rate=0.578947368421 ........................
[CV]  classifier__learning_rate=0.536842105263, score=0.547063 -   0.4s
[CV] classifier__learning_rate=0.621052631579 ........................
[CV]  classifier__learning_rate=0.663157894737, score=0.547428 -   0.4s
[CV] classifier__learning_rate=0.663157894737 ........................
[CV] .......... classifier__learning_rate=1.0, score=0.540040 -   0.2s
[CV] classifier__learning_rate=0.705263157895 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.540952 -   0.2s
[CV] classifier__learning_rate=0.747368421053 ........................
[CV]  classifier__learning_rate=0.284210526316, score=0.546333 -   3.8s
[CV] classifier__learning_rate=0.789473684211 ........................
[CV]  classifier__learning_rate=0.957894736842, score=0.543871 -   0.3s
[CV] classifier__learning_rate=0.831578947368 ........................
[CV]  classifier__learning_rate=0.873684210526, score=0.545239 -   0.3s
[CV] classifier__learning_rate=0.873684210526 ........................
[CV]  classifier__learning_rate=0.410526315789, score=0.540040 -   0.2s
[CV] classifier__learning_rate=0.915789473684 ........................
[CV]  classifier__learning_rate=0.789473684211, score=0.545786 -   0.4s
[CV] classifier__learning_rate=0.957894736842 ........................
[CV]  classifier__learning_rate=0.494736842105, score=0.545786 -   0.2s
[CV] classifier__learning_rate=1.0 ...................................
[CV]  classifier__learning_rate=0.915789473684, score=0.543871 -   0.4s
[CV]  classifier__learning_rate=0.368421052632, score=0.542138 -   0.3s
[CV]  classifier__learning_rate=0.326315789474, score=0.541317 -   0.4s
[CV] .......... classifier__learning_rate=1.0, score=0.548614 -   0.3s
[CV]  classifier__learning_rate=0.242105263158, score=0.537486 -   0.3s
[CV] .......... classifier__learning_rate=0.2, score=0.531740 -   0.2s
[CV]  classifier__learning_rate=0.452631578947, score=0.541591 -   0.3s
[CV]  classifier__learning_rate=0.536842105263, score=0.543597 -   0.4s
[CV]  classifier__learning_rate=0.452631578947, score=0.545239 -   0.4s
[CV]  classifier__learning_rate=0.663157894737, score=0.544692 -   0.3s
[CV]  classifier__learning_rate=0.621052631579, score=0.541408 -   0.4s
[CV]  classifier__learning_rate=0.831578947368, score=0.539493 -   0.2s
[CV]  classifier__learning_rate=0.747368421053, score=0.543597 -   0.2s
[CV] .......... classifier__learning_rate=1.0, score=0.541499 -   0.2s
[CV]  classifier__learning_rate=0.873684210526, score=0.539767 -   0.2s
[CV]  classifier__learning_rate=0.705263157895, score=0.544327 -   0.2s
[CV]  classifier__learning_rate=0.957894736842, score=0.540679 -   0.2s
[CV]  classifier__learning_rate=0.789473684211, score=0.542594 -   0.2s
[CV]  classifier__learning_rate=0.578947368421, score=0.542776 -   0.2s
[CV]  classifier__learning_rate=0.915789473684, score=0.541317 -   0.2s
[Parallel(n_jobs=20)]: Done 200 out of 200 | elapsed:  4.0min finished

In [4]:
max_depth_list = [2, 8, 10, 20]

fig, axarr = plt.subplots(2,2)
for depth, ax in zip(max_depth_list, axarr.flatten()):
    pipeline = get_pipeline('RF')
    pipeline.named_steps['classifier'].set_params(max_depth=depth)
    pipeline.fit(X_train, y_train)
    scaler = pipeline.named_steps['scaler']
    clf = pipeline.named_steps['classifier']
    X_test_std = scaler.transform(X_test)
    plot_decision_regions(X_test_std, y_test, clf, scatter_fraction=None, ax=ax)
    ax.set_xlabel('Scaled energy')
    ax.set_ylabel('Scaled charge')
    ax.set_title('Max depth = {}'.format(depth))
    ax.legend()
plt.tight_layout()
plt.savefig('/home/jbourbeau/public_html/figures/composition/parameter-tuning/RF-decision-regions.png')


/home/jbourbeau/.local/lib/python2.7/site-packages/matplotlib/axes/_axes.py:519: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.
  warnings.warn("No labelled objects found. "

In [5]:
pipeline = get_pipeline('RF')
param_range = np.arange(1, 20)
param_grid = {'classifier__max_depth': param_range}
gs = GridSearchCV(estimator=pipeline, 
                  param_grid=param_grid, 
                  scoring='accuracy', 
                  cv=10,
                  n_jobs=10)
gs = gs.fit(X_train, y_train)
print(gs.best_score_)
print(gs.best_params_)


0.7872226199
{'classifier__max_depth': 10}

In [ ]: