In [15]:
import pandas as pd
import numpy as np
import pickle
import matplotlib.pylab as plt

%matplotlib inline

In [16]:
fn = 'optimize_calculated_results.pckl'
# 'benchmark_results.pckl'
df = pickle.load(open(fn, 'rb'))
df['i'] = list(range(len(df['gridincrements'].values)))
df = df.set_index(['i'])
df['log_loss'] = df['loss'].apply(np.log)
df = df[['mode', 'Romberg', 'minimalgrid', 'neigbors', 'gridincrements', 'timing', 'loss', 'log_loss']]

In [17]:
df


Out[17]:
mode Romberg minimalgrid neigbors gridincrements timing loss log_loss
i
0 0.0 True NaN 1.0 2.0 0.324694 7.845745e+14 34.296163
1 0.0 True NaN 2.0 2.0 1.186859 1.231593e+12 27.839330
2 0.0 True NaN 3.0 2.0 1.315421 6.153919e+09 22.540355
3 0.0 True NaN 4.0 2.0 1.433179 5.940469e+07 17.899884
4 0.0 True NaN 5.0 2.0 1.491736 9.023679e+05 13.712778
5 0.0 True NaN 6.0 2.0 1.541556 1.911120e+04 9.858030
6 0.0 True NaN 1.0 3.0 0.674458 7.845745e+14 34.296163
7 0.0 True NaN 2.0 3.0 2.820477 1.231593e+12 27.839330
8 0.0 True NaN 3.0 3.0 3.817897 6.153919e+09 22.540355
9 0.0 True NaN 4.0 3.0 3.969122 5.940469e+07 17.899884
10 0.0 True NaN 5.0 3.0 3.987206 9.023679e+05 13.712778
11 0.0 True NaN 6.0 3.0 4.238573 1.911120e+04 9.858030
12 0.0 True NaN 1.0 4.0 1.114686 7.845745e+14 34.296163
13 0.0 True NaN 2.0 4.0 8.594254 1.231593e+12 27.839330
14 0.0 True NaN 3.0 4.0 8.731227 6.153919e+09 22.540355
15 0.0 True NaN 4.0 4.0 8.770234 5.940469e+07 17.899884
16 0.0 True NaN 5.0 4.0 8.791545 9.023679e+05 13.712778
17 0.0 True NaN 6.0 4.0 8.695395 1.911120e+04 9.858030
18 0.0 True NaN 1.0 5.0 1.902585 7.845745e+14 34.296163
19 0.0 True NaN 2.0 5.0 19.951870 1.231593e+12 27.839330
20 0.0 True NaN 3.0 5.0 20.682672 6.153919e+09 22.540355
21 0.0 True NaN 4.0 5.0 21.816971 5.940469e+07 17.899884
22 0.0 True NaN 5.0 5.0 22.586641 9.023679e+05 13.712778
23 0.0 True NaN 6.0 5.0 20.270109 1.911120e+04 9.858030
24 1.0 True NaN 1.0 2.0 0.538743 1.375052e+14 32.554683
25 1.0 True NaN 2.0 2.0 3.192900 7.137730e+10 24.991246
26 1.0 True NaN 3.0 2.0 3.853245 1.181129e+08 18.587151
27 1.0 True NaN 4.0 2.0 3.886948 3.822632e+05 12.853865
28 1.0 True NaN 5.0 2.0 3.934635 1.970305e+03 7.585944
29 1.0 True NaN 6.0 2.0 4.014620 1.430350e+01 2.660504
... ... ... ... ... ... ... ... ...
93 -100.0 False 256.0 1.0 0.0 0.005353 8.448359e+16 38.975334
94 -100.0 False 256.0 2.0 0.0 0.011109 2.087699e+15 35.274839
95 -100.0 False 256.0 3.0 0.0 0.012249 1.514079e+14 32.650998
96 -100.0 False 256.0 4.0 0.0 0.013658 1.921692e+13 30.586812
97 -100.0 False 256.0 5.0 0.0 0.015816 3.512460e+12 28.887338
98 -100.0 False 256.0 6.0 0.0 0.012449 8.305768e+11 27.445386
99 -100.0 False 512.0 1.0 0.0 0.020649 1.159378e+15 34.686660
100 -100.0 False 512.0 2.0 0.0 0.087176 2.322777e+12 28.473785
101 -100.0 False 512.0 3.0 0.0 0.095725 1.479387e+10 23.417479
102 -100.0 False 512.0 4.0 0.0 0.102688 1.813438e+08 19.015905
103 -100.0 False 512.0 5.0 0.0 0.105283 3.485259e+06 15.064053
104 -100.0 False 512.0 6.0 0.0 0.110897 9.310385e+04 11.441471
105 -100.0 False 1024.0 1.0 0.0 0.107385 1.756977e+13 30.497201
106 -100.0 False 1024.0 2.0 0.0 0.635013 2.400653e+09 21.599007
107 -100.0 False 1024.0 3.0 0.0 0.738755 1.043587e+06 13.858174
108 -100.0 False 1024.0 4.0 0.0 0.785229 8.947021e+02 6.796491
109 -100.0 False 1024.0 5.0 0.0 0.888497 1.233516e+00 0.209869
110 -100.0 False 1024.0 6.0 0.0 0.949859 2.497431e-03 -5.992493
111 -100.0 False 2048.0 1.0 0.0 0.468913 2.719475e+11 26.328875
112 -100.0 False 2048.0 2.0 0.0 5.783384 2.379923e+06 14.682579
113 -100.0 False 2048.0 3.0 0.0 5.550882 6.593937e+01 4.188736
114 -100.0 False 2048.0 4.0 0.0 6.553577 3.782208e-03 -5.577447
115 -100.0 False 2048.0 5.0 0.0 7.829238 2.637962e-06 -12.845504
116 -100.0 False 2048.0 6.0 0.0 8.308618 1.469416e-06 -13.430646
117 -100.0 False 4096.0 1.0 0.0 2.582152 4.234909e+09 22.166628
118 -100.0 False 4096.0 2.0 0.0 58.497771 2.331801e+03 7.754396
119 -100.0 False 4096.0 3.0 0.0 50.865508 4.177432e-03 -5.478059
120 -100.0 False 4096.0 4.0 0.0 48.122925 2.607154e-06 -12.857251
121 -100.0 False 4096.0 5.0 0.0 49.997089 6.898829e-07 -14.186744
122 -100.0 False 4096.0 6.0 0.0 52.056167 5.997157e-06 -12.024225

