From a9f027b40e41dfc68b7495137e9fdda302051640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BA=B7=E9=A3=9E?= <13191081+shallowdreamqaq@user.noreply.gitee.com> Date: Sun, 16 Jul 2023 01:35:52 +0000 Subject: [PATCH] =?UTF-8?q?=E9=B8=A2=E5=B0=BE=E8=8A=B1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王康飞 <13191081+shallowdreamqaq@user.noreply.gitee.com> --- 水稻叶片病害分类/平时作业/鸢尾花数据集.ipynb | 606 +++++++++++++++++++ 1 file changed, 606 insertions(+) create mode 100644 水稻叶片病害分类/平时作业/鸢尾花数据集.ipynb diff --git a/水稻叶片病害分类/平时作业/鸢尾花数据集.ipynb b/水稻叶片病害分类/平时作业/鸢尾花数据集.ipynb new file mode 100644 index 0000000..fd263be --- /dev/null +++ b/水稻叶片病害分类/平时作业/鸢尾花数据集.ipynb @@ -0,0 +1,606 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## 聚类\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + }, + "execution_count": 1 + }, + { + "cell_type": "code", + "execution_count": 41, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.colors import ListedColormap\n", + "import seaborn as sns\n", + "from sklearn.datasets import make_blobs\n", + "from sklearn.cluster import KMeans,DBSCAN,AgglomerativeClustering\n", + "from sklearn.metrics import silhouette_samples,accuracy_score\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.preprocessing import StandardScaler,LabelEncoder\n", + "from sklearn.ensemble import RandomForestClassifier,BaggingClassifier,AdaBoostClassifier\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "X,y = make_blobs(n_samples=150,n_features=2,centers=3,cluster_std=0.5,shuffle=True,random_state=0)\n", + "plt.scatter(X[:,0],X[:,1],c='white',marker='o',edgecolor='black',s=50)\n", + "plt.grid()\n", + "plt.show()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [ + { + "data": { + "text/plain": "array([1, 0, 0, 0, 1, 0, 0, 1, 2, 0, 1, 2, 2, 0, 0, 2, 2, 1, 2, 1, 0, 1,\n 0, 0, 2, 1, 1, 0, 2, 1, 2, 2, 2, 2, 0, 1, 1, 1, 0, 0, 2, 2, 0, 1,\n 1, 1, 2, 0, 2, 0, 1, 0, 0, 1, 1, 2, 0, 1, 2, 0, 2, 2, 2, 2, 0, 2,\n 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, 0, 1, 1, 1, 2,\n 2, 1, 1, 0, 1, 0, 1, 0, 2, 2, 1, 1, 1, 1, 2, 1, 1, 0, 2, 0, 0, 0,\n 2, 0, 1, 2, 0, 2, 0, 0, 2, 2, 0, 1, 0, 0, 1, 1, 2, 1, 2, 2, 2, 2,\n 1, 2, 2, 2, 0, 2, 1, 2, 0, 0, 1, 1, 2, 2, 2, 2, 1, 1])" + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = KMeans(n_clusters=3,init='random',n_init=10,max_iter=300,tol=1e-04,random_state=0)\n", + "y_km = km.fit_predict(X)\n", + "y_km" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X[y_km==0,0],X[y_km==0,1],s=50,c='lightgreen',marker='s',edgecolor='black',label='cluster 1')\n", + "plt.scatter(X[y_km==1,0],X[y_km==1,1],s=50,c='orange',marker='o',edgecolor='black',label='cluster 2')\n", + "plt.scatter(X[y_km==2,0],X[y_km==2,1],s=50,c='lightblue',marker='v',edgecolor='black',label='cluster 3')\n", + "plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],s=250,marker='*',c='red',edgecolor='black',label='centroids')\n", + "plt.legend()\n", + "plt.grid()\n", + "plt.show()\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## 寻找最佳聚类中心\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "distoritions = []\n", + "for i in range(1,11):\n", + " km = KMeans(n_clusters=i,init='k-means++',n_init=10,max_iter=300,random_state=0)\n", + " km.fit(X)\n", + " distoritions.append(km.inertia_)\n", + "plt.plot(range(1,11),distoritions,marker='o')\n", + "plt.xlabel('Number of clusters')\n", + "plt.ylabel('Distortion')\n", + "plt.show()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## DBSCAN\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.datasets import make_moons\n", + "X,y = make_moons(n_samples=200,noise=0.05,random_state=0)\n", + "plt.scatter(X[:,0],X[:,1])\n", + "plt.show()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 21, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "data": { + "text/plain": "" + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "### 使用kmeans,k=2和DBSCAN聚类后可视化\n", + "f,(ax1,ax2,ax3) = plt.subplots(1,3,figsize=(15,5))\n", + "km = KMeans(n_clusters=2,random_state=0)\n", + "y_km = km.fit_predict(X)\n", + "ax1.scatter(X[y_km==0,0],X[y_km==0,1],c='lightblue',marker='o',s=40,label='cluster 1')\n", + "ax1.scatter(X[y_km==1,0],X[y_km==1,1],c='red',marker='s',s=40,label='cluster 2')\n", + "ax1.set_title('K-means clustering')\n", + "db = DBSCAN(eps=0.2,min_samples=5,metric='euclidean')\n", + "y_db = db.fit_predict(X)\n", + "ax2.scatter(X[y_db==0,0],X[y_db==0,1],c='lightblue',marker='o',s=40,label='cluster 1')\n", + "ax2.scatter(X[y_db==1,0],X[y_db==1,1],c='red',marker='s',s=40,label='cluster 2')\n", + "ax2.set_title('DBSCAN clustering')\n", + "plt.legend()\n", + "# 层次聚类\n", + "ac = AgglomerativeClustering(n_clusters=2,affinity='euclidean',linkage='complete')\n", + "y_ac = ac.fit_predict(X)\n", + "ax3.scatter(X[y_ac==0,0],X[y_ac==0,1],c='lightblue',marker='o',s=40,label='cluster 1')\n", + "ax3.scatter(X[y_ac==1,0],X[y_ac==1,1],c='red',marker='s',s=40,label='cluster 2')\n", + "ax3.set_title('Agglomerative clustering')\n", + "plt.legend()\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## 集成学习\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 25, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from scipy.special import comb\n", + "import math\n", + "def ensemble_error(n_classifier,error):\n", + " k_start = int(math.ceil(n_classifier/2.))\n", + " probs = [comb(n_classifier,k)*error**k*(1-error)**(n_classifier-k) for k in range(k_start,n_classifier+1)]\n", + " return sum(probs)\n", + "ensemble_error(n_classifier=11,error=0.25)\n", + "# 可视化计算0-1内不同集成错误率\n", + "error_range = np.arange(0.0,1.01,0.01)\n", + "ens_errors = [ensemble_error(n_classifier=11,error=error) for error in error_range]\n", + "plt.plot(error_range,ens_errors,label='Ensemble error',linewidth=2)\n", + "plt.plot(error_range,error_range,linestyle='--',label='Base error',linewidth=2)\n", + "plt.xlabel('Base error')\n", + "plt.ylabel('Base/Ensemble error')\n", + "plt.legend(loc='upper left')\n", + "plt.grid()\n", + "plt.show()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 27, + "outputs": [ + { + "data": { + "text/plain": " Class label Alcohol Malic acid Ash Alcalinity of ash Magnesium \\\n0 1 14.23 1.71 2.43 15.6 127 \n1 1 13.20 1.78 2.14 11.2 100 \n2 1 13.16 2.36 2.67 18.6 101 \n3 1 14.37 1.95 2.50 16.8 113 \n4 1 13.24 2.59 2.87 21.0 118 \n\n Total phenols Flavanoids Nonflavanoid phenols Proanthocyanins \\\n0 2.80 3.06 0.28 2.29 \n1 2.65 2.76 0.26 1.28 \n2 2.80 3.24 0.30 2.81 \n3 3.85 3.49 0.24 2.18 \n4 2.80 2.69 0.39 1.82 \n\n Color intensity Hue OD280/OD315 of diluted wines Proline \n0 5.64 1.04 3.92 1065 \n1 4.38 1.05 3.40 1050 \n2 5.68 1.03 3.17 1185 \n3 7.80 0.86 3.45 1480 \n4 4.32 1.04 2.93 735 ", + "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
Class labelAlcoholMalic acidAshAlcalinity of ashMagnesiumTotal phenolsFlavanoidsNonflavanoid phenolsProanthocyaninsColor intensityHueOD280/OD315 of diluted winesProline
0114.231.712.4315.61272.803.060.282.295.641.043.921065
1113.201.782.1411.21002.652.760.261.284.381.053.401050
2113.162.362.6718.61012.803.240.302.815.681.033.171185
3114.371.952.5016.81133.853.490.242.187.800.863.451480
4113.242.592.8721.01182.802.690.391.824.321.042.93735
\n
" + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "df_wine = pd.read_csv('wine.data',header=None)\n", + "df_wine.columns = ['Class label', 'Alcohol', 'Malic acid', 'Ash',\n", + " 'Alcalinity of ash', 'Magnesium', 'Total phenols',\n", + " 'Flavanoids', 'Nonflavanoid phenols', 'Proanthocyanins',\n", + " 'Color intensity', 'Hue', 'OD280/OD315 of diluted wines',\n", + " 'Proline']\n", + "df_wine.head()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 31, + "outputs": [ + { + "data": { + "text/plain": " Class label Alcohol Malic acid Ash Alcalinity of ash Magnesium \\\n59 2 12.37 0.94 1.36 10.6 88 \n60 2 12.33 1.10 2.28 16.0 101 \n61 2 12.64 1.36 2.02 16.8 100 \n62 2 13.67 1.25 1.92 18.0 94 \n63 2 12.37 1.13 2.16 19.0 87 \n\n Total phenols Flavanoids Nonflavanoid phenols Proanthocyanins \\\n59 1.98 0.57 0.28 0.42 \n60 2.05 1.09 0.63 0.41 \n61 2.02 1.41 0.53 0.62 \n62 2.10 1.79 0.32 0.73 \n63 3.50 3.10 0.19 1.87 \n\n Color intensity Hue OD280/OD315 of diluted wines Proline \n59 1.95 1.05 1.82 520 \n60 3.27 1.25 1.67 680 \n61 5.75 0.98 1.59 450 \n62 3.80 1.23 2.46 630 \n63 4.45 1.22 2.87 420 ", + "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
Class labelAlcoholMalic acidAshAlcalinity of ashMagnesiumTotal phenolsFlavanoidsNonflavanoid phenolsProanthocyaninsColor intensityHueOD280/OD315 of diluted winesProline
59212.370.941.3610.6881.980.570.280.421.951.051.82520
60212.331.102.2816.01012.051.090.630.413.271.251.67680
61212.641.362.0216.81002.021.410.530.625.750.981.59450
62213.671.251.9218.0942.101.790.320.733.801.232.46630
63212.371.132.1619.0873.503.100.191.874.451.222.87420
\n
" + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_wine = df_wine[df_wine['Class label']!=1]\n", + "X = df_wine[['Alcohol','OD280/OD315 of diluted wines']].values\n", + "y = df_wine['Class label'].values\n", + "df_wine.head()" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 37, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Decision tree train/test accuracies 1.000/0.833\n" + ] + } + ], + "source": [ + "X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=1,stratify=y)\n", + "tree = DecisionTreeClassifier(criterion='entropy',random_state=1,max_depth=None)\n", + "bag = BaggingClassifier(base_estimator=tree,n_estimators=500,max_samples=1.0,max_features=1.0,bootstrap=True,bootstrap_features=False,n_jobs=1,random_state=1)\n", + "tree = tree.fit(X_train,y_train)\n", + "y_train_pred = tree.predict(X_train)\n", + "y_test_pred = tree.predict(X_test)\n", + "tree_train = accuracy_score(y_train,y_train_pred)\n", + "tree_test = accuracy_score(y_test,y_test_pred)\n", + "print('Decision tree train/test accuracies %.3f/%.3f'%(tree_train,tree_test))" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 38, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bagging train/test accuracies 1.000/0.917\n" + ] + } + ], + "source": [ + "bag = bag.fit(X_train,y_train)\n", + "y_train_pred = bag.predict(X_train)\n", + "y_test_pred = bag.predict(X_test)\n", + "bag_train = accuracy_score(y_train,y_train_pred)\n", + "bag_test = accuracy_score(y_test,y_test_pred)\n", + "print('Bagging train/test accuracies %.3f/%.3f'%(bag_train,bag_test))" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 43, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):\n", + "\n", + " # setup marker generator and color map\n", + " markers = ('s', 'x', 'o', '^', 'v')\n", + " colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')\n", + " cmap = ListedColormap(colors[:len(np.unique(y))])\n", + "\n", + " # plot the decision surface\n", + " x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", + " x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", + " xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),\n", + " np.arange(x2_min, x2_max, resolution))\n", + " Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)\n", + " Z = Z.reshape(xx1.shape)\n", + " plt.contourf(xx1, xx2, Z, alpha=0.3, cmap=cmap)\n", + " plt.xlim(xx1.min(), xx1.max())\n", + " plt.ylim(xx2.min(), xx2.max())\n", + "\n", + " for idx, cl in enumerate(np.unique(y)):\n", + " plt.scatter(x=X[y == cl, 0],\n", + " y=X[y == cl, 1],\n", + " alpha=0.8,\n", + " c=colors[idx],\n", + " marker=markers[idx],\n", + " label=cl,\n", + " edgecolor='black')\n", + "\n", + " # highlight test samples\n", + " if test_idx:\n", + " # plot all samples\n", + " X_test, y_test = X[test_idx, :], y[test_idx]\n", + " plt.scatter(X_test[:, 0],\n", + " X_test[:, 1],\n", + " c='',\n", + " edgecolor='black',\n", + " alpha=1.0,\n", + " linewidth=1,\n", + " marker='o',\n", + " s=100,\n", + " label='test set')\n", + "plot_decision_regions(X_train,y_train,classifier=tree)\n", + "plt.figure()\n", + "plot_decision_regions(X_train,y_train,classifier=bag)\n" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 56, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Decision tree train/test accuracies 0.916/0.875\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "## 自适应增强Adaboost\n", + "tree = DecisionTreeClassifier(criterion='entropy',random_state=1,max_depth=1)\n", + "ada = AdaBoostClassifier(base_estimator=tree,n_estimators=500,learning_rate=0.1,random_state=1)\n", + "tree = tree.fit(X_train,y_train)\n", + "y_train_pred = tree.predict(X_train)\n", + "y_test_pred = tree.predict(X_test)\n", + "tree_train = accuracy_score(y_train,y_train_pred)\n", + "tree_test = accuracy_score(y_test,y_test_pred)\n", + "print('Decision tree train/test accuracies %.3f/%.3f'%(tree_train,tree_test))\n", + "plot_decision_regions(X_train,y_train,classifier=tree)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 57, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Adaboost train/test accuracies 1.000/0.917\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD3CAYAAAAALt/WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAm2ElEQVR4nO3de5gc1Xnn8W9V91zEaFoDSIibABuhY4nsboAAYmFBFyMkbOQQQzZhMXZifMmCY8TGTuCJcexcbG+IwQvYDtjEMfuwTjDGEaALrCRQcCRgITgGxJGBIIFAsoQY9cxIc+mu2j/6MtWtnp6enr5UTf8+z8PDdFVP9XtGM2+ffutcHN/3ERGR6HKbHYCIiEyOErmISMQpkYuIRJwSuYhIxCmRi4hEXLzRL+gNDvrewMFGv2xTuY6D18Kjg1q5/Wq72l4r8aOP2gfMKnmupq9UAW/gIANr/2+jX7apurraGRgYbnYYTdPK7Vfb1fZamXH1b+8Y65xKKyIiEadELiIScUrkIiIRp0QuIhJxFd3sNMYcAzwHXGytfSVwfBVwLbA3e+gz1lpb8yhFRGRM4yZyY0wb8LfAoRKnzwKusdY+V+vARESkMpWUVm4Fvgu8XeLcWcBNxpinjDE31TQyERGpSNkeuTHmE8Bea+36MRL1j4C7gCTwkDHmw9baR8pd03Ucurraq403klzXbbk2B7Vy+9V2tb0Rxiut/D7gG2M+CPw68ENjzEpr7W5jjAPcbq09AGCMeRQ4AyibyD3fb7lJAq08MQJau/1qu9peKzPKnCubyK21F+a+NsY8AXzWWrs7eygBvGiMmQ8MAEuAeycXqoiITNSEp+gbY64Cpltr7zbG3AxsAoaADdbaNbUOUEREyqs4kVtrF2W/fCVw7D7gvhrHJCIiE6AJQSIiEadELiIScUrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEadELiIScUrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEadELiIScUrkIiIRp0QuIhJxSuQiIhFX0Q5BxphjgOeAi621rwSOXwbcAqSAe62199QlShERGdO4PXJjTBvwt8ChEsdvA5YBFwGfNsbMrkeQIiIytkp65LcC3wVuKjo+H3jVWvsegDHmKeBC4IFyF3Mdh66u9ipCjS7XdVuuzUGt3H61XW1vhLKJ3BjzCWCvtXa9MaY4kSeAA4HHfcCM8V7Q830GBoYnGmekdXW1t1ybg1q5/Wq72l4r5ZLreKWV3wcuNsY8Afw68ENjzLHZc0mgO/DcbqC3uhBFRKRaZXvk1toLc19nk/lnrbW7s4e2AacZY44C+smUVW6tU5wiIjKGikatBBljrgKmW2vvNsbcCKwn07O/11q7q9YBiohIeRUncmvtouyXrwSOPQw8XOOYRERkAjQhSEQk4pTIRUQiTolcRCTilMhFRCJOiVxEJOKUyEVEIk6JXEQk4iY8IUiiaeUtN9GXTB52vDuRYPVXv9aEiESkVpTIW0RfMskzicRhx88pkdxFJFqUyGXC1LsXCRclcpkw9e5FwkU3O0VEIk6JXEQk4lRaaRHdiUTJ0kd3iRKJiESLEnmL0E1IkalLiVwmTL17kXBRIpcJU+9+bMVDM13XwfN8Dc2Uuho3kRtjYsA9gAF8Mvt2vhg4vwq4FtibPfQZa62tQ6wiQLjHsRcPzYy5DmnP19BMqatKeuSXAVhrzzfGLAL+EvhI4PxZwDXW2udqH57I4TSOXaTQuIncWvtTY8wj2YcnA71FTzkLuMkYcyzwqLW2bJfIdRy6utqriTWyXNdtuTYH1br9rusQc52Sx5v9cy4VW8x1QhFbo7Xy732j215RjdxamzLG/D1wOXBF0ekfAXcBSeAhY8yHrbWPFF8jx/N9BgaGq403krq62luuzUG1br/n+aQ9v+TxZv+ci2PLlVbCEFujtfLvfT3aPqPMuYonBFlrPw7MA+4xxnQBGGMc4HZr7T5r7TDwKHDGZIIVEZGJqeRm58eAE7Mlk4OAl/0PIAG8aIyZDwwAS4B76xSrjCPMNwFrIde+Pe/tZ3tvb/64G3OZe8KJzQssoHhoZnDUiki9VFJa+Qnwd8aYzUAbcANwuTFmurX2bmPMzcAmYAjYYK1dU7dopaypfhMw176L+5Jck/byx99JpZidTIYiWRa/YbZyeUEap5KbnQPAb5c5fx9wXy2DEinn8aLe9znJJJtuv6tJ0Yg0nyYESUWmetlGJMqUyKUizSrbBN9A9ry3n4XZ2nh3zOXxE07k4l1vsSeVYvEN1xV8n95gpJUokUtDVNujD76BbO/tZX4sM9Dq7GyNvC/t8bjjMq/oTWaq3BcQqYQS+RQS5sWsatGjd2Mu27IJ/B3f45xkkj2+hxvXr7G0Nv0FTCFTvZQQHGI4O3uDc/EN1zE3BG9UIs2kHYJERCJOPfIWNpG6dS3KNie/8e/gF06tTwPzP/kxtn1fI1hFqqVE3sImUreuSdnG93nLKVxQatD3mZtKFRwLvsG83dvLye/tB8B1XGb19ACjbyBhvi8g0ihK5NIQ3YkEb7+7j8GiHjnO4asYFrzBBBJyqYk/k32D0fh4mQqUyKVmxkqKM3pmsPqrX2PBx3+XzlIjTIp65I2Un/a/6y22DQ8Tyx5/+919LPj47+I6Lu8/6SQldQk1JXKpmWBP+uJdb9GXHSq4/b39LL7hOtKex9KRETa0tdXsNWvVo+5Le5wIPJv9hDDo+3TG42xLe1ytMekSckrkUhd9aY9ns5N3tnkwL5HgpXf38cni0spkX2eKLxQmUgkl8hbW8BuFjsNbvs+JRaUUP1tuicIytSJhpETewhpd9z39lPdxfJmVCqOwTK1IGCmRS+g0cpna3KeSPb7HTBgdVVNiNI1IWCmRS80ESzV7fI9t6czxWDxW5rtGvd3bm1/dsOB4rQIsIfepZOUtN2F37mSuP/pJgFQqM2pFnwQk5CrZ6i0G3AMYwAc+a619MXD+MuAWIAXca629p06xSsgFSzUrb7kpP9rDdR287NflyiMx3+PZEsMTi2vqQbWq82t4oURZJT3yywCstecbYxYBfwl8BMAY0wbcBpxNZs/OnxljVltr99QnXImKYGKs53ZnSsAilW319lNjzCPZhycDvYHT84FXrbXvARhjngIuBB6ocZxSY82Y0Tjea7rO6DK1Qa4z9tpumpkpUmGN3FqbMsb8PXA5cEXgVAI4EHjcB8wody3Xcejqap9onJHmum7o2jzQ38dzPYf/U52dTNY81lz7x3vN2UcdyfwSJZHZZWJqZDuqEcZ/+0ZR2xvX9opvdlprP26M+WPgaWPMguymzEmgO/C0bgp77IfxfL/ldhUP407qnueT9g6fnON5tf/3ybV/vNesJqZGtqMaYfy3bxS1vbZtL9dDruRm58eAE621XwMOAl72P4BtwGnGmKOAfjJllVsnF660Kq1kKFKdSnrkPwH+zhizGWgDbgAuN8ZMt9bebYy5EVhPZpOKe621u+oWbQStvOUmBvr78Ip6jarhHq7Sn0fxhsy5WaCaASqtqpKbnQPAb5c5/zDwcC2Dmkr6kkme65lx2Md/rQVSveD6KgsDGzKXulEq0go0IahFNaOMUc1rlhqVsue9/Vzcl+TxE06kO+ZyXHb52TQQ2/EGkBnpsvKWm/SpR1qCEvkUMpGheM1IcNW8ZqnVDbf39ubXYnn8hBNZuHMnz8YyQxfnnXRS/nn61COtQol8CtGSriKtSYlcImckneIdYOHOnQC8k06xLQ0jgee8uust9qRSLL7huvyxvb29jADHZ/f9zJlKN541Qao1KZHXWXciwdnJZMlRK80W1T96B5gJ/DD7+HeB9wG/DDzHS3sc57hsDfyct/f2cg0UHIOp9YlFn8pakxJ5na3+6tdCOzEiCn/0pVZEHAH2QL4e3rZzJ50xl7hGrUiLUiKXhqnmE0Aboz3vnBHgw8Hvj7mcnfZ4x/eYHVhGd16pjZ5FpiD9pk8hYZ8ZWc0ngFk9PcwrHrWycyezA49zG1EEN6BYfMN1PB6SdovUmxL5FBLmuraI1I8SudRFsIziug6e5xdM5JkMN+byTip1WE8++Mmj1KeTvWTKMuW+L+rC/qlM6kOJvIXV848+WEaJuQ5pzy+YyDMZc084kdkl9vFcectNBcMNc8I+CqeWWqWdUkiJvIVF4Y9+Im82URiFI1IPSuTSMJWURIpF4c1GpNmUyKWuXt31Fp7nZbbtDmilcodIvSmRS115aY/58Rj4mUx+XDozs1LlDpHaUSKXusjVtvf4HselyffIu2Njb6QsItVRIpeKVbNM7uIbruPZEhtr1IOG3kmrKpvIjTFtwL3AKUAH8BfW2tWB86uAa8kM0QX4jLXW1idUaaSxNnSYF48fNg48LGWSVqi5+z44ztiPpTWN1yO/GnjXWvux7AbLLwCrA+fPAq6x1j5Xp/ikScbb0EHGV+v9Wn+w8f30Dca5fsV2HCeTxO9cO4/uzhSfWPJ6rcKWCBovkT8A/Dj7tQOkis6fBdxkjDkWeNRaO/W7RDIhYV7Gt95quV+r70PfYJwHt2ZWfLx+xXbuXDuPB7eexEcX7qyqZx7VZYzlcGUTubW2H8AY000mof9p0VN+BNwFJIGHjDEfttY+Uu6aruPQ1dVefcQR5Lpu5Nrsug4x12H7W2+RTqcZSWXew4eBl/79dRwgHo8Ti8VwE4kx27fhb/4G13UzQxDH8citlltfueyw408u+TP8q66qvjGTNFZc5Vx0zMu4biazxtzRDNu7e5BfHWrjQ5//tQnH4fvQOzjM1//R8PV/NADMaj/A2nXtrFs/8eu90XuIX0zroOfYTt7e5dM3Mg2AD763v6r4DuNw2LDTllGHtj919djnxr3ZaYyZAzwEfNtae3/guAPcbq09kH38KHAGUDaRe74fyrW56yms65GX43k+ac8nnUozP+ayLXu8HfiPjsOg79PpumxLpfG88v+mlbb/6b3v5+gLTuPKK0f3+rnjjnZ+uvMMPtiAn99YPdT+/gTzL7mxIK5ynn8+hv3R/vynkGCPfCDVQUfXCJ/91ilVxej78OUvj75pfuUrCRynuk83N3+6jYFUnG7PZzDdRtfRHRzR5dOdjPPZ26uLL6irq4OBgaFJXyeKGt328W52zgYeA6631m4oOp0AXjTGzAcGgCVkbozKFBUD3gHO9n1GgLbsGuBzp0iZZKwp/h84ULubuUNeG4Wb0lXO92Ht2sI/2bVr46xYkdINzxY3Xo/8ZuBI4EvGmC9lj90DdFlr7zbG3AxsAoaADdbaNfULVRqpeBz4O8BxgHEcNrS15XesPyeZVD21AXJJfOvWGAsXplmxIpV/DCiZt7jxauSfBz5f5vx9wH21DkqaLzgOfGsiwcKdO3lWk3kmpNSN3ne9GO1HnDDhazkOdHb6+STuOJnkDZnjSuKtTROCRCap1NhuKL1f6ye/eDwn/c7ZQHrCr7NkSbrgtXLJvOok3j6LRQM7SCQzbzDxQwdpT0N7YlaVF5RmUSKPuHoPIcuVWN4GTkyNjj51HZdZyWTDhhGGdajcxo0xBgedfEL1/czNzr6Ds4G3a/56xUl7Mj3xMy7awoJtP+VPbvHzbzBnnjnxNxhpPiXyiKv3GtxhqX83Yq3xsab4u7HSb1a+D4ODTkGdeu3aOK+84jLbi+d75iL1pkQuDVOqV723t5cR4PieHpIHYPitP2L7z3zaE7P4wlf/uaHxjfWm9fWvOrxc4niwTr11ayyf0D/wAY+Z23epbi0No0QuDTPmtH8yS9vu7ofB9h6OTPhckNxb+iIhk0vmuSQOcOaZad78ZRODkpajYQgik1BqbPfzz8dUVpGGUo9cpEpjje3esCHO7EMn4Pu1v9kpUooSecS1yhrcYWznWGO7d+1y6fu5JuhI4yiRR1xYRpXUW1jaWTxmfPHizHC94NjuTI18TxOik1alRC4NU6pXvZfMyiPnJJMk0zA8nKIr6YdyUkqpMeNr18bp7PRZsmR0/LV64tJoSuTSMOP1qr/+VYeX5/9mxasM1lNwqGTyAAy9+UcMudfSn/ooMLdgrZOFC9PaqUeaSolcpITgUMnd/TDY0UPPkQ+x4FewdevN+eGGwfq4SLNo+KFIhRwHjuq8p+BYmJN48RBIDYmcutQjl5Y31kbTr/YlmRvYaNr3Yf/gp5g+Y/R5YV0PvFw9f/HidMlFviS6lMil5ZWacbqwtxcvsNG078O3k1fTN/RBPhjy9cDHWgNm69YYM2f6HDrkcOmlqfxz71w7j9cPdnFSM4OWSVEil1AqtTRsMxOl48B05yDdHf/EihVzQ70e+FhrwORuyj79dCzfS3+mdx7vbZ1D2jugnnmEKZFL6ATLAjDaa+zuTPGJJa83JIbumMvFqRSzg8Mi43dz7DGzcJz/AVS2HvjFX/gjDvQeyD9+tzfGv36vnQ0z67soWKk1YHI/T8fJJPj9+x2mDc7huot38q+b+nGc4+sWj9TXeHt2tpHZh/MUoAP4C2vt6sD5y4BbgBRwr7X2nlLXEalUcVnA9+Hh3efwb/tO4qMLdzasZ/74CSdyTjLJptvvKjsscrxYiss2O5JttE/rYlmdFwUrt79ncYK/fsV2rn0i3Ek8bJ/Qwma8HvnVwLvW2o8ZY44CXgBWQz7J3wacTWbz5Z8ZY1ZbazWlTapWXBbYs8flXRbwex/ZyfUrtuuPtwLj7e9ZXEK5c+08fL+/CZFWptKJWK1svET+APDj7NcOmZ53znzgVWvtewDGmKeAC7PfMybXcejqaq8u2ohyXbfl2hxUafvdWIr2dpfp0zu44gp45hkXx8n84v3xFW/gOPX5Gc7omcHCEuu4zOiZQVdXez6urq6Oiq7X2QmuO/p7HnML330c18HxnYqvV40ZMxwuvBBWrozhODGuuALa2x22b4/zq185XHihT3+/T+/mN3nomZNJHexlXkecrq7aVVsz/+6Ta6Pvg+c5PPOMQ3t7nJUrfVavzjy+4AKfI46Ih/LNvRZtn4jxNl/uBzDGdJNJ6H8aOJ0ADgQe9wGBgVmleb5fsIdhKyjet7HVVNp+L+0wPOzR3z/C2rVxPA9838UHvvHjU+rWI//pn/3VmOcGBobzcQ0MVDbjdHAwhueN/p6nvcIusO/5+J7PwMBQ9UGP4/zzM0nw4MHRY0uXguvGOOUUh6VLU/z4x238xoztTD/b5ydruhgaSjEwULsebldXR03auHQpDA/H2bw5xubNAD4LF6ZYujRV0L4wqVXbCx0x5plxJwQZY+YAm4D7rLX3B04lge7A426gt7oARTKKywKnn57mgqNf5sGtJ2VLAM2OMDpK7e+5ZEnhTFTHydTI339EeCuiwXJbTpiGe4bBeDc7ZwOPAddbazcUnd4GnJatnfeTKavcWpcopWUULw17553tXHbsM5w292i6O8PxxzuRG2/diQTnBEetZHernz6zeYuC1XID50Yod+M27LE3yngFsZuBI4EvGWO+lD12D9Blrb3bGHMjsJ5Mz/5ea+2u+oUqrWLJksJFqHK9xjD80U70xtvjf31rQVlJu9VPzHg3bpXMM8arkX8e+HyZ8w8DD9c6KGlNwbJJLkkGHzdbuRmTUV4BsdSaLGFpx1ibd0D4JmI1kyYESSj8YOP7eaa3jenZpJLrib3ywjf4ErfylzeM/qru7e1lBDi+p6fgGt2JRF03oCg3YzKqPcMXDryPO9fG88MPwzi0r9QntKj+vOtFiVyazvehbzDOtr45HPWaW/BxmrTPU+1dJBKjQ7m29/ZyDbC1aH2UUlvB1dpYMybDklQmUr/3fRjy2nhw6xzSAwc4qaiMEbaeebnHrU7L2ErT5Wrg87vfZNcuhy9/uSOfTKa794Tqj3asG29hGE2zcWOsIJZcrBs3xko+33HgnJ7tfHThTt4cnMn997cV1KLD9HOX8tQjl1DIJZXn9/6H/LEVK1JsfhAG0h3M2L9/9Mle5iO/GzwGOMNDdDzwDzWP7cl9f84sxr/xtnx5CjfbNXp78Cja//E2nI4YHcOjJYq3B/+8LqsMVlu/f3XgOO7r/3O+7v1v2rPXCd7IBfV+o0CJXEIhtxJf0Nq1cdrbffpGurGDo1MWRvyXGQHs4MkFz9+TfpfF275T++Bmkl9nZawbbzt2OKxblxkSd+aZaZ56ah4f2PID2uIwq/tQwbXqMWKlmvr9lVeOcOfLmThHnHb6+x1SqczPffnyzBvBa6+5/NqvpUNTL5fSlMil6XKrG27rm8MJp/r8yZ8M5XuT/d6nmHXcQwWJ6J2dEAOOOb6wMtiddLjulul1jbXUjbfly1OsW1c4JG7uXI99+47gggsdli6NNaRXO9H6ve/D+8/uYc+WGAtO9Nmxw+fQIVi/Ps62bS47dmSWSJg716tLvVwLYdWOErk0neNAd2eK+d1vMv3U7oLe5ebHHP5L376C5ydxGMHngmTh8fbE4ZNs6pEsir/fdcfuDa9cGSs7jbyW8U104kxuaN9556XzPfD16+McOODwi1/ESCR8LrkkVVBqqVWi1UJYtaVELqHwiSWv884/O2xzFgCjvctLL70RuLGqazYyWYzdGy59o7HW8VU7cSb4CePSSzPx9/c7eNnNkZYvr/3PbqqOx28mjVqR0KjlELNgssiN5Mgli8FBp+ajTCY6mqXW8Y01cWbhwvS4E2dyiXrNmjjJ5OgTk0mH225rx/MysW3ZUhhbtT/DYGxbt8YKRilptEx11COXKakWk3cqLXuU6w23tzssXVr6TWrFihS+XxjfueeWjq+SWKqdOJNL4o89lkkHV1wxgufB6tVxfvGLGKtWdeI4MGeOV7MeetjH40eNeuQyZU1m1byJjMku1xueNm3sTxabNo3unZl7DcfJHJ9MLOUel+I4MG2az6mnevma+Ic+lGLlyhQdHaM99t7ezMicyX568P3CTzC57w/LePwoUo9cImeiPeWg4pt/pb63mhruWL3h6dNjDAyUjm1w0GH9+kx8iYRPMpl5fMklqfy1GlVPXrIkzeLF6Xzsvp+5iXvMMV7+cU+Pz5Ytk1uaYOPGGIcOOTgOBW147TVXC2FNghK5REqlNwhLlTvuuKM9nzhf3HIew8m97B/8FDFngJ7OzFL77YnMpsjVlGUm2hsuVz/P/T/4qaI4iebKHMHvm0wCDL655X525503WirasiVGMumQSPhVrXeSe1N6+ukYM2f6+ST+9NMxzj03zdy5WgirWkrkEnoPPNAGkO+57drl8POfxzj1VC//+IQTfPbtcwuSwBtvOEybBv39Dg880EZfn8PBg/DEE3Fi7+3jv/mreDR1CR9uW8/vj8zCcWDJ7n0Fr7d/f+aCRx3lTyhx5a7R3g7Dw20F5668ciRfzli2LFMndpxMrzxTjvHZtKnwDWv58hTr18fzz+vo8PMTkCZTs87FmYsLSpeKli9PsW2bS1+fk/8ZTHRN8OL7Fnv3Ztqde53cc2TiGp7I+341xMY7Xmv0yzZVLO6STnnNDqNpKm3/k/s+QvFI8DvuaCf2y+1cNPMlABb48EzbPLa9Nof92V+jM7vf5Jzh7TivFH7vArK91Fcyq/wdl25j9hFg98/hV0P/xN8zmzOdf+W/e3fiZHflak8fZMG2n+Znmk4bnENfahoDHR0TSlx7n32Ti6Y/hxtz8NKjXe8n953O86eeyplnZkoZa9eO7jnpOJn/Fi1KF0wwWr48xW23ZWZeTp/u4/vwwgsxensz31htueWBB9rY+8+/5KKZLxXEBYWlIt+Hdevi9PY6LFuWmtSa4MGbnLnvUSll8hqeyHdzLP+TLzT6ZZsqjkOK1r2LU3H7T4Mrryzc2/NznxvmjjvmsZHR6fv+kZB8afRGX//7EmxyTj/scsFEtHvQ4d13XY4+2uPAIZcUg/TSw+kxS1+sJ59IBv0UG3ouZ/duh3cPuhx9jMeCY33mzk1NKHHNOnsOG3efRDzukEoF2n4knHnmcEXrtkCmnLJ+fZz+focFC9KsWjXMunWZMsdka9ZXXjnCHbuzP9tsXEHBN5jcxKHJrgmu3X7qo6JEbow5F/iGtXZR0fFVwLXA3uyhz1hrbblrHXOMx+c+11obEWc2Ym2tNgdNtv3B35dcIti3b/Svfu5c77BEUFxL9zy47bZ2tm+PkU6DTw9Hxg7Q1e1zzIzRZNSd9PnDPxzOf39uIaxc3brSxJUrU4zV9rFGuuReIzdbNNdznT7dZ9Wq4YJZpJ2dPk88MfonXE0yrPRvsRZrgmu3n/qpZPPlLwLfAzpLnD4LuMZauyj7X9kkLjIZxYngK18Zyk8qKR6eV2qyzY4dLkNDmaTYHnuVzyTu56GB5Xw7efVhNx6XLEnn69C5BLZ8eYrBQWfMZWGrbVOpx8GeayLhk0iUjiWo3sP3JjthazKTlqS8SnrkrwG/BdxX4txZwE3GmGOBR6219dueRVreeL3Y4t4ijI468f1MAs/dLDzUH+euwQH82IN8Z2iA/5NdzyW3Xovvw9BQ4bC/XN26FsP+giM4cvGuXRvn6acz11+zZvTrUmWXYCxR6tlqt5/6cPwK3sKNMacAP7LWLiw6/mXgLiAJPAR8x1r7SLlr7d/v+U8+2Vr1Ytd18bzWvdlZ6/ZPZBz5F7+Y2XHowAHo6YELLvBZudJn9WqHp55y8o/H+v7c83Jyz4fKYijX9nLXf/xxh0OHyMeWe+60abBsmc9jj5U/Hwat/Htfj7ZffnnsOeA3Sp2r+manMcYBbrfWHsg+fhQ4AyibyH3fZ2BgqNqXjaRMnbS12hzUjPbnShOjf0sO3d0eS5YMc/AgLF0Kw8NxXNfn4MGxh+stXQqbN3cEHg/xyCOVL3Y1XttLXf/gQTj//Mx1gysn5qb6DwyMfz4MWvn3vj5tP2LMM5OZop8AXjTGTM8m9SXAc5O4nkhNlKqlL1uWKphinvtIX27MdakRFmvWxGu22NV4C22NV5OebM1apo4J98iNMVcB0621dxtjbgY2AUPABmvtmloHKDJRE6mlj6X4zSBYlz733DTnnpuuejGuUtePUp1bwqeiRG6tfQNYmP36/sDx+yh9E1SkqSZ7Uy34ZtDZmRkxkhvb3dHhMzTk5Kerw8SunYsrd/3cVPtqx2Y3Wi03w5Da0BR9mbImW3pYsiSN53HYLMt16+L5NVtySazSSS3B8e3B6+fq62HviWtnn3BSIhcpo3gbty1bYhw4kFlvZNmyFJdemmLNmspKIqVWMqzlkMbg69Sjx6ydfcJLiVxCKUwf34Prg/T1OQwNwWWXZZJ47vzMmX5FO/FMdrOL8dSzx9yI+KU62lhCQmciGyk0Qu71cxsipFIO1roFNyznzvXy63mXE0yGObVKgmPNaK3l9nb1jF+qpx65hErYPr4Xr82dW4nw5ZczW6AlEoWLSVV6vaBaLRrViB6zFr0KJyVyCZWwfXwvNZRx1arh/D6WExkN04ghh8EyUE6tk7iGTIaPSisSOmH7+B4cTZJbmzu3kBVUvlhVIxaNGm+S0WRo0avwUo9cQieMH9+DNw6Lt0CbSI+0notGNaLHrEWvwkmJXEIlzB/fK50xWsl1yj1udnyVvE65x9J4SuQSKo1KRtUKe4807PFJfSiRS+iEPRmFvUca9vik9nSzU0JJyUikckrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEVdRIjfGnGuMeaLE8cuMMc8aY7YYYz5V8+hERGRc4yZyY8wXge8BnUXH24DbgGXARcCnjTGz6xGkiIiMrZIe+WvAb5U4Ph941Vr7nrV2GHgKuLCWwYmIyPjGndlprX3QGHNKiVMJ4EDgcR8wY7zrOY5DV1dHxQFOBa7rtlybg1q5/Wq72t4Ik5minwS6A4+7gd7xvsn3fQYGhibxstHT1dXRcm0OauX2q+1qe+0cMeaZySTybcBpxpijgH4yZZVbJ3E9ERGpwoQTuTHmKmC6tfZuY8yNwHoytfZ7rbW7ah2giIiUV1Eit9a+ASzMfn1/4PjDwMN1iUxERCqiCUEiIhGnRC4iEnFK5CIiEadELiIScUrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEadELiIScUrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEadELiIScUrkIiIRN+4OQcYYF/g28J+AIeBaa+2rgfPfAi4A+rKHPmKtPVCHWEVEpIRKtnr7TaDTWnueMWYh8DfARwLnzwIusdbuq0N8IiIyjkoS+QXAOgBr7VZjzG/kTmR766cBdxtjZgPft9beW+5ijuPQ1dUxiZCjx3XdlmtzUCu3X21X2xuhkkSeAIKlkrQxJm6tTQFdwB3AN4EYsMkY8/+stf821sV832dgYGgyMUdOV1dHy7U5qJXbr7ar7bVzxJhnKrnZmQS6g9+TTeIAB4FvWWsPWmv7gI1kaukiItIglSTynwGXAmRr5L8InJsH/MwYEzPGtJEpwzxf8yhFRGRMlZRWHgIuNsb8C+AAv2eMuRF41Vq72hhzH7AVGAF+aK19qX7hiohIsXETubXWAz5bdPiVwPm/Bv66xnGJiEiFNCFIRCTilMhFRCJOiVxEJOKUyEVEIk6JXEQk4pTIRUQizvF9v9GvuRfY0egXFRGJuJOBWaVONCORi4hIDam0IiIScUrkIiIRp0QuIhJxSuQiIhGnRC4iEnFK5CIiEVfJeuRSBWPMucA3rLWLso8vB6601l7V1MAaINh2Y8yvk9kOMA0MAddYa/c0M756Kmr7AuBuMuv4/xK4NrC71pRT/DufPXYV8Dlr7XlNC6xBiv7tzwAeIfPvDvAda+0/1Ou11SOvA2PMF4HvAZ3Zx98CvkYL/LyL2w58i8wf8iLgJ8AfNym0uivR9r8CbrbWnp99fFlTAmuAEm0nm8w+SeaNbEor0f6zgG9aaxdl/6tbEocWSCxN8hrwW4HH/wL8QZNiabTitv+OtfaF7NdxYLDhETVOcds/aq3dbIxpB46lcBPzqaag7caYo8m8kd3QrIAarPjf/izgQ8aYzcaY7xtjusf4vppQIq8Da+2DZLa+yz3+B6AlptCWaPs7AMaY/wxcD9zWpNDqrkTb08aYk4GXgJnAz5sVW70F226MiQHfB24E+poZV6MU/9sDzwBfsNZeCLwOfLmer69ELnVnjPmvwHeBD1lr9zY7nkay1u6w1p5Gpv3fbHY8DXIWcBrwHeBHwAJjzO1NjajxHrLWPpf7Gjijni+mRC51ZYy5mkxPfJG19vVmx9NIxpjVxpjTsg/7AK+Z8TSKtfYZa+3p2fsivwO8bK29oblRNdx6Y8w52a+XAs+Ve/JkadSK1E32I/b/AnYCPzHGADxpra3rx8wQ+TrwA2PMMHAQuLbJ8Ujj/AFwhzFmBNgNfLqeL6bVD0VEIk6lFRGRiFMiFxGJOCVyEZGIUyIXEYk4JXIRkYhTIhcRiTglchGRiPv/N+7OfAZMJWgAAAAASUVORK5CYII=\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ada = ada.fit(X_train,y_train)\n", + "y_train_pred = ada.predict(X_train)\n", + "y_test_pred = ada.predict(X_test)\n", + "ada_train = accuracy_score(y_train,y_train_pred)\n", + "ada_test = accuracy_score(y_test,y_test_pred)\n", + "print('Adaboost train/test accuracies %.3f/%.3f'%(ada_train,ada_test))\n", + "plot_decision_regions(X_train,y_train,classifier=ada)" + ], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%% md\n" + } + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file