diff --git a/doc/Programs/ANN/cnnkeras.py b/doc/Programs/ANN/cnnkeras.py index bf4dd5c95..b63333d54 100644 --- a/doc/Programs/ANN/cnnkeras.py +++ b/doc/Programs/ANN/cnnkeras.py @@ -51,7 +51,10 @@ test_size = 1 - train_size X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, test_size=test_size) -import tensorflow as tf +#import tensorflow as tf +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() +tf.reset_default_graph() from keras.models import Sequential @@ -90,7 +93,7 @@ eta_vals = np.logspace(-5, 1, 7) lmbd_vals = np.logspace(-5, 1, 7) CNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) - + for i, eta in enumerate(eta_vals): for j, lmbd in enumerate(lmbd_vals): CNN = create_convolutional_neural_network_keras(input_shape, receptive_field, @@ -122,7 +125,7 @@ for i in range(len(eta_vals)): train_accuracy[i][j] = CNN.evaluate(X_train, Y_train)[1] test_accuracy[i][j] = CNN.evaluate(X_test, Y_test)[1] - + fig, ax = plt.subplots(figsize = (10, 10)) sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") ax.set_title("Training Accuracy") diff --git a/doc/Programs/Bayesian/Bayes.ipynb b/doc/Programs/Bayesian/Bayes.ipynb new file mode 100644 index 000000000..d938f54e5 --- /dev/null +++ b/doc/Programs/Bayesian/Bayes.ipynb @@ -0,0 +1,1520 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import GPy\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.stats as stats \n", + "import matplotlib.mlab as mlab\n", + "import seaborn as sns\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.preprocessing import StandardScaler, MinMaxScaler, Normalizer, RobustScaler\n", + "from IPython.display import display\n", + "from sklearn.gaussian_process import GaussianProcessRegressor\n", + "from sklearn.gaussian_process.kernels import RBF\n", + "from scipy.stats import norm\n", + "from scipy.stats import uniform" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#Read csv file and get the outputs(features) and inputs\n", + "features = ['SN112EK42.5', 'SN112EK47.5', 'SN112EK52.5', 'SN112EK57.5', 'SN112EK62.5', 'SN112EK67.5', 'SN112EK72.5', 'SN112EK77.5', 'SN112EK82.5', 'SN112EK87.5', 'SN124EK42.5', 'SN124EK47.5', 'SN124EK52.5', 'SN124EK57.5', 'SN124EK62.5', 'SN124EK67.5', 'SN124EK72.5', 'SN124EK77.5', 'SN124EK82.5', 'SN124EK87.5', 'DREK12.5', 'DREK17.5', 'DREK22.5', 'DREK27.5', 'DREK32.5', 'DREK37.5', 'DREK42.5', 'DREK47.5', 'DREK52.5', 'DREK60.0', 'DREK70.0', 'DREK80.0', 'DREK87.5']\n", + "inputs = ['S0', 'L', 'ms', 'mv']\n", + "error_features = ['SN112EK42.5_Error', 'SN112EK47.5_Error', 'SN112EK52.5_Error', 'SN112EK57.5_Error', 'SN112EK62.5_Error', 'SN112EK67.5_Error', 'SN112EK72.5_Error', 'SN112EK77.5_Error', 'SN112EK82.5_Error', 'SN112EK87.5_Error', 'SN124EK42.5_Error', 'SN124EK47.5_Error', 'SN124EK52.5_Error', 'SN124EK57.5_Error', 'SN124EK62.5_Error', 'SN124EK67.5_Error', 'SN124EK72.5_Error', 'SN124EK77.5_Error', 'SN124EK82.5_Error', 'SN124EK87.5_Error', 'DREK12.5_Error', 'DREK17.5_Error', 'DREK22.5_Error', 'DREK27.5_Error', 'DREK32.5_Error', 'DREK37.5_Error', 'DREK42.5_Error', 'DREK47.5_Error', 'DREK52.5_Error', 'DREK60.0_Error', 'DREK70.0_Error', 'DREK80.0_Error', 'DREK87.5_Error'\n", + "]\n", + "df = pd.read_csv(\"C:/Users/danny/OneDrive/Desktop/bayesian_example/e120_bugfix_model_new_mv.csv\", usecols=features)\n", + "df2 = pd.read_csv(\"C:/Users/danny/OneDrive/Desktop/bayesian_example/e120_bugfix_model_new_mv.csv\", usecols=inputs)\n", + "df3 = pd.read_csv(\"C:/Users/danny/OneDrive/Desktop/bayesian_example/e120_exp_result.csv\", usecols=features)\n", + "df4 = pd.read_csv(\"C:/Users/danny/OneDrive/Desktop/bayesian_example/e120_exp_result.csv\", usecols=error_features)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SN112EK42.5SN112EK47.5SN112EK52.5SN112EK57.5SN112EK62.5SN112EK67.5SN112EK72.5SN112EK77.5SN112EK82.5SN112EK87.5...DREK27.5DREK32.5DREK37.5DREK42.5DREK47.5DREK52.5DREK60.0DREK70.0DREK80.0DREK87.5
01.0497401.0093700.9715870.9335430.8952360.8601230.8282020.7978410.7690380.742806...1.257781.284921.312061.339191.365441.390811.429181.470761.501271.51709
11.1014601.0765501.0535601.0326501.0138300.9954910.9776480.9597400.9417670.928342...1.234011.264441.295131.326081.361581.401611.453201.518121.596591.65511
21.0338700.9996170.9671170.9370340.9093680.8848400.8634490.8426540.8224550.805631...1.251781.279081.305981.332491.361631.393411.433651.480051.518071.54192
30.9797040.9486030.9216460.9001230.8840320.8672980.8499210.8375390.8301540.821927...1.239931.265281.291761.319371.346031.371731.405001.449101.485311.50366
41.0262500.9980310.9740970.9511060.9290570.9089390.8907500.8761590.8651630.855486...1.213751.236691.262621.291551.322451.355311.406111.479311.546231.59240
\n", + "