123 rows × 8 columns


In [18]:
df.plot(x='timing', y='log_loss', kind='scatter')


Out[18]:
<matplotlib.axes._subplots.AxesSubplot at 0x1071c9110>

In [19]:
df[(df['log_loss'] < 5.) & (df['timing'] < 10)]


Out[19]:
mode Romberg minimalgrid neigbors gridincrements timing loss log_loss
i
29 1.0 True NaN 6.0 2.0 4.014620 14.303502 2.660504
109 -100.0 False 1024.0 5.0 0.0 0.888497 1.233516 0.209869
110 -100.0 False 1024.0 6.0 0.0 0.949859 0.002497 -5.992493
113 -100.0 False 2048.0 3.0 0.0 5.550882 65.939365 4.188736
114 -100.0 False 2048.0 4.0 0.0 6.553577 0.003782 -5.577447
115 -100.0 False 2048.0 5.0 0.0 7.829238 0.000003 -12.845504
116 -100.0 False 2048.0 6.0 0.0 8.308618 0.000001 -13.430646

In [ ]:
df[(df['log_loss'] < 10.) & (df['timing'] < 3)]

In [ ]:
# pickle.dump(df, open('benchmark_results.pckl', 'wb'))

In [ ]:
df[(df['log_loss'] < 0.)]

In [ ]:
df['Romberg'] = True

In [ ]:
#pickle.dump(df, open(fn, 'wb'))

In [14]:
df[(df['minimalgrid'] == 100)]


Out[14]:
mode Romberg minimalgrid neigbors gridincrements timing loss log_loss
i

In [ ]: