diff --git a/AdaBoost/AdaBoost.ipynb b/AdaBoost/AdaBoost.ipynb new file mode 100644 index 0000000..a562d85 --- /dev/null +++ b/AdaBoost/AdaBoost.ipynb @@ -0,0 +1,267 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.ensemble import AdaBoostClassifier\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from matplotlib.colors import ListedColormap" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "df = np.loadtxt('dataCircle.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "label_one = df[[np.arange(40)],:]\n", + "label_zero = df[[np.arange(40,len(df))], :]\n", + "label_one = np.reshape(label_one, (40,3))\n", + "label_zero = np.reshape(label_zero, (62,3))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(8,6))\n", + "ax = fig.add_subplot(1,1,1)\n", + "ax.scatter(label_one.T[0],label_one.T[1], c='green', marker='+', label = '1' )\n", + "\n", + "plt.scatter(label_zero.T[0], label_zero.T[1], c='red', marker='*', label = '0')\n", + "\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "X = df.T[:-1]\n", + "X = X.T\n", + "y = df.T[2:]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "y = np.reshape(y, (102))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None,\n", + " learning_rate=1.0, n_estimators=200, random_state=0)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf = AdaBoostClassifier(n_estimators=200, random_state=0)\n", + "clf.fit(X,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.46, 0.54])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.feature_importances_" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1.])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.predict([[-0.14444, -4.24898 ]])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf.predict([[-8.72957, -9.11317]])" + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_decision_boundary(classifier, X, y, N = 10, scatter_weights = np.ones(len(y)) , ax = None ):\n", + " '''Utility function to plot decision boundary and scatter plot of data'''\n", + " x_min, x_max = X[:, 0].min() - .1, X[:, 0].max() + .1\n", + " y_min, y_max = X[:, 1].min() - .1, X[:, 1].max() + .1\n", + " xx, yy = np.meshgrid( np.linspace(x_min, x_max, N), np.linspace(y_min, y_max, N))\n", + "\n", + " \n", + " #Check what methods are available\n", + " if hasattr(classifier, \"decision_function\"):\n", + " zz = np.array( [classifier.decision_function(np.array([xi,yi]).reshape(1,-1)) for xi, yi in zip(np.ravel(xx), np.ravel(yy)) ] )\n", + " \n", + " # reshape result and plot\n", + " Z = zz.reshape(xx.shape)\n", + " \n", + " fig = plt.figure(figsize=(8,6))\n", + " ax = fig.add_subplot(1,1,1)\n", + " ax.contourf(xx, yy, Z, 2, cmap='cool')\n", + " ax.contour(xx, yy, Z, 2, cmap='cool')\n", + " \n", + " ax.scatter(label_one.T[0],label_one.T[1], c='black', marker='+', label = '1' )\n", + "\n", + " plt.scatter(label_zero.T[0], label_zero.T[1], c='red', marker='*', label = '0')\n", + " plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [], + "source": [ + "boost = AdaBoostClassifier( base_estimator = DecisionTreeClassifier(max_depth = 2, max_leaf_nodes=2), \n", + " algorithm = 'SAMME',n_estimators=26,learning_rate=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAFpCAYAAACF7LEpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XuUVPWd7/33t7qKpq3mIjS2l6a5iJOVwImQNBoMKBmdRDk5IDlOIr0cNDGgeZLnJDMOa8bjMjPA5EnmzDOTyZgZOZjrnIUXnDkQ1tCamExo5UhQNI1BDIORTmjxAq022NDdVV2/80dVY9lW9a1q19616/Naq1dX1d6197d6V/W3fndzziEiIiLlL+J3ACIiIlIcSuoiIiIhoaQuIiISEkrqIiIiIaGkLiIiEhJK6iIiIiGhpC4iIhISSuoiIiIhoaQuIiISEkrqIiIiIRH1O4CxqKurczNnzvQ7DBERkZJ45plnTjjnpg23X1km9ZkzZ7Jv3z6/wxARESkJM/vtSPZT9buIiEhIKKmLiIiEhJK6iIhISJRlm7qIiMhoJRIJOjo66Onp8TuUvMaPH09DQwOxWGxMz1dSFxGRitDR0cGECROYOXMmZuZ3OO/hnKOzs5OOjg5mzZo1pmOo+l1ERCpCT08PU6dODWRCBzAzpk6dWlBNgpK6iIhUjKAm9AGFxleUpG5m3zOz183sQNZjU8zsMTM7nPl9bp7n3pzZ57CZ3VyMeERERILoc5/7HOeddx7z5s3z5PjFKqn/ALh20GN/DvzMOXcJ8LPM/XcxsynAXwCXA5cBf5Ev+YuIiJS7W265hUcffdSz4xclqTvnHgfeGPTwCuCHmds/BK7P8dRPAI85595wzr0JPMZ7vxyIiIj4YunSpSxdurRox7vyyiuZMmVK0Y43mJdt6vXOuVcAMr/Py7HPRcDRrPsdmcdERERklPwe0parR4DLuaPZWmAtQGNjo5cxiYhIhRsonbe2tr7r/q5du/wJaIS8LKm/ZmYXAGR+v55jnw5getb9BuBYroM55zY755qcc03Tpg27UI2IFFNXF8ydm/4tIoHlZUl9B3Az8I3M7x/l2OfHwP+X1Tnu48CdHsaU02d/UOozDq3mdBd3fe0KvnbXk5w5Z5Ln57v8FxBJQXWf56eSMjXrpZ1cefAgj/+XFo7MXuV3OFIgB5ypgWc/BMmxTVx2Vu84SEXgwRuLElpgDJTIy6WEPqAoSd3MHgCWAnVm1kG6R/s3gK1mdivwO+APM/s2Abc75z7vnHvDzDYCT2cOtcE5N7jDnS9KnVizXbp/JxcdO8gHn2th70e8/wd6og5qzkB1p+enkjKzpLWZ6R07qOrvBWDx7tUs2rOGow3LeeKq+32OTgrxej3Eu6FrcmHHOTkReqthVntRwvLUfUlI9I7uOd2p9O/nRvG8D1bn37Zq1Sp27drFiRMnaGhoYP369dx6662jC2oIRUnqzrl8mefqHPvuAz6fdf97wPeKEUcxlTqxAqzd1MyCX+4glky/e9bct5pbvr+GXy5Yzubb9Q9USq9twQamvNlG7dvtRPqTpCIxuuMzaFuw0e/QREriu4/tKurxHnjggaIebzDNKDfI2k3N3HtbLZ//TnoenDX3rebe22pZu6nZ83NvX7mBzqmNJKPp+rBkNEZn3Qy2fUr/QMUfpybOoW3+BiKpBIlonEgqQdv89ZyaeLHfoYlIDkrqg/iZWF+vn8P2lRuIJhP0VMepSibYfv16jp+nf6Din5ntW0lG47TNX08yGmdG+8N+hyQieSipD+J3Yl341FZ6q+Nsv349fdVxFj6tf6DirwPz1rFt5SEOzr2DbSsP8fy8dX6HJCJ5+D1OPZAGEuuO5XezfMdGFj79MPsW3lCScz963Tq23HQPJyfVs2fRTUx54+jwTxLxUGfdwrO3e2rq6amp9zEaERmKknoOfibWI7Pf+Qd6clI9JyfpH6h4J9bXxbKWK2hZ9iSJcaUd5SEixafq9xyOzF54NpmenFRP+6wmnyMS8UZDx04mdx2koaPF71BEpAiU1EUq0JLWZpq31LJ4d3qUx+Ldq2neUsuSVu9HeYhUskcffZT3ve99zJkzh2984xtFP76SukgFaluwge54I6lIepSHxp+LeK+/v58vfvGLPPLIIxw8eJAHHniAgwcPFvUcSupSEWJ9XazYPpdYn+YuB40/Dxq9P4Mr0tXF782fS6QI6x489dRTzJkzh9mzZzNu3DhuvPFGfvSjXDOoj52SulQEtR2/l8afB4fen8E18ZGdjP/1QSY+Wvi1efnll5k+/Z01zBoaGnj55ZcLPm429X6vUNlz20N4ez1r7vL8Dsxbx97L76Gnpp6XZt9EvFvDJ0tN78/gmr66mYn/toNIX/raTL91NRd9YQ0nP7mco/88tmvj3HtXFjfLtQL52KmkXqGy57YPM7Ud59dZt/DsmPOemno66zTKo9T0/gyu1/5iA4nGRlwsfW1cLEZixgxe+4uxX5uGhgaOHn3ny3NHRwcXXnhhwbFmU1KvMLnmtq85c4zzX/l3nyPzhtqOJcj0/gyuvovn8NpXN2CJBP3xOJZI8Nrd6+m7eOzXZuHChRw+fJgjR47Q19fHgw8+yPLly4sYtZJ6oNSc7uKv7ppLzWnvOsvkmtveWRWdU8NbSlPbsQSZ3p/BNelftpI6J85rd68ndU6cSf9a2LWJRqN8+9vf5hOf+ATvf//7+fSnP83cuXOLFG3mHEU9mhSkFMu9Dsxtf/umVfRUx4kmeknEJmKuxpPzBYHajiXI9P4MruN/so5j37yHZH09b626iVhH4ddm2bJlLFu2rAjR5aakHgClXkd98Nz2VckzQHiTuuYulyDT+zO4zjS9c22S9fUk64N/bVT9HgClXu710evWcefXD/Hja+/gzq8fIhmrLeh4GmMrIhIMSuoBUOrlXgfPbZ+KjCvoeBpjK1LeStGfR0pDST0gynEddc0fLhIOlTLENUXuseJBUmh8alMPiHJcR71twQamvNlG7dvtRPqTGmMrUmYWPvUQ//Vfby1Zfx6//S4ynqlvdhI9d2rRJ30pBuccnZ2djB8/fszHUFIPiHJZRz17/e2BMbZXPr6KRDROVX+vxtiKlJGDH7iGpbsaqetsp6ov6Xl/Hr/dU9PA//tGB40njntaTf1CAZl1/PjxNDQ0jPn5SuoVIHtK2DPnFDYlbHb7+ZHZq86Osd1/6d1cun8jM9of5rczbyhS5CLipe7aqe8Z4uplfx6/nYzE+Fp8lufnOTLT81PkpTb1ClCM9rJ87eexRBfbVh7i4Nw72LbyEM/PW1essEVGRKMvClOO/XkkP5XUy8xoSt3FHP+er/187+X/9K75wzXGVkptcO2RjE459ueR/FRSLzOjKXUXc/y75qgOn3Iv4Wr0RXEMHuLaPiu8U0ZXAiX1MpFrIZZ7b6tl7ab8/8CKPf5dc1SHS7nPL6AVztLK/cuZFJeSepkYa6m7mO1lB+atU/t5CISlhKvao7Ry/3ImxaWkXibGWuoePCXsI9eNPRFr/e1wCGIJd6ylzUquPQrLlzMpLk+Tupm9z8zasn5OmtlXBu2z1My6svb5qpcxlbOxlLrVXiaDBbGEO9bSZiXXHgXxy5n4z9Pe7865Q8B8ADOrAl4GtuXY9Qnn3Ce9jCUMxtpLtZjj1CUcgjK/wJLWZqZ37KCqPz1CY/Hu1Szas4ajDct54qrhR2hU8gpnmvxJcill9fvVwG+cc78t4TlDZayl7kqZ11lGLiglXJU2C1PJzQ+SWynHqd8IPJBn2yIz2w8cA/7UOfd86cIKr1Kv0y7lIyglXJU2C3Ng3jr2Xn4PPTX1vDT7JuLdGmNe6UpSUjezccByINfXyGeBGc65S4F7gO15jrHWzPaZ2b7jx497F2yIlHqddpGxUGlz7NR5VQYrVfX7dcCzzrnXBm9wzp10zr2dud0CxMysLsd+m51zTc65pmnTpnkfcQiUep32YtP428oQlKYAkTAoVVJfRZ6qdzM73zJr4JnZZZmYOksUV+iV87zOGn9bGVTaFCkez9vUzewc4A+A27Ieux3AObcJuAH4gpklgTPAjc6nVezD2Eu8HOd1LrRHtIhIpfI8qTvnTgNTBz22Kev2t4Fvex3HSGT3Et/7kXAsDFEu67Rny7d4jHpEi4gMTTPKMbZ51cU7QZwcRUSCZ8LJLn7yB3OZcFL9bgYoqaNe4kGkHtEiMpyP/Xwnl7x4kKW71O9mgJI65d9LPIzUI1qkMoyltP33X27m+Q/U8v//abp29W/vWM3zH6jl77+s2lUl9Yxy7iUeRuoRLVIZxlLa/uYfb+Dli95du9px0Qz+7k9Uu6qknlHM1cxERGRohZS2fztzDt/843Ttavc5caLJBH//x+v53QzVriqpZ2g1MxGR0im0tP2fd27lTE2cv//Kes7UxFnWotpVUFIXEREfFFra3rx2HVf/7BDfWXMHV//sEJvXqnYVSrugS3D5MtWNv8zB+B6Id0N/lQcnqMC/aRD9zU/+AIB1H3/M50gkUCz9q/41SEbB2egP0TcOkrH0/5JkDGYeGf0xDr1vJdc+egZnEcylABvxcU5OXEjt21D7NkA9pybUjykGL6zaAw/4NNWJkjqw4Jfw5hS/o/BHpB8mnIS6TogmCztWNAnVvVB3Iv2BZwz/KKS4/vF9mWSuBY8ly7hesBQcnQ7TToz9ONU9UDMdTtRBagz1vpO6jtMzfgK91XGqe89Q3XOKk5POH3tAAVHo/9KCzu3fqYNjfA9MftPvKErv3Dfg9w5DbzVFS8CWgkgKJnWlv8GLPx44tRmAo8l00WV6dBYAqyas9S0mCQZn0B2Hmb+DOb+B9hlwOj76Y/SMh7drof54+mdsshN4PP3TMdZjBcf5rwB/5M+5ldSB6r70T6U573i6RD2pK/3FplCRFIzrUwE9CHa9mp4jf29vKwCXV18FwBfOV1IXmPwWnD4HOqfC1DcgOW70x6jug4kn0/9D+sbw/MHqTuzlksPf5fAln+dE3WWFH9BHKqmLb8b1wblv+R2FDOUzry4F4KHzd434OQP7juW5XsUkwWFA/DScnFj4cQotFGUv4BRxSRb88vv0V1VrAacxUu93ERHxTduCDXTHG0lF0kPbtIBTYVRSL1Oxvi6WtVxBy7InSYwLxzKx8m4DpeGBKvRCSuxBikkk28ACTlc+vopENE5Vf68WcCqASuplqqFjJ5O7DtLQoYUMRKQwsb4uVmyfS6zPn9XOtIBT8aikXmay258AFu9ezaI9a9T+FEJet4uPRRBjksJlFxKOzC79AOsD89ax9/J76Kmp56XZNxHvPlryGMJCJfUyo/YnESmWWOIF6l9tZfHu9Pzri3evpnlLLUtaS7vamRZwKh6V1MuM2p8qTxBLw0GMSUYvGZ1JlC5SkRiR/qQKCSGgknoZUvuTiBSDsxpOTZhNJJUgEY0TSSVCU0jwu5+AX5TUy9CBeevYtvIQB+fewbaVh3h+nhYyEJGxGX/m9VAWEiq1M7Gq38tQZ93Cs7d7aurPtkWJiIxWd20j21YeCk0ntUrvTKySuohIBUvEJoaqk1qldyZWUhcRkdAY6Ewcxn4CI6GkLiIioVLJnYnVpi4iIqFSyZPZKKmLiEioVHJnYlW/i4iIhISSuoiISEh4ntTNrN3MfmVmbWa2L8d2M7N/MLMXzew5M/uQ1zGJiIiEUana1D/mnDuRZ9t1wCWZn8uBezO/RUREZBSCUP2+Avhnl/YLYLKZXeB3UCLiv8+8uvTsMq8iMrxSJHUH/MTMnjGztTm2XwRkjzfoyDwmIiIio1CK6vePOueOmdl5wGNm9mvn3ONZ2y3Hc9zgBzJfCNYCNDY2ehOpSMANlFrDvvTpwOvc29v6rvthf90ihfK8pO6cO5b5/TqwDbhs0C4dwPSs+w3AsRzH2eyca3LONU2bNs2rcEWkgqm6X8qdpyV1M4sDEefcqcztjwMbBu22A/iSmT1IuoNcl3PuFS/jEik3lVZyHXhdYX+dIsXmdfV7PbDNzAbOdb9z7lEzux3AObcJaAGWAS8Cp4HPehyTiMi7BO1Lk9/nl/LlaVJ3zr0EXJrj8U1Ztx3wRS/jECl3lVpyrZTXKWmxvi6WtVxBy7InSYybNOJt8g7N/S4iFS8oX5qCVmNQag0dO5ncdZCGjhaOzF414m3yDiV1kTJSKf/cx6LSEmCYLGltZnrHDqr6ewFYvHs1i/as4WjDcoC825646n7fYg4qJXWRIlFSKX9+X7ug1BiUWtuCDUx5s43at9uJ9CdJRWJ0x2fQtmAj4IbYJoMFYUY5EZExGxiGtre3lb29rRqWVoZOTZxD2/wNRFIJEtE4kVSCtvnrOTXx4iG3yXspqYsUSElFiu2h83dVTCl9wMz2rSSjcdrmrycZjTOj/eERbZN3U/W7iJS1Sq2yDpsD89ax9/J76Kmp56XZNxHvPjqibfJuSuoiBVJSESlcZ93Cs7d7aurpqakf0TZ5NyV1EQkFfZkSUZu6SNFUYjuoSDmJ9XWxYvtcYn1dfofiGSV1ERGpCNkT2ISVqt9FRCTUhprcJmwT2KikLiIioda2YAPd8UZSkRhA0SawCWJ1vpK6iIiEmlcT2ASxOl9JXUREQq+YE9gsaW2meUsti3ffDKSr85u31LKktblY4Y6Z2tRFRCT0ijmBzdBz1ftLJXUREQm9zrqFZyet6ampp7OuaczHCvJ89ErqIiJjoDn+K1tQ56NX9buIiMgoBXU+eiV1EZFRGCid7+1tfdd9zSZYWYI6H72q30VEpGJ4NbY8KGPWVVIXERkFrcpX3rLHlh+ZvSrwxx0tJXUREQk9r6aKzXdc+pbD/aWfglbV7yIiY6BV+cqLV1PF5jsuG/0Zs66kLiIioefV2PJ8x+Vif8asK6mLiEhF8GpseZDGrKtNXUREKoJXY8tzHXdWUY48eiqpeywowxxERCpdMaeKLcVxx0JJ3WNBXJpPRETCybOkbmbTzeznZvaCmT1vZl/Osc9SM+sys7bMz1e9iqfUgrw0n4iIhJOXbepJ4A7n3LNmNgF4xswec84dHLTfE865T3oYhy+CvDSfiIiEk2cldefcK865ZzO3TwEvABd5db6gCfLSfCIiEk4laVM3s5nAAmBvjs2LzGy/mT1iZnNLEU+pBGmYg4iIhJ/nQ9rMrBb4V+ArzrmTgzY/C8xwzr1tZsuA7cAleY6zFlgL0NjY6GHExRPUpflERCScPC2pm1mMdELf4pz734O3O+dOOufeztxuAWJmVpfrWM65zc65Judc07Rp07wMu2iCNMxBRETCz8ve7wZ8F3jBOfd3efY5P7MfZnZZJp5Or2ISEREJMy+r3z8K/BHwKzNryzz234FGAOfcJuAG4AtmlgTOADc655yHMUkZ0hKXIiIj41lSd87tBmyYfb4NfNurGETKmb7MiMhoae53CYzBSWzg/t7e1pzbRaQyxPq6WNZyBS3LniQxbpLf4QSakrpIwOjLjMi7ZU+3fWT2Kr/DCTQldfE9aQyXxPyOT6TSff3RpQDcee2ukp53SWsz0zt2UNXfC6Sn2160Zw1HG5bzxFX3lzSWcqGkLhIw+jIjkqbptkdPSb2CHel8mniqxvdq3uGSmJKaiD8GSuiHXmt91/1SldgHptu+8vFVJKJxqvp7Nd32MLT0qkhAPXT+Ln2hkYqn6bZHRyX1CjZr6kImvwWXV18F+F8i9vv8IvJuAyVyv9rUQdNtj5aSuoiIBFZn3cKzt3tq6s9OvS25KamLSsgiMiQ/SugyNmpTFxERCQkldRERkZBQUhcREQkJJXUREZGQUFIXEREJCSV1ERGRkFBSFxERKVCsr4sV2+cS6+vyNQ4ldREZ0mdeXXp2Xn4RyS17eVg/KalnCco3LRERKQ9LWptp3lLL4t03A+nlYZu31EJzsy/xaEa5LNnftI7MXuV3OCK+Gm6d+yAJcmwSbvmWh5280Z/lYVVSJ/83rSWt/nzTEhGR8jCwPGwklSARjRNJJWibvx4u9md5WJXUyf9Nq22BP9+0RIJguHXug6CcahMkvAaWh91/6d1cun9jZnnYG3yJRUmdd75pXfn4KhLROFX9vbTNX8+pif580xIRkfKRa3nYWT7FoqSekeub1m9n+vNNSyRIglzqDWptQtDikfeK9XWxrOUKWpY9SWLcpIKOFaTlYZXUM3J90xIRkXAKa8doJfWMIH3TEpHRCUqJWG38wbektZnpHTuo6u8F0h2jF+1Zw9GG5Txx1f0+R1c49X4XEZGK0bZgA93xRlKRGEDoOkarpC4iUiRBbeOXd4S9Y7RK6iISaprmVgYb6BjdNn89yWg8MwQtHDwvqZvZtcC3gCrgO865bwzaXg38M/BhoBP4jHOu3eu4RES8ohJ6sIW5Y7SnSd3MqoB/BP4A6ACeNrMdzrmDWbvdCrzpnJtjZjcCfw18xsu4RGTkyrUqWZ3WJJ8wd4z2uvr9MuBF59xLzrk+4EFgxaB9VgA/zNz+F+BqMzOP4xIRCSU1N1Q2r6vfLwKy6zU6gMvz7eOcS5pZFzAVOOFxbCIyhHIv6arTmlQir5N6rhK3G8M+mNlaYC1AY2Nj4ZGJiIRIuX8Jk+LwOql3ANOz7jcAx/Ls02FmUWAS8MbgAznnNgObAZqamt6T9EWkuMJS0i3XuEXGwuuk/jRwiZnNAl4GbgQGr2e6A7gZ2EN6WZt/d84paYuIjEJYvoRJYTxN6pk28i8BPyY9pO17zrnnzWwDsM85twP4LvC/zOxF0iX0G72MSUpL/2DKn66dSPnwfJy6c64FaBn02FezbvcAf+h1HCIilUBfwiqbpokVT6jTjohI6WmaWBERkZBQSV08oU47IiKlp5K6iEgF0Yxz4aaSunhKJXQRkdJRUhcRqQC5Oq/eNuVbXMClPkYlxabqdxERkZBQSV2kSNQpUIIsV+fVV8bBW/6FJB5QSV1ERCQkVFIXKZAm2pFyovdluKmkLiIiEhIqqVeQWF8Xy1quoGXZkyTGTfI7nNDQRDsiEhQqqVeQho6dTO46SENHy/A7i4hI2VFJvQIsaW1mescOqvp7AVi8ezWL9qzhmQ89CfZBn6MLD5XQRcRvKqlXgLYFG+iON5KKxABIRWJ0x2dwasIcnyMTEZFiUlKvAKcmzqFt/gYiqQSJaJxIKkHb/PX0R8/xOzQRESkiJfUKMbN9K8lonLb560lG48xof9jvkEREPBfr62LF9rnE+rr8DqUk1KZeIQ7MW8fey++hp6ael2bfRLz7KNFkac6tXuHiJb2/ZCjZHYSPzF7ldzieU0m9QnTWLaSnph6Anpp6OuuafI5IRMQ7S1qbad5Sy+LdNwPpDsLNW2pZ0trsyfmCUiOgkrp4RjOtiZf0/pKhtC3YwJQ326h9u51If/JsB+G2BRs9OV9QagRUUheRQPjMq0vPJmaRQuXrIHxq4sVFPU++GgGavakRGI5K6uIZzbQmXtL7S4Yz0EF4/6V3c+n+jcxof5jfzryhqOfIVyMweaM3NQLDUVKvQAPTxe69vA2I+R2OVDhVo4tXcnUQLraBGoErH19FIhqnqr+XtvnrWXpxcWsERkpJvQINtP2M7zkBXOD5+fTPWbyk95fk01m38Oztnpr6s52Fiy1XjQAUt0ZgpJTUK8jg6WInv3WA/shvqTv+D5yYdr/P0UmlUjW6lLtcNQKzfIpFSb2CDG77AcNZNW9N9qftR0QkDEpVIzAS6v1eQQb3BgVHf7SRZMyfth+RbA+dv0uldJECKalXmOzpYp1VEUmd8DskEREpEk+q383sb4D/AvQBvwE+65x7K8d+7cApoB9IOuc0zZnHstt+LjjWy6SuhN8hySiUut1Z7dwi5cWrkvpjwDzn3AeB/wDuHGLfjznn5iuhl0b2dLGpSDXOan2NRxOOiIgUjycldefcT7Lu/gK/+vaLhESpx3Jr7LiE1cA8HS3LniQxbpLf4RRdKXq/fw54KM82B/zEzBzwP51zm0sQjwSAkoaUO71ny1NQ5mj3ypiTupn9FDg/x6a7nHM/yuxzF5AEtuQ5zEedc8fM7DzgMTP7tXPu8TznWwusBWhsbBxr2CJlqdRjuTV2XMJm8Dwdi3evZtGeNRxtWM4TV4Vnno4xJ3Xn3DVDbTezm4FPAlc751yeYxzL/H7dzLYBlwE5k3qmFL8ZoKmpKefxpHxUStII++urRKplKk+lXrXNL171fr8W+DPgKufc6Tz7xIGIc+5U5vbHgQ1exCMSFqVOHEpUEhb55mgv9qptfvOqTf3bQDXpKnWAXzjnbjezC4HvOOeWAfXAtsz2KHC/c+5Rj+KRgApr0lBpLrwqpZYpjEqxapvfvOr9PifP48eAZZnbLwGXenF+ERGRwUqxapvfNPe7iAeKWZpTiTCYdD3KT5DmaPeKpokVEREJCZXURTxUjBK62uVFZKRUUhcREQkJldRFAkq9rEVktFRSFxERCQmV1EUCTiV0ERkpldRFRERCQkldRCrWZ15derbPgkgYKKmLiIiEhNrURaTiaA4ACSuV1EVEREJCJXURqTiaA0DCSiV1EREJpFhfFyu2zyXW1+V3KGVDJXURqVgqoQdbQ8dOJncdpKGjhSOzV/kdTllQUhcRkUBZ0trM9I4dVPX3ArB492oW7VnD0YblPHHV/T5HF2yqfhcRkUBpW7CB7ngjqUgMgFQkRnd8Bm0LNvocWfApqYtIaGlymfJ0auIc2uZvIJJKkIjGiaQStM1fz6mJF/sdWuApqYvIeygZit9mtm8lGY3TNn89yWicGe0P+x1SWVCbuoiEjiaXKX8H5q1j7+X30FNTz0uzbyLefdTvkMqCkrqInKVkKEHRWbfw7O2emnp6aup9jKZ8KKmLSOhochmpVErqInKWkqFIeVNSF5HQ0pcSqTRK6iLyHkqGwaAaExktDWmrYM4gGQXndyAiUnKW6iKSOoy5hN+hSBEpqVewUxOgPwonJ/odiYhkG5gnYG9vK3t7W72ZN8A9yZlzLmH8mf3FPe4IabEWbyipV7AzNVBzGt6aDP16J4hUhLrjzUz/XS1nal4m0t/Noj2foHlLLUtam0saR/ZiLVI8nrWpm9lfAmuA45lXQ/myAAAUNElEQVSH/rtz7j1Xz8yuBb4FVAHfcc59w6uYZBCD9plQ/zokYlDV63dAIgLejkJ4a/IGYn1tdMfnMfHkHiLuDG/XzirZvOparMVbXpfPvumcm5/5yZXQq4B/BK4DPgCsMrMPeByTZHHmdwQiUkrJ2By6Jm/AcDis5POqa7EWb/ld6XoZ8KJz7iXnXB/wILDC55hkCJbq4oJjc7GU2sFEvPbQ+bs86fl+zumtOCKcmnhxyedV12It3vI6qX/JzJ4zs++Z2bk5tl8EZE/o25F5TAKq5sxOxiUOUnNG7WAi5erkxHX0VS+gOz6TbSsP8fy8dSU9vxZr8U5Bbepm9lPg/Byb7gLuBTaSHjG1Efhb4HODD5HjuTlHWJnZWmAtQGNj4xgjlrGqO95MzZkdmEu3g9WdWI3rXMOZmuWcmKZ2MJFy0lf9zrzq/VXjWbz7ZlqWPUli3KSSnF+LtXinoKTunLtmJPuZ2X3Av+XY1AFMz7rfABzLc67NwGaApqYmDa0usYHONdFkO0YSR4xkdAZvTVY7mEg5y+6FfmT2qpKcU4u1eMez6nczuyDr7krgQI7dngYuMbNZZjYOuBHY4VVMMnbvdK5JkLI4RoKuSetJxsqzHUzrhUuliyb/g/Nf+RmLd98MpHuh+zG0TYrLyzb1/2FmvzKz54CPAX8MYGYXmlkLgHMuCXwJ+DHwArDVOfe8hzFJAc45vRVncd6avB5ncc45rXYwkXLVXzWd/qrx6oUeMp6NU3fO/VGex48By7LutwDqdVUGTk5cxxtT7iFVVU93/CaiyfJrB9N64SJpzmo4NXHO2V7oVf296oUeAn4PaZMy0le9kFRVuu0rVVVPX3WTzxGJSCFqzryqXugho1XapKJovXCRd7xdmx7Spl7o4aGkLiJSoRKxSfTUpIexqRd6OCipS0VSCV1Ewkht6iIiIiGhpC4iFUvzFUjYKKmLiIiEhNrURQJAvfFLS/MVSFippC4iIhISKqmL+EglRn9ovgIJKyV1AaBzKpxzurBjRJMQ74aI1tATCbSUQX9V4cdxwKkJ0B0v/FhhMuUN/86tpE76De5yrezuk2jiJNf8dBk/vaaFZGyiZ+eJpKC3Gs7php7x0DW58GO+MSWd2CecSid5Gdr9F+4CYM3rKwC477wfAdDvV0AVZuDvX0l/7/4qOD4NktF0Qh6rvli6MNA7HmJ9cNK7f1Vl58gs/86tpE76jf3mFL+jyDaR+y7e7flZqnug7gQcnFuc443rTSdzgLcL+GdRib7amE7mmqRTSiHSD6+en07Eb9eO/vmpSPp5kRQcr8uU1ANUMKpkSurA83OhutfvKOCju7/P9KO/oiqVxFw/zqroj0Q5Ov0/8X8Wf7ao54qk0lVEXZOgrrM4x+yrhs5qePPcdFW+qRpeJJDO1EAylv78d9eCpUZ/jHg3vPB+SBWhGl+KR0mddDLqq/Y7Cnj2w0tYvPtvqOtsp7rvDL3jajhRN4vtK7/IKQ+qtqYd96bZIVWlkrpIOXCWrjo//Ht+RyLFoiFtAfJ6/Ry2r9xANJmgpzpOVTLB9uvXc/w8rW8sIiLDU1IPmIVPbaW3Os7269fTVx1n4dNa31hEREZG1e8B8+h169hy0z2cnFTPnkU3MeUNdZ0SEZGRUVIPmCOzF569fXJSPScnaX1jEREZGVW/i4iIhISSuoiEUqyvixXb5xLr6/I7FJGSUVIXkVBq6NjJ5K6DNHS0+B2KSMmoTV1EQmVJazPTO3ZQ1Z+eUWrx7tUs2rOGow3LeeKq+32OTsRbKqmL5KHq2/LUtmAD3fFGUpEYAKlIjO74DNoWbPQ5MhHvKan7rOZ0F39111xqTitxBI2qb8vTqYlzaJu/gUgqQSIaJ5JK0DZ/PacmahInCT8ldZ9dun8nFx07yAefU+IIiiWtzTRvqWXx7puBdPVt85ZalrQ2+xyZjNTM9q0ko3Ha5q8nGY0zo12TOEllUJu6T9ZuambBL3cQS6bb/dbct5pbvr+GXy5Yzubb1e7np7YFG5jyZhu1b7cT6U+q+rYMHZi3jr2X30NPTT0vzb6JeLcmcZLKoJK6T7av3EDn1EaS0XS7XzIao7NuBts+pcThN1Xflr/OuoX01KQnbuqpqaezrsnniERKw5OkbmYPmVlb5qfdzNry7NduZr/K7LfPi1iCSou3BJuqb0WkHHlS/e6c+8zAbTP7W2CoXmAfc86d8CKOoBtYvGXH8rtZvmMjC59+mH0Lb/A7LEHVtyJSnjxtUzczAz4N/L6X5ylXWrwluDrr3pmDv6em/mxVrohIkHndUW4J8Jpz7nCe7Q74iZk54H865zZ7HE+gaPEWEREppjG3qZvZT83sQI6fFVm7rQIeGOIwH3XOfQi4DviimV05xPnWmtk+M9t3/PjxsYY9LI0bFxGRcjXmkrpz7pqhtptZFPgU8OEhjnEs8/t1M9sGXAY8nmffzcBmgKamJjfGsIeVPW5870dWeXUaERGRovNySNs1wK+dcx25NppZ3MwmDNwGPg4c8DCeIa3d1My9t9Xy+e+kJxxZc99q7r2tlrWbNOGIiIiUBy+T+o0Mqno3swvNbGDqtHpgt5ntB54CdjrnHvUwniFp3LiIiJQ7zzrKOeduyfHYMWBZ5vZLwKVenX+0BsaN375pFT3VcaKJXo0bFxGRsqIZ5bIMjBvffv16+qrjLHw6vBOO1JzuovbUESzV53coIiJSJJr7PUsljRu/dP9OErEPM+7MK8AMv8MREZEiUFLPUgnjxrMXkrn3CweYdnwPK340l6MNy3niKi0kIyJSzlT9XmEGdwh0FtEKZCIiIaGkXmGyF5JxZphLaQUyEZGQUFKvQAMdAnur60hZVCuQiYiEhNrUK9BAh8DzXp9CR8MnOefMTL9DEhGRIlBJvQIdmb3wbCfAVNV4OuuafI4oeGJ9XazYPpdYn9YAEJHyoaQukkNDx04mdx2koaNl+J1FRAJC1e8iWZa0NjO9YwdV/b0ALN69mkV71mjIn4iUBZXURbK0LdhAd7yRVCQ95C8ViWnIn4iUDSV1kSynJs6hbf4GIqkEiWicSCqhIX8iw6g53cVf3TWXmtPqg+I3JXWRQWa2byUZjdM2fz3JaFxD/kSGcen+nVx07CAffE59UPymNnWRQQ7MW8fey++hp6ael2bfRLw7vGsAiBQie9ppgDX3reaW76/hlwuWs/n2cPRBqTndxV1fu4Kv3fUkZ86Z5Hc4w1JJXWSQzrqF9NSkh/z11NRryJ9IHoOnnU5GY3TWzWDbp8LTB6XcaiGU1EVEZEyyp53uqY5TlUyw/fr1HD+v/PugrN3UzL231fL579wMpGsh7r2tlrWbmn2ObGhK6h5TBxIRCbOBaae3X7+evuo4C58ORx+Ucq2FUFL3WLlV3Yh4STP1FSaIf79Hr1vHnV8/xI+vvYM7v36IR65b53dIRVGutRBK6h4p16obES9ppr7CBPHvlz3t9MlJ9bTPCk8flHKshTDnnN8xjFpTU5Pbt29f0Y732R8U7VBnnffai/y3by2nrrOd6r4z9I6r4UTdLL715R2B+aY35zBU98K0E35HImGXPVNfxCVJWZT+qmrN1DdCXv39Xp8GiRgc/r0iBhsis156ms6pjZycVM/ErteY8sbREX9p+f4txY3FzJ5xzg17cpXUPVKuVTciXtBMfYXR388f5VgLoaTuoXKsuhHxgmbqK4z+fjJSSuoeCmsHklyC2IFHgkUz9RVGfz8ZCc0o56EjsxeevX1yUv3Zapwwyu7Ac2T2Kr/DkQDSTH2F0d9PRkJJXQqipUqDJ9bXxbKWK2hZ9iSJccGZ1rKz7p0vuT019Wdn7ZOR0d9PRkLV71IQdeAJniAOexKR0lBSl4KoA09wLGltpnlLLYt3p+dGWLx7Nc1balnSqrkRRCqFkroUTB14gkG1JiJSUFI3sz80s+fNLGVmTYO23WlmL5rZITP7RJ7nzzKzvWZ22MweMrNxhcQj/jgwbx3bVh7i4Nw72LbyEM/PC28v/yBTrYmIFFpSPwB8Cng8+0Ez+wBwIzAXuBb4JzOryvH8vwa+6Zy7BHgTuLXAeMQHWqo0OCqh1kTDJ0XyK6j3u3PuBQAzG7xpBfCgc64XOGJmLwKXAXsGdrD0k34fGGjw+yHwl8C9hcQkUskqYdiThk+K5OfVkLaLgF9k3e/IPJZtKvCWcy45xD4iMgphHvak4ZMiwxu2+t3MfmpmB3L8rBjqaTkeG7xyzEj2yY5jrZntM7N9x48fHy5sEQkZdQQUGd6wJXXn3DVjOG4HMD3rfgNwbNA+J4DJZhbNlNZz7ZMdx2ZgM6RXaRtDTDJI3QmIpPyOQmRkBjoCXvn4KhLROFX9veoIWKDJb0EqAof9DkSKxqvq9x3A/Wb2d8CFwCXAU9k7OOecmf0cuAF4ELgZ+JFH8Qyp2EvklY1b/A5AZJQ+vRUmxoncfTds3MjS+ofhBzf4HVXZu83vAKRoCh3SttLMOoBFwE4z+zGAc+55YCtwEHgU+KJzrj/znBYzuzBziD8D/iTTkW4q8N1C4hGRkFu3Dg4dgjvuSP9ep+GTItnMufKryW5qanL79u3zOwwREZGSMLNnnHPDjhfWjHIiIiIhoaQuIiISEkrqIiIiIaGkLiIiEhJK6iIiIiGhpC4iIhISSuoiIiIhoaQuIiISEkrqIiIiIaGkLiIiEhJK6iIiIiGhpC4iIhISZbmgi5kdB35bhEPVkV7XPQz0WoInLK8D9FqCKCyvA8LzWrx8HTOcc9OG26ksk3qxmNm+kax6Uw70WoInLK8D9FqCKCyvA8LzWoLwOlT9LiIiEhJK6iIiIiFR6Ul9s98BFJFeS/CE5XWAXksQheV1QHhei++vo6Lb1EVERMKk0kvqIiIioRH6pG5mf2hmz5tZysyaBm2708xeNLNDZvaJPM+fZWZ7zeywmT1kZuNKE/nQMrG0ZX7azawtz37tZvarzH77Sh3nSJjZX5rZy1mvZ1me/a7NXKsXzezPSx3ncMzsb8zs12b2nJltM7PJefYL7DUZ7m9sZtWZ996Lmc/FzNJHOTQzm25mPzezFzKf/S/n2GepmXVlvee+6kesIzHc+8XS/iFzTZ4zsw/5EedwzOx9WX/vNjM7aWZfGbRPIK+LmX3PzF43swNZj00xs8cyueExMzs3z3Nvzuxz2Mxu9jxY51yof4D3A+8DdgFNWY9/ANgPVAOzgN8AVTmevxW4MXN7E/AFv19Tjhj/Fvhqnm3tQJ3fMQ4T/18CfzrMPlWZazQbGJe5dh/wO/ZBMX4ciGZu/zXw1+V0TUbyNwb+H2BT5vaNwEN+x53jdVwAfChzewLwHzlex1Lg3/yOdYSvZ8j3C7AMeAQw4CPAXr9jHsFrqgJeJT32OvDXBbgS+BBwIOux/wH8eeb2n+f6vANTgJcyv8/N3D7Xy1hDX1J3zr3gnDuUY9MK4EHnXK9z7gjwInBZ9g5mZsDvA/+SeeiHwPVexjtamRg/DTzgdyweuwx40Tn3knOuD3iQ9DUMDOfcT5xzyczdXwANfsYzBiP5G68g/TmA9Ofi6sx7MDCcc684557N3D4FvABc5G9UnloB/LNL+wUw2cwu8DuoYVwN/MY5V4xJxDznnHsceGPQw9mfhXy54RPAY865N5xzbwKPAdd6FigVUP0+hIuAo1n3O3jvB38q8FbWP+pc+/htCfCac+5wnu0O+ImZPWNma0sY12h9KVN1+L081VgjuV5B8jnSpadcgnpNRvI3PrtP5nPRRfpzEkiZ5oEFwN4cmxeZ2X4ze8TM5pY0sNEZ7v1Sbp8NSNfy5CuIlMt1qXfOvQLpL5LAeTn2Kfm1iXp58FIxs58C5+fYdJdz7kf5npbjscFDAUayj2dG+LpWMXQp/aPOuWNmdh7wmJn9OvOts6SGei3AvcBG0n/bjaSbEz43+BA5nlvyoRsjuSZmdheQBLbkOUwgrkkOgf9MjIaZ1QL/CnzFOXdy0OZnSVf9vp3pw7EduKTUMY7QcO+XsrkmAJl+ScuBO3NsLqfrMhIlvzahSOrOuWvG8LQOYHrW/Qbg2KB9TpCuyopmSiW59vHMcK/LzKLAp4APD3GMY5nfr5vZNtJVrCVPICO9RmZ2H/BvOTaN5Hp5bgTX5Gbgk8DVLtOoluMYgbgmOYzkbzywT0fm/TeJ91ZL+s7MYqQT+hbn3P8evD07yTvnWszsn8yszjkXuPnHR/B+CcRnYxSuA551zr02eEM5XRfgNTO7wDn3Sqa54/Uc+3SQ7icwoIF0/y7PVHL1+w7gxkxv3lmkvw0+lb1D5p/yz4EbMg/dDOQr+fvhGuDXzrmOXBvNLG5mEwZuk+7IdSDXvn4a1P63ktwxPg1cYunRCONIV9/tKEV8I2Vm1wJ/Bix3zp3Os0+Qr8lI/sY7SH8OIP25+Pd8X178kmnj/y7wgnPu7/Lsc/5AXwAzu4z0/8LO0kU5MiN8v+wAVmd6wX8E6BqoFg6ovLWL5XJdMrI/C/lyw4+Bj5vZuZlmxY9nHvNOKXsQ+vFDOkl0AL3Aa8CPs7bdRbq37yHguqzHW4ALM7dnk072LwIPA9V+v6asOH8A3D7osQuBlqzY92d+niddRex73Dlex/8CfgU8R/qDcsHg15K5v4x0T+bfBPG1ZN4jR4G2zM9AL/GyuSa5/sbABtJfVADGZz4HL2Y+F7P9jjnHa1hMuorzuaxrsQy4feDzAnwp8/ffT7pT4xV+x53nteR8vwx6LQb8Y+aa/YqsUT5B+wHOIZ2kJ2U9FvjrQvpLyCtAIpNPbiXdl+RnwOHM7ymZfZuA72Q993OZz8uLwGe9jlUzyomIiIREJVe/i4iIhIqSuoiISEgoqYuIiISEkrqIiEhIKKmLiIiEhJK6iIhISCipi4iIhISSuoiISEj8X6cHnMGnrbWPAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "0.9803921568627451" + ] + }, + "execution_count": 164, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "boost.fit(X,y)\n", + "plot_decision_boundary(boost, X,y, N = 120)\n", + "plt.show()\n", + "\n", + "boost.score(X,y)" + ] + } + ], + "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.6.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}