5 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + " SN112EK42.5 SN112EK47.5 SN112EK52.5 SN112EK57.5 SN112EK62.5 \\\n", + "0 1.049740 1.009370 0.971587 0.933543 0.895236 \n", + "1 1.101460 1.076550 1.053560 1.032650 1.013830 \n", + "2 1.033870 0.999617 0.967117 0.937034 0.909368 \n", + "3 0.979704 0.948603 0.921646 0.900123 0.884032 \n", + "4 1.026250 0.998031 0.974097 0.951106 0.929057 \n", + "\n", + " SN112EK67.5 SN112EK72.5 SN112EK77.5 SN112EK82.5 SN112EK87.5 ... \\\n", + "0 0.860123 0.828202 0.797841 0.769038 0.742806 ... \n", + "1 0.995491 0.977648 0.959740 0.941767 0.928342 ... \n", + "2 0.884840 0.863449 0.842654 0.822455 0.805631 ... \n", + "3 0.867298 0.849921 0.837539 0.830154 0.821927 ... \n", + "4 0.908939 0.890750 0.876159 0.865163 0.855486 ... \n", + "\n", + " DREK27.5 DREK32.5 DREK37.5 DREK42.5 DREK47.5 DREK52.5 DREK60.0 \\\n", + "0 1.25778 1.28492 1.31206 1.33919 1.36544 1.39081 1.42918 \n", + "1 1.23401 1.26444 1.29513 1.32608 1.36158 1.40161 1.45320 \n", + "2 1.25178 1.27908 1.30598 1.33249 1.36163 1.39341 1.43365 \n", + "3 1.23993 1.26528 1.29176 1.31937 1.34603 1.37173 1.40500 \n", + "4 1.21375 1.23669 1.26262 1.29155 1.32245 1.35531 1.40611 \n", + "\n", + " DREK70.0 DREK80.0 DREK87.5 \n", + "0 1.47076 1.50127 1.51709 \n", + "1 1.51812 1.59659 1.65511 \n", + "2 1.48005 1.51807 1.54192 \n", + "3 1.44910 1.48531 1.50366 \n", + "4 1.47931 1.54623 1.59240 \n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = df.loc[:, features].values\n", + "#scaling the data\n", + "#y_scaler = MinMaxScaler().fit_transform(y)\n", + "#y_scaler = Normalizer().fit_transform(y)\n", + "#y_scaler = RobustScaler().fit_transform(y)\n", + "#y_scaler = StandardScaler().fit_transform(y)\n", + "pd.DataFrame(data = y, columns = features).head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PCA 1PCA 2PCA 3
00.0045850.189818-0.017025
1-0.8896330.0239710.013887
2-0.1741000.061279-0.026724
3-0.011284-0.096832-0.013462
4-0.320008-0.1115620.062695
\n", + "
" + ], + "text/plain": [ + " PCA 1 PCA 2 PCA 3\n", + "0 0.004585 0.189818 -0.017025\n", + "1 -0.889633 0.023971 0.013887\n", + "2 -0.174100 0.061279 -0.026724\n", + "3 -0.011284 -0.096832 -0.013462\n", + "4 -0.320008 -0.111562 0.062695" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#applying PCA on the outputs and reducing it from 33D to 3D\n", + "pca = PCA(n_components=3)\n", + "yPCA = pca.fit_transform(y)\n", + "PCADf = pd.DataFrame(data = yPCA, columns = ['PCA 1', 'PCA 2', 'PCA 3'])\n", + "PCADf.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.95664316 0.03929512 0.00237127]\n" + ] + } + ], + "source": [ + "#Seeing how much each PCA takes into account\n", + "print(pca.explained_variance_ratio_) #it seems like the 3PCA account for 98% of the data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1.05226638 1.00984326 0.96921742 ... 1.46182261 1.48709511 1.50213919]\n", + " [1.10304362 1.0782522 1.05524568 ... 1.52386133 1.59330332 1.64266425]\n", + " [1.03278436 0.99840936 0.96670162 ... 1.47629668 1.51377543 1.53713317]\n", + " ...\n", + " [0.95791579 0.90589328 0.85745636 ... 1.38459667 1.38846038 1.38896563]\n", + " [1.01619208 0.95436387 0.89447893 ... 1.3714765 1.37153888 1.37266782]\n", + " [0.99489351 0.96558251 0.94040069 ... 1.45655175 1.51113185 1.55003265]]\n" + ] + } + ], + "source": [ + "#testing if the reverse pca works\n", + "G = np.dot(yPCA, pca.components_) + pca.mean_\n", + "print(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
S0Lmsmv
031.15943.50.9800.865000
135.07356.10.7000.875000
232.39566.90.8600.855000
328.27586.70.9721.095001
427.65779.50.6120.975000
\n", + "
" + ], + "text/plain": [ + " S0 L ms mv\n", + "0 31.159 43.5 0.980 0.865000\n", + "1 35.073 56.1 0.700 0.875000\n", + "2 32.395 66.9 0.860 0.855000\n", + "3 28.275 86.7 0.972 1.095001\n", + "4 27.657 79.5 0.612 0.975000" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#extracting and looking at the inputs\n", + "x = df2.loc[:, inputs].values\n", + "xdf = pd.DataFrame(data = x, columns = ['S0', 'L', 'ms', 'mv'])\n", + "xdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "GaussianProcessRegressor(alpha=1e-10, copy_X_train=True,\n", + " kernel=RBF(length_scale=1), n_restarts_optimizer=10,\n", + " normalize_y=False, optimizer='fmin_l_bfgs_b',\n", + " random_state=None)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#using sckitlearn to do the gaussian process\n", + "kernel = RBF()\n", + "gp = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=10)\n", + "gp.fit(x, yPCA)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
S0Lmsmv
067.43540796.0000571.0604970.897444
152.22071540.6478930.6194970.998561
2112.42061580.6479190.7544450.877165
3111.57629293.7961870.9541610.648290
4102.52067456.9638680.8802451.001980
\n", + "
" + ], + "text/plain": [ + " S0 L ms mv\n", + "0 67.435407 96.000057 1.060497 0.897444\n", + "1 52.220715 40.647893 0.619497 0.998561\n", + "2 112.420615 80.647919 0.754445 0.877165\n", + "3 111.576292 93.796187 0.954161 0.648290\n", + "4 102.520674 56.963868 0.880245 1.001980" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#creating new randomized inputs x_ similar to x\n", + "msv_min = min(x[:,2].min(),x[:,3].min())\n", + "msv_max = max(x[:,2].max(),x[:,3].max())\n", + "sl_min = min(x[:,0].min(),x[:,1].min())\n", + "sl_max = max(x[:,0].max(),x[:,1].max())\n", + "x_sl = np.random.uniform(sl_min,sl_max,94)\n", + "x_msv = np.random.uniform(msv_min,msv_max,94)\n", + "x_sl = x_sl.reshape(47,2)\n", + "x_msv = x_msv.reshape(47,2)\n", + "x_ = np.concatenate((x_sl,x_msv),axis=1)\n", + "x_df = pd.DataFrame(data = x_, columns = ['S0', 'L', 'ms', 'mv'])\n", + "x_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(47,)\n", + "(47, 3)\n" + ] + } + ], + "source": [ + "#using the gp model trained on the inputs(x) and the outputs(y) on x_ to predict y_pred and y_std\n", + "y_pred, y_std = gp.predict(x_, return_std=True)\n", + "#y_pred, y_cov= gp.predict(x_, return_cov=True) #should I inverse pca on y_cov?\n", + "y_preddf = pd.DataFrame(data = y_pred, columns = ['PCA 1', 'PCA 2', 'PCA 3'])\n", + "y_preddf.head()\n", + "print(y_std.shape)\n", + "print(y_pred.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SN112EK42.5SN112EK47.5SN112EK52.5SN112EK57.5SN112EK62.5SN112EK67.5SN112EK72.5SN112EK77.5SN112EK82.5SN112EK87.5...DREK27.5DREK32.5DREK37.5DREK42.5DREK47.5DREK52.5DREK60.0DREK70.0DREK80.0DREK87.5
01.0072390.9721530.9404160.9113830.8850530.8609810.8391650.8192770.8013170.784839...1.2417231.2673371.2935291.3202981.3469251.3734111.4106651.4556631.4942451.519706
11.0072400.9721530.9404160.9113830.8850530.8609810.8391650.8192770.8013170.784839...1.2417231.2673371.2935291.3202981.3469251.3734111.4106651.4556631.4942451.519706
21.0072390.9721530.9404160.9113830.8850530.8609810.8391650.8192770.8013170.784839...1.2417231.2673371.2935291.3202981.3469251.3734111.4106651.4556631.4942451.519706
31.0072390.9721530.9404160.9113830.8850530.8609810.8391650.8192770.8013170.784839...1.2417231.2673371.2935291.3202981.3469251.3734111.4106651.4556631.4942451.519706
41.0072390.9721530.9404160.9113830.8850530.8609810.8391650.8192770.8013170.784839...1.2417231.2673371.2935291.3202981.3469251.3734111.4106651.4556631.4942451.519706
\n", + "

5 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + " SN112EK42.5 SN112EK47.5 SN112EK52.5 SN112EK57.5 SN112EK62.5 \\\n", + "0 1.007239 0.972153 0.940416 0.911383 0.885053 \n", + "1 1.007240 0.972153 0.940416 0.911383 0.885053 \n", + "2 1.007239 0.972153 0.940416 0.911383 0.885053 \n", + "3 1.007239 0.972153 0.940416 0.911383 0.885053 \n", + "4 1.007239 0.972153 0.940416 0.911383 0.885053 \n", + "\n", + " SN112EK67.5 SN112EK72.5 SN112EK77.5 SN112EK82.5 SN112EK87.5 ... \\\n", + "0 0.860981 0.839165 0.819277 0.801317 0.784839 ... \n", + "1 0.860981 0.839165 0.819277 0.801317 0.784839 ... \n", + "2 0.860981 0.839165 0.819277 0.801317 0.784839 ... \n", + "3 0.860981 0.839165 0.819277 0.801317 0.784839 ... \n", + "4 0.860981 0.839165 0.819277 0.801317 0.784839 ... \n", + "\n", + " DREK27.5 DREK32.5 DREK37.5 DREK42.5 DREK47.5 DREK52.5 DREK60.0 \\\n", + "0 1.241723 1.267337 1.293529 1.320298 1.346925 1.373411 1.410665 \n", + "1 1.241723 1.267337 1.293529 1.320298 1.346925 1.373411 1.410665 \n", + "2 1.241723 1.267337 1.293529 1.320298 1.346925 1.373411 1.410665 \n", + "3 1.241723 1.267337 1.293529 1.320298 1.346925 1.373411 1.410665 \n", + "4 1.241723 1.267337 1.293529 1.320298 1.346925 1.373411 1.410665 \n", + "\n", + " DREK70.0 DREK80.0 DREK87.5 \n", + "0 1.455663 1.494245 1.519706 \n", + "1 1.455663 1.494245 1.519706 \n", + "2 1.455663 1.494245 1.519706 \n", + "3 1.455663 1.494245 1.519706 \n", + "4 1.455663 1.494245 1.519706 \n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Reverse PCA on y_pred to look like y\n", + "Y = np.dot(y_pred, pca.components_) + pca.mean_\n", + "Ydf= pd.DataFrame(data = Y, columns = features)\n", + "Ydf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SN112EK42.5SN112EK47.5SN112EK52.5SN112EK57.5SN112EK62.5SN112EK67.5SN112EK72.5SN112EK77.5SN112EK82.5SN112EK87.5...DREK27.5DREK32.5DREK37.5DREK42.5DREK47.5DREK52.5DREK60.0DREK70.0DREK80.0DREK87.5
SN112EK42.50.0003130.0003410.0003640.0003840.0004000.0004140.0004280.0004390.0004480.000458...-0.000031-0.000027-0.0000150.0000050.0000310.0000630.0001180.0001970.0002950.000373
SN112EK47.50.0003410.0003810.0004150.0004460.0004720.0004970.0005200.0005410.0005590.000578...-0.000037-0.000030-0.0000140.0000100.0000420.0000820.0001470.0002450.0003640.000458
SN112EK52.50.0003640.0004150.0004610.0005020.0005390.0005750.0006080.0006390.0006660.000693...-0.000042-0.000033-0.0000130.0000150.0000530.0001000.0001750.0002910.0004310.000538
SN112EK57.50.0003840.0004460.0005020.0005540.0006020.0006470.0006910.0007310.0007660.000802...-0.000048-0.000035-0.0000120.0000200.0000630.0001170.0002020.0003340.0004930.000613
SN112EK62.50.0004000.0004720.0005390.0006020.0006590.0007150.0007680.0008170.0008610.000905...-0.000052-0.000037-0.0000110.0000250.0000730.0001330.0002270.0003740.0005520.000684
\n", + "

5 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + " SN112EK42.5 SN112EK47.5 SN112EK52.5 SN112EK57.5 SN112EK62.5 \\\n", + "SN112EK42.5 0.000313 0.000341 0.000364 0.000384 0.000400 \n", + "SN112EK47.5 0.000341 0.000381 0.000415 0.000446 0.000472 \n", + "SN112EK52.5 0.000364 0.000415 0.000461 0.000502 0.000539 \n", + "SN112EK57.5 0.000384 0.000446 0.000502 0.000554 0.000602 \n", + "SN112EK62.5 0.000400 0.000472 0.000539 0.000602 0.000659 \n", + "\n", + " SN112EK67.5 SN112EK72.5 SN112EK77.5 SN112EK82.5 SN112EK87.5 \\\n", + "SN112EK42.5 0.000414 0.000428 0.000439 0.000448 0.000458 \n", + "SN112EK47.5 0.000497 0.000520 0.000541 0.000559 0.000578 \n", + "SN112EK52.5 0.000575 0.000608 0.000639 0.000666 0.000693 \n", + "SN112EK57.5 0.000647 0.000691 0.000731 0.000766 0.000802 \n", + "SN112EK62.5 0.000715 0.000768 0.000817 0.000861 0.000905 \n", + "\n", + " ... DREK27.5 DREK32.5 DREK37.5 DREK42.5 DREK47.5 DREK52.5 \\\n", + "SN112EK42.5 ... -0.000031 -0.000027 -0.000015 0.000005 0.000031 0.000063 \n", + "SN112EK47.5 ... -0.000037 -0.000030 -0.000014 0.000010 0.000042 0.000082 \n", + "SN112EK52.5 ... -0.000042 -0.000033 -0.000013 0.000015 0.000053 0.000100 \n", + "SN112EK57.5 ... -0.000048 -0.000035 -0.000012 0.000020 0.000063 0.000117 \n", + "SN112EK62.5 ... -0.000052 -0.000037 -0.000011 0.000025 0.000073 0.000133 \n", + "\n", + " DREK60.0 DREK70.0 DREK80.0 DREK87.5 \n", + "SN112EK42.5 0.000118 0.000197 0.000295 0.000373 \n", + "SN112EK47.5 0.000147 0.000245 0.000364 0.000458 \n", + "SN112EK52.5 0.000175 0.000291 0.000431 0.000538 \n", + "SN112EK57.5 0.000202 0.000334 0.000493 0.000613 \n", + "SN112EK62.5 0.000227 0.000374 0.000552 0.000684 \n", + "\n", + "[5 rows x 33 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#obtaiting the covariance from y_pred, however this is incorrect\n", + "Ycov = Ydf.cov()\n", + "Ycovdf = pd.DataFrame(data= Ycov)\n", + "Ycovdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " C:\\Users\\danny\\anaconda3\\lib\\site-packages\\ipykernel_launcher.py:8: MatplotlibDeprecationWarning:Support for passing a (n, 1)-shaped error array to errorbar() is deprecated since Matplotlib 3.1 and will be removed in 3.3; pass a 1D array instead.\n" + ] + }, + { + "ename": "ValueError", + "evalue": "operands could not be broadcast together with shapes (33,47) (33,) ", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mYy\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'r'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0merrorbar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mY_ex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0myerr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0my_ex_std\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 9\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfill\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mYy\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdiag\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mYcov\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mYy\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdiag\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mYcov\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0malpha\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'k'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 10\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mxlabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'$E_{c.m.}$ (MeV)'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'$R_{n/p}$ & $DR_{n/p}$'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with shapes (33,47) (33,) " + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#plotting the y_predict based on energy E_c.m. for example the column SN112EK42.5 represent energy 42.5 \n", + "Yy = np.array([Y[:,0],Y[:,1],Y[:,2],Y[:,3],Y[:,4],Y[:,5],Y[:,6],Y[:,7],Y[:,8],Y[:,9],Y[:,10],Y[:,11],Y[:,12],Y[:,13],Y[:,14],Y[:,15],Y[:,16],Y[:,17],Y[:,18],Y[:,19],Y[:,20],Y[:,21],Y[:,22],Y[:,23],Y[:,24],Y[:,25],Y[:,26],Y[:,27],Y[:,28],Y[:,29],Y[:,30],Y[:,31],Y[:,32]])\n", + "y_ex_std =df4.loc[:,error_features].values\n", + "y_ex_std = y_ex_std.reshape(33,1)\n", + "Y_ex = df3.loc[:, features].values\n", + "Y_ex = Y_ex.reshape(33,1)\n", + "plt.plot(features,Yy, 'r')\n", + "plt.errorbar(features,Y_ex, yerr = y_ex_std)\n", + "plt.fill(features, Yy - np.sqrt(np.diag(Ycov)), Yy + np.sqrt(np.diag(Ycov)), alpha=0.5, color='k')\n", + "plt.xlabel('$E_{c.m.}$ (MeV)')\n", + "plt.ylabel('$R_{n/p}$ & $DR_{n/p}$')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$Like = exp(-\\sum \\frac{(y(x) - y_{exp})^2}{2\\sigma^2})$ \n", + "\n", + "$like = e^{-(y(x)-y_{exp})(YcovM)(y(x)-y_{exp}).T}$\n", + "\n", + "$YcovM = Ycov - Y_{experror}I$" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(47,)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#creating the likelihood function\n", + "Y_exp = df3.loc[:, features].values\n", + "y_exp_std =df4.loc[:,error_features].values\n", + "covM = Ycov - y_exp_std*np.eye(33)\n", + "Z = Y-Y_exp\n", + "H = np.dot(Z,covM) #matmul?\n", + "J = np.dot(H,Z.T) #J = (Y-Y_exp)*covM*(Y-Y_exp).T, Should be inverse covM\n", + "like = np.exp(-sum(J))\n", + "#like = np.exp(-sum(((Y-Y_exp)**2)/(2*y_exp_std**2)))\n", + "plt.hist(like,5)\n", + "print(like.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$Posterior = \\frac{Like*S0*L*ms*mv}{\\sum(like*(S0+L+ms+mv)}\n", + "\\\\\n", + "\\\\\n", + "posterior \\propto Like*S0*L*ms*mv$" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.387185\n" + ] + } + ], + "source": [ + "N = 10000 #number of iterations\n", + "\n", + "#size of the steps\n", + "met_step = 1\n", + "met_step2 = 0.05\n", + "met_step3 = 0.01\n", + "met_accept = 0\n", + "\n", + "#empty arrays to store the data from the mcmc\n", + "S0 = np.zeros(N)\n", + "L = np.zeros(N)\n", + "ms = np.zeros(N)\n", + "mv = np.zeros(N)\n", + "lik = np.zeros(N)\n", + "mu = np.zeros(N)\n", + "\n", + "#this is the likelihood function that I derived in the above line\n", + "data = like\n", + "\n", + "#starting points\n", + "S0[0] = 30\n", + "L[0] = 70\n", + "mu[0] = 0.8\n", + "lik[0] = 0.9\n", + "mv[0] = 1\n", + "\n", + "#Here is the random walk\n", + "for i in range(N-1):\n", + " if np.random.rand() > 0.5:\n", + " S0_c = S0[i] + uniform(0,met_step).rvs()\n", + " L_c = L[i] + uniform(0,met_step).rvs()\n", + " mv_c = mv[i] + uniform(0,met_step2).rvs()\n", + " else:\n", + " S0_c = S0[i] - uniform(0,met_step).rvs()\n", + " L_c = L[i] - uniform(0,met_step).rvs()\n", + " mv_c = mv[i] - uniform(0,met_step2).rvs()\n", + " \n", + " mu_c = norm(mu[i],met_step3).rvs() \n", + " ms_i = norm(0.7, 0.05).pdf(mu[i])\n", + " ms_c = norm(0.7, 0.05).pdf(mu_c)\n", + " lik_i = norm(mu[i],1.4).pdf(data).prod()\n", + " lik_c = norm(mu_c,1.4).pdf(data).prod()\n", + " \n", + " #Here we have set up the parameter range\n", + " constraints = [0.6<=ms_c<=1,\n", + " 0.6" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#using the ms and mv sampling from mcmc, figure 3 can be created\n", + "fI = 1/ms - 1/mv\n", + "plt.hist(fI, 100, range=(-1,1))\n", + "print(fI.mean())" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
S0Lmsmv
030.00000070.0000001.0798191.000000
130.00000070.0000000.6840941.000000
230.78837470.1411370.7374211.023541
331.31945370.5215720.7374211.026640
431.31945370.5215720.7374211.026640
\n", + "
" + ], + "text/plain": [ + " S0 L ms mv\n", + "0 30.000000 70.000000 1.079819 1.000000\n", + "1 30.000000 70.000000 0.684094 1.000000\n", + "2 30.788374 70.141137 0.737421 1.023541\n", + "3 31.319453 70.521572 0.737421 1.026640\n", + "4 31.319453 70.521572 0.737421 1.026640" + ] + }, + "execution_count": 97, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#reshaping the sampling from mcmc to look like the inputs\n", + "S0 = S0.reshape(N,1)\n", + "L = L.reshape(N,1)\n", + "ms = ms.reshape(N,1)\n", + "mv = mv.reshape(N,1)\n", + "SL = np.concatenate((S0,L),axis=1)\n", + "msv = np.concatenate((ms,mv),axis=1)\n", + "x_mcmc = np.concatenate((SL,msv),axis=1)\n", + "x_MCMC = pd.DataFrame(data = x_mcmc, columns = ['S0', 'L', 'ms', 'mv'])\n", + "x_MCMC.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#using the trained gaussian process to predict a new y based on the mcmc sampling. This new y will be the posterior\n", + "y_mcmc = gp.predict(x_mcmc, return_std=True)\n", + "#Reverse PCA on y_mcmc to look like y\n", + "Y_mcmc = np.dot(y_mcmc, pca.components_) + pca.mean_\n", + "Y_mcmcdf= pd.DataFrame(data = Y_mcmc, columns = features)\n", + "Y_mcmcdf.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#posterior mean\n", + "Y_mcmc_mean = Y_mcmcdf[features].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#here figure 1 is created\n", + "#plotting the Y_mcmc based on energy E_c.m. for example the column SN112EK42.5 represent energy 42.5 \n", + "Yy_mcmc = np.array([Y_mcmc[:,0],Y_mcmc[:,1],Y_mcmc[:,2],Y_mcmc[:,3],Y_mcmc[:,4],Y_mcmc[:,5],Y_mcmc[:,6],Y_mcmc[:,7],Y_mcmc[:,8],Y_mcmc[:,9],Y_mcmc[:,10],Y_mcmc[:,11],Y_mcmc[:,12],Y_mcmc[:,13],Y_mcmc[:,14],Y_mcmc[:,15],Y_mcmc[:,16],Y_mcmc[:,17],Y_mcmc[:,18],Y_mcmc[:,19],Y_mcmc[:,20],Y_mcmc[:,21],Y_mcmc[:,22],Y_mcmc[:,23],Y_mcmc[:,24],Y_mcmc[:,25],Y_mcmc[:,26],Y_mcmc[:,27],Y_mcmc[:,28],Y_mcmc[:,29],Y_mcmc[:,30],Y_mcmc[:,31],Y_mcmc[:,32]])\n", + "plt.plot(features,Yy_mcmc, 'g')\n", + "plt.plot(features, Y_mcmc_mean, 'k')\n", + "plt.plot(features,Yy, 'r')\n", + "plt.errorbar(features,Y_ex, yerr = y_ex_std)\n", + "plt.xlabel('$E_{c.m.}$ (MeV)')\n", + "plt.ylabel('$R_{n/p}$ & $DR_{n/p}$')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/Programs/Bayesian/e120_bugfix_model_new_mv.csv b/doc/Programs/Bayesian/e120_bugfix_model_new_mv.csv new file mode 100644 index 000000000..25f169a95 --- /dev/null +++ b/doc/Programs/Bayesian/e120_bugfix_model_new_mv.csv @@ -0,0 +1,48 @@ +S0,L,ms,mv,SN112EK42.5,SN112EK47.5,SN112EK52.5,SN112EK57.5,SN112EK62.5,SN112EK67.5,SN112EK72.5,SN112EK77.5,SN112EK82.5,SN112EK87.5,SN124EK42.5,SN124EK47.5,SN124EK52.5,SN124EK57.5,SN124EK62.5,SN124EK67.5,SN124EK72.5,SN124EK77.5,SN124EK82.5,SN124EK87.5,DREK12.5,DREK17.5,DREK22.5,DREK27.5,DREK32.5,DREK37.5,DREK42.5,DREK47.5,DREK52.5,DREK60.0,DREK70.0,DREK80.0,DREK87.5,SN112EK42.5_Error,SN112EK47.5_Error,SN112EK52.5_Error,SN112EK57.5_Error,SN112EK62.5_Error,SN112EK67.5_Error,SN112EK72.5_Error,SN112EK77.5_Error,SN112EK82.5_Error,SN112EK87.5_Error,SN124EK42.5_Error,SN124EK47.5_Error,SN124EK52.5_Error,SN124EK57.5_Error,SN124EK62.5_Error,SN124EK67.5_Error,SN124EK72.5_Error,SN124EK77.5_Error,SN124EK82.5_Error,SN124EK87.5_Error,DREK12.5_Error,DREK17.5_Error,DREK22.5_Error,DREK27.5_Error,DREK32.5_Error,DREK37.5_Error,DREK42.5_Error,DREK47.5_Error,DREK52.5_Error,DREK60.0_Error,DREK70.0_Error,DREK80.0_Error,DREK87.5_Error +31.159,43.5,0.98,0.86500015,1.04974,1.00937,0.971587,0.933543,0.895236,0.860123,0.828202,0.797841,0.769038,0.742806,1.40493,1.37751,1.35058,1.32147,1.29021,1.25781,1.2243,1.19163,1.15983,1.12686,1.19434,1.21192,1.23344,1.25778,1.28492,1.31206,1.33919,1.36544,1.39081,1.42918,1.47076,1.50127,1.51709,0.00169825,0.00183075,0.00197225,0.002117,0.002265,0.00242725,0.00260375,0.002796,0.003004,0.00324,0.00214625,0.002353,0.002573,0.0028035,0.0030445,0.00329925,0.00356775,0.003854,0.004158,0.00448225,0.0014783,0.0015686,0.00175557,0.00199321,0.00228153,0.00261454,0.00299226,0.0034163,0.00388665,0.0047132,0.00600829,0.00758672,0.00898081 +35.073,56.1,0.7,0.874999781,1.10146,1.07655,1.05356,1.03265,1.01383,0.995491,0.977648,0.95974,0.941767,0.928342,1.46,1.46512,1.476,1.48391,1.48885,1.49423,1.50005,1.51005,1.52425,1.53633,1.17779,1.19134,1.20964,1.23401,1.26444,1.29513,1.32608,1.36158,1.40161,1.4532,1.51812,1.59659,1.65511,0.00186675,0.0020515,0.0022565,0.0024855,0.0027385,0.00302,0.00333,0.003673,0.004049,0.0045,0.00236375,0.002668,0.003018,0.0034055,0.0038305,0.00430975,0.00484325,0.0054735,0.0062005,0.0070255,0.00155663,0.0016348,0.00181482,0.00205576,0.0023576,0.00271148,0.00311739,0.00360118,0.00416282,0.00514327,0.00676129,0.00896646,0.0110487 +32.395,66.9,0.86,0.854999997,1.03387,0.999617,0.967117,0.937034,0.909368,0.88484,0.863449,0.842654,0.822455,0.805631,1.37691,1.36034,1.34682,1.33146,1.31428,1.2995,1.28711,1.27224,1.25487,1.24206,1.18462,1.20281,1.22636,1.25178,1.27908,1.30598,1.33249,1.36163,1.39341,1.43365,1.48005,1.51807,1.54192,0.0017245,0.001867,0.002019,0.00218625,0.00236875,0.0025735,0.0028005,0.00304875,0.00331825,0.00362625,0.00217025,0.00239925,0.00265375,0.00292275,0.00320625,0.00352925,0.00389175,0.00427825,0.00468875,0.00516625,0.00152451,0.00161443,0.00180679,0.00205087,0.00234667,0.00268606,0.00306905,0.0035118,0.00401432,0.00487219,0.0062451,0.00794452,0.00946792 +28.275,86.7,0.972,1.095000509,0.979704,0.948603,0.921646,0.900123,0.884032,0.867298,0.849921,0.837539,0.830154,0.821927,1.29187,1.27633,1.26373,1.25524,1.25084,1.24622,1.24137,1.23869,1.23817,1.23582,1.17578,1.19279,1.21577,1.23993,1.26528,1.29176,1.31937,1.34603,1.37173,1.405,1.4491,1.48531,1.50366,0.001609,0.00174425,0.00189475,0.0020665,0.0022595,0.00246925,0.00269575,0.002963,0.003271,0.00361025,0.00200825,0.00221725,0.00244775,0.00270975,0.00300325,0.0033285,0.0036855,0.00409075,0.00454425,0.00504425,0.00150577,0.00158926,0.00177469,0.00200909,0.00229248,0.00262103,0.00299473,0.00341652,0.00388638,0.00468878,0.00599276,0.00760304,0.00902788 +27.657,79.5,0.612,0.975000093,1.02625,0.998031,0.974097,0.951106,0.929057,0.908939,0.89075,0.876159,0.865163,0.855486,1.32474,1.31925,1.31962,1.32045,1.32175,1.32643,1.33447,1.34221,1.34966,1.36205,1.1705,1.17938,1.19465,1.21375,1.23669,1.26262,1.29155,1.32245,1.35531,1.40611,1.47931,1.54623,1.5924,0.00178175,0.0019475,0.0021365,0.002348,0.002582,0.00285,0.003152,0.003508,0.003918,0.004394,0.0022055,0.00246825,0.00277075,0.003116,0.003504,0.00395725,0.00447575,0.005071,0.005743,0.006558,0.00163183,0.0016981,0.00186869,0.00209515,0.0023775,0.00271832,0.00311759,0.00358738,0.00412769,0.0051213,0.00683362,0.00908361,0.0112354 +26.009,95.7,0.996,0.704999827,0.896872,0.843576,0.795678,0.750543,0.708171,0.669715,0.635173,0.603506,0.574715,0.546634,1.16422,1.10768,1.05645,1.00644,0.957631,0.912212,0.870179,0.827051,0.782827,0.742548,1.18083,1.20021,1.22109,1.24272,1.26508,1.28378,1.29883,1.3137,1.32841,1.3471,1.36635,1.36596,1.35846,0.001366,0.00141725,0.00147375,0.00153225,0.00159275,0.00166125,0.00173775,0.0018215,0.0019125,0.002009,0.0016385,0.00171125,0.00178975,0.001869,0.001949,0.002036,0.00213,0.0022205,0.0023075,0.002405,0.00150079,0.00158447,0.00174913,0.00194713,0.00217848,0.00243166,0.00270667,0.00301261,0.00334948,0.0039201,0.00480762,0.0058132,0.00668087 +30.747,63.3,0.716,0.915000109,1.05031,1.02193,0.995669,0.971929,0.95071,0.931251,0.913552,0.895698,0.877688,0.868732,1.38312,1.37743,1.37411,1.37388,1.37671,1.37722,1.37539,1.37476,1.37531,1.37871,1.17746,1.1918,1.21138,1.23412,1.26001,1.28781,1.31752,1.34849,1.38073,1.43139,1.4926,1.5514,1.58703,0.0018015,0.0019695,0.0021545,0.00236075,0.00258825,0.0028435,0.0031265,0.00344125,0.00378775,0.004224,0.00225775,0.00252375,0.00282125,0.003163,0.003549,0.003974,0.004438,0.004967,0.005561,0.00625175,0.00157597,0.00165617,0.00184087,0.00208089,0.00237622,0.00272594,0.00313004,0.00359856,0.00413149,0.00509708,0.00666516,0.00870699,0.0105537 +28.069,41.7,0.884,0.904999964,1.0329,0.997779,0.964651,0.933931,0.905616,0.878297,0.851974,0.831785,0.817731,0.799174,1.36706,1.347,1.3294,1.31049,1.29028,1.27409,1.2619,1.24937,1.23649,1.22144,1.18924,1.20515,1.22379,1.24655,1.27343,1.29931,1.32419,1.3507,1.37884,1.41448,1.46659,1.50719,1.52887,0.00171325,0.001856,0.002008,0.0021735,0.0023525,0.002548,0.00276,0.0030125,0.0033055,0.00360475,0.00214375,0.00236525,0.00260775,0.00286725,0.00314375,0.0034575,0.0038085,0.0041975,0.0046245,0.0050805,0.00151441,0.00160092,0.00178486,0.00202334,0.00231634,0.00265319,0.0030339,0.00346877,0.00395782,0.0047951,0.00618408,0.00788763,0.00941084 +31.365,72.3,0.692,0.694999998,1.00218,0.964348,0.929916,0.897819,0.868056,0.840774,0.815973,0.79516,0.778338,0.760552,1.32694,1.30316,1.28071,1.25993,1.24083,1.22128,1.20128,1.18154,1.16206,1.14418,1.18346,1.20058,1.22235,1.24554,1.27018,1.29664,1.32492,1.35203,1.37795,1.41704,1.46283,1.48958,1.50471,0.00172425,0.00185375,0.00199525,0.00215025,0.00231875,0.0025075,0.0027165,0.0029605,0.0032395,0.00354,0.00215275,0.00235825,0.00258275,0.00283,0.0031,0.00339325,0.00370975,0.00406375,0.00445525,0.004892,0.00162287,0.0017057,0.00189339,0.0021317,0.00242065,0.00275872,0.00314592,0.00358375,0.00407223,0.00493759,0.0063239,0.00800652,0.00953556 +29.305,97.5,0.732,0.605000126,0.915688,0.871781,0.832916,0.797759,0.76631,0.738013,0.712867,0.689244,0.667143,0.648419,1.20464,1.16136,1.12108,1.08362,1.04899,1.0168,0.987073,0.95813,0.929976,0.902373,1.18103,1.20273,1.22669,1.25103,1.27574,1.2975,1.31631,1.33263,1.34645,1.36392,1.38138,1.39214,1.39149,0.00149625,0.0015765,0.0016655,0.00176425,0.00187275,0.0019955,0.0021325,0.00228175,0.00244325,0.00263175,0.00185225,0.0019695,0.0020945,0.002231,0.002379,0.0025405,0.0027155,0.0029055,0.0031105,0.00333175,0.00161798,0.00170022,0.00187747,0.00209629,0.00235667,0.00264665,0.00296624,0.00331676,0.00369823,0.0043493,0.00536537,0.00659454,0.00764712 +28.481,52.5,0.9,1.014999551,1.03239,1.00137,0.973458,0.9484,0.926198,0.906989,0.89077,0.876285,0.863532,0.850213,1.37116,1.3592,1.35076,1.34207,1.33313,1.32693,1.32346,1.31824,1.31127,1.30525,1.18414,1.19835,1.21653,1.24092,1.27152,1.30082,1.32883,1.35797,1.38824,1.42765,1.47468,1.51158,1.53544,0.001713,0.0018645,0.0020295,0.002213,0.002415,0.00264275,0.00289625,0.00318175,0.00349925,0.00384975,0.0021575,0.0023985,0.0026675,0.00296025,0.00327675,0.003636,0.004038,0.0044805,0.0049635,0.00550475,0.00150973,0.00159225,0.00177447,0.00201542,0.00231509,0.00265982,0.00304959,0.00349608,0.00399929,0.00486526,0.00625286,0.00796472,0.0095203 +29.511,39.9,0.876,1.054999763,1.07197,1.04404,1.01881,0.996309,0.976542,0.95904,0.943802,0.929423,0.915905,0.903993,1.42109,1.41777,1.41702,1.41523,1.4124,1.41387,1.41964,1.42741,1.43717,1.44469,1.18235,1.19648,1.21556,1.2386,1.2656,1.29486,1.32636,1.35856,1.39147,1.43379,1.48958,1.55283,1.59833,0.00177375,0.00194225,0.00212675,0.00233175,0.00255725,0.0028125,0.0030975,0.00341225,0.00375675,0.00415125,0.0022535,0.00252575,0.00282925,0.00316375,0.00352925,0.0039485,0.0044215,0.0049655,0.0055805,0.0062645,0.00150118,0.00158289,0.00176618,0.00200519,0.00229991,0.00264822,0.0030501,0.00351119,0.00403149,0.00492971,0.00640366,0.00833495,0.0101125 +34.455,110.1,0.924,0.944999979,0.990684,0.96004,0.933675,0.909954,0.888876,0.869645,0.852262,0.837569,0.825567,0.813187,1.32312,1.30955,1.29881,1.29046,1.28449,1.27727,1.26879,1.26178,1.25624,1.2509,1.18012,1.19925,1.22136,1.24733,1.27716,1.30684,1.33635,1.36462,1.39165,1.43209,1.47903,1.51424,1.53848,0.00164325,0.00178025,0.00193075,0.0020975,0.0022805,0.00248375,0.00270725,0.002963,0.003251,0.0035655,0.0020845,0.00230275,0.00254425,0.00281325,0.00310975,0.00343575,0.00379125,0.00418475,0.00461625,0.005109,0.00152831,0.00161865,0.00180814,0.00205033,0.00234523,0.00268458,0.00306838,0.00349876,0.00397571,0.00481281,0.00614197,0.0077635,0.00923608 +34.043,50.7,0.644,0.81499989,1.10772,1.08116,1.05423,1.03135,1.01249,0.99311,0.973197,0.956625,0.943395,0.927993,1.46048,1.4625,1.46645,1.47171,1.47826,1.48303,1.48602,1.49102,1.49801,1.50417,1.17723,1.19001,1.20708,1.23,1.25877,1.28843,1.31899,1.35343,1.39175,1.44396,1.51065,1.57356,1.62141,0.0018765,0.0020575,0.0022545,0.00248025,0.00273475,0.00301875,0.00333225,0.00369475,0.00410625,0.00456275,0.00242925,0.00273325,0.00307575,0.00346925,0.00391375,0.004411,0.004961,0.00559725,0.00631975,0.0071395,0.00159872,0.00167436,0.00185024,0.00208632,0.00238259,0.00273397,0.00314044,0.00362322,0.0041823,0.00517889,0.00684787,0.00903062,0.0111141 +26.215,102.9,0.78,0.844999979,0.897285,0.863974,0.836752,0.81252,0.791278,0.772002,0.754691,0.739764,0.727218,0.716435,1.16868,1.14156,1.11812,1.09904,1.08433,1.07096,1.05894,1.0473,1.03605,1.02734,1.17248,1.19135,1.21118,1.23338,1.25796,1.28122,1.30318,1.32165,1.33662,1.36185,1.39547,1.42031,1.43405,0.00152575,0.00163875,0.00176825,0.00191325,0.00207375,0.002254,0.002454,0.0026825,0.0029395,0.003235,0.00186625,0.0020285,0.0022095,0.002415,0.002645,0.0029025,0.0031875,0.00350575,0.00385725,0.00426,0.00160269,0.00168615,0.00186715,0.00209793,0.00237852,0.00269658,0.00305213,0.00344609,0.00387846,0.0046449,0.00588652,0.00742075,0.00880391 +27.863,81.3,0.684,0.67499999,0.935704,0.895263,0.860392,0.828773,0.800406,0.77565,0.754507,0.733421,0.712393,0.696175,1.2255,1.19174,1.16223,1.13578,1.11239,1.08962,1.06747,1.04598,1.02517,1.00707,1.18134,1.19927,1.22091,1.24292,1.26529,1.28783,1.31055,1.33174,1.35141,1.38062,1.41,1.43289,1.44659,0.00161225,0.00171975,0.00184125,0.00197625,0.00212475,0.00229625,0.00249075,0.00270075,0.00292625,0.00320125,0.00198625,0.00214825,0.00232675,0.00252575,0.00274525,0.002988,0.003254,0.0035435,0.0038565,0.0042145,0.00165523,0.00173608,0.00192051,0.00215152,0.00242909,0.00274988,0.00311388,0.00352215,0.0039747,0.00477063,0.00602912,0.00759797,0.00900774 +27.039,93.9,0.66,0.984999914,0.970407,0.940277,0.916194,0.894327,0.874673,0.857249,0.842055,0.827939,0.814902,0.805633,1.25397,1.24088,1.23479,1.23179,1.23187,1.23237,1.23328,1.23488,1.23716,1.24453,1.16826,1.18234,1.20118,1.22124,1.24253,1.26643,1.29295,1.32024,1.34829,1.39337,1.45146,1.50515,1.54492,0.001699,0.0018465,0.0020155,0.00220775,0.00242325,0.00266825,0.00294275,0.00325475,0.00360425,0.0040205,0.002089,0.00231675,0.00258025,0.002883,0.003225,0.00361275,0.00404625,0.00454375,0.00510525,0.00577975,0.00164354,0.00171613,0.00189519,0.0021259,0.00240827,0.00274519,0.00313668,0.0035893,0.00410304,0.00504336,0.00660103,0.00862816,0.0105479 +33.013,101.1,0.852,1.065000245,1.0109,0.983213,0.960695,0.94098,0.924067,0.910037,0.898889,0.889082,0.880617,0.872387,1.33896,1.33317,1.33173,1.33277,1.33627,1.34146,1.34834,1.35429,1.35933,1.36636,1.17469,1.19232,1.21553,1.23968,1.26477,1.29331,1.3253,1.35645,1.38675,1.43162,1.48728,1.53358,1.5664,0.0017045,0.0018585,0.0020315,0.002225,0.002439,0.00268175,0.00295325,0.00326125,0.00360575,0.00398925,0.0021415,0.00238725,0.00266375,0.002978,0.00333,0.00372825,0.00417275,0.0046685,0.0052155,0.00585125,0.00154136,0.00162633,0.00181618,0.00205674,0.00234802,0.00269283,0.00309119,0.00354277,0.0040476,0.0049417,0.00638282,0.00817651,0.00982853 +31.571,38.1,0.764,0.754999993,1.06613,1.03002,0.995255,0.961843,0.929783,0.901983,0.878441,0.854928,0.831441,0.81065,1.41838,1.4001,1.38116,1.36303,1.3457,1.32594,1.30374,1.28389,1.26639,1.24972,1.18682,1.20255,1.22339,1.24719,1.27395,1.30194,1.33117,1.36002,1.38849,1.43299,1.47737,1.51289,1.54189,0.00178275,0.00193025,0.00208875,0.00225825,0.00243875,0.002646,0.00288,0.0031335,0.0034065,0.00371575,0.00224775,0.0024825,0.0027355,0.003013,0.003315,0.00363675,0.00397825,0.00436325,0.00479175,0.0052745,0.00154537,0.00162957,0.00181523,0.00205415,0.00234631,0.00268768,0.00307825,0.00352279,0.0040213,0.00490967,0.00629291,0.00802616,0.00963066 +30.953,70.5,0.652,1.075000262,1.07979,1.05635,1.03618,1.01648,0.997264,0.98051,0.966221,0.953969,0.943755,0.934708,1.40813,1.41366,1.42187,1.43279,1.44642,1.46281,1.48196,1.50244,1.52424,1.54021,1.17208,1.18334,1.19985,1.21947,1.24221,1.27062,1.3047,1.33874,1.37272,1.43056,1.51329,1.59533,1.64795,0.0018435,0.00203025,0.00224075,0.0024755,0.0027345,0.0030315,0.0033665,0.0037555,0.0041985,0.004707,0.002311,0.002612,0.002954,0.00335025,0.00380075,0.00433125,0.00494175,0.00565125,0.00645975,0.007366,0.00157791,0.00165038,0.0018247,0.00205369,0.00233734,0.00268595,0.00309952,0.00358004,0.00412751,0.00515112,0.00691187,0.00927138,0.0114633 +34.661,68.7,0.844,0.934999645,1.06687,1.03851,1.01148,0.987597,0.966865,0.946295,0.92589,0.908161,0.893107,0.880923,1.4297,1.42739,1.42547,1.42306,1.42017,1.41847,1.41794,1.4175,1.41714,1.41942,1.18278,1.19952,1.22079,1.24606,1.27533,1.30691,1.34079,1.37515,1.40999,1.45533,1.51573,1.57412,1.61147,0.00178675,0.001952,0.00213,0.00232925,0.00254975,0.0027885,0.0030455,0.0033405,0.0036735,0.00405375,0.002277,0.00254925,0.00284775,0.0031785,0.0035415,0.0039485,0.0043995,0.00490375,0.00546125,0.006108,0.0015204,0.00160748,0.00179583,0.00204085,0.00234253,0.00269863,0.00310917,0.00357819,0.00410571,0.00502044,0.00652048,0.00843206,0.0101689 +26.627,88.5,0.676,0.714999978,0.917462,0.880085,0.846724,0.818363,0.795001,0.77108,0.746599,0.727724,0.714455,0.700722,1.19218,1.16246,1.13701,1.11386,1.09299,1.07353,1.05547,1.04094,1.02995,1.01652,1.17842,1.19587,1.21499,1.23569,1.25798,1.27946,1.30013,1.32147,1.34349,1.36825,1.40349,1.43615,1.45078,0.001596,0.0017075,0.0018305,0.0019735,0.0021365,0.002312,0.0025,0.0027265,0.0029915,0.003284,0.00195025,0.002116,0.0023,0.00250575,0.00273325,0.0029865,0.0032655,0.0035875,0.0039525,0.004351,0.0016703,0.00174897,0.00192898,0.00215774,0.00243524,0.0027551,0.00311733,0.00352967,0.00399214,0.00478204,0.00609215,0.00774999,0.00922696 +30.335,115.5,0.62,1.044999534,0.983645,0.955245,0.930963,0.909817,0.891806,0.875916,0.862147,0.850953,0.842334,0.833427,1.27088,1.26232,1.25959,1.25995,1.26339,1.26897,1.27669,1.28514,1.29431,1.3062,1.16722,1.17833,1.19408,1.21444,1.23939,1.26548,1.29268,1.32206,1.35361,1.40122,1.46516,1.52361,1.56756,0.00173225,0.00188725,0.00206175,0.0022635,0.0024925,0.0027555,0.0030525,0.00340225,0.00380475,0.00426,0.00213725,0.002381,0.002663,0.0029895,0.0033605,0.0037895,0.0042765,0.0048465,0.0054995,0.00626675,0.00166331,0.00172954,0.00190139,0.00213157,0.00242007,0.00276249,0.00315882,0.00362372,0.00415718,0.00512932,0.00676876,0.00893146,0.011014 +28.893,119.1,0.988,0.735000253,0.893324,0.850249,0.813204,0.777651,0.743587,0.713735,0.688094,0.662889,0.638122,0.615241,1.16409,1.12337,1.08557,1.05027,1.01746,0.984557,0.951559,0.918478,0.885315,0.857534,1.1672,1.19021,1.21495,1.23837,1.26048,1.28235,1.30399,1.32167,1.3354,1.36004,1.38126,1.38652,1.39411,0.001372,0.0014425,0.0015215,0.00160475,0.00169225,0.0017925,0.0019055,0.00202525,0.00215175,0.002292,0.001667,0.00177,0.00188,0.001998,0.002124,0.00225525,0.00239175,0.00253375,0.00268125,0.00285525,0.00147622,0.00156739,0.00174143,0.00194738,0.00218523,0.00245292,0.00275044,0.00307164,0.00341653,0.00402487,0.00494414,0.00601287,0.00698649 +30.129,83.1,0.748,0.645000084,0.956119,0.912382,0.87198,0.835878,0.804079,0.774989,0.74861,0.723229,0.698846,0.677756,1.26425,1.22461,1.18471,1.15009,1.12073,1.09182,1.06335,1.03554,1.00839,0.981991,1.18697,1.20731,1.22952,1.2527,1.27684,1.30032,1.32312,1.34275,1.35922,1.38538,1.41492,1.43767,1.44889,0.00159125,0.001687,0.001789,0.001904,0.002032,0.00217225,0.00232475,0.0024915,0.0026725,0.00288225,0.001971,0.00211525,0.00226575,0.00243475,0.00262225,0.002823,0.003037,0.00327,0.003522,0.003793,0.00160591,0.00169184,0.00187416,0.00210135,0.00237342,0.00268309,0.00303038,0.00341171,0.00382708,0.0045571,0.00570072,0.00710469,0.00834172 +31.777,92.1,0.828,1.035000114,1.01234,0.985333,0.96149,0.941373,0.924983,0.907882,0.890072,0.877653,0.870626,0.864797,1.33774,1.33056,1.32889,1.32715,1.32533,1.33002,1.34121,1.34669,1.34646,1.34966,1.17491,1.19261,1.21443,1.23973,1.26851,1.29594,1.32202,1.35094,1.38271,1.42161,1.48654,1.54056,1.56074,0.00171425,0.00187,0.002042,0.00223675,0.00245425,0.00269,0.002944,0.00324775,0.00360125,0.00400275,0.00214975,0.00239575,0.00267525,0.00298425,0.00332275,0.0037235,0.0041865,0.00468525,0.00521975,0.0058395,0.00154936,0.00163473,0.00182285,0.00206668,0.00236623,0.00270941,0.00309621,0.00354575,0.00405802,0.00493282,0.00643339,0.00828926,0.00989812 +35.485,57.9,0.916,1.084999917,1.09995,1.07566,1.05306,1.03345,1.01682,1.0037,0.994088,0.981833,0.966931,0.956302,1.47387,1.48086,1.48957,1.49826,1.50692,1.5175,1.53001,1.54223,1.55416,1.56691,1.17958,1.1961,1.21843,1.24398,1.27275,1.30495,1.34057,1.3773,1.41512,1.46627,1.5257,1.58946,1.63863,0.00180525,0.0019865,0.0021835,0.00240325,0.00264575,0.00292475,0.00324025,0.00357575,0.00393125,0.0043505,0.00230925,0.00261,0.002946,0.00332,0.003732,0.0042025,0.0047315,0.00532725,0.00598975,0.0067455,0.00147506,0.00155976,0.00174608,0.00198726,0.0022833,0.00263798,0.00305132,0.00352754,0.00406665,0.00500321,0.00650779,0.00846566,0.0102767 +26.421,54.3,0.788,0.784999998,0.978739,0.939434,0.902539,0.870067,0.84202,0.81526,0.789786,0.76862,0.751763,0.733198,1.28854,1.25794,1.22844,1.2021,1.17891,1.15711,1.13672,1.11838,1.1021,1.08347,1.18666,1.20227,1.22238,1.2451,1.27042,1.29448,1.31726,1.33969,1.36178,1.39131,1.42977,1.46072,1.47799,0.00165525,0.00177625,0.00190475,0.00205,0.002212,0.0023905,0.0025855,0.00281,0.003064,0.003337,0.0020525,0.002235,0.002431,0.00264825,0.00288675,0.00315125,0.00344175,0.0037635,0.0041165,0.004499,0.00157324,0.00165785,0.00184464,0.00208265,0.00237189,0.00270195,0.00307282,0.00349044,0.00395481,0.00475916,0.0060703,0.00768447,0.00913155 +29.717,32.7,0.708,0.634999908,1.04298,0.998871,0.956263,0.916092,0.878359,0.843323,0.810982,0.781669,0.755383,0.729026,1.37883,1.34638,1.31373,1.27917,1.24268,1.20612,1.16947,1.13735,1.10976,1.07884,1.18834,1.20439,1.22522,1.24777,1.27204,1.29707,1.32286,1.34873,1.37469,1.40614,1.43647,1.46244,1.48002,0.00173875,0.00185875,0.00198425,0.00212025,0.00226675,0.002427,0.002601,0.0027975,0.0030165,0.00324925,0.002167,0.002357,0.002557,0.00276725,0.00298775,0.00322075,0.00346625,0.00374125,0.00404575,0.00436325,0.00158059,0.00166113,0.00184234,0.0020718,0.00234949,0.00267342,0.0030436,0.00346154,0.00392725,0.00472746,0.0059784,0.00753397,0.00893714 +34.867,61.5,0.628,0.794999967,1.10063,1.07335,1.04852,1.0241,1.0001,0.980454,0.96517,0.947649,0.92789,0.912034,1.45198,1.45294,1.45591,1.45964,1.46413,1.46897,1.47417,1.47923,1.48414,1.48845,1.17741,1.19193,1.2115,1.23327,1.25723,1.28611,1.31991,1.35426,1.38916,1.44532,1.51315,1.58082,1.63227,0.0018785,0.0020575,0.0022565,0.002478,0.002722,0.0030065,0.0033315,0.0036845,0.0040655,0.0045165,0.00236975,0.00266375,0.00299525,0.00337425,0.00380075,0.0042865,0.0048315,0.00544925,0.00613975,0.0069265,0.00159775,0.00167529,0.00185345,0.00208477,0.00236923,0.00271669,0.00312715,0.00360434,0.00414823,0.00515747,0.00682307,0.00902998,0.0111152 +29.099,90.3,0.636,0.885000359,0.993097,0.962398,0.935508,0.91128,0.889714,0.869999,0.852136,0.839062,0.830774,0.820539,1.29573,1.28367,1.27576,1.268,1.2604,1.2556,1.25361,1.25428,1.25763,1.2637,1.17241,1.18458,1.20167,1.22349,1.25006,1.27739,1.30546,1.33445,1.36435,1.4045,1.45761,1.50447,1.54047,0.00174475,0.00189675,0.00206825,0.00226175,0.00247725,0.002723,0.002999,0.00332925,0.00371375,0.0041385,0.00216925,0.0024075,0.0026765,0.00297925,0.00331575,0.00370325,0.00414175,0.0046575,0.0052505,0.0059405,0.00165355,0.00172481,0.00190221,0.00213818,0.00243271,0.00277989,0.00317973,0.00364368,0.00417174,0.00510723,0.00667395,0.00870514,0.0106484 +33.219,108.3,0.772,0.724999978,0.956354,0.92135,0.890873,0.860411,0.829965,0.805773,0.787837,0.769456,0.750632,0.735227,1.2713,1.2443,1.2217,1.20059,1.18099,1.16168,1.14266,1.12438,1.10684,1.09205,1.1781,1.19934,1.22369,1.25142,1.28252,1.30871,1.32998,1.35103,1.37188,1.4099,1.44618,1.46815,1.48542,0.00161275,0.00172975,0.00185925,0.00199575,0.00213925,0.00230975,0.00250725,0.0027205,0.0029495,0.00321875,0.00201525,0.0021925,0.0023895,0.002605,0.002839,0.00309375,0.00336925,0.003674,0.004008,0.00438625,0.00159408,0.0016845,0.00187421,0.00211569,0.00240894,0.00273363,0.00308974,0.00349064,0.00393631,0.00474327,0.00597919,0.00747564,0.00883957 +27.245,48.9,0.956,0.744999875,0.975936,0.919364,0.866417,0.817485,0.77257,0.729435,0.68808,0.650834,0.617698,0.586692,1.29326,1.23653,1.17867,1.12317,1.07003,1.01645,0.96243,0.912074,0.865378,0.822492,1.20316,1.2205,1.24091,1.26113,1.28116,1.30286,1.32623,1.34565,1.36111,1.37995,1.39632,1.40117,1.40201,0.0015565,0.001634,0.001714,0.00179875,0.00188825,0.00197875,0.00207025,0.00217675,0.00229825,0.00242825,0.00192775,0.0020435,0.0021565,0.00227375,0.00239525,0.00251175,0.00262325,0.00274625,0.00288075,0.00302825,0.0015124,0.00160227,0.00178456,0.00200635,0.00226761,0.00256912,0.00291088,0.00328319,0.00368605,0.0043712,0.0054216,0.00667743,0.00779843 +35.897,65.1,0.74,0.775000018,1.07392,1.04393,1.01656,0.989526,0.962825,0.938231,0.915744,0.894589,0.874769,0.857622,1.43712,1.42915,1.42216,1.41728,1.41451,1.40929,1.40163,1.39089,1.37706,1.36816,1.18194,1.19963,1.22355,1.24959,1.27776,1.30753,1.33891,1.3696,1.3996,1.45146,1.51685,1.56482,1.59558,0.00181925,0.001983,0.002163,0.002356,0.002562,0.00279325,0.00304975,0.003333,0.003643,0.0040005,0.0023115,0.0025755,0.0028665,0.0031945,0.0035595,0.00395625,0.00438475,0.0048515,0.0053565,0.00594625,0.00156083,0.00164763,0.00183921,0.00208442,0.00238327,0.0027346,0.00313841,0.00359838,0.00411452,0.00505785,0.00659095,0.00847501,0.0101951 +35.279,74.1,0.724,0.655000038,1.04023,1.00123,0.964158,0.931051,0.901914,0.873386,0.845468,0.820295,0.797868,0.775029,1.39168,1.37099,1.34935,1.32595,1.3008,1.27668,1.25359,1.23115,1.20934,1.18524,1.18568,1.20479,1.22819,1.25246,1.27759,1.30638,1.33881,1.37014,1.40038,1.43363,1.47275,1.5086,1.52955,0.00175025,0.0018795,0.0020165,0.00216875,0.00233625,0.0025175,0.0027125,0.00292975,0.00316925,0.00343125,0.0022085,0.00242275,0.00265225,0.002895,0.003151,0.0034305,0.0037335,0.004068,0.004434,0.0048205,0.00158918,0.0016763,0.0018652,0.00210112,0.00238406,0.00272002,0.00310899,0.00354716,0.00403453,0.00484703,0.00614708,0.00776983,0.00922241 +34.249,104.7,0.812,1.00499978,1.01263,0.986166,0.963744,0.942858,0.92351,0.90828,0.897169,0.888313,0.881711,0.872734,1.34606,1.33997,1.33827,1.33821,1.33977,1.34444,1.35224,1.35806,1.36189,1.36573,1.17381,1.19206,1.21559,1.24217,1.27182,1.30106,1.32992,1.35927,1.38914,1.43551,1.49397,1.53679,1.56514,0.0017235,0.00188125,0.00205575,0.002249,0.002461,0.0027045,0.0029795,0.0032975,0.0036585,0.00404825,0.00217125,0.00242075,0.00270225,0.003018,0.003368,0.00377175,0.00422925,0.004737,0.005295,0.005925,0.00155669,0.00164344,0.00183563,0.00208209,0.00238283,0.0027318,0.003129,0.00358217,0.00409132,0.00500189,0.00647835,0.0082945,0.0099594 +28.687,113.7,0.836,0.924999856,0.918773,0.887821,0.862103,0.840172,0.822028,0.804911,0.788821,0.776059,0.766625,0.755581,1.20186,1.18047,1.16392,1.1498,1.1381,1.12859,1.12126,1.11707,1.11604,1.1128,1.17008,1.18949,1.2118,1.23611,1.26243,1.28665,1.30877,1.33007,1.35055,1.37678,1.41207,1.44775,1.47299,0.001546,0.0016675,0.0018045,0.0019595,0.0021325,0.0023235,0.0025325,0.0027755,0.0030525,0.00335575,0.00190325,0.00208225,0.00228275,0.00250775,0.00275725,0.003039,0.003353,0.003716,0.004128,0.00457775,0.00156896,0.00165452,0.00183913,0.00207312,0.0023565,0.00267725,0.00303538,0.003438,0.00388511,0.00465336,0.00589982,0.00748285,0.00893513 +27.451,99.3,0.804,0.805,0.910763,0.874111,0.842871,0.816473,0.794917,0.775205,0.757338,0.739644,0.722121,0.708471,1.19223,1.16354,1.13759,1.11537,1.09686,1.08011,1.0651,1.04897,1.03172,1.01802,1.17603,1.19609,1.21951,1.24158,1.2623,1.28507,1.30991,1.33161,1.35018,1.37324,1.40007,1.42366,1.43698,0.0015355,0.00164375,0.00176525,0.0019035,0.0020585,0.002233,0.002427,0.00264025,0.00287275,0.00314375,0.00188675,0.00204725,0.00222175,0.00241925,0.00263975,0.00288425,0.00315275,0.00344625,0.00376475,0.0041285,0.00158798,0.00167566,0.00186276,0.00209193,0.00236316,0.00267984,0.00304197,0.00344182,0.0038794,0.00462662,0.00581799,0.00731384,0.00864988 +33.837,36.3,0.868,0.764999889,1.0861,1.0482,1.01214,0.976858,0.942355,0.90838,0.874935,0.842208,0.8102,0.782814,1.45938,1.4372,1.41304,1.38729,1.35995,1.33158,1.30218,1.27095,1.23791,1.20365,1.19046,1.20829,1.23043,1.25619,1.28555,1.31499,1.34449,1.37175,1.39676,1.43227,1.47773,1.51904,1.53758,0.001768,0.00191075,0.00206225,0.002223,0.002393,0.0025715,0.0027585,0.00295875,0.00317225,0.00341825,0.00224375,0.00246925,0.00270975,0.002964,0.003232,0.003515,0.003813,0.004128,0.00446,0.004811,0.00149601,0.00158544,0.001771,0.00200992,0.00230218,0.00263958,0.00302212,0.00344957,0.00392195,0.00474526,0.0060635,0.00770556,0.00912415 +32.807,117.3,0.668,0.825000153,0.960685,0.929625,0.902121,0.878224,0.857937,0.839758,0.823686,0.809112,0.796033,0.785657,1.26558,1.2502,1.23793,1.22717,1.21792,1.21067,1.20542,1.2013,1.19832,1.19791,1.1721,1.18911,1.21244,1.23738,1.26394,1.29085,1.31811,1.34545,1.37287,1.40885,1.45288,1.49529,1.52485,0.00169025,0.001828,0.00198,0.00215525,0.00235375,0.00257825,0.00282875,0.003117,0.003443,0.0038185,0.002105,0.00232225,0.00256475,0.002837,0.003139,0.0034835,0.0038705,0.00431175,0.00480725,0.00538375,0.00166202,0.00174118,0.00193054,0.00217195,0.00246541,0.00280912,0.00320308,0.0036523,0.0041568,0.00504203,0.00648949,0.00836735,0.010109 +30.541,47.1,0.796,0.955000011,1.06639,1.03766,1.01262,0.988706,0.965923,0.94695,0.931787,0.917212,0.903225,0.888885,1.4125,1.40802,1.40725,1.40688,1.4069,1.40504,1.4013,1.40148,1.4056,1.41014,1.18002,1.19505,1.21616,1.23949,1.26503,1.29363,1.32528,1.35751,1.39032,1.44033,1.49406,1.54242,1.58681,0.001792,0.00196025,0.00214675,0.0023505,0.0025715,0.002825,0.003111,0.00343175,0.00378725,0.00417775,0.00227475,0.00254675,0.00285225,0.0031945,0.0035735,0.00398875,0.00444025,0.004962,0.005554,0.0062345,0.00153274,0.00161601,0.00180334,0.00204427,0.00233881,0.00268922,0.00309549,0.00356242,0.00409001,0.00503577,0.00653008,0.00843803,0.0102645 +32.189,84.9,0.932,0.835000291,0.995785,0.958093,0.924415,0.893143,0.864275,0.838154,0.814777,0.79166,0.768803,0.746787,1.32468,1.29902,1.27789,1.25562,1.23222,1.20951,1.18749,1.16446,1.14043,1.11673,1.18852,1.20822,1.23244,1.25702,1.28196,1.30663,1.33105,1.35654,1.3831,1.41628,1.45056,1.47742,1.49563,0.00163075,0.001752,0.001884,0.002028,0.002184,0.00235525,0.00254175,0.0027455,0.0029665,0.00320675,0.00204125,0.00223,0.002438,0.002661,0.002899,0.00315475,0.00342825,0.00372425,0.00404275,0.00439,0.00151777,0.00161049,0.00180176,0.00203854,0.00232086,0.00264304,0.0030051,0.00341571,0.00387485,0.00466104,0.00588025,0.00737695,0.0087308 +32.601,34.5,0.948,0.965000009,1.09462,1.06375,1.03432,1.00573,0.977984,0.952835,0.930285,0.908338,0.886993,0.867714,1.46065,1.45306,1.44753,1.43947,1.42887,1.4197,1.41194,1.40257,1.39158,1.37972,1.18784,1.20364,1.22371,1.24792,1.27627,1.30532,1.33505,1.36668,1.40022,1.44678,1.50436,1.55693,1.59031,0.001779,0.00194275,0.00211825,0.002307,0.002509,0.00273475,0.00298425,0.003257,0.003553,0.0038865,0.0022535,0.002518,0.002812,0.00312775,0.00346525,0.00384125,0.00425575,0.0047115,0.0052085,0.005751,0.00146867,0.00155384,0.00173641,0.00197448,0.00226806,0.00261054,0.00300192,0.00345359,0.00396553,0.00485784,0.00629849,0.00811763,0.00975208 +33.425,106.5,0.892,0.684999897,0.976449,0.93286,0.892331,0.855684,0.822918,0.792691,0.765001,0.739283,0.715539,0.691747,1.29326,1.25859,1.22585,1.1914,1.15523,1.12247,1.09311,1.06187,1.02875,0.996137,1.18384,1.20432,1.22706,1.25091,1.27588,1.30069,1.32534,1.34997,1.3746,1.39842,1.42281,1.43707,1.44012,0.00154,0.001627,0.001719,0.0018205,0.0019315,0.0020525,0.0021835,0.00232825,0.00248675,0.00265425,0.00190825,0.002047,0.002195,0.0023465,0.0025015,0.00267175,0.00285725,0.0030465,0.0032395,0.00344575,0.00152873,0.00161739,0.00179422,0.00201024,0.00226544,0.00255341,0.00287415,0.00323274,0.00362919,0.00427432,0.00527185,0.00644644,0.00746019 +25.803,45.3,0.82,0.66500009,0.96154,0.90709,0.855365,0.809034,0.768097,0.729528,0.693325,0.659993,0.62953,0.600347,1.26265,1.20932,1.15833,1.10654,1.05396,1.00435,0.957731,0.914714,0.875304,0.837836,1.19915,1.21598,1.2357,1.25551,1.27542,1.29492,1.31401,1.33409,1.35514,1.37012,1.37922,1.38834,1.3958,0.00156225,0.00163925,0.00171775,0.00180625,0.00190475,0.0020075,0.0021145,0.00223325,0.00236375,0.002506,0.0019185,0.00203675,0.00216025,0.002281,0.002399,0.00252425,0.00265675,0.00280175,0.00295925,0.00313075,0.00156087,0.00164604,0.00182556,0.00204639,0.00230852,0.00260565,0.00293777,0.00331349,0.00373282,0.00440617,0.00543518,0.00670119,0.0078516 +29.923,77.7,0.94,0.625000083,1.01788,0.95503,0.894595,0.838108,0.78557,0.735579,0.688137,0.644446,0.604505,0.567963,1.33811,1.26851,1.19497,1.12898,1.07054,1.00563,0.93426,0.870479,0.814287,0.764954,1.20309,1.22108,1.23856,1.25735,1.27745,1.29683,1.3155,1.3286,1.33615,1.35567,1.36192,1.34871,1.34701,0.001804,0.0018585,0.0019135,0.00196975,0.00202725,0.00208475,0.00214225,0.002206,0.002276,0.00235325,0.006264,0.00648925,0.00668175,0.00689975,0.00714325,0.0073285,0.0074555,0.00760325,0.00777175,0.00799175,0.00385201,0.00403879,0.00441147,0.00485582,0.00537186,0.00595744,0.00661257,0.00730483,0.00803423,0.00933115,0.0112061,0.0133012,0.0152031 +26.833,75.9,0.756,1.025000455,0.99508,0.966113,0.94071,0.918474,0.899405,0.8834,0.870459,0.856826,0.842501,0.831109,1.29794,1.28535,1.27528,1.2698,1.2689,1.26929,1.27096,1.27741,1.28867,1.29743,1.174,1.18734,1.20462,1.22622,1.25213,1.27839,1.30501,1.33093,1.35617,1.39711,1.44872,1.51071,1.56127,0.0017075,0.00185925,0.00202775,0.002218,0.00243,0.0026735,0.0029485,0.003252,0.003584,0.00397025,0.0021165,0.002347,0.002603,0.0029,0.003238,0.0036215,0.0040505,0.004552,0.005126,0.00577825,0.00158331,0.00165991,0.00184034,0.00207689,0.00236958,0.0027106,0.00309996,0.00354233,0.0040377,0.00493378,0.00639704,0.00835915,0.0102139 diff --git a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb index 83f02c822..65d545754 100644 --- a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb +++ b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb @@ -110,11 +110,40 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2nd degree coefficients:\n", + "zero power: -0.3090858919549202\n", + "first power: -0.1298002363613854\n", + "second power: 0.00031963239522431414\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEWCAYAAABBvWFzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzsnXd4FOX2xz8nIZAEkqUTIGyo0kNvAgpS5aJ0FANSBEREBNGrYAEblh9cqYooqCgq7VKuogJKL0oVkQ4mm0AIoaSRnry/P2Z32SSbAqQR3s/zzLO7M++8c2Z2d77zlnOOKKXQaDQajeZOcSloAzQajUZTNNCCotFoNJpcQQuKRqPRaHIFLSgajUajyRW0oGg0Go0mV9CCotFoNJpcQQuK5q5DRGaIyDcFbYcjIhIgIptyWLbQ2Z+biMjfItKpoO3Q5D9aUDQFhogEikiciMSISJiIfCkipQrarttBKbVcKdX9TusRkU4ikmq9JtEickpERuaGjfmFUqqhUmpbQduhyX+0oGgKmkeUUqWA5kBL4LUCtqcwcNF6TbyBycBnIlI3tw8iIsVyu07NvY0WFE2hQCl1AfgJaAQgIlVEZIOIXBORsyIyxtl+IvKjiDyXbt1REelnfa9EZJyInBGRCBFZKCJi3eYiIq+JSJCIXBaRZSJism6rbt13pIgEi8h1az2trPVHiMgCh2OOEJFdDp/nWveLEpGDItLxNq6JUkptBK4B/g511xORzdZrc0pEBjtsKyci/7Med7+IvJPOLiUiz4rIGeBMDurrJSLHra2lCyLyonV9eRH5wXodronIThFxsW4LFJGu1vclRGSOiFy0LnNEpIR1WycRCRGRKdbrH3q3tcY0adGCoikUiEg1oBdw2LrqeyAEqAIMBGaKyENOdv0KGOpQTxOgKvCjQ5neQCuMm/JgoId1/Qjr0hmoCZQCFpCWNkAd4DFgDvAq0BVoCAwWkQczOaX9QFOgLPAtsEpE3DMp6xSr4D0KlAfOWteVBDZb66wIPA58LCINrLstBG4APsBw65KevtbzapCD+pYATyulvDDE/jfr+ikY308FoBIwDXAWx+lVoK31WjQBWpO2FeoDmDC+s6eAhSJSJgeXR1MYUUrpRS8FsgCBQAwQAQQBHwMeQDUgBfByKPse8KX1/QzgG+t7d+A6UMf6eRbwscN+Cujg8Hkl8Ir1/a/AeIdtdYEkoBhQ3bpvVYftV4HHHD6vASZZ348AdmVxrteBJuntd1KuE5BqvSYJ1uswyWH7Y8DOdPt8CkwHXK3213XY9o6jXdZzeign9VnfW4CnAe90Zd4C1gO1M/leu1rfnwN6OWzrAQQ6nGscUMxh+2WgbUH/NvVye4tuoWgKmr5KqdJKKT+l1HilVBxGq+SaUiraoVwQxlNsGpRS8cAKYKi1y2UI8HW6Ypcc3sditESwHico3TGKYTxx2whzeB/n5LPTSQQi8qKInBCRSBGJwHgKL++srBMuKqVKY4yhzAMcW2Z+QBtrV1OEte4AjCf9Clb7gx3KO753ti6r+gAGYLQcg0Rku4i0s67/P4xW0yYROS8ir2RyLs6ucRWHz1eVUskOnx2/H81dhhYUTWHkIlBWRLwc1pmBC5mU/wrjJtgFiFVK7b2F4/ilO0YyaUXjlrGOl/wbo3utjFUcIgG5lXqUUgnAy0BjEelrXR0MbLeKsG0ppZR6Bgi32u/rUE01Z1U7vM+qPpRS+5VSfTC6w9ZhtPBQSkUrpaYopWoCjwIviEgXJ8dydo0v3sp10Nw9aEHRFDqUUsHAHuA9EXEXEX+M/nWnvhtWAUkFZpOxdZIV3wGTRaSGGNOVZwIr0j0x3w5eGDf2cKCYiLyB0dq4ZZRSiRjn9YZ11Q/AfSIyTETcrEsrEamvlEoB/gvMEBFPEakHPJnNITKtT0SKi+FfY1JKJQFRGNcZEektIrWtExwiMbrmUp3U/x3wmohUEJHy1vMosj449zpaUDSFlSEY4xgXgbUYffpbsii/DGjMrd2slmII0A7gHyAeeC7LPXLGL8DPwGmMLp54nHc95ZSlgFlEHrF2A3bHGDy/iNGd9wFQwlp2Akb32iWMc/sOYyzGKTmobxgQKCJRwDiMliAYExW2YIyB7cUYt9rq5BDvAAeAo8BfwCHrOk0RRJTSCbY0dz8i8iQwVinVoaBtKUyIyAeAj1LK2WwvjSZX0S0UzV2PiHgC44HFBW1LQWP1KfEXg9YYXYVrC9ouzb2BFhTNXY2I9MAYqwjD8KW41/HCGEe5gTH7bTbG9F6NJs/RXV4ajUajyRV0C0Wj0Wg0ucI9FRyufPnyqnr16gVthkaj0dxVHDx48IpSqkJ25e4pQalevToHDhwoaDM0Go3mrkJEgrIvpbu8NBqNRpNLaEHRaDQaTa5QaAVFRHpaczOcdRZ4zppnYYV1++8iUj3/rdRoNBqNjUI5hiIirhh5Hbph5FzYLyIblFLHHYo9BVxXStUWkccxwkU8lv/WajR3N0lJSYSEhBAfH1/QpmgKGHd3d3x9fXFzc7ut/QuloGAk4TmrlDoPICLfA30AR0Hpg5FXAmA1sEBERGnHGo3mlggJCcHLy4vq1atjxHrU3Isopbh69SohISHUqFHjtuoorF1eVUkbTC+EjLkw7GWs0WEjgXLpKxKRsSJyQEQOhIeH55G5Gs3dS3x8POXKldNico8jIpQrV+6OWqqFVVByDaXUYqVUS6VUywoVsp1GrdHck2gx0cCd/w4Kq6BcIG1iIF8yJleylxGRYhghu6/miTW//w4ffpgnVWs0Gk1RobAKyn6gjjXxUXGMXA0b0pXZANhCcg8Efsuz8ZOvv4aXX4b58/Okeo3mXsfV1ZWmTZvSqFEjHnnkESIiInKl3sDAQBo1apQrddmIiIigXLly2G43e/fuRUQICQkBIDIykrJly5Ka6izfmMGMGTOYNWsWAJ06dcrW4bpTp07UrVsXf39/6tWrx4QJE3J0jWbOnJnT08oVCqWgWMdEJmAkKjoBrFRK/S0ib4nIo9ZiS4ByInIWeAHILKf1nTNnDvTtCxMnwvLleXYYjeZexcPDgyNHjnDs2DHKli3LwoULC9qkTCldujSVK1fmxIkTAOzZs4dmzZqxZ88eAPbt20fr1q1xccnd2+vy5cs5evQoR48epUSJEvTp0yfbfbSgWFFKbVRK3aeUqqWUete67g2l1Abr+3il1CClVG2lVGvbjLA8oVgx+O476NQJRoyAjRvz7FAazb1Ou3btuHDB6OGOiYmhS5cuNG/enMaNG7N+vRGJPzAwkPr16zNmzBgaNmxI9+7diYuLA+DgwYM0adKEJk2apBGm+Ph4Ro4cSePGjWnWrBlbtxoJJr/88kv69u1Lt27dqF69OgsWLOA///kPzZo1o23btly7di2Djffff79dQPbs2cPkyZPTfG7fvj0An332Ga1ataJJkyYMGDCA2NjYTM87NTWVESNG8Nprr2V5fYoXL86HH36IxWLhzz//BKBv3760aNGChg0bsnixkRbolVdeIS4ujqZNmxIQEJBpudyksE4bLny4u8P69dC5MwwcCJs3g/VHo9EUFSb9PIkjl47kap1NfZoyp+ecHJVNSUnh119/5amnngIMv4i1a9fi7e3NlStXaNu2LY8+anRSnDlzhu+++47PPvuMwYMHs2bNGoYOHcrIkSNZsGABDzzwAC+99JK97oULFyIi/PXXX5w8eZLu3btz+vRpAI4dO8bhw4eJj4+ndu3afPDBBxw+fJjJkyezbNkyJk2alMbO9u3bs337dkaPHs358+cZNGgQn376KWAIyiuvGB0m/fv3Z8yYMQC89tprLFmyhOeey5hlOjk5mYCAABo1asSrr76a7XVydXWlSZMmnDx5kiZNmrB06VLKli1LXFwcrVq1YsCAAbz//vssWLCAI0dufp/OypUrl2Fy7G1TaFsohRJvb/jpJ6hWDXr3hqNHC9oijaZIYHuS9vHxISwsjG7dugGGb8S0adPw9/ena9euXLhwgbCwMABq1KhB06ZNAWjRogWBgYFEREQQERHBAw88AMCwYcPsx9i1axdDhw4FoF69evj5+dkFpXPnznh5eVGhQgVMJhOPPPIIAI0bNyYwMDCDvbYWyj///EP16tVxd3dHKUVMTAwHDx6kTZs2gCFUHTt2pHHjxixfvpy///7b6fk//fTTORYTG45DxvPmzaNJkya0bduW4OBgzpw543SfnJa7XXQL5VapWBE2bTJaJz16wO7dULNmQVul0eQKOW1J5Da2MZTY2Fh69OjBwoULmThxIsuXLyc8PJyDBw/i5uZG9erV7X4SJUqUsO/v6upq7/K6HRzrcnFxsX92cXEhOTk5Q/k6deoQERHB//73P9q1awcYovbFF19QvXp1SpUqBcCIESNYt24dTZo04csvv2Tbtm1Oj3///fezdetWpkyZgru7e7b2pqSk8Ndff1G/fn22bdvGli1b2Lt3L56ennTq1MmpL0lOy90JuoWSQwIjAvnqyFfEJ8eDnx+X/ruMlIR46NYNLl0qaPM0miKBp6cn8+bNY/bs2SQnJxMZGUnFihVxc3Nj69atBAVlHUW9dOnSlC5dml27dgHGQLaNjh072j+fPn0ai8VC3bp1b9vWtm3bMnfuXLugtGvXjjlz5tjHTwCio6OpXLkySUlJaWxJz1NPPUWvXr0YPHiwUwFzJCkpialTp1KtWjX8/f2JjIykTJkyeHp6cvLkSfbt22cv6+bmRlJSEkCW5XILLSg5ZJdlFyPWjyAowvhBjz77H8Y+UxXCwoyWSi5Nc9Ro7nWaNWuGv78/3333HQEBARw4cIDGjRuzbNky6tWrl+3+X3zxBc8++yxNmzZN0y00fvx4UlNTady4MY899hhffvllmpbJrdK+fXuCg4Np2bIlYAjK+fPnuf/+++1l3n77bdq0aUP79u2ztf2FF16gWbNmDBs2zOmU44CAAPz9/WnUqBE3btywT1Do2bMnycnJ1K9fn1deeYW2bdva9xk7diz+/v4EBARkWS63uKdyyrds2VLdboKtHUE7ePDLB9k0dBPdanWj7oK6XIu7RnjTb+Ff/4I2beCXX8DTM5et1mjylhMnTlC/fv2CNkNTSHD2exCRg0qpltntq1soOcRsMgNgibSglMISaeFK7BViO7U3fFN274YBAyAhoYAt1Wg0moJBC0oOqepVFRdxwRJpITw23BhLwRAYBg2CxYvh55/hiScgmz5QjUajKYpoQckhbq5uVPGqgiXKYoiIFfv70aMNj/r//hdGjoQswi5oNBpNUURPG74FzCYzlshMBAXg+efhxg149VVjLGXRItBRXDUazT2CFpRbwGwyc+DigcwFBWDaNIiJgffeM0TlP//RoqLRaO4JtKDcAmZvM2tPrCUwIhBPN0/KepTNKCgA775rtFTmzIFSpeDtt/PfWI1Go8ln9BjKLWA2mUlISeBg6EHMJjN+Jj/ngiJiiMno0fDOO/D++/lvrEZzlxAcHEznzp1p0KABDRs2ZO7cubdcR2Yh4G837Ht+YQvbb1sCAwM5cOAAEydOBAzvdlvQybsB3UK5BWxTh3dZdtG9VnfKeZTjjwt/OC8sYoyhxMbC1KlQsiQ4CQqn0dzrFCtWjNmzZ9O8eXOio6Np0aIF3bp1o0GDBrlS//Lly2nZsiWJiYlMnTqVPn36sH379juuNzk5mWLF7uwWags540j16tXtzpLbtm2jVKlSaZwlCzO6hXIL+JX2u/ne5IfZZCY4Kpi4pDgaf9KYjWeMsPa/nP2FEu+UwOUdN9xrf09gp2YwcSLvjaqTad0pqSncN/8+XN50weVNFzp+0TFDmZV/r6Tl4pakqpzPIItOiKbK7Cq4vOnCB7s+ACAoIojqc6pz5qoRGG7uvrm4vuVKxf+ryLW4jKG6NZq8pHLlyjRv3hwALy8v6tevbw9f36lTJ15++WVat27Nfffdx86dOwEjmOTjjz9O/fr16devX47ieDkL+/7NN9/QunVrmjZtytNPP01KSgoAS5Ys4b777qN169aMGTOGCRMmAEZsrnHjxtGmTRv+/e9/c+PGDUaNGkXr1q1p1qyZ3Xs9JSWFl156iVatWuHv72+PRJwTtm3bRu/evQkMDGTRokV89NFHNG3a1H7uhRndQrkFGldszNyec7kae5UA/wC2nN9CYkoiv1/4nWOXj7EjaAe96vRiT/AeklKSeLXjqyzYv4B3n23EcxFhvPzFWWI7LsZz5NgMdYfGhHLm2hkeue8RYhJj2Ba4jcSURIq7FreX2frPVg6GHiQsJozKXpVzZPOZa2cIjQkFYIdlBy/zMvsv7icoMojfL/xOnXJ12GHZQapKJTw2nBPhJ2hv1mH571kmTYIjuRu+nqZNjS7gHBAYGMjhw4ft0XrBaAn88ccfbNy4kTfffJMtW7bwySef4OnpyYkTJzh69KhdkLLDMex78eLFWbFiBbt378bNzY3x48ezfPlyunbtyttvv82hQ4fw8vLioYceokmTJvY6QkJC2LNnD66urkybNo2HHnqIpUuXEhERQevWrenatSvLly/HZDKxf/9+EhISaN++Pd27d6dGjRpp7LFFWQYjevLatWvt26pXr864ceMoVaoUL774Yo7Or6DRgnILiAgT20y0fz591Qh9vTPIeHKwjadYoixU8arC2w+9zZZ/tnA+9gIvjavJvz+4yEOjn4HiJcGa8MaGbd9nWj5DaEwoWwO3ciHqAjXK3PwBWqIs9rI5FRRbvb7evjftc/Lq6+1LSFQIlkgL7dGCosl/YmJiGDBgAHPmzMHb29u+vn///sDNEPUAO3bssI8z+Pv74+/vn+Pj2MJN/frrrxw8eJBWrVoBxs29YsWK/PHHHzz44IOULVsWgEGDBtnD3Ns+u7q6ArBp0yY2bNhgT+cbHx+PxWJh06ZNHD16lNWrVwNGYMYzZ85kEBRnXV53M4VOUETk/4BHgETgHDBSKZVhFE1EAoFoIAVIzkmcmdzGPqYSbEQ2dbxB27aZTWYOhR4iJTWFR4aA5bdGlH/ySXBxgSFD7HXZgk6aTWbcXN3s9aQRFIf62/jefILLClu9Hc0d+fHMjxnqsb0+VOMhvj/2vfNJBpp7hxy2JHKbpKQkBgwYQEBAgF1AbNgCOLq6umYbiTc7HMO+X758meHDh/Pee++lKbNu3bos6yhZsqT9vVKKNWvWZIharJRi/vz59OjR447svdsojGMom4FGSil/4DQwNYuynZVSTQtCTOCmoOwN3gs4FxTbTLCQqBDiisO6D0dBx44wdCisWGGvy7av2WROEzfMkfRCkBMskRY8innQvHJzohKiiIyPTFNPXFIcl29cpmGFhpRxL6MFRZPvKKV46qmnqF+/Pi+88EKO9nnggQf49ttvASOJ1dEcJLtLH/a9S5curF69msuXLwNw7do1goKCaNWqFdu3b+f69eskJyezZs2aTOvs0aMH8+fPt7d6Dh8+bF//ySef2EPHnz59mhs3buTo3Bzx8vIiOjr6lvcrKAqdoCilNimlbI8h+wDfgrQnK0wlTHgV9yI60fjCL0RfICklieDI4DQtlMSURJJSjR/W+cQw+PFH6NDB6PZatQowbu5l3MvgVcKLat7V7OtsRMZHEpUQlWF9dliiLPYpzrZ9HQUlJCrEbqfZZLZ3q2k0+cXu3bv5+uuv+e233+zTZzdu3JjlPs888wwxMTHUr1+fN954gxYtWmRaNrOw7w0aNOCdd96he/fu+Pv7061bN0JDQ6latSrTpk2jdevWtG/fnurVq2MymZzW/frrr5OUlIS/vz8NGzbk9ddfB2D06NE0aNCA5s2b06hRI55++unbal098sgjrF27Vg/K5xKjgBWZbFPAJhFRwKdKqcXOConIWGAsgNlszlXjRASzyczf4UZaz1SVypFLR0hISUgjKI5YIi3GFOIff4SHHza6vVxcsCTebNV4uHlQsWTFTD3yb+Wmb2stObZ6bHUFRQYRFHmzq81sMts/azT5RYcOHcgsjYZjhsPy5cvbx1A8PDz4/vvvs607swyJNh577DEee+yxDOufeOIJxo4dS3JyMv369aNv374AfPnll2nKeXh4OJ3B5eLiwsyZM5k5c2aWx4+JicmwrlOnTnTq1AmA++67L0etr8JCgbRQRGSLiBxzsvRxKPMqkAxkluasg1KqOfAw8KyIPOCskFJqsVKqpVKqZYUKFXL9XGw36nIe5QDDR8VxvaOglPMod1MYSpWCjRuNPCqPP07t7X+lKZu+tWDbL00dOSC9oJy6eorw2HDKeZQjJjGGv8L+sh/PFqtMo7nXmTFjBk2bNqVRo0bUqFHDLiiarCmQFopSqmtW20VkBNAb6KIyeXRRSl2wvl4WkbVAa2BHLpuaLbYbdXtzezac2mAfoHcmKO3N7fnz0p83d/bygp9+gp49+fCzvSyt0CBNvSevnLR/tt3o25vbsyc4Z56zCckJXIq5hNlkplKpSri5uLE7eHcGewWhqldVzCYzEfERRCVE4V3CO5vaNZqii23WlubWKHRdXiLSE/g38KBSKjaTMiUBF6VUtPV9d+CtvLTr8OHDrFy5EhcXF0TE/nom+Az8A/Eh8XAeftn3CyTBumLr2Fx8MwDFfy+Oi4sLsZdjsQRa+KzUZ3iV8qJkyZLGjJE3pnJpxKP0ee8XUpuvxaVfP8zeZn45+wtKKUSEoMgg3FzcaF2lNRtObeBG4g1KFi+Zpc2O4yMu4kI1UzX7FOcO1Tqw4dQGdgbtxKeUDyWKlUjTLdaoYqM8vJoajaYoUugEBVgAlAA2ixGld59SapyIVAE+V0r1AioBa63biwHfKqV+zkujjh8/zuzZs0lNTUUpZV9sbNq2CYAbGDM53vz1zQx1bGELAGM3ZnRsNEjFtX9/KpUpg1Tw5Ia6wTMXn+GK+xX2xO7Bx8eH6qWrAxAcFUy98s5zVK85voZ1p9ZxJfYKkLa1tC1wGwAdzB0ACI8Np03VNmnKTf5lMj6lfOhVuxdDGg9Bo9FockKhExSlVO1M1l8EelnfnweaOCuXVwQEBBCQzhkRwBJh4cm1T/Jd/+94e9vb/HzuZx6s9iAL/7XQLj6zds1CEBpWbMjgFYNZ3Xc19UvX58aNGyzYtYBlB5ZRzb0ao8xPkPT5ci6FhHCqkokL12HZF8uIi70ZVmLSx5OgNLwf9T5j+o+hTZs2GeIJvbPzHc5cPUOlUpVoXrk5TX0MT9z+9fpjibTgZ/KjZZWW9KjVgzPXzjCg/gDAiATQumprzl8/z76Qfey/sF8LikajyTmOT9tFfWnRooUqSP6+/LdiBurbo9/a141YN0JVnV31ZqHoaKU6d1apImpEH9Qnf3yieAE16ZNJau7cuarvoL6KciiMWW7KZDKpAQMGqCVLlqhr164ppZQq+0FZ9cwPz9yRrS/8/ILyfNdTpaam3lE9msLP8ePHC9oETSHC2e8BOKBycI8tdH4oRRln/iWOTpCAMfvrhx9IfOhBvlgPxZd8Ad7Q9aGuTJw4kVXfr8JlogsvrnuRlStXMmDAAPbt28dTTz2Fj48Pffv35drha1TxrHJHtppNZmKTYnWwSE2+MGrUKCpWrEijRmnH7q5du0a3bt2oU6cO3bp14/r160DGsO4jRoywhznJClu4+IYNG9KkSRN7N3ZhYNu2bZhMJrsvTteuxtylRYsWsWzZMsCYtnzx4sWCNDNLtKDkI14lvDJ4o2cQFABPT9z+9yM/1nVh1Kd/MHHfzfGNYi7FqOpVlXAVzqBBg1iyZAnBwcHs37+fcePGGc5P38PswbN577337H/AWyUzb32NJi8YMWIEP/+ccRj0/fffp0uXLpw5c4YuXbrwvjW30O3mCbHFzvr777/ZvHkzP/30E2++mXG883awRSq+Ezp27MiRI0c4cuQIW7YYY67jxo3jySefBLSgaNLh6F+SqlLTeNU74uLhyUtP12BNfZj7M9T+fG3aOhxu9CJCy5YtmTt3Lst2LIMnoE6DOkybNo1q1aoxefLkW/4RakHR5CcPPPCAPRijI+vXr2f48OEADB8+nHXr1mUa1n3Hjh3cf//91KxZM0etlYoVK7J48WIWLFiAUirTkPOpqamMHz+eevXq0a1bN3r16mWvv3r16rz88ss0b96cVatWce7cOXr27EmLFi3o2LEjJ08aU//Dw8MZMGAArVq1olWrVuzevTvH12bGjBnMmjWL1atXc+DAAQICAmjatGmOQvbnN4VuUL6o4+iNHn4jPI1XfXoql/Pj8YHn+G59MQa+Nh1SBV5/HbPJnGlir4uxF+E+WP3xaq4HXmf27NksWLCAxYsX8+9//5spU6ZQqlSpHNkJWlDuNSZNmpTr0W+bNm3KnNsMOhkWFkblykZkbR8fH8LCwpyGdV+yZAmhoaHs2rWLkydP8uijjzJw4MBs669ZsyYpKSlcvnyZ9evXOw05f/DgQQIDAzl+/DiXL1+mfv36jBo1yl5HuXLlOHToEABdunRh0aJF1KlTh99//53x48fz22+/8fzzzzN58mQ6dOiAxWKhR48enDhxIoM9O3futIezHzRoEK+++qp928CBA1mwYAGzZs2yJ+AqbGhByWfMJjM7ggz/S8eAkJmVTXaFt8fWZeAfLeCNNyA+HnOnaqw5sYZUlYqLpG1kWiItuIgLVbyqYG5iZtmyZUyfPp2pU6cyY8YMFi1axDvvvMPIkSNxccm8gVreszzuxdy1oGgKDSKC1VXAKX379sXFxYUGDRoQFhZ2y/VnFnJ+165dDBo0CBcXF3x8fOjcuXOa/WyhW2JiYtizZw+DBg2yb0tISABgy5YtHD9+3L4+KiqKmJiYDA93HTt25Icffrhl2wsLWlDyGbPJTGRCJJHxkWniaDkt622s9y3jB198ASVKwMyZBJx5gA/rJzpNtGWJslDVqyrFXG5+tbVq1WLlypXs3buXKVOmMHr0aL755huWLFlCzZo1nR7bFqdMB4u8t7jdlkReUalSJUJDQ6lcuTKhoaFUrFgx07K2MPdwM+dJdpw/fx5XV1cqVqyYacj57AJV2sLZp6amUrp0aactvNTUVPbt24e7u3uO7Lpb0WMo+YxNPIKjgrN5qH6cAAAgAElEQVRtodhSDpu9zUb+lE8/hRdfpPGqHXy1DoKvnM+wj9NBfivt2rVj9+7dfPbZZxw6dIjGjRszb968TGe5mE1mez4VjaYgePTRR/nqq68A+Oqrr+jTxwj3lxth3cPDwxk3bhwTJkxARDINOd++fXvWrFlDamoqYWFhmQac9Pb2pkaNGqyyRhBXStlTDXfv3p358+fby95ut2JhD2evBSWfsYWR33BqA3uC91CqeCnKuJdxWtaeU8WWy14EPvyQ0KnPMewoVH1qEsTH28vvC9nHmatnbpZ3gogwevRojh07xoMPPsjzzz9P165dnXYRmL2zDhb5e8jvbD63mRuJt57nQaNxZMiQIbRr145Tp07h6+vLkiVLAHjllVfYvHkzderUYcuWLbzyyivA7Yd1t6XcbdiwIV27dqV79+5Mnz4dyDzk/IABA/D19aVBgwYMHTqU5s2bZxrOfvny5SxZsoQmTZrQsGFDe6j8efPmceDAAfz9/WnQoAGLFi26retky2lfWAflC9zZMD+XgnZsVEqpsJgw5fqmq2IGihmoFp9mbpMlwqJc33RVG05uSLP+etx19UwvlAKlOndWKipK/RX2l73ON7e9mSNbUlNT1ZIlS5SHh4eqXLmy2rFjR5rtM7bOUMxAxSfFZ9jX8Xiv/fpajo6nKZxox8bsiY6OVkopdeXKFVWzZk0VGhpawBblHXfi2KjHUPKZiiUrcuLZE/Y4W7XLOo00A0A1UzWCJgVRxSutk6KphIlvOnjRtmE7nvzPr9ClC0FzJwDwdb+vGdRgkLPqMiAijBo1ipYtWzJw4EA6d+7M+++/z5QpUxARe0vnQvQFapZJO9Zy5uqZm++vnUGjKcr07t2biIgIEhMTef311/Hx8SlokwolWlAKgDrl6lCnXJ0cla3qXTXDOtuA+dqanjy5di0MGkTbgJep0g961u5JiWIlnNSUOf7+/uzfv59Ro0bx0ksv8eeff7JkyZI0U4fTC4qtK8y/kr+eCaYp8mSXqEtjoMdQ7lLszo2PPAI//0zJS1fZ9YVQ7mLEbdVnMplYvXo1b7/9Nt988w09e/akNKUB574otlz1zXyaaUEpAqgczorSFG3u9HegBeUuxc/kd3MGVqdOTH+9I6UTXZCOHeHPP7PeORNEhNdee41ly5axc+dOhj0yDCIzERSHXPUXoy+SlJJ0J6ejKUDc3d25evWqFpV7HKUUV69evaOpzbrL6y7FbDJzNe6qPdHW1vLRXH2tNZ8vDIYHHoB16yCdA1ZOGTZsGFWqVKF///64LHHhaJ2jkC7BsmNqYYXiQvQFe64Wzd2Fr68vISEhhIeHF7QpmgLG3d0dX1/f295fC8pdiqM/S73y9bBEWvBv0Bv2roSePY3l669h8ODbqr9Lly7s2rWL5u2bs37qeo4/eJwGDW6mKA6KCKL3fb3tdgRFBGlBuUtxc3OjRo0aBW2Gpgigu7zuUhwHzOOT4wm7EWb4uPj6ws6d0KYNPP44zJ1728do3LgxnWd0JkWl0KlTJ44dOwZgP56thWKzQ6PR3NsUOkERkRkickFEjliXXpmU6ykip0TkrIi8kt92FjSON3LH3PEAlCkDmzZBv34waRK8/DLcZs6HRg0bUXxUcdzc3OjcuTN//vlnmuNVM2XM8aLRaO5NCp2gWPlIKdXUumQIpCMirsBC4GGgATBERBqkL1eUqeJVBRdxwRJpcR7Cxd0dVq6E8ePhww9hxAhIuvWBc7PJTFzpONb9vA53d3e6devG7sO77ds83Twp71leC4pGoym0gpIdrYGzSqnzSqlE4HugTwHblK+4ubpRxasKH+7+kD7fG6eeIYaXqyssWADvvGOMp/TuDbcYB8ie2Kt8MXvCnynDpkDkzW06iKRGo4HCKygTROSoiCwVEWeBrqoCwQ6fQ6zrMiAiY0XkgIgcKGqzWGZ3n83o5qMZ3mQ47z70bgbnQ8CI//Xqq7B0Kfz6qzHz6xZCezt2rdWtW5eff/6ZmMgY+AY8kzwBYwqzbqFoNJoCERQR2SIix5wsfYBPgFpAUyAUmH0nx1JKLVZKtVRKtaxQoUIuWF94GNxwMAt6LWBBrwVM6zgty1wRjBwJ69fDiRPGgL1DboasSD/o3rx5c7q82gWuQ79H+xETE2N3stR+DBrNvU2BCIpSqqtSqpGTZb1SKkwplaKUSgU+w+jeSs8FoJrDZ1/rOk1W/OtfsH07JCTA/fcbLZZsqOBZIUOiraRqSdR5ug4HDhxgyJAh+JbyJSYxhoj42/PS12g0RYNC1+UlIo4Zo/oBx5wU2w/UEZEaIlIceBzYkB/23fW0bAm//w7Vqhm+KkuXZlncWaItS6SFJg82Yf78+fzwww9s+2ybfb1Go7l3KXSCAnwoIn+JyFGgMzAZQESqiMhGAKVUMjAB+AU4AaxUSv1dUAbfdZjNsGsXPPQQPPWUMcaSxbRie9wwjPAMlkgLZm8z48eP5/nnn+fHZT/Cfi0oGs29TqETFKXUMKVUY6WUv1LqUaVUqHX9RaVUL4dyG5VS9ymlaiml3i04i+9STCb44QcYMwZmzoQnnkiTrMsRx0RbV+OuEpccZx9bmT17Nl17dIWN8PMvP+eb+RqNpvBR6ARFk4+4uRlphT/4AFasgC5dwMlMOLPJTGh0KIkpiRl8XlxdXVm9cjVSSfh86uecOnUqX09Bo9EUHrSg3OuIwL//DatWwaFD0K4dpBMFewDIqAtOnShN3iaqPV0NKSb07duXqKiofD0FjUZTONCCojEYOBC2boWoKGNa8S+/2Dc5Th126pUP1KpRi9pP1+bMmTMMHz6c1NsM9aLRaO5etKBobtK2LezfD35+0KsXzJkDStnF44PdH/D10a9xL+ZOec/yaXY1m8yElA2h67iurFu3jpkzZxbEGWg0mgJEC4omLX5+sHs39OkDkyfD6NH4efjgX8mfvSF7OXvtLP+q868MTpRda3ZFofil/C/06NeDN954gx9//LGATkKj0RQEOh+KJiOlSsHq1TBjBrz9NsVPneLP/26GihUz3WWo/1Ca+TSj0SeNGDJ1CGH/hDFs2DCOHDmC2WzOdD+NRlN00C0UjXNcXOCtt4zZX4cOQatWcORIlrvYQtmHJYaxatUqkpOTeeyxx0i6jSjHGo3m7kMLiiZrBg82EnalpkL79rBmTaZFvUt4U9q9NJZIC7Vr1+bzzz9n3759TJ06NR8N1mg0BYUWFE32tGhhDNb7+xuzwaZPz9Sz3tGrfvDgwYwfP57Zs2ezYYOOjKPRFHW0oGhyho+PMa14xAijK+yRR+D69QzFHAUFDE/65s2bM2LECIKCgvLRYI1Gk99oQdHkHHd3I5jkxx/D5s3GuMrRo2mKOIZpMXZxZ+XKlaSkpPDYY4+RmJiY31ZrNJp8QguK5tYQgWeegW3bIDbW8Kz/7jv7ZrPJzPX460Qn3MwMWatWLT7//HN+//13Xn311QIwWqPR5AdaUDS3x/33G7O/mjc3Aku+8AIkJdmdIIOjgtMUHzRoEOPGjWPWrFn2VMIajaZooQVFc/v4+MBvv8HEifDRR9CtG7USSwHw2z+/sf/Cfq7GXrUXnz17NvXr1+fJJ5/kypUr9vXX4q6RkJyQ7+ZrNAXJldgrJKUUrSn1WlA0d4abG8ydC19/DX/8QYtHn6ZdMDz303O0/rw1Pb7pYS/q6enJt99+y9WrVxk9erQ9ZXCLxS14a/tbBXUGGk2+k5SSxH3z72PBHwsK2pRcRQuKJncYOhT27MG1hDu7vnLl77hR9K/Xj5NXTqbJNd+0aVPee+891q9fz+LFi4lOiCYwIpBj4c4Sc2o0RZOL0Re5Hn+dY5eL1u9eC4om92jaFA4dwuWRR2nwwVI+XHAat6gbXI9PO7140qRJdO/encmTJ7PtwDZAZ3vU3FvYfu+OqbWLAoVOUERkhYgcsS6BIuI03od121/Wcgfy205NJpQubXjTz5lDjX2nOLwIrmzbmKaIi4sLX375JSVLlmTSmEmQrAVFc29hF5Qi9rsvdIKilHpMKdVUKdUUWAP8N4vina1lW+aTeZqcIALPP8/JtZ8BULvPSGOcxaHrq3LlyixZsoTzJ87Dr8bAfExiTEFZrNHkK46C4tglfLdT6ATFhhjx0QcD32VXVlM4KdfpYZo/DYFt68OkSUbYlogI+/ZHH32U5o82h73A2aL3tKbRZIbttx6fHM+V2CvZlL57KLSCAnQEwpRSZzLZroBNInJQRMZmVomIjBWRAyJyINxJvnRN3lGhZAVivUqw6LUeMHs2bNhg+K3s328vU3dIXagArIO//vmr4IzVaPKRoMggp+/vdgpEUERki4gcc7L0cSg2hKxbJx2UUs2Bh4FnReQBZ4WUUouVUi2VUi0rVKiQi2ehyQ4XcaGaqRqWqGDD8XHHDkhONpwi338fUlK4GH+RysMrQyy8//L7Rar5r9FkhiXSQvXS1e3viwoFIihKqa5KqUZOlvUAIlIM6A+syKKOC9bXy8BaoHV+2K65NdIEi2zXDv78E/r1g6lToVs3EoLO80CbB5CuwpFtR1iyZEnBGqzR5DFKKYIig+hg7gBoQckPugInlVIhzjaKSEkR8bK9B7oDRWtCdxEhffRhypQxknYtXYr64w9++CCY3n8n4dvDFx9/H55//nlOnz5dcAZrNHlMZEIkMYkxNK3UFE83Ty0o+cDjpOvuEpEqImKbf1oJ2CUifwJ/AD8qpX7OZxs1OcDsbeZi9EUSUxJ5fPXj/PbPbyDCnw83519TfPinNAyd8V/m/S+J+C4RxBOPfzd/6s+rz46gHQVtvkaT69gExK+0X8YHrrucHAuKiPiJSFfrew9bCyEvUEqNUEotSrfuolKql/X9eaVUE+vSUCn1bl7ZorkzzCYzCsXh0MOs+HsFG04Ziba2Bm7lJ5dzLJzzBNHPP0Of7WEcW1mcRwf4k2BJ4NSaU/xy9pcCtl6jyX1sAmI2me9NQRGRMcBq4FPrKl9gXV4ZpSk62KIP77LsAtLOv/d082TpoG/wmvMxsnkzVVUp1q44zqiWLVE7FQf2aX9VTdEjjaB434OCAjwLtAeiAKxTeSvmlVGaooNfaT8Adlp2AmkFxWwyY7gbAV26GMm6evdm7oEDVCsm7Jq1jQgHvxWNpihgibRQ3LU4FUtWxGwyE3YjjPjk+II2K1fIqaAkKKXsqfass7D0/E5NtlTzrgZkbKEERQbZWy92ypWD1asp9c03LHN1JSEikWe7d0/jYa/R3O1YIi1U866Gi7jY/wMhUU7nH9115FRQtovINMBDRLoBq4D/5Z1ZmqKCh5sHFTwrcDXOyIsSHhtOXFKc0ULxNmfcQQQCAtj3xdMElIFv9+9nub8/hBSNP5xGY2udw80u4aLS7ZVTQXkFCAf+Ap4GNgKv5ZVRmqJF+pbI6aunuXzjsr07zBmlazdi2QRoU8OP8ceOEdiggZFzRbdWNHc5jq1z22tQRNHwls+poHgAS5VSg5RSA4Gl1nUaTbbY/jSlihvZHPcE70mz3hl+Jj9whRe/noUqWZInRUh58kkYMAAuXcp7ozWaPCApJYmL0Rftv31fb1/g3muh/EpaAfEAdGJwTY6w/Xnur3Y/ALuCd6VZn9U+yaZkPl60iJ1RUXzQsyds3AgNGsCXX+rWiuau42L0RVJVqv33XaJYCSqXqnzPCYq7UsoeW9z63jNvTNIUNWx/nna+7RDEPkCflaBUMxmD+ZZICwEBATz++ONM37KF/V9/bQjKyJHQsycEBua5/RpNbuE4ZdiG2WQuMom2ciooN0Skue2DiLQA4vLGJE1Rw/bnqVWmFlW8qmCJtCAIVb2qZrqPdwlvSruXNsqK8Mknn1ClShUCXn2VmI0bYcEC2LMHGjWC+fMhJSXTuv65/g+bz23O9fPSaG4Vu5e86eb4YVFybsypoEwCVonIThHZhRG0cULemaUpSrSs0pKqXlVpXbU1Hf06AtDGtw0lipXIcj/HP1rp0qVZtmwZZ8+eZfKUKfDss3DsGHTsCBMnwgMPwIkTTuuZuXMm/Vf215GMNQWO7fdsa4HDzd95Ufh95khQlFL7gXrAM8A4oL5S6mBeGqYpOlQvXZ2QF0KoW74u3/b/lpQ3Utgzak+2+6V/cnvwwQd55ZVX+Pzzz1m7di34+RljKsuWwcmTRk77t9+GhIQ09QRGBhKTGMO1uGu5fm4aza1gibRQ3rM8nm43RwzMJnORSbR1K8EhWwH+QHNgiIg8mTcmaYoyIoKLuNz0kM8CZ2EpZsyYQYsWLRg9ejQXL140/FaGDYPjx6FvX3jjDWjSBLZute9TVPN3a+4+LFGWDGOHRckXJaexvL4GZgEdMISlFaDzuGvyFLPJzPX460QnRNvXFS9enOXLlxMfH8/w4cNJTU01NlSqZITF37gRkpLgoYdg6FDUpUtaUDSFBkenRhv3nKBgiEd7pdR4pdRz1mViXhqm0dj+aMFRwWnW161bl7lz57JlyxZmzpyZdqeHHzbGVl5/HVatQtWry4i98bikFo0/rObuxlmEiHtRUI4BPnlpiEaTHpsnvbM/2lNPPUVAQADTp0/nt99+S7vRwwPeeguOHiWmcT0++RH2fg4pB/ZnqEejyS8i4iOISojK0EIp51EOj2IeRSK3fE4FpTxwXER+EZENtiUvDdNosnpyExEWLVpE3bp1eeKJJwgNDc1YQd26/PrpywwZANWiYOJz3xizw65ezWvTNZoMOPNBAeO3XFSmDudUUGYAfYGZwGyH5bYRkUEi8reIpIpIy3TbporIWRE5JSI9Mtm/hoj8bi23QkSK34k9msJH5VKVcRXXTOMclSpVitWrVxMdHc2QIUNITk7OUMYSFcz3jWHw241Z3bkSfPop1Klj+LE4Ka/R5BWZCYpt3T0jKEqp7c6WOzz2MaA/kCbPq4g0wEgB3BDoCXwsIq5O9v8A+EgpVRu4Djx1h/ZoChmuLq74evtm6UXcoEEDFi1axPbt25k+fXqG7UGRQXgU86BOjZZM6iVw5Ag0bw7PPWdMM/7117w8BY3GTlaC4mfyu3cERUTaish+EYkRkUQRSRGRqDs5sFLqhFLqlJNNfYDvlVIJSql/gLNA63T2CPAQRhZJgK8wWlCaIkZOntyGDRvG6NGjmTlzJj/99FOabbZZNX4mP0JjQjnl48a5FYsIXfYJSTeioGtX6NcPzp2z76OUwhJp4WL0Rfu6VJWabRKkuKQ4UlUqqSqV89fPc+7aOXuei6SUJBJTErPc/14hKSWJpJQkAGKTYgFISE4gOfXOWoyJKYkkpyajlCI4MpgLURfu2NbcxBJpwc3FjUqlKmXYVlQSbeW0y2sBMAQ4gxEYcjSwMI9sqgo4TusJsa5zpBwQoZRKzqKMpgiQ066AefPm0aRJEwICAjjnIA42QalVthYA9RbWo/aCOlQ5/wxeAcG81cMdtXmzER9s6lSIimLV8VX4zfGj6n+qsvUfw5/lo70fcd/8+zL1Zk5KSaL63Op8dvAzpm+dTq15tag9vzbVPqrGD6d/YOwPY+m3ol8uXJG7n6Frh/LEf59gT/AeSr9fmsCIQDp80YFpv067o3p7fNOD5396ntXHV2OeY8b3I19+++e37HfMJyyRFqqZjMRa6SkqibZy7NiolDoLuCqlUpRSX2B0R2WJiGwRkWNOlj53YvStICJjReSAiBwIDw/Pr8NqcgmzyUxIVAgpqZnH6gLw8PBgzZo1APTp04foaMN3xRJpwc/kx8AGA1kxcAXL+i6zL0+2GcP0dvFc2P8bPP44vP8+1KqF56KluFkfVY5dPgbAoUuHCI4KticKS8/F6ItcvnGZQ6GH+OvyX5hNZpY+utRex6HQQxwKPZQbl+Sux3YtDoUeIik1iT8v/cmRS0fu+PocCj3EoUvG9bdh+/4KA858UGwUlanDORWUWOug9xER+VBEJudkX6VUV6VUIyfL+ix2uwBUc/jsa13nyFWgtDUVcWZlbDYsVkq1VEq1rFChQnYmawoZZpOZ5NRkLsVknwOlVq1arFy5khMnTjB8+HBiE2MJuxGG2WTGvZg7gxsOZliTYfZlYIOBAPzjmQBffQUHDkDjxvRe8AunPynGkBPFsFgnBGTnHGnfHmXBEmmhUcVGjGw2knIe5bBEGusuxVwiITnB6f73CqkqleDIYIIjgwmMCATgjwt/kJyafEc308j4SKISouzX2tfbF49iHoXqBm17uHHGvSYow6xlJwA3MG74/fPIpg3A4yJSQkRqAHWAPxwLKKPfYSsw0LpqOJCVSGnuUm71j9a1a1dmzZrF2rVrmTp9apo6sq27RQv49VdefqExKe7F+XZFMmOf+wJ27Mi5oFhvaDbnNbPJzLHLx4iIjwDu/i6NOyX8RjgJKQkkpSax/6LhF2TLj3MnARJt1z80OpSz187iZ/IrVDOnklOTuRB9IdPfYlFJtJVTQemrlIpXSkUppd5USr0A9L6TA4tIPxEJAdoBP4rILwBKqb+BlcBx4GfgWaVUinWfjSJSxVrFy8ALInIWY0xlyZ3Yoymc3M6T26RJk3jyySeZ9/48OJ65oFTzvplzxY4Iq/1uMP2jR/lwdH1MV2LgwQdZsMhCg8vZC8q5a+e4Gnc1TYpX243zVs+jKOJ4/n9c+CPNa0JKAuGxt9ctbatXoTgYehCzyVyoBCV9Yq30lChWAp9SPoXG3tslp4Iy3Mm6EXdyYKXUWqWUr1KqhFKqklKqh8O2d5VStZRSdZVSPzms76WUumh9f14p1VopVduamvje7ksootyOoIgIn376KTUb14T/wtXTzsc9ShYvae+SsmHrkqlWpjone7el3cvliJj+Mg8Ewl8fQ/tpi+DMmQx12epISElIY7ctkmz6cvcqjudvuy65cX3S11vYBMXmS5VdltK73Vs+S0ERkSEi8j+ghqOHvIhsA3QscE2e45ho61Zwd3dnwFsDwAueGfpMmplfjqTPlhcWE0ZSapL9hvRP/CUOD+9Bzefhw/bQcPdpqF8fRo2Cf/6x75feV8ZRUBwpLDe4giK7888NQQHs319oTGihGLfKygfFRmESwNsluxbKHgyP+JOk9ZB/AXDqwa7R5Da3myL1qlyl/NjyKKV4+OGHuXIlY76J9H9i2xOi7YakUOwJ3sM1T5jfvwr9ZzYxEnp9+y3cdx+MGwfBwQRFBFHFq0qaeh1fXcWVCp4V7vobxp0SFBlEqeKl8CruBWC/ZrbX270+QZFBVC5V2f7Z9v0BXIgueH8Ue2It72qZlrGla7ibE21lKShKqSCl1DagK7DT6h0fijGrKvuEFhpNLnC7T26WKAs1a9dkw4YNWCwW+vTpQ2xsbJZ1Oz5J2m5ItkHjDuYOHFGh8J//GI6QY8fC0qWo2rV59pvT9CnZAgAXcbHfIG11+Hr7UqNMjSKTO/x2sU2dtV2XjmYjg2czn2Z4unneUQulbvm6VPA0ZnI6HqMwiLgl0kI5j3KULF4y0zJFIdFWTsdQdgDuIlIV2IQx6+vLvDJKo3HEWaKtnGCbpnn//fezfPly9u7dS79+/UhwyOjoZ/IjKiGKyPhI+z6A3bseYJdlF2U9ytKwQsObXShVq8LChXDmDIkBjzNmXxLzJ2zk8x9caJdQETdXN3s9YERONpvMmcYlu1ewRy6wRpK2CYqfye+Owo+kr7fQCYqTxFrpySq69t1CTgVFlFKxGFOFP1ZKDcKItaXR5Dlmk5lrcdeISYzJtMyb295k3cl1AFyJvUK3r7tx7to5+594wIABLFmyhE2bNjF48GCSkpLsdUPaab/eJbwxuZvsUzljEmMydKG8ue1N1p4w0hCfem8KtSfCPwO6MPSIYvt7lyAgAI4dw6eUD24ubnaBKogujZTUFMZsGFMoHCttU6pt06rbm9sDNwVg07lNDF41mJTUFJ798Vn2BGefKto+JdfbqMOruBemEje/v/wW8cUHF/PJ/k+4EHWBx1c/TnRCdJZOjTZs24etHcb6k3enF0SOBUVE2gEBwI/Wdc4CNmo0uU52T5pKKWbtncVXf34FwL6QfWw5v4X25vYMbjjYXm7kyJEsXLiQDRs2MHToUFJSUux128ZOHP/4Hm4evNjuRXrU6sGEVhNulo0ISnM8S6SFoDJwddZbrPnh/zg7/BFYvx4aN8alX38W+4zhqWZPYTaZiUuOy9TbPq8IiQrh88Of898T/83X46YnLimO8Nhw/Er7MbzpcKY/OJ3GFRszsfVE+tfvz9gWY6lRpgarjq/iyKUjfHzgY1b9vSrbem1Tcv1K+/F0i6eZ0WkGIoJ7MXcqlayU70/8H+//mI8PfMzm85tZ8fcK9l/cnyNBaVSxEUP9hxIcFcyKv1fkk7W5S7HsiwAwCZgKrFVK/S0iNTEcCzWaPMdRUBpUaJBhe0R8BDGJMRmcD1cMXIFPqbR54caPH09cXBwvvvgixYsXZ+a8mWn2Sf/H/7/u/2d/f/baWQCOhh11ejyzyUybHlOgxxSYfQ3mzYN58xix/jo8dJISg9oh1syR5T3L3/mFySGFJQWyLfOm2WSmrW9b2vq2BWDuw3MBqFOuDt4lvOn2dTd2WazOjjkYc3K8/t1rdad7re72bX6l/fJ93MoSaSFFpdjt+ivsL6eJtdJT3LU4X/f7moe+eqjAv6vbJUeCYh2M3+7w+TygUwBr8oXsWijpb5iWSAvFXYtTsWRFp+WnTJlCQkICr776KlHRURTzL5Zm3zZV2zjdz9aF4ujZbXvNEEW2bFmYMQOmTDFysMydS7tnfuN4OYh3+Qxemg2enrdwFW6fwiIoOZ06Cxmv8e3Wa4tUkF9EJ0RzPf46gD2mmO1cshMUG2aTuVAFtbwVsvNDmWN9/V86PxSdsVGTb1T2MhJtZScoV2KvcCPxhhHV1dt5VFcb06ZNY/78+WxYv4Fi3xfjXOg5biTe4GrcVfvgaHpsXSg7g3YCcL5NiSEAACAASURBVDXu6s3jZRJFFi8vePFFOH+eqC8+JaY4NJ2xCMxmI+/9pexjlN0pd5Og2KbV2q7xrQiKsym5+T0V19YKg5vnYHvNLI5XeswmMxeiL9xxOP+CILsWytfW11l5bYhGkxnFXIoZibYyubk4ehcHRwUTFBmUo6fBCRMmULZsWYY+OZSfXv+Jwy0OA9k/QTuGUsnx8dzc8Bo+hgdCnmeWRx/G74yHd9+FDz+EIUNgwgRo2TLrOm4T23WzRW12dSmY4c+giCAEoapX5pkmPNw8qOBZgbAbYQBcvnGZuKQ4PNw8sqw3sym5ZpOZ2KRYrsVdo5xnuTs/iWxw/I3azsH2avuNKKU4fPgwa9euZf/+/YSGhuLm5kbdunXp3bs3VWpWIVWlciHqQqYPN4WV7PxQDlpft2PE1jqeixkbNZock5UvSno/kpwMgNp44okn6PxKZ2IvxDKg+wC4lLMumds5nohgLu3HNnMqrFsHp07BmDGwejW0amUsX3wB6Xxl7hTbGEJSapL95lYQWKIsVPGqYp9SnRnpr6XjU39m9RaWsPCZHcfWJbpp0ybatWtHixYteO+997h8+TI1atSgQoUK/PrrrzzxxBO8OehNOFPwLcrbIdtZXiIyQ0SuAKeA0yISLiJv5L1pGs1NshMUTzdjPOLctXNcjL6YY0EBaN+lPYzC8E9ZAid2nsi0rK3bIv3xbqU7w34ettz2Fy4Yr7GxRkgXX19j7MVJzLDbwfH6FORNKqfCayuTU5uzqje/BSUoIghXccXNxRBN2zn4JPswcMBAevToQXh4OAsWLCAsLIxDhw6xbt3/t3fm8VFVZx//Ptn3CSEkJIHJAkFWDZgiKOKKCloRFERFi4q4QC2tFBV8LVZFi9parUvVSn3rboHiK1VAFEUkyiIisi/JEHYhCVsIJDnvH3cmTJZJApklxOfr537m5t5z73nOXLy/Oec853n+w8cff8yOHTuYM2cOMdEx8BY8/8zzfrHZmzQ0h/I74DzgF8aYBGNMK+Ac4DxnThRF8Qv1JdpylDjITc0lSILI255Xb1RXT/c2qYYBfxoASTBm5Bjuu+8+jh2rnbLXdd9Tra9OYbTZYOxYWL0aFi6EAQMsD7FOnaz999+HslOPR+UocVR5VJ1OgtJYm5uToDgOWLlY2tus+Zw+7frAKtgxbQdz585l6tSprFmzhrFjx9K6dfUhuKCgIAYNGsSSvCXQAz54/gOeeOIJv9jtLRrqodwM3ODM7Q5UeXiNBG7xpWGK4o7dZvc4ZOMocZDVKou02LQqd9OTFRSAFYdW0O7edowdO5Y///nPnH/++Wys0UtwlT3V+uoNWCgCF1wA770H27bBo49aw2LXXw+pqfDrX8N33zW6XXAi8VS/9v0Azy/W8vJySkpKOHjwIIcPH6a0tNSrE9muKM4nIyh92/VFkHrFwNU+T/dNjEokIiTCr0NeVYtgj8G+t/fBTGid2Zq1a9fy4IMPEh4eXu89Em2JJNyYQPaF2UyaNInZs0+fRY4NTcqHGmNqBZYxxuwVkfoHQhXFi7j/0iw5WoKIkBGfwZur3rSGuJyrpBdvW1yt/Mnce0vRFs5rfx5/m/g3LrroIkaPHs2ZZ57JY489xvjx4wkODj4R9PEU63OVKzxQWJXn3p35m+ezft96+qf3p9MDE3j78mSSv1nNZV9uJ/TVV62hsbPOgltvZfH5GXTpcj4JkQmUlZexYOsCBmUPAmDt3rUs2LqA3YcsAc6KzCJ6RzSvvfYac/8+l58Kf2Lfjn0cLjnM8cPHOXjgYC1bQkNDSUpKIjk5mZSUFLp06UKPHj3o0aMHXbt2bfDFCJBfnM9HGz7iyPEjlFWUnZSgdGjVgdTYVI9isPfwXl5c+mK1a2oiIlXBRcsry/l448dc1ekqRHwTitBR4uC89udRVlwG/4RVO1dBfxj90Gjs9sb/m0xvlU7SqCRsh2zcdPNN/PjDj6SnN/8J+oYEpXafv3HnFMWruAvK899aY8v39r6XO/7vDgB6pfSi+Ggxi7ctJiEyodFzGmDNiyREJrC/dD9np1gBHq+99lr69u3LPffcw4QJE3j77bd59tlnOav3WSREJtA7rfcp1efejpqCUlFZwVXvXMWximOc1/48fnPOb7j9v2MA+NuEvzH276/Cu+9aE/fjx/OLYNjc5wwS7v0j/7aXMHLuGNaOXUvH+I7c+tKtfPPVN1AI7IJRU0YBsJ71rA9aD62wtiTomdmTa3pew5bDW3hj5Rvc2/teUqJTKCkpYffu3ezatYtt27bx6aefVsVBCw8P57zzzuPiiy/mkksuITc3l5CQ2q+Thz9/mH+tspxFBSGnbU6D31HPtj2JDInk7NSz6507e2HpCzzyxSMESzBnJp9Z73fuKHHw4foPufb9a1l6x1JyU73vUVdRWUHhgULC94Yz5+E5SLHw9gdvM27zOPrY+5zUvdLj09m0fxMTpk1g1OWjGDlmJIvmLvK6zd6mIUE5S0QO1HFcgAgf2KModeL+It5StAVBqnKSF/62kLS4NK4+42r+54L/ITo0ul4305pEhkZS+NtCDh8/TOvIE+PaqampzJo1iw8++ID77ruP/v37c91117HokUV07dSVQdmDTro+l/DU9ZLceWgnxyqs32n5xflV7QPYWrwVWrWCu++Gu+9m66L/Y+b9V3PbGgdl119PalgIw1rBre9fxWrHbg4dsuKeZWRm0PPinuT2yuXMs84krUMaqWmpBAdbrsPnTz+fjMQMHr7+YZ5a/BREQb/r+jGs27Ba9pWXl7Nx40Z++OEHvvnmGxYsWMBDDz3EQw89RFJSEtdddx3XX389/fr1IygoqMruc9ufy+wRswkLDiMuPK7B76hDQgeOTLY83ew2u8cYZFuLt5IWm8a6ceuICYvxeD97nJ1PNn/ClqItgNUT9YWg7Dq0i/K15bz1xFskJiTyWd5n9OzZkxGMOOl72eOsxY2lsaVwAXw17yvmzJnDlVde6XW7vUm9gmKM8YnDuogMA6YAXYDexphlzuMDgCeBMKwe0O+NMbWWjIrIFOAOwJUvdJIx5r++sFVpHsSFx2ELt7Fx30Z2HtwJWKFQ4iPiSYuz1jWIyCmHNIkMjaxTFESE4cOHc9VVV/H0008zbdo0ZsyYwdChQ5kwYQLnnHPOSQ2f1Jc73HWsd1pvlm5fyqb9m7CF20iOqR6P6siRI/y7YB0Tw+Cx5DCOHq7g6LFjsBu67d7MzeHhVGQJWTdcyf1TZkEdPQcXGfEZdUYaqIuQkBC6dOlCly5dGD7cipG2d+9ePvvsM2bMmMH06dN58cUXSU1N5bbbbmPMmDE4ShxckH7BKT8Xu83Of9b9B2NMre/ZUeIgIz6jXjEB69f+zoM72bhvY73tayp/ee4v8C7Yu9lZOHchqampDV/kAbvNzoGyA6zavQr6QsK6BCZNmsTAgQOrxLo5EijLVmNFLv6yxvGfgF8aY3pgpR3+V80L3fiLMSbHuamY/Ayw2+x8Xfg1xvnf14Vfn9RcSVOIiori4YcfJj8/n8mTJzN//nz69u1LTk4Ozz//PDt27GjUferLHe461q99v2rtaxvUlu+/+J6JEydy7rnnEh8fz8SbJ8IXcORQKXfdcw89ft2DkN/BxMeG8efBV/LMNsP9j38EyckwapQVrLK0tFad7qkBXOtVTuaF26ZNG66//nref/999uzZwzvvvENOTg6PP/44GRkZOP7uoGJTxSlP8Nttdo+55k/Ga8z1fbqu8yaVlZXcf//9PPM/z0A2vPnhm00SEzjRI1/kWATB0GNYD1atWsXMmYEN8NkQAREUY8xaY8z6Oo5/58oZD/wIRIpIwzN/ys+C9Pj0anGZVu9Z7TdBcZGYmMijjz7Ktm3bePnllwkODubee+8lLS2NPn368PDDDzNv3jxKSko83sNTBsqC4gI4BLYdNvgaVr+0mi2PbeHLsV+y4YUNPPvss4gI48ePZ8TUEXA/mDGGp595mqPZRymPg/ldw/nxL5NI/j18+9eJMGiQJSbXXAOJiTB0KPzrX7B/f5Ute4/spfR4aS1hOVliYmIYMWIEc+bMYcuWLdw9/m7YBm9PfJvc3Fw++OADKipqu33Xhye331PxGnP92/GmoJSVlXHTTTcxbdo0+l7TF0ZA59TOTb5vTZtDzgqhc+fOTJ06tVlndGxstOFAcC2wwhjjyQF/nIjcAiwD7jPGFPnPNCUQuHJouHMyk+/eJC4ujjvvvJM777yTNWvWMGvWLGbPns3jjz9OZWUlYM3BdO7cmbS0NJKSkrDZbISFhVG6upTN+zbzuxW/48CBA+zZs4etW7eybtM6OAp/4A/OSiDxjET6XNmHBeUL2PPXPcTHxgNw6+xbYaW1+n3XoV3VhqscJQ6OhEHosBFwb084fhy++AJmzbJW6M+aBcHB0Lcvg3LaMuMYbCsu8GrMr4yMDG74zQ28EPUC46PGM2f6HIYPH06nTp2YOHEiN998M2FhYQ3ex11Q3Oc9dh/azfHK4416/nVFN/AGRUVFDBkyhC+++IInn3ySbd23sXb12kbNEzVErWgBB7fxu/G/46677mLx4sX069evyXX4Ap8Jioh8CrSt49RkY0y9jtUi0g34E3CZhyIvAY8Cxvn5DHCbh3uNAcYAJ+W2pzQ/PEWTDTRdu3ala9euTJ48mYMHD5KXl8fy5ctZu3Yt69ev58svv2T37t0cPXq02nWvLnqVuLg4WrduTVZWFofbH6YspoxXbnuFqz67CqLh7kvuJjkmmQWzF7C/fD/xWILi/lJcvnM5ZRVlVcdrBWEMDYVLL7W255+HZcusXssnn9Dzb/9mBXB0Zl/+nFbMJx1hucn3yvfiKHFACIwZPYanJz7NzJkzeeKJJxg9ejRTpkxh0qRJ3HbbbfW6H7sEo2aSrMYEmnThmreqeW1TcDgcDBw4kI0bN/LWW29x4403MvjdwV7795gck0xoUCjHK61EcI4SBzf95iYeeOAB/vrXvzZbQfHZkJcx5lJjTPc6tobEpB0wC7jFGLPZw713G2MqjDGVwKtA73rseMUYk2uMyW3Tpk1TmqQEGNf/rEnRSdVyhzcnYmNjGTBgAA888ABvvPEGeXl55Ofnc+TIEY4dO8bhw4d58tMn4WHI353P9u3bWbVqFbNnzybu6jjOHnI2V15xJUlJVuh9T6lsHSUOuid1B6haXNk9qTuFBwrZWryVqNAoEiITahsYFAS9e1uBKZcvp2DdN9xyDazt3parNsA7M2DdI/up7NXTCv/y0UdQz/BdfVRFAba1Jzg4mGHDhrF8+XI++eQT2rdvzz333EPHjh156aWXqqVldic+Ip6YsJhaInAyguKKEg3Wd+SKEn2q5OXl0adPH7Zv3868efO48cYbq2zy1r/HIAmqWm3fPak7R8uPUiql3HbbbfznP/9h797ac0oe2bXLWixbXOwV2+qjWbkLiEg8VkbIB4wxi+spl+L25xCsSX6lhVO1qNDtJdvcBMUTIkJoaChRUVF0Su0EQbV/Kbu/kOpqq6u8a/7AtfrdJSj92vejvLKcb7d/i91mb5T3WUrHHN7MEe4ZGU/S7+FPTw/hkQvhaFQYvPAC/PKXVm6X3FwrDP9HH0FR40aXHSUOEiITqnlhiQiXX345ixcvZt68edjt9iphefHFF2sJi/vCxJr3dv+eGsJVzvWdNRRw0hOvvvoq/fv3JzIyksWLF3PhhRdWs6muYdlTpabNjhIHo0aNory8nHfeeafui4yBzZvhzTfhrrugc2dISYERI6xhTx8TEEERkSEiUgj0BeaIyFznqXFAR+BhEVnp3JKc17wmIq5B1Gki8oOIrAIuAjSu2M+A01lQ3HHZvGbvGopKiygqLaLwQCFFR4vqFJSarsb5xfmUVZTRPak7tnAbSwqXANDPbr14lhQuafT3EhYcRkpsCnmFeVQGQbsB1/LHC2Huqw9QtHMrFQs+tfK2xMRYw2UugenSBW69FV5+GVauhPLauTvqiwIsIgwYMICvvvqK+fPnY7fbGTt2bJ3CUtfiRkeJw3Ilj7A1qp1VL2d7/SFoPFFWVsadd97JmDFjuPjii1m6dCndunWrOn/o2CH2l+736r/HmjYXlBTQo0cPevbsyRtvWOmnKS2FRYvgT3+yHC/atoWOHeHmm+Gdd6z9adPg22/BD2tYAjIpb4yZhTWsVfP4Y8BjHq4Z7bZ/s++sU5orKbEphAeHkxmfCUB4cDgpMSkNXNX8cOW4GDlrZK1zGfEZAGTFZ1W97EOCQkiOTqaguIB3V7/LDTNuqCqb2SqTlbtWEhsWS6+UXifuY8totD2Z8ZnsOLiD0KBQzm1/LgBD3x8KwMWZF/PKva+QE/4MeW8sptuWgyx6dxqVeUu4YM4c+Oc/rZtERZ0IwZ+TAzk5bN9fgL11Zr11iwiXXnopl1xyCQsWLGDKlCmMHTuWqVOn8uCDD3L77bdjj6u9uLGxOW9cZLWyvs9TCZK5fv16Ro4cybJly3jwwQd59NFHqxaGujjZHlOjbI7PIkiCOM9+HgA7dm2E4iX8KiuL8TNmsK5bNzpv2HBCzLOzYeBA6NvX2rp1s5wv/Ehz9vJSlGqEBIUw7+Z5nNH6DACuPuPqgCWLagqJUYnMHD6z1kstMjSSX3b6JQATzp3AL8/4JSFB1v+irmGfZTuWERESwXNXPMeADgNIjklmsWMx3ZO60zmxM28OeZN9pfu4pvM1jbbnhUEvsDB/IWcknkFmq0zeu+49dh7cyez1s1m2Yxnf7fqOQ8cOsbRoNd0uGsWze//GzNQSjjx4mMjCXZCXd2J77jlwRmn+OgT2ZOyCT0dbItOjhzUEk5RkBcJ0w11YPvvsM/7whz8wbtw4nnjiCXoO68me6OqJtk52vmLCuRO4qtNV2G12giSoUYJSWVnJ3//+d+677z4iIyOZOXMmQ4YMqbOsVwWlogK2buV3P2Vz05HbSR87mbXzhU5/fBAqDdcB44GZx44xacIEOPdc6NMHmsEcsQqKclrRP71/1X61HO6nGUO61P1icpEck1ytfXabnR/3/ogt3Ea6LZ07zrZimOWm5lZzp73pzJtO2paz2p7FWW3Pqvp7eDdrFXx5ZTmf53/OD7ut3Og13YoLD24nOysbsrLAOTHN8eOwfj2lS5fwwqtjuO54vOWq/I9/nKgwPh7OOMMSl86drf1OnSAjA4mO5pJLLuHiiy/ms88+Y8qUKXz07EcQC0/GPcmD9z5IRIQVPfictHMa3cak6CSSoi1Hh9TY1GpZPuti5cqVjB07lq+//prLLruM6dOn17tY8aQFxRjYuxe2boUtW6yo0mvXWtuGDVBWRiwQC9CuHdvbRrPqgvYMv/lJ0nr2pM/w4cw8fpxJzSy8vQqKopwG2G12Pt70MXHhcX6bN3LV89U2a9K/rhAt2a2zq18UGgrdu7M5CX7vgPbXPkpGt+GwY4eV72X9eli3ztrmzwfXXICLxERLWNLTuSQjg4uHDeP1X2Qz/u3p/PH+P/Las69y+52j2VeyD3vfU/se6gs4mZ+fz9SpU/nHP/5B69atmT59OrfcckuD4U4cJQ6CJZiU2BRLLA4ehJ07q28FBZZ4bN0K+flw2M3TTAQyM625qcsvtz5dW3w80968nKLSIoZffTUAQ4cOZeLEiRQUFDSrKMQqKIpyGuDKjb56z2pu6H6D3+oEyCvMA6yXZunxUvYc3lP1tyeq/WIXgbQ0a7v88uoFDxywRGbjRuuFm59vfa5eDXPmIEePcjvWIrPPgak7d/LolEcJAj57/XE6dfmQgZ07E9W6tdXzsdmsLT4e4uIgIsLawsOrtm5BbcnbvcJ66QOmspKly5fz8uuv86/33iMoKIixo0bxyLhxtAoLgxUr4OhRawK8tNRyvy0qqrZdu/YzBu8LIeR/O1viUVca59hYSzQ6drQSp2Vmntg6dIBIzwFG7XF2vt/1fdXf11xzDRMnTuTDDz/k17/+db3P0Z+ooCjKaYDr5X7k+BG/91COHLdejo4SB4UHCqvON1pQ6iMu7sRkfk2MgT17OL51M0OfO4870q7m0/jefLl8IX9Z9Cl5JWVcl5dHZF4elwUFMaCykn5Ad6C+mbVXgHLg6/vjmAfMwFp3EAXcCTwAtHv9dXj99fptB0u8WrUiurKEg9ERkNPbctOta7PZas0dNRa7zc7uw7s5Wn6UiJAIsrOz6dChA3PnzlVBURTl5HB/MftLUOpare0+99CQoIQEhdA2pq5gGY1EBJKTCU1OZsXXqczukMjVgyezYUUy//m/T9k0dh1bV25l9uzZfPjhh8x2WPZERkSQ3b49Hdu2pXVUFHHh4UhlJQcOHWL/gQOscGymYH8JFZUQJEKf9HT+npvLiF69iIuIsOqNiLB6DHVtThHBZqvyorrir1mc2/5c3hz65qm3tx7cE7N1TOho1XnFFUyfPp2ysrJGJTvzByooinIaEAhBca3W3lK0haToJPYc3sN3O60UxEnRSfUGkXSUWLnVveWFl25LrxIzR4mDIAkiPSGdDpd24NJLL+W5557D4XCwaNEivvvuOzZs2MCaTZsoLi6uCtQZGxtLfHw8rXt0YkvZUh6/+XHuGn4XCQl1RBQ4CVyJtXz5XNwXt7oEZeDAgbzwwgt89dVXXHLJJT6r+2RQQVGU04A2UW0IDw5vdBpdb2G32dlStIV+9n7MXDuTRY5FCELfdn1Zs3eNx+u8GYbEZYdrLUpBSQFpsWlVLtVguR2np6eTnp7OyJG11/e4s2r3Ks56+Syyz89uspgA7D5sBar0h6C4xzS78MILCQsLY+7cuc1GUJpV6BVFUerGFYIEagc79CWuOs+3nw9Y+TnaxrQlOyEbR4nDYyh1XwiKq76m3ttTSPxTxReLGmvSLq4dglSzOTo6mnPOOYeFCxf6rN6TRQVFUU4T0uPTSY5OJiLEf9m3XbGpXIJSfLSY9Pj0aomvnlr8FF/kn4gT5RoC8mZqAff6miootnAbsWGxp5WguBKzTV85namLpnLk+BFGzhzJrsRdLF++nAMH6srU7n9UUBTlNOHWnFv5dW//evQM6TKEUTmjyGmbw009biI3NZdbzryl6uWZX5zP5M8m89p3r1Vds/PQTipMhU/iWuUX5zc6sZYnPAWcPFVcw1C+Hoq8o9cdlFWU8cRXT7BsxzLe+uEtNsZupLKyksWLPcbS9Ss6h6Iopwk39rjR73X2SunF9MHTAap5MLkm55duX8rxyuO1QuuDd1+wrnu56mvqvetb3HiyOEoc2MJtXkmsVR+PXPQItggb9827ryp6QXRWNEdCjrBw4UIGDhzo0/obg/ZQFEU5aTytogff/GKvWZ83BKVm0q5Tpb6oyt6m5vfQr0M/ItIj+PLLL/1Sf0OooCiKctIkRCYQHRrNooJFgLU+oqLSyhdflVgrrr3X6msV0apafU19gafb0pucaMuFtx0Q6sNVz6KCRbSObE2XxC6Up5WzYsUKj0nK/IkKiqIoJ41rHmL7we2AFUhy16FdgPWCbRXRitjwWJ/V540eCpx6oi13HCUOrzog1IfL7u0Ht1flBTqecpxjx46xYsWKBq72PSooiqKcEjVf6lULD300BOS6Z2xYLLbwxiXWauheTZ1H8UVirfpIik4iLDgMcEs05/Qiz8vL84sN9aGCoijKKeF6iYYHW2E/3KMQ+1JQGpveuDH3aqqgbCvZVu1+viZIgqqGEqsEJRaSUpNYsmSJX2yoj0ClAB4mIj+KSKVbWl9EJENESt3S/77s4foEEZkvIhudn638Z72iKHDiJdo7rTfge0FxDSu5Ml42hdTY1EYn2qoPf6xBqUldqbDbdWv38xUUrOCeQ4G6XBM2G2NynNtdHq5/AFhgjMkGFjj/VhTFj7heZt3adKNVRCscJQ4OlB2g+Gixb3socU2/d2hwKKmxqaeloLgENd2WTptoKySPLctGYWEhu3bt8psddRGonPJrgaZ0WwcDFzr33wAWAvc31S5FURpPzV/KjhKHT4eA3Ovz1v1c4Vw+2vARB49Z+VHObX8uGfEZ1coWFBeweNuJxYMhQSEM7DiwemItP+ESVFc64/a29lBpnXvzkzeZMGqC32ypSXNc2JgpIt8BB4CHjDGL6iiTbIzZ6dzfBXjMBSsiY4AxAHa7/35FKEpLp3NiZ8KDw8lpm8OSwiU4Shw+/cXeObEzESER5LTN8cr97DY7S7cv5Zvt33D1u1dXHR/YcSD/vem/1cqO+3gcH234qNqxpwY8heOAg7S46oEqfU3PlJ5EhUZVZcu02+wcFEsMf/+/v2fAFQOqpXT2Jz4b8hKRT0VkdR3b4Hou2wnYjTE9gd8Bb4tIvctPjRWdru4Iddb5V4wxucaY3DZt2pxSWxRFqU3bmLb8NPEnruh4RdWvfV8KSnJMMnt/v5crOl7hlfvZ4+xsO7CNjfs2AjB35FwGZQ9iS9GWWmU379/M5R0uZ/249awft55WEa3YUrTFr2tQXAw+YzC7J+wmIdKKlGy32dlxbAdt7G1gB2zav8mv9rjjM0ExxlxqjOlexza7nmvKjDH7nPvLgc1ApzqK7haRFADn5x5ftEFRlPqJCYupWiNSdLSIH/f+SEhQCCkxvhkCctXnDew2O8cqjrFsxzIA+tn70SWxS60oyq4Ix10Su9CpdSc6te5Eenx6lYD6W1BEhJiwmKq/023p7Di4g/jMeNjpvSjKp0KzchsWkTYiEuzczwKygdo/F+BD4FfO/V8BHkVKURTfUxUSxPGVVxNr+ZKqVeeORSRGJRIVGoXdZqe0vJSfjvxUVa7oaBGHjx+uleRsa/FWK1ClF5wEmoLdZsdgONz6MByAtQVrA2ZLoNyGh4hIIdAXmCMic52n+gOrRGQl8G/gLmPMfuc1r7m5GD8JDBCRjcClzr8VRQkQrpft97u/9/sv9lPF5S3lbnNd61PqrdrHhQAADLNJREFUGsazx9lZ99M6jlce94obc1Nw2bUz1ppW/nHVjwGzJVBeXrOAWXUcnwHM8HDNaLf9fUDzSFGmKErVS63SVJ42glKXze6Ccnbq2cCJYJfuwpEen06lqax2TaBw1W+SrGE6x0Yd8lIU5TQmJSaFYGu0OuBDQI3FlWgLTiyabHQPxcN+IKgKwhkNxMDerXsDZosKiqIoTSY4KLgqNXGgX7CNxT2tsuuzdWRrIkMiawlKeHA4baJOeIk2J0GJDI2ssi26XTRl28soPV4aEFtUUBRF8QreXnjoD2raLCKWB5dbNkdXsEt37zJXeX8k1moMLnuyOmfBXti6f2tA7FBBURTFK7QEQXHt1+yh1GxT25i2hAaFNpu2uuzo06sPVMCS7wMT10sFRVEUr+AKV9Le5r3EWr7GZbN7PhN7XMOCEiRB2G32gHt4uciIzyBYgrny/CsBWLpiaUDsaI6hVxRFOQ0Z+4ux9Erp1SyGgBrL6F6jyWqVRXLMiehNdpudXYd2cbT8KEESxM6DO+vsibw++HVaRTSPQOe/7fNbLsy4kIvaXQQCa9cGZi2KCoqiKF4hJTaFoV2GBtqMkyIxKpHh3YZXO+YSj8IDhQRLMAZTp6D0T+/vFxsbQ3tb+6qeYXBCMAWbCgJihwqKoiiKG+6uwy5XaH+l+PUGce3i+Kngp4YL+gCdQ1EURXHDXVACke+kqSRnJHN412HKy8v9XrcKiqIoihuu9TTuguI6djqQmZ0JFbBps/+jDqugKIqiuBEeEk7bmLZVgpIUnURkaGSgzWo0Xbt0BeCb777xe90qKIqiKDWoyu9ywP/h6ZtK7llWDN1vv//W73XrpLyiKEoN7DY7P+z+gSAJokubLoE256TonNYZYmH1mtV+r1t7KIqiKDWwx9kpKCmgoKTgtAl26cJus0NrKNjsf9dhFRRFUZQa2G12jpYf5cjxI6fdkFeriFaEtAmhML+Q17973a91q6AoiqLU4KLMi+iS2IUuiV24MOPCQJtzUogIud1zqThcwaSPJvm1bp1DURRFqcGZyWeyZuyaQJtxykwaMomrp1/NbsdujlUcIyw4zC/1BioF8DAR+VFEKt3S+iIiN4nISretUkRy6rh+iohsdys3yL8tUBRFab5kZ2dbO/tg+4Htfqs3UENeq4GhwJfuB40xbxljcowxOcDNwFZjzEoP9/iLq6wx5r8+tldRFOW0ISsri6CgINhXPfukrwmIoBhj1hpj1jdQ7AbgXX/YoyiK0pIICwujXXq7n4egNJLrgXfqOT9ORFaJyOsi4jGGtIiMEZFlIrJs797A5VpWFEXxJ2d0OqPlCIqIfCoiq+vYBjfi2nOAI8YYTytzXgI6ADnATuAZT/cyxrxijMk1xuS2adPGUzFFUZQWRaeOnZAS8aug+MzLyxhzaRMuH0E9vRNjzG7Xvoi8CnzUhLoURVFaHJmZmZhSw6Yd/gsS2eyGvEQkCBhOPfMnIpLi9ucQrEl+RVEUxUlGRgYAW7du9VudgXIbHiIihUBfYI6IzHU73R/YZozZUuOa19xcjKeJyA8isgq4CPitXwxXFEU5TcjMzARgx7YdGGP8UmdAFjYaY2YBszycWwj0qeP4aLf9m31mnKIoSgvAJShlP5VRdLSIhMgEn9fZ7Ia8FEVRlKYTHx9PVEwUFPvP00sFRVEUpQUiIqTZ01RQFEVRlKbTMasjFKmgKIqiKE2kU4dOUAwFxf7JjaKCoiiK0kLJysqC47Bx20a/1KeCoiiK0kJxeXpt3rLZL/WpoCiKorRQXIsbtzv8E8JeBUVRFKWF4uqhFO0s4ljFMZ/Xp4KiKIrSQomJiSEmPgaK/ZNoSwVFURSlBZPaPtVva1FUUBRFUVownTp0wlZqo3VUa5/XpYKiKIrSgunaqSulP5XSNbGrz+tSQVEURWnBZGRkcOzYMXbu3OnzulRQFEVRWjAuTy9/5EVRQVEURWnBdO7cmaFDhxIZGenzugKSD0VRFEXxDxkZGcyYMcMvdWkPRVEURfEKARMUEXlKRNaJyCoRmSUi8W7nHhSRTSKyXkQu93B9poh84yz3noiE+c96RVEUpSaB7KHMB7obY84ENgAPAohIV2AE0A24AnhRRILruP5PwF+MMR2BIuB2v1itKIqi1EnABMUYM88YU+78Mw9o59wfDLxrjCkzxmwFNgG93a8VEQEuBv7tPPQGcI3vrVYURVE80VzmUG4DPnbupwHb3M4VOo+50xoodhOkusoAICJjRGSZiCzbu3evF01WFEVR3PGpl5eIfAq0rePUZGPMbGeZyUA58JYvbDDGvAK8ApCbm2t8UYeiKIriY0Exxlxa33kRGQVcBVxijHG97LcD7d2KtXMec2cfEC8iIc5eSl1lFEVRFD8SSC+vK4CJwNXGmCNupz4ERohIuIhkAtnAt+7XOsXnc+A656FfAbN9b7WiKIriCTnRMfBzxSKbgHCs3gZAnjHmLue5yVjzKuXAeGPMx87j/wVGG2N2iEgW8C6QAHwHjDTGlDVQ516g4BRNTgR+OsVrT1e0zT8PtM0/D5rS5nRjTJuGCgVMUE43RGSZMSY30Hb4E23zzwNt888Df7S5uXh5KYqiKKc5KiiKoiiKV1BBaTyvBNqAAKBt/nmgbf554PM26xyKoiiK4hW0h6IoiqJ4BRUURVEUxSuooDQCEbnCGUp/k4g8EGh7fIWI5IvIDyKyUkSWOY8liMh8Edno/GwVaDubgoi8LiJ7RGS127E62ygWzzmf+yoR6RU4y08ND+2dIiLbnc95pYgMcjvXYOqI5o6ItBeRz0VkjYj8KCK/cR5vyc/ZU5v9+6yNMbrVswHBwGYgCwgDvge6BtouH7U1H0iscWwa8IBz/wHgT4G2s4lt7A/0AlY31EZgEFbQUgH6AN8E2n4vtXcKMKGOsl2d/77DgUznv/vgQLfhFNqcAvRy7sdipcfo2sKfs6c2+/VZaw+lYXoDm4wxW4wxx7BW5w8OsE3+ZDBWegBoAWkCjDFfAvtrHPbUxsHA/xqLPKz4cSn+sdQ7eGivJxpMHXE6YIzZaYxZ4dw/CKzFikbekp+zpzZ7wifPWgWlYRoTTr+lYIB5IrJcRMY4jyUbY3Y693cByYExzad4amNLfvbjnMM7r7sNY7a49opIBtAT+IafyXOu0Wbw47NWQVHc6WeM6QUMBMaKSH/3k8bqK7doP/OfQxuBl4AOQA6wE3gmsOb4BhGJAWZgxQM84H6upT7nOtrs12etgtIwjQmn3yIwxmx3fu4BZmF1gXe7uv/Ozz2Bs9BneGpji3z2xpjdxpgKY0wl8ConhjpaTHtFJBTrxfqWMWam83CLfs51tdnfz1oFpWGWAtkikikiYVj57j8MsE1eR0SiRSTWtQ9cBqzGauuvnMVaapoAT238ELjF6QXUByhxGzI5bakxPzAE6zlDI1JHnA6IiAD/ANYaY/7sdqrFPmdPbfb7sw60d8LpsGF5gWzA8oSYHGh7fNTGLCyvj++BH13txEq3vADYCHwKJATa1ia28x2srv9xrHHj2z21Ecvr5wXnc/8ByA20/V5q77+c7VnlfLGkuJWf7GzvemBgoO0/xTb3wxrOWgWsdG6DWvhz9tRmvz5rDb2iKIqieAUd8lIURVG8ggqKoiiK4hVUUBRFURSvoIKiKIqieAUVFEVRFMUrqKAoig8QkcnOqK+rnFFezxGR8SISFWjbFMVXqNuwongZEekL/Bm40BhTJiKJWJGqv8Za4/BTQA1UFB+hPRRF8T4pwE/GmDIAp4BcB6QCn4vI5wAicpmILBGRFSLygTMOkysvzTSxctN8KyIdnceHichqEfleRL4MTNMUxTPaQ1EUL+MUhq+AKKwV2e8ZY74QkXycPRRnr2Um1grlwyJyPxBujPmjs9yrxpjHReQWYLgx5ioR+QG4whizXUTijTHFAWmgonhAeyiK4mWMMYeAs4ExwF7gPREZVaNYH6wkR4tFZCVWbKl0t/PvuH32de4vBv4pIndgJX5TlGZFSKANUJSWiDGmAlgILHT2LH5Vo4gA840xN3i6Rc19Y8xdInIOcCWwXETONsbs867linLqaA9FUbyMiJwhItluh3KAAuAgVnpWgDzgPLf5kWgR6eR2zfVun0ucZToYY74xxjyM1fNxDz+uKAFHeyiK4n1igOdFJB4ox0qvOga4AfhERHYYYy5yDoO9IyLhzusewopqDdBKRFYBZc7rAJ5yCpVgRc393i+tUZRGopPyitLMcJ+8D7QtinIy6JCXoiiK4hW0h6IoiqJ4Be2hKIqiKF5BBUVRFEXxCiooiqIoildQQVEURVG8ggqKoiiK4hX+HxGuVT2WCmU4AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "%matplotlib inline\n", "\n", @@ -183,7 +212,7 @@ "from sklearn.tree import DecisionTreeRegressor\n", "regr_1=DecisionTreeRegressor(max_depth=2)\n", "regr_2=DecisionTreeRegressor(max_depth=5)\n", - "regr_3=DecisionTreeRegressor(max_depth=7)\n", + "regr_3=DecisionTreeRegressor(max_depth=11)\n", "regr_1.fit(X, distance_list)\n", "regr_2.fit(X, distance_list)\n", "regr_3.fit(X, distance_list)\n", @@ -526,9 +555,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import os\n", @@ -576,9 +603,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Common imports\n", @@ -754,9 +779,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Common imports\n", @@ -845,9 +868,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Split a dataset based on an attribute and an attribute value\n", @@ -953,9 +974,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import re\n", @@ -1157,9 +1176,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -1215,9 +1232,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from __future__ import division, print_function, unicode_literals\n", @@ -1296,9 +1311,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "np.random.seed(6)\n", @@ -1333,9 +1346,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Quadratic training set + noise\n", @@ -1349,9 +1360,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.tree import DecisionTreeRegressor\n", @@ -1370,9 +1379,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.tree import DecisionTreeRegressor\n", @@ -1418,9 +1425,7 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tree_reg1 = DecisionTreeRegressor(random_state=42)\n", @@ -1576,9 +1581,7 @@ { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "heads_proba = 0.51\n", @@ -1606,9 +1609,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", @@ -1666,9 +1667,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", @@ -1694,9 +1693,7 @@ { "cell_type": "code", "execution_count": 17, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", @@ -1710,9 +1707,7 @@ { "cell_type": "code", "execution_count": 18, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "log_clf = LogisticRegression(random_state=42)\n", @@ -1728,9 +1723,7 @@ { "cell_type": "code", "execution_count": 19, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", @@ -1751,9 +1744,7 @@ { "cell_type": "code", "execution_count": 20, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.ensemble import BaggingClassifier\n", @@ -1769,9 +1760,7 @@ { "cell_type": "code", "execution_count": 21, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", @@ -1781,9 +1770,7 @@ { "cell_type": "code", "execution_count": 22, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "tree_clf = DecisionTreeClassifier(random_state=42)\n", @@ -1795,9 +1782,7 @@ { "cell_type": "code", "execution_count": 23, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", @@ -1842,9 +1827,7 @@ { "cell_type": "code", "execution_count": 24, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "\n", @@ -1984,9 +1967,7 @@ { "cell_type": "code", "execution_count": 25, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -2066,9 +2047,7 @@ { "cell_type": "code", "execution_count": 26, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "bag_clf = BaggingClassifier(\n", @@ -2079,9 +2058,7 @@ { "cell_type": "code", "execution_count": 27, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "bag_clf.fit(X_train, y_train)\n", @@ -2623,9 +2600,7 @@ { "cell_type": "code", "execution_count": 28, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.ensemble import AdaBoostClassifier\n", @@ -2836,9 +2811,7 @@ { "cell_type": "code", "execution_count": 29, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -2899,9 +2872,7 @@ { "cell_type": "code", "execution_count": 30, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -2972,9 +2943,7 @@ { "cell_type": "code", "execution_count": 31, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -3037,9 +3006,7 @@ { "cell_type": "code", "execution_count": 32, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "\n", @@ -3097,7 +3064,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/doc/pub/DimRed/ipynb/DimRed.ipynb b/doc/pub/DimRed/ipynb/DimRed.ipynb index 3346cfd0c..4e16b7edc 100644 --- a/doc/pub/DimRed/ipynb/DimRed.ipynb +++ b/doc/pub/DimRed/ipynb/DimRed.ipynb @@ -90,10 +90,41 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, - "outputs": [], + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE before scaling: 0.01\n", + "R2 score before scaling 0.94\n", + "Feature min values before scaling:\n", + " [1.00000000e+00 1.75112333e-03 1.88175808e-04 3.06643291e-06\n", + " 3.29519047e-07 3.54101347e-08 5.36970220e-09 5.77028490e-10\n", + " 6.20075129e-11 6.66333070e-12 9.40301079e-12 1.01044805e-12\n", + " 1.08582802e-13 1.16683138e-14 1.25387764e-15 1.64658316e-14\n", + " 1.76941915e-15 1.90141878e-16 2.04326566e-17 2.19569438e-18\n", + " 2.35949438e-19]\n", + "Feature max values before scaling:\n", + " [1. 0.99922162 0.99954946 0.99844384 0.99877143 0.99909913\n", + " 0.99766667 0.997994 0.99832144 0.99864899 0.9968901 0.99721718\n", + " 0.99754437 0.99787166 0.99819906 0.99611414 0.99644097 0.9967679\n", + " 0.99709494 0.99742208 0.99774933]\n", + "Feature min values after scaling:\n", + " [ 0. -1.67308715 -1.71582205 -1.07418914 -1.08690741 -1.10010237\n", + " -0.84668391 -0.85262847 -0.85872372 -0.86497757 -0.72035565 -0.72389523\n", + " -0.72748339 -0.73112275 -0.73481605 -0.63675506 -0.63925612 -0.641773\n", + " -0.64430643 -0.64685723 -0.64942628]\n", + "Feature max values after scaling:\n", + " [0. 1.81455713 1.78177476 2.35852069 2.33516117 2.31139802\n", + " 2.81588196 2.79387424 2.7716289 2.7491428 3.22056133 3.19937701\n", + " 3.17796962 3.15633993 3.13448867 3.58681504 3.56649162 3.54594778\n", + " 3.52518439 3.50420236 3.48300264]\n", + "MSE after scaling: 0.00\n", + "R2 score for scaled data: 0.98\n" + ] + } + ], "source": [ "%matplotlib inline\n", "\n", @@ -207,9 +238,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -262,9 +291,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -303,9 +330,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -369,9 +394,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)" @@ -387,9 +410,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "correlation_matrix = cancerpd.corr().round(1)" @@ -689,9 +710,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Importing various packages\n", @@ -722,9 +741,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -768,9 +785,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -800,9 +815,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Common imports\n", @@ -1100,9 +1113,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -1164,9 +1175,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame(X)\n", @@ -1215,9 +1224,7 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "print(df.cov())\n", @@ -1235,9 +1242,7 @@ { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# extract the relevant columns from the centered design matrix of dim n x 2\n", @@ -1305,9 +1310,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# diagonalize and obtain eigenvalues, not necessarily sorted\n", @@ -1624,9 +1627,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -1671,9 +1672,7 @@ { "cell_type": "code", "execution_count": 17, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "W2 = V.T[:, :2]\n", @@ -1695,9 +1694,7 @@ { "cell_type": "code", "execution_count": 18, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "#thereafter we do a PCA with Scikit-learn\n", @@ -1719,9 +1716,7 @@ { "cell_type": "code", "execution_count": 19, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "pca.components_.T[:, 0]." @@ -1743,9 +1738,7 @@ { "cell_type": "code", "execution_count": 20, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -1797,9 +1790,7 @@ { "cell_type": "code", "execution_count": 21, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "pca = PCA()\n", @@ -1820,9 +1811,7 @@ { "cell_type": "code", "execution_count": 22, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "pca = PCA(n_components=0.95)\n", @@ -1867,9 +1856,7 @@ { "cell_type": "code", "execution_count": 23, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import KernelPCA\n", @@ -1907,7 +1894,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/doc/pub/How2ReadData/ipynb/How2ReadData.ipynb b/doc/pub/How2ReadData/ipynb/How2ReadData.ipynb index 8713448e5..ec0d96bce 100644 --- a/doc/pub/How2ReadData/ipynb/How2ReadData.ipynb +++ b/doc/pub/How2ReadData/ipynb/How2ReadData.ipynb @@ -427,9 +427,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np" @@ -445,9 +443,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "n = 10\n", @@ -466,9 +462,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -487,9 +481,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -513,9 +505,7 @@ { "cell_type": "code", "execution_count": 5, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -537,9 +527,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -557,9 +545,7 @@ { "cell_type": "code", "execution_count": 7, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -577,9 +563,7 @@ { "cell_type": "code", "execution_count": 8, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -601,9 +585,7 @@ { "cell_type": "code", "execution_count": 9, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -621,9 +603,7 @@ { "cell_type": "code", "execution_count": 10, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -642,9 +622,7 @@ { "cell_type": "code", "execution_count": 11, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -663,9 +641,7 @@ { "cell_type": "code", "execution_count": 12, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -685,9 +661,7 @@ { "cell_type": "code", "execution_count": 13, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -707,9 +681,7 @@ { "cell_type": "code", "execution_count": 14, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -793,9 +765,7 @@ { "cell_type": "code", "execution_count": 15, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Importing various packages\n", @@ -818,9 +788,7 @@ { "cell_type": "code", "execution_count": 16, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -867,9 +835,7 @@ { "cell_type": "code", "execution_count": 17, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -896,9 +862,7 @@ { "cell_type": "code", "execution_count": 18, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "data_pandas = pd.DataFrame(data,index=['Frodo','Bilbo','Aragorn','Sam'])\n", @@ -915,9 +879,7 @@ { "cell_type": "code", "execution_count": 19, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "display(data_pandas.loc['Aragorn'])" @@ -933,9 +895,7 @@ { "cell_type": "code", "execution_count": 20, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "new_hobbit = {'First Name': [\"Peregrin\"],\n", @@ -958,9 +918,7 @@ { "cell_type": "code", "execution_count": 21, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -988,9 +946,7 @@ { "cell_type": "code", "execution_count": 22, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "df.columns = ['First', 'Second', 'Third', 'Fourth', 'Fifth']\n", @@ -1023,9 +979,7 @@ { "cell_type": "code", "execution_count": 23, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "b = np.arange(16).reshape((4,4))\n", @@ -1142,9 +1096,7 @@ { "cell_type": "code", "execution_count": 24, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "# Importing various packages\n", @@ -1273,9 +1225,7 @@ { "cell_type": "code", "execution_count": 25, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -1317,9 +1267,7 @@ { "cell_type": "code", "execution_count": 26, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", @@ -1489,9 +1437,7 @@ { "cell_type": "code", "execution_count": 27, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", @@ -1694,10 +1640,8 @@ }, { "cell_type": "code", - "execution_count": 28, - "metadata": { - "collapsed": false - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "# Common imports\n", @@ -1744,10 +1688,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "from pylab import plt, mpl\n", @@ -1780,9 +1722,7 @@ { "cell_type": "code", "execution_count": 30, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "\"\"\" \n", @@ -1809,10 +1749,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [], "source": [ "# Read the experimental data with Pandas\n", @@ -1853,11 +1791,81 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " N Z A Element Ebinding\n", + "A \n", + "1 0 0 1 1 H 0.000000\n", + "2 1 1 1 2 H 1.112283\n", + "3 2 2 1 3 H 2.827265\n", + "4 6 2 2 4 He 7.073915\n", + "5 9 3 2 5 He 5.512132\n", + "6 14 3 3 6 Li 5.332331\n", + "7 19 4 3 7 Li 5.606439\n", + "8 24 4 4 8 Be 7.062435\n", + "9 29 5 4 9 Be 6.462668\n", + "10 34 6 4 10 Be 6.497630\n", + "11 40 6 5 11 B 6.927732\n", + "12 46 6 6 12 C 7.680144\n", + "13 52 7 6 13 C 7.469849\n", + "14 57 8 6 14 C 7.520319\n", + "15 64 8 7 15 N 7.699460\n", + "16 72 8 8 16 O 7.976206\n", + "17 78 9 8 17 O 7.750728\n", + "18 85 10 8 18 O 7.767097\n", + "19 93 10 9 19 F 7.779018\n", + "20 102 10 10 20 Ne 8.032240\n", + "21 110 11 10 21 Ne 7.971713\n", + "22 118 12 10 22 Ne 8.080465\n", + "23 128 12 11 23 Na 8.111493\n", + "24 137 12 12 24 Mg 8.260709\n", + "25 146 13 12 25 Mg 8.223502\n", + "26 154 14 12 26 Mg 8.333870\n", + "27 164 14 13 27 Al 8.331553\n", + "28 174 14 14 28 Si 8.447744\n", + "29 183 15 14 29 Si 8.448635\n", + "30 192 16 14 30 Si 8.520654\n", + "... ... ... ... ... ...\n", + "238 3089 146 92 238 U 7.570125\n", + "239 3099 146 93 239 Np 7.560567\n", + "240 3109 146 94 240 Pu 7.556042\n", + "241 3118 147 94 241 Pu 7.546439\n", + "242 3127 148 94 242 Pu 7.541327\n", + "243 3136 149 94 243 Pu 7.531008\n", + "244 3144 150 94 244 Pu 7.524815\n", + "245 3154 149 96 245 Cm 7.515767\n", + "246 3162 150 96 246 Cm 7.511471\n", + "247 3170 151 96 247 Cm 7.501931\n", + "248 3177 152 96 248 Cm 7.496728\n", + "249 3186 152 97 249 Bk 7.486040\n", + "250 3194 152 98 250 Cf 7.479956\n", + "251 3201 153 98 251 Cf 7.470500\n", + "252 3209 154 98 252 Cf 7.465347\n", + "253 3216 155 98 253 Cf 7.454829\n", + "254 3224 156 98 254 Cf 7.449225\n", + "255 3232 156 99 255 Es 7.437821\n", + "256 3241 156 100 256 Fm 7.431780\n", + "257 3248 157 100 257 Fm 7.422194\n", + "258 3256 157 101 258 Md 7.409675\n", + "259 3264 157 102 259 No 7.399974\n", + "260 3275 154 106 260 Sg 7.342562\n", + "261 3280 157 104 261 Rf 7.371384\n", + "262 3289 156 106 262 Sg 7.341185\n", + "264 3304 156 108 264 Hs 7.298375\n", + "265 3310 157 108 265 Hs 7.296247\n", + "266 3317 158 108 266 Hs 7.298273\n", + "269 3338 159 110 269 Ds 7.250154\n", + "270 3344 160 110 270 Ds 7.253775\n", + "\n", + "[267 rows x 5 columns]\n" + ] + } + ], "source": [ "A = Masses['A']\n", "Z = Masses['Z']\n", @@ -1877,10 +1885,8 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false - }, + "execution_count": 5, + "metadata": {}, "outputs": [], "source": [ "# Now we set up the design matrix X\n", @@ -1901,10 +1907,8 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false - }, + "execution_count": 6, + "metadata": {}, "outputs": [], "source": [ "clf = skl.LinearRegression().fit(X, Energies)\n", @@ -1921,11 +1925,31 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean squared error: 0.04\n", + "Variance score: 0.95\n", + "Mean absolute error: 0.05\n", + "[ 0.00000000e+00 7.06492086e-03 -1.73091052e-01 -1.66020213e+01\n", + " 1.17385778e+00] 15.212327334149492\n" + ] + }, + { + "data": { + "image/png": "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r7/Oli1buP7669m4ceO4C9fQkMZ1j0yoNjdnR+/HfRvftmhoSY95XvZSvYyf6urQqL7GT3U1flGoq3EH9sqVKwH47Gc/yx133DH6/NVXX33Q9z766KPE43FWrVrFiy++SLlc5q677uKTn/zk276vp+fItMSbm7N0dQ2MPvYHPYLAMOCVxjwvFW+uLzkw1dWhUX2Nn+pq/KZTXb3dHx7jDuwRxWKRRx99lOOOO47169ePa072tddeO+b9uVzuoGE9kaziyDxsXcMWEZFwOORBZ7feeiutra3cfvvttLa2ctttt437vQ8//DAvvPACa9asmdSpYPbw3xh2WtewRUQkHA65hZ1MJlm6dCktLS0YY3jyySe59NJLx/Xe97///bz//e8/5EIeScY3WGUDFthJtbBFRCQcDrmF/ZnPfIYNGzbgeR6+7+N53kSUa8IE+QBjwI+D42jhFBERCYdDbmFnMhk+97nPTURZqsLkKnOwg1hlARgREZEwOOTABrj++utZunTpaOBdc801R7RQEynIB4DBj4PyWkREwuKQA/vTn/70mMdha6WaYqVLXC1sEREJk3EH9kMPPcRll13Giy++OBp0xhgsy+L000+fsAIeaaZUmdIVOGphi4hIeIw7sI855hgATj311AkrTDWYssEAgWthK7FFRCQkxj1MetmyZQCcfPLJ7N69m7Vr17J7925OOumkCSvcRAiGF00xrlrYIiISHoc8r+m6666js7OTE088kc7OTq677rqJKNeEMaUADAQuamGLiEhoHPKgM8/zRpcVfc973sNTTz11pMs0ofZ2iauFLSIi4THuwP7e976HZVlYlsXKlSs59thj2bhxI4lEYiLLd8SZogFjCFxLo8RFRCQ0DhrY1113HbfddhunnnoqxWJxzN7XZ5xxxoQWbiKYcoChcg3bVl6LiEhIHDSwd+zYAcC73vUurrjiCu67777R18azReZUY4r7TutSYouISDgc0qCzIAjGPH7wwQePaGGqwZRMZeEUXcMWEZEQOWhg79sKfXOL1Bhz5Es0wUxpeC1xjRIXEZEQOWiXeGtrK1/5yld4xzveQT6fp1wuE4vFgHB2KQelfedhh6/8IiISTQcN7FWrVrFu3TrWrl1LLBbj1FNPZc6cORxzzDF0dHRUo4xHVFCstLCNq7AWEZHwOGhgn3baaZx22mmjj0ulEhs2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2CIhFAQBX//613n3u9/N+vXrD/t4r776KsuXL+fRRx8d89zxxx9/wPecd955Bz3u9ddfz4MPPjj67z3veQ9Llizhy1/+8mGXWSRqFNgiIfSjH/2IBQsW8LGPfYwNGzYc9vHWrVvHZZddRj6fZ8eOHUAlsE844YTDPvaIb33rWzz++OPcdddd02IjBpFq0xZMIiHT39/P97//fe655x7K5TIbN27c79d94QtfoLW1db+v3XvvvSSTydHH69at48Mf/jAXXHABjz76KJ/+9KdZt24dH/jAB45Imb/97W/z8MMPc/fdd9Pc3HxEjikSNQpskZC57bbbuPzyy5k7dy5BEFAqldi1axezZ88e83W33nrruI5XLBbZunUrxx13HPF4nJtuuok/+ZM/YfPmzW/pEr/mmmvYtWsXAJ2dnaOB7jgO9913336P/53vfIeHHnqIH/7wh7S0tBzqxxWRYQpskRDZvHkzP/rRj6ivr+ehhx4CKtsHrl+//i2BPd4W9oYNG5g3bx6ZTIZ3vOMddHR08PTTTzNr1ixqa2vHvO/73//+6P3zzjuPBx988G3Lu2rVKn7yk59w9913v6V8InJoFNgiIXLTTTfx1a9+lQ996EOjz914441s2LDhLYPAxtvC3vdatWVZnHfeedx6661vO+BsPO68805++MMf8sMf/pB58+Yd1rFERIEtEhqPPfYYnZ2dfPCDHxzz/NKlS1m9evXvfdx169aNCecLLriAH/7wh4c1pWvr1q3cfPPNzJw5k+uuu27Ma5///Of5wz/8w9/72CJRpf2wRUREQkDTukREREJAgS0iIhICCmwREZEQUGCLiIiEgAJbREQkBBTYIiIiIaDAFhERCQEFtoiISAj8/2KntVQm6PgfAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# The mean squared error \n", "print(\"Mean squared error: %.2f\" % mean_squared_error(Energies, fity))\n", @@ -1960,11 +1984,92 @@ }, { "cell_type": "code", - "execution_count": 36, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " N Z A Element Ebinding Eapprox\n", + "A \n", + "1 0 0 1 1 H 0.000000 0.000000\n", + "2 1 1 1 2 H 1.112283 1.112283\n", + "3 2 2 1 3 H 2.827265 2.827265\n", + "4 6 2 2 4 He 7.073915 7.073915\n", + "5 9 3 2 5 He 5.512132 5.512132\n", + "6 14 3 3 6 Li 5.332331 5.332331\n", + "7 19 4 3 7 Li 5.606439 5.606439\n", + "8 24 4 4 8 Be 7.062435 7.062435\n", + "9 29 5 4 9 Be 6.462668 6.462668\n", + "10 34 6 4 10 Be 6.497630 6.497630\n", + "11 40 6 5 11 B 6.927732 6.927732\n", + "12 46 6 6 12 C 7.680144 7.680144\n", + "13 52 7 6 13 C 7.469849 7.469849\n", + "14 57 8 6 14 C 7.520319 7.520319\n", + "15 64 8 7 15 N 7.699460 7.699460\n", + "16 72 8 8 16 O 7.976206 7.976206\n", + "17 78 9 8 17 O 7.750728 7.750728\n", + "18 85 10 8 18 O 7.767097 7.773058\n", + "19 93 10 9 19 F 7.779018 7.773058\n", + "20 102 10 10 20 Ne 8.032240 8.032240\n", + "21 110 11 10 21 Ne 7.971713 7.971713\n", + "22 118 12 10 22 Ne 8.080465 8.080465\n", + "23 128 12 11 23 Na 8.111493 8.111493\n", + "24 137 12 12 24 Mg 8.260709 8.260709\n", + "25 146 13 12 25 Mg 8.223502 8.223502\n", + "26 154 14 12 26 Mg 8.333870 8.333870\n", + "27 164 14 13 27 Al 8.331553 8.331553\n", + "28 174 14 14 28 Si 8.447744 8.447744\n", + "29 183 15 14 29 Si 8.448635 8.448635\n", + "30 192 16 14 30 Si 8.520654 8.520654\n", + "... ... ... ... ... ... ...\n", + "238 3089 146 92 238 U 7.570125 7.573113\n", + "239 3099 146 93 239 Np 7.560567 7.558304\n", + "240 3109 146 94 240 Pu 7.556042 7.558304\n", + "241 3118 147 94 241 Pu 7.546439 7.546439\n", + "242 3127 148 94 242 Pu 7.541327 7.541327\n", + "243 3136 149 94 243 Pu 7.531008 7.527912\n", + "244 3144 150 94 244 Pu 7.524815 7.527912\n", + "245 3154 149 96 245 Cm 7.515767 7.513619\n", + "246 3162 150 96 246 Cm 7.511471 7.513619\n", + "247 3170 151 96 247 Cm 7.501931 7.499329\n", + "248 3177 152 96 248 Cm 7.496728 7.499329\n", + "249 3186 152 97 249 Bk 7.486040 7.482998\n", + "250 3194 152 98 250 Cf 7.479956 7.482998\n", + "251 3201 153 98 251 Cf 7.470500 7.470500\n", + "252 3209 154 98 252 Cf 7.465347 7.465347\n", + "253 3216 155 98 253 Cf 7.454829 7.452027\n", + "254 3224 156 98 254 Cf 7.449225 7.452027\n", + "255 3232 156 99 255 Es 7.437821 7.434800\n", + "256 3241 156 100 256 Fm 7.431780 7.434800\n", + "257 3248 157 100 257 Fm 7.422194 7.422194\n", + "258 3256 157 101 258 Md 7.409675 7.409675\n", + "259 3264 157 102 259 No 7.399974 7.399974\n", + "260 3275 154 106 260 Sg 7.342562 7.342562\n", + "261 3280 157 104 261 Rf 7.371384 7.371384\n", + "262 3289 156 106 262 Sg 7.341185 7.341185\n", + "264 3304 156 108 264 Hs 7.298375 7.298375\n", + "265 3310 157 108 265 Hs 7.296247 7.297260\n", + "266 3317 158 108 266 Hs 7.298273 7.297260\n", + "269 3338 159 110 269 Ds 7.250154 7.250154\n", + "270 3344 160 110 270 Ds 7.253775 7.253775\n", + "\n", + "[267 rows x 6 columns]\n", + "0.009883615646716184\n" + ] + } + ], "source": [ "\n", "#Decision Tree Regression\n", @@ -2011,9 +2116,7 @@ { "cell_type": "code", "execution_count": 37, - "metadata": { - "collapsed": false - }, + "metadata": {}, "outputs": [], "source": [ "from sklearn.neural_network import MLPRegressor\n", @@ -2065,7 +2168,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, "nbformat": 4, "nbformat_minor": 2 } diff --git a/doc/pub/How2ReadData/ipynb/Results/FigureFiles/Masses2016.png b/doc/pub/How2ReadData/ipynb/Results/FigureFiles/Masses2016.png index 780dd5514..47a5a2bd0 100644 Binary files a/doc/pub/How2ReadData/ipynb/Results/FigureFiles/Masses2016.png and b/doc/pub/How2ReadData/ipynb/Results/FigureFiles/Masses2016.png differ diff --git a/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb b/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb index 46a14ec2b..7a2c440ad 100644 --- a/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb +++ b/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb @@ -3519,9 +3519,29 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inputs = (n_inputs, pixel_width, pixel_height) = (1797, 8, 8)\n", + "labels = (n_inputs) = (1797,)\n", + "X = (n_inputs, n_features) = (1797, 64)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# import necessary packages\n", "import numpy as np\n", @@ -3569,9 +3589,17 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using TensorFlow backend.\n" + ] + } + ], "source": [ "from keras.utils import to_categorical\n", "from sklearn.model_selection import train_test_split\n", @@ -3603,8 +3631,10 @@ "metadata": {}, "outputs": [], "source": [ - "import tensorflow as tf\n", - "\n", + "#import tensorflow as tf\n", + "import tensorflow.compat.v1 as tf\n", + "tf.disable_v2_behavior()\n", + "tf.reset_default_graph()\n", "class NeuralNetworkTensorflow:\n", " def __init__(\n", " self,\n", @@ -3761,7 +3791,210 @@ "cell_type": "code", "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.092\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Test accuracy: 0.075\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Test accuracy: 0.114\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Test accuracy: 0.150\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Test accuracy: 0.078\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Test accuracy: 0.114\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.108\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.106\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Test accuracy: 0.122\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Test accuracy: 0.053\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Test accuracy: 0.053\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Test accuracy: 0.078\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Test accuracy: 0.086\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.333\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.175\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Test accuracy: 0.222\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Test accuracy: 0.283\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Test accuracy: 0.150\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Test accuracy: 0.108\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.753\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.703\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Test accuracy: 0.778\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Test accuracy: 0.739\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Test accuracy: 0.203\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.975\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.969\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Test accuracy: 0.975\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Test accuracy: 0.975\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Test accuracy: 0.106\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Test accuracy: 0.106\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.978\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.983\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Test accuracy: 0.972\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Test accuracy: 0.761\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Test accuracy: 0.078\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Test accuracy: 0.078\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Test accuracy: 0.089\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Test accuracy: 0.106\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Test accuracy: 0.086\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Test accuracy: 0.114\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Test accuracy: 0.078\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Test accuracy: 0.078\n", + "\n" + ] + } + ], "source": [ "DNN_tf = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", " \n", @@ -3784,7 +4017,28 @@ "cell_type": "code", "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAJgCAYAAABmwww9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3XmcjfX7x/HXzJwzuxnLLNaIMJaRbI2EKJHIEr+oLIMiS5Y232wVipJJliQpJWUrEomoEC2UFDFZxjLGLGbMDDNjlnN+f0wd7mbGkplzzJz38/GYx8N9znXu+7rOOffxOdf9ue/jYrVarYiIiIg4IVdHJyAiIiLiKBoIiYiIiNPSQEhERESclgZCIiIi4rQ0EBIRERGnpYGQiIiIOC0NhETsaMqUKXTp0oUuXbpQv3592rdvb1vOyMi46vVs3ryZKVOmXDYmNjaWXr16XW/KeUybNo369etz+vTpQl+3iIi9ueg6QiKO0bZtW2bNmkVoaKijU7lqFy5coHXr1rRo0YIKFSrw9NNPOzolEZHroo6QyA2kfv36jBw5kvbt2/P777+zcuVKevbsSdeuXWnTpg1Lly4F4NNPP2Xw4MEA9OnTh9dff51HHnmEtm3b8swzz2CxWDh58iS33XYbALNnz2bs2LEMHDiQDh068PDDDxMbGwvA3r176d69O507d2bYsGF069aNH3/8Md/81q1bx0033UT//v1Zvnw56enptvuOHj1Knz59uP/+++ncuTPr16+/7O1t27bl999/tz3+n+WTJ0/SunVrBgwYQPv27YmLi2P+/Pn06NGDzp07c88997Bp0yYAsrOzeeWVV2jfvj0dO3Zk3LhxZGZm0r59e7Zv325b9/jx41m8eHGhvEYiUrJoICRyA8nKyqJNmzZ89dVXVK9enRUrVrBgwQJWr15NREQEr732Wr6PO378OB9++CGff/45P/zwAz/99FOemF27djFr1iw2bNiAn58fy5YtIzs7mxEjRjBy5EjWrl1Lnz59+PPPPwvM7+OPP+aBBx4gNDSUwMBAPvvsM9t9Y8aMoUOHDqxbt44FCxYwc+ZMzp07V+Dtl3P69GmGDh3KV199RVZWFjt27GDJkiWsXbuW0aNH8+abbwKwdOlS9u3bx5o1a/jiiy84f/4869evp3fv3qxYsQKAc+fOsXnzZrp163bF519EnI/J0QmIiFGTJk0A8PHxYf78+Xz33XdERUVx4MAB0tLS8n1MmzZtcHV1xdfXl6pVq5KcnEzlypUNMc2aNcPX1xeAunXrkpycTGRkJACtW7cGICwsjJo1a+a7jX379vHnn3+yYMECALp27coHH3xA7969SU5O5sCBA/Ts2ROAChUq8PXXX3P27Nl8b78Sk8lEw4YNAahUqRLTp09n7dq1HDt2jN9++43z588DsGPHDrp06YKnpycAb7zxBgApKSnMnTuXxMRENmzYwF133YWfn98VtysizkcdIZEbjLe3N5DbFenatSvR0dE0btyYUaNGFfiYfwYCAC4uLuQ39S+/GDc3tzyxbm5u+W5j6dKlmEwmHnzwQdq2bcuHH35IVFQUW7duxWQy2db7jyNHjtjW9e/b/5kYfum2MzMzbf92d3e3rXPfvn306tWLc+fO0aJFCwYNGmSL+yfmHwkJCcTFxeHn50eHDh34/PPPWbVqFb179863JhERDYREblB//PEHZcuWZejQobRs2ZJvvvkGgJycnELbRo0aNXB3d2fr1q1A7nyhyMhIw8AFcjss69atY/78+WzZsoUtW7awdetWHnjgAd5//318fX2pV68eq1evBiAmJobevXuTkZGR7+2pqamULVuWP/74A4A9e/YQHx+fb44///wz9evXJzw8nGbNmrF582bbc9C8eXO++OILMjMzsVgsvPDCC6xbtw6ARx55hA8++ACr1UqDBg0K7TkTkZJFh8ZEblAtWrRg5cqVdOjQAS8vLxo0aEDZsmU5duxYoW3DZDIxe/ZsJk2axMyZM6lWrRoBAQGG7hHAZ599Ro0aNQgLCzPc/sQTT3D//fcTGRnJ66+/zosvvsiHH36Ii4sLU6dOJTAwsMDbn376aV544QWWLVtGvXr1qFevXr45durUiY0bN9KxY0fMZjPNmzcnOTmZc+fO0atXL6Kjo+nevTtWq5VmzZrRp08fAEJCQvD39y+SSwiISMmh0+dFnNz06dMZOHAgAQEBxMTE0KVLF77++utiP6fm+PHj9OnThw0bNuDl5eXodETkBqWOkIiTq1SpEv3798dkMmG1WpkyZUqxHwTNmjWL5cuXM27cOA2CROSy1BESERGRYuOfw+Lz58/Pc3bsn3/+yfjx4zl37hxNmjThxRdfzHNSxb9psrSIiIgUC7/9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GAjJDaoQB0LFkh0GQjesIhwIFQt2GgjdsErwPLWroYFQ0dEFFUVERMQgx4kuM+g8lYqIiIj8izpCIiIiYqDT50VEREScgDpCIiIiYnAj/PSFvagjJCIiIk5LHSERERExyLE6T5/EeSoVERER+Rd1hERERMTA4kR9EuepVERERORf1BESERERA501JiIiIuIE1BESERERA501JiIiIuIENBASERERp6VDYyIiImJg0WRpERERkZJPHSERERExyHGiPonzVCoiIiLyL+oIiYiIiIFOnxcRERFxAuoIiYiIiIF+dFVERETECagjJCIiIgY5Vl1HSERERKTEU0dIREREDHQdIREREREnoI6QiIiIGFh0HSERERGRkk8dIRERETHQHCERERERJ6CBkIiIiDgtHRoTERERA11QUURERMQJFMuOkDXjgqNTcBgXd3dHp+BYrs49ds85e9bRKTiMS2qqo1NwKFd/P0en4FguztOhuBHoR1dFREREnECx7AiJiIhI0cnRBRVFRERESj51hERERMTAgvPMyVJHSERERJyWOkIiIiJioDlCIiIiIk5AHSEREREx0I+uioiIiDgBdYRERETEwKLfGhMREREp+dQREhEREQPNERIRERFxAhoIiYiIiNPSoTERERExsOiCiiIiIiIlnzpCIiIiYpCjH10VERERKfnUERIREREDzRESERERcQLqCImIiIiB5giJiIiIOAF1hERERMRAc4REREREnIA6QiIiImKQo46QiIiISMmnjpCIiIgYWHTWmIiIiEjJp46QiIiIGGiOkIiIiIgTUEdIREREDCxWzRESERERKfE0EBIRERGnpYGQiIiIGOTgare/a7F27Vo6duxIu3bt+Oijj/Lcv2/fPh588EEeeOABBg8eTEpKyhXX6dRzhJq1v5XwF3tidjdxdN8JIoa+S1pqxlXFuLq6MGxmX0LvrA3Az1/t5Z1xnxgeG1w1gLnbXuR/XV7jr1+j7FVWoWjWLpTwid1z695/kognF+d5bv7x1Jxwog5Es2rORjtneX2a3RtK+MQH/35tTxLx5Pt5X/8CYnxL+zDi9UepEVqFjLQLbPzoez5/ZwsAvqV9GPpqb26qXREPTzOfzFzH5mU/OKLEAjXr2IiBLz+M2cPM0b3HeH3QW6Slpl91zIrYdzkTnWiLXT5jDT+u+4XXv3nRsI5qoTfx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KjOffJ/xiwZjcjcRExXPa0MXUbNhVUZF9GVYm8mOTtGuboRDVvbiYr0RJulco2b9Zzo6BYfxjyw+1+YpChlBHlcOKsFcit3eWni8oovnHLzC4pp4ztEpOJQ1JeXKQSXYhoQFdt1e6OeT7Lat3x940W7byo8uqCgiIiIGuqCiiIiIiBNQR0hEREQMit+kmf9OHSERERFxWuoIiYiIiIEznTWmjpCIiIg4LXWERERExEAdIREREREnoI6QiIiIGDjRSWPqCImIiIjzUkdIREREDDRHSERERMQJqCMkIiIiRk40SUgdIREREXFaGgiJiIiI09KhMRERETHQZGkRERERJ6COkIiIiBhYNVlaREREpORTR0hEREQMNEdIRERExAmoIyQiIiJG6giJiIiIlHzqCImIiIiBzhoTERERcQLqCImIiIiROkIiIiIiJZ86QiIiImKg6wiJiIiIOAENhERERMTIase/a7B27Vo6duxIu3bt+Oijj/Lcf+TIEfr06cMDDzzAwIEDSU5OvuI6NRASERGRG15sbCwREREsXbqUNWvWsGzZMg4dOmS732q18sQTT/DYY4/x+eefU6dOHRYsWHDF9WqOkIiIiDhMSkoKKSkpeW738/PDz8/Ptrxjxw7CwsIoXbo0AO3bt2fDhg0MHz4cgH379uHt7U2rVq0AGDJkSL7r/TcNhERERMTAnpOlFy9ezJw5c/LcPnz4cEaMGGFbjouLIzAw0LYcFBTE3r17bcvHjx8nICCA5557jv3791OrVi0mTJhwxe1rICQiIiIO069fP7p165bn9ku7QZB76OvfXFwuDtiys7P56aefWLJkCaGhobzxxhtMmzaNadOmXXb7xXIg1Gr0j45OwWGi0/0dnYJD1faNdXQKDpWU5e3oFBzm10mNHJ2CQ3lHnXJ0CuJM7HhBxX8fAitIcHAwu3btsi3HxcURFBRkWw4MDKRq1aqEhoYC0KlTJ5588skrrleTpUVEROSGd8cdd7Bz504SExNJT09n48aNtvlAALfddhuJiYkcOHAAgC1btlCvXr0rrrdYdoRERESkKN14F1QMDg5m9OjR9O3bl6ysLHr06EGDBg147LHHePLJJwkNDWXu3LmMHz+e9PR0ypcvz6uvvnrF9WogJCIiIsVC586d6dy5s+G2d955x/bvW2+9lZUrV17TOjUQEhERESP96KqIiIhIyaeOkIiIiBipIyQiIiJS8qkjJCIiIkZ2vLK0o6kjJCIiIk5LHSERERExyOfXLEosdYRERETEaakjJCIiIkbqCImIiIiUfBoIiYiIiNPSoTEREREx0unzIiIiIiWfOkIiIiJi4KLJ0iIiIiIlnzpCIiIiYqSOkIiIiEjJp46QiIiIGOmsMREREZGSTx0hERERMdIcIREREZGSTx0hERERMVJHSERERKTkU0dIREREjNQREhERESn51BESERERI11HSERERKTk00BIREREnJYOjYmIiIiBiyZLi4iIiJR86giJiIiIkRN1hDQQKkDsL8n8uTQGS5YVv6qe3DrkJszeboaYmJ/OcnD5aVxcwOxr4tbBVfAp7+GgjK9P8p4zRK84ijXbglcVH6oOrI2b18W3x5ntp4n76qRtOScth8ykC4RGhGH2dyd+czQJ353GkmnBu5ovVQfWxtVcfBqO0bvP8duSeCzZVkpX9eD2oeXzvN4nfkzl908ScHEFdx83mg0tT6ny7mRfsLBrYSyJhzKwWqyUq+VFk0HBmDyKT/1xvyQT+Uk0liwrpW7yInRwVUyX1B+99QxR6+Jsy9lpOWQkZnLX3FBcTC7sX3iclGPpmDxcqXRXOap2CHJEGf9JWJPqDO7bCrPJjcPH4pn+5gbS0jMNMe3uqkvvbk2xWuHChSxmvbOZg4diAQjvfQdt7wwhx2Ih8nAsM+ZuJDMrxxGlFIpm7UIJH98Ns4eJo/uiiRi5mLRzGfnGPjW7P1EHolk1d5Odsywazly7Mys+n9R2dCElmz3zTtDkqZtpO6sO3kEe/Ln0lCEmJ9PCr7OP0/Tpm2n9WgjBjf34471oB2V8fbJSMjm28CDVR9Sl3vRmeAR6Eb38qCGm3J3lqTO5CXUmNyFkUiPM/maq9LkFs787Sbviidt0iprPNqDuy02wZlkMg6YbXUZyNj/OiaHlM5XoNLs6vsFm9iyJN8RkX7Cwc9YpWj5biftev5lKTX355d3c/wj3rzqDNcfKfa9X476ZN5NzwcL+T884opT/JDMliz/mH+O20dVpFVEP7yAPDn5sfC9XalWOFtPr0GJ6HZpPDcG9tJk64VXwKG3mwAcncfN0o+XrdQmbUpv4PSnE7U52UDXXxt/Pi/892YEJr6zm0aHvEnP6LIP7tTLEVKlUhqH9W/PMCysZOGoxHyzfyZT/dQWgYf0qtG0ZwsDRH9B/xPt4e3nQvVMjR5RSKPzL+TLmzX5MDp/PoLCJxByLJ3xi9zxxVWqWZ9pnY2jZpYkDsiwazly7s7PbQCgqKorY2Nz/OFasWMGUKVNYv369vTZ/TeJ/S6F0DW98K+R2d6rdW47obUlYrRd7hVaLFavVSlZa7je/nAwLrubied2F1D+S8K5eCs/y3gAEtK1I4s5YQ72XOr3uBCY/dwLbVAQg8ftYgjtUxuRrxsXVhSr9alL2jmC75X+9Tv92nnK3eFKqojsAt7QvzbFtKf96vQErZKVZAMi+5PUOrOtNvR4BuLi64OrmQpnqnpxPyLJ7Hf9Vwt5U/Gt441PBE4Aq7QKI2Z5Y4Ot/9PPTePiZuOmeQABSjqRRsWXZ3PpNrgTe5s/pH5Pslv/1aHZbNQ78dZqTMWcBWP3lHtq1rmuIycrKYfqcrziTdB6AA4diKVvaB5PJFVdXF9zNJjzcTZhMrri7u5GZmW33OgpLozZ1idxzjFNHcrt/6977jrY9bs8T13lgGzYt3cG2NbvsnWKRceband0VD40tWrSIOXPmkJOTQ8WKFaldu7btr1atWlSuXPmKG3n//ff58MMPsVgshIWFERMTQ7t27Vi1ahVHjx5l2LBhhVJMYUk/k4VXObNt2bOcO9npFrLTLbbDJSZPNxo8VoXvx/+FuZQbVgvcObmmo1K+LpmJF3Ave/GQnntZDyzpOVgycgyHxwCyU7OI23CSkJcufuu9cDqd7OqZHJqxl8ykTHxr+1Ppoep2y/96pSVk4x1w8fX2LmcmK834epu9XGk6uDybnj+GRyk3LBYr7aZWBaBCQx/bY8/HZRH5RRJNh5S3bxHXIeNMJp7l3G3L/7zfc9IthsNjAJkp2RxdF8cdr4TYbvO/xYdT2xIpU9sXS7aF2J+ScHErHl8KggJKEZeQaluOT0jF18cDby932+Gx03EpnI5LscUMH9iG7386RHa2hV/2HmfXnihWvDuY7Owcjkcn8flXv9m9jsISWLEs8dGJtuX4U0n4+Hnh7etpOEQ0b+zHADRsFZJnHcWVM9eeH2c6a+yKA6G3336bV199lQYNGnDixAkiIyM5ePAgW7du5a+//gKgZs2afPzxxwWuY9WqVaxfv56EhAQ6derEDz/8gIeHBz179qRHjx433EAIS/43u1zSP0s5nk7kytPcNTMEn/IeHFkfz67Xj9Lq1dq4uBSP/wRsCvjmj2veOhK+PYV/o3J4BHpdfHiOlZQ/kqgxqj4uZleOLTjAqZVHqfLILUWVcaEqqPPhckn9Z49l8MeKBDrOuplS5d05uC6R7a9F0+H1arbXO/FwBttePUnN+0pTqYmvXXIvDNYC3u/59YtPbE4gqLE/3kEXB84hfSpxcEk0O8b+iUcZM+VC/Tgbea5oki1kLvm8xwEslrzvCU8PM/8bdR9BAaV45oWVAHS8pz4VgkvTrf88srMsjB3ZgWED2jBrweYizbuoFPR85FgKepOUHM5cu7O74kDI19eXu+66C5PJRFBQEI0bNzbcf/LkSduAqCAWiwV3d3cqVarEgAED8PC4+CGak3PjTSr0CjCTdOi8bTkjMQuzjxsmz4vfjuP3pFK2to9tcvTNHQLYtziazNQcPPyK1xx0c1lPzh+++K04M+kCbj4m3Dzc8sQm/RhP5UeNAxxzaXdKNw6wdY/K3hFMzJpjRZt0IfIOMHPmr4vf+NLPZOPu64rJ8+JIIGbPeQJCvChVPrdzUrNDGX59P872eh/bnsKud07TeFAw1Vr6272G6+EVYCb5kvf7hcTMPO/3f5zemUSd/sYucHa6hVqPVMLdN/f1P7LmNN7BnkWbdCGJjU+lbq0KtuWAcqVISU0n44Lx0GZQQCmmTejOsRNnGDlume3wV6vmtdj03X7S03Pj1361l1GD77ZfAYUsPjqRkMY325YDKpQmNek8F9IyL/OoksGZa8+XfmLjoscff5wVK1YUeH/lypVp06bNZddx77338uijj5KTk8OIESMAOHDgAA8//DD33XffNaZc9AJvLUXSX2mci7kAwLFNCZRvavzPzb+6F2f+PMeFs7kfgDE/JeMd5F7sBkEAfqFlOH84hYzTaQAkbDmF/23l8sRln8/iQmw6vrf4GW4v3TSQpJ/jsWTmYLVaOftLAj43l7JL7oWhQkMfEiLTST2V+4H318YkKjU15l+muifx+9JIP5v7H2D0T6n4BJnx8DNxfGcKu9+N5a4JVYrdIAigXAM/zh46z/mY3MHg8a8TCGqSt46sc9mkxV6gdC1jt+vEpngOLY8B4MLZLE5uOUPFO8sUfeKF4Odfo6hbuyKVK5QGoMt9t7L9x0OGmFK+nsx+pRdbd/7FizO+MMwBijwcS6vmNXH7u5vQqnlN9h+MsV8BhWz3N/sJaVyditVzz/q7v39rdn65x8FZ2Ycz1+7srvi/9rRp08jKymLbtm20bNmSOnXqULt2bby8vK70UJuRI0fy888/4+Z28Rumu7s7I0aMoHXr1v8t8yLk4W+m4RM3sXvmUSzZVryDPbht+E2cPZzGb/OP0/q1EALql6JG5yB2vHgIV5MLZl8TzZ69+corvwGZ/dypOqg2R+fsx5JtxSPIk2qPh3D+aCrHFx2kzuTcsyMuxKZjLu2Oi8k4fg68uyI557I4MOkXrBYr3lV9qRxewxGl/Cee/ibChlVg+4xoLNlWfMubCRtRkTOH0vnprdPc9/rNlA/1IaRLObZMPI6ryQV3XzdaPZfbGfnt7zPMfnrrtG2dgSFeNHmseMwT8vA3EzqkKnsijmLJtuAd7EHosGokHz7PHwuO02J6HQDSYi/gUdqMq8n4TbF61/LsnRvF9qf3A3BLj/L41/DJs50b0dnkNKbN+pKXxnbBbHIj+vRZpkasp/YtwTw7vAMDRy2m630NCQrwo2VYTVqGXZwHOHrCMpas+IFhA9vwwdwBZGXlcCgqnoj5xfd06uSEVGY++T7jFw3G5G4iJiqe14YuombDqoyK6MuwNpMdnWKRceba8+VEc4RcrAVNkPjbiRMnOHDgAAcPHuTgwYMcOHCAU6dOUblyZb766it75Wnw9G8POWS7N4Lo9OLXcShMtX1jHZ2CQyVleTs6BYf5dVLxPS29MHjvuPwUBCnZNiQssOv2qr8x027bOjJqjN22lZ8rdoSqVKlClSpVaNeune22tLQ0IiMjizQxERERcRAn6gj9p+sIeXt707Bhw8LORURERMSuit/MXhERESlSznQdIf3EhoiIiDgtdYRERETESB0hERERkZJPAyERERFxWjo0JiIiIkY6NCYiIiJS8qkjJCIiIgY6fV5ERETECagjJCIiIkZWlyvHlBDqCImIiIjTUkdIREREjDRHSERERKTkU0dIREREDHTWmIiIiIgTUEdIREREjNQREhERESn51BESERERA80REhEREXEC6giJiIiIkTpCIiIiIiWfBkIiIiLitHRoTERERIx0aExERESk5FNHSERERAx0+ryIiIiIE9BASERERJyWBkIiIiLitDRHSERERIw0R0hERESk5FNHSERERAx01piIiIiIEyiWHaFpwbsdnYKIQ6RZMh2d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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAJgCAYAAABmwww9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3XlYVOX///EnMOyCiAiKe26Yu4m5YS6pWZZZmpYrmmVqabanZG5ZZprl0mL2sTSz8ltqi2naR/PjkmlmmYj7wo4gi4DAzPz+oN/YCVRMGMB5Pa5rrstz5n3Oud/MQe7zPvd9xslqtVoRERERcUDOpd0AERERkdKijpCIiIg4LHWERERExGGpIyQiIiIOSx0hERERcVjqCImIiIjDUkdIpAyaOXMmffv2pW/fvjRt2pRevXrZlrOzs695f1arlREjRpCWlnbZmD///JNGjRrxwQcfXE/TRUTKFSc9R0ikbOvWrRsLFiygWbNm/3ofeXl5NGnShD179uDr61toTEREBFlZWezbt49Nmzbh4uLyr48nIlJemEq7ASJy7Y4cOcKsWbNIS0vDbDYzYsQI+vXrR0ZGBi+88AKnT5/G2dmZZs2aMW3aNF544QUABg8ezNKlSwkKCjLsLz09na+//povv/ySMWPGsHHjRnr37g1Abm4uc+bMYdu2bbi4uNCmTRsiIiIACl2/cOFCMjMzmTx5MgDz58+3LT/44IMEBARw7NgxBg8eTEhICPPmzePixYskJibSuXNnZsyYAcDmzZtZsGABVqsVb29vpk+fzsaNGzl9+jRz5swB4Oeff+a1115jzZo1dvm5i8iNRx0hkXImNzeXCRMmMG/ePEJCQkhLS+OBBx6gfv36REVFkZOTw9q1a8nLy+Oll17i7NmzzJ49m3Xr1rFy5cpCK0JfffUVDRo0oE6dOvTr14/ly5fbOkIrVqzg8OHDrFu3DldXVyZOnMiGDRtISkoqdP3VVKpUiW+//RaACRMm8OSTT9KmTRsyMjLo1q0bgwcPplKlSjz33HOsWLGCkJAQvvvuO+bNm8f06dPp3bs3aWlp+Pr6snr1agYNGlS8P2ARcSjqCImUM8eOHePMmTM899xztnU5OTkcOnSIdu3asWDBAoYNG0aHDh0YNWoUNWvWJC8v74r7XLVqFUOGDAGgb9++vPnmmxw4cIDmzZuzY8cO7r33Xtzd3QF46623ABg9enSh6+fPn3/FY91yyy22f7/++uts3bqVJUuWcPz4cS5evMiFCxc4fvw4jRs3JiQkBIDevXvbOmZhYWGsX7+e3r17s2vXLmbOnFnkn52IyD+pIyRSzlgsFvz8/Fi7dq1tXWJiIr6+vri7u7Np0yZ2797Nrl27GD58OFOnTqVr166X3d/u3bs5ceIE7777LkuXLgXAzc2N5cuX88Ybb+Di4oKTk5MtPikpCYvFctn1Tk5O/H3oYW5uruF43t7eQP4A7kGDBtG0aVPCwsK46667+PXXX7FarZhMxv+aLBYLUVFRhISEMHjwYGbPnk1eXh69e/fG09PzX/wURUTyadaYSDlTv359nJ2d+eabbwCIjo6mT58+REZG8vHHHxMREUFYWBjPPvss7dq148iRI7ZOS2GVoU8++YR+/fqxdetWtmzZwpYtW1i0aBEbNmwgPj6eDh06sH79enJycrBYLERERLBhw4bLrvf39+fgwYNYrVYuXLjAjh07Cs0jJSWFyMhInnnmGXr06EF0dDRnz57FYrHQsmVLoqKiOHbsGAAbN260jXMKDQ0lNzeX5cuX67aYiFw3VYREyhk3NzeWLFnCK6+8wjvvvENeXh5PPfUULVq0oF69euzZs4e77roLDw8PqlevzpAhQ3BycuL2229n4MCBvPPOO9SrVw/IryRt3rzZUF0C6NSpE02bNmXFihVMmDCB2NhY7rvvPqxWK+3bt2fw4MFYrdZC12dkZLB9+3Z69uxJ1apVadWqVaF5+Pv7M2rUKPr27Yufnx+VK1emVatWnDp1irZt2zJnzhyeeeYZzGYzPj4+zJ0717btfffdx+bNm6lfv37J/aBFxCFo+ryIlCu5ubk89thjDBgwgF69epV2c0SknNOtMREpNyIjI+nQoQP+/v706NGjtJsjIjcAVYRERETEYakiJCIiIg5LHSERERFxWOoIiYiIiMMql9Pn76j0cGk3ofRYLKXdglJlvcoTkm90zr4+pd2E0uNTobRbUKos0bGl3YRS5dDnPvBd7CK7Hs8S19Bux3KuGmW3YxV6/FI9uoiIiEgpKpcVIRERESk5Fux396G0KzKlfXwRERGRUqOKkIiIiBiYrfarCJV2R0QVIREREXFY6giJiIiIwyrtipSIiIiUMRYc59u3VBESERERh6WKkIiIiBjYc/p8aVNFSERERByWKkIiIiJiYLZqjJCIiIjIDU8VIRERETHQrDERERERB6CKkIiIiBiYVRESERERufGpIiQiIiIGGiMkIiIi4gBUERIREREDPUdIRERExAGoIiQiIiIGjvNNY6oIiYiIiANTR0hEREQclm6NiYiIiIEeqCgiIiLiAFQREhEREQOz4xSEVBESERERx6WKkIiIiBho+ryIiIiIA1BFSERERAzMOJV2E+xGFSERERFxWKoIiYiIiIFFs8ZEREREbnwOXRFq27MZ4S/dj6ubiRMHzzL/if+QmZ5dpJgKft48/sYQ6jWrSXbmRTau/B/r3t8CQMNWdXh09iA8vNxwdnHm8wUb2PLZrtJI8Yra9mxO+NT7cXV35cTBM8wf/2Eh+Rce4+zsxNi5Q2jWsREAezYdYOmUzwBoHhbCI7MG4uLiTFpyBu+88Ckn/jhj9/yupm2vFoRPH4Crmysn/jjD/LFLC+Z/mZgpK8YTXC/IFle1dhUObI/k5Qfe5NbeLXnmvUdIOHvO9v5TPWaRlWHcd1kS2r0J4S/2zT/PD0Xz5qSVZF6mvZPeHMqpyBjWvLPZsD4g2I/5Xz/DuNtfIS35gj2aXSxCu4QQPumO/NwPx/Lmi1+QeeFiobGTXh3Aqah41izbZlv36a4IkuLTbMtrlm7lx/X7S7zd16Okzv1aIcFMeHsknhXcsVph2UufsfeH3+2d3jVx5HP/SjRGyAFUrFyBSQvDmTFsMQ+3nULsqUTCp95f5JhHXxlI9oVsHmkXwcQer9CmRzPa9moOwJSPHmPF7LWM6zydiAELeGTmAwTfFGj3HK+kYmUfJi0eyYyhi3i4zYvEnkwk/OX+RY7pPqgDNRpU5bH2EYztOJXmHRsRdm8bvHw9iVgxjqURn/FYx6m8PeljJv/nMVzdylafu2KAD0+9O5oZD73Nw62eI+5kAiOnDyxyzMwhCxnbPoKx7SN4c9wyMlIzWfTkRwDc3K4BXyz4zvb+2PYRZboTVLFyBSa9OZSZD7/P6LDpxJ1KInxy3wJxNRsEMfvzJwi7p3WB97oPaMvcryYRUM3PHk0uNhUreTNp9gBmPv4xo++YS9yZZMKf7l0grma9QGYvH01Y7+aG9dXrBpCemsX4vgtsr7LeCSrJc3/8/OF8//E2xraPYN5jS5n80TicXcrunxlHPvflErudoceOHWPx4sW89NJLvPzyyyxevJjffy+9K4XW3ZoQ9etJYo4nAPDNB/+l24BbixzToGVtNq/ehcViJS/XzJ6NBwi75xZc3U2sfG09v249BEBSTAqp5zIICK5kx+yurnW3JkTtO/G33H6k24B2RY5xdnHGw8sdV3dXXN1NmFxN5GTnUr1eEJmpWez/K/+zR+LITM+icdt6dszu6lp3b8rhvceJORYPwNfvb6HbwPbXHGNydeHp9x7hnWdXkhidDMDNtzagZZebWbh9Gm9snEzTv6pmZVXr2xoTtf8UMScSAfh6+U90vS+0QFyfEbexafUuflq3z7DeP6gi7e9owUtDFtulvcWpdacGRP1+hphT+dW7r1ftous9rQrE9Rncnk3/9ws/fXfAsP7mVnWwWKy8+tEjLF43kYfGdcfZuWxfSZfkue/i4oyPnxcAnhU8yLmYW9LpXBdHPvevxoyT3V6lzS4doZUrVzJp0iQAmjVrRpMmTQCIiIhg2bJl9mhCAVWq+9t+eQESY1Lw9vXCy8ejSDGHfzlO94HtcDG54OHtTse7W+MfVJHci3l8v2K7bZvewzvjWcGdyF+O2yexIqpS4x+5RafgXfEf+V8hZtPK7WScv8CKyDf45PB8Yk7Es3vDb0QfjcOjgjutu+V/xg1b16FWSDD+QWXraqlKjcoknf17bsmF5H/1mDuG30Zy3Hl2rN9rW5eWnMG6d39gfKepLJv6OVNXTShzHeG/Cwj2IzEmxbacFHseb19PvCp4GOKWTP6MLV/8XGD75PhUZo56n9NRcSXe1uIWUM2PxNhU23JSXCrePh54ebsb4pZMX8uWtb8W2N7F5Myv/ztCxKgPeGbwO7Tu1JB7hnYs8XZfj5I89xdO+oiBT93Niqg3efXr53h7wnIs5rL7aD5HPvflErvcr/joo4/46quv8PT0NKwPDw+nX79+jBw50h7NMHC6zFWb+W+/tFeKeW/KZ4ye8QCLtr1Eclwqv/73Txq3rW+Ie2Bib+59tDuTB7xJTnbZujK63vwHP9+X1KR0Hqw/ETdPN6auHM9943vxfwu/Z9qDbzMi4j4env4Av+84zG/bIsnNzSuRPP4tZ6er51+UmH7j72DB48bO/IyH3rL9++DOKP7cfYTW3Zuy8eOfrqfJJcbZufDrIXMZ/gNWXC5XvTFbipb7hs8u/XHMzTXz5Yc/0XdYR75avv0KW5Wukjr3Xd1deXH5ON549H12b9hPSGg9pn3+JFF7jxsuqMoSRz73r8ZiLf1Kjb3YpSJkMpnIyyv4hzA7OxtXV1d7NKGAxLPJ+AdVtC0HBPuRnnKBi5k5RYrx8vVk6dQvGNNhKi/eNw+LxWq7heTqZuL5paPpcn9bnuw5mxN/nLVfYkWUeOacoUoTEFyJ9JQMY/5XiOl4d2u+X7GdvFwzmWlZ/LBqBy3CQnByciLrwkWe7TOHsZ2msuTZT6hWt4rtZ1NWJJw9h3/Vf+SWbMz/ajH1WtTGxeTMgZ8ibTHeFb0Y9PTdhmM5OTmRl2suqVSuW0J0Mv6BfzvPq/11nmflXGGrG0NCzHn8q/jYlgOCfEk/n8nFrKJduHTr24o6jaralp2cnMjLK7ufNZTcuV/n5hq4e7mxe0P+GKnIPcc4dSiaRqFl67b43znyuS+X2KUjNGbMGO69916mTJnCggULWLBgAVOmTGHAgAGMGTPGHk0oYO+Wg4S0qWcbxHxXeBd2fru/yDF3hd/GsBfzB9X5VfGl97DO/PeL3QBM/s8YvHw8ebLXbOLPnKMs2rvlICGhN13KbWQXdn5TSP6XiTn622k698u/l+5icqHdnS2J3HMMq9XKjM8n0qBVHQDC7m2DOddc5maN7d38OyFt69lmv9z1cDd2frPvmmKadwph/9Y/DdtkpWdx96Pd6dS3DZD/B6NRm5v4ZZNxbElZsu+/hwi5pQ7BdasAcOewTuz8vuy2tzjt2x5FSMtaBNeuDMCdD7Zj5+Y/r7LVJXUaVGXohJ44Ozvh5m7i7iHt2fZt2f7ZldS5H3M8Hm9fT26+Nb8yXq1uILVCgjn226mSTOe6OPK5L5c4Wa1Wuzw2KT4+np07d5KQkIDVaiUoKIj27dsTFBR09Y3/4Y5KDxdLm0J7NCP8pfswuZqIPZnA62OWUa1OABPfGs64ztMvG5Nx/gKeFdx55p2HCb4pECdg9ZvfseWzXdx8a33mbXies0fiuJh96api2ctr2Lvl4PU3uogl+6II7dGM8Kn9Mbm5EHsikdfHLKVanSpMfGsE48JevmxMRsoFfCp5M/b1wdRvURuL2cL+rYd4b/JqzHlmmnVsyKOvPoirq4nk+FQWTFhO3MnEYmmztZDK4r8V2qs5I6c9kP/Znkjg9dHvUrVOIE8uHsnY9hGXjUlPyZ8eO27eMJLjzrNqzjrDfhu0qsvYN4bi5eOBOc/Mu899wm/bDhVLm519fa4e9C+EdmvCiBfvweRmIvZkInOf+IhqtQOYMHcw43vMNsRebgoxwHexixjY5NmSmULsU6H49wmE3taIEU/dkf8Znz7H3GdXU62mPxNm9Wd83wWG2H9On3f3cGXsS30JaVkLF5MLP204wPJ535dIOy3RscW2r5I691t0bsyomQNx83AlL9fMytlfsfPrfQWO/2849Ln/1/7tad/pWnY7Vutap+12rMLYrSNUnIqrI1QuFWNHqDwqzo5QeVRSfwzKhRLqCJUXxdkRKo8c+txHHaGSVLYe7iIiIiKlzuxAjxl0nExFRERE/kEVIRERETHQ9HkRERERB6CKkIiIiBiUha++sBdVhERERMRhqSIkIiIiBmar49RJHCdTERERkX9QRUhEREQMLA5UJ3GcTEVERET+QRUhERERMdCsMREREREHoIqQiIiIGGjWmIiIiIgDUEdIREREHJZujYmIiIiBRYOlRURERG58qgiJiIiIgdmB6iSOk6mIiIjIP6giJCIiIgaaPi8iIiLiAFQREhEREQN96aqIiIiIA1BFSERERAzMVj1HSEREROSGp4qQiIiIGOg5QiIiIiIOQBUhERERMbDoOUIiIiIiNz5VhERERMRAY4REREREHIA6QiIiIuKwdGtMREREDPRARREREREHUC4rQk7ubqXdhNJjtZZ2C0qVk5tPaTehVOVFx5R2E0pPfEJpt6BUOXt6lnYTSpU1M6u0m+BQ9KWrIiIiIg6gXFaEREREpOSY9UBFERERkRufKkIiIiJiYEGzxkRERERueKoIiYiIiIHGCImIiIg4AFWERERExEBfuioiIiLiAFQREhEREQOLvmtMRERE5ManipCIiIgYaIyQiIiIiANQR0hEREQclm6NiYiIiIFFD1QUERERufGpIiQiIiIGZn3pqoiIiMiNTxUhERERMdAYIREREREHoIqQiIiIGGiMkIiIiIgDUEVIREREDDRGSERERMQBqCIkIiIiBmZVhERERETKlvXr13PnnXfSo0cPVq5cWeD9gwcPcv/993PPPffw6KOPkpaWdtV9qiMkIiIiBhac7PYqqvj4eObPn88nn3zC2rVrWb16NUePHjXEzJo1iyeeeIJ169ZRt25dPvjgg6vuVx0hERERKfN27NhB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z/f5K/9zzH1yBdVqVWbCnEGMv+N1Q+w/p88v3TaFCr6eJMVdGmf05y8nWDyl+J+NUVzPEWrbuxUjX3kIVzcTMcfimTN8IdVuCmTS+48xpvUzl41JT8nA3dON8QtH0fjWhphcXdj2xU6WTV4FQJ2mtXh84Si8fb2wWCx8+tpXbPu87E0fLo/5F+dzhEJ7NWfktAfy/787kcDro9+lap1Anlw8krHtIy4b8/8H/o6bN4zkuPOsmrPOsN8WnRszauZA3Dxcycs1s3L2V+z8el+B4/8bxfkcodAezQif2h+TmwuxJxJ5fcxSqtWpwsS3RjBb2/fyAAAgAElEQVQu7OXLxmSkXMCnkjdjXx9M/Ra1sZgt7N96iPcmr8acZ6ZKDX/GzR1CtTpVcHJ24qslm/j2w63F0mZ7P0dowq8P2u1YC1qtstuxCqMHKpY35e/jKl56oGJpN0FKiR6o6Nhze9QRKjmOfWaJiIhIARar48wac5xMRURERP5BFSERERExMFP6s7nsRRUhERERcViqCImIiIhBWfgOMHtRRUhEREQcljpCIiIi4rB0a0xEREQMNH1eRERExAGoIiQiIiIGFk2fFxEREbnxqSIkIiIiBmZNnxcRERG58akiJCIiIgaaNSYiIiLiAFQREhEREQN9xYaIiIiIA1BFSERERAz0HCERERERB6CKkIiIiBhojJCIiIiIA1BFSERERAz0HCERERERB6COkIiIiDgs3RoTERERAw2WFhEREXEAqgiJiIiIgR6oKCIiIuIAVBESERERA40REhEREXEAqgiJiIiIgSpCIiIiIg5AFSERERExUEVIRERExAGUy4pQUu/6pd2EUlN5X0ppN6FU5fl5lnYTSlV2aM3SbkKp8fkjsbSbULrS0ku7BaXKmpVd2k1wKKoIiYiIiDiAclkREhERkZKjJ0uLiIiIOABVhERERMRAY4REREREHIA6QiIiIuKwdGtMREREDHRrTERERMQBqCIkIiIiBqoIiYiIiDgAVYRERETEQBUhEREREQegipCIiIgYWFUREhEREbnxqSIkIiIiBvrSVREREREHoIqQiIiIGGjWmIiIiIgDUEVIREREDDRrTERERMQBqCIkIiIiBhojJCIiIuIA1BESERERh6VbYyIiImKgwdIiIiIiDkAVIRERETHQYGkRERERB6CKkIiIiBhYraXdAvtR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RERufKoIiYiIiIHGCImIiIg4AFWERERExEgVIREREZGyZf369dx555306NGDlStXFnj/+PHjDB06lHvuuYdRo0aRmpp61X2qIyQiIiIGVqv9XkUVHx/P/Pnz+eSTT1i7di2rV6/m6NGjf2uzlccee4zRo0ezbt06GjduzHvvvXfV/aojJCIiImXejh07aNeuHX5+fnh5edGrVy82bNhge//gwYN4eXnRuXNnAMaMGcPgwYOvul+NERIREREjOz5HKC0tjbS0tALrfX198fX1tS0nJCRQpUoV23JgYCAHDhywLZ8+fZqAgACee+45/vzzTxo2bEhERMRVj6+KkIiIiJSa5cuX07179wKv5cuXG+KshdxHc3K6NKg7Ly+Pn3/+mSFDhrB+/Xpq1qzJq6++etXjqyIkIiIiBvZ8jtDw4cPp169fgfV/rwYBBAUF8csvv9iWExISCAwMtC1XqVKF2rVr06xZMwD69OnDE088cdXjqyIkIiIipcbX15caNWoUeP2zI9ShQwd27txJcnIyWVlZbNy40TYeCKBVq1YkJycTGRkJwJYtW2jSpMlVj6+KkIiIiBiVwe8aCwoK4sknn2TYsGHk5ubSv39/mjdvzujRo3niiSdo1qwZixYtYsqUKWRlZVG1alXmzJlz1f2qIyQiIiLlwt13383dd99tWPf+++/b/t2iRQu++OKLa9qnbo2JiIiIw1JFSERERAz0pasiIiIiDqBcVoRufuxgaTeh1Jy9ULG0m1CqmvodvXrQDSwu23E//5RJ1Uu7CaXKOT6xtJsgjqQMDpYuKaoIiYiIiMMqlxUhERERKUkaIyQiIiJyw1NFSERERIw0RkhERETkxqeKkIiIiBipIiQiIiJy41NFSERERIz0ZGkRERGRG58qQiIiImJg1RghERERkRufKkIiIiJipIqQiIiIyI1PHSERERFxWLo1JiIiIkaaPi8iIiJy41NFSERERAycNFhaRERE5ManipCIiIgYqSIkIiIicuNTRUhERESMNGtMRERE5ManipCIiIgYaYyQiIiIyI1PFSERERExUkVIRERE5ManipCIiIgYqSIkIiIicuNTRUhERESM9BwhERERkRufOkIiIiLisHRrTERERAycNFhaRERE5ManipCIiIgYOVBFSB2hv6TsT+bMZyex5FrxqunFTaMbYPK89ONJ3B5P7Hcx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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# optional\n", "# visual representation of grid search\n", @@ -3877,7 +4131,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -3900,16 +4154,34 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "AttributeError", + "evalue": "module 'tensorflow' has no attribute 'get_default_graph'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meta\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0meta_vals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlmbd\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlmbd_vals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mDNN\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcreate_neural_network_keras\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_neurons_layer1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_neurons_layer2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_categories\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0meta\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0meta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlmbd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlmbd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mDNN\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mepochs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mscores\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDNN\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mcreate_neural_network_keras\u001b[0;34m(n_neurons_layer1, n_neurons_layer2, n_categories, eta, lmbd)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_neural_network_keras\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_neurons_layer1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_neurons_layer2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_categories\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlmbd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mSequential\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDense\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_neurons_layer1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mactivation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'sigmoid'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkernel_regularizer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ml2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlmbd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDense\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_neurons_layer2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mactivation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'sigmoid'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkernel_regularizer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0ml2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlmbd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/engine/sequential.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, layers, name)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlayers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mSequential\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_build_input_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/legacy/interfaces.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 89\u001b[0m warnings.warn('Update your `' + object_name + '` call to the ' +\n\u001b[1;32m 90\u001b[0m 'Keras 2 API: ' + signature, stacklevel=2)\n\u001b[0;32m---> 91\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 92\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_original_function\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/engine/network.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;31m# Subclassed network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_init_subclassed_network\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_base_init\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/engine/network.py\u001b[0m in \u001b[0;36m_init_subclassed_network\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 292\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_init_subclassed_network\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 294\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_base_init\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 295\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_is_graph_network\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_expects_training_arg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhas_arg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcall\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'training'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/engine/network.py\u001b[0m in \u001b[0;36m_base_init\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m 107\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[0mprefix\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 109\u001b[0;31m \u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprefix\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m'_'\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_uid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprefix\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 110\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36mget_uid\u001b[0;34m(prefix)\u001b[0m\n\u001b[1;32m 72\u001b[0m \"\"\"\n\u001b[1;32m 73\u001b[0m \u001b[0;32mglobal\u001b[0m \u001b[0m_GRAPH_UID_DICTS\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 74\u001b[0;31m \u001b[0mgraph\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_default_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 75\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgraph\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_GRAPH_UID_DICTS\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 76\u001b[0m \u001b[0m_GRAPH_UID_DICTS\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mgraph\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdefaultdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: module 'tensorflow' has no attribute 'get_default_graph'" + ] + } + ], "source": [ "DNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", " \n", "for i, eta in enumerate(eta_vals):\n", " for j, lmbd in enumerate(lmbd_vals):\n", - " DNN = create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories,\n", - " eta=eta, lmbd=lmbd)\n", + " DNN = create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories,eta=eta, lmbd=lmbd)\n", " DNN.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=0)\n", " scores = DNN.evaluate(X_test, Y_test)\n", " \n", @@ -3923,9 +4195,21 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'int' object has no attribute 'evaluate'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mDNN\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDNN_keras\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0mtrain_accuracy\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDNN\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_train\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 16\u001b[0m \u001b[0mtest_accuracy\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mDNN\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mY_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: 'int' object has no attribute 'evaluate'" + ] + } + ], "source": [ "# optional\n", "# visual representation of grid search\n", diff --git a/doc/pub/Regression/ipynb/Regression.ipynb b/doc/pub/Regression/ipynb/Regression.ipynb index a22ba7fcf..699c502c8 100644 --- a/doc/pub/Regression/ipynb/Regression.ipynb +++ b/doc/pub/Regression/ipynb/Regression.ipynb @@ -4632,9 +4632,37 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 2.15685 sec\n", + "Bootstrap Statistics :\n", + "original bias std. error\n", + " 100.212 15.1357 100.213 0.149893\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/site-packages/ipykernel_launcher.py:34: MatplotlibDeprecationWarning: scipy.stats.norm.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from numpy import *\n", "from numpy.random import randint, randn\n", @@ -6339,7 +6367,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.7.6" } }, "nbformat": 4,