diff --git a/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb index 0d2cab8..84fa5f7 100644 --- a/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb +++ b/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb @@ -59,13 +59,13 @@ { "data": { "text/plain": [ - "array([[-35, -99],\n", - " [ 46, -79],\n", - " [-42, -4],\n", + "array([[-60, -58],\n", + " [-54, 99],\n", + " [ 95, 99],\n", " ...,\n", - " [-15, 66],\n", - " [-79, -33],\n", - " [-61, 50]])" + " [ -3, -80],\n", + " [ 45, -64],\n", + " [ 14, 59]])" ] }, "execution_count": 3, @@ -110,7 +110,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -119,7 +119,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOxdd7QURda/k3u6Z+aRgwiigCAoYkYFQQVBWGUV1oCra8Q1YMQ1YAJERVkjiBhRxAQGTICigARFkRxEkShIDu/x8pup748f9XVPd1WHmXnAHuZ3Th8eMz3V1RVu3Xx9jDHKI4888sjj0IL/QHcgjzzyyCOP/Y888c8jjzzyOASRJ/555JFHHocg8sQ/jzzyyOMQRJ7455FHHnkcggge6A64QZ06dVjTpk0PdDfyyCOPPP6n8Msvv2xnjNUVffc/QfybNm1K8+bNO9DdyCOPPPL4n4LP51sn+y6v9skjjzzyOASRJ/555JFHHocg8sQ/jzzyyOMQRJ7455FHHnkcgsgT/zwcUVZGNHs20eLFRIdiKqjiYqJZs4hWrDjQPTmIUVqKQVq6NDeLZPt2ou+/J1ontVfmkSVyQvx9Pt8bPp9vq8/nW2r4rJbP5/vG5/P9vu/fmvs+9/l8vhd8Pt8qn8+32OfznZiLPnhBURHRjBlYp3nY4913ierVI+rRg+iMM4hatiT6/ffqex5jmJcZMzBPBxojR+L9e/YkOvlkonbtiDZuPNC92g/Yvp1o2jSiVavk9/CNNGQIUd26GKT27YnatCFasyaz56ZSRLfdRnT44UQXXkjUqhXa3buXaMECHAilpZm1nUc6GGNZX0R0FhGdSERLDZ89RUT37fv7PiIatu/vHkQ0iYh8RNSeiOY6tX/SSSexXOHZZxmLRhlLJBhTVcaOO46xDRty1vz/NHbvZuzbbxlbuJCxVIqxxYsxRiDJuHw+xho3ZiyZzP3zN2zAfKgqYwUFmKfnnsv9c9xi+nTr+wcCjB1//IHrU7UjlWLs7rsZUxR9Ejp3xuIw4oUX8J2mpQ8QEWN+P2PNm6MtrxgxwjrooRBjsRiuRAL/vv223t+FC7FwzX3MgxHRPCaj27IvvF5E1NRE/FcSUcN9fzckopX7/h5NRJeL7pNduSL+U6diTf+vbebiYvR9zhw50a2oYGzGDMamTWOsvNz7M/77X+zlggLs5zZtGLvqKoyPeW/H43hOrnHccdbnKQr29YHA3/9ufXci0KZly9y1UV6OsZoxA3NUXdi7l7FvvmHshx+yPJhff91K0MNhxnr10u+ZNs1KoM1XLMbYjz96f/5RR9m3a5yEyZOxUDUNh4KiMDZ8uN7WkiWMTZnC2JYtmY1FVRVjM2cy9t13jJWWZtbGAcaBIv67DX/7+P+J6Asi6mD47lsiOlnQXj8imkdE85o0aZL1IKxZI2ZS+DpavjzrR3hCKsXYTz8xNmkSYzt3yu8bNoyxSAR7KR5nrGFDxhYsSL9n+nTGatXC+k8kQMC//tp9X6ZOFXO48bh4vOJxxiZMkLdXXo79MnUqY2Vl7vqwdKmcnsRijK1d6/59vCKZZGz2bNCSwkL989NPF/enoADE3AlTpuBePi+1amGuco0338TYJRKYm8MPx3hmhGOPFb90JKJz1rJT0XglEox9+aX359eo4Y74BwIYUDO3oKpYnCefrIuQisLYgAHuJJGKChxuI0YwVqcOBpQP7CefeH+fA4wDTvz3/X8X80D8jVe2nH8qxdgxx9iv05kz3bVVWopN/c03mXHYjDG2ejWk4lhMX5tPPpl+z/btjLVtK+5v7dp4dmkp1rlZmuF7wC3Dc8EF4ueEw5AGRHRg0yZxW999h/3LCV4igQPOCTNm4F7ZHLVpk5kWwQlLljDWqJG+x6NRxl55Bd8NHSoe22iUsaIi+3a3bBEfZrGY/WHvFQsXiueoQQMwro744w/GPvtM534OO0w8AdEoY+vX4x7ZqWi8FAWL2Ctki150+f3yDRIKpX+maYy98479s6dPZ6xmTTnXE41WLxdSDTjk1T6LFsm5fk4o9+5lbNcu7INp08Qb5/PPdSLBOWyvKolUirFWrazrVlVxoHD06CFf24kEY//+N9ZiJCLfe88/765P7dvLn9OsWTpx0TTGHnhA3M7OnSBuovHdvNm+D0VF9pqESAQcriuC5hJVVSCSov7Onw9G98gj0w8AVdXH1W69PP+8+ODQNMZefTV37/Dvf4tVc4kEJC8pKioY69MHneSn3jnnMHbFFeIGGzbU9UlPPil+OeNLPvZYZi/UqJE7wq8o8j74fOLPTzxR/txdu8SL13iFw4wNGpTZex0gHCji/7TJ4PvUvr97mgy+Pzm1nS3xnz4dhFrGPLz0EqQ8vg/iccbq1wdXxbFpk5jD0jRvnJzdQXThhbhn1y45UbdjeMzr/5FH3PXp8cfl0sPWrYw98wxjp50Ghu+++6BCE+GVV8QEXFHcGW5HjrR/N1UFbciVim7qVDGT5/czduONuGfXLtCx007D/Hz3HT5/6aX09VKvXro67pFHxDQoFIIqL1fo3Vs8VvE4Yx9+aPPDhx+2LuhwmLEzzsBm4Zyz34+B//xz/bd79li5glCIsSOOANcyebL4mYWFOC0nTZLrA2vWdF7c3FNDtNjCYSvXz68jj5SPh8jWIbpuvdVpSg4qVDvxJ6L3iOgvIqokoj+J6Doiqr1PpfM7EU0lolr77vUR0Ugi+oOIljipfFiWxL+yEutNREz9fsZuugm6d9E6qlcPv2cMBFDUhldOzk69cfrpuGf9evFB4+XSNMZmzXLXJ/Ne9vkwHqNG4futW2EUN9rV/vUvK7f71FPifefzgdY4YcMGxrp0kTNuvK1ceRtNmCCX8C++WP67efOc18vMmWJaoqqM/fJL9n3nePtt8XMUxUHaqlfPnrg2aMDYKacw9s9/Wo1MjGHRPPAAYy1bMtahg70InEpBhxYO6x47BQVirwGZ2icSYaxnTzzrhRfgBTF6NPrKF0w0CgJfu7b196EQY/37y/s4fDj6Z7epYjHGvvrKZlBziMWLGfvgA3CLWWC/cP7VeWVK/BcvZqxuXayPYDB9HqNRxo4+GszIddeJOc54XBedH35YTJTC4XQHAycUF4sJRzSqt5NKwWiXDeHv3dubjnzPHhDvjh0Z+8c/0g+Orl2tRF1VGXvxxfQ2FiwQv5umwaAqQyrF2O23Y3/H4xhnuwMgHofnkxcsXszYu+8y9vPP+rhs2SJXzYwdK2+rXz/xekkkdEN7KoUDxDgeqsrYlVd667cTystBo83PcdROOHnrhEKMXXSR/PcDB2LCuOjTqBFjv/5qvW/nTnDpMmJqtLAzJrc5BIPYPGbMmsXYJZdg4Q4bhoU8cSLej0+SouAwszsNFy2yHxNNY+y886rHx9mI4mLGzj0XfYnH8W/nztBLZ4BDkvhXVYHwizjHE06Avz832l18sXi+EwnGPv4Y98yaJeawolEQFi+46y5rO7Vrp++DKVMw71z96vc7MyZ+P2NnnsnYe+/lbo3u3Cl/bsuW1vuvvjp9nDQNEs3778vVYx98YB1bn8/e5uHGiMwYjOLnnafvJU2DCoc7rgwdaiWcp55qNeZXVcEm8847jJ1/vrxfRi+oDz7A2AUCoF2RCKTQXKO0FEzwOedgLRttR1L87W/2Jyw/AEQE96uvxBN21FFWjqN3b/lEKor1lK1VS3xvOMzYjh3uB2XhQsauuQaEc8gQd7+97rr091IU2Dq6dmXstddADN57D6JwdaF/fytHEonoekiPOCSJ//Tp8rV99tnp944dKxeducNCKgUGw0zYrr/efZ9SKcyhqE+qytgXX6Tfv3w5uMxzz8X63b6dsZNOEv8+EPDWF7f480+5Xe2ww8TvOG4c+tmsmc7Nx+No5403rL/p0EHcfjAoVn9Fo2Dw3OCee8R76Yor9HumTcPcnnce9rhZHf3775DE4nEwq6GQVZLk62XbNvxmwwZ536uTdrjGb7/BLcvOuEQkNlD07Cm+NxaDpXzTJmyqDz6Q69/5ZRabZQbnVq3s32ftWujAvvgi84CKVIqxTz9FTEPPnuh/MgkdHvfZjccxZi+8kNkznGDnaZQBDkni/9RT8vXWoEH6vRUVsHNxws513sZ1mUqBSNx8M2NnnQWJ+LPPvKlWxo2zd5Lo0cO5jV9+0QkQEZiqUIixl1+uHlfIVAp2PBFTeNNN1vs//hhjJ3OciEZBd4yQqXljMej3ueTBbY8vvSTv6/ffw3Y3dy7+L1L/ckbSredQmzZW5tXv1+kmXy9PPaX/5r//FdNVoy1lv2PHDizCd9+FJfuvvxh78EFsCBmnpKpWnf+ZZ4rv1TRwK4qiB6bYEX6i9EFjDAavunX1jRIK2esNUymI0vyZiQR+v2RJbsaspETsLRKNim0h2ULEVfDrrbc8N3dIEv+PPpKP4XHHWe8vLwfjcMEF0Msa1xr3uY/FsA41DQeASCK2wxln2O+DM89018769Yz95z9QPzzySGYBjCUlUFG89pruvfP77/j/J5+kc788oJMfONEouP4lSxgbMwb0ZPdu9MPJUO33W72QhgwRH4o+H8Y6HNYzBvzwg/h9duyAUdo4Rx07ytW4fr+7OI3ffpO30aKFvl7MxvVHHxVrO0Ihxp5+2uUk5RJjx6YT5WiUsfHj8d2yZfKJ8/sZu+229Laef15OpERcu+wKBODiZcb27XCx6tGDsTvvRGCMDBMnisX2Jk1yww198onYQ8PvtzcgZ4quXeUHcTQqd7WT4JAk/oWFYonT7weB84J//MPalqKA4fACu/gVRbEaUKsLc+dC4uc68EgEhFNR8P94HByz0dFg1Sq87wUXQCIaPjydlqgqJAE3XkpXX53en8JCSPWcyAaD4vWvabDVvPIKVK/GQKtLLxXPUbNmYiLcvr27sVqwQM7A2qUF+flnuSfiY495P7BLS8HQjB4ttquytWshUtx7LwZp3jz9u3Xr5DqosWPRUTv1zzXXpD/rgw/cE3i7S1EQZJYNZAaYWCx9DDLFO+/IxXXzQs4FVq6Ub6JwmLEnnvDU3CFJ/BmD+G9c05EIuG8vkbmVlXK1ZY0a3vrz2GPydXTkkdizXo3HySS87EaMwL9OzE5lpdgQLroaNxa3t3y5eH2GQs4qXiLkDDKjpASE7aKLwEnbxe9w420sBttOVZX8uQUFiNLn/eW++YsX493mzsXYffaZ7qZpHi+R6khRYCy2w/XXi3OUaRp+b8eEzJ8PpviTT+CKXKuWfshGo4zdcINhbh56CIvbeGJGIox1747F/vTTYo48GHSesFjMaozq1s3dAuKXpsFowvvARbqBA+0H0A06dhQ/M5GADjBbrF4tf69nnsmu7aoqeC6MGAHRkU/o4MHi+fL7MdcecMgSf8Zg9L/lFnCG773n3RZUXm4vyd53n3vPmqIiPQ8V3wN+v85BR6O4Lr/cXZvciy4W09to2xbqXBlEmSrt9r3IJ33gQLHUb1QN2V13323/XgsXOgdbGol7YaHcoUTToBJ66ikEtA4aBFV3WRkMvJwQ85w4ouj9L79MfzdNQwoco+SxZg1sEW++qXs1jR6N38jWTzRq1WhUVsLeyIl8PC5+N03bF8T1/ffy4CRFQQSfyL3MeBrZEe1evayLUWahl12Kgkn48kvEDVx7bW4IM2MYdNGCjsfdJ5ayw0cfyaWim2/OvN1Nm+AdxVVwmga9b3GxnPtXVXACHnBIE/9cQGbf4lfLlu6jfEtLQSAuvxy5ppo0Ec/xm286t3XllVY3zHDYXhr96iv3ezaRENvZ7rpLrJaJRhFBb+eSqmnOeZRkbrqyPn71FRhAc58CAajsRBg61Lq//H490M6MVavgOXT55bBzGJM8Dh4M+sb3sKqCq3dSgYXDVmeaF190fzh36cIw2XYum0ceydgdd8i/l+nuW7WCOCTiQkaNsrcR8AMlEMB91WnhLi2F7y4/AEOhdHtGthg3Tq73M6vDvKB7d+vYKwqMeYwxdv/9egAbl5T69fP8mDzxzxLLltmrRAMBqyojlQKX/fTT4NBETMiyZXKmTUaEjJD1yewVZuzLAw+4IyxE4KpFkpIs5oGvUa7+URTdWMsJ/zXXuLPDTZ6Mtc8PEhn3nEhANbJiBdRwnCapKlJ08FxkZsgyB4fDurumG8ydKybWblRggYA1GEuWVFN0dejAGLvsMvubGjWCRd1to3yi7E7osjIsULNuTlFgCPnwQxxKd9yRdYSqK1RUIJDkqqtwQq9cmZt2N2/GphEdkJrmPtjEjJIS+aFbr55+3+zZSN50ww3IK5KBAduO+AcpD0e0bk10551Ew4ZhhsxIJonGjyd66y38v7SUqGtXokWLiMrLiRSFSFVRCrFZM/13lZVEPp/4meXlzv1KJsWfV1Xpf5eWEp13HoogVVQQBW1mPBBAm+Ew7hs7ligUst53xhlEl11G9P77RCUleAefD2NTXJx+77nnErVogWdfcgnR2WfL39mIbt2Ili8neu01oj//JKpZk+iVV6ztV1YSnXMOUSKBolNvvkn044/47tRT5c+qrBR/7vOlj58Txo5FmUtRO7JncITDRL16ueuXGYEA0eWXE1Gjy4i++AKVrswIhYj+8Q+iE06QN+TzEfn9OvlRVaJLL8WEDRtG1KQJ0UUXYRFzRCKoqPXpp0Qffki0aRNR/fpEvXsT9emDF/vHP3DvypVEzzyD3/fujftyjVAIfb700ty1+f77RNdem76A+CLXNFQX69Yts7ZTKfl3xsXXpAmITzJJ1LSpu43jBbJT4WC6qpPz//lnGNBfftk+CHDhQntOLhzW733kEStT5PdDOjWiqgrcqYhzf/ZZ57737GnliP1+PUEc74sbD5xoFIxav36wKa1eDZ32mDFQG0+bls54cGnillvgjSdT9SiKi0lwgWQSaeS5xMEDwMaMSb/vmWfwzEhET/z48svW9gYMEEtOxxzjrV/9+onf287+wY3WIm+xQYPsY0GM8zxmzL6Bufhi8Y8UhbGNG5GF0041FAqhM7fcApHr9NNhdAkGofKoW1fOTe/ZA8+Kxx+HtGBcJPffj0niucGjUftCEAcLtm8XjyfXI379dfZupKedZp2TUEiP1Hz1VX0B88tLHpl9oLzax4pkErYnnvdHVUFYZPmpVq6US2p+PwgThygoih8QZpXCd9/p7pZE2HOnnWZfOKisDMbru+6CaoarHTQNh8m6dc594WuNP7NHj/Sgp8WLkWAxFsOaj8UY69RJbkOTETrjoZgtUinsu1tugdHZTI9++01OA83qn40brff6fLDvOaGwEPRuyBAYkmWZTPv311PM8KCw00/HISsrcrV3rx6vwMdPNn+dOxsG5uijxYP/8MMwcNgFDwWDOjETnT4+H0K2zZg3Ty/9FgjgZY89FkEOzz8vdy8VlVusrER07eDBWNy5MNZmijffFHsc+P26Tj5bLF+ODcYXTyzGWNOmCP+WhdVHoxI/XznyxF+ACRPEeusaNcR67scek++fRCK9DnDjxuL7IhGxf/emTZA+br0V+muRyyHH+vVQ48Zi2JOxGAj+ddfBu8RcZETWl3AY6tHbbkMeIaNdL5WCEVt0WMg8zXr1skohgUD6oVjdeOIJ8SEkqm3AvSPN9zottUWLsEY0LX38o1H8n0skvCDM+PEICOzUCfFIblBRgd/deisumV2oY8d9P9i2TX76Nm6Msl52BlqjqHjkkfIFM3QoDgdeT9QNZ2G+4nFEGBuxYwcWHM/qF4shilBmsKluvPaa3Kjl5KrmhKIi5Dh55BEccs8/j0l+6y2d4xsxQjxfwSA4Dg/IE38B/vY3OSEXZZodPFhM/EURm//5j5Ww+Hxww8wW3btbiWw4DOIvwr33eu/L6tVyWuHziavZbdiA/coZJr5///wz+3d2CxmDG4lY1Wh20pksAEvGYEejsMvdcw+YXp6+4vHH8R03/rpV5xkhizPQNEgfjDF0WEaEVRUGxl69rD6j4TASlxmJrB1BVxS0oWnw9XfrlmS8YjFrRa3rrrOKOIEAnuEVqRQ8Eh5+GDpAWck5Iz7/HAm0unSB69hff8kLXMyd671PHCtWYDKNm6RdOyvH9sIL4ucHg56LyeSJvwCy3FSJhF6wwwgZ86QoVt/wwkLd/56vmZo15elGtm0DA3DffXAgsCvSbid9iFBYqKem4H2pUcM+9ckff9jbCTRNnGG2uBh66AED8G9JifwZucb8+YgwliVcM0fFy2icTDpjDG3IxsWcd2zFCvl6WbMGqTQeeww0yhxLUVUFenTffWACP/lEj0fgNKNbN4OEuHWrPcFNJPQFEAphEVx6KSbJnKNk4EB3Rge7MnJ2F/f5N0JWaSkY9BaYk0zq2Rd9PjxLVe1rCXfpYn1uz54wFPGTmyeVuvNO930R4cQTrXr+SAQTbcS6dXK1j8ecRXniL8CHH4oZl4ICeQTwoEEY/0BAd2WUcXKVldi0990HdYwsC+XMmXqAF9/YnTqJ+5AJ8Tf25f77saadMmKmUshbY0dLqiM1caa4++503TqR7m6uKOJATBGN4+m+ZfBC/O2kkD59rHSFG39LSpBSmtPqaBTjPWUK1toDD6DGRJq9cflybwQ4FBKHWTMGLvSEE/QO2B0Ebg4J83XDDdZnZkP8N22C6H3PPUhSJwv4EhnRvvxS3s9p0xDcMXQoVDTz59v3wwnbtskNOIcfbr3/uef0RcLjJR591PNjDxjxJ6KWRLTQcBUS0R1E9CgRbTR83sOuneog/hUV4roRTlLVsmVQuz3xhDU7pVckk/IasrKMsV7VPmZUVMDecfvtyDwpSy+8YIFcbZtIpFf1O5CQVWELBHDYyeZowQJoPPg7qipSKCxbJn+WzBYSjVqDtR5/XDx+kYg8OnruXHHwGZE4VT5jDBM4eLB3IhyLyV+Uix4PPQQxThbk1KGDHqHq9rmiwu7XX5+Z2mfqVAwcP4TsCkDwKjtG2GVabN0aBrFRo9znD7eDHfE3pxnm+P13EJohQ+wXpg0OCs6fiAJEtJmIjthH/Ae4/W2uiP+6dRjH/v11blHEJJSUwI3x9tvBIa5YkZPHW7BokTyNgeyVN2xIN/iGQiBa06c7P2/vXqgYjVxlPC73PJFFtsdi3jOaVhfuuUee/oAbXc149VW8OyfCoRCiuM2qVxGMBl+/H2PRsaOVsZR5h/F0HqLPBwyABCFaD6oKRjQNP/7onfgaF7oblJfjhUUD/NFHyCXy8stIdcBTqvr9chFVpPPfsQMvbvRiaNTI3uBbWSkv/CIi/qJq9nbiLVfPaBqSQ/3+u7vxssMpp4hdboNBsT9yDnCwEP/ziGj2vr/3O/Hn+VncRIx26aKrDbn3xujR1jZ//hniup3rnh2WLpV7cphjAowoK4PBmnOWPh/66OQIIPMhP/JIMVeZSsGQyaVPnvzxb3+DITlDZiSnuP9+8VymGUQN2LZNXrpRRB9E4A4bQ4akq2B27ICKqV8/uYOA3y+m1X4/VIRt2ojXgyWbbyoF10CvRJ8Im8BL5Z9vv9XzVnC/6CuvtC4a48D06iU/dN57z/oM7uo5ZAiidZ1cPfnB5+Z9ZbrcG25w93u/H7rYbMEL6IieoSjVUuXnYCH+bxDRrUwn/muJaPG+z2sK7u9HRPOIaF6TJk2yGoDycrla0XwZpUjz3Bil1YceStczqyo4Ny+Q7V9VtS8Kv3Ch3LfcjkGRMTpCrtKARYsQJ2SsFcsPRVlhlf2FRYvkhlVRmoZx4+TSlkgd7RZLlmCN8b7YxT2IJJVAAPP6zDPW9/H5BMFnTlZ52RWL4YSxy/4nwo4d4ICefNJdBfoffhCfyqGQ2M/fK+bNc5f9jwdvPPEEEsq9+abuibBqlVxVJJogL+mAZZAdOLEYCorkGAec+BNRmIi2E1H9ff+vv08N5CeioUT0ht3vs+X8Z80S12MQXTIHBk1DUq+rrpL7iAcCMOa5Sa3MMX8+mIFYDIRB0+Abb1dlatAg8b4SuTQa0bq1+N1CIft6GYzB4CgrdWlmWObMQSDWTTcxNmOG92DIigoY5K+5Btyw3cHEGPY1D4Lk2TDNruQcH34oZhj9fvQ5U8jKa4rGS1bkZdYsvHu3bnoRm1gMWgeLlLV+vXeDaywGEdhtCbNs8M034hMwFMqs+pAZyaS82Lvx4vEDfKw0DQYU7nE0YoR+ItsdBF49j4zYsAHG2n/9S16sRSYRZYmDgfj3IqKvJd81JaKldr/Plvj/9JOcSeCRl7woycUXy9cAVxk5JezyksCMMeji33kHBlg3GVuffFLch2hUXBiJ4/nnxRKD34+6xnZr+/rr5fTEqMK97z5rMsJbb01/19GjGevbF/vBHAfAkzSaPRM//dR+TFavhrH073/HHD73nJjBLCwUj0E2Lty7d7svYMU9kMyf+3y6x08qhQN0+HDQA4vL7OrV0HfVqGElJKqKYARzhyKR3EWnuoEs70UuOdyff9YjjGUbUeRREQ6nVydbvx7pVEeOxMY1c3bBYHognBfwlNu8TR4NKFqAuTAsm3AwEP/3iegaw/8bGv6+k4jet/t9tsRfxiRoGsTs55/HeiwslGdp9Hq5SV2cKWQSfzSK+BQZKirgLSTrr12J0FtvFR+K8biePVfm266qkHC2b4eai+9VfujOmaM/Z8QI8fgnEvZS97JloAOcsKoqEiQaU11wcPuPpumpZ049FbXDP/rIG2OcTIIuuF0XxvgPM3154AEXD5w0yZo4iHMwqgqDzJo1GGhebFzT4NmyP630t98uXzAffJC75+zdi3iFCy7Qo+nCYYzFBRfIPWwOOwy/T6VguLnmGqiFvvqKsZNPxiRFIuhv8+bI8OkVqZQ4xJ4Tf24/iUarzX3ugBJ/ItKIaAcRFRg+G0tES/bp/D8zHgaiKxcG33nz9NKFPMdUWjUkA3jFLU4gMj0Abrwx625LMXq0XnaRBwCNG+f8u8mT5e/UoAEOAJGtTVaW0BjwNXy4eK/5fLCH3Hqr+PsWLfR5OOEEcd8SCWudXCPOOMPKUPn9jPXuLb5/1y6ofy+7DGPHGWVNg2Rul2LDiK++cl94hkhPOic6uB0N6FVV0AGZfxwOg9D9/LN+b2UlKkf5vQYAACAASURBVHC98II14dr+wC+/iDkBTXPnVsUYjLo33IBJ+vhj8alcWgpjFJ8EHuAxbBiKbMiI/5FH4vf//nd6dSVNw8E1bRq4wq++Ej+3uBgeOn36YHGLdJN//GHPSYbD8FjKVQpqAQ4455/tlStXz5ISMB0vvSR331y9GnPZtSsS+L30kr2axy7IMRxO349uUVkJcb93b/jvm1VBGzcinqV7d5Q9fOEF9znoZ8ywd5LQNAQiiqJzuW6d1/nVtHT36ZEj5TbISAScuIwgbtwIJw+Zyk1WVYwxSASy30UiSOB3+eXg+I00cOdOuefPhx+6G0+ZOsxuTVx9NWgC94xUFHlcRxrsSpyJ8nUkk0godOml8M4R5S3JBcrLUQv44ouh7uET9dRT1gUzebK7Np98Uveo4JPSs6c1/F0mKvLArrPOsqrAolGMR9euYn1dNApXPBl27YI0wJ/LdZNTpqTft3GjcxR0KATjWDUhT/xdYvp0vRgJEebz8MN1idJMsG66CQTPLvOi13w+lZXwKuPMCPckeu45fL9woS7N837Uru2+DnZVlZwIG9e+jBj9+SfyXo0bBzWZEZs32zugyPaBzweJ207KOuIIOfNqV8PXTNSvvlpv5+OP5Qdhnz7uxvOOO9w7jPD56tkTRt0LLkBwqkxVN28eDv9evSCllC39XT7AvPpPVRVOrosuwqDx041ztffe6+7F3KK8nLH27a0LlvtG2y0YI7ZuhZtnz54QEWUBJubQcllJSV7Dd8MGcPl80/BoWTuiHArh4JLhgQfEv2/QwHo4nXKK8wJp2DCzsXeBPPF3gVRKnO8lFMIG5PlxuJqlUyddhWoXJR4MerPjvPuu3Ktmxw6sJfN35pTSTpg3Lz2brOiqUQM2MLcSOseECfI2eTyC6Ds7g2kw6JzS5PLL7Q9hfhkNu5Mni73A+GEkw/LliGnq3h1GWq8el5xuhMOgSaLMAaNHWxnfk09mrKzV8Vb9lqaB804m0Sm7U1RRnN2nvGDQIHFAQzTqfuH/8QfUH/ygsks/bS6d2KOH+D6jqFhRgcFzs0B43+08J0TZ/fg8mFMur10L+4LdOx11lPvx9og88XeBP/6Qz0+jRjgcvv8egUMiVU7DhuLfhsPeEpxdfLG4nUQCKisZE6Gq3t63rAzGbicG6KijvLllp1Jy2hMOgyHlQWNuiaWb5I67dkFdpWnY96GQ2KnC50OqFsbAtIqCRFU13QhtBDcW88MqGsVByu2tTu8l6tMpp6Q/o7BQbjh/5bEtWJDxOF5UUaBqSaXAFTsZIJwImxdMmGCfUuGrr9y1I8o4KroCgXQvHcawiEUb1ygqfv65N+NdNGrvjnriieLfKUp6bvfSUqQTsHs3VbWmBc4hDnniv2cPxvecc+Bqa+a0ysvt/bRbtnR+Bk/6ZiaeF13kro8lJdiTMtflRAKOHjLmpXZtz8PCUikQd7siTz4fvArd4rrrxHsxHIbunTEYNp1UT8b97raAEXeRHDMGkrlIsolE4FLLMXcuiHciobuDyyT+ZFLcb78fdthAQL7PQyH7YkBGI/uECfJDuUsXBtXOlCmwzhu5+Ouucx7QXLlaVlRg4GTPicfdu7u5JcyBANyxZs2CEbh1a+ug+v2YJKP13M24cOKtquKc5Ua88Ya1z4FA+ileWir3XuALIhqFftGtd0EGOKSJ/86dYAI4YeYqyfff1+95+235+otGof5wQnk5GBieL0fTMPd2pSE5SkqgVrJTw9SpgzVy5ZXWAyAatWaFdYsVKyC12KkujDWl7bBggfwdWrdO1wLY7QvzpapQG3vBtm3ivkSj1tiC8nI4xrz7rj3Dt3Kld+8v7s133nnivPz8QOIOJVu3omqirL1LLrF56bvvdg440DSIchMmQGXSrRte3Gvg14IF9p4Dhx2GE+2NN5Arv1cvq8Wdw+6FjZfPh8Xv5GXxxBPp7f/9785tRyIgBEVFWCD33IOkTTffbA2bTybhhaQoGIN4HFyUMRcRd8eTPa9u3epLGmbAIU38Bw4UrxVjxa6LLpLPUadO3vbF8uXw1Jk717133ciRcqIZj4Pwc/Xlnj1wa1RVcKvRKGxk2VS9q6qC5GJHL9zgqafkag+uauF4801v8RSa5t1NnbthJhK4VNVdmUYZNm3yHlSrabq9gpe0NdMcY3blO+6QS3fRqEMCv2XL5Kd4PI5B+PZbPNB4ivGwci/uoHbpJUIhiNdGzwX+HFEOlAceELdlJ5LaXebEWL17y+9VFH1cGIPOvqBAn4RgEP0W6QFXr8ZmnzHDauht396+j+3auR/rLHBIE/9jj5XvBa7+ueEGeWZIWU3fXOLcc8V99PthWxLlzp8/HzaA5ctz04cFC+Tr1I3aizFk0ZTlHDKnnUil4C3llphy5w2vKCmBynfiRO/GayPmzIGEzisNuqVDjRvrbZSVISCM5+hXVTCXRieYZs3kbbmqJfLGG/oDEglwOU8+Ca67tBQLRxaw4XWATzzRKmkoCsTqjz8W2x9E1Y/Ky+WbIJPr/PPRbkkJ3NZkutRIBAePMSVrjx7iCT7+eHdjsmcPxDO7/ikKuJ/9gEOa+HfsKB5/Y5ZEWQBT/fr7Jw3KZZfZExRNg19/dWH3bvsEkbJAKTN27BCrRVRV7s64fr08AaR5DDwWMcoZuJTC58gt8VdVa55/xsBcTpiApHRmnHyynE65qUjIGAMBmjgRQRjmnB1PPy0XLWQFmmVYvx7cCRevFAXqklQK7lKyiRQRvlGjMisOIxr0SZNw0p5wgrNLmzkXt+z+QEBcEMY87rIayMbrppv2W9DdIU38P/7Y2TbDGNYeZ5jicTAL+4vYzJrlrAJRlMwizN1g6FB7Neqxx7pva+pUSM2c8YzH7avoMQaJWeTCyi+/H1kts9kvySRyEJ11FiTyESPcqcrKysSq7VAIbt2ygvGKAgO3V+Zh3Djreg0G0e//x4wZECFOPBGcq9sIP8bkxcntytLZIZVCJO6nn6af8PfeKx6ceFycqOn9992naHbaKE88AWO4zEATi0HnLkqkVb+++DdGw4wMw4bZb6RAoPoC7SQ4pIl/KqWX7OM5oI49VlxYfM8eEKqZM+V1dKsLvGqbzCMkHge36BarVyO9RNu2kELN0bGffQZJ+4QTEMhmt5/OOcfbu5SX4xD4+mtnZokxGDnr17eq3hQF+7RFC2sNXq8wq7lVFfFBTvv5l1/kGWFbtcJBoqpYW5EIxnriRKtmwy1SKdhtjev1hBMMB/+rr6ZzCpEITiG3mTJ37RKrY1Q1t9zFypViPX6tWuJTt7jYXd71Jk3c1Q6W+V5HozBAyTxsBg+2cmKK4q7+gV1lMCLTCb5/cEgTf45t22AAnD9//6c5cYvdu6FylOXDcss0LF8OgsUPEp8P63nyZBx6p52Wrrqwc0P2knNq6VJk62zTBknS7CLkjbj5ZvGzeZpjt/O1YAGIb5s2IPY83mbpUjEdisWc382ubi8/FJcuxdpyrZZxgS1b0ObChYYPS0vF3HE4DHWLW8yYASLMxbOCAnnahY0bkevm2GOhS3dTMo7jgw90lVA8DoJsVwt37ly4ltmpf666CpPmRkUk8nyKx+2r9lRWQmTjp280isA57m2QSiGTYceOsAMMHgx32wED7PPGR6POqWmrAYc88d+0Ceu3dWtwu+YUHAcTFi2yMh4+H7hzt9LIBReI9dKNG8sLCYkunw9J7txgzpz0iFTuUvvDD86/FeUq49fs2e6e/9136c8PBEB35s+HikdGwM0xQyKcfrpVItM0uIfuV/zyi1w1wnVze/eigHDbtjjl33pLvHAqK2HgnT5dni51wwb4pxrVN6rqzVhZUgKviTlz3C3gqirYJUR60FBIT0s9dKjzAWBWO/l80Oe60cVt2IAD0RwNfffd6SIkTxlhFz3s8zkXB68mHNLEf9MmEBfz+h0xQr/n66/BxbVsiSR/dqVDM8G6dVDBHH00VA29euFZnTuLgyDHjgXh4sQsFELkr1PBFQ6Z9OxUr8Lv15mdI490z7kzJg+SO/xwZ926ne+8W6njmGPEv+/cWV7AJRIBnXTC5s0wxHL1jqK4+13OsW6dnOCdey44WvNg8kxymeDGG8V6yBo1IELedRd0X2eeCeOaHUpK4HV07LHQY40aJSfCFRWQAERpWps1g/fDrl24ZMETROgflzxiMSzqbHzrN270ZpRWFHhSLF6c+TOzxCFN/GV+07EY1qPZPTEYRODiunXQ/XfrhvXWt681bYcbrFmD9mS6fFVF5liOyZNBsOrWTSfUgQDW8G+/OT/zqKPEz3KK5L3iCjCCM2dCim3RAnnu33vPWfVid6h07GjP9MkCvnw+cT5+M8rK5M9XFGhLRMGoqor97BbLl0P1losqhBmjY0crR8sTtsm4z0Ags7TBsoWkaVigxudpGlQgu3YhoOHoo8ERjBkDYn7KKenil6rah78vWwZizUvcmU/tZs0g5cjKIioK2ikthYTjRt9bUQHj23HHgZu48EL97yFDYI13a5RWVXk5uf2IQ5r4y0oXJhJwUhCp6YJBZHs1Hgp+P9ah10P82mud05ZoGg6il1+2t2X5fHALdYIoaExR7AMpo1FoFXbtArdu3tdOKmW7SH+fD+loBg3Sc/8bMXmyWEJv397dGCeTcumB1+zg9Rx4hbFoFON9xRVgzjp3RuVBO2zdCmaiWTPQtbFjD4D9aOtWGBa5a1o0CjWJU5RsixZ40Ysu0g0JixZBpGzaFFyOOZDpzDPFbQUC4oUaiYBgG7/z+WCQlpVPs7MBpFJYHKJDjReukXkuuakzbH5Wt25ytztFwRi6jUxUlOy9FHKAQ5r4d+0qn5tvv5XnwRLZinw+GGS9wMmThgjMxA8/uHNiqFPH+oyyMkjULVtifQ4ZAl02t1kpCnz1339fvHYDARAyxtCOSD8eidg7lDz0kHNSs2BQpw/33pteQ5x7O6kq7unY0ZsH4513WvttzJl14YXp7y4q26qq8rQ3u3bhADMfiq4Cr6oDq1bBIFJUBP2029Si3Pr/2mvpwQt8AIx6yE8/tS6YcFhuOOI+rm76we93KmQwYYLckCrjqnr18n4qz57tnLuDJ9Jzeq9Q6IB49ohwoCt5rd1XtWsh7wgR1SKib4jo933/1rRrIxvi//XX4vXbpQuYKLsc86LPa9b09nw3aUsUBUZoN/uloCC9/VQKUfTGva8osPVt3w7pxuiFMmyYnhoiEgF3bSTqskDLggL7JI28DoHbfR8MYh4aN8ZBtW0bHCp+/DEzhqm8HHmPjAde//6QCn75xT3DVru2WBUtOxQVxb505n5BUZE7zsF4ydQXzZqlt82NrzyI67zzID2INoiXwga8D7wGqAyzZ4s5NDsjq9/vsiam6T3dpJoVvSPvCx+js87C5nPCt9/i3kaNwJ2kuXblBgcD8a9j+uwpIrpv39/3EdEwuzay9fZ56aX0IMQuXZDwjTGMuXnf2K1hnuqgpARqjCOPhNT84INilYZT9spwGNLJ7Nnu9kuNGmi3qAjxC/Xri/dhLCYn1nv3IqrZmH2W49prxVKPpsGV0g5797pz1RaNQZMm9rU+3GLrVsTu8PllDMZ9twxpKCQ2+HfpIr6/oCA9iG3PHjikNGkCOvr44/a1h3OGK6/0fgDIiJs5OMO8YH780Xqa+v3e8l74fOCMnLwBUilUzRKlkbCbVF4Awy3eecc5HXYoJB/jnj0xRm6MVIzh0DOOIZfIMin9Z4ODkfiv5HV7iaghEa20ayNT4p9MQv/dsiWIZK9e0P0aUVgI1aEbiZVHpqdSULsa71cU6IGNXGNVlX20dyQCNeOuXeB83TBOJ56Idk84wbm/XqP1GQPzYd7XwSBcmkWS9NSpUA3Xqwep4e23QfS80iFVdVnKMAPYVewSXUZ1FMf11zsfiuXlsDEZ3z0aBbNc7baB4mLUHTUWMrBz75Jl/4zF3Llkjh0LTsRLAWP+XFXFpnQsWrwP69fD3YpH/dWpAzewDh3kB04iIQ6MmTQJ4m69eth8nCAUF4uLOxgvrpc0fx4MwpfcLVIpeb4hrxGVDjjQxH8NEc0nol+IqN++z3YbvvcZ/2/4vB8RzSOieU2aNMnoxfv1s3ry1Ksnlsg2bJATCJ6Wd9AgzNvUqeI1H4ul+3737Su3i3Xtag0KuvBC57oPH33krmaHpsGTiTEQp/PPx55p187ZK+/jj6H+4CrODh3Eqo2PPxarQv75T3Dfdl54ostLNTIvKC+XS0gi2iTi/BcvFh+K7drphP3998Xzoml69bBqxccfw5WyRg1wJ59/Li5soKrIUif63Etu8PJyeclF2RWJYJOkUnAt69ABC/PMM52jGNeuRc4VzmFt3y5PxxCNWl3jxo0TvzOfnCVL5HraeBxeQ8ccYz04VdWbN9Xu3XIVUyLhvh0XONDEv9G+f+sR0SIiOstM7Ilol10bmXD+GzaI16SiiAOX1q6V64Xr1ElX6TzxhJxx4qmLf/9dzpkff7xYRVRUBMNsOIy+BIN4Di/a9MwzuG/gQOc9VqMGVBALF4L4mO16o0bZj19lJRgzURoMxuRlL4nwrNNOg2ts8+buaEIoJM72myv89hvinni9Dpm6WFHEc8MYDt26dTGekQjUtcaMCP37y9t0UxMiK4waJVYjXHKJfkKHw/h74EBw9w8+qBeg4EWpvRYWkenDnBbn5ZeLLfRuq39xzJsnrqLUoUP6fVu2yDd45876fckkDjSeqz8cRl95gryNG3WxX9PgyTRpkvv+TpgA91HZ2Bx9tLf3d8BB4+1DRI8S0YD9ofb5/HO5/rlLF+v9RUVyYn3qqen3vvOOPHslLzpil6fKicPdvh2xKOXl0F2vWJGuhn3lFbljQigEiZrbjv72NzHHW6NGdgWESkvtpZRYDBJS587u6IHPB5tbLtUjRUU4UOrXB9Hu3x/M3apVYJLNtCAaRdEnO1RV4VATSULPPiuWhIy5zGbMQMRwjRpQ3eUkSriyUu6BY5z8cBgctnGQ9+5FAIOXQtNG/PvfzgVknPplvFq18t6HCRPAofFTuXv3dH1/cbG9252I23Yal40bwe17SQJmPqBFBGTMGG/v7oADRvyJSCOiuOHvOUTUnYieNhl8n7JrJxPiL0qTQARu+uabxb+5/noxM2LOp793rzhoy+/XDY0//CBWAYTDeoR6ptizx7rXfT6oWczSp0wqDgSyU0WkUvapTIJBeMjY3SNa+0OH6u2/9BLijBIJuNh6iThOJmGDMUp/4TB08vzQGzkSbWsaDv5rrsmuKM727db39fvhzFFRAecO0foyVpXLCOvXu3dn0jT3OTPcYMUKb1V53BwKmXAAVVUQt0X+wbJCE9kcOF6xZo1c1cNzkTz5ZM6NQweS+B+1T9WziIiWEdHAfZ/XJqJv97l6TiWiWnbtZGrwPeUUq3ivqnqk7u+/gwvnKZwHDwYB4KqBGjUQCGTG5Mlyzp+X/0yloH41HxI+H3570UVwQ+3ZE88//HDUqnXLSCxejPYjEVwnnihWO9qlSq5bN90rxisefVSuPonHQdRkQXayereqCk+q//zHqsWIx62pVhiDRH/NNZivOnUQ1S+zi8Ri6TaP8nIUpZoxg7Gzz8b3Rx2FKnypFGibcY6eftp+jn75BbREUTA2p52G+irt2sklpcMPz3LPFxd78/O/5ZYsHibAlCl4iVzk469bN7d9YwyFu2XPC4dzH4mbSsHF7IgjsKDOPts+qVbt2tlxHTY4aNQ+mV6ZEv8dO7Bxw2GsyyZNEMWZTMJ4a5Y8VRUec0VFsAGY62Bw2On8GzZEO0cfDSmva1c9oMjJ4KiqULt6waZN9pl4P//cviygrFi5GySTCHIyt+v3Q+LYvh0SuOg9ZSq5eBzGYhEdCQTgimpESQlcbY1MVSSC+AFZSg1zYZwlS6yHOQ/gSiSs9pIbb3Qem40bcShNnOhMl0XelZ5x883uOfBIJPfZDXnudNHL8ug+NwdTKITT08n/nzFw+8OGgXPTNHjviDyInnhCfjDJ1ACZYvlydwVdjNfJJ+e2DwYcssSfY/dubEbOXd1xh1wCUxTnxG5u606oKiSHRYvcO0QoivvU7G4wd679oWOXXsWM9evhJKJpCHa7804wnQsWwIYVDuNq3x5S1amnWt/b50NQl13Vvtq15ePVpk16n956S8zhRyJiWhiLgRM3ok8fMVceDMqLtbidoxYtnOc8Gs2BtF9RAUNlNIqrZk17TpyXJdy4Md0A2aSJNaCjogKeDHXrou3zzxcnupIVw+ZZCs0nXkGBOHcP3zxvvWX/zjfeKBYPzVGCW7ZYN2wgAGPt0UdjnI47zrnqkBPWr/dekCYcdp+9MAMc8sTfiJ077fdEQYGz8b6sDOvGjV9+7drg/twGPxUUQAWRK5x6qv26cxsIuWcP3GSNEo+ipDtKbN+u29lmzJC7PY4ZAy8/r6pinw+paIy49VbxvZEIuHbjHPl8Vs+t0lLv2QMKCtyntXezRuoGd7DUnx4yzNmhpAQEvaoKOijZQyMReVKkQCBdd37ppekcvc+HQTBnxRs4UHxqaxqyA55wAk7TUAjh4OvXQ+/Wpo24jw0b4lQsLUVyKX6g9eyJQDPRRg6F0tVaqRQ4MO7r6/Ph/dq0ERtgsjkA7rhDLm7KrkyCcTwgT/wNmDvXnhBHo+6yd65ZoydYDIXkaqBwGPmy3Kpk3UgeXmAXsa6q4ihfEV54QV732xw4xxhcG2WHbP/+uGfCBEjsXmrimgMgR4wQ9yseR0DeWWfpc3T66VbX7+7d5c/3+8XzqijuAzllsTxpz6EqVnrYUXrBkFwhlZIHLjVrhkmVdeqaa9DG2rXiiQyHkaDJiA0brCd+KATLOxdtdu6E4Ya7eqqqfPMEAjjMevRI30B+PyZYxmUb1ShPPCF265IVkfBSs9SM9u3dLWQ+LieeWO3Rf3nib8CWLfac/9lne2uvsBBccdu24vbicXiXdO7szAUqCgK9cgk74s/LRnbubO9Jk0rJC4vL6nFPmiTem5oGLxtj23YeQZxwN20qdgHfvRv0zUjAg0EYbXksEJ8jM5Ytkx/KoRACZkXZUS+4wP34jx7tnDKmFm1nKVVj7PXX3TfsFsOHiwOb3nkHLyjrFCeCX30l55aMmyWZhP7dmN41GISoZnS7LC+HTtwNh1yzJnToskyDokMjEICBlz8rEzVMppCFgfP+Nm+OxRAOW8elmpAn/ib07Ss+APx+bxvbiIkTxXuMF/ApLETcidPaa9hQV1ccf7y3qnkiyCRq85VIiKWA5ctBeGW/i8VQatGMqiqsdeMe5+6oZkJsR/y//BLpFuwYpF9/RdwN19H36OEu2ZqsyAsRDo+KCgSdtmyJthUFcQB794r7k0pZP0+lYKSW0hoqZf+lO/CfbLxwUilEAfIiKK1bwy0tlYJVv0YNDE6dOroL2+OPyzt26aW457ffxMQ3FEovg2Z2zyLC78xiIS/t6LQgNQ0H14MPyrmmBg2sG1lVdU5mwwbvusXmzTOfA5nbq6rquuQ9e3Jg3XePPPE3oaxMXkBEUfSKWcmkN6nsnXdAvHk6CC5ZJhJyf3unS1XFahW3mDrVvsKckeExxx9s3myvIvP50tMbmLF5Mw5THqncsaPYHVWWdtvv95bWubjYm8ecKI8RH4uHH06/t6gIKqczzkC/NA32hpIS0Mdzz9XT3F99dXrBl4oK2FHTmcIU81GSPUH/YSlO7F56yX3nzXj0UTH38f33+D6ZBOEx+qlWVorFEp8vnRPo1s2qy9c0+MgyhtNQdED4fFZu6qGH5JMdi+nVlJ5+GlWFZJb/SASpKG68EZs2EICXkJFbKivzRvxVFbaJbDBzJg5evhj+9S/v6rxk0lvwmA3yxF8AmXouGERMCFfThMNw/3RbvYnXn3Cr43e6fL7sVUGffAKXY78f/ZLtp3PPTf/doEH2XkqK4i5OoKLCnigvXGh9TiCAca9udOhgfXY8bs27tG6dlY4EAsjDVatWOnMaDkNNZjwUN26EnTIYTDE/VbFzaCpbQ010wlenTuZRtmVlcm66Uyf73y5fDo6F319QgAAUI4qLUTErEkFfTzghPUJwxQq5CHXEEeltjRsn7ms8jsRVe/fqhO+cc+SLLx7XDc5VVTiFRRDlNpJttLvucjvizigpcVcr2Ig//0RIfjCIq1cv60L0iDzxF0DG+fN1ZY6KN29mO3TsmBvCz68jj8zuXSsrof4sK5NL8eGwNbfOhRfa98vJPpJKYQ+4Gbfp03UVlaqiL7I4i1yisBC2zUgEc3766XDNNeP66+U0Q6RC1DRrYSzGMBcVm7bBv5SLROeeK45ecwu7CN969dy1UVrqzKEmk+L81EVFcm6ne/f0BVBWhoAwoxgUDGKRmye8QQNxm36/+xxAySTCxnkZN5mOMRxOr6dqhJeFnClk49K0aVYbIU/8BZBx/j6fWE2iaUjZ4AZOOfy9XNlw/tu3w/WaeyOdcQaMnD17WglWPG5VyQwaJDeOK4quURDhzTexdwMBcMbPPONu71RW5m6PJZOgS24k6FTKPtdR48be5k3TrPEEwg565Q5FKCuTJ3ty4vxzhbvuEh9Afj90Xh99pN/755+6PjAYxCIVGWlkwSCa5l1vnkqBiL7+unisYjFxHc/339eJco0ayAqZI5VMGt59114iyhB54i+AjJOTXbGY2KvFiNJSSK1uOf9Ewjkvf6Y6/7ffFqeWqFEDe69/fz3bZ/36OPACAWSs5XEGmzfrDJO5T5Mny5/93nti9fOzz3p/DxkqK6GKkxleR4yAcTkYxL8vvpjdodKkiXyORGpzTYMretYoL3dX5UZWbzeXg26HZBL1Q2WupeGwlbiKLORGzJ4t9sXPxjd+716dKzH2rU0bK1H/8kvrQtY02FdyjUceEY9bIKAnvMoAeeIvwNVXeyP+nPPfscO6RjZtfVg+HAAAIABJREFUgnTrtoqdqiJm5bvv4FxgJK6HHaZ7+7Rrl1nA16efynX1vN43xwUXiB0mli/H9ytW6MZMTYNDSnExiK9oLBiTR7XWrq3v9x07MpNmq6pg59M0EN3DDoMDiRGiPF6qqtc3SCbxfC9ZTW+6yf1aiUSgPspKgiksRGGEcBgnGPfeWbvWOuilpXK1z5lnZtGJDFBaKnfjNIdnu8E338Dt1O+HSD18ePai4fr1EKdDISz+K68UG69OPFH8HrFY7nWS48eL7SbxOFwJM0Se+Atw9tnuNzMvM8jTe9eurTtm8GpdIsLPAwpr14bkGAyCy37qKXHW0Vz5+ctiDvh11VW4b906eQ4dHuNjBk8Dz6Py69a1qjdkB4/fj+jeBg30mgW33uqNCN95p5iwG22UssCqRo3Q17p18fxYDO/iRor/8097D0U+15qGLMdFRe7fSYhzzpEPZCCQzn3mQuefK/z2m3yQQqH925dsUFUld3WLRFAvNJeoqIB/sVGMDIWQfiKL3Ot54s/ALGzerDsF3HuvOxdITYN9QBYn8+WX9kSBB3mZcdVV2UePymDnN6+qUIkwBh922fo+7TTcU1KCceMEcuBA8VgYM2XKalXUqiWmUTVrurOnlJTI7YpnnKHfJ5PAeH0Tc9/Nid5kWL4cbqmy9mXRzp7x66/u3MXq1oWu3C6YSVS8ojqxapW8v/8rxH/ECCxKWeh3zZq5sdWYsXUrY1dcgUWpaSASbgrB2+CQJ/6ffAJukKc/vvpqrNGCAvvUAokEpDFZNtbmzZES2m5/hsNiiVKWajkXuX1OP13en/r1dY/CzZvFzGUohGSH/frptY3r15fbpIhA8DkmTRKraps1k/dL0/S0FkVFUKVx6T6Vwv+XLpUzuA0a6M+XVQ+THfZepXjZnJujncvKIDF41hDcd5/7nBd16uA3w4aJT7acGB48oKJCLrGccsr+7UsmGDvWueCKqNh0MgnXU1kZODfIeMHIcUgT/x9+EKtX+vQBg9Wzpzz8PhqFekYWsc1Vhk57U6RWuO02+4yRqRTWwc6d+HvjRvfR4DNmiNfvSSdZo3hvuMGaGDGRQDlJMwGPRuVjVaNGers8l7+iIEJ2/Hj7QLdQCA4jffroKbgbNUKwVaNGoCehkFyd3K2b/mxZlS4ZMx0Oe4u0HzbMPi3E2WdjfjUN9yUSpipl5eUQ70QeK9Omec+LP3MmGn/tNeggFQWi28yZ7l8qlxg+3LpQwmFv1YMqKjBGuc535AS7uqNHHQVPCjM++QSxEoqChdq3r7dDgOtS+YKJx7HIcuD2dkCIPxE1JqJpRLR8XyGX2/d9/igRbSSihfuuHk5tZUP8L7xQzEQpip4Hf/t2SNBGcT4ahQdaKgXiI9vodnvSaGQ0oqoKKRHM8QQ8n/+MGfoeDoX0wKxwGJ575mSKIkyfjoyeqgriK6tXUVUFG0SjRlh7PXrgwJQxb7J37tgR7f32G2IiwmG0cfzxerT9+efbj1fdus6pr/1+q9pF5BH1xRewfagqpJIvvpB7YckOaMaQWsJsY92xA32VMQWi2g2qytirr6ZQrSkexweqirBqY+N2ua5l13PPOS8Ijk2b3OW+yBZjxoBYKgr0pk7Vw/76S1/YL7wAEVhVsfj799d1p5WVyKqYaUCcE2SnOk8yZ8aPP2ZvvBs6VCy1jR6d9escKOLfkIhO3Pd3nIh+I6LWvI6vl7ayIf6ySlKJBDLecqxbh3QmBQU4xAcN0qWvcePEnKQd8W/RArljOCoqoGp6/XUQG15EvGFDqB0aN2bsv//FPTKXbb4GmzevHldjjmXL5CrkmjXFKp3Zs8HI8tQy/DufD78pLMR428UNuC0FGwrpRZLOOsu9ZmP2bPEee/VVfM/naNcuuJFeeKFeF6BBA3hRJZPIarBgARJTuq3TQMTYEbULxR0wGm+9FgIh0l2z7LBkCU5Brvs84QR36WszQXk5REpe5LygQJ66YuVKeNXwfokqgqkqxMK33tINR4oCbyhZZG+mkGUw5PrS8nIUq+CHz9//Lucu3XBpqZRcr9ygQdaSz0Gh9iGiiUTUdX8T/+uuExOVaNSd+zTHZ5+Bi00kwMhMny73BDNHtL/6KuZXRPgikXQmYcAAZ4kiHkc92Fyjqgqc+7p18gMoEMDY8QR0HTroTJ3MJqBpemH7n34C12z8nqdzcVvvt6Ag88Lns2ejz4kEPAh5/Mzrr2OOeA3wevWsNoJIRD+4IxEYfy+5xD2NjlCZ+ItEQhfxL79c7jom+q3R2CJDYWF6tk3eXq1aOAD4s0tL8f9sueobbxRzCEavAP48M7cgHTxBdR5F0RPQ5QrTpol1plwMD4X0w+df/5JnTkwk3HElFRX276+q8E7JkNs74MSfiJoS0XoiSuwj/muJaDERvUFENSW/6UdE84hoXpMmTTJ6ccbApYlK8eWihsJ334klAmNA3qRJzqlFIhE9hYdTSgVOTMeMyb7/Rnz4IQgbJ35HH+1s9+L1ijmefFLOvRvHu7ISadabNIEb7L/+hZrEblXdigJ7CMeuXZBWMmWSJk/OrAZ5KIR3sJPUjNfJvnniL4x1HH/9FSeoecE+8QRO/EaN8F0wiJTMbtwAX31V3knuTti/P54bi2GAr79enMrBCcXF8ok88cT0e997z12GT7vDT1Gy9oix4PvvwSFomn3wTjSKZHIiQ5SiuD9E7dLmGuc/AxxQ4k9EMSL6hYgu3vf/+kQUICI/EQ0lojec2sjW2+fXX6G/r10bc/Xmm7lLITBzJnTJtWpBx24sjVpSIpcOzEwCV0H997/OXn7RKKT4XEFUMzcchq3gmGPk/TjpJIzt6tVgTHr3Ft8Xi0FyEqG0FO+yZYs8Q4DxCgTghcQYaNO11+KwisexVx97zPvcdurkjv7I9uVhh6VLa7xms3nOpre6UdxI06bpHVq6FNF3tWuDsxw3zvOcpuHhh72/WDSKIAyv2LBBvoCDQT1lLmMwNnmtfGW+4nFx3d5cwG7xGyfbXDLOi/8wY+CinDZ97doZvcIBI/5EFCKiKUR0l+T7pkS01Kmd6gjyyjVSKahMli3D38OG6ekT3OwzHhS0ezeYO5nqR1X1urupFCJwV64E8f31V/zfC/Hbtk2eiygaBRMkI8g8tXE0ijZkAWPt2ondokeMwMEQj4OA9+qFNAytWqFdsxTh9zM2eLAuAfOStebxcUrDUVQEnT1PF52Jmp1fiQTUXbfcAhVt06aQgCZNgsttnTqI15ozh4kHUyRC5Rqff+6ewzYvAK/cf2WlPMUDEYxbfDFMmyaXSMyGI1l7sRg4iPJyuOa5LU3nBmZVmegKBKADvuQS6DNbt4ZY7pUDmToVwSqy5/h8GXGsB8rg6yOit4noOdPnDQ1/30lE7zu1dbAT/2XLwCXz2Ayn2tnGS9OsqTs2b4bXT8OG8I0/6yxwl82awWWwshJec02a6OpHXmxEVWFz+Omn9DaLiuARY3b0sKs8V1AATYObPeDmYDPiiy+sdDASST/Yxo2Dx079+lCFGxNflpfLmaWjjxbPUyoF9RN3v1QUxNT07etsbJbRH6PKzhXmzoWxoH59qBaqw3hjRlUVxDSvLqThcGYqlTfekHMv8Tj0bFVVOL3NIlIkgs10/vkYI+4vLGorGETGwHfewWKNx3Fvx465icA97zx34+Qmr7lbHH+8+BmtW2fU3IEi/h2IiO3T7f+/WycRjSWiJfs+/8x4GMiug4X4b9mCvWuc69JScHduY3I4s8CTupnz0rjBzp3O1ekSCb0C1uDB6QTvoougml250l7aVBS0YVcE3uny+az9LyyUr/FIxF0Bl/Hj5c8sKBD/RpTzJxrFwZJIpB8A0SicSdq2hSTWty+kGyNN4wVd/iewejW8H8zWdruLF1D3iooK+aLh6U4HD7ZOhs8Hwm30kZ8wQe4JcPLJYlfLUAgBZT/9BC48U9fWBQucxfdwGL7AuYLI4Kyq4oyjLnDADb7ZXgea+JeXg0OMREBYFAVBPMmkPB+T7GrXTq7/douRI51144qCQFFRwKKigJhNny5P7+D3g0seN879u4mu+vX1fqdS8GqMRuX7KRYDY/jjj3IvvjVr7A+taBQGZDNk8TuKAumtb194Gp52Gg7lH39MV1H/9ReIfZMmOBTeeCML21EqhU7Om5dZqoDVqxGQ4RRMVF6ONAF88QaD7jgVVU33VXaLTz+1F32jUbim1q4t/r5mzfT21q0T+9PySNtLLnH3Pt27e38XxmCQ4gVWZMQ/i9w7Qsydi/42agTpQ1QYwiXyxD9L3H67ldgoCuxVL77oTZp2WxGsrAx7e+lSK4F58EF3z+J5/EXfRSJIpyDqu8+H+tLLlnnXFJiveFzv9zvvOHvG+P14ZiKBg2D0aEhXc+bo7uwDBzrnZapd2xpAK3OnNkf4PvccaEsigXnv0MFbOcn/18stWCA+HRYtgqFB0zBAdepA5+sG27ahQ1yUc8qVfddd7svKtWoFneHZZ4MD9YoVK+yfpaoQsxiTL0yRbrtvXyuBr1sX+kS7XCbm6557vL1PKoXfKIrc6ycQkHv1rFqFaE4vPuU5Rp74Z4Fk0t7g+fbb7t0EQyF39qgPPgBNSCRAH1q2RFwJx+TJmdnvjFc0ir48+mg6QQ6FYLjctg1crp0u3E0Ka79f77cs4ZvxXvMe5xHOnM61bu3OO4d7xxmZ6h49xExi48Y6vZkyRaxF4BHMjvj6axg843E9em/BAv370lKxQVRV3QUFnXWWVZ9uLBBuRDLp3g+Vi1zZ4LbbxByyzweD1ciRIIbz5snd4Nq1s77DEUdYJy4aBWf06KPuI+00zdv7jBrlvLlV1ar22bYNxlu+cM151FevhtidaxdVAfLEPwuUltoTuUQCXnnGNSIjmPXqOcdqLFkiVoUecYT+22QSxCibOsHGvnz0EdZqixaQcnjaC7ukdYrC2B134Dd242OcOllVPv6OTsFtxnvd3BeJ4Jlcal6yBDSOzw/P8mlUw8mKySuKC9Xun3/K05ZyHZZMTxiJMPb44/bty3JwE1kLMDMGlY+bE5qLN9mGjV98sbj9eBy1dGvW1A/FOnXSOWo+GebycN9/Lx4vvx/ZB7dvhzeEmxS9waC397HL88OvOnWsartOnayLWdMw91274r0LCjDnAwakSzqVlYhEnDMnJ5lD88Q/S7RsKZ/7WAy635dfBjNz7LGQFBOJdCbIrQr15pvFh0c8Dv37N99A91xWhpiAtm1hPO3TB3tARhjNMUNu+vLyy2JaFgjoBPXFF+0TphnVlbLgVa/E3+sVj+uS+cqVUIG3bAlVrlmdeuyx4jYSCcZ+/tlhwB5/XMyFxuO6ZX/kSPmA9e8vbzuVEpdI45esUIosv0nz5uCy27bFQiorc3g5F5AFk0Ui4kMrHof3wdFHYwEbJSQOO4NvzZrgsrduBRFt1cpeDdSypbf3ccP1v/de+m9kulQicfIqVdXD36dNg74yHtfVgVkm58sT/yzx7bdye08olC7RcaxZA2+Rxo3BCMya5fycPXvkrr6BAPrAcwLdeKOVUVu8WExXVBVZL1u3BsEz9mX7dqg6Fi60qlqLi7GfjGtZ06BG5njoIXF/fT4UXjFi1Sr7/eS2EpqIttjFCmka0je4wT33iJlI7k5ui9tuE3dAUfQiCkuWiCcpFoOxVIT160HcZYMXDoP4icC9R/jg8pJs8+e7GxAnpFJYPFOmQI94zDHp76dpqCYmOxTNxNOMTZvsi9qIJJ5+/cQL0mt6a7vF2q2buIj1/PnePECIMGbbtslrC+/a5a3fBhzSxD+ZhOF00iT3xlYRXn5ZTJzCYeSsMjJOySSCfng6EkXB+rdzBx4xAnvGrYE1EICLsxlXXJG+hlQVEr1Ignz0Ud24qmnQyZvVzoWFiJo9/niom8ePTz8kvv1WvGY1TZzB96efxOOoaXDccKM+E82B3bgFgzDOu8GWLXqlMeMYvvyyix/LgqlUVU9tyhi4AvMknXGGXMw/7jj5YITDcKnaskXer4ULkQPn2GNRzCJXCd02boTkoGm6H/F99yFwpV07LJgPP4R+UHYovviivP1UCtKQHVcQiYhdOV98EbrNSAR9cRTbBJC5wgWDcn19WZmY+Nt5X9SvrxMA0cYQpQZ2iUOW+P/6q579kdtd7NaaHf76S74GuXGW29xeeklcPP3888Vti7JNurnMXnGM4eB5+20Q/FNOwfuKJPpPP7US7UAA7tlekEqBCTK2pWlQ/8pw773p90ejoEulpWAgu3dHDMS998JOmK3Hkapag97ssHUraFi7dqj38N13Ln9YVQVjjHEyNQ01Yo1IJuGDyyfphRfkapdly+SLI5HAINkR/urEqadaCZqmWSUYWbk7brSVwS4nEb9iMXdZTTNB795iPWrTpvY+vq+/nj5n3PgkMnr5/TiYr7xS/H6BQMZ5fRg7RIl/Mgl/bFFe9UzcZp991tmpQFVhLJUVLfH7xdLHZZd5CxIztscYPOw++QT/ukXnzuI2o9F033Y3qKjAPj3zTNC+MWPsbVWpFOhDly6gfcOHy93V9+zB2pe5aYou41hqGvKf7TeUl+P0b98e+r5x47IzpH7/vdy1i9faPBCwC7bo1Cn93mQS7qPmQ/Hqq+2fIcuYaeaAcu1nz/H77+D+uRjo9+MdjAm8ZPj+e+QrOekk+CZv3aqHtXMuMhzW86PYeW8YC1R7xCFJ/GfPFktfPh+kbq+Q6baNl6Iw9vzz9uoKEZOSSf0OIkiS3bqle5R17+4uxbnM7TIeT69zcDBg2zZI/249+lQVGofOncFgZ0J7N26EF9SsWTisUin8/dFH7jwyc4JUCoYT2WLLgiN0xJo1MLb+9JOYy7XTbR97rPX+8nIEbXTogGRH773nHCEnq6LEr0gEJeOqExs24JBq1gy+wgsXZtfe/PmIWzjlFL3mgd07BgIudY5iHJLE/8sv5U4C550n/s22bVjvU6ZYy2jOmOEsgfp8egSr7B6Rn/+IEZmpfY44wrp2FAUeQ198AWlAFn8ycKCYmBYUZJbJt7rwxBN4p3jcqnYTSUt+P2wHIpSWOo9LKsXY3Xfrz4zFIEE2aaInoVMUGL09R/cWF8Ov9NNPxQmPzJgwQb7oDjsMIhYvfOwGRUWMTZyIPsjyX1dVIce20RjUtq1VtVReLtaJRyJYXLnAddfZu4f16pWb58hQWQmVjHEsTj5ZXPNzwwbYN6ZPd89tPPaYs4tqXu3jnfjv2iU+VGXV0Z55Rt/w3MvKyAGnUvKi6/zSNKiULr1U/H29emKCUVwMZsntARAIQA1id8jw4NFoFJG1ZuzYgcODt8ElWtG9BwrTp4vHhBfAefppfM/tK5EItAAitdV332H/8isahVRgxvjx7uKiNA17nUsE774LN1IpvvpKNz7xiLUJE+wHwC6aTVX1dKi33+58En30kf4bHj795ZfW+0ScSCgE/3QzeIk7TqCjUSwqLwWR7fDnn3KjK5GeBdCMv/6CRDB5cnbF0J980rrJQiEEwHBw6Yy7s/Ix+OMP5/YHDHBeaKqalSh+SBJ/xqCnV1WdQ1RVeK2YXfZERd6J4JbL1Yl2aco5MbjkEr3wep066eofRcFe+/JL7Bmz6qC4GPuuUycEgBq5clXF+vr3v/H9wIFY3269YaLR9IyYHLt3I/V0586wN2XiEOGEvXtRwOmDD9wlP6ysxJ4dNw7Bc6L3icfhLj92LGgqH5cHHhA7fhQWyu2N5nGR1fkVXaedBvfZWIyxduqvbESgP/v4mPtZ5ZYdWAg//ohOyqpDRaPpVWnMkGW/Ey0+O/XHxo1yH2Bz3opWrcTPCIfFEzhvHhZP585YTNm41Inw66/iha5p4tN7yBCdi0sksIkzVdU0aSIfCy45ffih2M9YllrWiKlT7TkNTUNQShY4ZIk/Y4iR6NsXqp6XXxbrw6+9VqxCiMf1ZHrDh4vVJIEA9Ofjx6dLe9u2IXHhOeeAOH38cXr8RiSSXrrViLIyxH2cdx6kCFmalU6d3BmKQyH5s6oTU6boqhKuLnnjDfn9y5bBWM7vl70bz/8Ti4GmORW0GjtWTPxDIcYeeST93rZt3RP/WAz7/j36B0sRpV3/X+IrFhNXdyHCIhg+XN7xQYPcuzqdeaa8nWeekSdHGzUq/V6Znl1Rcpsr3wueeiqdi9M0GNTN+knZIdugQWbRsrLkc8ZkULKCLz6fs0ttMmmNgQiHcWC1aoV4hR9+yKry1CFN/N1AFpWeSOhlRx9+WEyMwmH7/csY1p3Iy0tVvadz37oVxOz99+FHn0i4M4SaA66qG7t3y5nd336z3p9KIddZJl5PqiqOeeB46SUx4ysKRBs82B29jURw8F9M40HsM7n8fiwsu0Fs0UIfSDt/d7tavoMGiX8bClkDIG66SRxqfcQRuSt/lwm+/x5c3Pnno1qPyDAl07fG4+KALCdceaVY6mjVSr/HjnO3U+tt2wZdL6+b6vejn2ZGIRyGiJlhXeU88XfAu++K51BRdElXlDacEzOnKnKy9CREWMuvvQYjpFOE/ahROscbj6M/Y8dCDeREHDNJ0pgN3nrLPbfNGJwgZB6NfP/Z0b4WLeR9+eMPMUHXNLiovvKKXl9kz570+sWBgJgWcoZ+Hp2QOfGXRcIZsXcv9IE9eoATFOnAFQXqDhl++km+eM31QDdvBvfPT0tesNzLAlq/Hr7uH3zgnHI6lzj/fPE4JxLQD3rFhg0w1PGxCIcx8UZf8YYN5fN78cXpB6ZxXHr0cJ/PJByGeiIDHNLEv7gYYz16tFjvzRhUBp076wcAN36+8IJ+TyoFJwhzMFP//lAtjRoFFZ7I0D9pktzziD8rHoeUuWiRuI+ybLmqCgbRbu307m3PtJWWgkkZPTp3wZ+jRsm5bWN6CI6ZM+Vj1KIFbGx9+8qdIxo1su/P/fdbNQcNG6KPfPyPOAL7s7gY/b/wQnhOiSQSVWWsRe0drJwyrEHL/dy9ctMTJ6LTXM+sqshZ48QZXnutdfHKKtHs3o18PxdcANcn2cYxYtUqLKB//AOHEfc4iMfhKseRTELcHTUKk55LaeLNN8VcXDSaeVrlnTthy7jgAsb+8x9rdr9Bg+TiqtGoz1V4fFy8rhdFyaj7ByXxJ6LuRLSSiFYR0X1292ZK/H/4Qa/uxtMsyFz0KiuhSunTBwyWyPiZSoGB6NsXEuHnn0Mi43Ea8TgMgObI76Ii9548jRtD1TRyZHr6lYEDxXalWAwRvXZt2nkVzp+vJ1tUVbzHjTdmvydXr5Zz29OnW++XRcWrqh6VnUqJEy2GQu4qak2fDnp72WW6N6OxnUAAbuiM4RAeORJxG7K5O0VdwqrIg56qfXssnL59sZAyHeQVK+Dhc9FFILgyt00jUilwIVdcgUCXb77JDeFNpbCpFEWufywowARv344Nwt3QNA1Rwm7cXt2gvBwTaOTiotH0xE5VVRj7ESP0II7NmyF+v/669/KPRUX2RaC7dMFzMvHlNi/O/5UavnYXEQWI6A8iOoqIwkS0iIhay+7PhPhXVsLjRkR8sk1bzsHz9xjbDwaRFuDzz9ONkGPGYB06qTB4ZlvOkfbqhXbuukvMYHDX1cMOE7dnLKZiRjIptu9pmrMXohs88oiV277iCvkaHj8+nanlbtVG76zZs/E5lwA0DfaxoUPBYLrdH82aiccrFIK0zoMu7fbs8bTQ2wbO0nMjI6xfDy77tdc8VqRxiUmTnH1jEwm4ufXpY1V1RCLYSLlCRQUCyC67DO0aPX02bWLsqKPSD59mzdAHTcOlKOCmvGD6dLmh6PTT5R4lXq4uXTIajoOR+J9ORFMM/7+fiO6X3Z8J8Z82Ta5G6N3bc3OsshKxMc88A6YpmbR3QY7FoEYwevItWYLEj3372qeJNhP3F1+E3UBml1i/HmpI8/ry+aAlkOHnn+V6dpFbdyaYMweS1NVXg044EecVK3DQ9e2LmAORXW/DBlQz69ULUksshv0biyE/mhtG+PDDxe/NM6c6zUtUSbFhgfu9beAaNTIbxEzx3/9igaiqLp4ac3knk1jMzzxj5Vbcondv5/dOJHCyy3TcsqLLuUa3bvbpX42bys4F14zycnH+Eb55L7/c2zoxXoEAfL9FXhIucDAS/z5E9Jrh/1cS0QjTPf2IaB4RzWvSpInnl548WU78e/b01tZff0Gy48b4WAzcvRORCATkRNRNHV5+HXcciObVV+sHAM9/f9VVIPBPPw2V59//jrxT3bs76+9nz5aPkZvKVX/8AbXISy/pBWByib17YdAePhx2UX5wlJXBjtO8uVWCUhTkOnPCHXeI7Qd2nj6cdmka5r/46HbeNrLXSlLZYOlSsdFFUaB+2bMHL8Et1/E4FrnXYuc9eji/dzQKqUMWmKKq1TMGRhQXuzewKkq6wc8NPvsM78GfEYtBpVVaiohuEZcVDssrnx1+ODbh009nFTT3P0n8jVcmnH9xsTzV8Lhx8t+VlMD758knYZdKpcT1myMRSIxOgVahkJgTLSsDl8rXhN265DUoUikwbrEY7ue1uP1+/B2P41630r0sQt9NCuOhQ7FHOGMZjWLccoX588FMcdqkaeD0V6xALIBdGcsGDcDETpyIeZw40crU7tyJw4OvEe5FJZPIVBUSzDXX4D3LyxlEJx7A4ERQAgG4Iu4vDBwoD456/XW4dJpPv2AQhk23+PlncLUyXX8wmK5zlxWrMEbMMgaJZMoUTN4HH+Sm0ExRkTuunxNlJ/9tEf74A5GG116LfvPo4mQS78gXGx+XV1/FotK0dLGdf68o4nQEHnAwEv9qV/swhvGPRtMP4+7d5dLtypXQH/PgnVgMKjsZgU8koGu3U3mGQnJHg8pKRN336wc1hkhvryjwPecQHUTm511xhfsx4okGOR2IxcBw2OX3+ekn8WEViUD6GDoURuuKCqhonnsODIxt+gMDUil1lpFLAAAgAElEQVRILyICfMQRzkVfatUCYY/H9UOxeXOof3lffv0VTNmYMYxdfz3Sp2zeDE2JiGGuX1+SsmXzZnuPD05wDztsP2aEY6hKIzMSvfyyfa56J/VPMomDjOfWME6I34/rpJPgHWPMZHjOOeJn9u2r31NUhN/yTRiPwy1rzRosjGnTUDHtzTe9G4pPO82d7j0adb9Y3SKZhDrippsgmvJxSaVgrPrnP8WEhut1M8TBSPyDRLSaiI40GHzbyO7PxtVz1Spk5LzlFhj57XIunXSSuE60bL3E41BNjB6NQD9R4jEvWXfnzMGa54xkLIYIf+4qXVnpjnmJRLyN0dq1oF833wwu2S4YcvVq+WHn8+llWXl+JJ7yhBdccRNpvGyZ/TPs3j0UAqE3H06cJjn1pbQUc8YlC16QJy2nf2EhuNkhQ6Az371bLropCji8/envzhj0ZCK9Itdny9wNAwHnzH6ywBg+AX4/BvCss3SuvapKvniNXgkDBlglCb8fXjxnn60XYY7FIBrKfKNFWLYMRiI+LrEYDsFoVF8gqnpgwuGHDZNzVM8+m3GzBx3xR5+oBxH9ts/rZ6DdvfujjOOWLXLp1Vhn2sggGWt0bN8ORwJONFQVHKjXOhNbtoAzvfVW2MiMeakqKtzl8wmHczMmInTsmJ3jgqqKS7UasXixXK1j9+xYDKo4N7W8+cH+wgvwSnr9dZ2RrKxE0F3//pAINm0ydG7RIhAdLqqHw9CVH3+8tXPhMDi9A4Xbb9cTr3FVAickV15pJcZ+P7hzI7gK5tFHEQ23e7ecgxcNMI8grqqSL16jLUQUCs8nXpZDx4sL5K5dmPRbb0UkYmkp8hPdcw8klVyVt/SKxx8Xv59TChAHHJTE38u1P4j/X3/JiX+jRlAHcWYnFoNawpzltqwMHip33AGDbq5zXDGG3P92ao9g0L6KVjYoKsq+yHoggCpZjOku1w8+CG9EXqo0mRSrwFRVHFAZDCLj6rhxmAMvfTQacWvVcojWTqVAbGQvFoulL5IWLXKX4TJT/PQT1AwPPZTOiWzZgkXMT1lNQzSrMRtlaSlyzxg5moICiMhuB9iYCqFrV+sBEAymF9ioV8/bgopE3GXQPNghi+KUZWV0iTzxF2DrVniq3HcfXBCTSXGBE0WB7ayoCK7SAwaAwOfCBpUJ1qzB/jB6/XCGMxaDk0B1qZYLC7Mn/n4/GKySknT1iqrChsKz186apSdu4+/WqRO+r1EjXXJv21a3qwwenHkheJ8PDLwUq1fbp3blYeEDBiBi8GAqjCAC51YGDMDiNuvQhw0Tv2+9eu5d1bi3AmPQLxqt9SIu6rbb3ItufNJ+/33/jJdXcH3+Aw9AAnJyHx0yRA904ZLak09m1QU74u/D9wc3Tj75ZDZv3jxPv6mqIvriC6LZs4kaNya64gqi2rXx3axZROefT5RMEpWWEsViRCedRPTss0TnnktUUUFUXIzPW7QgmjmTSNOyf48NG4jGjSPatYuoWzeis88m8vm8t1NSQvThh0QrVxIdcwze47ffiNq0IerTh0hRsu+rDB06EP3wA1EqpX8WCBA1akS0aRPG3Q6qivGcPJnosccw/kY0b4538fmIduwgevddor/+IurUiahrVyK/n6iwkOi994jWrSM69VSiv/2NKBgkWr6c6OSTrW16QThM9J//EJWXE3XvbpqjtWuJWreWPyCRIBo7lujCCzPvgAx//YXFs3UrFikfjOpE69ZEK1ZYP49Gidq3J/rpJyzGSAQDZqYl0SjRI48Q3Xuv/llJCdH48US//krUti3RxRfj9xx79hCdcQbR+vVEe/diMYva5vD5sGCaN/+/9q47PIpq7b+zfbYkELqgUqwoCIqIoiKiNBVQgauIDUURFUW590Oxt2sBFUHxWlCsoKgUC6CoKFVp0lF6kZ5ASCB1z/fHL8eZnT1nWjaJ92Z/zzMPYXf2zJlT3vP2F/9njOjHH7HAatbExj/2WHy+aBHR1KnoV79+2m/0WL0am6u0FJupVStHQ/YX4nGivn3Rj/x8vKPHQzRpEtEVV8h/t3o10Wef4b1698YGLwcURVnCGGsj/FJ2KvydLqecf14eY2eeqTEYPPXCL7+Aw5dl2BwzBhzkm29CSp4+HaqJBQugEnzoIfe1onlKlkAAzAp3XXSTadYpCgvBiA4ZAm+X8mgiNmwA48fHNhZDcsL16+GJw+2IPIjSOM5nn412ZGnjVdWdFL9wodwe4fMhuJRn4rRiJvWeT1dcoZujeNw8Oi8jA/7eMvz2G7jA4cOhZ7bC1q2o9nT11eg810tGo4j4FBUq4dVlhg1DxtDyeK00b24+ST/+iGe88gos4twWwvt43nnJxTPsoLgY7mIPPwy7hVkuHL3ap6QEm4rbY4JB9PWLLxJdKv1+zRCvB5d0uAdTOIykUG4gqwoUjdqrs5oiUHVT+8jSoDdrBmOjzJgoesxdd2kpCrgk9vLL4uceOQIb0uDBUCnxjKBHjoifaVWDIxU4eBCE1qhesTK6miE/HxHwjz+e6B1UWAj32scegw5flkJ+0SI5DQ0Gk3NnWYHPkYw+hEJIgxMMOjdWRyLIFvAXfvtNvoAiEXl48dNPa/k9OGHhxg8RpkzRuAXZs4zEKx7XErjpF6xbX/GRI8UDe/LJYiProUMwCt94I/zaH3rIdWTqX5BtHn7pDb6vvy7WS8rydIRCWlCMLBmVqmLO166F/veee+BuamVk7tFD3N+MDHsF4FOEakf8TzxRPO6qCr92mWG3XbvEdubPl68Zo1593z44feiJbI0aCLScNUseSXv55Y5ezTFEnnNEjJ12WsU+9z//EY+doqBPnTuLx8Pvd+a8IavCZjxQ7BZ/F13duxsempsLt0OfD8ScE5cvvxR3csMGOWFZsSL5/qNH7WV+NIZhz54tzwHiJq9PQQHeMxLRDNo1a4r7zBjE6t69tT74/XjHCROcP1uPr77S3DH5O/l86At39fzhB7lYJzNURaNaNbDRo8Vz5PVC/OMSARfbzZJUMWZeJMRpEY9ywIz4V7DSsGrg84k/j8eJHnsMOn0jIhGiW29N/GzyZLF61+Mh+uqrxM8eeIBoxw6oKYmg2jx0iGjAAHl/iIj8fvl3qcDEiVCZGrFhA9GePRX3XJ9PbM/weKBX37xZ/Duvl2jTJvvP+ewzax1/s2bYeW4RCBg+iMWIvv+eaOlSomeeIRo1CvaAyy4TNzB9urgDRUVEX3yR/PncufaMQcbF88kn0C8b4fNB9+wUwSDR7NlY7E89RfTqqzBctWghvv/LL4m++UbrQ3ExJmfQIGwGt+jeHTaAMWOIbr+daMgQorffRl9atsTGvvZa6OlFkE2+omibU7ZgFQXvdPQoDFqM4f2mTCH69lt5n2++WWwo9HhgOPsbwIQs/fdi4ECihx4CAeZQFBh816wRr4VLLiG66abEz/x+zJVxTXECpsfnn2Ot68EY0bJlRGecIT4AIhEcDlu2EL31Fg6Pzp1h50kiOC4hO3gYMz+UyosePYjuvDP580AA+3TqVPlvnRyIgYB4jvRYs8Z+e0bwORKiRQs5IdTD75efhHpjp/5+q9NKxK3IBq6oyP2CUhRY2zt00D7buBHEd/duWMWvvBLPnjhRfPgwBgJ6zTXu+kBEVLs20eDB4u/WrNG4LhFkXgglJeCCbrwRnh2iMY/HYXQ2tpGfD+Nt587aZ/pxOfNMopNOIlqxAmMYDOLfL75I3eYuL2Qiwd/pcqr2KSpCGgdeIS0Wg5GydWuxJBaJJBbn4Vi5Uu56azSa1qsnlzjz85GVMxrVMlCqKuJ/vv46Ob1Cq1b2MlMakZMDe0S/fvAQ27tX8x7T98njQdqKisbEiZpGhKcq4TE///pXckyLophXIxRBlr/M7mXlFnrttSlIe//nn2KVQigktm7L8pFzdUc4DN94Y7j6mDHyFymHr3gCpkyRJzDr00f+/Hr1kgtdpArr1jnPl8/VN3zx8Io+RhuLTJXk8cC4xzF1auK48GcQoc2K9ME2AVU3nT9j2LALF4IYfvop1JedOonnMRrV/MuNGDkSe5Sn/1ZV5OMx4v/+L3l/+3zIIsuRmwv15+jR8BoqLhbXiFZVOB44wdatie7Xqop4nGXLEJCpPwgbNkS8QGVg717YAF99FX1kTFzly+tFIJ0b5xSeudhu3i67VyCg9blc2LePsb59QTC4HjwUSi6ergcvXMDTJfj9mMiXX5anNLjtNvmB4TRHvQiFhWLjVTgMVzKrlKh33+38mYcPI21s374wuIomJB6Hoc9ozbcKSjHe7/HAFdCOVwD3XODjYpbfnW/Ip58u3/i7QLUk/iJ88om8ytvgwfI9tW0bHAnGj5czL0eOwP7G60HEYkj3kJAawIClS+V2vdatnb3bVVeJcwu1b4+9sWABGMMpUyAZLV+Od+7TB5GxIq/BikB2tpwJTvCqcYjt2+EVWd4gND0daNUqBS/8++8wTBpr4s6da/67CRMwKJwQqSom0yxwrFcv+Qu98Ub538UsB7idwKxjjnH2vH374D/MNy1P7/rzz8n3rl4N7oH7GKsqvClSyQ1Eo5qYfvbZSG43aRLEetm46K+WLcs/Bw6RJv5liMfBHHFVhJ5Yer347J13ytf+vHlgVL75xtqHf+1aubRqGmkqgKwdjyeZsL/9dmJVsUgEaiC3AanxOBwyrr0W2ohZs8SqkrlzNScZUV/79HH3fD3Gj9dKpTo9CPgaiEaxly+9FMyqZWxHSQnEyz59kPNZT9gvvVRcZcesMlNennhCIxG8oBHFxTg5zYqJp4L4L10qd7u0E1bdtKmz5/XuLW63aVPxAisoQHzAa6/BIykedx7uLeP6fT6kgL322kTPI15uzo7ayehOuG0b4gh69oSoXwGpQNLE34B165DXSsSshMOJUe6lpShpePXV8O4y89Lavx/5mS67DEFhVv7qPGZItN4CAUTc20XNmuL15vcnHkK5uWIduYyuWMFYZIa3pa+pu3+/OK2Lcc8NGGD+rKIiZCPo2RPP5Haa0lKo4q6+GvaOyZPdSQFnngkXWC698T0fDkNiEqK0FL6g+nwb4TA6wJj8pPN65S86c6ack+zcOfHe4mLNHVP2Yj5faupyxuPgxI3t6/Omyy6nusxnnpETYr8ffvlW2LVLLpHw9K76z4JBiNxG0dTvx0EkE1sjEbmNRn8Pd3ktKdESufFDRFWhty1H+mYR0sRfgEsvFc9RRgY4V8aw1vU1GPjh8K9/JbYVj8NdOBjU5pJX/FqwwLwf69bJ97mqagfRpk2MDR0KG8JTTyW7bQ8dmrwuAwHYOfr1Q8zJRx/BFV32vK5dnY/jwoVipkdVYTDftg0J06wIbzgsNrpzFBVpajU9jR05Eiov4+HToYOzFDF8j8u+q1lTohqbNk1MeINBGPhkRNnjAYcg0mHPnSvXB/bunXjvxInWNXSJUpf/ZuVKEKlYTDsl77oLRl/R6R4IYDH07Glft7hzp3VgRrt21u3l5MgXQZMmIPQ8GV8kggW2fz9jF12kfcaTR+3fj0hh2ea55BKMS0ZGooqPj9HNN4NRKC1lrFs38cHm9UKySCHSxF+A3r3FcxiLQXXDGFK1i6Rco5PG0KFyrtZOMJUsQy4PBtTb/vjza9dOpBtHjoAB5LZErxf7R0/QuIQqoyt9+zofx0cflUsuI0fi4DGzn/l86O+//23+HFkKea5CF7UrknB8Pnd2gViMsWULjiJ6rUsXiIHz50NcEf0gGgWnN2iQnJBxDsHobVBSIk5rGokw9t13iffKFrJxwXbtCgI1YoS5IcoOioqQ++Sdd7SNsHUrkrTFYlpRik6dIL7KgsJkeP9986hePhZmJfk4OnVKlr4418BTYYwfj9wvelXSr7/i859/1j7/9lvx5lEUEPeiInBX77wDz4Wvv9b+5pg+3VxFlOI6z9We+B86hBz5F1+MyPMlS7CHRHPQsKHmQTdkiHh+VFVz1Fi/3trJwSq1s8xDLhYDfRHlwfF6xRW7zKrq8T0jUhElFSwRoKgIas8uXcBtz5wJTxtZGofXX5ero/hVqxb2oVWWVBmNk6l0QyExkef01inxr6keZUebt9YWDRc9OnYUn/yxGPTPhw+DozQamfRXmzbJL7x8uWbA5P7Bjz6afN/Agfb02ryPwSAITKorVTGGjTN7Ng698rQ/ZYo9se3KK63b2rULlZa4n7WqYjG5KVa/a5eYaFiJrXoMHGj+Tk6N4hao1sQ/OxtqSs4F8rQqH3+MHDTcM4fHAuiZlEceEROQaFRjOl591dzPPBCwzm31/ffiNVWvnjnnXLNmYjvr19vzee/VC/ufZyfw+fCujIEBuu46FGF67jnt4Fq2DF5wejrDdfuiZ4bDkJQbNbLuTySC9M5mBudbb3Vmu4tGGbv/frSdkYErHMa8WXnliQ6Yx48ZJ54kHrRh/DwzMzGB1xVXmD9AdPoVFcFz4KOP5D7iv/zizsc9KWfF3wh//GFvUm65xV578Tg4+A8+gJeFG+zcCQJhPJQCAXCWdjFsmNwOFAgk1mxNASqd+BPRC0S0johWENEXRFSj7PPGRHSUiJaXXa/baa88xH/ECDFnWqMG9tauXfDWmjUrmRnYsEG8r6NRTRdvJqF6vTBC2sHTT2t++LEYCDtX38jW/3HHJbZhdRARYd116JB4n6oiuOrtt7Ukdvzz44+Hi6xMmggGtTw+nMhGo6BZjMGuZedAikS0NCsi/Pqrs2CuaBTG7bw8MJKff67l/J8/H+ObkYGx9vvFjCYvR9mkCWNHLpAkI8rIgIjIU8dmZKBxrjtkDF4yZgQ6GCxfeleelyYjQ5sofurJnqmq7p9X0XjvPevJ1vvZVyT+/BNGvrp1xVxY/frOogDXrJG/W48eKfe5rgri35mIfGV/P0dEz5X93ZiIVjltrzzE//TTxeMci9mr2PbeeyAMXq/mCvjjj9r3ubnyg7xVK606lR3s2QOPwW+/Fat8jZfR8PzBB9b5wERODpwWiNRXgYB5m1y1nZeHIMfp0xMZ3uJi2BK4hMVzY4nasqpA9uST5u/GD5/MzMQ5EqGwEAfU559DOhw8GHSTH14nnAC11U8/lakBZSJYNIrTJCcHjX3zTbII88ILckODokAf2aUL6tS+9pq7SkEHDsDlaeZMRNZ9/jn8b2Xqk1q1nD+jsjBtmjlHpSgw1v7yS8X2Y+NGHORmKihVdR4J+M47GrPAfYsrKL1vlap9iOhKIvqQVRHxv+AC+Zzpo1zz8qC/Pucc7EOey58bUfUMx8CB2u9WrxavDb9f435FmD0bMSht24Ko6e0C27ZZMz6KkixVHD4sJ9Q8PmXQIPlalkkZZgbbWMw8hT3Hhg2gTePGifvo9aJvZsjONif806YxNmOG+3iFbdvQx4ULBczczz8nc++KAvHLmGbBiDfflHvkZGYmu5PZ8WSxi1tvTT7VVRUi8d8VBQVyUZMvUm5zqcic6H36WOsag0Etd7sTHDoEbmnWrAqNsKxq4j+diPozjfjnE9EyIppDRBeY/O42IlpMRIuPM+o3HODzz5P3nderFRVhDJxqixaJBDcSAccqYkBUVQv8GTtWbvAdOlTcp5dfTqQjoRBUC/wAyMmxl4LYqPNnDM4LWVkaFxyJwLbx5ZewCdSoIW/PDfHPynJGbIuLxXmQ7BR2375dvhczM+33wTVeeklTr8RiIPzr1ln/LidHvJACAfFER6PQRaYCeXnwa+b5PkIhGDzdnJDr1iHKmPukywpblBebN9v30/V6EVhjJeq5gR0f5TPPTP1zU4gKIf5E9B0RrRJcPXX3jCjT+fNykUEiqlX291lEtJ2IMqyeVR7OPx5HTYlQSGOyTj890X721ltixkxGDFUV0jljsMWJONlgUJzKQxZkFQpBP85x2WXW679xY/E7FxXBiDxjRqIK5o475CoqVYVThPGdIxEclKK+xGLynEhmWLkShmCuIg+H7QW0HTwoH5NTT3XeD1fIyYE6Zd48a45fjx9+0AwN/Lr/frl648YbU9vvtWshGrktdr5mjfjk7dcvtf1kDLpWpy5Z3L3MCkuXgqtr2RLh/mbBYk2bWj83IwMutK1bo7qREz2vDGvXYv5btEA06urVrpuqEs6fiG4iogVEFDa550ciamPVVir8/Pftg9vt0qXJIr0sJUogICaWsZjGmOXlib1HwmFwqkbMmSO3w+kzbWZng8kyJgrUt++U8WrSRL6GH30UB2LLliD4nEl84gn0pWVLrQiVxwNnEaOBfNUq0ILmzeExtGqVvC+lpaCfM2Yk1w03Q48eyQdAOJxc1OpviaIiHAKzZ0O1MX26eDH4/ckGHSNycuCi1bIlgpK++CIF6UfLsHUrOIXTTsOAz5sHfahs8aQ6LYFZJKLZZVUiccaMRI8Gnw+bWUZcR4925knFRfhDh9y/+6JFWvEcIs3QaNeV1ICqMPh2JaI1RFTH8HkdIvKW/d2UiHYSUZZVexUR5KXHHXeIuXyeCdP4eY0aiWts0SKoMjgnm5kJ5lCEVavk60nktrxmDbxVuIdOZib6NGiQM8aTMdgXRM8NBmFsZgz047ffYDf84gvYPxo2TBwfrxf92LABnP9VV8EriB8ORJpLrVWEs1Pk5GAsQiGtLGO9eog/cDoeFYolS2CUOeUUnISiBEGFhfDlN06IqpqXP8zNBZHRL85IBCJuebFxIxa4fsIVxVz3V95KXUYUFUGt5JT4Z2TIjcDxuJj7URSI2SKUloI46EP3rS5VhYF/5kwEmJ16Kko/2g2skx2yLtVLVUH8N5SpdBJcOonoaiJaXfbZUiK6wk57FU38f/tNbsubPh17gat5jzlGrOrghd7nzMGe3rgRQX8nnQQCOmeOdq9I560o1obTDRsQnLZrl7v3FGU1DQQS004zBv/87t3N97vXCycVPSMlukTxS+VFQQHGVS8BRCIY778FZs9OHBiPBx0UFW1fuRILTZ+++YwzzHXYo0bJdYd795av7/36OU+G9tVXyGl+yikQXydNKr8UsnIlOAqeZS8W09zGZPrYUEieqzwnR+5xlZFh3pfduyGJmUVz6q8TT0wkKH4/QvLtHABmhjcXY1qtg7zs4sMPNc49EgFx4elQiopgSP3lF3vc5fr1aEc/jzyw7OBBsTTh80FlWJGIx7XAtsxM0I8LLkh0Vjh4kLFjj7W3xs1iEPjl8aT+Pd5/X16qtrz1wlMCWXX6Cy8U379+PV5IT3R5RJoIl1wiJ2Jc5Jw7FykdmjVD2Lfd4CazzKCiKxoFkTaexP/8p+NhS0I8Dk7rp58099fsbFQEMh5+fj9j550nb6uwUE68mzSx15cHHkhMsy27ZIa1Ll2sCbjMyGx1QEmQJv42cfQo9gzPBusWsky0derAECtTZxozvlYUcnKwn0TFnZ57rnzFzo2XyCOpvLjxRvGzIpHypeROCQoLzXNOiMALvRjvr11bHPx1883i+7l08cUXiZynxwMiLStYoccZZ9if3GgUEasyKWT3brQ5Zw48jho3hvukmTHILl56SYssVFVsHiupZ+DA5AMgHIbLnl1kZ8MQKxuTYFDu1qsojN13n3n7jz6arIYIh3HwuECa+FcyZCUdVRX2PtFeURTrfPa5uVDrNmsGCfvFF1PvIiyrdma8wmHrQyIcFqejKS9GjJB7H5nFVlQK4nH55pflbalfXz6AogAiUcSw1wtLe2mpPKeGUb8nwkcfySfW50NKhddf13Kbm6XH/fJL+FobD6JIxNqv1w7y8mCMtlui8sgRcGZc9A2FQIydcnq8ZKPxnb1ezR1YtilCIXO9bXExxljfx5tucpeLiKWJf8qQlwcHi6ZNcV1yCQhxs2YgcrzubsuW4nkPBuHZcvbZyepHOymNW7RI3Jc81/wJJ8Ct1CqHkB3ImEr9AaaqUB/dd5+c6QuF4ElXnqwFekyZAoN1o0ZIk2N8rqKAtrrcI86xbx8MeccdB6L76quaTlDEDfNMkiK0aiVfMDwnhREffwziwCtXnXkm3Muys+X+sHZUB/G4PFWrPsCF45Zb5N4SixfDW0DUl0svtT3UKceffyKSz01wFsfIkZrkEQxicXKviUsukauGMjNhSLTCvn0wIpbThpMm/ilASQljZ50lP9RDIdCA7t1hIDYS0FAILruMYY2cf76W8iAjw9phYtIkc9dnVYVKubx2tmXL5N5ItWpBlctdmYuKwJTwuKdQCF5ICxemtla30eOOexLVqqVFLp92WrK+/8gRuKo2aQK19IgROGAvvxyq7fPOg1OGY+TmgujriWw4jMFgDANz882JAzN0qNxgNGlSsrQQCln70BcWQieu53wLC+Xh4SecYP8de/VKJmC1aye7MYq8JbxeBNOU9yD6uyMvD0mnjD7d2dnyQy8ScRcc4xJp4p8CTJ9uL+7EuF9UFYxBnz6aZMCxdSuIrZ1gy7vusn52JJKaQMdPP4WuXqS9CIcZu+GGxPv378d6tkpd7QYFBfJ0EP37wz4jqlMSj2vBqPw3gUDy/JjZVaV45RXxCRkKJQYNORmYf/87kZPs3Tt5wdjFnXeKJY9u3WDNP+44xh5+WN7+5s1iLiccxklsxOTJMFTGYvhdu3YIGikqkh9EJ57o7t1kiMcxkS1aQO/at2/qCti4wcqVyWPo86F/qYrHsIFqT/zXr4fLdZ064M7ffdf5+I8YYU18RVft2po0yBjiTBo2BBEKBJB6xY4H0ciR9jJ2Pv+8s/eSobhY7t1mLGbjpu2RI6E6q1cPYyBTg65dK89XZOak8f339oNE69d3GCNw5ZXihhQFE/7MM+6MMfn54KTL665ZWAgphKeJDYfxknounBNp0UaYPFk+6D16iJ9ZXKyVbtPj7ruTF67bmqFmeOKJRG7F48FBKnP9tEJBAXSbxx0HMXHIEOdqoilTsB54cZv27ctfSMchqjXx37QJa8CYh/6xxyHOw4wAACAASURBVOS/2bMHjgF16oBRevJJqHSdpk3n3CZfM3PmiO/p0MH6PfbssSZm0SjsdalCz57i53g80K9nZcHX32lm3WuvTRxLnw/7S8QgHzggdynV52cy4tln5R53/GpFS9k31JntpyxW3LwFRB47GDbMvByYqsIwcegQ1D316+MF//UvqApkKC6Gu9Xxx0OndfbZID61a0MF5DR7ZHY2PGs++US8eKLR5MpgjEFvJyubZuWtYkRhoWbA5AfRk0+mlvs9fFhetu2225y3F49Db28UG084wXnG1ZIS2El27HDejxSgWhP/W28VEwFVFdvSDh8GwdfvbVWFo4TTIiBEWOucCRRV5OKXrFaHHgsXglsW0R1FwWFlFt3uFFY0Tv+OPJL38GGkrKlXD/25++5Eov7HH3KNwosvavfF46gTYJZepWNHed8/+sj8sDyDlrHDFGalxk7YcfvbuNGaE1BVEAs9tx0MIupNJmb07Stv1+vFIeBGKnjkEXGbPp+4fmY8DiOKqPyhXc8aIw4ehBiXygXKsWSJ3H/aTdInnmJBdFh+8EH5+jppEsa2Rg1wThWclrpaE//mzcVrIiMDUtnVV4OoN2oEpuvVV+W67k8/RXu8RCDPjR8KQZUjciEeNgyeebK4HH7VqYM+de9unsfp44/FTE6zZu6LFMlgh8bx66KLQNPOPDPRI8njAd3KyoI09eabco1Cr1547vr1oJtWzzRT+xw5gjGVOV1Mo8tZKQm+zMy0p7KZPRtcgkwsCQblGTtnzUpuT3Yq6q9QyJ3vrCxzoZmouGsXTtdgEIugUSOxlPB3wK5d8rG7/HLn7ZlVRRo82H0/ReoDVYUaMSsLKS2GDYMr6VlngSCceWa5/JerNfGXVc8LBrHPjUGVsuRnkQhsBYxBguOqu507NYnuxRc1yVZVwfUuWyZ3+xZdioI2RAxWPC534a4om/gHH9jrd40a8Jwx47b9fqiLZAdKly7QbNjN6XXxxeZ9NztE7qKXWV3azTIph11H77Gd1EBbBEa9tQhbt8KKL/NmkX3u80EnZcQnn9h7cTNxR4bcXBAX40no8yEgzAz79kFvbldNs3UrJJiMDIh/jzxi7tFw6BC8GWrVgpfBwIH2E8WVlsJ41KgR3sXoYhcOI2rTKb76SsyhqGqieOoExcXyfOr6efH7xV4JVvMkQbUm/vPnJxObUAgR+LI0CzKGzY4nzcGDWL/c+eHYY52nSvH5GBswAAxb06bo/7nnIkDMLK1JRWDdOnt9Pv10e3r2aBRjIlPFnXOOdRt8P1gVnGcMmXaFtJmOauNNRawB7WS5FMXD69bFiX3FFeJ8EQcOQKyQTayioA3RKReLiQuQ/PqrNZfg8yHRmBusXi3WoYXDCMRKBbKzMS76RaqqciNxaSliHPQHpd8PTyA70tcdd8jrKtetiwPVDYqLtUyF+nYzM537MMfjqGBkp5i12dWsmatXqdbEnzFUZ2rQQMsEecMN8IkXjTGPmTHuuVNOscf8XHSR/fxPnE7IvjPSFrN7Xa4NS+TnW+fw4Soxq1gEft16qzyo1eqg9Hiwr+0atu3ORZgOszE0ODmbZY0ayR4azz1n7nrl8cCTpnbtxEnzePDiIqNhPI6TyszIEolAnHGLk04St+vE/98Mopw7/AAQZTWViYrRqLXxfe9e8eT6/fB0Km+K123bQCQCAVwtWriLSn7sMXeeIiJCkU7s5g6lpdjD3LV58GA59zl5MmwygQDWUr16WsnNQYPkQZd2mDd+BQIw4KYij044jPoXFQXZWAUCkHB4DY2CAhyyZgQ8HGZszBikeRF9L5Le+RUMoiaDk33drJn9cexPE8QPffDBxEZlBSCMVygETtjnw0Jq397cR3b/fuio+cKLRrXq8s2aQfTjWLsWerJgECqTBx+0Dhgxmxieh6c8kLnA6gtg6PHcc3Ixz6rM5Jw5cg8MRcFY//pr+d8pJweqLzc4ciQ1hJ8IRMgF0sRfgN9/TybUwWCiSnXrVhAzPTMYDEK/LjqE337bHvFXVXC/jGlZat2uCa8XxLQiUVyspXIIBMB5v/su3E+N6Rs2bwbDJNrTigK1bk4OY507i98nEJCnjPjyS+u+7t7N2DXXoI1wODnQS0qnKZ/9m/4l/tJoXBgxwv6pHQggWZqTCk+HD2sEJy8PXK5+we3cCcKnlypUNbmosxGyqFMiGLvcFj/meOgh8bhEImJC/NlnYt26omgbRIZt26w3TiQiljgqC+vWmYvCtWujj0bpUKTzd7nJ08Rfgp9/hjrH58Me7dcvkauXOUkoClyVjZgzRzzXfj/2qt+PebznHk2lefQoY7ffbr9kqfGya4tIBQoLwZza4bxzc7H2u3TB+Pp80OevWQPp6+qrk99FVeGWPXs2GF2/H7Tk2mvN3eM5CgogUegPHi65ZWVhjGOxZG0MUSnLoBy2l2qLJ2/IkMQHbd/urMxgNJrItVvhp5/g5eH1QnJ49tnEQR8+XKweCgbNyxK+8Yb5oeX1Qj9vx+Atwo4dycQ8EEC8gohbKiqSG8XCYfTXDL16mR8APAw8VZg9G+ofrxeL6sUXzVUxubny/nXogDlduxYqQr5JLr0UqqKaNTF2NWrAqO0yLqKqyjg+Vlapixd06a777oGygi/riaiLVVvlJf7z5mEveTwY00ceSUwAdvCgWA07eLB8Xfn9yfmZ4nG4ghrXckYGGLmcHLkda+9edyqgUMhZRlrZuNSokTwuRmzYAGLu9YJQ33KLvYp1+fmJpRo7dRLviUGDtPGJxzEvTpjRiRPlKuSpU2GPLCnBXPTqxZjfF2c+KmJtaBFbQafLCbdIVbN4MXT0dooahEJICSFCbq4WBOXxwLIvGpxjjtFSMrdvL36Oz2cuHsXjIO5W/eXl0XjwyAsviImP6LMlSzAunKPq08dc6jE7SOvW1Z4hetaRI5AQzDinVBV3FnmOhMPYNGYYPFjs3vnzz4n3HT6cmG6jpERbsOVAVRL/YYLPmxPRb2XF3JsQ0UZe2lF2lYf4L1smTnNy++3Wv7WK6j3ttMT7uc3OKLXVqGFP6pc5L5gZemMxsdu4FVauFK9lWUBkdjZUy/qDLRgEN++EKRE9l7clkqbsoqQEWgcZTRR5VxZ8OJnlRyXlAhUF6pqFC80fnJeHRdaunXyiolFxBrl4HDpEJ+5gd96J38i+//Zb8/5+8YU80EJ2hcPIBcQYTuNhw/BOioKgNVGId16e9cldWopLxh17vTi1Tz4Zz8rKSpaCGIOfv4hzspMn3S5kuc4jEfN0usXFqHJmjBa+9VZnxatd4u9G/B8gogd0/59JROeateWG+M+aJS+oRIT1ZuVOfOgQVARmbegxf748QOyll6z7XFwMiT4aBT044QS4HB8+LA4S8/uhtnLj2HDttWKaIxuXUaPERDsSsaaPekyaZB3kZYXiYrxzPI5+1aqF39euLaYjsZjETVqUkZJvTqOR1w42bRIfAIGAWKSaP9+dH7Csvq0V588Hr0kTe/60xkV89KhmUDEuAideSNu3o26u14t+yDh/Xm7O2A/93BQVYSEMGCC+t7x1Az7/XO6dwN/dKn/Qnj3gAPVrIxhEGb0KRlUS/y1EtIKIxhNRzbLPxxJRf919bxNRb8HvbyOixUS0+LjjjnP0wgsXWhvZYzF7OWn++EPufde8eeK9ZgbfG2+03//S0kQ11DPPiN/n/PPdOyKYRT6LbHP9+8vXvpPqWTJ6GwpZl7H87TdIGh4P6GmrVsnEXlES6anPB1onVWd16JDMNWZkuCuU/MYb4peLRsUcudtsgZxoigbRTibLXbug/rGjstIT0kWLxBy212ttoOU4ehSGZ/2zRUZOVYW/v2zRzZqFRawo+P+99yKvCJdImje3FwhihhkzrAkJPxTN8MQT8pwmqShqYwIz4u+hckBRlO8URVkluHoS0TgiakZErYhoFxGNctI2Y+wNxlgbxlibOnXqOOrXY48RHTlifs/hw0QdOhANHkxUUCC/74QTiF5+mUhVEz9XVaJnnkn87NRTxW2Ew0StW1t2+y94PETBIP4uKSF69lnx+xw9SlS7tv129WjVCs8xoqiIqGnT5M9bt8Z7iMDfu7AQlxlatiRq21Z7PyIiRcH/b79d/rtdu4guuIBo0SKieBz9XL48ee4YI4pGibxeIp+PqEcPogUL8LcQX35JdP31RKEQBuSCC4jmzSOqX9/8RURYsUI8USUlRGvXJn+uKM6fQYTFFwgkfhYKEXXqhAVrhfr1iaZOxeCddpq9figK0YEDiRPHUVqKybACY0QDBxLt3InfcMTjaDcrS/ussJBoyxZxO/E4Uc+eRGvWoM38fKL//Ido716i3FwsjtWriTp2tO6TGR56yJyQhMNEQ4di7M0gWqhEWKTr1pWvj+WB7FRI5UVEjYloVdnfFa72Of54+wxNKMTYVVeZt8eTjOmlbY8Hxk99HYd4HAV9jLltate27+mXm5uoKt23T24Izsx0NCwJWLVKrPOX2UJkOv927WAPvegijSE1josReXl4jqqivYsuEnvk5eZqBuCHH7ZvEM/M1NRCthGPlz8wyCyHDi97qMfChXK1j5kRMxSCi1f79lpZxLvvdlfKLTsbrqxmA6qqsH+Ypay4/fbkxWvE6NFydRPfKHbUUR6PeNwCAfOF5xQ1a8r7kJWFOAU7a+bpp+Wcv526yuUAVZHap4Hu76FENLHs79Mo0eC7iVJs8O3Rw9xIKtpLVmsmPx/EX9+u1wtPNb0Hz6FDkIDDYXzfqRNcHq0wdy4kVe4k0b8/9lJJiTwlSHkLvs+fD3sd94J69FFz54INGxjr2lUrH3nrrfCrr1s3cS+KxkUGEYH+/ntI/D4f5mbAAKiI7c7nOee4HpLyIS8vOTCE+/nLvGW4Hkv/AjVrYmBvuEFMMAYNSmwjFZg+HUYyjweEjUfr1a2LyTA7eQMBbcK4z7TRDSwe14wzsgPGTkAGv9esLzfdZM832Arnnit+Rmams3qh+/ZhTvXEIxSyTk6VAlQV8X+fiFYSdP7TDIfBCIKXz3oi6mbVllPiL6pvHQ5jPcvmcs4c8zbfeUfM1MVi4tQoH3yg1c+IRFD+ULZe/vhDHHDG18bLL4u9xZyoNEtL4U5a3jgeI959V2yvi8UQw+MUIokkFIJh2w7n7/eLmWzHiMexaZ1y09u3I9I1EMCLDBhgLvYdPgw3r2gUv7nsskRf/UWLtIRHtWtDf5yqwsh2sH69faKsX7wXXZTYTmGhOUdWt679aEev19xQHgphHMuLH34QG5HdJHdbtQob2u/H5rj7bveV2hygSoh/Ki833j5z52qF0hs0wHwNHiyPjbGqTPXgg+J15vNB+tPjm2/Eh8/QoeK277pLnmpi3TrQoTff1OoMtGjhrPbse+/BXZtn5x06NHWFzmU2S5l7pRVuvFFshwyF7NVTcBvzkIBPPoFfPc/XPWCA/Tz0q1bBFdPvx9WxY2pVEZWNr792X8hCr8uLxzGmontr1LBfJ5VvDCtDbCgk98IpKIDR284hOnSotiAVBaKvk81TWAjCw+u51q+vpbrYv99eoEw5UC2JvwibNye7GXLvkGAQUacyJs2sGNKMGYn3nnOOfM2KaEjHjuL7YzH7xaVk+Oor8UFkDFp1i08/lau53aQhb9tWPBaZmSjRalYQx+tFAkXXyMkBxyoiJL17W/8+O1vsx9qoUepOWzfYu9d5CUKOrVvd5R/JzEx2O33vPbEI+/XXYoOZ7OKueh06yKUJny85qrqkBNXUwmG8U40aCGCT4fPPxZvn//7P/vjdfHPy+IVCcB/lOZzOP999VLUF0sRfh5UrEUEtWs+BgNz1trAQfvd6ySEQYKxly0SbT1GRPDYgHBYzgWapYnw+MBtOCzjt24f11KqVuF3ZQeQEpaXYB8b9x6UTN/bTe+6RS2e//65JQbIMuX6/+0y+rH17OTEJhazdP599Vk6wpk512alyYPlyTATPTNm+PWNbtjhvp18/5wnKQiHxsyZPhm0hFMLmmTYNB0xBAVRgd98N/XgshoUvUrvoRUqZzzJRsi/3gw+K3+Pkk8V9bdlS3G4kYk9/OnWq/fHyeOwFAzlEmvgLMGiQWL0gyz7LGKS0W28FU5OVhWBLvdT20kvJ9YKNzJDICLprF9a7WXr45s3t2fY2b4Yh2Cp2yG7NEjM88YR4L3XsmFi6cc8e+yVMeTEXPQ1WFMxVMIhKZwcOYBxljiGNGrl4GZGxQX/JAiD0uOAC+e/btk1t3VorHDiQrK7xejE4Vpb4vXuxOHh/i4vhsdKgAQbdmPZa/y/fRP36mT8jHkcOm2gU4x6JwKXLOEYLFuDQikSQ8OnttxPvkRVs8PsTOf/iYnO1kmhcZN4+waB1gM369c4lpmAwtUW4WZr4CyFTtWRmulNXfPihOe0Ih+HpJsOSJch0KQsoUxTroLSiIvPEjXYOIruIx+WFpxo3xj0bN2qSPC+gs3ixddvr1iGzsTHhId/T55yDA9OMiZLizz9xwhiJzL33mg9YKGStn5WlKiUC0fzPf6xfPlUYPVpeTEYmhWzfDhUEn7CmTZEASo/SUoRV8+x4Ho9mWIvFoNd/+mkQ20OH4M1g5JLz8sCFi7h6MzWMCLJC04EAuA6O7GzzWgmicRGpAInw7lb2gjvvdB5FTQS9ZgqRJv4CyPzGQyH7XKoeZrroU05B7V0RcnPhHBIMiomd/nrmGfM+TJ1qL6W0z1f+NNBHj8qli1AIB8sxx4iT3NkthnT77WLpLByGd5bs/bxeQWMbNsAQGwxqxdV58exZs8y5NL+fsQcesO7wu++aD7zDSPVyYcgQ+eSIksyVloKzNg54JJK8IUTudIGA5uFTUKDpuiMRENbRo0Ewhw7F+MsWeu3azt5zx47k1AlEmOf339fui8fNubNgMJk7E6UKCIehd7TCpZdab0TZIZRCpIm/AHv2YJ3p13o4jBKMbiDjggMBc1tbt272g5esPFlefNFeOx06JP92925kl7Vrl4zH5cF0Z5/N2JQp8jKodlWbstijzEw4h8jGXFUN1ReLisRVZmIxiO8yDo8Iv7FK3cuxY4f5wFdUrU0RPv5YrOaIRBDgYcTs2eIJCwahntGjXz/xya+q4PQHDhRz9X36WNsO3FSs2rBB7MfNuQTGsAbMAuciEaTgWL06Ma/7woVQE9SsCRvAxIm4xyox2FNPiRkKRTHn8PjmPHwYz1m5Eu/335TSOZVXReXz37oVwVS1a4PpeeUV90GeMjVSgwbyeduxw5lrs1mqdsbgcmrVTjgMtSnHn3/CRhAMglZkZYlLzIrw2WdixmjOHEgWsnez62n05JPiNkIh1DN57z3xfuYZif/SNpidRKNGIfmPqKM+n7OggRdfNJ/Qs8+231Z5UVgIPZt+gFQVB51oQcoCWYiSc+K3aye+LzMTnjuyMbCTxM4qBXNBAQiiXqXz559yDqpbN9wzfbr5cxs1Qr9jMfx7773JxODFF7FJ+D3XXCP3mti/H7ELetVPOIwc6rK+BoNQs91/P/7m4+XzQQXnojJZtSX+R47A4cFNji6n+OUXzK3+UA+HYQuQ4ddf5dyr/vL77dWkeOUV8/3l9YLO8diSt96S+9R/8IG4xoER336LQMg6dcCpc6Zy0SI5k3fhhfacJWT7R1/D/JZbxIxUQibPsWPlBOmuu+QihtfrLMhLpmrhk/jTT8m/OXwYyb3cZugzQ04O1CzHHAMx7Ykn5JO6erU4mCsSwULRY/hw8akbCjG2YoXzoDD95Br9pvUYOxYTG4uBOPboAS596VL5RmreHLYMM4mjZk0xF/PEE9qzRZxOKMTY9dfL+7tjB2JE6tVDBPSYMVCHyQ7Ghx6CJ5Ns/DIyHLvsVkvi/+KLmroxFIIBUZQ+u7AQa8cqK6sRBw7AeKmX/pYsAaNRvz4I4hdf4B7Z4XP4sHiefT7GTj8de/akk0DU7cSj8ANItG6iUdAm3t/vvzdnUn0+jJ1bG2U8DvunLHht8GB77ezYAQ+rBg1gO3n9dY0hKyiQ1yRPKHLz66/ybJuTJiHHhWwQnBBlWQV7j4ex8eOTB+jhhzEYGRnocL9+9k5cxkDQliwpv7+uHr17J45TIACO0xiJunt3ch4eHsZeUiJO48Czb8oO2fPOEx+OHKKAlWCQsZ49YUAWza/fD07h8cfNuW1Z/pSaNbXny2ooBIPyot4ivPuueBxUFRJNnTryTRkOo8iIA1Q74j91qnidXHll4n0ffwxJNRbD2LdtC3WCGYqLYYgMBrU9e8cdicQ5Hsd60+/rK68UR3M//XTiWvB6sebcBoV265Z4oASDcPU2evZ07SpfY8b15jZdQmGhPOZBVcufasKs/GU4bJCSL7kkkQAEgzhhi4rkap9o1FkN2KIitKl/jqpqqgc9REngVNW6yhBPxBYKYXFFo44JghTFxTDInHwywsnvu0+u2962DVxtw4bQhU+YoKmT3n03cQN6POjna6/JpYtQCO8u43IuvFBOfPfuBcds3Eg1akC3e9NN4t96vUhoJUttrbc/yKKTw2FnsRNHj4Jj0a+RcFjLLmmVZtuO44EO1Y74y1SSwaDmabJkSfIB4fVi75rZVh55RCwhPv44EvQtXiwOZAyFwAmL1sknn4D5PPZYrFM3cTgcRUXwljv5ZDBtI0aIGZPTTjNfY/qra1f3/ZFlBggErG1mZigokEsuigJJjzEGMeHuu3FzKKRxoMOHawNz883iTZeR4fyEys3FoDdtikkYOVLsU3vCCfKB+eMPtLNgQfJi6Ngx+cQLh92Vc6tIzJgB//xGjWDo5Yfozz/jIBYFxJiVRWzWTDxesRhUVowhgIxvpBtv1MT5994TS2Q8qEcWK9Cihfb8Pn3EOtWsLOfR2wcPItK4cWOIs6NHa23I+sKZEatiPQZUO+IvK7wTjWoZNm+4QTyXkYh5fQWZhMgz6/IqXLL5C4Ww9u2meK4oyCJpRdfpp7t/TrduYp18o0bli3k6cEDO9QeDOnr7wgvilAL33qs1tmkTJtbo+lWuXBEWkC0kIqhTPB5NbLz4YiyY7dvlJ17nzhXXVz0OH0biLDtFY8yQlSXfpCLxe+BAsQ7RzgFdUADdv37swmEYbBmDuklvsFMU/J8Hia1bJ3ZtC4ch8axZA0NtKlRwP/0klo4CAQS4OEzqV+2I/4ABYkauRg2NKJi5EcqCvOJxZ6miZRdP3liZOHAAKeC5x9DOnVDNWkmZfj+kf7dYsSL5QAyH4YDjFH/8AU+inBzMxbHHJvdXURAF/Bfq1xe/WDic6M2xeTMkgCZNoGL4+mt3L7xlCwbaKh/HZZfZX0yBAE7RJUvkNTCNBaXdYN8+9F0mer74oqbLVFWI2E7zjnCYLbxgEJy23v6xZQv0oUbr/+uv23veoUOwsZx4ItRU48YlEtIlS2BAbtKEsSuu0HSGxcUwOBnnirsAt2iBfnAVnNG2w6FfvFZYsgTBdsbDyEk2xzJUO+IvWyf6eXn+efEBGwppmXznzMEasBNN7vTiqsqKRjwOOxzPiqmqkDwOHYIxdfBg7IcLLwRzpWeS/X7o7N16S/35J+wFs2czdt110HR06wbG0QkOHMBeUFW8QygE13Ojbcfrxf5bubLsh//5j3wCPB77xlU7yMsDQecDHQohylPmO7xqFTprt5RiMIiFLTIWejzlO6H1qjHe9+7dE3Pii0oa+v0w1LqBzMjOL1WFJ5YeW7cydtttWEgdO5p7BqUK33wjPnD9fkgvxvkLhxOLWmdnI+2HfvGK0ljokZsr1pdGIo6JRrUj/oxhnQwaBLXrpZcmGy0PHoQkp7e7RCLwtpo8GfPND/Njj9UIyty5mF/OybqVBCIRe0VeygtRXeFAABlMRfj6a+yrk06CkfqNN6BOthuVu3Ur9kvv3om0pFcvd4WmGBOnvQiHYStZsAD6/ZNPhirvr+Cu7dvNJ8BNGP2KFfBtFbnb9e8v7qRZTo/ff0en7RwA3PjctKn4e300q1OMGSP2kOBujPv3wz9dRqSdusoxBp9g/UaStW0VeBOPw5/7u+8SE0qlChMmyHMCyeatUyetL127JusnIxHzYBrZM0Mh8/UkQLUk/naQnQ2u+PjjwdF//rm8dkWdOprKaMUKxv7xD8SjdO3qLuNtzZqVk+VXZtgNBLRUNfE4DNUzZ0IqHTcO78T3JU95/eCDcoalsFAj+LK0GXr/fI69e8HArViR/F08jj0ts020bWvy4jJ/av5CTirh/Pkn0qOGw9pp9uST2vcffih/VpMm1u1fd511AFSNGlAdyBZbeapCybydAgEYJvWLwXjZSXgnw8qVjF17rZyDsoqz2LYNCzwS0eZl5Eh3fZFh0yZ5pKHMH9/r1cRTmYtpmzbyZ44cKTdoPfigo+5XOvEnoklEtLzs2kJEy8s+b0xER3XfvW6nvYoi/mPGaCrMaBQOBTK7UiwmN7T362dfeicCDfnggwp5pSTIVN6qCuZ4yxZwzXz/8BTjot9EIggEnTkTdim9ynTYMOvYHj0jZ1RHhcNwpeZS7c6dUKeatdm0qcmLd+8u/2Hr1s4GkVfSMk7itGnW2Rtr1LBuf9MmcAOygQ+H4bGydKlc5+/WKr9woTnxtUrHEI26F+k4LrlE3Hbz5ua/a9lSrHZJtefT4MGJ4rOq4tlWeVl4MSDRdzz7oQhmcSnffuuo61XK+RPRKCJ6pOzvvwq5O7kqgvj//HPy+CqKXMKLRiGNiVBaitQKVgeAokCFYUyUKMLBg4hrMRJZp7j+enG/jjkG7TZvbi/qXv8OGRmgQfXqwTbFmL1IZb2a/cMPk9VRfr+WG+zss83H0++HSp0xMJDTphnslGZJ1pzkTd+0SX4CdewIzliWvVFRkoNLZNi+HS5YZ5yBg+u66yBt9OypGUkKCsTEPxBwVmCEIy/PvEqXWS4cTmhTkal0xQq8Fx9HLmqa75qWUgAAIABJREFUGThXr5YfTKn2pojHEcDXoQM4lJEjEbTzzDPO6xwQ4T31dZhFEOWbatXKsYtclRF/IlKIaDsRnVj2/78N8b/mGjHDY1bLQ09c1q6FmmjtWu2zLVtgo5J5sRHZc04YN06TSGIxOBuI1CIyFBaC+fnyS6iJs7K0fezxYL1On4427WQBNbuyskCT7BwgLVtqfZTZ+4JBMKNmHH8wiLQP69bBEMydLUIhqN7/OixFFV/q1HGWwMnMw6ZFC3P1kqpCMkglxo9PdEsMBnGSu/Ee+Phj+bv5fPLAJo8HB59V4Wsn2LQJB53Xi2dHIrhklXl+/lnOcej1gTk54Ay+/z71etZ167CerBa/PplbMIjfmEWT5uTI4xL+/NNRF6uS+F+of3gZ8c8nomVENIeILjD57W1EtJiIFh9XAalwO3WyT+B8PriPMoYDv3PnRI+3rl0TXXy3bpUfAOEwpHc9Skuxlj/7TFz/lwjEzs7anTMHmoaMDFycOfvnP8FN9+unPX/OHHflWfUXT4N+3nnye7ze5GSSMrtlJIJxkNEkVYXac88eeAOK4p3+qqlcXAxDAx+QW25xrqIoLJR7ewwfjjqWoo3q9doT8fTYvBneBr/8Ys7hzZ2LiNC2bREUZbTGHzwIX9qZM8194GURt0TQxQ8ZIlZF1aplvhizs5Hb5Ntv7RPcvDwxMVdVcYHt/HzxRgmFEDbPmGa84lxU3brJm88teFpbOx4fPMLz7LOxZvRJ6UQQeWnwg2PUKEfdrBDiT0TfEdEqwdVTd884Irpf9/8gEdUq+/usMqkgw+pZFcH5ixwczA7uYJCxvn1BS0QlOe+5R2u7pEQeje7xJEbwb94MQsiTBcpUHbEYjJ9myM2VJ6/84QdIrgsWaHRFlhKF1+gwfibqF1eHLV2Kvzmt8Pm0co4DByYzwDK6Urs29rWIDgSD8MZiDIetTCuRcl5BFLLNU4cuX66JH/oT7P777bdfUoKIVE6oIhGISVZEQo/9+3FwDB2qtZORAVuCKIUzY+BcRcSfF2DevRtiJ1/wXGw0KyzNk+hxglunjqYbNMNHH8lVWsaU0hz/+U+iFKSqMNwdPIhnWnlulAcLF9ovOJ+RgfgJuxg1Sr64R4xw1M0q4fyJyEdEe4iokck9PxJRG6u2KoL45+fDRuZEZRcOy21y+hoMo0ebq0v1tcBbtrSnMsnIAEdshvffF69HXgaROyicdBKYojlz8K9+//j9kPaffRZ20WOPBQH/xz/kzAjPQ7RpE9Re7dvDbdzMA3DPHjzHSFd4Js4PPkj0BFRVMFrcyzInRz4X+nxcQqxZA2KzcKF9Heq4ceKTuVEjSBNvvglVyOWXQ9/mRDc7dqzYh/7SS+39/uWXtcIpogHJzJRHn/bqlXy/vgDzgQPIbnn++dCpmRFymaGydm2N4MbjuO/DDxN1ma+/LpdCzHKAz5sHruyCCxC8w13Ybr9dvLFiMVfBUkmYNcueoYsTDn3MhBEHD+LgnjIFhOm33+Q5kMyS3wlQVcS/KxHNMXxWh4i8ZX83JaKdRJRl1VZFefvk52PfdewIFYJZQj2rS1896sQTzdcBL9P5++/2Dx+rsqG5uch+aWWj0/c3GkW8zOTJIPKKgt/zanx6e0ZxMWxQevoSiTj2PEvAgQOoeXHRRVCdL1+e+P2vv8JgfdFF2NdGN+6TT05+L48HGgshCguhV1ZVvHw0CiOanSCGf/xDPJCxmPOoNSNEL0JkXQmIMfNUrvo+fv558m9zc+UZJt2kb7jtNjnBnTEDE9iunZZuNxyGJ9Vbb6F/Is+YSMQdse7TRz4WMjuCExw6JCbQiqJxJTwy18wo/t57aEcfWDRrFjazcbNdddV/h8GXiN4lokGGz64motVlbp5LiegKO22lgvj/8QfUEzNmyNWQ336LebDKiS+ab72btaioEL/atNGYIDNbojGy+y89tgBffKHVwHZ6aHk8clVTs2aJa62oCGPYtSukl6rOJTZ3Lt6Z77VQCEymNDHek08mb1i/H2H9VujSRTxIGRlaPpB4HJzZu+8mn2RmkBVeDoWs07sOHGgtOkaj6BPv46JF+D8voG683+9HFKpTmBHcTz/FSS7iTvx+TGSDBsnqs8suc1dh6eOPxRsiFEpdaP1rryWKzeEwpKZRo2BUvPhi2GRkB+mGDXIOPycHxrSePTEGkya5GodqHeQVj+MQ1ZcTbdjQUOavDDt2QF9sVkTduM98Pux/febf224Te//VqZOYUaCoSJzfi6eA7tYNBlozSW/PHve1M6yuaNQZDasKbNgAe0vnzsisarqvZUQ2EBDn29bjzTfFHLaqggvcuxcBR9EoFlo4jFPSTgqJQYPEi65xY2tOr3dv64nkhalzc1FognvSBAJyY47eiGUXZgR3zx5rsTQYxKLv0wf5dSZOdO/nXFQEVRDvjx0uyg0WLkSUdteuSK396aeM/fvfsAfFYlq66gEDkon344+L511/WJcT1Zr4v/9+8npUFHH8yIUXyrlgmSu3z6fLJVOGXbsSmRjO2IhsPrxAEH9uOAwtAFddWkHmsOHxwKZhVw0kujIyyq/R+FtB5oLl91unBigogHcNX0zcSMF9dy+/PHmRqKo8RbEeu3dDz8Yn0u9PzCpphkmTzEW+cFgzmN52m/2C0W6IT3ExfOGNBHfkSHxnx7ilqs6fK0NREQhAjx6QOn7+2X1bhw/jMBo/PrmgPWNaIZZYTHygRiJQ8egxbJh4DIJBeKSkANWa+LdtK98Teu5//35zQik7FAIBaASefx7eOPxwz8nBmu/aFTE7Tz8tV0esWoWApR49YFe0YkL1eOEFuSrq8cfhROKW+Mdiqc19VuW4/nrxKa7P226GwkLovXr1gji5eDE+P3JELi4ec4y9tg8ehLqgWzcsmKeegjg5aRJ0xjLVQXEx1Av6QykQgCfBDTckio1O3NscepX8haIiGLWuugqGnAULtO+skrnxjWYl7eTnW4+LHiUlSFo1blxiKorSUiT9GjcOBwN/bjwOrmfUKATx3Xcfxk7PyT/7rNZOPC7PI6+/2rVL7NecOfKDu3VrcelBh6i2xH/+fDmzEY3CqM7hpJi67AoEIFFww+yPP2ounOGwltDPKbZsAYM5YUJyRtgff5T3Z/p0SNtmQWeyy+fD/nKC0lIcgGPHYk+5UdVWKHbuRL4LTgR51Xq3uWk4Dh2Si4ZZWfbb+fFHLJZoVOPQAwFt8dx7r5gwFhdjsvr0gQ1g0SJx+7I+iq6hQ52Nwfr1EEM/+kjs2TJ2rLUYqijQlZth0SKt/B4fl3vukR8Y27bBTYyX6wuHoSP8809NTaeqIMJt20IKO/dca2KgLxW3bJk9t08jkxGPQ68rmpdgMDmrqQtUS+JfXCwuJcqvOnWSSy/KigU5JZp9+sD7T+QJFg47kz6ffFJz0YxG8Xt9vYGxY8Wcv8cDqYAxeNXZPdg8HnexMNnZWNvRKJ4VjYL5rOqiNUk4eBDpHfr0wUksEuHdoHlz8YD272/v9wUF1hF3kYj7OgOMyW0eoufMmYOxmjABi0xkJGMMG+eee7RFyr1W9AFua9fKDVN8YaoqfHTNIqJLSsQueZEIcqGIcP75yRtEVaETNUprwaC9nD18o/D8IgsWWLt96oPPjO8kUytkZtqbVxNUS+L/ww/y+fB6xQVb5s/HOuJz74RR0l9+Pwz1oucrCqRhO5B58UUimkQoSwDo8cA9mzEQYCdSzfXXO6+yJXLkCASgefhbYv9+GHFfeQUn3fjxCNBwm2e7VSvxYN59t73ff/21Pb9xu7mCRLBD1LxeTOZ332ml6XgJzGHDxP0WqS5q1dLc2h5+WLyZwmEcwv/4BwyxZr7MjEGFJRujXr2S7zcr9ya7nORo5xu5sNCc849GcdgcPox7P/sMhWB++sncFpIC+0e1JP4zZsjXSceO8t/t2AFdef/+UPe5ydvk9cKVWPZ8Xj3OCnfeKV8TPMhy3ToxYVfVRE+dN97AZ5zJMFvjqupc5SM7XMzWL1etjhwJbUEqquDZwrRpmgqAc39+P4ijqkLl4eT0Gz5cPpj169trY8oUe8RfX1B5xQropd9+256IZYeb8XjgFSTqSySSXBjjqqvE7WRkaAbrf/5TvOCclsr87jv5GHXpknz/7t32DdxOr0hE4yBLS8W6VUVB3pP334dkt2kTPEFiMRxKkQg8ki68MHl8vF550Q0HqJbEPz9fzJBEIlCD2EE8jnQwTvznFQVBSQcPyl147ZYw7NFD/py33tLuGzFCczfmDhYile2qVWDeune3ZnAuucReHzlkdMXvF99fWAjVK/fTj0bho89rcVcYDh2yPtFFRE4Gqyx0tWrZ75eVz24kAkISj0O3r6oaEYlGzVMIjB5tP32rTGwlSlZjXXaZvK+80hYv3GK8JxSCTt4u8vPlm8roScNx6qnJ9wcCiMw2jofXC19vq/S8kQiiijmDIEslQaSlqWUMtgTjM3nFsqwsbYwiETANVjEeNlAtiT9j4F5VVWPuolEwTk6S+8Xj2FMyryH95fNhr3P16Lvv4vmcMEYikNp//BHZYN9+29yl84or5M/SE3/GYAe75x5Ewk+Zgoj/F15IVqEWFprXDufXhRfaHyPG4Olo3DNeL95BhFGjkveLzAU3pZg0SR5Zp79at9a8ecxw111your1wr3SLiZMSFwwfFD44u3cGYt36lQxR1KzpjhvjVkRGOOlKIi2lY1R376JbX/0kZw7uvBCcLzxOGIZIhEt14iqwkXOLgoLwZEY1TiqijQYsk29ZImWgZGP44knYm5r1UokuA0a4P6GDZOfw+0BgwYhGlQvGc6fL+emTjwR95i5Ex5/PCS30aPBbY4bB+krBTAj/j76H0bfvkRnnUX03ntEBw4QXX45UefORB6P/TYUhahDB6I33yRq147o6NHE7z0eonPPJapTh6hTJ6LrryfKyyN6+WWiggKiSZOIFi0iOnSI6LLLiEaPxr8FBUShENF99xHNno1+GlG/vrhPwSBROIy/i4qIpk4lWreO6Pzz8Zxrr8WqiseJHn6YaPhwokcfxf3z5uFzM4TDRDfcYH+MiIhefZWobVu8e34+USRCFI0SjR0rvv/tt5PHkjGizZuJtm4lOv54Z883RUkJ0fTpRKtWEe3daz0ARETLlxNdeCHR1VcTTZiAhSBCcTE6LkJWFtHTT2OSpk0jWruW6NRTiXr0IAoEku+/4QYspvfeI8rJwYBu3IjFe9llRF26YMG98w4G2YjSUqK5c4k6dkz8/LPP8J0dKAreW3R/NErUr1/iZ337En3wAdE33ySPw6+/Er3yCtE//0n02mtE/fsTffop3v266zAWkydjXE45hahnT/G4EGEhzZuHsdQjK4toxgz5plYUorvuIlq9migjAwSgd29svo0bid5/H+virLPwbpEI0fr1RBMnEs2cSZSdTXTiifju/PPF68Djka8BjnhcvoZKSohq1CAaMsS8jVRDdir8na6Kyu0Tj8Mp4fHHcehaJVEcPlxLNsaZlyefhP790UeRjGzCBM0+5vPhHl5b+9VXxdLv8ceLVcyzZ8sDJg8cgEqzcWMwM4qiMVbG+1UV3miMgWkxUy1Ho/C2c5P48PBh2BbuvBO2VDM3ZVk6G1kGX9c4cACZ7Hjwjd1MjPyKRMR5cTi+/148SV4vfHR370aZRP3zGzfG525x+eXivmZkaJWe8vOxGB99FIVh7BgyPR4tT8lHH2liM19cffqI/Xc3bZJztbJaycZxicUwLrt2ie+X1SNVVTzfiHgcyd14BCX3RuKZA1OJRYvkah99gfuWLZO/DwbFhvQUgaqr2scMpaWQYDnB5PY/qxxSS5cy9sADSC38009wD+X0RCb9hsMwbJ51lpy+iHTdPDUF76Pfj36+8w6+793bng3P68XBxRhcUGWZcy+/HDasyvDPf+op8X4x5hMqNwYMEAdg6RNwWV0y3RVjmv7dqFYJBqHDuvhicU4QfWpXp/jkE/Fii8UwwRs2wF+XL0wzlQ+fhEgEv9GfvJs2gbsZNgy6Sv3ExOM4+B5+GJfsGSedJH6Hvn2TF6/PJzdyinT3fHNt2JB8/6xZcqNfXh6CfB5/HKkYRL93AplfeTicqJ9duRI6V84BRqNYI3bD+V0gTfwFkEXFZ2Qgsvr//g8Mn5l94MYb7dEPRUEZ0DPPFH8ficAYK0I8Dpvigw+CYOr3pl0vNo8nscrfl19izweDGlN31VWVG5R15AjsKJw+8WpcdtTsjmCm32/Xzt7pefnl1s9p2VLssSFrMxBw/06lpSCSnCvgXkq8yPT559sz7nq9MOAOGwYiZTeitLgYhl6+gfhCEh0sIt92xuReOH6/+PR/8knxMxo2FN/fv7+4/YwMLHbu+sY5qtdes/fuMnAJkB+CkQhsNEYR+uBBPGvYMBjvX38dm3PSJPPCOy5hRvz/p3X+ZnjvPbHaNDeXaNgwosJCqDibNoUaNRZLvvezz6DytQNFIbr5ZujmjxxJ/C4ri6h5c/nvzjkHl1uEQlDNclx2GdGGDUQffwyVZteucnWmXSxfDvWtx4NnnX66+f2qSjR/PlTF8+cTNWoEW0XNmu774BhLlsCAUlIivycSIbrppsTPDhyAnnvHDqL27YkuuohozRqQFz3s6tmdYv9+2Ab8fjzj7LOhQz/mGBhdFi2yZ9fw+4natCG65x5nz//wQ6Iff9Q2UGEh/lUUTOyRI9g8p51GNHSos7bNFqGiJI+x03ZKS4m+/FKzHZSWYhPfdx9Rr15EDRrYa7+khOirr0AcGjaEPWPTJmyqvXthd+nUKbkfmZlEd9xB9McfROedB8NXfj7G66GHiBYuBEGoDMhOhb/TVRGcv0xtaryCQah5Dh3CgT1kCLx4jhyx5zTCudp583Cwd+qkMWyc25VF41vBjtonGLRO07JjB6TfoUMRKGklAeTkQDoaMgR2jv/7Py0VNreF/Pvf7t4p5RgwQM6B8wIGssGLRBCUoR+QX37RUgVw0f2MM5xFBHo80J/rUViIxGFDhsBVS1Zj4KefEjnMaBR6ZV6eMi/PvjrLWJjaLs49V9xeNIrgmIcfRvCX2UKSqX1k6rBUqX18PrFU5KQYfX4+8hRxsZVHNi9ciHf++mtspqeflrtrtm+fLMkEAoll/lIASqt9kvHZZ/b99485Bj7o/P5oFMVPrr3WnupFX4ioqAhJFtu2RapufSpoK/CgqPvugw7/hx80m5mMthlzSRnBawZzKTwahZpaZvBdvRoehVxtqU9nbqQrXEV19CgOzMGDQdes6pOkFAcOwGdaRoRFhJKHJhsrfcXjGHDRyzZubN+PPisr0eB76BCIm56YZGTAwFRcDP3jnXeCmNStm9yeqiJlBUeHDvK+8MRvoZC7zJEzZ8rb5gTQDvbsQf3SWAztcYOvzBDuxuA7aBAWKPe8UFUcLiJmIBKBl4IdPP202GDVsCHWBz/UeF4mY0qOvDzzXFCHD+MgGjy43G6faeKvQ3ExDP79+yPltteLtWdmEwuFxDa7Pn3gzCDL4qooIPIcR46ghrPeDmc3c6+Zq/TkyXJmz+uV2y2KikDIRUyQMY6Ao00be44jwSDo0b592A/84AyHYfOS2Tg2b4aDyh13YJ7cpnP/C7/+Kq8wFQ5rxZx5tK+q4uEiPfLGjfIAsSZNtOhNr1d+Kvr9ye5M//ynWAd+yimodMUXjBmn0bp14iDKElv5fPBWEBFMKxQVmWcJrFvX2YQVFWHxcpc5MxezF18U11GWeRNxLFuGoJoxY3CwrFghJty85oAdyKQQ2ZWZCclu5kykhJAV+ObEv149bcPwg2vyZPvjqkOFEX8i6kOozBUnQy1eInqAiDYQ0Xoi6qL7vGvZZxuIaLid56SK+BcUQNoyEnqfD0yHqJ6uqsqJXSyGtT5tGggWJ3I+n1Y0ZutW7fkvvCBed/XqWata5s2Tu33u2CF33/T55Ptx3jz570RBXocO2dcoqCr22223Jf9GUXCIGPHll9jfnMZFo4h+d20He+SRxELAfECCQQzcU0/hvr17odN77rnEVK9GbN0qd+lr3hwLbOJE6Ly++QYEi/v98kukWjj2WHGb3EXRzoDruQzGIB7KUirwGgROYZbAzONJTOaWahQWIphLHxKelZVcTMMOnnlGmw9Vxb+yCGERWrRwRvxjMWwoqwjuYBDubiJGxeNxVWCnIon/qUR0MhkKsRNRcyL6jYiCRNSEiDYSkbfs2kio3xsou6e51XNSRfxlhU84sXrgAa0Ajz71hkxCq1Ejsf3SUhzuzz8PRsZItGS5v6LRxFrWItx/v3wvv/EGpAIjY+jzifNdcfzyi9ztXZTewak6eedOOQPq9yd6uMkij52mf/kL69eLJ9vvh6eFW/e+Fi2SJyIchj5LhC1bEETyyity/W/TpuJBsptkTKSyGDFCvHAjEYSWu8HixfIF4zQk3A3icaTEff55GJucFL4wYsMGiKZjxyK9sxO88oqzpF9c5ST7nsd/nHWWuXQXDiMC2QEqXO0jIP4PENEDuv/PJKJzy66ZsvtkV6qIf/v25nPUujWYt08+QfqBn37CeuvRQ5z91Wm67XPOkc+pVTLJBx4Qqyp5xbdDh3C48FTwsRiYCLNYotJS2DNE9EFW47pTp+R++HyaGoqnWOeFoGTqdr8/Me27mRRy/vnOxpkxhgkUqVK8Xvh3u8W6dVBvxGJoPxJBARY3UXEcIh2yx2MekMYNNeEwXBeN4t2qVWKCo6r2CtaLUFoqTgsdiUDiqS4oKtJcXfkcWHFCZt9nZCBpXTxufkh4PPYqw+lQFcR/LBH11/3/bSLqXXa9pfv8eiIaK2nzNiJaTESLjzvuOFdzZESnTuZzoA/G02PPHsZOOAH7neeqb9PGeaGd8ePFJSVPPNE6sMlsL3MDKi+m8tJLUKHYUb/++is4bv5uqgq1pKw/O3ZARcZpXzSKQ/WPPyBZvf56YpDm8OFiNVvnzontmjGVl15q/R5JGDtWPGCBQPnruHIO4eWXk43CbsDz1nAvnlgMp/Lzz4sJS9OmiMB9+WXzwAiudgqH0bY+HaxbLFmSvGBuvDHFkXn/JVi0CHMwcSISxcm4/iuuMJfiGjfW2rz5Zrl3mt8PlZUDlIv4E9F3RLRKcPXU3ZNy4q+/UsX5f/KJ/JA2SwzIGAjpN99A4vvhB3drvbQUHkJcCozFUJvCbibLl17SCtHzAkSpiFbPz0ft7bFj5YZYPYqLcbiMGZNY/U6EI0e0OtqcrjVtmixpl5aK908k4pJe7dolPy03b3bRYAWDR/ONGYPMfEVFGJR+/RIXTO3a9iaJY/t2nMhvv+2e4zdCv2Dc6Nz/F7FsGbwnOFfk98PrKi8Pm0RGeIxFXg4eNPdscpj7JK32KUM8Lq5hHQzCs6+yIlxXrACX/Nlnzmvk7twJ9e6ECZXsMlkOxONIfPjaazhAZRLJsmWw4ekr9N1+ezmYyo8/1kqg8aIk48e7fo8qw8qV7hdMGpWHo0fBqYwbl+zD/dhjyZHQwSDqEBiNg/E4PEi49xnnnOy6oupgRvwVfF8+KIryIxENY4wtLvv/aUT0ERG1JaJjiGg2EZ1IRAoR/U5EnYhoJxH9SkT9GGOrzdpv06YNW7x4cbn7ybF+PdH33xNt24bI0o4d5RG2aVQuCgsROHngALKpnnRSORvMzkZEZzyO0OY6dVLSzzTScIxt25ApdNMmRBK3by9O58uRnY3NUFpK1L07Ud26jh+pKMoSxlgb4XflIf6KolxJRGOIqA4RHSSi5YyxLmXfjSCiAURUQkT3Msa+Kfu8OxG9TPD8Gc8Ye9rqOakm/mmkkUYa1QEVRvwrC2nin0YaaaThHGbE30FZkzTSSCONNP5XkCb+aaSRRhrVEGnin0YaaaRRDZEm/mmkkUYa1RD/FQZfRVH2EdHWcjRRm4j2p6g7qUS6X86Q7pczpPvlDP+L/TqeMSb0b/6vIP7lhaIoi2UW76pEul/OkO6XM6T75QzVrV9ptU8aaaSRRjVEmvinkUYaaVRDVBfi/0ZVd0CCdL+cId0vZ0j3yxmqVb+qhc4/jTTSSCONRFQXzj+NNNJIIw0d0sQ/jTTSSKMa4n+K+CuK0kdRlNWKosQVRWlj+O4BRVE2KIqyXlGULrrPu5Z9tkFRlOGV0MdJiqIsL7u2KIqyvOzzxoqiHNV993pF98XQr8cURdmpe3533XfCsaukfr2gKMo6RVFWKIryhaIoNco+r9LxKutDpa4dk34cqyjKD4qirClb//eUfS6d00rs2xZFUVaWPZ+nfM9SFOVbRVH+KPu3ZiX36WTdmCxXFCVXUZR7q2q8FEUZryjKXkVRVuk+E46RArxStuZWKIpypusHyxL9/zdeVEkF5VPY31FE9EjZ342JaFUVjt1jhJoMxs+FY1eJ/epMRL6yv58jouf+JuNVpWvH0JcGRHRm2d8xQs2M5rI5reS+bSGi2obPniei4WV/D+dzWoXzuJuIjq+q8SKiC4noTP16lo0REXUnom8ItVHaEdEit8/9n+L8GWNrGWPrBV/1JKKJjLFCxthmItpAKDTTlog2MMY2McaKiGhi2b0VDkVRFCLqS0QfV8bzygHZ2FUKGGOzGGMlZf9dSESNKuvZFqiytWMEY2wXY2xp2d+HiWgtETWsir7YRE8imlD29wQi6lWFfelERBsZY+XJIFAuMMZ+IqJsw8eyMepJRLzg7EIiqqEoSgM3z/2fIv4maEhE23X/31H2mezzysAFRLSHMfaH7rMmiqIsUxRljqIoF1RSP/S4q0yUHK8TxatyjIwYQOB6OKpyvP5O4/IXFEVpTEStiWhR2UeiOa1MMCKapSjKEkVRbiv7rB5jbFfZ37uJqF4V9IvjGkpkwKp6vDhkY5SydfdfR/wVRflOUZRVgqtKuC4RbPbxWkpcdLuI6DjGWGsiuo+IPlIuHhI7AAACmUlEQVQUJaMS+zWOiJoRUauyvoxK5bPL0S9+zwhCVbgPyz6q8PH6b4OiKFEi+oxQOS+XqnBOdTifMXYmEXUjojsVRblQ/yWDLqNK/M0VRQkQUQ8i+rTso7/DeCWhosbIl+oGKxqMsUtc/GwnER2r+3+jss/I5HPXsOqjoig+IrqKiP4q4MkYKySiwrK/lyiKspGITiKilJUwszt2iqK8SURflv3XbOwqpV+KotxERJcTUaeyjVAp42WBCh8XJ1AUxU8g/B8yxj4nImKM7dF9r5/TSgNjbGfZv3sVRfmCoC7boyhKA8bYrjKVxd7K7lcZuhHRUj5Of4fx0kE2Rilbd/91nL9LTCOiaxRFCSqK0oRQTP4XQgH5ExVFaVLGBVxTdm9F4xIiWscY28E/UBSljqIo3rK/m5b1cVMl9IU/X683vJKIuOeBbOwqq19diehfRNSDMXZE93mVjhdV3dpJQpn96G0iWssYe1H3uWxOK6tfEUVRYvxvgvF+FWGcbiy77UYimlqZ/dIhQfqu6vEyQDZG04johjKvn3ZEdEinHnKGyrZsV7DV/EqCDqyQiPYQ0UzddyMI3hnriaib7vPuBO+IjUQ0opL6+S4RDTJ8djURrSai5US0lIiuqOSxe5+IVhLRirIF1sBq7CqpXxsIOs7lZdfrf4fxqqq1I+nH+QS1wArdOHU3m9NK6ldTghfUb2VzNaLs81pENJuI/iCi74goqwrGLEJEB4goU/dZlYwX4QDaRUTFZfTrFtkYEbx8Xi1bcytJ59Xo9Eqnd0gjjTTSqIaoLmqfNNJII400dEgT/zTSSCONaog08U8jjTTSqIZIE/800kgjjWqINPFPI4000qiGSBP/NNJII41qiDTxTyONNNKohvh/v9QqfAOWCsYAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -145,111 +145,113 @@ { "cell_type": "code", "execution_count": 6, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "array([[-2.39430024, 4.82135902],\n", - " [ 1.05475945, 0.56506096],\n", - " [ 4.33381523, -2.79295785],\n", - " [ 1.40967652, 0.23582632],\n", - " [-1.86874245, -1.94575582],\n", - " [ 3.49504802, 4.46631455],\n", - " [ 3.73910681, -1.20697797],\n", - " [-0.03709135, -2.10326967],\n", - " [ 3.45305859, -4.34793504],\n", - " [ 3.03208277, 3.74285745],\n", - " [ 1.5465798 , 3.50062332],\n", - " [ 2.2422928 , 1.0046194 ],\n", - " [ 3.03217811, -0.82377688],\n", - " [-4.53947789, 3.70865422],\n", - " [-3.25118429, -1.72249205],\n", - " [ 2.26245853, -4.28364219],\n", - " [ 4.94378489, 4.28009147],\n", - " [-4.69232032, -0.58696177],\n", - " [-4.89189465, 0.39817474],\n", - " [ 3.76075994, 0.31297542],\n", - " [-3.16975246, 4.25281293],\n", - " [ 1.17872066, -1.09249838],\n", - " [-1.95646119, 2.20465081],\n", - " [ 4.27728295, 1.53512327],\n", - " [ 0.05835676, 1.70723529],\n", - " [ 2.60309217, -0.45217353],\n", - " [-0.17392586, -0.27012307],\n", - " [-2.05830803, -2.06266253],\n", - " [ 3.9529746 , 3.42138605],\n", - " [-3.79939733, -0.21979507],\n", - " [-2.29925996, -3.34504866],\n", - " [ 2.82327177, 3.36741078],\n", - " [-4.36398037, 4.90756469],\n", - " [ 0.42676851, -0.06020275],\n", - " [ 3.17293673, 4.77796787],\n", - " [-2.94774218, 3.9356928 ],\n", - " [ 2.59485714, -4.80307843],\n", - " [ 2.36994981, -0.95851792],\n", - " [ 4.88820476, -1.35503075],\n", - " [ 0.94150698, 3.12143851],\n", - " [ 0.33869197, -4.67364091],\n", - " [-2.72092697, -0.16985042],\n", - " [-1.95475038, 4.82283169],\n", - " [ 2.45764492, 4.77215002],\n", - " [ 0.05377156, -2.35640137],\n", - " [ 4.35117408, 1.90279533],\n", - " [ 4.51945998, -3.4003176 ],\n", - " [ 1.8446393 , -3.17348665],\n", - " [-3.39891706, -4.60282665],\n", - " [-2.73001814, -2.3755611 ],\n", - " [ 3.70599397, -4.46493656],\n", - " [ 2.21630505, 4.14085098],\n", - " [-3.41340833, 3.44627966],\n", - " [-4.60977981, 3.96608819],\n", - " [-3.12045006, -2.6109695 ],\n", - " [-1.09736041, -1.80670439],\n", - " [-0.01733633, -1.72932242],\n", - " [-3.8893666 , -0.23795606],\n", - " [ 4.32262985, -2.60558145],\n", - " [-4.94835985, 4.9499789 ],\n", - " [ 4.83372946, 3.18143365],\n", - " [-2.97234861, 3.43734029],\n", - " [ 4.13213153, -4.01988738],\n", - " [ 2.50430662, -3.55060295],\n", - " [-1.13021843, -2.66490227],\n", - " [-3.52868187, 3.08060977],\n", - " [-4.60059847, 0.07549374],\n", - " [ 3.02082047, 4.1033937 ],\n", - " [ 3.17455034, -3.3296469 ],\n", - " [ 1.5874334 , -3.8626682 ],\n", - " [-4.83005533, 1.64085882],\n", - " [-3.67705824, -3.7420375 ],\n", - " [ 3.37141151, 4.31804914],\n", - " [-2.32695571, -1.65021845],\n", - " [-4.93262416, 0.30335477],\n", - " [ 3.09178415, -3.5606033 ],\n", - " [-0.99362255, 4.12845851],\n", - " [-4.93026694, 2.8832776 ],\n", - " [ 4.76078721, 4.52391074],\n", - " [-4.02330413, -3.919773 ],\n", - " [-1.2605584 , 2.07658856],\n", - " [ 4.76819758, -1.74330259],\n", - " [-3.27001856, 0.52159983],\n", - " [ 4.28932043, -3.4243422 ],\n", - " [-0.29372312, -1.51538405],\n", - " [ 2.46437149, -3.73790856],\n", - " [ 3.25584766, 4.32526613],\n", - " [ 4.41084634, -2.65951582],\n", - " [ 2.05089111, -2.77049322],\n", - " [-4.64295989, 1.17909785],\n", - " [ 0.73985808, 1.09177819],\n", - " [-3.08619219, -2.23259432],\n", - " [-2.21523998, -4.29746264],\n", - " [ 2.93142476, -3.074807 ],\n", - " [-2.23827727, 4.12204265],\n", - " [-2.88171529, -0.87372322],\n", - " [ 1.48659654, 3.79868869],\n", - " [-2.57574569, 3.29476101],\n", - " [-2.86541983, 4.08032984],\n", - " [-0.36862476, 3.67346937]])" + "array([[ 0.9118242 , -0.90045672],\n", + " [-3.94382217, -3.98527811],\n", + " [-1.18697017, 0.80016719],\n", + " [-1.85839332, 4.98952722],\n", + " [ 1.07261938, -0.90803895],\n", + " [-4.53758697, -4.30257501],\n", + " [-1.17461754, -2.39901897],\n", + " [ 2.34774061, -4.72969268],\n", + " [ 2.47747169, 2.77914928],\n", + " [-1.11617222, -4.16037991],\n", + " [ 1.4716821 , 0.88162217],\n", + " [ 1.78297491, -1.44883212],\n", + " [ 1.58199674, 4.6052321 ],\n", + " [ 3.99068967, -4.28056417],\n", + " [-0.16221614, -2.24741286],\n", + " [ 2.32933961, 0.28596881],\n", + " [-4.70438519, 2.44675435],\n", + " [-3.29578251, -3.86079991],\n", + " [-2.15187954, -3.38596945],\n", + " [-1.31823703, 1.6351425 ],\n", + " [-3.13072307, 1.32378202],\n", + " [ 2.76175045, -1.78814111],\n", + " [ 2.73156012, -2.64332344],\n", + " [ 1.64996223, 1.83230706],\n", + " [ 3.31936639, 0.2228602 ],\n", + " [ 2.26694906, 0.63193375],\n", + " [-2.51414076, 4.51560257],\n", + " [ 0.27215252, -1.67282386],\n", + " [-3.64167257, -0.14559744],\n", + " [-4.30424639, -3.37589157],\n", + " [ 3.01745299, 3.51058308],\n", + " [ 1.35223951, -3.06364559],\n", + " [ 4.94253085, -1.60716143],\n", + " [-4.36074161, -3.10693624],\n", + " [ 3.10628154, 3.49373291],\n", + " [-2.74311538, -4.29366027],\n", + " [-1.89979198, 1.41734176],\n", + " [ 1.9159884 , 1.23531441],\n", + " [-2.15457615, 1.1728522 ],\n", + " [ 4.60642972, 3.51823611],\n", + " [ 1.59513489, 0.56356173],\n", + " [-0.32910123, 1.31288732],\n", + " [ 1.36686363, 0.96076635],\n", + " [-3.9091037 , 0.96514774],\n", + " [ 4.37669631, -0.8778982 ],\n", + " [-3.13000071, -2.59206421],\n", + " [ 0.85730862, 3.96159211],\n", + " [ 2.91165311, 2.24727293],\n", + " [ 2.16991404, -3.35593884],\n", + " [-0.38522275, -1.67180888],\n", + " [-1.91436601, 3.62229527],\n", + " [ 1.31583377, -1.93048586],\n", + " [ 0.52322948, 0.91378549],\n", + " [ 0.69736315, 3.05799437],\n", + " [-2.33259618, 4.23093531],\n", + " [-0.01882034, -3.16737335],\n", + " [-1.85567722, -0.16700837],\n", + " [ 4.74309296, 3.57241682],\n", + " [ 0.96709141, -1.3653478 ],\n", + " [-2.98210548, -0.11106027],\n", + " [-3.86461267, 3.62193573],\n", + " [ 2.83976749, 2.94566098],\n", + " [ 3.76245288, -2.64933837],\n", + " [ 4.58809654, 1.23109222],\n", + " [ 4.84968707, -2.75644381],\n", + " [-1.54471238, 4.83523772],\n", + " [ 1.89738986, 3.61006974],\n", + " [ 1.89077461, 3.96448192],\n", + " [ 0.58264712, -3.48158676],\n", + " [-3.70699049, -1.55128007],\n", + " [-1.74431095, -1.26414456],\n", + " [ 4.95881191, -3.89363783],\n", + " [-3.49425476, 4.69333757],\n", + " [-1.13661494, -4.86289907],\n", + " [-0.80047881, -2.36304971],\n", + " [-2.22814782, -1.71573374],\n", + " [ 1.93181752, -2.84184699],\n", + " [-2.01459345, 3.04690045],\n", + " [ 1.77370361, 2.63596514],\n", + " [-1.62391354, 3.9170375 ],\n", + " [-1.16831826, -0.35730506],\n", + " [ 2.81017534, 4.68734215],\n", + " [ 3.50859446, 3.53556171],\n", + " [-3.00404934, -0.31632676],\n", + " [-3.19738369, -0.50324866],\n", + " [-1.14409139, 3.06816086],\n", + " [-4.67354814, 1.12585223],\n", + " [ 2.62801894, -2.11531302],\n", + " [-3.26599429, -2.09618265],\n", + " [-1.77991357, -3.54630238],\n", + " [ 1.83623843, -2.97438757],\n", + " [-1.90333658, 0.66363691],\n", + " [ 2.61705961, 0.10912733],\n", + " [ 1.76458691, 1.21896092],\n", + " [-2.5188483 , 0.77614823],\n", + " [ 1.75016557, 2.0592426 ],\n", + " [ 4.82096292, -0.0816393 ],\n", + " [-2.66030292, -2.54501908],\n", + " [ 1.90560799, -1.66171268],\n", + " [-1.30050042, -1.94071811]])" ] }, "execution_count": 6, @@ -284,6 +286,159 @@ "Hint 2: one way to proceed is to build a function `accuracy`, use the `map` function to calculate the accuracies of all the models, and then apply the `numpy.argmax` to retrieve the index of the best model." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 1\n", + "Write a function that, taken two list of labelling, builds the confusion matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[416. 99.]\n", + " [ 77. 408.]]\n" + ] + } + ], + "source": [ + "def confusion_matrix(labels1, labels2):\n", + " assert len(labels1) == len(labels2), \"Label arrays must be of same length\"\n", + " confusion_matrix = np.zeros((2,2))\n", + " for i in range(len(labels1)):\n", + " confusion_matrix[1 - labels1[i], 1 - labels2[i]] += 1\n", + " return confusion_matrix\n", + "\n", + "print(confusion_matrix(apply_linear_model(target_model, data), apply_linear_model(models[0], data)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 2\n", + "For each model in models plot the [FP,TP] pairs on a scatter plot\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAb2klEQVR4nO3df2zc9Z3n8ec7jgGH7nUCuFyYJE32GgVR5RJXFgSlfxS6JbTXAy+CZRGo0QldpFtWKj/O3WSPa2HFKqkiFba6Fbf0qJaqCAKUNVnCbsglWd21InSdtUPIQo6ASsgATVri7N3iso79vj/mM85kPN/54ZnxzPf7fT0kyzOf+Y79/Qbz9sfv7/vz/pi7IyIiyTWv3ScgIiKtpUAvIpJwCvQiIgmnQC8iknAK9CIiCTe/3ScAcMkll/iyZcvafRoiIrFy4MCBX7l7b7XjOiLQL1u2jOHh4XafhohIrJjZu7Ucp9SNiEjCKdCLiCScAr2ISMIp0IuIJJwCvYhIwnVE1c1sDI3k2LbrCO+PjXNZpofB9SsZ6Mu2+7RERDpOLAP90EiOzc8fYnxiEoDc2Dibnz8EoGAvIlKiptSNmf3CzA6Z2aiZDYexi8xst5m9FT4vDONmZt83s6Nm9pqZfaHZJ71t15HpIF8wPjHJtl1Hmv2tRERir54c/TXuvsbd+8PzTcAed18B7AnPAb4KrAgfG4FHm3WyBe+Pjdc1LiKSZo3cjL0ReCI8fgIYKBr/keftBzJmtqiB7zPDZZmeusZFRNKs1kDvwMtmdsDMNoaxS939g/D4Q+DS8DgLvFf03uNhrGmuubx8a4eocRGRNKv1ZuwX3T1nZp8BdpvZm8UvurubWV17EoZfGBsBli5dWs9b2ffmybrGRUTSrKYZvbvnwucTwF8BVwK/LKRkwucT4fAcsKTo7YvDWOnXfMzd+929v7e3vpm4cvQiIrWrGujN7EIz+63CY+A64HVgB7AhHLYBeCE83gF8I1TfrAVOF6V4mkI5ehGR2tUyo78U+KmZHQR+Dux0978FtgJfMbO3gN8JzwFeAt4BjgI/AP6g2Sc9uH4lPd1d54z1dHcxuH5ls7+ViEjsVc3Ru/s7wOoy478Gvlxm3IG7mnJ2EQqLorQyVkSkuliujIV8sFdgFxGpTk3NREQSLrYz+kaoIZqIpEnqAr0aoolI2qQudaOGaCKSNqkL9FpsJSJpk7pAH7Woap4ZQyMzFvCKiMRe6gJ9ucVWAJPu3L19lL4/eVkBX0QSxfLrm9qrv7/fh4eH5+z7DY3kuO+Zg0xWufZMTzcP3PB53aQVkY5kZgeK9giJlLoZPeSra6Zq+AU3Nj7B4LMHNcMXkVhLZaCH2hugTUy5KnJEJNZSG+ijcvXl5MbGWbd1L8s37WTd1r2a4YtIrKQ20A/0Zdly0yoyPd01HZ8bG8c5u8BKwV5E4iK1gR7ywX70O9fxyK1rWLigtoAPWmAlIvGS6kBfMNCXZeTb+YBvVtt7tMBKROJCgb7IQF82vw16DbSblYjEhQJ9iVoCuHH2Bq1y9SLS6VK5YKqS0u6WAN3zjE9dMJ9TH09gzJz093TP4zcTU2p5LCJzSgumZqlQjZPN9GBANtPDtltWM/Lt68hmespmdsYnpqYrcu7ZPsr9Q4fm+KxFRKKlrh99LaK2KazlBqwDT+4/Rv9nL9LMXkQ6gmb0daj1BqyDyi9FpGMo0NdhcP3Kmo9V+aWIdAoF+jrUk4q5LNPD0EhOrRNEpO0U6OuUrbH88prLe9n8/CG1ThCRtlN5ZZ2GRnLcs3206rqqbKaHXJn0zTyDqfBm9bsXkUaovLJFBvqy3L52KZU6JWQzPZE5+qmi3xDqdy8ic0GBfhYeGljFw7euKdv5sqe7i8H1K9XvXkQ6hgL9LBV3vixeXLXlplUM9GXr6nevCh0RaSUtmGpQ1OKqwti2XUd4f2yceWaRe9SqQZqItJICfQsV/xIYGskx+NxBJibPDfbd82y6Pn9oJDf9i0F9c0SkWWpO3ZhZl5mNmNmL4flyM3vVzI6a2XYzOy+Mnx+eHw2vL2vNqcfLQF+WbTevPmeDk0xPN9tuWc1AX3a6mZrKMUWk2eqZ0X8TeAP4V+H5d4GH3f1pM/vvwJ3Ao+HzKXf/nJn9fjju1iaec2xFpXkgn+Ip7pgJZ3ey0qxeRBpR04zezBYD/w74H+G5AdcCz4VDngAGwuMbw3PC618Ox0sFUTdkdaNWRBpVa+rmEeBbwFR4fjEw5u5nwvPjQGHamQXeAwivnw7HSwVRN2R1o1ZEGlU10JvZ14ET7n6gmd/YzDaa2bCZDZ88ebKZXzqWypVjFmryRUQaUUuOfh1wg5l9DbiAfI7+z4CMmc0Ps/bFQOGuYQ5YAhw3s/nAp4Ffl35Rd38MeAzyLRAavZC4Ky3HLK26UUWOiMxW1UDv7puBzQBm9iXgP7v77Wb2LHAz8DSwAXghvGVHeP5KeH2vd0JDnRiIullbur1hoSKn8B4RkUoaWRn7R8C9ZnaUfA7+8TD+OHBxGL8X2NTYKUqlihwRkWrqWjDl7n8H/F14/A5wZZljfgPc0oRzkyCq8iY3Ns66rXuVxhGRitTrJgYqVd5oYZWIVKNAHwPVGqQpjSMilajXTQwUV+SU28wEtLBKRKJph6mYWbd1b9lgbwZetHPV11cvYt+bJ1WOKZJg2mEqoaLSOF6yc9WP9x9TgzQRARToY2egL8uWm1ZNb3bSVWMbofGJSb713MHWnpyIdCSlbmJu+aadVTcqL2WAk98RSykdkfhS6iYlZtP0rPCLQSkdkXRQoI+5wfUr6e6afRdolWaKJJ8CfcxF7VxVD5VmiiSb6ugToFwztNt/8Ao/e/ujmt6vnvciyaYZfUI9+R+vZsVnLqx6nHreiySfAn2C7b73Szxy65pz0jqQr7oBWLigm/Pnz+Oe7aOs27pXN2VFEkqpm4SbTY97iN4ARUTiR4E+paJ63D+w4zCfnJnSJiciCaLUTUpFVdqMjU9okxORhFGgT6l6K21UgikSXwr0KVWuOVpPd9eMG7cFKsEUiS/l6FOquMd98U1X4JybtFBbCebQSE43cEU6lAJ9ikVV5EB9VTeVKngU7EXaT4FeZqj0C6CcqAqebbuOKNCLdADl6KVhUdsbRo2LyNxSoJeGRW1+UuumKCLSWgr00rDJiM1rosZFZG4p0EvDshGll1HjIjK3FOilYeVq8ru7jH/+5AzLN+0s2zBtaCTHuq17I18XkeZR1Y00rLQmP7Ogm1MfTzA2PgHkb8re+8wow+9+xL43T864SZsbG2cwbFyuKh2R5tPm4NJ0V/zXv+Hjiam637dwQTcj376uBWckkkzaHFzaZjZBHuDUxxNNPhMRAQV6EZHEU6CXpptt+Xy9m5qLSG2qBnozu8DMfm5mB83ssJk9GMaXm9mrZnbUzLab2Xlh/Pzw/Gh4fVlrL0E6ze1XLa37Pd3zjAdu+HwLzkZEapnRfwJc6+6rgTXA9Wa2Fvgu8LC7fw44BdwZjr8TOBXGHw7HSYo8NLCKO9YunV4Z22XGHWuXcsfapZSb7Gd6utl2y2pV3Ii0SF1VN2a2APgp8J+AncC/dvczZnY18IC7rzezXeHxK2Y2H/gQ6PUK30hVN+mhdsYizVNr1U1NdfRm1gUcAD4H/DnwNjDm7mfCIceBwv+tWeA9gPBL4DRwMfCrkq+5EdgIsHRp/X/qSzzV2xmzVvoFIhKtppux7j7p7muAxcCVwOWNfmN3f8zd+929v7e3t9EvJylW6IefGxvHOdsPX6ttRfLqWhnr7mNmtg+4GsiY2fwwq18MFP6vygFLgOMhdfNp4NdNPGdJuHpn57X0w9eMX9KslqqbXjPLhMc9wFeAN4B9wM3hsA3AC+HxjvCc8PreSvl5kWKzmZ1HbVxeGNeMX9KultTNImCfmb0G/D2w291fBP4IuNfMjpLPwT8ejn8cuDiM3wtsav5pS1JVmp1Hidq4vDA+m68pkiRVUzfu/hrQV2b8HfL5+tLx3wC3NOXsJHWqzc7LGVy/suKG5rP5moVUT25snC4zJt2nP2eV+pGY0cpY6ShRs3MH1jz4ctl0y0Bfli03rSKb6cHI98HfctOq6UBcbcZfqjjVA2c3UCl8VupH4kZtiqWjlJudF4yNTzD4bPl2xpXKNqvN+EuVS/WU0ubnEicK9NJRCoHzvmcOlt2KcGLKeWDH4boCbGm//GpVN5VSOqXHqZpH4kD96KUjLd+0k0o/mY/cuqZlAXXd1r0zNkcpJ9PTzSdnpmb8pVCcNhJpJfWjl1iLyp8XPLDjcMu2Iiy3NWKpnu4uzFA1j8SCAr10pMH1K+nuiu53PDY+0bK6+OKbu8A5zdng7M3esYiNUmpN/YjMFeXopSMVUh/3PjPKVA3ZxWbfHK2lJ0+h/LJUtb9GROaaZvTSsQb6snzv99ZUTaMUzPVMulyKp1I1j0i7aEYvHa1cxczH/3Km7P6ycz2TrreaR6RdVHUjsVNY0KRqF0m7pvajF+kkmkmL1EeBXmKpVRuYzIVyfXTUP0daSYFeUqFTVrCWpp1K++fAzPYOIo1S1Y0kXif1o6/UR0eLraRVFOgl8TqpH321ElAttpJWUKCXxJtNP/pWqVYCqsVW0grK0UviXZbpqWkF69BIjgf/+vB0jX6mp5sHbvh8U3Pmldowa7GVtIoCvSReLf3oh0ZyDD53kInJs+tKKvW/n63i0tCoqpv7hw7x1KvvTe9qddtVS3hoYFVTvr+kkwK9JF4tdffbdh05J8gXTEx50zcYqVQaev/QIX68/9j080n36ecK9jJbCvSSCtXq7ivl6+cyl/9kUZAvHVegl9nSzVgRKt8EncsbpFENSdrfqETiTIFehOj+993zTDdIJfYU6EXIp3a23byahQu6p8cyPd1su2X1nK5UvfC88i2Zo8ZFaqEcvUjQCf1z/vR3V3HfsweZLNptpWue8ae/q/y8zJ4CvUgHUWdOaQUFepEO0wl/WUiyKEcvIpJwCvQiIgmn1I1ITHVKj33pfAr0IjFUuoGJNi6RSqqmbsxsiZntM7N/NLPDZvbNMH6Rme02s7fC54Vh3Mzs+2Z21MxeM7MvtPoiRNKmk3rsS+erJUd/BrjP3a8A1gJ3mdkVwCZgj7uvAPaE5wBfBVaEj43Ao00/a5GU66Qe+9L5qgZ6d//A3f8hPP6/wBtAFrgReCIc9gQwEB7fCPzI8/YDGTNb1PQzF0mxqP472rhEyqmr6sbMlgF9wKvApe7+QXjpQ+DS8DgLvFf0tuNhrPRrbTSzYTMbPnnyZJ2nLZJug+tX0tN9blsEbVwiUWoO9Gb2KeAnwN3u/k/Fr7m7U2eDPXd/zN373b2/t7e3nreKpN5AX5YtN60im+nBgGymhy03rdKNWCmrpqobM+smH+SfdPfnw/AvzWyRu38QUjMnwngOWFL09sVhTESaqHQF7dBIjnVb96rcUmaoGujNzIDHgTfc/XtFL+0ANgBbw+cXisb/0MyeBq4CTheleESkBaLKLYff/Yh9b55U8E85y2ddKhxg9kXgfwOHgKkw/Mfk8/TPAEuBd4Hfc/ePwi+G/wZcD3wM/Ad3H670Pfr7+314uOIhIlLBuq17y26AbszMqS5c0M13/n1zNz2X9jCzA+7eX+24qjN6d/8p+Z+Xcr5c5ngH7qp6hiLSNFFlleWmcac+ntDiqpTRyliRBLgs01N2Rh9lfGKSP37+Ne575iCT7nSZcdtVS7QvbUKpqZlIApQrt4z6M7zg44kpJkPqdtKdH+8/xv1Dh1p0htJOmtGLJEC5DUuuubyXnxzIzWiVUMmTrx7TzdsEUqAXSYhyG5b0f/Yi7t4+WvPXcGc6BaRGacmh1I1Igg30ZemyakmcaGqUlgwK9CIJd9tVS6ofVEFxRU9hUdbyTTtZt3UvQyNaCxkHCvQiCffQwCruWLt0embfZcYda5fOGFvQXT4cZBZ0A2cXZeXGxnHyqZ27t49y+w9emZPrkNmrumBqLmjBlEj7DY3kGHzuIBOT58aE7nnGtltWs23XkcgSzjvWLlVpZhvUumBKM3oRAfL5/AvPm1mfMTHl09U8UZ569b3I16T9FOhFZNrp8Ymy4++PjU+ncMqZ7IDMgERToBeRaZU2NKkWy3VjtnMp0IvItEobmkTN9gse2HFYFTkdSoFeRKZV2tCk2jaFY+MTMypylinodwStjBWRc5RbYQv52X5xz/taaYVt+2lGLyI1Kcz2Mz3RN2WjaIVteynQi0jNBvqyjH7nOh65dc056Z2FFSpyCiqVZ0prKXUjInUrt1/tPdtHy250UjDPbDpXX9xlUx0yW0+BXkQaNtCXZfjdj3hy/7HIYD/pzuCzB8GYXn2r/P3cUOpGRJrioYFVPBxSOlEmpnxGiwXl71tPM3oRaZrilM7yTTsrpnKKKX/fWprRi0hLVKu7n+2xUj8FehFpiXKrbMsprLyV1lHqRkRaongf26j2xsD0yltpHc3oRaRlBvqy/GzTtZE3aLOZHgX5OaBALyItV6lZmrSeUjci0nLFaRwtlJp7CvQiMieimqVJ6yl1IyKScJrRi0isDY3klBKqQoFeRGJraCR3To989c4pr2rqxsx+aGYnzOz1orGLzGy3mb0VPi8M42Zm3zezo2b2mpl9oZUnLyLptm3XkRkboah3zky15Oj/Eri+ZGwTsMfdVwB7wnOArwIrwsdG4NHmnKaIyExRPXLUO+dcVQO9u/8v4KOS4RuBJ8LjJ4CBovEfed5+IGNmi5p1siIixTIRG56od865Zlt1c6m7fxAefwhcGh5ngfeKjjsexmYws41mNmxmwydPnpzlaYhIWg2N5Ph/vzkzY7y7y7QQq0TD5ZXu7lBzN9Li9z3m7v3u3t/b29voaYhIymzbdYSJqZmh58Lz5utGbInZVt380swWufsHITVzIozngCVFxy0OYyIiTRWVhx8bn2Dd1r0qtywy2xn9DmBDeLwBeKFo/Buh+mYtcLooxSMi0jRReXgjX2bpnC23LOxVm1a1lFc+BbwCrDSz42Z2J7AV+IqZvQX8TngO8BLwDnAU+AHwBy05axFJvXKN0oyZeWSVW9aQunH32yJe+nKZYx24q9GTEhGpplyjtKi+92kvt9TKWBGJrdJGaeu27i0b7NNebqmmZiKSGPX2vR8aybFu616Wb9rJuq17E5vLV6AXkcQY6Muy5aZVZDM9GPkdrKK2Kiz0ySm+cXv39lH6/uTlxAV8y6fV26u/v9+Hh4fbfRoikiJRaR44e1M32+HlmWZ2wN37qx2nGb2IpFKlG7SF6W9ubJx7to9y/9ChuTmpFlGgF5FUqvUGrQNP7j8W63SOAr2IpFK5G7dRHGJdi69ALyKpVLhxm+kp3wGzVJxr8RXoRSS1BvqyjH7nupqCfZxr8RXoRST1To9PVD3m/dPjsb0pq0AvIqlXy2zdHX68/xjLYri4SoFeRFKvnhuzkC+7HHzuYGyCvQK9iKReuRW11UxMOg/+9eHWn1wTqKmZiAgzG6T9m80vMVmlc8Cpj6vn9juBZvQiImXcdtWS6gfFhGb0IiJlPDSwCoCnXn0vcmZfaw1+u2lGLyIS4aGBVby95Ws8cusauufZOa91zzMeuOHzbTqz+mhGLyJSRbndrDq5q2UpBXoRkRqU3qyNEwV6EZEmGBrJdeyMX4FeRKRBhd2qxicmgfyCqs3P59sldEKwV6AXEWnQtl1HpoN8wfjEJNt2HWGgL9v22b4CvYhIg6JaGL8/Nt4Rs32VV4qINCiqKdplmZ6Ks/25okAvItKgck3Rerq7GFy/MnK2nwuz/bmgQC8i0qByTdG23LSKgb5sxRbIm58/NCfB3rxK05650N/f78PDw+0+DRGRpivN0ZfKZnr42aZrZ/W1zeyAu/dXO043Y0VEWqhww/Xu7aNlX5+LvWiVuhERabGBvmxkj/u52ItWgV5EZA5E7WL1z5+caXmeviWB3syuN7MjZnbUzDa14nuIiMRJ4YbtwgXntjYeG5/gnu2jLd14vOmB3sy6gD8HvgpcAdxmZlc0+/uIiMTNQF+WBefNvDXqwJP7j7VsZt+KGf2VwFF3f8fd/wV4GrixBd9HRCR2om6+OrRsEVUrAn0WeK/o+fEwdg4z22hmw2Y2fPLkyRachohI56l087VVFThtuxnr7o+5e7+79/f29rbrNERE5tTg+pVYxGutqsBpRaDPAcW76i4OYyIiqTfQl+X2tUtnBPtCy4RWaEWg/3tghZktN7PzgN8HdrTg+4iIxNJDA6t4+NY1ZVsmtELTV8a6+xkz+0NgF9AF/NDdDzf7+4iIxNlcbk3YkhYI7v4S8FIrvraIiNRHK2NFRBJOgV5EJOEU6EVEEk6BXkQk4Tpi4xEzOwm8W8dbLgF+1aLTiYM0X7+uPb3SfP1R1/5Zd6+64rQjAn29zGy4ll1VkirN169rT+e1Q7qvv9FrV+pGRCThFOhFRBIuroH+sXafQJul+fp17emV5utv6NpjmaMXEZHaxXVGLyIiNVKgFxFJuNgF+qRvPG5mPzSzE2b2etHYRWa228zeCp8XhnEzs++Hf4vXzOwL7TvzxpnZEjPbZ2b/aGaHzeybYTwt13+Bmf3czA6G638wjC83s1fDdW4P7b8xs/PD86Ph9WXtPP9mMLMuMxsxsxfD8zRd+y/M7JCZjZrZcBhrys9+rAJ9SjYe/0vg+pKxTcAed18B7AnPIf/vsCJ8bAQenaNzbJUzwH3ufgWwFrgr/PdNy/V/Alzr7quBNcD1ZrYW+C7wsLt/DjgF3BmOvxM4FcYfDsfF3TeBN4qep+naAa5x9zVFNfPN+dl399h8AFcDu4qebwY2t/u8WnCdy4DXi54fARaFx4uAI+HxXwC3lTsuCR/AC8BX0nj9wALgH4CryK+InB/Gp/8fIL/nw9Xh8fxwnLX73Bu45sUhmF0LvAhYWq49XMcvgEtKxprysx+rGT01bjyeQJe6+wfh8YfApeFxYv89wp/ifcCrpOj6Q+piFDgB7AbeBsbc/Uw4pPgap68/vH4auHhuz7ipHgG+BUyF5xeTnmsHcOBlMztgZhvDWFN+9luy8Yi0jru7mSW6JtbMPgX8BLjb3f/J7Ozumkm/fnefBNaYWQb4K+DyNp/SnDCzrwMn3P2AmX2p3efTJl9095yZfQbYbWZvFr/YyM9+3Gb0ad14/JdmtgggfD4RxhP372Fm3eSD/JPu/nwYTs31F7j7GLCPfLoiY2aFSVnxNU5ff3j908Cv5/hUm2UdcIOZ/QJ4mnz65s9Ix7UD4O658PkE+V/yV9Kkn/24Bfq0bjy+A9gQHm8gn7sujH8j3IFfC5wu+jMvdiw/dX8ceMPdv1f0UlquvzfM5DGzHvL3J94gH/BvDoeVXn/h3+VmYK+HhG3cuPtmd1/s7svI/3+9191vJwXXDmBmF5rZbxUeA9cBr9Osn/1234CYxQ2LrwH/h3zu8r+0+3xacH1PAR8AE+TzbneSzz3uAd4C/idwUTjWyFchvQ0cAvrbff4NXvsXyecpXwNGw8fXUnT9/xYYCdf/OvDtMP7bwM+Bo8CzwPlh/ILw/Gh4/bfbfQ1N+nf4EvBimq49XOfB8HG4ENua9bOvFggiIgkXt9SNiIjUSYFeRCThFOhFRBJOgV5EJOEU6EVEEk6BXkQk4RToRUQS7v8Dy9a5q4xXBnoAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "confusion_matrices = [confusion_matrix(target_labels, apply_linear_model(model, data))for model in models]\n", + "\n", + "fp, tp = list(map(lambda cm: cm[1,0], confusion_matrices)), list(map(lambda cm: cm[0,0], confusion_matrices))\n", + "plt.scatter(fp, tp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise three\n", + "By looking at the plot, which is the best model?\n", + "\n", + "Answer: The best model is the one at the top left corner, which has the highest TP/FP ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise four\n", + "Find the model with the best accuracy and compare it with the target model, is it close? Is it the model you would have picked up visually from the scatter plot?" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plot best: [ 4.37669631 -0.8778982 ], Accuracy best: [ 4.37669631 -0.8778982 ], with accuracy: 0.986\n" + ] + } + ], + "source": [ + "def accuracy(confusion_matrix):\n", + " return sum(confusion_matrix.diagonal()) / sum(sum(confusion_matrix))\n", + "\n", + "models_acc = list(map(lambda m: (m[0], accuracy(m[1])), zip(models, confusion_matrices)))\n", + "models_acc = sorted(models_acc, key=lambda ma: ma[1], reverse=True)\n", + "\n", + "plot_best = models[np.argmax([t / f for t, f in zip(tp, fp)])]\n", + "accuracy_best = models_acc[0]\n", + "\n", + "print(f'Plot best: {plot_best}, Accuracy best: {accuracy_best[0]}, with accuracy: {accuracy_best[1]}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 5\n", + "Yes, because the models were generated with a uniform distributions of variables of range [-5;5]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([ 4.37669631, -0.8778982 ]), 0.986)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb new file mode 100644 index 0000000..8ce0ed0 --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/1/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb @@ -0,0 +1,326 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Experiments with the one vs rest multiclass classification scheme" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from sklearn import datasets\n", + "from sklearn.multiclass import OneVsRestClassifier as OvR\n", + "from sklearn.svm import LinearSVC\n", + "import numpy as np\n", + "import copy\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "digits = datasets.load_digits()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will use the \"Optical Recognition of Handwritten Digits Data Set\" from UCI (included in scikit learn and already loaded on the previous line). Let us plot the first 10 images in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAADQCAYAAAAu/itEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAT/ElEQVR4nO3dQWwc9fnG8ef9Z3FTKDW0DlHrJDgWJJUlFJranJAgUkEUDuFSxA16CRekwoncmt7CjUj0AKpockGoHEI4ICBVEzgaW00IUBxMME1WrUnUYkVRacLq/R+y1Etm5ze7453d1/X3I1Uk+9qe109m3242r2fM3QUAiOv/Bt0AACCNQQ0AwTGoASA4BjUABMegBoDgGNQAEFytkw8yswckHZC0TtLv3X1/6uNHRkZ8bGys62b+9a9/Jevnzp3LrX3/+9/PrW3atCm3tm7duuLG2jh9+rQuXrx4WhVnUmRubi631mg0cms//vGPc2s33XRTqV6WlpY0Pz/fkLSgAWZy8eLF3Nqnn36aW/vud7+bW9u+fXvpfmZnZ5ckLaqDc6VsJv/4xz+S9Xq9nlsbGhrKrU1MTOTWyj53pO4ykao7V1LPkc8++yy3dtttt/W8l4WFBV24cMHa1QoHtZmtk/Q7SfdJOifpPTN73d0/yvucsbExzczMdN3oq6++mqw/88wzubX77rsvt7Z/f/45cPPNNxc3do1Go6Hrr79ekn6hijMpcu+99+bWvvzyy9zab3/729za7t27u+6j0Who27ZtkvSRpEkNMJPjx4/n1h5++OHc2p133lnqa6Y0Gg3VarX16vBcKZvJs88+m6zv3bs3tzY6Oppb+/Of/5xbK/PckbrPRKruXEk9Rx5//PHc2muvvdbzXiYnJ3Nrnbz1cZekeXc/4+6XJb0iqftn8v+Q6elprV+/XmSybHp6+ptXGZfJZNn09LQk/YdzZRmZdK+TQT0q6WzL7881H1uz6vW6rrvuutaHyKRe1+bNm1sfWvOZSP99y+Fyy0NrPhcy6V7P/jHRzPaY2YyZzZw/f75XX3ZVI5MsMskik/bIZVkng7ouqfWl0qbmY9/i7i+6+6S7T27YsKFX/YU0OjqqK1eutD5EJqOjOnu29S9eZCL99/3f1n+ty+RCJpwrRToZ1O9Jut3MtprZkKRHJb1ebVuxTU1N6auvvhKZLJuamtInn3wiSUNksmxqakqS1nOuLCOT7hVufbj712b2pKS3dHWV5iV3/7CKZlJbHVJ6XSa12veDH/wgt/bHP/4xecxf/vKXmcdqtZq2bNmi+fn5yjMpklqle+edd3Jrx44dy62V2fqo1Wp6/vnn9dBDD22T9FdVmMmJEyeS9V27duXWhoeHc2sLCwtlW8pVq9Uk6W/qwfMntblRdB6/8MILubUnnngitzY7O5tb+/nPf548Zp5eZrJSBw8ezK2ltoD6raM9and/Q9IbFfeyqgwPD8vdtw26j0gefPBBSfrA3fP3jNamJTLJIJMu8JOJABAcgxoAgmNQA0BwDGoACI5BDQDBdbT10UupdZ/U+p2UvvLZ+Ph4bi11waZUP1L79bx+KlpFK3uxoEirR90quiDOjh07cmupizKlLlQVwZ49e3JrRautP/vZz3JrW7duza2VXcGLInXRJSm9nvfUU0/l1layylnmKoC8ogaA4BjUABAcgxoAgmNQA0BwDGoACI5BDQDBMagBILi+71GnLke6c+fO5OemdqVTUjukETz33HO5tX379iU/d2lpqdQxUzfFjS613yql91RTn1vm8q79lDr/z5w5k/zc1M8opHalU8/Xsje37afUnrSU3odO3dw2dR6lLj0sFT+n2+EVNQAEx6AGgOAY1AAQHIMaAIJjUANAcAxqAAgu1Hpe6nKkVR0zwopRatUntSIkle+/6PKPg5bqL7XOKBVfBjVP0SpXZEWrq//85z9za6n1vFTtT3/6U/KY/XpuHTlyJLf29NNPJz/3scceK3XMAwcO5Nb+8Ic/lPqaKbyiBoDgGNQAEByDGgCCY1ADQHAMagAIjkENAMF1tJ5nZguSLkpqSPra3SfLHjC1slN0R/CU1ArezMxMbu2RRx4pdbxTp07JzE6pB5kMQuru5iu8Q/kdvcgldYWx1GpUkdTqXtFVz1agJ5msROp5l1qze+KJJ3Jrzz77bPKY+/fvT5V7lsnw8HCpmiQdOnQot5Z6jqSk7nRfVjd71Lvc/ULPO1jdyKQ9cskikywy6RBvfQBAcJ0Oapf0tpnNmtmeKhtaZcikPXLJIpMsMulQp2993O3udTO7RdJRM/vY3d9t/YBm2HskacuWLT1uM57t27fr/fff30kmGR+7e24uZEImTclMpDWbS1sdvaJ293rzv19IOizprjYf86K7T7r75IYNG3rbZUBDQ0OSyKSNK1J+LmRCJk3JTJq1tZhLW4WD2sxuMLMbv/m1pPslfVB1Y5FdunRJjUZDEpm0unTpktQ8p8jlKjLJIpPudfLWx0ZJh83sm49/2d3fLHvA1FW+Umt0kvTqq6+WqqU888wzXX/O4uKi5ubmZGYn1YNM/lcsLi5K0k96kUvqqoHHjx9Pfu7Jkydza6nVqdTNbX/1q18lj5n3ub3MJGXv3r3Jetkb2B49ejS3Vna1tdeZpG7UXHSVyNQKXurrpq66V8WaZ+Ggdvczknb0/Mir2Pj4uCYmJjQzM0MuLZr/J/zRatsprxKZZJFJ91jPA4DgGNQAEByDGgCCY1ADQHAMagAIjkENAMH1/S7kqT3qossmpnaeJyfzN31WcvnUQSvayUzt/qbuzpzaRS6683k/pC61WnT5yVQ9dfnUVF5jY2PJY6b+HPqh6I7fe/aUu5xGalf6hRdeKPU1I0k9v5aWlnJr/X6O8IoaAIJjUANAcAxqAAiOQQ0AwTGoASA4BjUABGfu3vsvanZe0ufN345IinQDy171c6u7d3w18+CZSAPI5ZpMetlDr5BJFs+frMozqWRQf+sAZjORLmcYoZ8IPVwrQk8RemgVoZ8IPbSK0E+EHlr1ox/e+gCA4BjUABBcPwb1i304Rjci9BOhh2tF6ClCD60i9BOhh1YR+onQQ6vK+6n8PWoAwMrw1gcABFfpoDazB8xszszmzSx9m+Q+MLMFMztlZifMLH3L8+p6IJNsD2SS7SFUJhK55PTTn0zcvZL/SVon6VNJ45KGJJ2UNFHV8TrsaUHSyACPTyZksiozIZfBZlLlK+q7JM27+xl3vyzpFUmDvWjv4JFJFplkkUl7azaXKgf1qKSzLb8/13xskFzS22Y2a2blrqS+MmSSRSZZETORyKWdvmTS9zu8DNjd7l43s1skHTWzj9393UE3NWBkkkUm7ZFLVl8yqfIVdV3S5pbfb2o+NjDuXm/+9wtJh3X1r1L9RCZZZJIVLhOJXNrpVyZVDur3JN1uZlvNbEjSo5Jer/B4SWZ2g5nd+M2vJd0v6YM+t0EmWWSSFSoTiVza6Wcmlb314e5fm9mTkt7S1X+tfcndP6zqeB3YKOmwmUlXv++X3f3NfjZAJllkkhUwE4lc2ulbJvxkIgAEx08mAkBwDGoACI5BDQDBMagBIDgGNQAEx6AGgOAY1AAQHIMaAIJjUANAcAxqAAiOQQ0AwTGoASA4BjUABMegBoDgGNQAEByDGgCCY1ADQHAMagAIjkENAMExqAEgOAY1AATHoAaA4BjUABAcgxoAgmNQA0BwDGoACI5BDQDBMagBIDgGNQAEx6AGgOAY1AAQHIMaAIJjUANAcAxqAAiOQQ0AwTGoASA4BjUABMegBoDgGNQAEByDGgCCY1ADQHAMagAIjkENAMExqAEgOAY1AARX6+SDzOwBSQckrZP0e3ffn/r4kZERHxsb67qZubm5ZP073/lObq3M8Vbi9OnTunjx4mlVnEmRVGaNRiO3NjEx0fNelpaWND8/35C0oAozWVxcTNZT3/eXX36ZW/v3v/+dW1u3bl3ymHfccUdu7cSJE0uSFtXBuVI2k7Nnzybrqe/7hz/8YW5t48aNubWiTFJmZ2c7zkQqn8v8/HyynjpXtm/f3vXxVmJhYUEXLlywdrXCQW1m6yT9TtJ9ks5Jes/MXnf3j/I+Z2xsTDMzM103eu+99ybrqT+ogwcPdn28shqNhq6//npJ+oUqzqRIKrPUk7PXvTQaDW3btk2SPpI0qQozee6555L11Pf92muv5dZOnjyZW/ve976XPOaxY8faPt5oNDQyMrJeHZ4rZTN56qmnkvXU9/3444+X+ro33XRTYV/tNBoN1Wq1jjORyufy8MMPJ+upc+X48eNdH28lJicnc2udvPVxl6R5dz/j7pclvSJpd496W5Wmp6e1fv16kcmy6elp3XbbbZJ0mUyWzc7OStJ/OFeWTU9PS2TSlU4G9aik1r9XnWs+tmbV63Vdd911rQ+RSb2uzZs3tz605jORpL///e+SdLnloTWfS71el8ikKz37x0Qz22NmM2Y2c/78+V592VWNTLLIJItM2iOXZZ0M6rqk1pdKm5qPfYu7v+juk+4+uWHDhl71F9Lo6KiuXLnS+hCZjI5e+w9aaz4TSfrRj34kSUMtD2VyWWuZjI6OSgWZSGsvl5ROBvV7km43s61mNiTpUUmvV9tWbFNTU/rqq69EJsumpqb0ySefSNIQmSzbuXOnJK3nXFk2NTUlkUlXCrc+3P1rM3tS0lu6ukrzkrt/WEUzCwsLyfo777yTWzt06FBu7dZbby19zHZqtZq2bNmi+fn5yjM5cuRIsp7K5De/+U2v28lVq9X0/PPP66GHHtom6a+qMJMiqW2E1MZIqpbaDig6pqS/qeLnz4kTJ0p/bmpjKrX5UHYrolarST3MJPUcLnr+pJi13ZSTJO3YsSO3tpI/izwd7VG7+xuS3uj50Vex4eFhufu2QfcRyYMPPihJH7h7/p7R2rREJhlk0gV+MhEAgmNQA0BwDGoACI5BDQDBMagBILiOtj76pegiL59//nlubXh4OLdW9sJFnfRUtZWs2BVdkGa1KroAUcq+fftya6k1r35foKdbd955Z7Je9oJmqfO/KJOii6z1StFzOOWee+7JraUy6/f5wCtqAAiOQQ0AwTGoASA4BjUABMegBoDgGNQAEByDGgCCC7VHXXSX4dTNR5eWlnJrqR3TQe9JFynaEU1dbrFotzayKi6vKRXfGDdP6uawUvoGsf1QdPyf/vSnubXU/njq+VHmruBVWEkfqT/X1M8hrGR3uwxeUQNAcAxqAAiOQQ0AwTGoASA4BjUABMegBoDgQq3nFa1ApdayUnf+ffrpp8u2tKJLavZC0RpQajUptYqWWj2KsHaV6qHoLs9l1/dS51+/LtlZ1krWxVJ3sv/ss89yaxHOEym9QphaX5Wkm2++Obf261//OreWOgdT645Sudx4RQ0AwTGoASA4BjUABMegBoDgGNQAEByDGgCC62g9z8wWJF2U1JD0tbtPVtlUnipWpIpWafKcOnVKZnZKFWdStMqTWq1KrWylVhb/8pe/JI9ZcFW+O3qRS+r7LlrjNLNSn1vhCl5PMkmthO3atSv5uam72aeeA6k1zqI/h4JztyeZFCla5UzVy159smiltyi3drrZo97l7he6PsL/NjJpj1yyyCSLTDrEWx8AEFyng9olvW1ms2a2p8qGVhkyaY9cssgki0w61OlbH3e7e93MbpF01Mw+dvd3Wz+gGfYeSdqyZUuP24xn+/btev/993eSScbH7p6bC5mQSVMyE2nN5tJWR6+o3b3e/O8Xkg5LuqvNx7zo7pPuPrlhw4bedhnQ0NCQJDJp44qUnwuZkElTMpNmbS3m0lbhoDazG8zsxm9+Lel+SR9U3Vhkly5dUqPRkEQmrS5duiQ1zylyuYpMssike5289bFR0uHmylNN0svu/mYVzRw5ciRZHx4ezq3t27ev1DFT60d5FhcXNTc3JzM7qYozKbppaWrNLrUelVrJKlofyltbWlxclKSfVJ1L0fpT6jy55557et1OUi8zSf15pr5nKZ1Z6lxI3RT34MGDyWPmPSf7dZ50IrWCl8os9b2XWb8rUjio3f2MpPS1AteY8fFxTUxMaGZmhlxajI+PS9JHg9qzj4hMssike6znAUBwDGoACI5BDQDBMagBIDgGNQAEx6AGgOBC3YX82LFjyfqBAwdKfd3HHnsstxb97tJFe9SpHdjUrmfq+y6zW95PRXcZP3ToUG4tdcfq6FK9F53Hqbttp3awd+/enVsr2mePoKjH1GVOU5cJTp2DZS+PmsIragAIjkENAMExqAEgOAY1AATHoAaA4BjUABCcuXvvv6jZeUmfN387IinSDSx71c+t7t7x1cyDZyINIJdrMullD71CJlk8f7Iqz6SSQf2tA5jNRLqcYYR+IvRwrQg9ReihVYR+IvTQKkI/EXpo1Y9+eOsDAIJjUANAcP0Y1C/24RjdiNBPhB6uFaGnCD20itBPhB5aRegnQg+tKu+n8veoAQArw1sfABBcpYPazB4wszkzmzezvVUeq8N+FszslJmdMLOZAfVAJtkeyCTbQ6hMJHLJ6ac/mbh7Jf+TtE7Sp5LGJQ1JOilpoqrjddjTgqSRAR6fTMhkVWZCLoPNpMpX1HdJmnf3M+5+WdIrkvIvbrs2kEkWmWSRSXtrNpcqB/WopLMtvz/XfGyQXNLbZjZrZnsGcHwyySKTrIiZSOTSTl8yCXWHlz64293rZnaLpKNm9rG7vzvopgaMTLLIpD1yyepLJlW+oq5L2tzy+03NxwbG3evN/34h6bCu/lWqn8gki0yywmUikUs7/cqkykH9nqTbzWyrmQ1JelTS6xUeL8nMbjCzG7/5taT7JX3Q5zbIJItMskJlIpFLO/3MpLK3Ptz9azN7UtJbuvqvtS+5+4dVHa8DGyUdNjPp6vf9sru/2c8GyCSLTLICZiKRSzt9y4SfTASA4PjJRAAIjkENAMExqAEgOAY1AATHoAaA4BjUABAcgxoAgmNQA0Bw/w/9yfPpDXP9eAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for index, image in enumerate(digits.images[:10]):\n", + " plt.subplot(2, 5, index + 1)\n", + " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us create a training set using the first 1000 images and a test set using the rest of the data." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5. 0. 0. 3.\n", + " 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8. 8. 0. 0. 5. 8. 0.\n", + " 0. 9. 8. 0. 0. 4. 11. 0. 1. 12. 7. 0. 0. 2. 14. 5. 10. 12.\n", + " 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.]\n" + ] + } + ], + "source": [ + "X,y = digits.data[0:1000], digits.target[0:1000]\n", + "X_test, y_test = digits.data[1000:], digits.target[1000:]\n", + "print(X[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "scikit-learn provide us with an One-Vs-Rest classifier that we already imported with name `OvR`. Let us use that classifier to fit the training set and to make predictions over the test set:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], + "source": [ + "binaryLearner = LinearSVC(random_state=0)\n", + "\n", + "oneVrestLearningAlgorithm = OvR(binaryLearner)\n", + "oneVrestLearningAlgorithm.fit(X,y)\n", + "predicted_labels = oneVrestLearningAlgorithm.predict(X_test)\n", + "\n", + "# n.b.: the above is equivalent to:\n", + "# predicted_labels = OvR(LinearSVC(random_state=0)).fit(X,y).predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9058971141781681\n" + ] + } + ], + "source": [ + "print (\"Accuracy: %s\" % (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Reimplement the OvR classifier by completing the methods in the following class [[1](#hint1)]:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "class OneVsRestClassifier:\n", + " def __init__(self, learner):\n", + " self.learner = learner\n", + " self.labels = None\n", + " self.data = None\n", + " self.classifiers = None\n", + " \n", + " def _fit_cls(self, one, labels):\n", + " from sklearn.base import clone\n", + " cls = clone(self.learner)\n", + " cls.fit(self.data, [1 if label == one else -1 for label in labels])\n", + " return cls\n", + "\n", + " def fit(self, data, labels):\n", + " assert self.data is None\n", + " assert self.labels is None\n", + " assert self.classifiers is None\n", + "\n", + " self.labels = sorted(set(labels))\n", + " self.data = data\n", + " self.classifiers = list(map(lambda one: self._fit_cls(one, labels), self.labels))\n", + " return self\n", + "\n", + " def predict(self, data):\n", + " predictions = np.array(list(map(lambda cls: cls.predict(data), self.classifiers))).T\n", + " assert len(data) == predictions.shape[0]\n", + " # np.where[0][0] is like list.index\n", + " return [self.labels[np.where(pred == 1)[0][0] if 1 in pred else 0] for pred in predictions]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the accuracy of your solution using the following code [[2](#hint2)]:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.8393977415307403\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], + "source": [ + "ovr = OneVsRestClassifier(LinearSVC(random_state=0))\n", + "predicted_labels = ovr.fit(X,y).predict(X_test)\n", + "print (\"Accuracy: %s\" % (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hint 1: Feel free to organize your code as you like (add as many methods as you believe are necessary).\n", + "\n", + "Hint 2: The scheme provided by scikit-learn is a little different from the one we have seen in the lessons. It is normal if your accuracy is not as good as the one obtained above (expect the accuracy to be between 0.8 and 0.9)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "learner = LinearSVC(random_state=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/anno3/apprendimento_automatico/esercizi/1/coverage_plots.ipynb b/anno3/apprendimento_automatico/esercizi/1/coverage_plots.ipynb index 0d2cab8..84fa5f7 100644 --- a/anno3/apprendimento_automatico/esercizi/1/coverage_plots.ipynb +++ b/anno3/apprendimento_automatico/esercizi/1/coverage_plots.ipynb @@ -59,13 +59,13 @@ { "data": { "text/plain": [ - "array([[-35, -99],\n", - " [ 46, -79],\n", - " [-42, -4],\n", + "array([[-60, -58],\n", + " [-54, 99],\n", + " [ 95, 99],\n", " ...,\n", - " [-15, 66],\n", - " [-79, -33],\n", - " [-61, 50]])" + " [ -3, -80],\n", + " [ 45, -64],\n", + " [ 14, 59]])" ] }, "execution_count": 3, @@ -110,7 +110,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 5, @@ -119,7 +119,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOxdZ5gUxdauyT3dM7PkJCIIiIFgQJAsKkYMKCqiIBjQew0YUMEIIogJRTGgCKgYMYACSlAEFURyBlkkg+Auedk4Xd+Pd8vu6a7qMDO7cL+d93n6Ydntrq6ucOrk46GUkgwyyCCDDCoWvMe6AxlkkEEGGZQ/MsQ/gwwyyKACIkP8M8gggwwqIDLEP4MMMsigAiJD/DPIIIMMKiD8x7oDTlCtWjVav379Y92NDDLIIIP/KSxZsiSHUlqd97f/CeJfv359snjx4mPdjQwyyCCD/yl4PJ6tor9l1D4ZZJBBBhUQGeKfQQYZZFABkSH+GWSQQQYVEBnin0EGGWRQAfE/YfD9XwalhKxcSciRI4Sccw4hkuTu+c2bCdm+nZCmTQmpUkV8XzxOyNKlhKgq3uN3OLOHDhGyYgX6F40SctZZhChKan2pCMjOJmT3bkKaNSOkUqVj3RuX2L2bkI0bCWnUiJA6dcr2XUVFhCxZgoV/5pmEeDzHri8ZJIJSmvJFCBlHCNlLCFmt+10VQsgsQsjG0n8rl/7eQwh5nRCSTQhZSQg52679c845h5YnNm6k9KefKP3nn9Ta2bCB0kaNKFUUSmMxSqNRSj/7zNmzBw5QeuGFlEoSpVlZ+PfRRylVVfO98+dTWrMm2o9GKa1WjdKffxa3nZtL6Zw5lD7yCNr1eiklBP+Gw5SOHp14/8GDlF50Ef4Wi1EaDFLauzel8bjjofh/g9xcStu318ZCkigdPJg/L5RSWlxM6W+/UbpgAaUlJeXbVxOKiii95RZtUYVClPbsid+XBaZMwXtiMUojEUpPOonSVaus+1JQQOnChZT++iulhYVl06/jCZs3g9j8/XeZNE8IWUxFdFv0BzcXIaQjIeRsA/F/kRAysPTngYSQF0p/vpwQ8n3pIXAeIWShXfvlRfz376f0/POxsRnBHTBAvLGtUFJCad26lHo8GGV2yTKIwezZ2j7goVs37Af9s4pC6YQJifcdOACCr7+PEOw14+GlqpQ++SS+Kxw2P8OuYDDx8Lj2WnNfCKG0ShVKV650Pzb/y7jkEkoDAfO8fPGF+d6ffsIYsUO5enXQtGOGxx83T3woBC4g3cjOxmI3Lprq1UHURX1RFCzeWAybcOrU9PfNKUpKwFnNnYtDKZ04coTSyy5LPPzuuivtHFWZE3+8g9Q3EP8NhJDapT/XJoRsKP15DCHkJt59oqu8iP9VV4Hw6dejJFE6dqz7tn76iU+UPR5KfT7MtyxTeuaZlO7enfjsgQN8YksIpU2bJt77/vvYL8b7wmFK33gj8d7PPuPfy7vat8czBw+ax8S4l1NhHPfupXTGDO0gVFVKlyyhdOZMHMbHE/bsEc9Lq1aJ9+7dyx/rSATzWy7YsIHSH36gdMcO/D8rSzyRM2em992PP24+JQnBphgzxvlClGVKt25Nb9/0yM6m9LvvKP38cxB5tpgXLaK0Vi30NxbD9e236XvvrbeCuBi/9ZVX0vcOeuyI/wHdzx72f0LIVEJIe93ffiSEtOS0148QspgQsrhevXppHRAerAiu30/p22+DGy4udtbeF1/wiT+v7fPOwzP791P6/feUTp5sXhfsql078T0vvIA2eIfM008n3nvuuc72GyGUVq6MZ7Zvt5YSYrHkmDNV1dRO7CBs1kxTkzHJ66WX3LddVli/HsSbNw4NGiTe+/rr/HFTFEpHjKB02jTQ5jLBoUOUXnBBogjbt6/1hIfDON3Shdtu47/H5+MfCqIrGKR06ND09Yvh6FFKL788kbPx+7Hwf/iB0kqV+GO0ZUvq7y4sFBObNNO6Y078S/+/n7og/vqrPDj/bdusiZzHo+nT58+3b2/nTmuO2bimnnoKe5SpR5keXn95vZT26pX4noUL+dK1opj1/g0aON9zdevimXgcB47oPp4qygk+/tgZ8xcKpZ8p1WP7djB0y5fb31tcDDWOsY+BAKX33JN479NPm1V+bB35/aDJ4TClF18MDUBa0bOnmbjIMr9D7JIkSl97LX19+OIL8Unp9rrvvvT1i+Guu8QEOBTi9z0YpPTZZ1N/98GD/A1OCIhMGpFR+ziAHZHTX7GY/YYtLuYTZd4ly2ZO3+Ph79UqVbBHZ84EA6GqlHbvnkhIZRlMjdFWce+9YLyc9KlSJUo3bcJz334rPsgkCTYrt2jZ0vnel2WtL+lCPE5pv37Y57EY3tGyJaU5Ofj77t2QwBYsSBzHzz5LpKOhEFRfO3cmtj93rrPDTZIoveOONH5Yfr5zrsN4PfVU8u/NzYWBd+5c6MqLiiht3dr5JhAtzEgEapl0Ih4Xi9aE4HQW9efee1N//8SJ4neffjruWb+e0m++oXTt2pRedayI/0sGg++LpT9fYTD4/mHXdnnp/L/7zhlxjEYp/fRT67ZmzXLO+PDUNowwWDEIlSpROm8e9tqHH1LaqROlHTtSOm4cXz21axckFyd98ngoPfVUjfAtXEhp1aqJB5KiUPrgg5SuWEHpl19ivTrFySe7o0v6vqQDb75ppkuBAKWXXgqvKnYoRCKUNm4Maf/XXyn96iusk+uvh55/0CC+tkRVKb3ySufSTdrsfPv3u1Or6K+vvtLa2bwZk/rHH/YD//LLmtgajVJ6wgmUrlmDg2j0aErbtoXrmtViu/NOSm+4wczFdO6cnJuUquLk/uors81g4UJrKUh0RSKpG6DXr7c+eGrWhCGYuZMx8TAvL6nXlYe3z6eEkN2EkGJCyA5CyO2EkKqlKp2NhJDZhJAqpfd6CCFvEkI2EUJW2al8KC1fV88XXxQTY3aFw5S+9Rbm49tvYVj94ANKly7V2nGi8/d4sL5PO43/92DQ/jCKRik9fNj59+3di32oP1RE+0BREr15Cgrw3R06YH1++ikMw7KsrdMrr3TmGHH//e5olLEvqeLUU/nv8fvNh4LXi7lgTiihEKUPPQT6wmjM55/DdkgppPpvvgEj/N57oF/GMTeug7Q5k6gqpaec4p6web0wNpaUaMbIWAwD37w5RJtZsyidNCnRLXHuXL76pG5d84l21ln8j7/kEq3vX34JYtepEwYvGW+CXbvAQbMJkySoeXJzNWlENBlWC/DCC1M/pR97zHpTB4Pmw0GSzHpFhygXzr8sr/Ik/sXFIGhW8yNJcJkMBhPXUChEabt2sLft2WN9wHs8lF5zDYhE1ar8e5xKIR9/7P47f/oJ7qQdO1Javz6/7ViM0l9+EbfRu7d530sSuGE77NkDNRsbI0ZgRd8Zi0HKSRfq1BHPi1Na8N57MFJHIpgHSQKTy5g2dv34I94pOuw8njTHAMydK36Z1aJ6+mlw6sbTz+/H5DDOPhSi9LnnIB2IRJto1OzXunAhBov1jbWZomrDBN4GVhRKzznHvUrM44EXwrhx9gdRSQkOyE8/hTGJhzvvdPd+dslyUkORIf4usX+/9R6pVUv8t2AQjBOl2B9WXPWff4J48JiQYJDS22+3VxuEw/BESgUvvcQ3dkcicIrgoaREbC+rWhUM3BdfWLs15ubCkeP88ynt0wdG13vu4Y99KETp119rdo65cyn96CNK161L7pvvvJMv4bmRRipVspcS2TgeOiRmBtLK+TNcd524Q7xOKwoCUEQiEY8YNWwo/nssRun06eZ+ZWfDSNWkCbgHEZFMFrt3ixem6PL54OUjstA/+aT9e9evB0fBgjpEQUJTpiRnCPd6k9J7Zoi/S+zbJ97Ufr/9htfrcLt356+pGjUofecdMSPSogUIbOfO1gdROKypG5LF4cNQPTGGz+vFz+PHi58pLLSWnNkeCIedRzXz+sIupoWoUgWBopEIrnAY+nenLrgM2dnwuGHEnql7eve2ltiSuSIR2GS6duWvhZYt3fXdEXr3FneoVavEAZZl6NuXL+e7OFoRJKuFaTz5DxyAvzEL5JJluKSKOAw98vNhgf/oI6h1RNi40bmRWX+9847YN/e336z7pqqQDoyTqyjosx4lJZR26eI8zoFdHTvajxEHGeLvEq++yt+kPp8zVYzXq0mI//xD6YknauvR79d8263mv0ULPH/ggPidHg+lDz/s/vvWrIEU+8MPmrohLw8S/6WXggtftMi+HaceO+GwOwaP9eXcc51x1rJM6ciRztufMwcHUySiqe7atQPzduAA9rHdARAKOfecCgbhZr9kCRhM1jazIyxZ4rzvjrB3r1iX6PdD7AkGNa+WQAALTpaTNxYbr8ceM/fr5pvN7TMDihUWLMChxCaNqZ14cOO2Z1xEffsmbkpFobRHD3uOe8UK8WY+4wxzQEdxMTx+Kle27xfzPLBKB2CBDPF3gaVLxYxDtWrO7ERt2iS2efAgbGmXXw61hkjfzC5JonTYMBBmKwaOcZQTJ0JasUNJCdZyOIy1Go3iYErGVZNSSpctQxtMehHRjVAIDiFu0b27873buLGzNvPy+Ib4cBjfQylUNDx/fj2dOOUUsa2EdykK3jF2LKXPPAOD+aOPIr4k7ejaVXwySZI7tYjTE8541aiRaMiIx8ULpFIl8bcUFvInQ5bFuTJmzMDfnXAO+s00fjxUVddfD13kf/4Dg40d8Z8/HwSa1y5LmNWnj9lYfOON1n3y+xEpbfQjdoEM8XeB++7jE/hQCB49F1wg1uN7vVgDK1aI21+yxF7lF4uBqFsFnXm9uPTqD15+GT3eeovvyZKK2mHHDqzPrl0hNfD2m9eL5Gducc45zvfuCSc4a/PLL/nE3+uFBxKlYABEc1S9OsbxyBEYoBXFnQ0xHC6zHF7A0aPWHTr3XOuFpb88HuQ8catDJwSDPHcu+lRSAqIqutfnE3/PjBl8wurxaMY1HjZsgIePUwt+OAz/37w8GIwVBZslEgH3bpXlsaDA3rVPUUBA9Pj5Z3udborIEH8XEEXBRyJQN65fD0aFie5MFXTmmYiRYepIVYVzw+jR8AtnOulffhEzCfp17XavsbXyzTd458yZZkajWTP+c5KUHrvbmjV8uiLLlC5e7L49p8Q/EHAee/PRR2LCftttuOfXX8Vz1LZtYnubN1P6wAPuaUyZ4eBBa9VNMOi8s4EA8lQkEzQWiyFXye7d0KNZcTyBgPh7vvlGPBkXXQQd7UMPUTpqFBagHm6Mv5JE6V9/IXDFqPMLBGBAt8IXX2ByrYg5y+PCoKqIxubNh9dL6dVXJ7cGdMgQfxeYNo2/1v1+jWPbuxdqmeuuw79GpqCgAOtSUbCOmHplyxZnTILd5fXy15jHg7XOJPuaNRPTFjRqxG9PlmEnSwceegjfzdazoiCSNhlcfLF4DJiEoSgwADtNv/3333x9fiSiOacUFPDpjSyb011TCnrrVMMQDFqrwA4eBIM4erTDOSkoQCDT669rhpozz0xtgekXWjSanB1AlmG9F4mD+suKw92/n89R+P18+0HfvpqaRhTz4PFoz7JgG+bRI9L3BQL2rp5r18KuIToAmjc3P6OqcNcLBDSVgyxDx5ysPlaHDPE3YPlypEiYONGcpmHBArFe/7zznAXaPfeceb36fDAqUgrVQzjsTiVpbMtpjAqL3aEU65vHCJ14orVac/16MFbjxjnLtDl3LlIW9O2L1NXJRuZ++CHf/iLLsCf26AEVjJsgN0phHNbH+SgK0lbrJaWvvsIcMRqhKNCY5Ofz2+TFL4nonMg99ccfNUcYScJlmW15wwbo1pnvvSxTesUV6HwoZE+0WQ4RZgRiRstU3Z08HpxgeXn2ffD57LnqMWMSuepQSLwBZBnuZfn54MYfeADPsoWvKEie9vnn0MP365fozSPizHw+Z/64JSWYE97EP/+8+DnGUd54I7gDJ0Y8B8gQ/1LE4ziYZVnL3ZSVhQh2hnvuEUvFgQClAwfav0dkCAwGtdwxf/4JTx236lS/H+7DbrzZwmFKV68GV3nqqdoeZ+nTmWrWCFWFFMz2Tiikca7pTLUgQlERXF1Zf/1+9CWZoDYjliyBfadvX0h7vMDNP/8E8e3dG3E7Vozf8uVaMCmjMUzyY/QwHBavn/x8vrShKAjI46J5c/NiZRyxHfGXJErvvhueP3PmwMr95psosNKrl1hN44TraNIE/Tt0yJrDkWUQSidW75UrQcj79EH7Vu8/7zwYZ5g3QjiMmISuXeHSOmoUiC0PN91k5tw9Hi3HuRPMnIlvYyoEFiWd9gx+9sgQ/1KIMklWq6Y5Jtxxh/W6MqZU5qFuXf6zoZDZ2DdzZiJTY6Uy1Ee59u/v3BHD54NRllIQmQ8+wB4aPNha1z97ttiDrW1bMRecTpSUwFX6tttAiN3kD9K3MW0aUil//XXZFa7auxfv6NMHbuMvvKCl6PD58PO77/KfnTZNrNo2ZnKllIJgJsuh+3wggiJMmSLuTOvWEJPatuVzLuEwcqQwtGxpPqC8Xugg33gDHIlb2BmDeBlMWYAOk5DC4cRcRgw7d2KTs4UfDsMl020U8pYtMAL26QPCc4yqkmWIfynatROvl44dYZS8/Xb74iV2eOghfhssYZ8eixdrDArT2fOe7dTJTGydqmI9HkgLbtGrl7jNdGW3TRemT4fGo1u3RElu/344a0Sj2t6vXFks7RjBcvc8/zwIt9MCMxs38lXVIuP65MlienvjjZwXbNrk3GuHTRghIGp16mgFXng4eJAvWkYiMMAyMD0VOwQiERBmfdDW6tXwkGB9ZUaaVGoHvPqq+Nslybk+VZb5IeiHD+P0vv126Ahzc5Pv6zFGhvhTcMxWEqvPp8W8iDjqYJDS//7X/l3790MyZZIzy/WiT/xGKQhLvXr8NdmtG6p2tWuHYCwenBJ/Wab099/Nz6sqvM2GDoVa9YcfYK94+22oHHv0sG63fn3388DD3r3QODz3HDyk3KqUOnUy942lSe7Xj3+YOnE/LSmBOlpRsDaYPt4q3xHD88/z50eSoHUw4tAhcV2GKVM4L1BV5wUaIhGc5HfdhYl2on6YONFs9DAaRijFITJsGFRIkybxQ61zc0Gw774bhiMnEb1WyM+HaoeXAK1VK+cSUTRK6SefpNaX4xwVnviXlDhPZWy1fxo1cs4EFBZiXd1zD9Z9Tg5UPqNGgWNesABqTJFaxVgWkIerruIfaB4Pfs+cGi66CBLuM89g7x0+DNXHxRdrnjnswGOpHSIR3G8lBaWj6BBTjzLVl6JA7TpnDqVDhsDrhdlJePjsM3H/Vq+2dqvVB3bx8NFH/PmpXt0+EduwYfx3ejziaOSPP0afmBSoKNDOCBNJLlyo5dBgxI+3ICTJehBFyM5Gsrf+/eGlMGoUJmX+/PQafbKzoSMbPtx5siamD+zTBwv5ttuQYre42DrnkHFTf/RR+r7jOESFJ/4LFqTuXtmlS2rJt77/XivawgjspZeK7WqiT16+HPtvxAisfeNe9/ngJVOtmsa0sYOAMXBVqkAdaWc01h8KPHrixPhthYICfllZnw/t6x1RjFXJGM47T9z/W2+1nnePh5+FgKFzZ/5z0ShfktLjnXfE7500SfzcX3+BOXj4YXyzLY395x9wFw8+CAJ9xx2azjsQwAC+/75NIzaYMSNRCpAkRMGmowjBqFGaqob5MF97bdL56ymlcHnVH4rhcHoPxXRjxQps6uefTz1RlwEVnvhbRV+7uXjlOwsKwOE/9hiiw3lr1spvnJfeQ+RP/sgjGofM3IKNa9rvB+NjxbEzoprsOEQicF44dEg85vpxGTeOr2n48Ufn81KtGpi6336D8XrECNToaNVK/Ezv3jgAROo+r9falfL88/nPRaNYU8a+6GEVo9Ctm/idjvDPP/DrHzgQxg4jEf79d+TVfu651IjJtm1og6dD9/ncZezjYetWsYqmatXU/NxzczFGAwbATnH33Zp/LzsUrTIXWmHbNkgqjz+OiMBUpKBBgxI3tSTBfzlNqPDEv7hYnOeKMQBOPNiMpUT37IHem3HvioLAKuOanTVLTOTatUtkUiIRcJxG54A//kguWaHVAZDMc1WrYi9ZZdHcswfqaP241KhhHhc3xD8ahaTE1FTMg++++8TPLFoEOnnSSfy/y7J1UrUPPhB7h918s9aXUMicXsOK+F91lfidRpSUoHjUgAGI19gz9Q8tnwdbMB06pD8n9KRJ9sEoZ52V2jsY1y9aoBddlJ5vYVi0CCLv8OEQsZIBC9LR6+Zuukk7gONx6DIfeQReT1Z5eZYsEXsFpJDPR49jRvwJIU0IIct11yFCyAOEkMGEkJ26319u1U4qxH/LFhg0r78eYxoOa0F9zZph3q69FuvYzk5kjFS95Rbz3vB6oSLSY/ZsMZG7+mowKW+8AYJy3XVgtoyc5IAB7osPWV3MZ97tc6edZj/mvXrxx8W4lwsL+Wof3hUO8+eHqYd4z9StCztLYSEYP2bM9/nQHnN/FaGkBISaEflwGLT2+ef5hwILaqXUOpVNlSrO0mkUFMC9nB2ikqRSxXOEziUdzC92W3x9xQoMwMCB5twbubnOAlBq1LB+h6qCMx4wALYDY3bL11+3r6XLc5HcuhWb5MEHoZJKWw1MGxw5Ym2VLy5GVTI2YcytVOSxMWgQf1PLMvSGacBxwfkTQnyEkL8JISeVEv8BTp9NlvizKE29l1uzZjBk/vwzsmyyTcyIglUKkjfeSGxfZKz1+RI5YxGRUxRw0SUlcFNk7TGuVp8K/NFHnRH/QAAR7VZ71+Oh9OyzsU55Bl92QPII8Esv2Y+7aAx9PrOP/axZWg4t5gvPYzZF32OVqsbnw4HKsHkz+j9sGIzBTqCq8BQbMgQeSTk5SMfCe18sljhnl10m7pcT7v+11/gHdC2yi8aJ4aPdcOHDhmmqBmaAYgacgwcR8m230Aixzgioqlo1Io9H4zbGjNHu2b7dnvgbF8yUKeYAqssvT3MpNAG++07Mxd1wA/SbPKJQqRI/uOSJJ/hGNVkWB4S4xPFC/C8mhPxW+nOZE/+8PP48KApUlRMnuqun4Pebs2aKjIl+v3ktsoAplmlWlqGPVlVx8Fk0qvn2L1vGJwQeD4itz4f7GzaEC/iZZ+L3zC7APIAiEXirbNiguXo+9xzW2syZ+Pmdd8CwVa6sta0o0IE70S6I9offz1cX/fMPCOuwYTDOd++ujRNLPS1So9jlKYtEXC8dW4jiH2Ix0Ac9rIoC2eHsswXfRA7R5aR54i/PPddZ57Oz+QQ3HIY08Oijzvzk/X5+kBTDTz/xF7UkJUbXvvMOnwB6vTiERo7UjLL5+fxNpyjpCfu2w+TJ4sOqZ0+xkSgW46efXrlSrPZJJQ5Ch+OF+I8jhNxb+vNgQsgWQsjK0t9X5tzfjxCymBCyuF4SPoWiTLCEgMu+9FL79W08jI0GTp4PuceD4EeeDSg3F2t9xIhEXbOoL7EYOGOGoUO1pG1MDfLBB5Aehg9P1MXH4/AwGj4chtdp0/DzxInO3ayPHEH7w4fD9VJk12LS/b33wivwmmvM4+L3o7i7E6gqbJbPP486uQcOiKONWaoO0bxlZTl7pxuI+sIreymiFaGQ/Xtat+Y/q5DDdA05LXEQ9By1FV59lT9gPh/EGzuu3+vFR+kTqPFw113853nulatWoTYqC4dmOYfYoZSVBUJppT+99FJn3+8Ehw8j2OW222Boyc1F8A4vSRw7fGbOhL6X93cr97Dhw82b+sMP0/Ypx5z4E0KChJAcQkjN0v/XLFUDeQkhwwgh46yeT4bz/+kn8Tq59lro2u0Ivs+n+aB/+635Hfv3Q41kJHSyDI87p04Aor7EYuZI1OxsMEOjRyNj7fGA/v0170KmNqpRQ6vVHY3CAJxKf1U1MUcXk6JmzMAhIaqDfPfd6ftOfV/0OY/0fTGCV7wqEACjaIexY3kqZpU28G6mqlJahkyWsYCc1rEcPZrPbQYCIEQnnyzeEB07wohpFRzBICqMEY3yvYTicRhKWrfmSwJnnYXNIBK33VjRrcBL71CpEg473qHp8eBbVRXJ4nhcQc2a1mqp7GwcyqNHW5eoTALHA/G/mhAyU/C3+oSQ1VbPJ0P8i4r42VkVBVzwt9/ae88EAtC7WqUL/usvcQpoowpAhO++E3uVuK1NW94QVT6TJLiXv/yyZgtLB9atwz4ZOzYx8eHChRgvlh4jEoHqyyp1TF4eGOaePRHta5XxQNSXwYNBd7p3h1RndGnNzUVaD5bCIxKB0dyJezmLMGbSTTQKVdzyBUchwr3yCj7cDXbtElvOs7M1e4CRwPHSEVtB5J7GE6F//RWSwh13iDm2QAAbkRetqSh87iwZ9OjBT+wm8p32+dDvXr2gF+7VS+MKWOZIu6CQMsTxQPw/I4T01f2/tu7nBwkhn1k9n6zB95dftLKf4TCue+/FIa2q1hk8GedtrL9sxNtviw+RYNCc0oEH1hcm9UUieLdd3eiyQnExmJibbkJ1K6vyoYMHiyufsVTS5YVdu7D3zjwTtMSKwObkQBrRZziNROC/7xQLFmglZRkNql/fzCzE43D4ePVV/OvWOWXJEjAhn36aemYESinULpKkiSyShIVMaWIxCnbi1KmTnGsk01MyNylZht+qHo8+6syHORCAOoYF7bC81+Ewcq6kK+I4lWjQSATuWWzCeDnjKcUC+O47LeWG2wPcBY4p8SeEKISQXEJIlu53HxFCVpXq/L/VHwa8KxVXz8OHMQejR/MzQn7/vdi+FYuJvbQYxo+3Nhyfeabzvq5bB4+iiRPd56hPFwoLEXug94IKhymdMIF/P8tcafzuMq9YZcDq1WCyGFMbDsOwzQvMoxSSOq/fjRo5oyOqyi+OEwya40GOS+zZA4PKmDFmVQMzurz+OrgfN2lQS0oQI9CjBwjblCkIWho/3pyjfv16Z/7Gfn+i/zTb1G+8IU4HsWkTfO2vu06ru+kEomIuzNbhpK/Dhonbj8ehd2YbjHlbWeX6TwHHnPNP9SrrSl4//sgnBJUq2Wdizc21Xr+BQHJZa8sTK1eiVnW3blBtihwQ+i45ebwAACAASURBVPeHevm117Rv2rxZ7DxSprVqDWjThr9fr72Wf/8JJ/Dny2l8jUh7QggY5QqJ4mJNatATNl4mO0phvLLzSWYubLt2gYC/+SY8Ch54AAUXeJg9G+/VJ6Vr0MBZYi5RGcdu3ZzXFfV6Bdn4KLhNHrcYCqUtsEuPDPF3gGee0SThaFTsncXDd9+J10EwmCZRvYzAkjc6qQ3A7pFlLYCKUkgFTF3ltJh8OlFYaF3YiQdRSctg0BmNyM0Vq4EbNkzv95UZ9u6FauaKK+Dnn2ohZ5HBU5RDx0pnyojod9+BW963D8Zodj/zl/7++8Q243GcvryJZbk84nG4xnXvDoPP7Nna83l5iJjWF3Bv2hT9nzHDeZh9LAbJp2tXHFhM8ujXj39/JCIWr1NAhvg7xLZtMFJOmuQ+r9Rjj/G9Orp2LZu+pgNHj1oHtVldgQCkBYacHHioTZzoPOd9ulBSIibEVarwn3n5ZfM+9vmQHtoOa9dCzVy5stlmJMvOAuEoBeN60UVImXH22c5rDKQFmzZhcBiXGwyC63FipBLhxhv5kxCNIi2CEXv3WnMdgYDmKfDYY3wpoWbNRCNKdraYQDdsCJVW9+6Jh5SiIJMeA1N7vftuoo+zyItEdLHFIcvgNg4cwHt43xyNWmf8SxIZ4l+G2LULUfLNm2t5o5jxsGlTcbW44wHz5qWW8I6n3lBVSLzdusEL5ssvtb05ezYCIS+/HDbHdHoy9expPgAkSVzEprgY6mBmi4xEKG3c2F7ynjZNi0Zm+5uleAmHoWZy8l3z5/OdDdIU1W8PUT5wp8FiPNx5J7/NWMzMoVMKTwJRUYpAAHYDhsaN+fcpSqLef9cusSqpeXNwJzwjnyShAo8dfv8d+mB9Qi4nVygE9YIosCsaTS2TqQAZ4l9G2LAB68C43gMBBHqVV8qRZLFsmX2Us9X6PuUUc5ssol+/N2+8EZHsxt9feGH6ovIPHADdYgVXZBlctV2pyTVrEMg2Z479fMXj/Nrcfj9SOaxZ47y/omRzwaDzNhzjr79gsOncGRz0zp1i7tjrTT5J3MKF/HarVOEbz155RSyy1a6dKEKKwp15pdHatDFz1z4fAthE7n2SxE+ly0NBATicjz6CSsdpIe6mTfH8W2/hfUy/HIuJc5aniAzxLyOIcrcQAgKkj851g/x8qEMvuACcpF4lmU6oqn3di1dfRT+MzJIswxlEj2XL+Htfn1/JOEb6qoDp+J6FC7Enly/Xfr99OySADh3gUptsluMNG8SHpVs9v5WLcYJX5YEDcKnq1AkRY/oalU7wxx9atB07XbKywLWIONRUTuSRIxMJW5Uq4j6/+y5/wQQCZt3ZhAl8PV3r1uZ2d+yApKDPfmqXxjYScRdZu28fcqF06ADVkxPi366d9nxODoLdpkwp02LYGeLPwYIF4Ejbt4dnVjJ6ajup76GH3LdZUIB8Wfp1Lsuwy5UFNmwQq109HqiG9uwB0xKJYE9LEjKaGmnEwIHiPSaS7vv2te7fkSPwLurQAaqkn35y933r1oHWscOH5QtKJu7GysPn7LOdtbFtGxxVrNbNvwbnffsgIrCFxrxn3FSf4nHMHg+Mp8YFHAoJqsW7xD//wOI/fbq1u1xurphbMEbcqSoMqJKk+fk3biw2UqsqjChWudz1l6I4d8vbswc6T6flIln7qdY/SAIZ4m8AYyIYoZIklCR0W6fZKh1xMJgcwZ4wQewwkaZcTyY0aSL+DhZ/wmxgX3wBW6ERS5eKpd9AgP83v9+6sHxeHqJj9TTKjUGVUqR84R1IoviLWbOgDm/bFkZhY7xF+/ZmKUhRoDqyw5o1oFtW2VmrVoXzTbt2lI66eCrNC3I49FjMmWrGyg1KkvChrMC0LOOEtarQw8P8+ciX3qYNcgO53UQzZyaqPxSF0q+/Ft+/dSsWISuiMncuuIK2bcHF6Quy79zpjEB7PND7icAMWZddhgXQubPzAtqhEPrw4INoZ/lyHLDnnYcAtzSnczAiQ/x1KCjgB/GFQpQ++aS7tqzqZ4fD4gAjK/CKkbP9znOYSAdOPVX8Ha1b83PWFBZCNdWuHdRCopxXbCx4WoZwGJ4zIoweLU4dYYwXEkEknXk86HebNogVys9Hwj39+8JhjI0+Pmj3bkhBioI5kSQtatwOl1xirX1gAXX/HnSeo7QFWUrzieHkjEbNOfh5iMfFxK9aNdyzfj0I07nnYjLffts+uIWBx0WdcAI4/yVLYLBt2RIeLlaW9Px8SAnffec8GItS6M71EyZJ2JRMjD940LqkHeNA7Li0hx5ylwJYz2F89ZX27dOna14hbBH6/RjzdNZE1iFD/HVYtEjs4eI2fYkVU5GMhPfJJ2IVTDTqXuXhFF27Wq9hWUbOL4aSEhxSTl2ep02D2jcW0+omBAL2pWUvuojfXlYW9hEPRUUIWm3bFkyak2h9WYZ2hCedsMzCgwdrB46q4nsmT3aXD8hOTcibe4UcpuNIn8RfhsN88YuHfv3MCzUcRnEVSqF30xM2Wcbk2un9rbgolpCIEblgELr/VMoyGiEqrCJJ0MUzXHml9Yl77rnW7llbtrhT71StCnHWyNWoqjiy0OeD73AZIEP8ddi0SbwJL7zQXVvVq/PbkST3nj7Fxfx6vuyqXbvs6lXMmmVPyCVJk+inTnUeHxCL4Zn//MfMpLVsaZ054Oab+fs2EklMh1JQAONzy5aQMPTMXiDgLICNpYmx+nu9es4lDh6s7II+n1htdg35OvFGN+6YeXkQOVhqZEmCv21REfRQvI+OROyzEi5dal24wfg7rxf9ZhLGBx+k5g73yy9ivesJJyAL6IUXIs+/lW++VSoGSmEEdhMMEwrBS8IIOxUUS6yXZmSIvwGtWvH1tsacU3YYMsS8dyQpMfjJKdats66A5caNMBm8+CL6LspzlJWluWrff7+zfRAOI6hy0yb+uo9ErCWkBQvMh5LXq8XqsHuqVLFXpzAnF1b43inNMs5tKob3Z58VHzAsNsTUd28J/Y/vHXReUSCeJpMG4M8/IYLpue+33hJ3yC5BkRVH7KTknKKI81pv2oRMmWecAX0+z1to7Vprd1X9e9q3Fy+QcJi/ueJx5CNq0sR9/dQLLjC3d+iQtQpKUVAJLM3IEH8Ddu2itEULrB3GDNkxADwUF8N2Ewpp7Vx1VXLpHP7+W8z58bzZ7LBxI6V9+iB98NVXO/Nu2b8fzBKvD5EIVGaUYqysXJtZdtLrr4f6ePx48cF2663WfWIZAJgtsHFjjUGaNs1epcuI+mOPwdX9pJP4ezkQ4MdsOJmLI0cwJs2a4e9GpnblSniWNWmC9wcCGi3y+6E9mTwZKTN4EcMr5h2A4WXFivTqhr/4gq+6CQY11cn27TBqnH46yqn9+KP2fNu2fB9gJ5XACMGpbPT1XbsWfWJtsILbPM6sRQtnYp3VIvF4YGE3omdP53pNY3v62qF6XHedtV43XWmpdcgQfwFWrYIPvZWbZ14e9N1Nm0KSfOcds/plxw6oTlJVaXbpYl6niuI+6nvVKqwlfRSqaP8YwYvT8Xph0GV0Z/t2630RCsEhgt0/dSpfQxAIoIY1pWBm770XBPL880HYGQ4fhr1j6VKtTVUVB0rxmCoWACa6R5bxjlNPtVb/XHNN4ngVFIAZ1z+jKJoL62+/Jaq/WXLIkSNhaL74Yhxol18Om0/DhlpKb17Rq7Ti6FG+rlGWMcnbtkGs0hNzWdaMNX//rfklM+5n+HCkT3Aa+BQMalwFpeCeeFx6vXrmg2/HDi20PivLmru3OiSYbpJh1SrxImAh4d27898nyxBHeTh4EAcmr93q1Z0b2l0gQ/yTRHExEvkZXQ2vv75s3pebC287vXp28GD37Vx+ufP9w8P772veLLIM6dt4sP3wA+iG6BBQFC03flERImONfWLSQf36Zt28osC/32qsnHD9rC2rvZyVpdVtUFUw2I0b85laY/6diRP5Uk04DE2LKBFk9epafWR9+5MnI1hu7tw0JATMywMHf9ppIJKjR5uNm0uXQuRgJ07lypp+r18/PheflZVIqNatg6skc7M8eBCcjCThXmblF01Qhw5aWyLDVzAorqq0erW4cpiTq3JlLPKmTXEqv/66eMF066a52a5YgcXL3GUVBVWG7DBmjBaKHomAi1m50smMukaG+CeJr77ic4vhcGIEabqRnY3gKr3LshuI7GDBoHOD5dGjsKmtXi0+MIqKoFrivcvvR2Aqw5o1iCtiWVOZCttKQ6AoWrqTadPgGh2L4fnTTrPXLrB3Va0qZgpPPBF77/zzEyOyd+0C4darnN56yzwGt94qfvf48e7pUd3Kh6l65lkYrCuugGqjYUPorFigx+TJ4CAbNEA+nW3bzB0rLoYLk14vz0o+GhGPwzVzwYJEC7yopGMkYu2jy7B5M06xNWvsRUUGUbpVSRJHwh49mpwrpn6x6jd3s2ZiTya92xvDmjXYLG5O66IicEfLlpWZmyelNEP8k8Xdd/PXitdbvoVK3EKUskGS0i9Zvvkmf19HIubAJ1UFg7NwIYimnbo2FoM7u8guKWIoq1SBCqVVK3v3Sv2hIMvmCP8NG7BHRTm3nnySL4FEo2Cg3SSBJITSICmgOYTzUCAAL5Znn00ccL8fLzFGun71FV8kkWVnMQKUwitHRKzdZiycPVv80bVra/eNGWNeUJKEpFEiWHke2V28BSRSIykK39i+dSuKvZ90EvSLTE+7Zw+8Ixo0gM//+PFlSuh5ONaVvLaUVu1azjpCCKlCCJlFCNlY+m9lqzaSJf6qCimsWTNweP/9r7si4j17itfMyy/jnkWLoGY54QQY+efNS6qracU775j3TziM6PhUsG8fXJhPOgm68VGjsL55TFKlStbxOlYBcvo9n51t7avv8YAWxWL497bbwMjOm5ccM1i1qjuX2i1bzGPt8SD6v7gYHmFOgkFPJWvp56Q73UHq0DixSD7GE3cCAbN3Tv/+4jbeeMPZx/EKXYdCyecpf+ghs4eQMWRbVZEnhKVxkCTo16246h073Pni68dNdCA88AC4KKaeqVEj0ditfzfPLvLUUyAK+nfIMgxb5YjjgfhXM/zuRULIwNKfBxJCXrBqI1nif889iWs3EMAc3nQTNmezZuBORYdx377idTNqFCLMjXtDlhONlccCqoo000wVGQrhm5NN1kgpoouNNjxm/1iwAIeromhFk+zSwrdvb70vg0EEeVm5wBKCPffuuziE9WqyF14Qq4Ws3D1lma9FscKMGVhXLJvoGWdoRaZKSsQeVOw6jayhh0iElhAHOiKRuFS5Mk4uRjTPOEMskrgJFR85MjGc+bLLki9NV1SETaUn7A88wPf3P3AAk+qUW7v4YudGIEKwALKyxGLrhAnYSGvXQscr4gj69+cfIoEA/0AKhco8pYMexyPx38Dq9hJCahNCNli1kQzx37lT7HCgl+YUBW6Af/8Nzrh2bRj7XnsNZTV560lRoHZt3ZrffroqOU2eDL1zjRpwgnBrEzp4EEQ41ZoC770n3leShP2hqlB9rltnL9mWlEBVzdPD+/1o8+KLIWnk5Ng7jjRqhDG69FKorimFl4zIEPvUU/DcEn1PMvWTS0owP7yU8Hl5fDtmMIj+TPFfS0tE3L6R8Cdr1GQLv0YN91xAXh4WUrrKDObkYKLSWfVn/34Es7Gi84rCJ8oeDwa9aVOxushObNWjWTPxXPF+H4vZB9ClEcea+G8mhCwlhCwhhPQr/d0B3d89+v/rft+PELKYELK4Xr16rj966lTrxGvGw7hWLbPk1r27mYB4PLi3qEhMlLze1HXrRtUNKxiyalVq7bpFcbE4+y9b4+PHu2vz5pv5DNdll0GKMDJG111nn5FXP2+LFoFe8YK/srLAVE6axFeN9emTtqFLwMqVcJcNh/HeBg3Qz8OHKS2qVsv5x7Vr59yNkhE6Wca/Z5whLnj+vwhVhdjXpAkOtR49sIBWrMAB98MP+L2iaCHls2cnpsZYskQrDxkOg/NbscJ5H668UrwxeAe1osDIW0441sT/hNJ/axBCVhBCOhqJPSFkv1UbyXD+y5c71/mGQvz9JEkgEvXqYW1IEjzmmEhfty6/vVgsNbuOiOB6PHxnjWSxbh381qtWxf55/31zv7dutY91ee895+/MzhYXfBe5dh45Ii7kxLtYgOXq1fAKCodxNWqkSQaUQqPB0lSHQrDxlGFqdaqq+P4//9RqD1xwAaVLfTaFwYNB+IZOmQJx7sortZBgO5enmjVhtU4oEvD/BAMGJC5Orxcilj7hUjwO0dRKl6eqENmys91v3F9+4dtF2rUz/z4QgOG3HI2+x423DyFkMCFkQHmofSiFysSJsU0kSbOymmzTbt2a2L4xqSBjzp55Jqnu/gueEZFdtWpBqjnrLBwQbdokV/v1r79wSBlVYMbMpkeOWNvSPB77BG3z51PasSP6W6+euD1jAJUeohQRvCsrK/HZzZvxPG/P5efjEEwlZ08y+P13bY6vIpPNmTuNp5lR5/zPP+j4ww9bHwC8vXP4MAhnzZo4VO67LzkVjKrCO6dRIxDdrl3LPg8JQ04Of0EEg8kV0kgFEydCzFQUEP6rrsIhPW0aNqyioF+1amET1K2L+AurxFZpwjEj/oQQhRAS1f08nxByKSHkJYPB90WrdpIl/nv3ItYkFMJGq1bNzOGHQiBIvENCUawLJ6kqvDmYQ0A4jHWXagI2K4LbqBFfXeE24+cdd/BpRjhstueJYn3YGFm9e/58Z1HywSDSm4uwf79zb77TT3c3FscC55+f2OcR5BGq8j4mELAuevDXX2IRl0WN6RGP40DQb4RgECKSXfHh1avh2haLQW/FEsbpOYFotEwSlJnwwQfiRdmypfi5L7+E+isWg8tao0b4uVUrvjePEUVFINx16oCQ9+gBqaK4GCJdTk7i/fE4bAvVq5vjCbp1S20MHOBYEv+TS1U9KwghawghT5T+vioh5MdSV8/ZhJAqVu2k6uf/zz/g/uJx7IVatbAvQiFwm08+adYN+/2Ir3EioeXkwImhalWsh759Uzey3nWX2UddlsWFidwO0emn89thvvV6FBby3V59PuwdnrPGrFnok1P7pKJYp8dgiefs2pHlY1IwyTXM9iiVriBNaSHxmQfGTmXz88/gYJiR0evFRPKi0mbN4lvCIxHEBoiwaRMIu53xxeeDv21ZYtMm8YHn9YoTxr3/vjUnEg6juIwVundP3Jg+Hwi7VRGbV14RVywrYxvMcaP2SfZKd5BXPA4Vzv79UNHw5qVtW2cEXFXh9aNnpAIBRH2noj8uLNSq1skypOq33hI7EUiSu/avvpq/jyUJnk/Gb3z/fRya+sOxUye+A8iMGc6Cq5g33Mkn28dHXH21dXssud6oUe7Gobxw4ACyvVaqJC6hW53sobO8F1M1GNQGxqlOT1XBgW7ZglNUpFKw8oG1qmYkEhV5V1mLXnfeKe5LOMz3M47HxTnY9VeLFuL3/vknf2GHw6gEJMK11/LfFY2WOaeSIf4CLF3K50w9HqQ8nzAB+0+SECnPkwrnzhUzUm7qQYuQl4fgzeJi7G+R541b91K9zllP+Lt3N9/74ot8VZNIJdaihf0ei0RwuO7c6Uy6GjhQ7G46cCDGqBxUqEkhHodHoL7/fj8/g+fAgRRcidOBcQtRJk+PxzoKsGlTZ4Q/3V4Jbvri8fBz6VMKo46TOAB9qgkjvvxSrHu88krxc088wfcoiUSSKybtAhniz8HOndbBQ1Wr8gmekRF7/XWxOqJ//7R3mw4fzjcyJ3PQTJmCIETm7dSnjzmQsrBQHGF7ySX8du08EWUZ+8ENtm0zz5ffj0M53TRy8WLkGguFYBMdMcJ53ZFdu8A4yDLG7a67xJkWmMMOk+4efbTsCvb8i8JC6Kt5XE84LPbbFWWx5E2uvtJOWUDUl1BIHBRWXOysrFuDBuL3Ll3KVzcFgwgWEmH7dvMCKCfPnwzx5+DRR90FBLKrbdvEdqZNE68prxeG/2Rq+YrAjMzMPbFyZSRrTAZ//IFkaX4/jOHDhpmJj5WrZ82a/HZFuYUYfXn88eSKOP3+OzQKgQDm7uqr3dcLt8O6deb97TQqPy8Ph6lRI2GV1PLxx5Eiowyy+YqxZYtYZ167Np8gLV7MFxWZaBwMIszbTQDTpEla+tSGDSn9/HNnz/H6Eg7bp9sV6Xj1E21MSGVE69ZmwhGJmF0BjVi4EIZmtnivuspsHC4DZIg/B507uyf8hEDtokdJCZgF0eb2eKBqTDZDpwjFxTBkJ8sprl3LJ3LGUqJHj4r19+3b89ueOJH/jMcD2iJKkuYU+/al3oYIvXrx59JJ0fhx49zV/+Alv0srtm+HRwkLJe7TR3PpFImrPp84j87332v5tyUJbmD5+QioyslJLLYwahSMRD4fdF76lKmUgtDzRNhPPsHfDx9GZkUWqXv55YnBWa+9lkiEzznHPio3HscBEI2iTRa8w2oMO8nWuH8/JI9gEIdW06buVDdluXg5qPDEX1XNzMz99zuLATBeZ5+N5/fsQXWmYBDtWNnCZDk1Q2RZSIa33MKX/HlEzhhLw75p9mxx+w89xB8LRbGPCziWOOMMfr+zsqzdfikVZ4HlXV4vJKcyowNHjuCk1Z9kwSAIcTyOqD5ex6pUSVxw8XiimKaqIIBWosrQoWbOIhxGQBSDKF30SSfhHW3bJuoPvV7oYvftE3Mud97pbGyKi/EN8Ti4p3373Iui+fnJ5zgqR1RY4n/0KMR1VkmpXTtEVpeUgIlwU5eZra+pU7F2GjZ07vzArk6dnMfAxOPQNbNc9KeeqtXYSAesXD31hZUoxXg9+aRWHaxePWuvQEqROFLEXLpJbKiq5aAH1+GGG8ROADNmWD97yy3W8+/xYM34fIjbKtOgW1aRhyduzJ4t5rxZuto9e+D7r18Y33xjPxmFheKNdf752n0iH2CPByoSUSGNV14Ri2eMu3joodSyGP4/QoUl/pddJiZAZ5+N/XHWWViHoZB1fvm6dTWvrG++cX9wsHWdlWV2peThiSf4ezNdKaNvvFHM+YtUkfE4OFUnksjMmfwxUhQEhdqhqAg2tEgE49asWXKRzG6xfLl1dTKW2oOHu+6ynv8mTUAb006XVNXMid9/P78TkgQvBUph3K1dGwtBUbTiA1WqWAdVtGqVmCdDj23bxANYo4Z2n6gGZ926cLMT2SRuvtne88iJ/r+CoEIS//fes3dOYJu5sBCEbdAgvk1r1qxEgnfNNe4Jv769Z5+17nt+vnj/dO7seii4WLGCf7ikKz4nHgfjqFeteb3Y/4cOJd6bn2+Wuvv25Qe5ucm5lSwmTeKvHZ/PWrPw7rvieQuF3GVStkR+PjhwvUjm8cB4+sMPuOe998Sc/6efwuDo92NSzjrLvRgbifCj8goKxJxRx47afR98wF+A48dDhy7i/F96CQeAXfSgJJkL3FRAVDjiP3++M08evx82K4Z4HK6ULP3uKadQOn16YttjxzpPqii6rHLYUGqf2yddmDcPieoIAf0YONA+wt8NcnIgYbD6vJdckqjqmD4d6jOfD/TiscdgGP/7b/4Ye71or6zx88/ijLDnnit+7vBhHG5GuhQIwAieMn75BVyv16ulJTaekOEwNsDhwzAq6MXZQAAn8kknuSf2xisQQC5+HgYP5nvj/Pxz4n3jx8PtlBBIIMwYxIuc9HggkeTmIs2EXdbGrCz3OU/+H6LCEf9LLnG+hs87z/x8cTFsQEb1RkkJ1mgqe0aSkBrECgUF4rV94YWuhsIRknG7dANVNb/jt9/4FbBYZS7R4X3GGWXbV0rhq8/Tevj9MOpaYcsWOKb4fPiGnj3T5I66bp1zV6JLL9U6c8UV6HgwCI75ww+d+bs7uTp3hhhnjK5TVXDo1ao5M1jxFuDBgxBDJQmDedFFiTq3336D7lbUt1AoMbtnBUWFI/4idSKPedEbH0tKwH0y77I6dRAQqaqQCJItE6onbpUrO0sbwWOeZBlr/v8D3BzQ7PL5YFQtD/TqZWaqIxHnOct4HmYp4fbb7Yses6t+fXFnrNI7uLn8fixmvx+Etm9fGISKihI5p2QH4Z9/ICIzsfGcc2CQMSI726xmCocT8/scOOCuuLoIR4+68/ApLORzkeWICkf8RXlrjFc0mqiGeOABvrR6xx3u/LeNe4S5FV9yibXBUA9VhSszKzLTooWzpIN6lJTgoDke0x7Ur+9+LBUFXn7lgaIiqNMZfWvXzr40pSMcOpRc0IeobByPw7BKrzB9unPO32kFHULAodevjw0TDCLaLVkjh6rCwm/0xY5G4YVkxLJlCMlmB9ITT2AC//gDqjEm+VxzjbUYVlyMDWPUfe7di3TVzK+7RQvrxZCfryXmCgbBjU6dmtRQpIoKR/yXLbN2VvB64XWmNx7m5YmDmez2gMfDtz8Fg8lH3yaL4mJEuL/1FtxEQyEQzUGDyl694wbXXms/riyCORCA27fRBdUN2LiUayStHps3g0AFArjOOw9FVhgOHgS3y4OqgvN3Epgiy9aVokpK4Oer16vxJIpgUAtOKSxEKHKVKvg98xBy0pdkXLR++UVsNG7b1plhSpRS4ZxzzJw4U1PFYvi+aBQ1XJnE1LQp/yASue316MH3VijrtBccVDjiTynmUiQld+livt/KyGp1nXoqpR9/DF2wLGsHQb168FgrL6gqKlNlZfFphD6fTkkJchuVdaBhURHUrjzXRp63EY+ZTLXMq6oi11dWFtqLRFDDt1wPwoICM8FkBsyFC7Xi48EgCLP+lJsyBfpHkREkEMAJGQrhQFmwwL4/+/bhMGG1bnv1Apd+5plop359hCuL4FQKIQS6ereYMEFM/H0+Su+5x76NJ54QF+A2Ruu9+aZZFRYIQPSeN4/fF5Hxbu9evrdCeSS846BCEv/Nm/ncvyRh8xthlcBMee73vwAAIABJREFUdJ11lutulRnsUpUToqUTqFYNjIkkgQak2++cMVLRKN6jKPx8PgsXaiVpeRku01GQiZdyQZbtje5uoaowFHO1Cl984S4wJBqFmMJLvSrisJ0Q/XThgQech8cb7Q9OsGyZfd59u1QO3bqJx9aYRllkzItErA+im282v3fJEnF7p53mfixSxDEh/oSQEwkhcwgha0sLufQv/f1gQshOQsjy0utyu7aSDfLq2TNR+vJ6wWyJpLWXX3ZuUwuHzelKkkE8DqkjVQ7XiQ7d7+d7Bvbunfp3UArit3s3XMx5BHfoUPGzK1aASVQU5Ad77TUQ1AMHcJAnG+XboAF/LLKyoD7evj15e5yqIp/XDz/ALZipeDt10jmaqCo+zA1XIUkYLKcBJeXNVW7bJvaF1V9eLz9HuBN06CBuV5btsyW+/LI4976xgIrVN4ii/mSZr9M9eJDPdfp8yK1UzjhWxL82IeTs0p+jhJA/CSGnszq+btpKlvgXFyNTZc2aOLyvvTYxNxQPvXvzddHBIKpWRSLw9XZrfOVh8mT0TV9VLNkEcE5iD0TMWiiUWg3b339HfBFLDS16T1aWc0J7+DCCNPUlOJOpe2Fl+2E1Uxo2dO9FNWcO7Hiifd6wYamkM3JkcoEhvXqJ89/wrvKuXfnWW4nfVb26mdgqCnzy3SIet04NG4tBVC8pgbcPb/Hu32+OcwiH+UE2VuOqqnCd1X+b3w9VnDFakeGxx/jlLZ16e6QRx4XahxAyhRDSpTyJ/969YLoYAalTxz4/zuHDiDA3ltu84oqkuiDE4sXmvRIMJu/Hb+XyzBgVUQnIaDQ5L5qSEmQBdUqfvF7n1c26djXTTFmm9Ndfnfdv3Tr7imLsikQS3cKLi2GP5aW6sKoiqG9v9myKqC+3hF9RKH3nHRAvJ/f7/c6TmjlFQQGl69fzRdKlS83ccDCI/BWnnALi3KWLteGZh7w8vHPqVLGqheniP/kEC5oVTe/WzUyMd+yAb3DlyvA+GjqU7/p24on8d9Wpo43F00/DblO5MqW33goxl4fJk3EQMg7I78dYJHMIUgopa/PmpMXTY078CSH1CSHbCCGxUuK/hRCykhAyjhBSWfBMP0LIYkLI4nr16rn+aFWFTt7IhcqyfXK1desgJVStioNgyBA8Y5ey2w169OBLGOGwWDrZvx/94Lksz5nDl05Z1P/kyZTedBPfSSMSSa7kpMimJrpYwkY77Nwp5ti7dnXWt6NHIS047VsohHmmFHFQlStjXEIhZELQu3cPGGCv8laU0rooTosY64lbvXrQadudMGyCYzF7kdYNRo0CR8AGoFevxAXSs6e4GMzGjfbtHzyIhcz09qqq5dqPRDSPKN73tm8PDsC42EMhJPNKBj/8YOY0QiH37plLlvAPxQ4d3Pdp7Vq4u0oSxvWUU8T5lCxwTIk/ISRCCFlCCLm29P81CSE+QoiXEDKMEDLOro1kOP9ly/h7x+dLrFZXXIxDeccOEIybbsK8s7V///3Yiyz1d/Pm6ZHezj2Xv7ajUbN3XGEhYmhYv2QZ6iwjIf3pJ/6eiUYhBa1fryVK0x+GLJGjG6iqOwO5LFP69dfO2l60SGwzcxrh+/HHfOaRZdbktd27N8aeR1dY0CylzlTx4TClq1ZRcY5o/SR4vehU9epYnMyXneUZ4V316oE76dYNE5sufPUVfwCuvhr679WrkdiN16esLHAhIhQXw1NHkjRvgMcfh7eNE8M2ywp45ZX8v6eSz2fOHLiRVqkCrnHCBD6ncvQopStXwi23oACTzOZLdCjKsjuiwTgXI3cYi7k2Dh4z4k8ICRBCZhBCHhL8vT4hZLVdO8kQ/6lTxTapCy+EgfHddzHXrJRe9erWOmK2Z2vWTN1f/Oabxe2vXYt9xjj8//6X7zZsdCX9+ms+QZYkZMKlFAzXNdfgW5s3d148yYiCAmumNhzGHqpWjdI2bdwZxw8f5qtrAgEUQXcCq0BWnlGf1Rm4/HIxXWFqoddesy8I9a/9deZMsZX9pJOgSnjgAf6mFuWI9vvF+uZUcc451hvA58NhwBtcq5SwlILQ8zwBrA45dgWD8Go4cgQcMe+eWMy+6IIVVq0Chy3LuOrXT2zv5ZexUFhucxbBKUkQD60ORTd5hj75hM+5yDJsLS5wrAy+HkLIh4SQ1wy/r637+UFCyGd2bSVD/Hfu5NvZAgHNBmC33kRXNIq0zqmga1d+2x6PFmcSiYBoi/TWTZoktmmVQ//++1PrLw8iTxqPB9J5KlHtzz2XOEdeL6qoOVW9zZnD3z+RCBg8fdvBIBjp+fOd1Tk4eBBqYr2UxTypGjZEwfsE1fIvvyAPTs2aiC7UFzWxwtat5tNcr58qC7hJXqU/RRWF0kceEbfrVlRkC+nkk6F7v/9+7WC57z6+iBsOJ38o5uVpKa2Nm33fPqR6tSIaoRAODh7RsTsUjXjpJbHaa9AgV591rIh/e0IILdXt/+vWSQj5iBCyqvT33+oPA9GVrMH3nnsSVT/pSGnC1piTim9WEKl9eO8S9dvrTbRfLFrEX5+RCNZuuvHdd/zkbHfemZwNwYjPPoP0UKcO1M5uip+oKjII6w9OSaK0ZUtILSNHYq/WqaNJfKwuMk8ykOVE1/K9e0GP6tZFoN/o0VocQ0kJ1I7r5+2h6u8LU3Ol+usvfHydOhgMNy5Pu3eDc3WjKrjuOud2isaNYUht1gwBJFanfWGhu3QRhIiLqW/fDmlBP1GpBm9MnCjmtt98096jgh0AVasmblhFQcFwN/jlF3E6bjc1kukxIv7pvJIl/qoKUb55c3B2bjznrC5ZTj3Py6BBzj0ArYyq1asnBmldcUUiQWZ2irLK7zNvHtRoJ5wAaSYJm1SZIT8fCfkaNwZHPmRIYlRzPI41waN1+t/JMqqqOcGcOZTWrVFIP/b3ovkkRA96s2g8KIFbLa+w4vx8+MlKEkQWSYLu8Lff7DnQtWudW/EvuMBdvxo3dr7JwmFrg+uWLTCE1a0LVdUXX7jrixFW3Pbjj2upp62uaBTqnX79IBqeeSalH33kXgRmsSE8zsVlwEuFJf5GOOW22eXzgQjo10Q4bI6n2bsXh/XOnc77smcPvACdBErWrCm+LxpNLKm4cycylTZujLiEp5+GDv14g6pCxbpgwbGruDdvHl8T4fNB/XPSSchkYFeykmHXrlIDOnmQ5pFEXZ0qy9AHlQfuvJOvK5QkcBz/+Y+YiHz8sb3hi7Xl9ERkmDHDmb7V56N02rTUx8ENfvtNzG1Pny4ufWfcjOlazIWFWC+nnorNPHRoUvlYMsS/FE8+ac1tKwpquHbuDImzVy9K334b+4jl7KlcGT76lGL/9OuHfZCVhbZvvNH5/O/aBUJ98sk4mHj7lblwX3stv89MBVVSoiUSZH254Ybjs5Tpxo2wVygKGNNYLHXGLRlMmiRWQ9sV3OFhxAhKpWCcHiECAle7dvo/wojCQnviLctIXMZDixbOiHPdusmFpf/+u9iqrj9Y3njDeZtr1+IkT4XLUVWk3dUfTuEwvBXicXjrxGLiA0CWEZtxnCFD/Evxzz9IkayXagMBqOlat4Y6VS+h7djBZ1QqV4ZkPWwYPwV0//7J9c+YFoHl7Nq6FZ48IpXkihVQb/D6UhaG3lQQj0MFx8vlk2wcTLLYvp3PDCS7j++/n9IAKaQlREAg/P70f4QR+/Y5U9uISsJZGXwjEag/HnnEnIH0yBFU6lq+3Jmao2VL6/6xLISU4l0//WSOIdi5E6oVWQZhlmXnh0ZhIeIFJk+GK9rOndCNjhoFG8bpp+OAnDcPYn1hIQ4A3ib0esElphM7diCNQIqlKDPEX4e//wa3feKJsOFMniy+97nn+MQhGgXXKArAlOXk1buzZkHd16QJpPNt2/D74mJ4kumlA0XRyhqK+iJJx1cq5zlzxKoWfWGd8kL//onSviTBEJxMxtPJkymNRFS6hpzGn4xAIP0fYISqOkv0FArxnxf5qlevLlYVjR2rEWBFwQDygs4KChBIMX8+CKpIQolE4CKrqoioY+JsOIzESUziOOsss3VelsVulfn5OKBefRV9ZYZZ5mJ3661auujFi3HQRSK4NysLHiQ8btDnc+6DbIeiIsxBKKSlor3hhqR9yzPEX4eXX9bsYIqCGBxGYI245x7+2gyHzalNjIyA1Vzl5ED96ZRJYjh6FHapFi1wELz/vrYfrST9VN1S04kvvhAHcHXrVv79UVVIfO3aIW37kCHuijXpUVJCaZvz4vRiMp0eIfK/EkAxkwSCwfR2XoTp07X84qJFoS+mrsemTfCpZUYmjwdtifRyCxeaCaLXC12mfnFPnarp+KJRcCsffwxPAWPUYefO4FjGjTPr4YNB+NSvXSu2H1x1lbmfX36p+U+LxiQcpvTZZ7HRKlWyP0D1V7oS6w0axI8LGTAgqeYqLPHfvRv7gFV/mzXLvF58Pkh5lMJF+IcfYPuJx5FKnbdWwmG4WHbuzF8HrD0eBg/GocEOn+bNxWlC3EDUF7afRAdceUMUf8GCrP7XkZ9P6Ws1h9MbySd0JrmQ7iOVqMo+0q13TCpYtAgZNRs04PuuxmLmguoMW7eC82naFKkJRo7k+8/n5sLVi3fIRCLQ71MK1QXPoJWVhUyG770Hves550Btwzinpk35CzoUwsYWRXG2apXYz40bnSd5ql4dB53b8PV3303PvIkOnWg0qeYqHPFXVUoffFAjsrIMCfHii8Vz98wzWB+MMalbF7r09u0TDwxF0TKzrliBNc6kR58P94pieL75xszI+HxY9/q+L1kCd143h8KKFWJJJBSCfaKssHYtpd9+a51eZssW3LNqFZIeGt1RmzZNT2zAcYF58/CBjOj6/Vgo+tJx5Yk5c/gHQCQijkFYvRqbIBrV3EUfeQQc/L59pdZtSZwDPRbTPHaGDeMvzkgE0awiiNwrWVpmHufP0mHrMWiQ8yCfUEjz8nByfzgM+0A6agRTah3Uk0TUZIUj/h99ZCaygYD4MGeJAY2/r1ULut8330SRpPPPx1rV69Czs+Hxc/bZiNi3Mlp26iReP5s3Q1Jp3lzzggmFEPnvdM6feUa8Fx94QLtv+3bop//4I7Uo3MOHwfixQ1OSECOkV3kVFyNLAVO1yTJsdJUqJbrSvv568v04LrF6NRbE2WfDDSs7G6fbDz+Aay3rMmp6jBrF1wsqCp9jLSnB4hdtFlbL1oooSpJW2ebBB8X3WNU57duXv6Br1cKB1q+f2Re+fn2zF9Jttzkj5IRgQTtNB1u1KvSwdl5GqorNNnkyRPAlS8AJ8moStGvHf5dRmnGICkf8RcF4Xi+fyPv9fMmVxWykCyIpNhpF0Fj79uaDX1FwmDnB2rX8NRuJIJV1URHUoewgVBT0affu5L6HJZszHmT6SmkvvOC8GNXxFCC2cyf8+3/9NYkD8tAhiDnff6/52s6cqem8YzFMypQpae83F4MH8xe4348JMuLHH92nYjBOpt6V9PvvxfpTfS7x9euhm2d62m3bkByKLTKvFwS+alVNImGlL1u3BsfPcz/96iv7DKks5/6qVXimXz/7b3SSGGv3buiBFUXLquj3a9xSnz6JhvRly7TMpmyOIpGkC1hXOOIvyjlDiOY0wOZblsWuzcYAqlTxxBP8wycrS1x2khB4xTlFv36J6zwUAtPwxx/8/ez3J5dxtqRErGaqXl27T5QqnXcwd+miJUg8VlBVSh9+WEv3EInAdmlXOOpffPKJ5vnCvESmTOETn3A4PQYfO4jSBYhOXF5mTyeXzwfO1ZjFLx6HzlXfB0XRahAUFIArYSKkLIMTOnQI7nmDBsHf/uabwfXz/IRF9gtKIX526GDeGDVqwODcuDEisDdv1p5RVSSBEh0UbdqAmyouRuGGSZP4JQI7drRWOUkSuCh9ZtZNmxCRfe65SFP99ttJ5yyqcMS/f3/xeIfD8Mrq0AEeVL/+irQkvL0hSWZ3ZjfYsAG0gHGPubmIGmWHj9eLdfvxx5h7EXPSqJHzd6oq7FU1a2qMkqJYl6eUJPc0qLDQOt6FwUnCRv1BxPbCZ58lFlcpL0yaZJ4HrxfqOFts2sQXvUIh8e9Hjizzb6KqCn2ckfjecgv//l273BN+1qZInVVcjDS0F1wAgvbVV5pI9fjj5vFhdQT0WLBALJHccIP1GBQWwrDcuTPykHz3nb1It3kzkr3puRyvF8WlCwqg2qtVC31iiaH69KH000+hW/37b2c5XDwercpYTg6Cep5+OjEKUpaTStBV4Yj/nj3iqlUeD3L261FYiEOW7Q0mEQwf7uq1/6K4GP734bDGPZ5+OtbCgQOQtM8/H2tbHy1cvTqfIF52mbnsqBWGDnVur2J7duxYHEJuvIJEEpO+pkaPHu7rmbBDWpKQEysVu4RbiErH6uuUxONQB06caEjTPmQIXxceDIpP3+uuE1R9TzPicZyol12GCNsvvxQP7KxZ9kTL4zG7g773XnJ94y18Nm56lciMGWI/4WRL4Nnh778hsnfqROndd2sbMR6HQdxq8d5xh7uNyIrYiA64cNi1216FI/6UQh0nWr/6whwMBQUggBdfDMJtlCJVFRz8hAn2uumRI81Ss99vvz6//TbRScTjwaUomPcbbtBiUKxwwgnuCK3XiwOKpSYfMMAZwb30Un57t96q3bNlC9S2TKXlNrGjomBcygvNm/P7EY1i3rduhVqRHeqSBLtuPE7Fhk2rwsasStDx5Of69ddiIssmpXlzBM1cdBEkCObWmQxEIq/Hk5if5NAhPjE9FqkVrKQQ/Ti5jRewuoJB1/mhKiTxP3BAvE7c7rN9++ChEolozg6nny5WlYiyhwaDmmddYSGI2vjxiS6Sq1dDb1+5Ml+1+eqr9v11o2qxIrglJXBOGTfOXOO3pMQ6i4C+atfevWCKTzklubTayVbnSwZDhojd4ouKYD/hBZWOGUNhKBXp9nv0sDY6hsPQE9ph0yYsmm+/Tb2ikAg5OXwDlN8Pov/ee+n1y73mGr546PGUDqwO77yDAWf3Kwo8PMrCT/jQIUhLH32ERawHM+DbLd6zz07k6FK5PB4kKHOBCkn8KYWdxLhOWrVyn+zshhv4hM7ng/Ssx+zZYu6W6dZXrgQ3zDxupNKMv4zbzskRE9bGjXHfnDnw0luwwMyl33wzf63p++XzWVcu69QJxlrWx3AY6jImhVvp/BktMxpvGzVKbs23aeNsnvTjMn9+cuqisWP583fCCVDjisarRQvK163LMtQsH34IcbRVK/4J6PcnuknxPu6++zQjTjSKRbRyJf6+bRu4ms8/Tyw8kCxefTUxSlhRoBMri9zgLKpYtJCMOs8//oBh6Ior8M1lQfinT9fGmYl4+ipahw87M4qfdx76L0oN4eZSFGx4F6iwxJ9SeEjdcQeYiw8/dM8sFRdbuzTridyRI9bR440aQT3A84BRFC0Nw44dYiJTpw7cMyMRrCVFgYOFfr9v3w5HBib5BIO4f+xY7Jlu3aCvFgW9sf4YibssJ+avat1a/Dyv4pyVOspKHXT77fbzlJNjHpe2bc10UFWhoXj7baiQjelqRA4esgwpSLR//zXKx+OYyO7dcWoFAuhUJIIJueMOfiMeD9RGIvAiBAlBlrxnnkk8FKJRBJpRCm7j/fex+N0Wlfn9d/jId+sGg5CR8K9fD8580iSEvI8Zg8MnmRiGt97iczx+f2KSt/LAgQP8OTK6po4bh99ZeT689pp2P/O6clovwbghe/VyzdEcl8SfEHIpIWQDISSbEDLQ6t505vZxCzsOV08QraLC/X7YDBYvFh8Ql1yCdlQVxUeMfw8G8XvjYcSCwfTYtw/xJ926wZnCaCf64AMxIbOqHtaihdbGypViu0owaC4Mf++9/IP0xBORslo0zk2a2AfHdu1qlnZCocQMq0ePQqJhkkw0ivHUq++s3H4XL+YfYKEQpQMHUpwk06cjcOnLL/mDEwqJ81tYFT+/5BLxZPE4hawsGJ/YocAOn3QkelJVBK6Fw7jYpDL/2Kws1xwqHTNGfCgaF3dZ48MP+ZvU78dm0mPZMrgPtm6NRc82jqJAV2w8CDdvhhfDNddgQ1gRF0nC4u/ZE9HS/x8ifAkhPkLIJkLIyYSQICFkBSHkdNH9x5L4jxxpzZUGg5j7UaPgHy4i7OEwjJ+//ipWFer97X/9NZFJkGUweSKiXLmyu+867zzxNzVuLHZSaNxYa2PvXmuHB6O0/s8/cHVlDGwohJ9/+816XJgnXI8eYKyLikDDRo2Ceuell8TfUqmS9v5Bg8x00utNHPcRI/jfXrUqaDtT67N5URSMyYG1OzVLcDiMG3gLJxyGGsioUunZ03pzt2/P/0CRWBqJ8DnMcDh176Ivv7QPmqpWzZl3AsPWreIoZCsffjts3IjDeMIEcPQixOPQ448aBY5BdBBZ5WtfuxZ/v+EGvM9Ov/zMM2IVYLt2WGwpurodj8S/DSFkhu7/gwghg0T3p4P4L1oENeYnnzhPw7FqlTNPLVnWCJnoHq8X81lQwCdyPDXJtm2w7/ToAeli3z6x3UhR3I3HmWfy2wmFoFLlEXVJgj3huuvg4dKli3jtimp5Hz6M7+zRA9/G0pUXFtrbzxQFbrJ16mhu1azQjtUzDFap6plm4eBBfr4wfc3mzZtxkNx0E2yfeXkUg+HEqMdEovnzwT336YMIWLtN/tZbfIIk4gaCQT5XqShQV6SCLl3svzMatZZkeHjuObOR7pZbkieAAwdi0YbDmj7QGIBGKTYW0xmyjcxbVIqClNRukZ8PddigQZBixo7FOx99VMwgGIlBkjgeiX93QshY3f97EUJGG+7pRwhZTAhZXK9ePdcfrapQsb34IiJkw2HMazQKLtlJjq1Bg9JjpNfvx5wccK2yrDFtigL1sBNDdIcO5vXi84GYusGIEXzaUKUKONy5cxNzHjFViZPvjES09+zejXU8apR9AfbJk+3VoZGI87gBrzcx9kcU+8H228KFoIs8GmvMUJyAvDxn9TjZizZsgP84GxirjHgMBQVYJIzDCATQ0YED+VyH6FAwGm6SQceO9t8pSeCC3UoZCxfCOHrHHTDKJEv4587lT2Q0aub+unc3b3SvV0s+xTbArbe678/69TDA6Re214t1wIzqvLHbsgU5Rt58E4mvHIeYJ+J/kvjrL7ecf2Eh3I+tIlsbNrSfx4cecu+XbnWFQloEeHY2DpfbboO9zE5CLigA8/Dww4lqh1AIQYZOo2FVFVL01Vfz+1irljYu27cjLUzfvricficj/h9/jDXOXNklyT5wrk0b67bdzEcsljgud94pXg9eL2iOyIitKLBpcnHokDXxZzVAZRkixiefmAfGSdrV4mIslttuw+LJzoa64uqrNX2j349FccEF/JNUklLP7y3Sz/MOGlmGZFPe6NOHv1hiMUT3Mrzxhrj/fj/Ks911F9z4kjmImjUTL9pIBHPJJA12KAwbBi6ESS1sjSQRDX48Ev8yVfu8/LI9l6oo9lGzoprOyV6nn+7qM/7F5s1QWUSjIF4s+MvjwT4/7TRn5VQLCxHdbvVNoRDqWQwfDsmJrXdRUjrefunZE/YAngo3HLaWukQRtoQk2tOc9EOfLoVS9KlaNfEzd96J1N+i9TJ4MMZl3jwOHWjZ0rzJAwHkrLn/fnDBCxfC8MFbnOGwltDMLeJxuCLdfTeMOSyoTB8t6PPhHekoIl9YCO6fHTh2J3IkUr5ZTCnFIuT1JRbTEnZlZ1tXQfL7U9O5b9tm3X4shrxPc+eC83jwQUQS7twp3jxOYkF0OB6Jv58Q8hchpIHO4HuG6H63xP/UU+2JQySiJfATQVVhzHUToc27WDrjpUs1X/ShQ+GPbrRBHToEz7yhQzVmo2NHa1VHMIjAMDu89JKzb2F7WZIQxVtcbD2megeHunWh6nn/ff4h4/OBaRXBWMdYf7VqhYPO+HuvV8vMymjcK6/w29++nc+kKwrG+7XX+GPEIq19Pvx76aUGz8c1a2BdZp2PRGAANiaH4lWnYgMzcKD9JFph/nyxXeD++5M/XHgoKQHh+u9/kYdm/Hh4poiIXHmGaVOKugOigDtWqu2FF8QSm8eDOIJUsHmz9YaLxRKjIRlGj+Y/5/ebaxXY4Lgj/ugTuZwQ8mep188TVve6Jf6nnGJP4OrUcVbbVlUhAdx7r7gokhURrVkTqr2cHBCLLl00H/pgEEzamDF4z/LloB/s75GI5ipu966sLPtv4RFOu8vrhdrx5ZfF9wweDMZl3DiNwXv3Xf7e83rNxuA9e6DWHDIEXPUFFyRqMfx+OEYUF8OzTp+ZleVNmjULKrFBg+wP9ffe0zwUGVHv2xdzsG0b5plpTEROO1zV+f79+JB774W7IC/46O23+eoYrzfpUn3/4p57xLnJP/00tbad4OabxUSuvGuJqqoWVc1q9IbDCHBhGD5cLEpGIvBASrUPVpGN+oNIj9df53P+Ph82mwscl8TfzeWW+A8dKpa2JAnzKqq2ZYclS0CcRJy43ohbtWqi6mH0aLEH2RVX8NeJJDkzcAaD0LFbBTuKGDO7q149HJS850UBWLt28edAlhNTk7PAKfadigIj7dSpsLmMGAEpWI/cXNhJH3wQdpBkgk7//BP7aMAALeuqvi8s7XqTJmJJxE2qbUopOABRvnFZhpuVFZjY+NRTEFG+/RZc98iRGPD//EdcUvHjj90PkltMmyZOHZ1kSuKUoKpQqQwYAF2m0bAuKoARCGiR06li0SIcfkauUZLEVcy2bBGrfVz2q8IR/7w8ZOlk3COzO/XuDS7cmKbDLf76S3wwd+mC94wZY17voiIzhEACEHm6MGJkR6QjEQRMiXIODRuWnAqLpWiOx8E1n3cektT9+CMiaMeNQ2nGTz5J9Fh66y2Nw2YlLvXMrcjtVVHMaTNSQUEB+vbYY+grL/uBqC+iGCpCUHLWFfpzOdotAAAgAElEQVT25YtxXi/EFkoheowYgWAifSWZ4mLEBzDiqucImGHwhRfEucntvG6KimBMfuwxiG3JEGtVxeI3ctus+PvSpTishg51rbsuMwwZokU1+v3aOKYTubng5nv2RDTj0KGJtQN4GDlS6xfTZVql/xCgwhF/SrGZH38c3hvXXw/bTjrxyisaYWP7UO/UwZPgzznHmsiKOPyGDWGo1NvXRPf6/fDDZ8jOBtMzcCCYxtatEw9FJ4cK87RVVaiVBw5Em3PmwIuNtcfU3PqcPhs3wn37mWegstFj9myxb3/XrumZpz170Cd9H2vUwAHO6N3DDyNtjig6WyTB6H3/LZGXB5246HT3+dCZL75IDBBTFKhSVBVBQ3beB7EYuH+WSIwR33ffhW/5ww8jSZlRPNy3DyIOGySe2OoUqoro3ieeABFlnkUDBmipEBiRtSrhWJ5YvRqHwLPPmjMYHkusX4+DYvDgpCWRCkf8jxwBl83WMgvlt5Oq3WLDBhBCnh3AqN6gFPNo5a0icgJ56SWNw37qKahvx48XE+5gEO97//1E3bYsQ00zbRraeecdqFdY5L/oQBo9Gnv69ts1FYj+wNPfHwiYa3CI8OOPYuJ/5ZXO2ti/H/27/36oc42xEr16mcfc60U9hTPO0NaIVfr69u2xfthhqShwJXakbtq+Ha5aVoTb5wMB5umXFAWuieefb034GfGfNQsc9pAhWDi//ILTjr1fURDMcccdOBAOH4aNwngweTzgFNKBRYvE/uxGnV4GaUWFI/5DhvC5NSe+/W4hcnn2eiFBM3z9tbX6RlGgljEafDt2NBO0AwdA8ETcfygEJxNRtLyxLnFODrhYlq6FHRaShORvRUXibMW8Kxp1NnaFhfxkjvokd1ZYuxYBe3oHm4YN8T0MIm6eaSXsvkVRMHf79+OwHDIE4+d4HV1zjb2XgM8Ho4/oJOzRA3o2J8T/xx8T33/hheKFoijwSBBFvwUCfIOkWzz2GL8P/+bC/h/AunWQZvr3h8hbnhWGUoAV8feT/4eYOJGQggLz73ftImTLFkIaNEjfu3w+Qjwe8+89HvyNEELy8wnp3ZvfJ0IIkWVCLr+ckIEDCbnvPkK+/BJ9bdOGkM6dE9vfuBG/z88nRFXNbQUChFx3HSEzZhDi58zu0aOEfP45IfXqETJhAiG5uYRccQUhd99NiNdLyAsv4O+//krIoUOENGtGyLZt+F1enrMx8Xqd3RcMEvLVV4RcdRWoQVERfnfddYRcfbX4ub170feXXyZk/37t90eOEFJYSMiTTxLy9tvWfWHv4yEcJqS4WOvLNddgDu66q/SG3bsJGTGBkK1bCenUCTcFg/zGpk8nJB63GAWCv8+ezZ8wQvD7224j5PffrSehoICQ9u21/5eUEPLzz/yFQgjays/HohHB6WRawckmOZ6Ql0fIJ58QsngxIWecgcUyaBAWRTxOyNixWBQffcT/rv8ViE6F4+lyy/mLXBrTEdxoxF9/8VU5esO8Vd2HJk0Q++MUnTrxpQePB1xu48bg+j/7jM/1er1IEKlPxhiJgMMvLsbVpYumDgkEcO8llzizDwSDkCDcIDcXXPWIEfZV0hYt0iqOifpQrZp2/113mTl8pnIWMbuvvGLRF5Zxj+mJIhFEwIkMpFYd5b2cx53PmgXjzRlnaAENojb0ht2SEmdRcSxa0CiNdOrkbiJFWLmSP+CSlLr3hRP8/Telzz+PaNrx462Te+3ahdStTMwVLRRFQfqJ4xykoql9eGUUPR6HRbhdYPt2pEMw7huWlO/OO+E++NNPYvXDtdeK29+5Ezao3r2hv9+/X6xBCAa16luUQlrnqaOYKyNvLU+cCHugKDbGjo6FQqBPVskTU4WTAL5atbT7DxzAvEciWnnUBg2QU8u4r71eGzW3qsL6zSNiTz/Nf+aWW5wFavh8qB/KihGwrHUPPIBgKmYItmvHmD+jWzf79weDiKDTD1Lduqn7uesxYoSWpkCW8T0i99PDh8EN9O6N72E5UZKBkVtQFCRqEnk/9fy/9q47TIoifX81eXrCEkRcJKOIiIoHqKhgwoDhOAFPT0VRfyp6ngH1FNFTPD319FQQxQQGUEBEVEAPDCCYkChJwiI5CUtYlmXTTP/+eKeue7qrOszM7nq38z5PPywzPd3V1VVfffWF97vKeRr5DTdk3q5aQr0T/pWVyMDkcygWg88rk+AFK4j4oLgQ0fNB9e8PH5tI4E6fLr72999rJIP83DZt5ONST13M8cknmGO8WlgoBFkk24X07i2vyxuP47dWSmcwiH7O9e6KY9s2+7riRPBf6pFIQEl79lnI0aoqBLycdZbGkxSLwS9rybG2dq086F/Pda1HcTGy0GIx3EjGGBkOIzttzx44Yp9/Hnbmigoxzajs0BcPUVUIznbtcH+R3d3v15gzv/wS257Jk83e7KlTEUXRpg0SMDKpnrV+PUIeR42SC/QdOxCvzDUQXiNg0SL391NVsbYQCCBCQAS7urz6SX7bbZm1yQ7FxRisV10FOg69E8sl6p3wV1WtYtMLLyCcz23pRifXdyKI+Px66KH0inDhMISUyG8kSwy0Kubyl7+I21lcjF3DyJEQbLNny4V/375QFEXfxWLIl/n2WyxkMue114vFzi0OHcKO/IorEBW4Zo35HKvylvrDabRRMgkrzgsvQN7ZVnmz4mo5/nj57zj3zvPP499Jk7RVmW+pjJVvOL791lmtWH6INNrqaoR13XOPeQHweu3D4AYNEg/Gfv2wVeQdt349wt+uuAKOXKd8PrNnI5Rs4EBoHyINJ5Nt+44d8knarJn4NyItTXQoijt7rVMUFcEBz7el4TDaJJoQDlAvhX9NYudOebk/2eHzwXQ7bhwEsdUuRMbrRATt9JhjtJ1sNIod+4ED8uuVlEDh6tsX1AqiAu+RCMgXeelS4/dNmmjMo1VViMaxqlXsJhjiwAGYi4xsxdOmmc89/XT74JlGjZzf2zU6dzYLUJ8Pn48Y4Tw5avduxO6+8opW1ECERYusa4MaBfJRR8lZ/i64wNx2jwdOHhl27rS+Jy+g/tln5io37drZMw7ec4+zhBO/330Zyj175NpCmzbi39x1l9j/4fVqNQFCIdccO47Ru7f5HTGGqK0MkBf+OcSqVc53hsbjqKOcCUUrDbewEPQHvXoh6kzIMKnDzp0w33JrRSCQXu6Vj+V77sF1kkns6rlpllflMyo51dXWpmSrgkdGPPGEeLFr1MhMdb1xI6qBWclDmVKXExQVpVeT4ZOTCwlFSacMtsKePdjW//73CIc02tgXLgRjn5u07GAwPcZYD5nN0OuVD6Inn7S/Zzgs3p1YtUVVYdZy+mx+f2aF6Xv2NGsL4TCeS4TSUmh2fFcWjSKCZN067HJefTW3vhAjZJPK6h1ZIC/8c4DNm7GjtSoIopcDsnkpo14wokcP85j1erWxwZO2rBgyVRUJn6Lx1KYNeHFee01s5163Dt9NmiQPjvjjH+VjNRy24L83wKpurjErWFW1UrmdOpnlmZXvNWeorIRDRcYP7fUirdkKW7bAQcKFXyAAQfPDD/j+jTfSq1q51TJEsCraLMPLLzu7p2zgKwqSzUQ7gH/9y5kdz++HRpwJNm/WymtynpeLL7bO0OOp7K+8Aj+IEwbIXEGWTBMKZXS5vPDPEosWYezYBU34/TCPWmXebtoE60Dv3lDqZFnbmzcjKCEW0xzXIjkQDFo7KZs1k4+lbJMri4uRIyR7VpkZ2wiZCS0ctjZ17twJpSwaRR8pCkJWuX8nmYTpqH9/mLymTMnhPLayzfEXY9XB11wjtl8ddxxMR9nwiB93nPieN99sNmkEg8j2laGiwtkCZKX1hMPYsho1n1dekWdI+v1a4fkOHcwO4tJSFGI57TTYQc84AwuVyM9QXY1469dfT9cmNm1C2NeFFyLlPZuoolxh0CDxO5IxKNogL/yzhB0nj16gbt6M6DRRbHnPnjCD8vHOrQQyErNEAvw3Y8bI2XK9XnFVvpUrEaYtm7eBgHsTqgjPPCNeFBUFc9sJ3ntPrPAUFtr7DHllsjFjzLuEm29Ov66TOumOYWVPJoLQevtt+e9FjheuQUya5M7JazxkNvwDBzSTBl8xu3e391NMmGBfKPnoo62dMT6fuejErl1i4R8OY2s3Zow4m3bfPtxPFPnQsaO1A4yD+1L0JfEaNMjYsZozHDgAx5b+HZ16asasqHnh7wDl5TBz9OoFIjhee7q83Jni4/PBjKKqsFNffrlmMuTKy+DB4uCDhg3teWJkwp8ovXBJMomQaru2Zug/MmHzZjknkbGOiQzJJKLmjHM5FIJm72QuG/HTT+J2RSIIo80a5eXWBRJiMXGhDo7mzcW/CwRgapA5ljjvhxXXRtu28vsmk4jueftt/CtaCXfvRoLJ2WdDYK9YAWoDmXC/+27Ywdu2tS7vqE/A4Jg6VXNAxWJ4aTKqY47HHpNH8XAyLDt062b+rVUBl5kzsX08/3yEpdmGhmWJ+fPxjubNy0pbyQt/G1RUYCzo55OiQIOvrrYO6fR4oGxs326+7qpViO7h5RCPP14uJ0S2bT3+8Ad5G55/Xjvv9tutBX80CqtALne4kyahv+JxHJGIOFJHhtmzEWIqC393aj4qKkI9kx49sOsR7UgYy4FPoKICIVZWgi4QsM4kFfFr+/3oiERCvDgoCpg/33xTnGzGj5NOyvzZtm6FL4KbtHw+3LdtW/G9IhFVXbAAv00kIMxljuVmzcSC7MABxNpOmuQsQ7BzZ+tBbkdIV1kp1+hEtvWhQ81byB497Atvi7B8OUw4PXog/ltPgVsDqHXhT0TPENEqIlpKRFOIqEHq89ZEdIiIlqSOV5xcr6aF/9tvixWpYBDZ5wMGyO39oZDz6niy+rThsLXdftYs+XzSJ0o6CZ6YPLlmOKlKSqDofvSROCgjmYRcuPhiJFe9+ipkqCgb23h0725//x9+wDvk/SRTUoNBF3Ww586Fw+CMMxCVw0nO3nnHnuUuELCOCqmsxLU55WwkguowPE5/+XJoylwjDga1Iu+jRlk7b8eMgd3vxhth5rnvPucOnv/7P/Fgk5m4wmEkv+lx4YXiCeP3Z1+tTFXtGU7tnMOJhFyja9w4/dzNm8W+nWjUfdGJmTM1um0+GA87rOayItW6Ef7nE5Ev9ffTRPS0qgn/5W6vV9PCX6ZVx2IQliUlSDqUzXEnu0xVhWJjlBleL8KkOX78ETkyp54KH9Svv1pXgovFNLOIrPSn/nBS6D3X2LIFz6hXthQFCpoT6hsn3P52yqBeVjmKuHr55fT483AYDpv9+5HcZHcjvx8c/HZYvRra/Pz55lW5uhpOn0mT0jXE88+X3/eii8Anohcyfj8G6oknYmu4YYO8PbIIAY/HPLi8XnS8Ebt2ySuWhUL2hUzsMHmyfPFTFHnavB433mheAMJhc/jcO+/I44qdZhOqKt6tTIicfXaNsYTWqdmHiC4jondTf/8mhf/NN4t3gbGYRn/817+Kz4lEEJXnBMkkrsMLukejCFTgC//EienyJhhEcpVVjem5cyEj3nkHfgUr/0SLFjXTf1ZYu1Zuvg4G7bV+GX/WoUMI9ujeHWU1rfyR3BwVjToMwS8tlfPPP/mktQ1Of7z2mnbNRAJx4meeiS3g6NGZmQ1UFQ4g0QNHIghRtNIWOHePrNBxx47y3x52GF4a78z27eW7m+uvl7/QN9/M7Lk5kkkIaX2BZY8HbXNa47a0FI4vnqMQDuO9Gm35U6eKB7DPByeeU9hFhxk5SXKEuhb+U4noGlUT/geJaDERfU1EPSx+dzMRLSCiBS15KakawsKF4rleWAjBOmeONbmfW216+3aYR374Ib1KnygAhFdxE927VSv8vn9/eytENJqeSDp9OhTILl1gTcgFbbsIMlu+/vlkn4dCmqVDj8pKe5M7P5o0weLx2WfWJvg0zJkjj7Y56ijnTJ1HHQWnTyKBpAj9S2IMAyyTCk3ffitmLmzVClFITojkevUSX/vVV60H+3PPYfB+/721tnr//eJ2xGL4fS6wYweEfadO2JXdc499uUojVqxADLAsyqeiQpzcEw67q/q1f791dFgoZEMslRlqRPgT0RdEtFxw9NGdMzRl82ep/weJqHHq7y5EtJmI4nb3qo1on9de05QATmq4fDm+O+44uYCaPTs39//5Z/nuUs8gzA9FgaN33jy5EOR1gY072cceS5dDoRAi5zKJqrGDqFiLvv8KCsyLg8cDuTh4sHguT5jgrLBMOOxcEUzD8uXyTnUiWI0vr3dv65f09dfO2lVcDCdhu3ZaBwQCuHbr1jAhlZc7I50SOTaTSTiQrF7aH/6Q3pbOnaFFfPZZ+rVWrxYvIo0a5Y5o64UX0vs1GIQjPNMY5upq7Mi6d4d28dJLEP6LFmn+l3gc9xw7VnyN4mLYazt3Rsitvl/+8Afr+qu5rh2s1pDwtzuIaCARfU9EisU5s4moq921MhH+W7ZgJ9WyJcZb27aI8pBp6fv3Yyy3aQPT6IQJmAuHDllrrldfrS0S2WD7dvmc7doVpo1wGMIyFIJfLpHAeJFpz9dcYyZf3LVLfB9FMRNCOkVFBUwwXbogaurVVzWLRuvW1sL5888hyzjhnVEutmhhnssDB4qvxzOgeR9ddVXmlhW1Uyfzlosz8rkR/nxiW9EEd+xo3549e9AZxuswhgGuDze75hr7BeDww833GDTIvtzkoEFoS8uW6feIROAU12PiRLxYrlEVFmbOzmnEgQPyGgHDhpnPP3gQ7evcGU7wsWPTM/6SSWxTjSF/556L86qrwQI4Y4acZmLvXnO/KIrWL3v3yu3+fEI4TYt3iLpw+F5IRCuJqInh8yZE5E393ZaIthJRI7vruRX+mzZhPogIDNu0MedLHDwI27te+EQi0Dyrq62FPy/YnovY8XPPNSuWkQj8gaoKZWrGjPTAjTfekNNKjxhhvsf06XKGYJklwAqJBPxVegVMUeCkTSbNypleHk6ahGskk4hoEu2KQyHsVPR44AG5ReH110GcmXUAxaZNGtsctwkPG+acytX4sFZbfsbsteHHHpObmxgDPxA3wxw4oFXsEd1XUczEZEVF9uYszgnepIk8LtdoPywrQ97Cd9/lliZhzhz5QD755PRzKyoQ/qpfLCIR8PFXVKjq8OHY+oq08mgUUTpO8Pjj4j4Mh7UQ1qIi+ViwyjPIEHUh/ItSJp20kE4i6kdEK1KfLSKiS51cz63wl0Wr8fGrj4tXVXnkXCiEd+WkglW3bq6aKMTu3VBK9Br+I49Ym1ZnzJC3afJk8/k//ihW7jwe1M5wi88/F5ureDJVIoEELu7k5nVDjBTlX38tN7Mbw7ZltPrBYG52Yf9BMolssS+/1ITaBReYJy+PErn6avHEjkatdwyM2QvGU0+1HoCMqeqDD6b/pqgImbK9e+MF8EE1cKB5S/TWW3Kt3+eT84voj4ICLTuyprFqldyU1qdP+rnjx4sHaSiEwWXnPDrsMCT92KWby3hKOPNp+/aILnnhBfm94vGcdlO9S/KyMjUQmbPf+/QRnxeLQet24lj0el010RKrV2MOOTFdPvWUfE6KkpmSSYxB425BURBtaMSePdC027eHWeftt9MXo4cflssLvQlz5048kz7Kb8MGRNy1a4fFU6RUMyaudvbRR+b3wpNfZYEsOcGePYjW0a/Qjz6KTtmyRTxYGjaEc8hKcK9YgdW3XTtsAY2F2Pv2tddCQiF50tDGjQhdk8W5fvqpPKqFl4+0mwSK4s4JqseyZUiLb9sW4aqc4M4KXbqY26Uo5gVIFnkUCjnfyYXDEOBWdsT+/e3fEXd0ye4ro5rOEPVO+J9yivU8M1Zfu/12sekkGkUopWxx0B81yiFvgTFj5GafkSPFv9m4EdnGPCs3FhPT0Bw4gLloNO3eeqt2jiy3wI7aZv16+BX1c5cx80KmKHgHRiSTKLUqer8XXeSqCzNDURFMD0Yn0uefIzqEV+5p0UJL3y4sFA8ev98sNIxOxblz7f0N8bizGHcRqqrQPmM7nJaP9Pkyzyzm21FjIsi//239u+3b4RDjkRqRCPIzjHjoIfEzOHku46C2SuwSRWGJDq8X2pTRRKQocJ7lEPVO+H/4oXUOiJFKYcUKsRbZti124+3aWb/LQEDsY6oN/Pvf8nZxm7oMP/8M04ysIt9LL8nNYTy8u7hYrDAWFFhHD11/vXzR4nM5GoUNX4TiYvncLSiw77caRVUVBNqSJenbpGefNXeoFRnaYYdpRZlVFULMaiBGIpKq8w6xahVs37yQQ6NGGNh2ZSSDQWzdnPKVGyFLfW/Xztnv16yBT0FmltmwQRway2me3SwAdqUbR4/WnNyhkHxb3rIldgp6c9zdd+c82aveCX9V1epF8773evE+JkwQnz95MnbnfDyccAK000OH7E2dsRhMLE6r1uUSTz0llx8PP5zdta0yn/ULy7ffIjGU8421amUvg2QJoNEo/Bjz5lnH5VdUyP2TsnK6dY5EArVj+YQPBKyFv6KkJ1HJqAb4cdxx6cKjpAR+gDZtoGn+85/2hGTJJLShBQuwiC1eLPcFeDwwvRQV4bcffwyHTvPmqnrllc4ZMq12NKefjt1Utvj3v7GY8gnevj0GmZvKTKEQJpwdDh3CtRcskJt3OGfJtm0wceWCYleAein8VRURWfPnI0Jr4UKM+40b4e9q1gymD70Nu7IS582fj0pUzZuLmWNl46Jbt9qr+3DgAPimGjcWmxndUCrLcOedYlNvNIo+1SORQL7S8uXOlJczzhD3YzDovF71oEFmueEm43r5ckT3FRZCZjktwJU19uzBzmDECOvQymDQHJp23nniLc8xx8DnwFFZiXBVvfAJh8G74wbJJDQh0UDo1k1LxBg5Ml2L9nigbRl5f0SQMZzqB/P48e7aLUJ1NRazVau0QTpvnjk8U3ZEImIGRyv07StO0vn44+yfxwHqrfA3Yts2CEu9shWJpFeaO3gQipJ+fvl8zmido9HMTa5uUF0N86qVEhiPOyNItMLq1WIrRfv22e9Op00zXzsYFDt3ZSgvR+QhjyQKh7HbcdK2ZcvwvvQLp6KkMzLUOGbOtNY8Tz3V/Ju9exFxFApphHD/+If5vPffl4dhuS08vn07Iln09T/1RSTKy8XP4fU6478ZMcLe/HLEETWnWSWT0NJl5i2PB0eHDukTPJGAj6FDB7Tv+uvN9ZgPHEAYrv59OWYWzB554Z/CvffKY8m5AvPaa86yR2XHI4/kpKmW+OQTeTZwMAhfBWfZzRaffop8oEhEi4yzqjfuBiNHppNWXnZZZlnGu3cjItPNb/v0Ee+YGjZ0mBi2fTtiips2RYc/8wy0ua5dYV7o1QvavRWqq2Ejkw2mBg3kjdm2DQ8tyw+4807xNUOhzJ2KmzZhe2ds06pV8gHZurX9dTlXj5X5Jxh0XiAiUyxbhh1UOIzF6MgjzQJDUUCkpaqw/+sXLZ8PORC//mq+9o4deF+OOUZyg7zwT6FrV/G4KihA4IaqWhdNsTsiEbmDMpcYOlR8f58PxHG5JghMJBDB50Tol5aiDYWFUIbuusuaN6i8HOYX0XypScjKTyqKgwSxffvwgHpTiN8vjp+1C1lcv14eRmm0+bvB88+LhWksBi6bXGLPHrnZpGdP59fh4WWyvqjpAiqqismzbh38FeecI24LY1gkRO+Nh/7+RmAl/D1Uj9CuHZFH8MQVFUTNm+Pvo48mCgYzu35ZGdH99xPdeitRcXHm7bRDq1ZEkYj581CI6KSTiBjL7f08HqJjj9X6SIZkkuiss4iGDyfavp1oxw6iUaOITj+dqLpa/JtgkOi444iaNMltm+3QooX482SSqFEjmx+PHk20b1/6Q1VVESUS6eeVlRE98ID1tVq3JurcWd6Yxo1tGiPBNdcQ+Xzpn3k8RNEo0cUXZ3ZNGRo2JOrbFwNQD0UhevBB69+WlhLddx9RYSFR27aYpOGw+To33UQUCOS23SIwhnYcfTTR4sXic1SVaPVq8aAuLyeaPbtGm5gzyFaF39KRK81/wQKzaTEQgMnuqKNgN+b5O5lq//ya7dql78irqhAo0Lw5dhr9+6vqL79k9hz795u5txiDeUYWtlkbmDlTvPuPRnNH5MixbZuqXnddusIZjYrDvEUQJYmFw+Yys0I4pXQmcpax+fHH4sbcdJOzh+EYNw4aaTwO6ui33tLiyYNBbH15ZI4R33yDyJp4HFxDdnHCRpSVgUwpGMQWuEED+21wIoE26V9iIICBHI1qkRaBAJw7mYaSZgoZo6PV4fE4HES1A8qbfTR89BHMEYqCMdehg9jxmI3w54Jo3DjtvgMGmIMhGjXKvJzi0qWIVgoGcXTpAgdtXeKpp+QWDFHY6cKF4AWKRrHbf/VVZyarAwfECV78cLoAjBoFGaUokI833eTQsvDXvzpPEHJC2qaqCM0yNsYN++ULL4gLms+fDzuWVZTKt9+aB30gkJn3e98+mE3silKrqpwbJBpFhJG+TT4fQvQyLGSeESZOdE7frT9yRfWbA+SFvw4rVoCB1u+XR/CIMk1FBy+QJAvVvvNO3HPjRvEYCoWyrye7bVvu6vEmEghEaN5cIzR0WqJSVZFDIQr6iESQiazHsmVmx7qiODOXvvyy9e7MDT1KZSVygFw5mjdsMDeeMXGW7sSJzq9bVZVBY1IPIdNYRBFDRpx4ovi3Xq911a9sYUVJK/pcUeRp65miuBgcIwUFWHwHDdKytr/5xhmthVEoGDmW6hB54Z/C+vXOczoKCsTRZ34/hMvTT0Oof/ih+Jr6TO1p03LLpFlTuPtu8zNHo85zdcrLsavSL5yMIbzWyILbv794gVUU+2S5a6+1f39Zo7oalWSaNsVK06tXOmnQN9/AVsiLJlx4oRb9EQ5DkLz0kvU9vvwSfDGhELY+VnwYVrd0qAYAACAASURBVFi3Tt4RgYD9760SzZo0qblKP5MmiScP386K2nPNNbm7f2UlzGL6HVMgAHNPdbU889juOOus3LUxS+SFfwq33+68Fsf556PuNd+FN26Mubx1K8ZMcTHCeo2x4vzweLS5v3KlWFP1+5HwmQ0mT8b4DQRg7v3ww8yus3eveHfi9eI59RgzBhGKvCysPgFz3TqYjgMBPN/JJyMS0AgZ+V4sBtoJKzz5pLXVJRjMrA/ScMMN5pUwFktnpksmse3SC8fycmzH7OJFv/7aPChEmu2CBRBCwSAWoiefNMe7r1kj7wy/3/5ZrcjIwmH70NCff0buQTCIifLgg87sZxUVMOXoFx/GoCmJ4q1DIdAm24FziTdrhjadfDJMW0ZMniw2O8Vi0NhEpfX0g0y0K/D5sHt4+mm8r2AQE0LEmlgLyAv/FGShniLtk5OJVVSAKFFPsVJdDV+B3UKin8tnnmlWZiIRuf/NCXjNX+M9rXx133yDfvD7MTaffRay5Mcf5buT447Tfj98uJgmxePB4sMTF/ftkxfOKStDUqXoXqGQfXLazp1y+mciVT32WC1Ue8AA5xnD/8GOHWLN0+9X1T//2eXFJOjeXdz4hg21wfbzz2LbmLENZWVy88Sxx9q3xc7JdfXV8t9u3WouxxYOO8/W27ABk8Pvx9GkCX4vMqPF485snEOHiieGsZDMI4/In/nKK1H4RfRdJALT3DnniLN3r71WXsSiSxcxU2ENIS/8Uxg40HqHyxhIGO3CoD/5xLn5qFEjzOX9+zGeAgGMgWOPNVMkuIVMe5bxYS1aJJ4T998PgSqjVL78cvy+utpaGeLXs6NJkDEUhEL2gRJcqROVVWUM89IYfn/MMemLty1eflk+UHJRuEFV5SutPplpwABxO/RZiRyDB5sXgEAAREl2sMpqtOOzeeAB8cBxW5N2/35sI0UDw+tFSruRkVGEgwfF22xe8EaPsWPlyWmBAGoCiybMQw/h9yUliHDi21yeAWznJFaU7Aj4XKBOhD8RPUqo1MULulyk+24IoeDLaiK6wO5auRL+K1bIx3k4jEQvJ9EmTz5pvYgYx5B+npaXO6NdcNIO2W7d4xGf//vfywswlZZiHIssEVxhmj/fWWGbTp3S7zt1KjiSuP1ftmM67TT7IJFHHjHPx1AIu51x4+TBI455e1askE9erxfmoGRSe0H6v93gpJPE94jFNJNRp07yc3j2ML9/dTXMLfrOCQTgzLSz2cvaQgRt2yoDr1cv8e8KCtyRJQ0bJh5ckYi7jGSrbONWrdLPLSuDk0r27K1aYYEoLMSgjcUQkWA0u+kn9cKF1ttSvhBdeqnzZ8oCdSn87xV83pGIfiIUc29DROsoVdpRduQy2ufrr7FA68dZu3aq+sUXzq8xebI7x7FTrbO6GnOgYUO0r1Mn1N+QQcaH1aKF+HwrO/vKlTBx3XEHFgCvFwKb2/P37LHX+vXCmGPGDOd5E7w2uKhfHnvMuq74OefIGY99PmdkjKqqwsQhC/UKhWAK8Hjwd7NmeFHhMKgenETpJBI4RORGxvKKV1xh3ZbCQq2O6O23a+RV+t9wumWrBUrUFiLE09pVxhk8WLyah8NiZ48IH39sbUO1o1HWo6REvnhfcIH5/A0b5PdlTFtcS0qcTeTdu52FhxoXohrCb034DyGiIbr/zyCi7lbXyqXw5ygrg7DLhIa5stKakkU/l0WcWzLccYdYHsh8RWPGiM9/803x+RddJB/jejNkdXV6vyQSqAToRIATYXHlcOpn4SUrRbjzTnver6ZN5Zq/K0aDjh3FN/B47G3joRAEqQjbt4O8yOfDynrRRXAINW+OazdogC2lXkj/9JNzvvlQCLZE0fmRCPjurTBhgtaWggKstk52NBs2mDs9FELEhFNYJVMpivPEDQ7RRAqH5X0gm8zNm7u7L8cNN9hrPG7ZVTNEXQr/DUS0lIjGEFHD1Ocjiega3Xmjiai/4Pc3E9ECIlrQsmXLjB/+0KGaIQPcts06F6BhQzhTnVoE9u8XKwx2O8TXXsPOlTH8a0VnPG+eXJZEo+aQ7vJyzZrg1MylKOm1g+12wPwZCwrEeUhWipz+OPNMvGsjZw/34zgia1NV2L5EL9brdc7tbSwjWFUFqli9Td7rxc7h4EF0tGigHDqErZ/TTFPZS4pEUGTEDsmkvC1WWLgQuwvGNMeNG63K6gU3buye0K26Ggk08Tja1L69dVWwsWPFWpQxOcUpKiuRCMgXRVH+x/ffZ3Ztl6gx4U9EXxDRcsHRh4iaEpGXiDxE9AQRjVFdCH/9kYnmP3065pvXi7H/wAMuBIBDdOggHq+HH+5+wVmxQm5KsivrmUjALOPknm++KTatcv+WqmKR4NaNYNBa8AcCcGoTIYLnvffS72en+TOGSEZZ4fWVK+1NbNxfU1aGvtc/Hxf+ThJOVVWFmUMkCGQlGEVHjx7p15wyRfwQ0Wh6qUaOTz+FLdLj0TjHu3VztvCIHKaRSO0Im6qqzPwfssWNMY1P/dRT5YNEhmTS+aR/6y0sxkR4104WSyf3Ly+HLZfbLDt0AA9KLaHOo32IqDURLU/9XeNmH1EpTVGEXLaYMkV8n0yy4ktK5EEKffqIf5NMwhfWqBHmSOPGsCTYmXdlgSbnnosADZm/THSceiruJ1t4Zs60jsm3o3s/cMB6B92hg6bUyYI3YjGH+Q8HDoAwSK/hRyJwJsj4wEVH06bp17XKZB06NP3c774TD6qOHd1nmxJpce65pnrNJUTcRoyJ4/937sQ2OdeaHEemZoJkEu2y0jJqq9KTDnVl9inU/X03EU1I/X2cweH7S64dvuefL54HoVDuqUEmTUJypscDE2GmO0VVhXxxEp7M8eqr4vOt+LTWrRPvsgMBKJh33OE8Ec4p1cpzz8mrjQ0fbv97nmxn/D23nPDSnFk7fM89V5yMsW4d+Kyd2LD4KqrHtGlyzd9YV/TCC8XXDAScF5rgna0ocERnO+iTSWwta5JSefJkbbfTpIm84HqDBhigigJnUG3QPNthxgwIAZ8Pk+uWW+qWYVGHuhL+Y4loWcrm/4lhMRiaivJZTUS97a7lVvjL/DdOskfrEokElMTDD7fOB9m7F/NZZokoLLRWQPr2TdemGYNc27IFRGtO5IuV/8yIZBJJjnq56vVijjsJe9X3i4xCZ+ZMefGqaNSCYieRQCjj0qX2adjLlyOsyEoDD4XMHSPKCvT5EH5lFF6y4saxmKp+8AFMSj4fXljr1nLHU7bF3Dk+/BBaTSCA/rn99poXuG+95Wz7GQ4jlDUX2L8/PSS2uhrjwjiR+HjhfbBwodi5fMUVuWlXlqhzs0+2h1vhf9llck2zLoqsu0VZGRIZjbvEZctABcOTIa3mRSwmD9ioqIAPpGFDzOnzzoNtXVXlOTs+H6wZfj/Cwo0+TTuUlsLsxqt29enjnjOsrExuAjrtNDxX27bpfcPHgc8HE1Ua8+nYsVhROJeMrFPPOSe9IUOHijVTj0deOLm4GFmGkQge4qqrYMIwol8/+aJiJEhSVTm9dCxm3lW4xZw5YsF2ww3ZXdcOIoFqtdjKUsmdYM0aZFvzSXXGGYjlb9gQY0If2z9unEbZoCioVNSvn1jYBIPuktxqCPVO+C9ZIjaHZMugWdMoL0egRCiE44gjNI11zx7rOHfRoSgu4ttVLBSLFmlBErlUZLZv1zJ7AwGYsN3SnWzcKJcJRxyBc379FX6ESMQ8JxlDhcXSUhVOVacC5pZbEN7F4/itBO7772fXUWPGiK99wgni859+WrwihsPaip4prOyn2QhcJzj7bGdhXrEYoiUywcGD2H4aIwREE+m668RChUc7iA6/X1X/+MfapaE2oN4Jf1VF9bzTT8ccaNkSJGu/ZZ+XqkJoiTJsZ82CbTyTIjMNGzp77unTkdMTCmHMFhbifocfDsXHcbSMAIkEou2M1pJYzJpm3ojKSrnZ3Zi/M3Gi3Mw+ZoyKbYDTTgyHtUia/v0RvSF6GaEQNI+NG9M7bOdO53UqzztP3IZgEBqAEcXFWNH05p9w2FkG6a+/WnPlyExQ0WjmAtcp1q1LJ4CyKnWZ6XbeqXmJSB7y5vVah8MFg3VK3VsvhX9NYNcuZAjXBMOtVRnUXr1gMpEpFzxCTXQwZm2ira6G4DfKsmAQcigX+Oor8RxzStKox7/+JVbAjAXrrQrLPPSQKi/ia3cEg0gqaNLEbG9nTHNGFhTAg37iiRrts5OKO1YC94cfYCsz2gM3bAABUyyG1XroUOuXvmYNYnADAbTthBNQgGTLlnRNQZZhzJjG4FcTkGkLIsEvywx0AitiNzeKgWibaTznp5/ACGsVpVRWhvJ+69e704oskBf+WaKiArZ2/fs877zMIrd27cL7Nf7WLs7/3HPF3/HkzRYtxN/HYvK2TJgApVGmuIRCmZea1GPMGHmgyrXXur/eO++AeiIaRRTj9Onmc6xKSk6ZoqrqxRc7IyqSTeZPP3WW5m0Umk2aYJLLcNZZ8t8HAhB4TZvK62Lu36+qa9fKhf+hQ+ZkCP0LP+YYzR63YoVcM1aUmtP+Z80S3zcQwGSIxdyVfpPho4+ca/6hkLjP4nFoN2eeKXe+86pPioKtuDEkMJFASFswqN3D64XikGWESl74O0BxMZQykXnjjDPE79QuRl2PX3+FBs99RYWFkB8cZWViAcmpkmWBKD17Yvwffrhc3nAOMD3mzrU3eRcUuK9IV1oKShe9b1LGUhCJYP5mgrlzEewSDqNPTz0V1haORAKKtrE8bMeOKeVLRHHq9HDicZcd0ag5E06Pk092dh3jdqe8HA7lUAgdG4+r6ogR5uuPH2//3LGYllX7wQfyjGcRBeuePZhI2UQEPfecvI1W9NJ2SCZhTtq6FVveO+80C/RAQBxO9tRTZh9EOIzJySe1kVLW6t3pM45lZkQiaGdWyoIN8sLfAqWlMOMGg5iXBQXpSVpVVfJ36PU6v0+XLmZ5YVSennwyfQFgDG2S+b0aN9bGhRXtjH4uc1x8sf0YDYWsufCTSSiZ3BJx770Yw9Eo/r3vPm2Hc/HF6ePb74dJVxTAYoctW8wLpdcLpVC/ozpwAG044ggsjnfeaQgtXbAAK7KVIM8kscrqsEs6kJl9jIfHA45wjhtvFDuM9Fwbqgo7m921w2HY11QVGorM0XL22dp1Dx6Ec5NPpHjcHPmkHzAirF2LUDJZMl0kIo+mssOcORhwvDpTs2biiXXuuRDMZ5wBLf13v4OmfvLJaJfHg4nZurU5tMzN0bOn1ieyrEsieRa4Q+SFvwX69TOPAf3CvHat9Tt0giVLxAu7x2NWnt59F9nujRvDZzd3rlywN2ig/c4q+z8chjKlh4y/TD/PBg/GudXVWKQ2bdJ+/9132lwKh7Vqh8Z+5HKuogJyp1UrnHvLLc59oEY8+qi4T2Kx9KpijrFqlXk1CQRQdb5RI2cFnZ0e0SjKN8pwzTXOiZR4bYHSUrmG8LvfpV9/6FBn1+bp8Nu2yfn6hw3TrvvHP4onEt/efv89Xj4fMJ06pbN+VlZqLKWi9vj9+H2m2oLTXZ6RzC2RgKA3vhMeBGB3PdniwFk9KyutzY9erzt2SAPywl+CXbvkgrVHD5h1rDTqaNTZfaZOlY9pu/raiYScclwfRDBnjrUSYiwXeeutcqW2fXtkCSeTsKc3aaLtQLp1g8XEabLpYYfJn239euRWGZlyN2+GqUhmOZDV8I1E5Iymtli5EiGchx8OByiPkV+/HqaGww+HVm7H7Kk/GEvXYkMhxJRb2anXrMEqZrfgBAIgD+MdJhNuIqoJJ23Xa9i8NjH/zudDf/DtZHGxvF/OOAOrvNG2zhiuwV/yRx/JnV6xGBYjK4K3igoMms2b0z8vK5PXRRAdxhqgX3whbpff72wsiCaZ14s8D4527ayFjBu+eQPywl8CKydrPG4fWul0BzpzpvwaTgpDvfde+txjTFwMaMwYscyIRs3h5xs3YuegP19R0qNvVq82yxQnzMbG843YuBEKKTcRHXYYGBB+/RWLbiiE91JQgKpdCxemZ8vLHMjhcA1HIJaXywcMY1ohBl7X8tprVXXIEGyRWrVCoklZGWLkFyyQC7NVq2CLPOIImEH+8If0F+H1YmvII0JkJdYYMxdJmD3b2cr94IPabxIJOGeOPRba+Y03QpvWt1fmOG3dGiYk0WSKxTSz1MsvyyecHSnX2LEYLLEYBk+PHtq28rrr3O3cTj45/dpvvy1/NifXbdEi/d15PGjnmjXaPT7+WHytQADZi1k4tfPCXwLZXPZ6rd/rYYdhTDjFtGlyM+aZZzq7xsyZyFto1gzmoCVLxOf17p0+h4JBVT3+eLEj+5dfYGVo1gwyxpgQeued2Zu8jblJiQRMpcZdtKJAQRPdT1Ew/zite1kZon30i5CiaOUmaxQjRzrb7hNByOodSImEqt59N34fj+Pf666zT6JIJhHidMIJSMa4/vp0G9wnn5gFOncYGZkwk0kMOjvNpnt3531SUSH2C3i9WADvvFN8j0BAc0rLsnpF/Ed6/PCD+Xd+P7Sq0lLnmgrXqIy1VVetEvdVJIKQPytzUjCI3dmUKWhPs2YwjxmL3Nx/v1hAnH9+Vs5eVVXzwt8KI0ealap4XG5CadjQ/T22b5ebTZ9+Wjvv0CGMZbtQcCtUVqrqM88gCKFtW5h4M00wlCWyuplLRhqIOXPEipQTJUpRNJv+3r1w5rZuDYV0xAid+SiRgG1qyZKaYVK0Csc0Hkcdpf1OlKQQDmvOlUywapVYACmKnAK5vBx2ZKuUcVHVKyuMGmWeSAUFiK554w35ffTC9ve/T79GKCTXXDj++Ed5bdLZs60XubPPhu20eXNEJBiTRTiuvjq9XcEgtI+DB5EoduKJEBp6zcXng5aoT6KrqEDo3cqV6WVAZTsLnraeBfLC3wZTp2J31aoVFLGiInHiFGMowJQJBg9OV84CAYw5niX/zjvYhXBzU+fO6cpdXeCll9xFQ/bsif5p1Qr/ikJM33/fOTlmRjJp7lxMmmgUR/Pm4oZkg7ZtnTe4oED73ZFHis+JROSL1MqV4CiXaYCy7VkshoxEKyxeLHYuezyZ8QJNn47taatWcJgVFeHzp54SC2iPB9/xZ6+qQip7x45YNB9+2L40Zvfu4j6Nx2Erb9JE/P1RR4m5lUSorsa2s1Mn2Ofvv99Mb5FMIq28WzdoJLfckm4amzwZi208jvfdoQOiSawcvkb/QwbIC/8M8OGHZkUmGrUvaSpDMgleqK5dMX7uuUcz+c6fbxayXi802mQSCsO330KZ5QrDpk1QbKyy87NFaSnaqt+1yMbpf+LnbbBpk3OriegwFodPw+7dYi0qHs8tv0rnzs4aa9QWZFqox2OmAN64EQ+rKGh/NCr2Zl92mfiasZgFlanh93qTg88HTdb4MpNJDP45c6zpFNauxaKjF4533SXvo2AQfoRMi808+qh48QsG0Qajw4wfPILhL3+peZ79lSvF9QpatMC9jz1W3DennQbF5fvvM65fkBf+DlFWBoG6cCHG+jffgF79qKOw83Naj9otBgwQmz14BbJIBHM5GoVS1asXxm1BAcb4jTc6LxLvFnv3wnR0zDHYgffrly7D3CyKiQQWussuyyy/yu+3sZCMHCm3z2YcBiTAiBH22cGijjnzTPG5xxyD73ftQhjomjX4TOQYMe5iREUduPD75htcz0pD4Fpt584QQo8/bhbu69djdefJY5GIuV7onj1wtIbDGJihEBzcyaSzTNp4PDPelKlTxe9CbzKZPRv2c1EUlaKIk+FyCavd2Vdf4R0pivYcHg/6r3FjnBOL4W+rEGEJ8sLfAd55Rxvb0Sg0Xm57Ly/H+Pnuu5oRsuecI54PToMUFEVVn3gi9+3i2LcPZm4+rwMBWD7at4c/Tx+4IMPSpVB0olEtKKNlS+cMC34/dvB6ypNDh+BT+OGHlPL28MPiH/t86c6VbHHwIGy++gkdDMLjfMklENyijlm4EIOMC3XuGPn8c2wF9Su66OV7POa08oMHcT/9dkpR0Ln66w0alJmGm0ziRYuE5g8/aOddcIHZaRmJYPdRXY02Wr1gp3WGjejbVz4p9D6Pigr5lrN1a/f3dYP+/cX31dNuL1wIreiYY3C+KCIrEnFuqkohL/xtsGSJeVwwBnPxRx9hQYjH8a6aNs29CVkWCefmyIFvSIo+fczzWlGsi8XrUVEB35exzYGAXCFkDP6/k0+G0jl4cLrgf/99zUcSjcKcXvTal+IL1kTB7P37VfXvf8d26LTTMIllxRNmzYL2UFkJrpYBA6Bl9+8PW97o0c63QsYqYaK29OhhjjBQFHOmH0d1NXwlX35pNj/Nny/uU8Y0qoWdO+VRNd26IfbeztbnuNyaAVY2fz03yd698tC1eNz9fZ2ipASDV/T8waDYsffWW2LhHwoh9tkFal34E9FEIlqSOjYQ0ZLU562J6JDuu1ecXK8mhf+aNXIHZCQiHtMNGjhjkd26FWGediaRkhLsNLKxhYfDuekPI/btk4epHnecs2tMnSruY5/Pmim3oEDzjekZAVavFi+WjRsl1cS5hvC7SASrV13wec+YgYfg2kOjRmKyJFkBc9FLtpv85eVyQSzScH/4AVsqvYajJ43797/lE4QvRKtXy1fxNm0QWWQXchmJpO8knOKJJ8QTJxyG2Wv6dGgNVlE1HTu6v68T8NwFY4EM/rwyG+azz8onnT7/wgHqVPMnon8R0d9Sf/+nkLubo6aE/wsvWJtWAgG5qc4qGCKRwC6b8z2FQsjkLS6W/2bfPihvJ50Exc1prXB+5Ip+2YjNm+W7ksJCZ9eQKTJEeF69rPb7zfPE48H85PL7r3+Vv5epH1Yi++6UU6AFjxkDzXbdOiTTZFvgxCl27JCz2Rl5+WX1OPUHYzA12UW/7N0rj1PWRx6pKjz6Il6ZcFhbbffskQtXvhBVVcEmLVrBe/dGHWGrZ1MUmDwyWaD37jWHrPJi77wSVzAIx65M85cN5MpK7IY++8x9zYDvvxe//0AANtRx47AwzZpldubKch4iEdd2/zoT/kTEiGgzER2d+v9vRvjPmWNvapFppYGAlnAkwosvmn/LGHxOTpBIyOWB15uuMfv9GN/63UVFBZLCpk2zp0LZvh05KN9/L557iYQ47NXrBYmkE6xfL5YfkQjMN59+Csd6t27Q8kXPHYlozzhwoPicaBQLTRoqKjQCp3gcL69DBziAjZlyW7agM378MfudwvDh8od+/fX0cwcOtOfz8fmcJYAkk4hQMP7e44GA1WP8eHGWYyCAGqAcRsbBcBh+AP1C9P776U5L/m8shkEqE7weD66nZ7l0g88/d2YyUxR5HxsXRVVFeF2jRtqOiA9WVYUyMWsWkutEBXZUFaY9kUMrFkMdAR7FFY/DJjpvXvrvr7wyvc8VBZPE5bisS+HfU3/zlPA/SESLiehrIuph8dubiWgBES1o2bKlqwd2giuusHY2cpuz7PtFi+TXtqJXdlKwXFVhKjHOJb8fCaMrViDJs1s3ZL6vX6/97uuvtXDieBzXEFUWTCY1CnFuNz/66HRaZI5p03Advkvy+TCGeRi3E9x1l3ksd+9uVnpkBbbicSzYqqqqkybJTaImwsiHHpKv8oEAbrhnDwqT8wUiEoEpZts25w9oxCOPiAeY3292Pm/aBM3ZarsXiTjndv/qq3RhFwhgUKxdm37eyy/LzTF/+Uv6uTNnIhHqlFNU9Z//FIfOzpuHpKuCArH2Y5UurijWW2MZ+vSxF/z69+1kUSwtFS+K4TC09SOO0BxOoRC0PSMuvFDchmhU3I4GDdL9LYkEWB7POgumgDFjMgr3rBHhT0RfENFywdFHd84oIrpH9/8gETVO/d0ltSuI292rJjR/WXEUflx2GSLVZPPXipLdSolzU5th8WIoEN27gyLGLqa/pEQ+Zo1FWSZMMCumXi/MMCIsWQI5ybnKolEoRk79qMkkrC69eyMZbNQomKeNkJWkjUS0nXdVFXKJjKb9e+8V3FjkaTa+zK5dzauJzwdSMo5EAivrxImak273bvDdz5hhzkKdO1e8QolImVQVL3fIEAgWkS3ysMPEoWY8JnnixHQtgGsI3bsjkmjLFmjqH32kaaxnny0XUJ99ln6fqipo2ZMmWQ9EKycRY/DMiyZVIABbqZ1Zy4jTTnMu/AsLnS2Ksh0Rr9Jm/DwYNPsrjBnP+nElEhCxGJKLcow60fyJyEdEO4moucU5s4moq921shH+lZXYUU6YkB4tYpW9esQRCGC44w7x9+Ew3q0MVuYkfdJfrjF2rLwAkn4Xv3Sp3CwcDos1+mXLxM9lVFiyRUkJdiD8XjwaUk+Ro6qw5rz+OuTXJZdgdyLcETsxCci2gKEQvPa//AJnKU+28PuRgBUIaFusxo3T6QGSSWjJxmuec451B+zcmc417/HgGUSCYcsWhAbq42dvukkc0jl5Mq7DNVZeXUoknC64IP0ay5YhzI3HnIdCcFCJsHWrdeSCleOXO8kmTTJft6IC9sGJE9O5wJ991nmo3B13QPu66SYs7H/9K9pbUoL+mTIFi88rr8jHjWzixOPpjKI8Q5L3MR/IojFBlPtclBTqSvhfSERfGz5rQkTe1N9tiWgrETWyu1amwn/JEi2QwThmy8rAk2Uk3LvkEs2MN2OG3LxgVBb0uPJK8fs9/PCaDTp56SX5PLj7bpxTXW1d8zcSEZu0Bg+WKyxTpuT2OQ4cUNXnn4dgv+oq5FdIwTXfsWPFYVVOqtbIjnAYmX3HH+8s6YJH84wdC2oB0ctQFGtqYlWF+eOJJ7DlHzgQW0ARuncXJ4IZfQpbtjgXkD5f+pYskUDMs+g5RM7HZNK6vKWi2EczhMPpgnT+fM3+zifyM8/guwMH4MNxssjzAjV6fPCBZn+PRNC2IUPkZFyy+zCmMYL+8gv6N4gavQAAGmdJREFUIBrVcjbatYOf4OOP5QWtRTbXLFFXwv8tIhpk+KwfEa1IhXkuIqJLnVwrE+FfXS3mwdeTjZWVQYPv1QtC5ttvMda/+gr+uiefRAUu/ftWFE2QyrB1KxYdbuJkDOM5gwQ9V1izRu5j5JTgc+fKWYn5Aiji0br+evH50SgS5OoEu3ZBMHMen3AYwl5fCIDz49sJBpmt7s9/dh6DyzMz+e5AtGAoivW20SmsNOzOndPP/de/nLNbejzpwv/bb+X9J6NR/fJLeX9GIrAfWtFKB4OacK+sFJvugkEMZlWFlv3ii9hVWZHVnXhiejutFsWmTc12xfPPt+7HUAiL1gknmN99JIIM9LffRjuM13YZwukU9TLJa84c+Zi94grxb7ZskXPZeDwQ5sGg2RwqAlfezjsPvsRsmDrdwEggF4mAnZPvOD77zJpYLRAQZ+zKFJZgEHJID06pMm5cZj48x7j0UvM2PBCAE3DePO2ht2+HwMmkIpescHemh88Hh2m2WLNGroW2a5d+7rBhzp/dWGBixgz5gLGKL37lFbGJJBSCz+TDD+FUF7WLMZhmRo9GX8ni8yORdD+HqiKrV7azaNs2/dznnpMLc58PTtvLL8c4Gz8eGuW998r7LhJBf8kWFE6zHYvhnNNOgzDKqPycM9RL4W8l5Hr3Fv+mZ09nFfQUxXnUTm0jmURgxpVXwmn9wQfp5tuSEmsLQCwmtjJUV8MUzBcWbsI0mn4nTdKKtHDurBrZGRw8KLe/8sb16KF5iXnHnHKKWJgz5rx8YrZHp06Z8djoIYsH1lf44vjxR/lCwQUlj4k32vwOHJBTRluleCcSmGjGAfPoo9o5K1bI65sGg/it3eJrLFMpi00OBBDepsff/279zvWZk5WVWlEd2W+aNsXkseMx4keDBuKohxyiXgr/khLxou7xiMfs7t3OE6tkpo5kEtEvo0ZBAagpsrVs8frr8qi7Ro3kEWXV1Qgb7dcP1DV8182xY4d4LofDNWDO3LfPvnh2KIQYUz3eeUc+OTMtxu32CATAxpctZs6EMOLtVhRk1Iq2WzfcYN4S3ngjiNwuuQRmh82bsSiNG4dBwqOaRo/GS+RCLxLBImonuIwDhsfq6nHHHent8vvdLcLBIHYZr76qhdI57ZcFC6x9BV6vtnt89llrJ7CiQOOsrhYnvImOeByhozWIein8q6rkc7ygwJzouWWLc9OuomCs6VFWhp1DJIJ5Eosh1ybTUPF167CIjBuXWzZijrlzoXjok8UUBfkFmULmcA4ENBNuTiHLCNMfxuo727fLHSNu6lNy4dC1K0wUosQqn09ubskVH8fatQjlvOwyvABZqGQyCeF09dUo3/b55+boAx7hEI1qqem8ePjixQjF7NcPg1JWYNktkkk4pAYMgOPNqeA0vrtwGMf//R+uWVTkrF9uukluetLzKB19tPjeHg/6RW8r5YkxdspELCaObMoh6qXwnzXL2s/Xvn362E8mreso6w+RY/6BB8wyhZsN3YJfS28+MVbEygXKyqDUXX455kk2fomtW8FTJlLavF6YnXMOWUaYUTAY8cwz6VlrnP/nrbfSNVwrO3k8np7ksHChFonCNQQr2gbG7J+vpASRQy++WPO0FKWl8ryE+fNr9t56yPIyPB5nvhfOJOoE1dUIH7366vSFOhyG0qCfEC1ayIWBKH57zRpMKisHdChUw06xeir8rfio+Jg2CrvvvsPYsfONDRyo2dETCewyZQuN3++OFmTWLPEcLCiocfOgFKtWIfppzBhzASNVRaJoKCTfOQWDuWdCVUtL7TUrxuQRKfPnq+ptt8EcMXWq9kKXLwf/+oUXYnER3cPvx7bMaLfftg2r3JVXgiN+/375YLIT/t98o+UVcE3g1luzixXevBkva9Qo85Z00iTxIPZ4ELGQKYqKsHi9/jp2DyNHYtssoya+6SZxnx9/PHZ6fHJYZQuLmE+N2LkTGiDn/olE4Cvo2xeZhsZw3MGDxXbho46SvxM7c8Idd4h/l0hAgD33HBanLOzH9VL4l5Zam/OiUSQ7GbFlCzRvK5kSjWplFk880dq/4/e7M9sMGCC+TjyOcVCbSCYR1hoOa/MjEsFix1FUZG8u8/sRaJHTqmP799sLf48HTkU3qK6GAODx6Hrhree34BV2RKUS163Davnyy9a0pTLIiNIikcztci+9pC0i4TD+1vPnv/uufCBfcgls3u++Ky8nuXQpQkpHj9Y0hEce0dgR9X2nKGiDKE1+505o2VzIc8qNxYuRTfjWW5gkAwfK23v66fb90beveQEJBHDtl17C4q3f3u/ZA0Gvb1c0ap3i/ssv9tEVxv4sLgaLIaeBiMWQyGeXGyJBvRT+qoroLJl8aNrUuraFHctuMIh3ZOckPuIIjHEnWbCLFiFEWCb89Uy7tYFp08Rm8FhMe54nn3TmJ/X5wJUkwp49yOD95z/l+UxCdOlif9NBg9w99BtvyDP7RIK8YcP0xIh//APnBoOY+CJzhV0x6Nmz5dvWPn3cPY+qyldoHpeuqhC6ohfJcxf8fgikxo3TF9RkEtp6OIzJwH0GL79srZ3z+4uEWmkpdgcDB4LjX7RLqKxE3xuvqSjWrIuqigXeqm18cQyFkG3IUVaGLNyBAxEpZOfQSyaRGS67TzwOqg09Bgwwvwe/H7vJDFBvhb+qQiE54gjtXQcC8uREPezkipsjFkN2r6ziVTKJwvFWUWSKUjOOXxmWLZMvbPoghccecx6cwRjG9uOPQ2EeORJyIxSCzOBO5+uvd2jdWLYM9jArW7CIsVFVMXFHjMAWX1/xSZZ+LzPfxOOaQ+ann+SaHt+GRiIYDMb4dD0+/9x9nLIVnnpKHnM/YgScoV26mFd6EQ8NYyhEw/HJJ+LF0k7w8z657TYkxEyebM4u3L4dJiPjO+L49NP0jOFoFLQNdvbRYcOcT95wGJrJE0841+L0+O47+QSJx/HceliREGZg8qvXwl9VsYv+4AOYTJ94wp5fp6Qk91F/Ho85f4bjww/lCY9+P8bD2LFZdYFrWAXSxONI+lJVLK6ZViGzSgJ1vMv5+mvrlxWNmn/DkxG4Ns8986WliBt38xDxuJakM2SI+KEUBRE2t9wCrdRuFT90SGx/j0SsGQU5li7Fluz55zHYn3hCXuT8uefgmDQKfsbk0U/hsLZ4yQrIOzn4PTwePG+bNpptkL+jcFibBKLiJxs3QgO57TYMGjv7eCYDlmdr81J+69bZvwM9xo4Va1LhsNlvZJV0lhf+NQ+n5uQGDdwljQaD4l3upZfKx9zAge6ok3OB9eut54eipEfODRmiWTi8XhyZJNPqD8fWjQcekK8iopq3+/bJHy4eR7y7G+Ggt4Hdd5+c0sEYG2yHjz/WTClc8F98sSbckklolcOGwb/Ahebgwfidz6eZLv75T7njuqgIAs3Ny1EUbVDKBm8mh88Hc9iwYeL2RiKIUd65E888bBjoJ9wIxQcfzC6Zz+NJZ3t1gmRSVf/0J7Sf0+LqNbrly5H89qc/IeTQOIa8XvhdMkBe+GcAWSIoET7X8+w7zf4PBsXmSxn3WDxe83xAIhQVyRUQxsSRdIsWYRF46CFYQTivVaZzzPFYlwlcIjTgrrsQl84FtIyulx8nnojDavLzlxkOp9ts588XRxmEQpklfGzaBB/CPfcgFp4LuURCK/bBbfKKIk9ECgblMbjr14OISvasIl9B27ZaW95/35qnR3TYCV/Z99xXwh3GjOHel1/uvDj9Aw+Ix4sbbcXvd5+hnUwiye3ee7FT4buHoUPFfcyFSiSCkGFRrV8HyAv/DLBqFXxbfFxHo/AdtG0rXpjtFgDGzLxSHBMn1lx45y+/YNc/dKi5WJAIiQQCIUTP4/Op6v33O7vvoUOQuZmYhCIRF7kvMoFLpH0ejYKZcutWe+EfDMLTLWv4iSeiE55+Wmw/vPdeLVfA78fEtnNAusUHH4gHjMxJEwiIBWowCNPQgAHmQc0YNKBTTtFWcc5+qY/7TySQ+GW3AHg8aMcll0Bjd1unVC94RQNGVLFIBFmJRP0CYEf1kYnwN+LHH5GQJjMxeL2IKHnrLfclJHXIC/8MceAAwpOHDIEwqqiQvyuPR/5dJALaBFnUYSIB5YXvCrki54RAzgpvvqmZTDm1yi23WO+SZQsREcLe3fq77rjDnf/ErSKnqiq0Ob3AFUXY+HxY1fbutV6RAgFo6aJko3AYgv+++2BTl2ljixcjzPHxx625v+2weTPuc9996Zq/lZ3QjfAPhZCZZ9Q8/X48/5o10D4eegh0xf36iZ+Ha7WdOsnvf+216RWFLr/cmVPY2F6Z4LaKnjKC2yllAt7nw8C95hqxL6RTp8zzLZJJOB+dUFCLEhRdol4L/w0bEJV1992IT88mRyaZlCsswSDCQ7mSFIlAc//znxE9aOfj47T0f/sb6mJnGxO/e7ecxcAqW1hmggqH0+P7nWLfPvSLyIzE/QPhMBTMhx92b8L9D8aNgy327LPlQiUQwLnvvSee+IxpRGHPPiv+PZ+03G7LPd+5xiefmG3+l14Km7+sdKGiiDs6GBQPhmBQfH4ggHDTgwdBX8EHNectkW0hZQUwIhFzMekdO7QCOXZCkHOiX3aZPArKrU186VJwuYvMPV4vxtGsWUguM/ZRKCQPSUskEIV0993YcuvrEqgqAhScmslEwQouUW+F/+TJ5vlzySXZEa6JFBa/H76aqioEHAwbBv4wWT5MbUCWs8MYtH8ZZEplPI46B5mgqgoycvBg0Lc8+igCZF54AQuzvgCWI+zahYSi227Dg3JNyq5ObDCoXWPNGiQTBQIa1W7jxiAHq6rCVs3pBHW6HVq0CFr8PfdY2+Cson3Gj0f1HJmd8K67tO0ed/iOHw+nbyiE5w0E8Pef/iTWQBlDGx9/XLxLat1aLPiSSeRVKAreA4/WkS2QFRXYalptDf1+vOfFi+Wx/ZGIOWTSOF6eew7XGTdOs6XKQmB5H/BQVJmpiRfJ4KisxILCJx6vTKbPzrztNmdOQr8fC0yWqJfCf+9esVITiaCkY6bYuRN2/1gMCkIsBge9vrLcbwETJmSWrS+TK8ZcpppEdTXaceutsJ6khcRzDh0ulJxGbvAVWg+eRv/44yiywW2r339vzQ1iXBWdbIkeeyw96UtRJEWHVQgVqzh/fWIIz5jVC6NlyyDYhg9PL7awdi14jZ59FiaYMWPEL9vrhXlLFu+rKNbmrMWL4ah+8UVnW1gr4f/ww+nnfvUV2qx/9gED5NvFRYvQl3y8RKOgddi7F89gl56u3+0ZDyMz6+jR8kWZT56//MXeuRwMIgLr2muRDJOFf6HGhD8RXZ6qzJU01uIloiFEVEREq4noAt3nF6Y+KyKiB5zcx63wLymxriR38cUZ9KIOlZUQTv/4B/6VUSDXJfbtk9OwG2tN65FMQuHguTOc0qEmiOVEqKiA9YYrT3zuTZuWOuHYY50JZT6JfD4sFkcf7XyFnj/fuadan+Qlg0zIKAoSw4xwmuG7cCGE/CuvZEYQtmuXuF3hMNols+GHw7Cn5gpWwl/EHlpcjNDZp56y3zZ27CgW6Jzqe/hw9IFsx8gd1cbPGTNnj591lnyMcP7zefPkhd2vvhrXLChITwps0iTdX+ICNSn8jyWiY4yF2ImoIxH9RERBImpDROuIyJs61qXq9wZS53S0u49b4f/ww9bjqW/fjPrxvw5TpmCecnbeUAi+OydYsgRK4htviMncagqjRonnRoMGqlq5abs72uXrr0dUziefuFuhDx1yHr/bqJH9luj55+VODxHdqRW3j5EOIFuMH685Uvkg4TTOw4ebXwZjcOLkEgUF4r71+bLTrHbulI+XI4/UztuwAY5vkdDw+cSfK4qZ1+f888X3MvpJ/vY3ra952OqHH+K7Sy8172Y9nszogdUaFP7/uYhZ+A8hoiG6/88gou6pY4bsPNnhVviLqNX1SkttE6TVJXbtQnb68OHZBZ7UFs44Q/ze4nFVnTd9l7sQwWefzawR334rd8rxcCxejk9UoMSIkSPFOwm/H9qrCLzYsp7Vc9Cg7CIWZNixA7uHESPSNczKSmyTea2DWAxaKC+akivcfrtZSPv9mfEY6VFcLB8vrVunnyur8xAOI+SPm9a40Daao1QVIYGicVNYaA5fW7sWk/LVV9MzP2Xt1ReWcYG6EP4jiega3f9HE1H/1PGG7vMBRDRScs2biWgBES1o2bKlqwe2ImVzzBuTR52gVy/xe4tGUzv8005zppUHg4h1zQQLFsgz1Lp3x6R9+23nZEvbtslLnFlt50tKEDkwfLh7dtJcIZmE1vrCC4ilrwle8ZISLaooFNIqIclon93g9NPNmnQ4DD+PEePGaURTfCfEczSKi2HTf/FFecp9Mgk/AKcOicWwq3HDZy7zLwSDtS/8iegLIlouOProzsm58NcfbjX/F18U71Y7dnTdd3nUMmTKU/PmKeVpwwZndAThMOhCM0EigRsar+kq+8yAd9/Vdgxcg3zttcyu9b+IZBK+kxEjtHKIucDGjarasqUWJBCJQMOQLWK//gpb56uvpjvL3WD5cuz2xo93n6B1441m7Z9TTWeAemf2qapCSLCi4IjFUKfBLR9THrWPZBKhqNwcGovBrJ5G9VxVhWgXzl/DTQZcuCpK9vzXixfjxrGYZpe1y5Czw65diLB5440cFzfIwxJVVYgYeOmlGqgqlGPs2weG1WhUK+XXuXPGjjcr4c/wfXZgjM0montVVV2Q+v9xRPQeEZ1MRM2I6EsiOpqIGBGtIaJziWgrEc0noqtUVV1hdf2uXbuqCxYscN2un34imjeP6MgjiS64gMjnc32JPOoIa9YQff01UePGRBdfTBQMCk7aupVoxgyicJioWzeiuXOJ/H6iSy4hatAg+0ZUVBBNn05UXEx05plE7dtnf8088rCDqhJ98w3RypVEHToQ9exJxFhGl2KMLVRVtavwu2yEP2PsMiJ6kYiaENE+IlqiquoFqe+GEtENRFRNRHepqvpZ6vOLiOgFQuTPGFVVn7C7T6bCP4888sijPqPGhH9tIS/888gjjzzcw0r4e2q7MXnkkUceedQ98sI/jzzyyKMeIi/888gjjzzqIfLCP4888sijHuK/wuHLGNtFRBuzuMRhRLQ7R83JJfLtcod8u9wh3y53+F9sVytVVZuIvvivEP7ZgjG2QObxrkvk2+UO+Xa5Q75d7lDf2pU3++SRRx551EPkhX8eeeSRRz1EfRH+r9V1AyTIt8sd8u1yh3y73KFetate2PzzyCOPPPJIR33R/PPII4888tAhL/zzyCOPPOoh/qeEP2PscsbYCsZYkjHW1fDdEMZYEWNsNWPsAt3nF6Y+K2KMPVALbZzIGFuSOjYwxpakPm/NGDuk++6Vmm6LoV2PMsa26u5/ke47Yd/VUrueYYytYowtZYxNYYw1SH1ep/2VakOtjh2LdrRgjM1ijK1Mjf87U59L32kttm0DY2xZ6v6c8r0RY+xzxtja1L8Na7lNx+j6ZAljrIQxdldd9RdjbAxj7FfG2HLdZ8I+YsCI1Jhbyhj7XcY3lhH9/zceVEsF5XPY3n8R0d9Sf7cmouV12HePEmoyGD8X9l0ttut8IvKl/n6aiJ7+jfRXnY4dQ1sKieh3qb9jhJoZHWXvtJbbtoGIDjN89k8ieiD19wP8ndbhe9xBRK3qqr+IqCcR/U4/nmV9REQXEdFnhNoopxLRvEzv+z+l+auq+rOqqqsFX/UhogmqqlaoqrqeiIoIhWZOJqIiVVV/UVW1kogmpM6tcTDGGBH9kYjG18b9soCs72oFqqrOVFW1OvXfH4ioeW3d2wZ1NnaMUFV1u6qqi1J/HyCin4noyLpoi0P0IaK3U3+/TUR/qMO2nEtE61RVzYZBICuoqjqHiPYYPpb1UR8iekcFfiCiBoyxwkzu+z8l/C1wJBFt1v1/S+oz2ee1gR5EtFNV1bW6z9owxhYzxr5mjPWopXbocXtqKzlGtxWvyz4y4gaC1sNRl/31W+qX/4Ax1pqITiKieamPRO+0NqES0UzG2ELG2M2pz5qqqro99fcOImpaB+3iuJLSFbC67i8OWR/lbNz91wl/xtgXjLHlgqNOtC4RHLbxT5Q+6LYTUUtVVU8iosFE9B5jLF6L7RpFRO2IqHOqLf/K5b2zaBc/ZyihKty7qY9qvL/+28AYixLRZELlvBKqw3eqwxmqqv6OiHoT0Z8ZYz31X6qwZdRJvDljLEBEvyeiSamPfgv9ZUJN9dF/XVVbVVV7ZfCzrUTUQvf/5qnPyOLzjGHXRsaYj4j6ElEX3W8qiKgi9fdCxtg6ImpPRDkrYea07xhjrxPRtNR/rfquVtrFGBtIRJcQ0bmpiVAr/WWDGu8XN2CM+QmC/11VVT8kIlJVdafue/07rTWoqro19e+vjLEpBHPZTsZYoaqq21Mmi19ru10p9CaiRbyffgv9pYOsj3I27v7rNP8M8QkRXckYCzLG2hCKyf9IKCB/NGOsTUoLuDJ1bk2jFxGtUlV1C/+AMdaEMeZN/d021cZfaqEt/P56u+FlRMQjD2R9V1vtupCI/kpEv1dVtUz3eZ32F9Xd2DEh5T8aTUQ/q6r6nO5z2TutrXZFGGMx/jfBeb+c0E/XpU67jog+rs126ZC2+67r/jJA1kefENG1qaifU4lov8485A617dmuYa/5ZQQbWAUR7SSiGbrvhhKiM1YTUW/d5xcRoiPWEdHQWmrnW0Q0yPBZPyJaQURLiGgREV1ay303loiWEdHS1AArtOu7WmpXEcHGuSR1vPJb6K+6GjuSdpxBMAss1fXTRVbvtJba1ZYQBfVT6l0NTX3emIi+JKK1RPQFETWqgz6LEFExERXoPquT/iIsQNuJqColv26U9REhyuel1JhbRrqoRrdHnt4hjzzyyKMeor6YffLII4888tAhL/zzyCOPPOoh8sI/jzzyyKMeIi/888gjjzzqIfLCP4888sijHiIv/PPII4886iHywj+PPPLIox7i/wEm5qwHdOJfRwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -145,111 +145,113 @@ { "cell_type": "code", "execution_count": 6, - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "array([[-2.39430024, 4.82135902],\n", - " [ 1.05475945, 0.56506096],\n", - " [ 4.33381523, -2.79295785],\n", - " [ 1.40967652, 0.23582632],\n", - " [-1.86874245, -1.94575582],\n", - " [ 3.49504802, 4.46631455],\n", - " [ 3.73910681, -1.20697797],\n", - " [-0.03709135, -2.10326967],\n", - " [ 3.45305859, -4.34793504],\n", - " [ 3.03208277, 3.74285745],\n", - " [ 1.5465798 , 3.50062332],\n", - " [ 2.2422928 , 1.0046194 ],\n", - " [ 3.03217811, -0.82377688],\n", - " [-4.53947789, 3.70865422],\n", - " [-3.25118429, -1.72249205],\n", - " [ 2.26245853, -4.28364219],\n", - " [ 4.94378489, 4.28009147],\n", - " [-4.69232032, -0.58696177],\n", - " [-4.89189465, 0.39817474],\n", - " [ 3.76075994, 0.31297542],\n", - " [-3.16975246, 4.25281293],\n", - " [ 1.17872066, -1.09249838],\n", - " [-1.95646119, 2.20465081],\n", - " [ 4.27728295, 1.53512327],\n", - " [ 0.05835676, 1.70723529],\n", - " [ 2.60309217, -0.45217353],\n", - " [-0.17392586, -0.27012307],\n", - " [-2.05830803, -2.06266253],\n", - " [ 3.9529746 , 3.42138605],\n", - " [-3.79939733, -0.21979507],\n", - " [-2.29925996, -3.34504866],\n", - " [ 2.82327177, 3.36741078],\n", - " [-4.36398037, 4.90756469],\n", - " [ 0.42676851, -0.06020275],\n", - " [ 3.17293673, 4.77796787],\n", - " [-2.94774218, 3.9356928 ],\n", - " [ 2.59485714, -4.80307843],\n", - " [ 2.36994981, -0.95851792],\n", - " [ 4.88820476, -1.35503075],\n", - " [ 0.94150698, 3.12143851],\n", - " [ 0.33869197, -4.67364091],\n", - " [-2.72092697, -0.16985042],\n", - " [-1.95475038, 4.82283169],\n", - " [ 2.45764492, 4.77215002],\n", - " [ 0.05377156, -2.35640137],\n", - " [ 4.35117408, 1.90279533],\n", - " [ 4.51945998, -3.4003176 ],\n", - " [ 1.8446393 , -3.17348665],\n", - " [-3.39891706, -4.60282665],\n", - " [-2.73001814, -2.3755611 ],\n", - " [ 3.70599397, -4.46493656],\n", - " [ 2.21630505, 4.14085098],\n", - " [-3.41340833, 3.44627966],\n", - " [-4.60977981, 3.96608819],\n", - " [-3.12045006, -2.6109695 ],\n", - " [-1.09736041, -1.80670439],\n", - " [-0.01733633, -1.72932242],\n", - " [-3.8893666 , -0.23795606],\n", - " [ 4.32262985, -2.60558145],\n", - " [-4.94835985, 4.9499789 ],\n", - " [ 4.83372946, 3.18143365],\n", - " [-2.97234861, 3.43734029],\n", - " [ 4.13213153, -4.01988738],\n", - " [ 2.50430662, -3.55060295],\n", - " [-1.13021843, -2.66490227],\n", - " [-3.52868187, 3.08060977],\n", - " [-4.60059847, 0.07549374],\n", - " [ 3.02082047, 4.1033937 ],\n", - " [ 3.17455034, -3.3296469 ],\n", - " [ 1.5874334 , -3.8626682 ],\n", - " [-4.83005533, 1.64085882],\n", - " [-3.67705824, -3.7420375 ],\n", - " [ 3.37141151, 4.31804914],\n", - " [-2.32695571, -1.65021845],\n", - " [-4.93262416, 0.30335477],\n", - " [ 3.09178415, -3.5606033 ],\n", - " [-0.99362255, 4.12845851],\n", - " [-4.93026694, 2.8832776 ],\n", - " [ 4.76078721, 4.52391074],\n", - " [-4.02330413, -3.919773 ],\n", - " [-1.2605584 , 2.07658856],\n", - " [ 4.76819758, -1.74330259],\n", - " [-3.27001856, 0.52159983],\n", - " [ 4.28932043, -3.4243422 ],\n", - " [-0.29372312, -1.51538405],\n", - " [ 2.46437149, -3.73790856],\n", - " [ 3.25584766, 4.32526613],\n", - " [ 4.41084634, -2.65951582],\n", - " [ 2.05089111, -2.77049322],\n", - " [-4.64295989, 1.17909785],\n", - " [ 0.73985808, 1.09177819],\n", - " [-3.08619219, -2.23259432],\n", - " [-2.21523998, -4.29746264],\n", - " [ 2.93142476, -3.074807 ],\n", - " [-2.23827727, 4.12204265],\n", - " [-2.88171529, -0.87372322],\n", - " [ 1.48659654, 3.79868869],\n", - " [-2.57574569, 3.29476101],\n", - " [-2.86541983, 4.08032984],\n", - " [-0.36862476, 3.67346937]])" + "array([[ 0.9118242 , -0.90045672],\n", + " [-3.94382217, -3.98527811],\n", + " [-1.18697017, 0.80016719],\n", + " [-1.85839332, 4.98952722],\n", + " [ 1.07261938, -0.90803895],\n", + " [-4.53758697, -4.30257501],\n", + " [-1.17461754, -2.39901897],\n", + " [ 2.34774061, -4.72969268],\n", + " [ 2.47747169, 2.77914928],\n", + " [-1.11617222, -4.16037991],\n", + " [ 1.4716821 , 0.88162217],\n", + " [ 1.78297491, -1.44883212],\n", + " [ 1.58199674, 4.6052321 ],\n", + " [ 3.99068967, -4.28056417],\n", + " [-0.16221614, -2.24741286],\n", + " [ 2.32933961, 0.28596881],\n", + " [-4.70438519, 2.44675435],\n", + " [-3.29578251, -3.86079991],\n", + " [-2.15187954, -3.38596945],\n", + " [-1.31823703, 1.6351425 ],\n", + " [-3.13072307, 1.32378202],\n", + " [ 2.76175045, -1.78814111],\n", + " [ 2.73156012, -2.64332344],\n", + " [ 1.64996223, 1.83230706],\n", + " [ 3.31936639, 0.2228602 ],\n", + " [ 2.26694906, 0.63193375],\n", + " [-2.51414076, 4.51560257],\n", + " [ 0.27215252, -1.67282386],\n", + " [-3.64167257, -0.14559744],\n", + " [-4.30424639, -3.37589157],\n", + " [ 3.01745299, 3.51058308],\n", + " [ 1.35223951, -3.06364559],\n", + " [ 4.94253085, -1.60716143],\n", + " [-4.36074161, -3.10693624],\n", + " [ 3.10628154, 3.49373291],\n", + " [-2.74311538, -4.29366027],\n", + " [-1.89979198, 1.41734176],\n", + " [ 1.9159884 , 1.23531441],\n", + " [-2.15457615, 1.1728522 ],\n", + " [ 4.60642972, 3.51823611],\n", + " [ 1.59513489, 0.56356173],\n", + " [-0.32910123, 1.31288732],\n", + " [ 1.36686363, 0.96076635],\n", + " [-3.9091037 , 0.96514774],\n", + " [ 4.37669631, -0.8778982 ],\n", + " [-3.13000071, -2.59206421],\n", + " [ 0.85730862, 3.96159211],\n", + " [ 2.91165311, 2.24727293],\n", + " [ 2.16991404, -3.35593884],\n", + " [-0.38522275, -1.67180888],\n", + " [-1.91436601, 3.62229527],\n", + " [ 1.31583377, -1.93048586],\n", + " [ 0.52322948, 0.91378549],\n", + " [ 0.69736315, 3.05799437],\n", + " [-2.33259618, 4.23093531],\n", + " [-0.01882034, -3.16737335],\n", + " [-1.85567722, -0.16700837],\n", + " [ 4.74309296, 3.57241682],\n", + " [ 0.96709141, -1.3653478 ],\n", + " [-2.98210548, -0.11106027],\n", + " [-3.86461267, 3.62193573],\n", + " [ 2.83976749, 2.94566098],\n", + " [ 3.76245288, -2.64933837],\n", + " [ 4.58809654, 1.23109222],\n", + " [ 4.84968707, -2.75644381],\n", + " [-1.54471238, 4.83523772],\n", + " [ 1.89738986, 3.61006974],\n", + " [ 1.89077461, 3.96448192],\n", + " [ 0.58264712, -3.48158676],\n", + " [-3.70699049, -1.55128007],\n", + " [-1.74431095, -1.26414456],\n", + " [ 4.95881191, -3.89363783],\n", + " [-3.49425476, 4.69333757],\n", + " [-1.13661494, -4.86289907],\n", + " [-0.80047881, -2.36304971],\n", + " [-2.22814782, -1.71573374],\n", + " [ 1.93181752, -2.84184699],\n", + " [-2.01459345, 3.04690045],\n", + " [ 1.77370361, 2.63596514],\n", + " [-1.62391354, 3.9170375 ],\n", + " [-1.16831826, -0.35730506],\n", + " [ 2.81017534, 4.68734215],\n", + " [ 3.50859446, 3.53556171],\n", + " [-3.00404934, -0.31632676],\n", + " [-3.19738369, -0.50324866],\n", + " [-1.14409139, 3.06816086],\n", + " [-4.67354814, 1.12585223],\n", + " [ 2.62801894, -2.11531302],\n", + " [-3.26599429, -2.09618265],\n", + " [-1.77991357, -3.54630238],\n", + " [ 1.83623843, -2.97438757],\n", + " [-1.90333658, 0.66363691],\n", + " [ 2.61705961, 0.10912733],\n", + " [ 1.76458691, 1.21896092],\n", + " [-2.5188483 , 0.77614823],\n", + " [ 1.75016557, 2.0592426 ],\n", + " [ 4.82096292, -0.0816393 ],\n", + " [-2.66030292, -2.54501908],\n", + " [ 1.90560799, -1.66171268],\n", + " [-1.30050042, -1.94071811]])" ] }, "execution_count": 6, @@ -284,6 +286,159 @@ "Hint 2: one way to proceed is to build a function `accuracy`, use the `map` function to calculate the accuracies of all the models, and then apply the `numpy.argmax` to retrieve the index of the best model." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 1\n", + "Write a function that, taken two list of labelling, builds the confusion matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[416. 99.]\n", + " [ 77. 408.]]\n" + ] + } + ], + "source": [ + "def confusion_matrix(labels1, labels2):\n", + " assert len(labels1) == len(labels2), \"Label arrays must be of same length\"\n", + " confusion_matrix = np.zeros((2,2))\n", + " for i in range(len(labels1)):\n", + " confusion_matrix[1 - labels1[i], 1 - labels2[i]] += 1\n", + " return confusion_matrix\n", + "\n", + "print(confusion_matrix(apply_linear_model(target_model, data), apply_linear_model(models[0], data)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 2\n", + "For each model in models plot the [FP,TP] pairs on a scatter plot\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "confusion_matrices = [confusion_matrix(target_labels, apply_linear_model(model, data))for model in models]\n", + "\n", + "fp, tp = list(map(lambda cm: cm[1,0], confusion_matrices)), list(map(lambda cm: cm[0,0], confusion_matrices))\n", + "plt.scatter(fp, tp)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise three\n", + "By looking at the plot, which is the best model?\n", + "\n", + "Answer: The best model is the one at the top left corner, which has the highest TP/FP ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise four\n", + "Find the model with the best accuracy and compare it with the target model, is it close? Is it the model you would have picked up visually from the scatter plot?" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Plot best: [ 4.37669631 -0.8778982 ], Accuracy best: [ 4.37669631 -0.8778982 ], with accuracy: 0.986\n" + ] + } + ], + "source": [ + "def accuracy(confusion_matrix):\n", + " return sum(confusion_matrix.diagonal()) / sum(sum(confusion_matrix))\n", + "\n", + "models_acc = list(map(lambda m: (m[0], accuracy(m[1])), zip(models, confusion_matrices)))\n", + "models_acc = sorted(models_acc, key=lambda ma: ma[1], reverse=True)\n", + "\n", + "plot_best = models[np.argmax([t / f for t, f in zip(tp, fp)])]\n", + "accuracy_best = models_acc[0]\n", + "\n", + "print(f'Plot best: {plot_best}, Accuracy best: {accuracy_best[0]}, with accuracy: {accuracy_best[1]}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 5\n", + "Yes, because the models were generated with a uniform distributions of variables of range [-5;5]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([ 4.37669631, -0.8778982 ]), 0.986)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/anno3/apprendimento_automatico/esercizi/1/one_vs_rest.ipynb b/anno3/apprendimento_automatico/esercizi/1/one_vs_rest.ipynb index 79846d3..8ce0ed0 100644 --- a/anno3/apprendimento_automatico/esercizi/1/one_vs_rest.ipynb +++ b/anno3/apprendimento_automatico/esercizi/1/one_vs_rest.ipynb @@ -9,10 +9,8 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -27,10 +25,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "digits = datasets.load_digits()" @@ -45,19 +41,19 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, + "execution_count": 3, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -76,20 +72,17 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5.\n", - " 0. 0. 3. 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8.\n", - " 8. 0. 0. 5. 8. 0. 0. 9. 8. 0. 0. 4. 11. 0. 1.\n", - " 12. 7. 0. 0. 2. 14. 5. 10. 12. 0. 0. 0. 0. 6. 13.\n", - " 10. 0. 0. 0.]\n" + "[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5. 0. 0. 3.\n", + " 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8. 8. 0. 0. 5. 8. 0.\n", + " 0. 9. 8. 0. 0. 4. 11. 0. 1. 12. 7. 0. 0. 2. 14. 5. 10. 12.\n", + " 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.]\n" ] } ], @@ -108,11 +101,34 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], "source": [ "binaryLearner = LinearSVC(random_state=0)\n", "\n", @@ -126,13 +142,19 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9058971141781681\n" + ] + } + ], "source": [ - "print \"Accuracy: %s\" % (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels)))" + "print (\"Accuracy: %s\" % (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels))))" ] }, { @@ -151,25 +173,38 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "class OneVsRestClassifier:\n", " def __init__(self, learner):\n", - " #... to be done ...\n", - " return 1\n", + " self.learner = learner\n", + " self.labels = None\n", + " self.data = None\n", + " self.classifiers = None\n", + " \n", + " def _fit_cls(self, one, labels):\n", + " from sklearn.base import clone\n", + " cls = clone(self.learner)\n", + " cls.fit(self.data, [1 if label == one else -1 for label in labels])\n", + " return cls\n", "\n", " def fit(self, data, labels):\n", - " #... to be done ...\n", + " assert self.data is None\n", + " assert self.labels is None\n", + " assert self.classifiers is None\n", "\n", + " self.labels = sorted(set(labels))\n", + " self.data = data\n", + " self.classifiers = list(map(lambda one: self._fit_cls(one, labels), self.labels))\n", " return self\n", "\n", " def predict(self, data):\n", - " #... to be done ...\n", - " return 1" + " predictions = np.array(list(map(lambda cls: cls.predict(data), self.classifiers))).T\n", + " assert len(data) == predictions.shape[0]\n", + " # np.where[0][0] is like list.index\n", + " return [self.labels[np.where(pred == 1)[0][0] if 1 in pred else 0] for pred in predictions]" ] }, { @@ -181,15 +216,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": false + "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.8393977415307403\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], "source": [ "ovr = OneVsRestClassifier(LinearSVC(random_state=0))\n", "predicted_labels = ovr.fit(X,y).predict(X_test)\n", - "print \"Accuracy: %s\" % (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test)))" + "print (\"Accuracy: %s\" % (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test))))" ] }, { @@ -201,34 +268,57 @@ "Hint 2: The scheme provided by scikit-learn is a little different from the one we have seen in the lessons. It is normal if your accuracy is not as good as the one obtained above (expect the accuracy to be between 0.8 and 0.9)." ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "learner = LinearSVC(random_state=0)" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "scrolled": true }, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python [aaaid]", + "display_name": "Python 3", "language": "python", - "name": "Python [aaaid]" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.7.7" } }, "nbformat": 4, diff --git a/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-Copy1-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-Copy1-checkpoint.ipynb deleted file mode 100644 index 9e5fe00..0000000 --- a/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-Copy1-checkpoint.ipynb +++ /dev/null @@ -1,893 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# # Classifiers introduction\n", - "\n", - "In the following program we introduce the basic steps of classification of a dataset in a matrix" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Import the package for learning and modeling trees" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "from sklearn import tree " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Define the matrix containing the data (one example per row)\n", - "and the vector containing the corresponding target value" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "X = [[0, 0, 0], [1, 1, 1], [0, 1, 0], [0, 0, 1], [1, 1, 0], [1, 0, 1]]\n", - "Y = [1, 0, 0, 0, 1, 1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Declare the classification model you want to use and then fit the model to the data" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "clf = tree.DecisionTreeClassifier()\n", - "clf = clf.fit(X, Y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Predict the target value (and print it) for the passed data, using the fitted model currently in clf" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0]\n" - ] - } - ], - "source": [ - "print(clf.predict([[0, 1, 1]]))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1 0]\n" - ] - } - ], - "source": [ - "print(clf.predict([[1, 0, 1],[0, 0, 1]]))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Tree\n", - "\n", - "\n", - "0\n", - "\n", - "X[1] <= 0.5\n", - "gini = 0.5\n", - "samples = 6\n", - "value = [3, 3]\n", - "\n", - "\n", - "1\n", - "\n", - "X[0] <= 0.5\n", - "gini = 0.444\n", - "samples = 3\n", - "value = [1, 2]\n", - "\n", - "\n", - "0->1\n", - "\n", - "\n", - "True\n", - "\n", - "\n", - "6\n", - "\n", - "X[2] <= 0.5\n", - "gini = 0.444\n", - "samples = 3\n", - "value = [2, 1]\n", - "\n", - "\n", - "0->6\n", - "\n", - "\n", - "False\n", - "\n", - "\n", - "2\n", - "\n", - "X[2] <= 0.5\n", - "gini = 0.5\n", - "samples = 2\n", - "value = [1, 1]\n", - "\n", - "\n", - "1->2\n", - "\n", - "\n", - "\n", - "\n", - "5\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "1->5\n", - "\n", - "\n", - "\n", - "\n", - "3\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "2->3\n", - "\n", - "\n", - "\n", - "\n", - "4\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "2->4\n", - "\n", - "\n", - "\n", - "\n", - "7\n", - "\n", - "X[0] <= 0.5\n", - "gini = 0.5\n", - "samples = 2\n", - "value = [1, 1]\n", - "\n", - "\n", - "6->7\n", - "\n", - "\n", - "\n", - "\n", - "10\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "6->10\n", - "\n", - "\n", - "\n", - "\n", - "8\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "7->8\n", - "\n", - "\n", - "\n", - "\n", - "9\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "7->9\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import graphviz \n", - "dot_data = tree.export_graphviz(clf, out_file=None) \n", - "graph = graphviz.Source(dot_data) \n", - "graph" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the following we start using a dataset (from UCI Machine Learning repository)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from sklearn.datasets import load_iris\n", - "iris = load_iris()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Declare the type of prediction model and the working criteria for the model induction algorithm" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", - " random_state=300,\n", - " min_samples_leaf=5,\n", - " class_weight={0:1,1:10,2:10}) # setosa, versicolor, verginica" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Split the dataset in training and test set" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "# Generate a random permutation of the indices of examples that will be later used \n", - "# for the training and the test set\n", - "import numpy as np\n", - "np.random.seed(0)\n", - "indices = np.random.permutation(len(iris.data))\n", - "\n", - "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", - "indices_training=indices[:-10]\n", - "indices_test=indices[-10:]\n", - "\n", - "iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", - "iris_y_train = iris.target[indices_training]\n", - "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", - "iris_y_test = iris.target[indices_test]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Fit the learning model on training set" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# fit the model to the training data\n", - "clf = clf.fit(iris_X_train, iris_y_train)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Obtain predictions" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predictions:\n", - "[1 2 1 0 0 0 2 1 2 0]\n", - "True classes:\n", - "[1 1 1 0 0 0 2 1 2 0]\n", - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "# apply fitted model \"clf\" to the test set \n", - "predicted_y_test = clf.predict(iris_X_test)\n", - "\n", - "# print the predictions (class numbers associated to classes names in target names)\n", - "print(\"Predictions:\")\n", - "print(predicted_y_test)\n", - "print(\"True classes:\")\n", - "print(iris_y_test) \n", - "print(iris.target_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Print the index of the test instances and the corresponding predictions" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Instance # 88: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 70: \n", - "Predicted: virginica\t True: versicolor\n", - "\n", - "Instance # 87: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 36: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 21: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 9: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 103: \n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # 67: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 117: \n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # 47: \n", - "Predicted: setosa\t True: setosa\n", - "\n" - ] - } - ], - "source": [ - "# print the corresponding instances indexes and class names \n", - "for i in range(len(iris_y_test)): \n", - " print(\"Instance # \"+str(indices_test[i])+\": \")\n", - " print(\"Predicted: \"+iris.target_names[predicted_y_test[i]]+\"\\t True: \"+iris.target_names[iris_y_test[i]]+\"\\n\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Look at the specific examples" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.6, sepal width (cm)=3.0, petal length (cm)=4.1, petal width (cm)=1.3\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.9, sepal width (cm)=3.2, petal length (cm)=4.8, petal width (cm)=1.8\n", - "Predicted: virginica\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=6.3, sepal width (cm)=2.3, petal length (cm)=4.4, petal width (cm)=1.3\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.5, sepal width (cm)=3.5, petal length (cm)=1.3, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=4.9, sepal width (cm)=3.1, petal length (cm)=1.5, petal width (cm)=0.1\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=6.3, sepal width (cm)=2.9, petal length (cm)=5.6, petal width (cm)=1.8\n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.8, sepal width (cm)=2.7, petal length (cm)=4.1, petal width (cm)=1.0\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=7.7, sepal width (cm)=3.8, petal length (cm)=6.7, petal width (cm)=2.2\n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=4.6, sepal width (cm)=3.2, petal length (cm)=1.4, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n" - ] - } - ], - "source": [ - "for i in range(len(iris_y_test)): \n", - " print(\"Instance # \"+str(indices_test)+\": \")\n", - " s=\"\"\n", - " for j in range(len(iris.feature_names)):\n", - " s=s+iris.feature_names[j]+\"=\"+str(iris_X_test[i][j])\n", - " if (j\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Tree\n", - "\n", - "\n", - "0\n", - "\n", - "petal length (cm) ≤ 2.45\n", - "entropy = 1.585\n", - "samples = 150\n", - "value = [50, 50, 50]\n", - "class = setosa\n", - "\n", - "\n", - "1\n", - "\n", - "entropy = 0.0\n", - "samples = 50\n", - "value = [50, 0, 0]\n", - "class = setosa\n", - "\n", - "\n", - "0->1\n", - "\n", - "\n", - "True\n", - "\n", - "\n", - "2\n", - "\n", - "petal width (cm) ≤ 1.75\n", - "entropy = 1.0\n", - "samples = 100\n", - "value = [0, 50, 50]\n", - "class = versicolor\n", - "\n", - "\n", - "0->2\n", - "\n", - "\n", - "False\n", - "\n", - "\n", - "3\n", - "\n", - "petal length (cm) ≤ 4.95\n", - "entropy = 0.445\n", - "samples = 54\n", - "value = [0, 49, 5]\n", - "class = versicolor\n", - "\n", - "\n", - "2->3\n", - "\n", - "\n", - "\n", - "\n", - "8\n", - "\n", - "petal length (cm) ≤ 4.95\n", - "entropy = 0.151\n", - "samples = 46\n", - "value = [0, 1, 45]\n", - "class = virginica\n", - "\n", - "\n", - "2->8\n", - "\n", - "\n", - "\n", - "\n", - "4\n", - "\n", - "sepal length (cm) ≤ 5.15\n", - "entropy = 0.146\n", - "samples = 48\n", - "value = [0, 47, 1]\n", - "class = versicolor\n", - "\n", - "\n", - "3->4\n", - "\n", - "\n", - "\n", - "\n", - "7\n", - "\n", - "entropy = 0.918\n", - "samples = 6\n", - "value = [0, 2, 4]\n", - "class = virginica\n", - "\n", - "\n", - "3->7\n", - "\n", - "\n", - "\n", - "\n", - "5\n", - "\n", - "entropy = 0.722\n", - "samples = 5\n", - "value = [0, 4, 1]\n", - "class = versicolor\n", - "\n", - "\n", - "4->5\n", - "\n", - "\n", - "\n", - "\n", - "6\n", - "\n", - "entropy = 0.0\n", - "samples = 43\n", - "value = [0, 43, 0]\n", - "class = versicolor\n", - "\n", - "\n", - "4->6\n", - "\n", - "\n", - "\n", - "\n", - "9\n", - "\n", - "entropy = 0.65\n", - "samples = 6\n", - "value = [0, 1, 5]\n", - "class = virginica\n", - "\n", - "\n", - "8->9\n", - "\n", - "\n", - "\n", - "\n", - "10\n", - "\n", - "entropy = 0.0\n", - "samples = 40\n", - "value = [0, 0, 40]\n", - "class = virginica\n", - "\n", - "\n", - "8->10\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dot_data = tree.export_graphviz(clf, out_file=None, \n", - " feature_names=iris.feature_names, \n", - " class_names=iris.target_names, \n", - " filled=True, rounded=True, \n", - " special_characters=True) \n", - "graph = graphviz.Source(dot_data) \n", - "graph" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "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.7" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-completo-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-completo-checkpoint.ipynb new file mode 100644 index 0000000..2bd29dc --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/all_m/.ipynb_checkpoints/classification_iris_aa_19_20-completo-checkpoint.ipynb @@ -0,0 +1,1672 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classifiers introduction\n", + "\n", + "In the following program we introduce the basic steps of classification of a dataset in a matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the package for learning and modeling trees" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from sklearn import tree\n", + "import pandas as pd\n", + "from sklearn.preprocessing import label_binarize\n", + "from sklearn.metrics import roc_curve\n", + "import matplotlib.pyplot as plt\n", + "from numpy import ravel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the matrix containing the data (one example per row)\n", + "and the vector containing the corresponding target value" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X = [[0, 0, 0], [1, 1, 1], [0, 1, 0], [0, 0, 1], [1, 1, 0], [1, 0, 1]]\n", + "Y = [1, 0, 0, 0, 1, 1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Declare the classification model you want to use and then fit the model to the data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier()\n", + "clf = clf.fit(X, Y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predict the target value (and print it) for the passed data, using the fitted model currently in clf" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[0, 1, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[1, 0, 1],[0, 0, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "X[2] <= 0.5\n", + "gini = 0.5\n", + "samples = 6\n", + "value = [3, 3]\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [1, 2]\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [2, 1]\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "1->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "6->10\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "7->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "7->9\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import graphviz \n", + "dot_data = tree.export_graphviz(clf, out_file=None) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following we start using a dataset (from UCI Machine Learning repository)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_iris\n", + "iris = load_iris()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Declare the type of prediction model and the working criteria for the model induction algorithm" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=5,\n", + " max_depth=4,\n", + " min_impurity_decrease=0.1,\n", + " class_weight={0:1,1:10,2:10}) # setosa, versicolor, verginica" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Split the dataset in training and test set" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(0)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "# keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_train = iris.data[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inflating by 140 members.\n" + ] + } + ], + "source": [ + "# artificial inflation\n", + "inflate = len(iris_X_train/2)\n", + "print(\"Inflating by \"+str(inflate)+\" members.\")\n", + "count = 0\n", + "for i,y in enumerate(iris_y_train):\n", + " if count > inflate:\n", + " break\n", + " if y == 1 or y == 2:\n", + " np.append(iris_X_train, iris_X_train[i])\n", + " np.append(iris_y_train, y)\n", + " count += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fit the learning model on training set" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ranking features: [0. 0. 0.31436374 0.68563626]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.225\n", + "samples = 140\n", + "value = [46, 460, 480]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.836\n", + "samples = 97\n", + "value = [46, 460, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 46\n", + "value = [46, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.463\n", + "samples = 51\n", + "value = [0, 460, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "entropy = 0.154\n", + "samples = 45\n", + "value = [0, 440, 10]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 20, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# fit the model to the training data\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "\n", + "print(\"Ranking features: \"+str(clf.feature_importances_))\n", + "\n", + "# plot\n", + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph\n", + "\n", + "#Instance # 70: \n", + "#sepal length (cm)=5.9,\n", + "#sepal width (cm)=3.2,\n", + "#petal length (cm)=4.8,\n", + "#petal width (cm)=1.8\n", + "#Predicted: virginica\t True: versicolor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Obtain predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predictions:\n", + "[1 2 1 0 0 0 2 1 2 0]\n", + "True classes:\n", + "[1 1 1 0 0 0 2 1 2 0]\n", + "['setosa' 'versicolor' 'virginica']\n" + ] + } + ], + "source": [ + "# apply fitted model \"clf\" to the test set \n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "\n", + "# print the predictions (class numbers associated to classes names in target names)\n", + "print(\"Predictions:\")\n", + "print(predicted_y_test)\n", + "print(\"True classes:\")\n", + "print(iris_y_test) \n", + "print(iris.target_names)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Print the index of the test instances and the corresponding predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Instance # 88: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 70: \n", + "Predicted: virginica\t True: versicolor\n", + "\n", + "Instance # 87: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 36: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 21: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 9: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 103: \n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 67: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 117: \n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 47: \n", + "Predicted: setosa\t True: setosa\n", + "\n" + ] + } + ], + "source": [ + "# print the corresponding instances indexes and class names \n", + "for i in range(len(iris_y_test)): \n", + " print(\"Instance # \"+str(indices_test[i])+\": \")\n", + " print(\"Predicted: \"+iris.target_names[predicted_y_test[i]]+\"\\t True: \"+iris.target_names[iris_y_test[i]]+\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Look at the specific examples" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.6, sepal width (cm)=3.0, petal length (cm)=4.1, petal width (cm)=1.3\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.9, sepal width (cm)=3.2, petal length (cm)=4.8, petal width (cm)=1.8\n", + "Predicted: virginica\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.3, petal length (cm)=4.4, petal width (cm)=1.3\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.5, sepal width (cm)=3.5, petal length (cm)=1.3, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=4.9, sepal width (cm)=3.1, petal length (cm)=1.5, petal width (cm)=0.1\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.9, petal length (cm)=5.6, petal width (cm)=1.8\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.8, sepal width (cm)=2.7, petal length (cm)=4.1, petal width (cm)=1.0\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=7.7, sepal width (cm)=3.8, petal length (cm)=6.7, petal width (cm)=2.2\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=4.6, sepal width (cm)=3.2, petal length (cm)=1.4, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n" + ] + } + ], + "source": [ + "for i in range(len(iris_y_test)): \n", + " print(\"Instance # \"+str(indices_test)+\": \")\n", + " s=\"\"\n", + " for j in range(len(iris.feature_names)):\n", + " s=s+iris.feature_names[j]+\"=\"+str(iris_X_test[i][j])\n", + " if (j\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 1.585\n", + "samples = 150\n", + "value = [50, 50, 50]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "entropy = 0.0\n", + "samples = 50\n", + "value = [50, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.0\n", + "samples = 100\n", + "value = [0, 50, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.445\n", + "samples = 54\n", + "value = [0, 49, 5]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.151\n", + "samples = 46\n", + "value = [0, 1, 45]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "sepal length (cm) ≤ 5.15\n", + "entropy = 0.146\n", + "samples = 48\n", + "value = [0, 47, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 2, 4]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.722\n", + "samples = 5\n", + "value = [0, 4, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 43, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.65\n", + "samples = 6\n", + "value = [0, 1, 5]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 40\n", + "value = [0, 0, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# 1. Artificial inflation\n", + "get an artificial inflation of some class in the training set by\n", + " a given factor: 10 (weigh more the classes virginica e versicolor\n", + " which are more difficult to discriminate). Learn the tree in these\n", + " conditions.\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "def start(seed=42):\n", + " # Generate a random permutation of the indices of examples that will be later used \n", + " # for the training and the test set\n", + " np.random.seed(seed)\n", + " indices = np.random.permutation(len(iris.data))\n", + "\n", + " # We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + " indices_training=indices[:-10]\n", + " indices_test=indices[-10:]\n", + "\n", + " iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + " iris_y_train = iris.target[indices_training]\n", + " iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + " iris_y_test = iris.target[indices_test]\n", + " return iris_X_train, iris_y_train, iris_X_test, iris_y_test" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inflated by 92 samples\n" + ] + } + ], + "source": [ + "iris_X_train, iris_y_train, iris_X_test, iris_y_test = start()\n", + "\n", + "# artificial inflation\n", + "inflate = len(iris_X_train/2)\n", + "count = 0\n", + "extra_samples_x = []\n", + "extra_samples_y = []\n", + "for i,y in enumerate(iris_y_train):\n", + " if count > inflate:\n", + " break\n", + " if y == 1 or y == 2:\n", + " extra_samples_x.append(iris_X_train[i])\n", + " extra_samples_y.append(y)\n", + " count += 1\n", + "iris_X_train = np.append(iris_X_train, extra_samples_x, axis=0)\n", + "iris_y_train = np.append(iris_y_train, extra_samples_y, axis=0)\n", + "print(f'Inflated by {len(extra_samples_x)} samples')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.75\n", + "entropy = 1.529\n", + "samples = 232\n", + "value = [48, 92, 92]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.954\n", + "samples = 128\n", + "value = [48, 80, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.516\n", + "samples = 104\n", + "value = [0, 12, 92]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->4\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 48\n", + "value = [48, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "entropy = 0.0\n", + "samples = 80\n", + "value = [0, 80, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.991\n", + "samples = 18\n", + "value = [0, 10, 8]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "sepal length (cm) ≤ 5.95\n", + "entropy = 0.159\n", + "samples = 86\n", + "value = [0, 2, 84]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.722\n", + "samples = 10\n", + "value = [0, 2, 8]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "entropy = 0.0\n", + "samples = 76\n", + "value = [0, 0, 76]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "6->8\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=10,\n", + " class_weight={0:1,1:1,2:1})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)\n", + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Class weights\n", + "modify the weight of some classes (set to 10 the weights for\n", + " misclassification between virginica into versicolor and vice versa)\n", + " and learn the tree in these conditions. You should obtain similar\n", + " results as for step 1." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + } + ], + "source": [ + "iris_X_train, iris_y_train, iris_X_test, iris_y_test = start()\n", + "\n", + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=5,\n", + " class_weight={0:1,1:10,2:10})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3 Avoid overfitting\n", + "learn trees but avoid overfitting (by improving the error on the\n", + " test set) tuning the parameters on: the minimum number of samples\n", + " per leaf, max depth of the tree, min_impurity_decrease parameters,\n", + " max leaf nodes, etc." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,\n", + " min_samples_leaf=3,class_weight={0:1,1:10,2:10}, \n", + " min_impurity_decrease = 0.005, \n", + " max_depth = 4, max_leaf_nodes = 6)\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4 Confusion Matrix\n", + "build the confusion matrix of the created tree models on the\n", + " test set and show them.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Confusion matrix:\n", + " setosa versicolor virginica\n", + "setosa 2 0 0\n", + "versicolor 0 4 0\n", + "virginica 0 1 3\n" + ] + } + ], + "source": [ + "#from collections import Counter\n", + "#confusion = np.zeros([3, 3], dtype = int)\n", + "#cnt = Counter([(iris_y_test[i], predicted_y_test[i]) for i in range(len(iris_y_test))])\n", + "\n", + "#for i, j in cnt:\n", + "# confusion[i,j] = cnt[(i,j)]\n", + "#confusion = pd.DataFrame(confusion, columns=iris.target_names, index=iris.target_names)\n", + "#confusion\n", + "# confusion matrix\n", + "from sklearn.metrics import confusion_matrix\n", + "import pandas as pd\n", + "print(\"Confusion matrix:\")\n", + "print(pd.DataFrame(confusion_matrix(iris_y_test, predicted_y_test),\n", + " columns=iris.target_names, index=iris.target_names))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAXX0lEQVR4nO3de5RlZXnn8e8PEDRcvNCxF9ItjQOOtuiIVkBjEouIE0ADOlED8YZRiWaYcUaXLowOGpxLjKNRR4y2Swd1LWnQTLQT2yETpUI0gtBBUEC0RbQbMCAg0hhE5Jk/9u54LOoG9D6H6vf7WatWnb33e/Z+nlPd53f2u0/VSVUhSWrXLpMuQJI0WQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAItK0lOTPLFHbi/5ybZkmRbkkN31H7nOM50kq1D7V+6LwwCzSvJ1Un+uX+S/H6SM5LsNWvMryb5QpJbk9yS5K+SrJ01Zp8k707yvX5f3+6XVwxc/0ySVywy7H8CJ1fVXlV18ZD1LEdJKslBk65DwzIItJjfrqq9gCcChwJv3L4hyVOBvwE+AzwCOBC4BPhSkkf1Y3YHPg88DjgK2Ad4KnAjcNj42pjXAcBl9+aOSXbdwbVIE2EQaEmq6vvAOXSBsN2fAh+rqvdU1a1VdVNVvRk4H3hrP+YlwCOB51bV5VV1V1VdX1Vvq6qNcx2rfxX6H5NcleQHSd6RZM5/q/0ZyYX92ciFSX61X//fgF8H3tefhbxv1v32SLIN2BW4JMm3+/WP7c8kfpjksiTHjtznjCR/nmRjktuAI+ao52FJ/neSa5PcnOTT89R9Sn9mdGuSy5M8d2TbQUn+ru/pB0nO6tcnyZ8luT7Jj5J8Lckhc+1/juOd2D+etyb5TpIXjmz7/SRX9PWek+SAfv15/ZBL+sfwd/v1r0yyOclNSTYkecRi9SV5VpKL+/Vbkrx1KXVrTKrKL7/m/AKuBo7sb68Cvga8p1/+JeBnwBFz3O9lwHX97fXAR+/hcQs4F3gYXYh8E3hFv+1E4Iv97YcBNwMvBnYDTuiX9+23z2y/3yLHOqi//QBgM/BHwO7AbwK3Av+6334GcAvwNLoXUQ+cY3+fBc4CHtrv7+n9+mlg68i459OdRe0C/C5wG7Bfv+1M4E3bjwH8Wr/+t4BNwEOAAI8duc/vAZfO0+OewI9G+tgPeFx/+7i+58f2j+GbgX+Y6/Hpl38T+AHwJGAP4H8B5y2hvmng8X1PTwD+CXjOpP+N+9V9eUagxXw6ya3AFuB64C39+ofR/ae+bo77XAdsn//fd54xi3l7dWcY3wPeTfckP9uzgG9V1cer6s6qOhP4BvDb9+J4AE8B9gL+pKruqKovAH8969ifqaovVXdmc/vonZPsBxwNvKqqbq6qn1bV3811oKr6ZFVd2+/nLOBb/Hyq7Kd0U1aPqKrbq+qLI+v3Bh4DpKquqKrr+v19oqqesEBvdwGHJHlQVV1XVdunw14F/I9+X3cC/x144vazgjm8EPhIVf1jVf2EbqrwqUnWLFLfTFV9re/3Urqwe/oC9WqMDAIt5jlVtTfdK7rH8PMn+Jvpnlz2m+M++9G9aoTuWsBcYxazZeT2d+lePc/2iH4bs8bufy+Ot31/W6rqrgX2t4X5rQZuqqqbFztQkpck+Wo/BfVD4BB+/ti+ge4V9Vf66anfB+iD6X3A6cD1SdYl2WexY1XVbXRnHa8Crkvy2SSP6TcfALxnpI6b+mPP9xj+wmNeVdvofsb7L1RfksOTnJvkhiS39LUM+mYBLZ1BoCXpX9meQfcum+1PLl+mm+KY7QV0F4gB/hb4rSR73sNDrh65/Ujg2jnGXEv3RMassddsL/seHvNaYPWs6xGj+1tsn1uAhyV5yEIH6V9tfwg4mW4a6yHA1+megKmq71fVK6vqEcAfAO/f/s6dqnpvVT0ZWAs8Gnj9UhqrqnOq6pl0ofyN/vjba/6DqnrIyNeDquof5tnVLzzm/c91X/rHaIH6PgFsAFZX1YOBD2zvV5NnEOieeDfwzCT/pl8+BXhpf2F37yQPTfJf6d4V9Mf9mI/TPdn8RZLHJNklyb5J/ijJMQsc6/X9/lYDr6Gbd59tI/DoJL+XZLf+YuZauukc6OahH3UP+rsA+DHwhiQPSDJNN820fil37qdBPkf3xP3Qfh+/McfQPekC5QaAJC+jOyOgX35+klX94s392LuS/Er/yvoBdNcUbqc7K1tQkpVJjuuftH8CbBu53weANyZ5XD/2wUlGw332Y3gm8LIkT0yyB91U0gVVdfUi9e1Nd7Z0e5LD6K5p6H7CINCSVdUNwMeAU/vlL9JdIPx3dNcBvkv3FtNfq6pv9WN+AhxJ9yr0/9FdtPwK3bTABQsc7jN0Fx6/SncB9sNz1HMj8GzgdXTTE28Anl1V26el3gM8r383zHuX0N8ddE/8R9NNbb0feElVfWOx+454Md1c+Tforqn8pzmOcznwTrozqn+iu4j6pZEhvwJckO5dTRuA11TVVXRvvf0QXTh8t+/5HQBJXphkvrfB7gK8lu7V/E10c/Ov7mv5S+DtwPokP6I7Mzl65L5vBT7aTx29oKr+FvgvwF/Q/cz/FXB8P3be+oA/BE7rrzedCpw9T62agFT5wTS6f0lSwMFVtXnStUgt8IxAkhpnEEhS45wakqTGeUYgSY3bbdIF3FMrVqyoNWvWjO14t912G3vueU/fAr982N/ytTP3Bva3o23atOkHVfXLc21bdkGwZs0aLrroorEdb2Zmhunp6bEdb9zsb/namXsD+9vRksz+Lfx/4dSQJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wYLgiQfSXJ9kq/Psz1J3ptkc5JLkzxpqFokSfMb8ozgDOCoBbYfDRzcf50E/PmAtUiS5jHoR1UmWQP8dVUdMse2DwIzVXVmv3wlMF1V1y20z6mpqRrb5xH8n2fBdzaO51iS2vO68X1UcJJNVTU117ZJfjDN/sCWkeWt/bq7BUGSk+jOGli5ciUzMzPjqI9pQ0DSgMb1XLaYZfEJZVW1DlgH3RnB2D7VZ1P/fYypPW5+CtTytTP3BvY3TpN819A1wOqR5VX9OknSGE0yCDYAL+nfPfQU4JbFrg9Ikna8waaGkpwJTAMrkmwF3gI8AKCqPgBsBI4BNgM/Bl42VC2SpPkNFgRVdcIi2wv490MdX5K0NP5msSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkho3aBAkOSrJlUk2Jzllju2PTHJukouTXJrkmCHrkSTd3WBBkGRX4HTgaGAtcEKStbOGvRk4u6oOBY4H3j9UPZKkuQ15RnAYsLmqrqqqO4D1wHGzxhSwT3/7wcC1A9YjSZpDqmqYHSfPA46qqlf0yy8GDq+qk0fG7Af8DfBQYE/gyKraNMe+TgJOAli5cuWT169fP0jNs01vOgKAmSefO5bjTcK2bdvYa6+9Jl3GYHbm/nbm3sD+drQjjjhiU1VNzbVtt7FVMbcTgDOq6p1Jngp8PMkhVXXX6KCqWgesA5iamqrp6enxVNdH0tiONwEzMzP2t0ztzL2B/Y3TkFND1wCrR5ZX9etGvRw4G6Cqvgw8EFgxYE2SpFmGDIILgYOTHJhkd7qLwRtmjfke8AyAJI+lC4IbBqxJkjTLYEFQVXcCJwPnAFfQvTvosiSnJTm2H/Y64JVJLgHOBE6soS5aSJLmNOg1gqraCGycte7UkduXA08bsgZJ0sL8zWJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXGDBkGSo5JcmWRzklPmGfOCJJcnuSzJJ4asR5J0d7sNteMkuwKnA88EtgIXJtlQVZePjDkYeCPwtKq6OcnDh6pHkjS3Ic8IDgM2V9VVVXUHsB44btaYVwKnV9XNAFV1/YD1SJLmMNgZAbA/sGVkeStw+KwxjwZI8iVgV+CtVfV/Z+8oyUnASQArV65kZmZmiHrvZrr/Pq7jTcK2bdvsb5namXsD+xunIYNgqcc/mO45dxVwXpLHV9UPRwdV1TpgHcDU1FRNT0+Pp7pN3bexHW8CZmZm7G+Z2pl7A/sbpyGnhq4BVo8sr+rXjdoKbKiqn1bVd4Bv0gWDJGlMhgyCC4GDkxyYZHfgeGDDrDGfpp+BSbKCbqroqgFrkiTNMlgQVNWdwMnAOcAVwNlVdVmS05Ic2w87B7gxyeXAucDrq+rGoWqSJN3doNcIqmojsHHWulNHbhfw2v5LkjQB/maxJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXHz/kJZkgcCrwIOAr4GfLj/bWFJ0k5koTOCjwJTdCFwNPDOsVQkSRqrhf7ExNqqejxAkg8DXxlPSZKkcVrojOCn2284JSRJO6+FzgiemORH/e0AD+qXQ/f34vYZvDpJ0uAWCoJLqurQsVUiSZqIhaaGamxVSJImZqEzgocnmfdzAqrqXQPUI0kas4WCYFdgL7prApKkndRCQXBdVZ02tkokSROx0DUCzwQkqQELBcEzxlaFJGli5g2CqrppnIVIkibDvz4qSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGjdoECQ5KsmVSTYnOWWBcb+TpJJMDVmPJOnuBguCJLsCp9N9zOVa4IQka+cYtzfwGuCCoWqRJM1vyDOCw4DNVXVVVd0BrAeOm2Pc24C3A7cPWIskaR4L/dG5+2p/YMvI8lbg8NEBSZ4ErK6qzyZ5/Xw7SnIScBLAypUrmZmZ2fHVzmG6/z6u403Ctm3b7G+Z2pl7A/sbpyGDYEFJdgHeBZy42NiqWgesA5iamqrp6elBa/sXm7pvYzveBMzMzNjfMrUz9wb2N05DTg1dA6weWV7Vr9tub+AQYCbJ1cBTgA1eMJak8RoyCC4EDk5yYJLdgeOBDds3VtUtVbWiqtZU1RrgfODYqrpowJokSbMMFgRVdSdwMnAOcAVwdlVdluS0JMcOdVxJ0j0z6DWCqtoIbJy17tR5xk4PWYskaW7+ZrEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1LhBgyDJUUmuTLI5ySlzbH9tksuTXJrk80kOGLIeSdLdDRYESXYFTgeOBtYCJyRZO2vYxcBUVT0B+BTwp0PVI0ma25BnBIcBm6vqqqq6A1gPHDc6oKrOraof94vnA6sGrEeSNIfdBtz3/sCWkeWtwOELjH858Lm5NiQ5CTgJYOXKlczMzOygEhc23X8f1/EmYdu2bfa3TO3MvYH9jdOQQbBkSV4ETAFPn2t7Va0D1gFMTU3V9PT0eArb1H0b2/EmYGZmxv6WqZ25N7C/cRoyCK4BVo8sr+rX/YIkRwJvAp5eVT8ZsB5J0hyGvEZwIXBwkgOT7A4cD2wYHZDkUOCDwLFVdf2AtUiS5jFYEFTVncDJwDnAFcDZVXVZktOSHNsPewewF/DJJF9NsmGe3UmSBjLoNYKq2ghsnLXu1JHbRw55fEnS4vzNYklqnEEgSY0zCCSpcQaBJDXOIJCkxhkEktQ4g0CSGmcQSFLjDAJJapxBIEmNMwgkqXEGgSQ1ziCQpMYZBJLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqnEEgSY0zCCSpcQaBJDVu0CBIclSSK5NsTnLKHNv3SHJWv/2CJGuGrEeSdHeDBUGSXYHTgaOBtcAJSdbOGvZy4OaqOgj4M+DtQ9UjSZrbkGcEhwGbq+qqqroDWA8cN2vMccBH+9ufAp6RJAPWJEmaZbcB970/sGVkeStw+HxjqurOJLcA+wI/GB2U5CTgJICVK1cyMzMzUMm/aLr/Pq7jTcK2bdvsb5namXsD+xunIYNgh6mqdcA6gKmpqZqenh7PgaeLmZkZxna8CbC/5Wtn7g3sb5yGnBq6Blg9sryqXzfnmCS7AQ8GbhywJknSLEMGwYXAwUkOTLI7cDywYdaYDcBL+9vPA75QVTVgTZKkWQabGurn/E8GzgF2BT5SVZclOQ24qKo2AB8GPp5kM3ATXVhIksZo0GsEVbUR2Dhr3akjt28Hnj9kDZKkhfmbxZLUOINAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTGGQSS1DiDQJIaZxBIUuMMAklqXJbbX31OcgPw3TEecgWzPjFtJ2N/y9fO3BvY3452QFX98lwbll0QjFuSi6pqatJ1DMX+lq+duTewv3FyakiSGmcQSFLjDILFrZt0AQOzv+VrZ+4N7G9svEYgSY3zjECSGmcQSFLjDIJekqOSXJlkc5JT5ti+R5Kz+u0XJFkz/irvnSX09toklye5NMnnkxwwiTrvrcX6Gxn3O0kqyf3iLXtLtZT+kryg/xleluQT467xvljCv89HJjk3ycX9v9FjJlHnvZHkI0muT/L1ebYnyXv73i9N8qRx1whAVTX/BewKfBt4FLA7cAmwdtaYPwQ+0N8+Hjhr0nXvwN6OAH6pv/3q5dLbUvvrx+0NnAecD0xNuu4d/PM7GLgYeGi//PBJ172D+1sHvLq/vRa4etJ134P+fgN4EvD1ebYfA3wOCPAU4IJJ1OkZQecwYHNVXVVVdwDrgeNmjTkO+Gh/+1PAM5JkjDXeW4v2VlXnVtWP+8XzgVVjrvG+WMrPDuBtwNuB28dZ3A6wlP5eCZxeVTcDVNX1Y67xvlhKfwXs099+MHDtGOu7T6rqPOCmBYYcB3ysOucDD0my33iq+zmDoLM/sGVkeWu/bs4xVXUncAuw71iqu2+W0tuol9O9QlkuFu2vP91eXVWfHWdhO8hSfn6PBh6d5EtJzk9y1Niqu++W0t9bgRcl2QpsBP7DeEobi3v6/3MQu437gLr/SvIiYAp4+qRr2VGS7AK8CzhxwqUMaTe66aFpurO585I8vqp+ONGqdpwTgDOq6p1Jngp8PMkhVXXXpAvbWXhG0LkGWD2yvKpfN+eYJLvRnaLeOJbq7pul9EaSI4E3AcdW1U/GVNuOsFh/ewOHADNJrqabh92wjC4YL+XntxXYUFU/rarvAN+kC4blYCn9vRw4G6Cqvgw8kO4Ptu0MlvT/c2gGQedC4OAkBybZne5i8IZZYzYAL+1vPw/4QvVXe+7nFu0tyaHAB+lCYDnNL8Mi/VXVLVW1oqrWVNUaumsgx1bVRZMp9x5byr/NT9OdDZBkBd1U0VXjLPI+WEp/3wOeAZDksXRBcMNYqxzOBuAl/buHngLcUlXXjbsIp4bo5vyTnAycQ/cuho9U1WVJTgMuqqoNwIfpTkk30138OX5yFS/dEnt7B7AX8Mn++vf3qurYiRV9Dyyxv2Vrif2dA/zbJJcDPwNeX1XL4Wx1qf29DvhQkv9Md+H4xGXyIowkZ9KF9Ir+GsdbgAcAVNUH6K55HANsBn4MvGwidS6Tx1OSNBCnhiSpcQaBJDXOIJCkxhkEktQ4g0CSGufbR6V7KcnPgK+NrHoOsAb4DPAdYA9gfVX98firk5bOIJDuvX+uqieOruj/PPnfV9Wzk+wJfDXJX1XVP06iQGkpnBqSBlJVtwGbgIMmXYu0EINAuvcelOSr/ddfzt6YZF+6v2102fhLk5bOqSHp3rvb1FDv15NcDNwF/ElVGQS6XzMIpB3v76vq2ZMuQloqp4YkqXEGgSQ1zr8+KkmN84xAkhpnEEhS4wwCSWqcQSBJjTMIJKlxBoEkNc4gkKTG/X/Y3+ubApYNpQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# foreach class\n", + "for i,cname in enumerate(iris.target_names):\n", + " ybin = []\n", + " ypred = []\n", + " \n", + " # rank positives based on predicted probabilities\n", + " pred = clf.predict_proba(iris_X_test)[:,i]\n", + " pi = [(iris_y_test[j], p) for j,p in enumerate(pred)]\n", + " ps = sorted(pi, key=lambda p: p[1], reverse=True)\n", + "\n", + " # binarize (select correct class)\n", + " for y,p in ps:\n", + " ypred.append(p)\n", + " if y == i:\n", + " ybin.append(1)\n", + " else:\n", + " ybin.append(0)\n", + " \n", + " # extract false positives, true positives\n", + " fpr, tpr, _ = roc_curve(ybin, ypred)\n", + " \n", + " fig= plt.figure()\n", + " ax = fig.gca()\n", + " plt.plot(fpr, tpr,\n", + " color='darkorange',\n", + " lw=2\n", + " )\n", + " plt.xlim([-0.1, 1.1])\n", + " plt.ylim([-0.1, 1.1])\n", + " ax.set_title(\"ROC plot for class: %s\" % cname)\n", + " ax.set_xlabel(\"FP\")\n", + " ax.set_ylabel(\"TP\")\n", + " ax.grid(True)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nota\n", + "\n", + "notiamo che cambiando il seed l'accuracy del cls può essere perfezionata. Per questo non ho fatto un tuning ulteriore" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "results = []\n", + "for i in range(1500):\n", + " iris_X_train, iris_y_train, iris_X_test, iris_y_test = start(seed=i)\n", + " clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,\n", + " min_samples_leaf=3,class_weight={0:1,1:10,2:10}, \n", + " min_impurity_decrease = 0.005, \n", + " max_depth = 4, max_leaf_nodes = 6)\n", + " clf = clf.fit(iris_X_train, iris_y_train)\n", + " predicted_y_test = clf.predict(iris_X_test)\n", + " acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + " f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + " results.append((i, acc_score, f1))\n", + " \n", + "results = sorted(results, key=lambda r: r[1], reverse=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best five\n", + "seed=2, accuracy=1.0, f1=1.0\n", + "seed=4, accuracy=1.0, f1=1.0\n", + "seed=5, accuracy=1.0, f1=1.0\n", + "seed=7, accuracy=1.0, f1=1.0\n", + "seed=9, accuracy=1.0, f1=1.0\n", + "\n", + "Worst five\n", + "seed=938, accuracy=0.7, f1=0.6888888888888888\n", + "seed=1148, accuracy=0.7, f1=0.746031746031746\n", + "seed=1316, accuracy=0.7, f1=0.5555555555555555\n", + "seed=1351, accuracy=0.7, f1=0.746031746031746\n", + "seed=901, accuracy=0.6, f1=0.7000000000000001\n" + ] + } + ], + "source": [ + "print('Best five')\n", + "for seed, acc, f1 in results[:5]:\n", + " print(f'seed={seed}, accuracy={acc}, f1={f1}')\n", + " \n", + "print()\n", + "print('Worst five')\n", + "for seed, acc, f1 in results[-5:]:\n", + " print(f'seed={seed}, accuracy={acc}, f1={f1}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-Copy1.ipynb b/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-Copy1.ipynb deleted file mode 100644 index c85fde8..0000000 --- a/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-Copy1.ipynb +++ /dev/null @@ -1,1203 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Classifiers introduction\n", - "\n", - "In the following program we introduce the basic steps of classification of a dataset in a matrix" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Import the package for learning and modeling trees" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "from sklearn import tree\n", - "import pandas as pd\n", - "from sklearn.preprocessing import label_binarize\n", - "from sklearn.metrics import roc_curve\n", - "import matplotlib.pyplot as plt\n", - "from numpy import ravel" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Define the matrix containing the data (one example per row)\n", - "and the vector containing the corresponding target value" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "X = [[0, 0, 0], [1, 1, 1], [0, 1, 0], [0, 0, 1], [1, 1, 0], [1, 0, 1]]\n", - "Y = [1, 0, 0, 0, 1, 1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Declare the classification model you want to use and then fit the model to the data" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "clf = tree.DecisionTreeClassifier()\n", - "clf = clf.fit(X, Y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Predict the target value (and print it) for the passed data, using the fitted model currently in clf" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0]\n" - ] - } - ], - "source": [ - "print(clf.predict([[0, 1, 1]]))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1 0]\n" - ] - } - ], - "source": [ - "print(clf.predict([[1, 0, 1],[0, 0, 1]]))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Tree\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "X[1] <= 0.5\n", - "gini = 0.5\n", - "samples = 6\n", - "value = [3, 3]\n", - "\n", - "\n", - "\n", - "1\n", - "\n", - "X[0] <= 0.5\n", - "gini = 0.444\n", - "samples = 3\n", - "value = [1, 2]\n", - "\n", - "\n", - "\n", - "0->1\n", - "\n", - "\n", - "True\n", - "\n", - "\n", - "\n", - "6\n", - "\n", - "X[0] <= 0.5\n", - "gini = 0.444\n", - "samples = 3\n", - "value = [2, 1]\n", - "\n", - "\n", - "\n", - "0->6\n", - "\n", - "\n", - "False\n", - "\n", - "\n", - "\n", - "2\n", - "\n", - "X[2] <= 0.5\n", - "gini = 0.5\n", - "samples = 2\n", - "value = [1, 1]\n", - "\n", - "\n", - "\n", - "1->2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "5\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "\n", - "1->5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "\n", - "2->3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "\n", - "2->4\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "7\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "\n", - "6->7\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "8\n", - "\n", - "X[2] <= 0.5\n", - "gini = 0.5\n", - "samples = 2\n", - "value = [1, 1]\n", - "\n", - "\n", - "\n", - "6->8\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "9\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [0, 1]\n", - "\n", - "\n", - "\n", - "8->9\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "10\n", - "\n", - "gini = 0.0\n", - "samples = 1\n", - "value = [1, 0]\n", - "\n", - "\n", - "\n", - "8->10\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import graphviz \n", - "dot_data = tree.export_graphviz(clf, out_file=None) \n", - "graph = graphviz.Source(dot_data) \n", - "graph" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the following we start using a dataset (from UCI Machine Learning repository)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.datasets import load_iris\n", - "iris = load_iris()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Declare the type of prediction model and the working criteria for the model induction algorithm" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [], - "source": [ - "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", - " random_state=300,\n", - " min_samples_leaf=5,\n", - " max_depth=4,\n", - " min_impurity_decrease=0.1,\n", - " class_weight={0:1,1:10,2:10}) # setosa, versicolor, verginica" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Split the dataset in training and test set" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": {}, - "outputs": [], - "source": [ - "# Generate a random permutation of the indices of examples that will be later used \n", - "# for the training and the test set\n", - "import numpy as np\n", - "np.random.seed(0)\n", - "indices = np.random.permutation(len(iris.data))\n", - "\n", - "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", - "indices_training=indices[:-10]\n", - "indices_test=indices[-10:]\n", - "\n", - "# keep for training all the matrix elements with the exception of the last 10 \n", - "iris_y_train = iris.target[indices_training]\n", - "iris_X_train = iris.data[indices_training]\n", - "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", - "iris_y_test = iris.target[indices_test]" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Inflating by 140 members.\n" - ] - } - ], - "source": [ - "# artificial inflation\n", - "inflate = len(iris_X_train/2)\n", - "print(\"Inflating by \"+str(inflate)+\" members.\")\n", - "count = 0\n", - "for i,y in enumerate(iris_y_train):\n", - " if count > inflate:\n", - " break\n", - " if y == 1 or y == 2:\n", - " np.append(iris_X_train, iris_X_train[i])\n", - " np.append(iris_y_train, y)\n", - " count += 1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Fit the learning model on training set" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Ranking features: [0. 0. 0.31436374 0.68563626]\n" - ] - }, - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Tree\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "petal width (cm) ≤ 1.75\n", - "entropy = 1.225\n", - "samples = 140\n", - "value = [46, 460, 480]\n", - "class = virginica\n", - "\n", - "\n", - "\n", - "1\n", - "\n", - "petal length (cm) ≤ 2.45\n", - "entropy = 0.836\n", - "samples = 97\n", - "value = [46, 460, 50]\n", - "class = versicolor\n", - "\n", - "\n", - "\n", - "0->1\n", - "\n", - "\n", - "True\n", - "\n", - "\n", - "\n", - "6\n", - "\n", - "entropy = 0.0\n", - "samples = 43\n", - "value = [0, 0, 430]\n", - "class = virginica\n", - "\n", - "\n", - "\n", - "0->6\n", - "\n", - "\n", - "False\n", - "\n", - "\n", - "\n", - "2\n", - "\n", - "entropy = 0.0\n", - "samples = 46\n", - "value = [46, 0, 0]\n", - "class = setosa\n", - "\n", - "\n", - "\n", - "1->2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3\n", - "\n", - "petal length (cm) ≤ 4.95\n", - "entropy = 0.463\n", - "samples = 51\n", - "value = [0, 460, 50]\n", - "class = versicolor\n", - "\n", - "\n", - "\n", - "1->3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4\n", - "\n", - "entropy = 0.154\n", - "samples = 45\n", - "value = [0, 440, 10]\n", - "class = versicolor\n", - "\n", - "\n", - "\n", - "3->4\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "5\n", - "\n", - "entropy = 0.918\n", - "samples = 6\n", - "value = [0, 20, 40]\n", - "class = virginica\n", - "\n", - "\n", - "\n", - "3->5\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# fit the model to the training data\n", - "clf = clf.fit(iris_X_train, iris_y_train)\n", - "\n", - "print(\"Ranking features: \"+str(clf.feature_importances_))\n", - "\n", - "# plot\n", - "dot_data = tree.export_graphviz(clf, out_file=None, \n", - " feature_names=iris.feature_names, \n", - " class_names=iris.target_names, \n", - " filled=True, rounded=True, \n", - " special_characters=True) \n", - "graph = graphviz.Source(dot_data) \n", - "graph\n", - "\n", - "#Instance # 70: \n", - "#sepal length (cm)=5.9,\n", - "#sepal width (cm)=3.2,\n", - "#petal length (cm)=4.8,\n", - "#petal width (cm)=1.8\n", - "#Predicted: virginica\t True: versicolor" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Obtain predictions" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predictions:\n", - "[1 2 1 0 0 0 2 1 2 0]\n", - "True classes:\n", - "[1 1 1 0 0 0 2 1 2 0]\n", - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "# apply fitted model \"clf\" to the test set \n", - "predicted_y_test = clf.predict(iris_X_test)\n", - "\n", - "# print the predictions (class numbers associated to classes names in target names)\n", - "print(\"Predictions:\")\n", - "print(predicted_y_test)\n", - "print(\"True classes:\")\n", - "print(iris_y_test) \n", - "print(iris.target_names)" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Confusion matrix:\n", - " 0 1 2\n", - "0 4 0 0\n", - "1 0 3 1\n", - "2 0 0 2\n" - ] - } - ], - "source": [ - "# confusion matrix\n", - "from sklearn.metrics import confusion_matrix\n", - "import pandas as pd\n", - "print(\"Confusion matrix:\")\n", - "print(pd.DataFrame(confusion_matrix(iris_y_test, predicted_y_test)))" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "# foreach class\n", - "for i,cname in enumerate(iris.target_names):\n", - " ybin = []\n", - " ypred = []\n", - " \n", - " # rank positives based on predicted probabilities\n", - " pred = clf.predict_proba(iris_X_test)[:,i]\n", - " pi = [(iris_y_test[j], p) for j,p in enumerate(pred)]\n", - " ps = sorted(pi, key=lambda p: p[1], reverse=True)\n", - "\n", - " # binarize (select correct class)\n", - " for y,p in ps:\n", - " ypred.append(p)\n", - " if y == i:\n", - " ybin.append(1)\n", - " else:\n", - " ybin.append(0)\n", - " \n", - " # extract false positives, true positives\n", - " fpr, tpr, _ = roc_curve(ybin, ypred)\n", - " \n", - " fig= plt.figure()\n", - " ax = fig.gca()\n", - " plt.plot(fpr, tpr,\n", - " color='darkorange',\n", - " lw=2\n", - " )\n", - " plt.xlim([-0.1, 1.1])\n", - " plt.ylim([-0.1, 1.1])\n", - " ax.set_title(\"ROC plot for class: %s\" % cname)\n", - " ax.set_xlabel(\"FP\")\n", - " ax.set_ylabel(\"TP\")\n", - " ax.grid(True)\n", - " plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Print the index of the test instances and the corresponding predictions" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Instance # 88: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 70: \n", - "Predicted: virginica\t True: versicolor\n", - "\n", - "Instance # 87: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 36: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 21: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 9: \n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 103: \n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # 67: \n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # 117: \n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # 47: \n", - "Predicted: setosa\t True: setosa\n", - "\n" - ] - } - ], - "source": [ - "# print the corresponding instances indexes and class names \n", - "for i in range(len(iris_y_test)): \n", - " print(\"Instance # \"+str(indices_test[i])+\": \")\n", - " print(\"Predicted: \"+iris.target_names[predicted_y_test[i]]+\"\\t True: \"+iris.target_names[iris_y_test[i]]+\"\\n\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Look at the specific examples" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.6, sepal width (cm)=3.0, petal length (cm)=4.1, petal width (cm)=1.3\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.9, sepal width (cm)=3.2, petal length (cm)=4.8, petal width (cm)=1.8\n", - "Predicted: virginica\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=6.3, sepal width (cm)=2.3, petal length (cm)=4.4, petal width (cm)=1.3\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.5, sepal width (cm)=3.5, petal length (cm)=1.3, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=4.9, sepal width (cm)=3.1, petal length (cm)=1.5, petal width (cm)=0.1\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=6.3, sepal width (cm)=2.9, petal length (cm)=5.6, petal width (cm)=1.8\n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=5.8, sepal width (cm)=2.7, petal length (cm)=4.1, petal width (cm)=1.0\n", - "Predicted: versicolor\t True: versicolor\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=7.7, sepal width (cm)=3.8, petal length (cm)=6.7, petal width (cm)=2.2\n", - "Predicted: virginica\t True: virginica\n", - "\n", - "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", - "sepal length (cm)=4.6, sepal width (cm)=3.2, petal length (cm)=1.4, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n" - ] - } - ], - "source": [ - "for i in range(len(iris_y_test)): \n", - " print(\"Instance # \"+str(indices_test)+\": \")\n", - " s=\"\"\n", - " for j in range(len(iris.feature_names)):\n", - " s=s+iris.feature_names[j]+\"=\"+str(iris_X_test[i][j])\n", - " if (j\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Tree\n", - "\n", - "\n", - "0\n", - "\n", - "petal length (cm) ≤ 2.45\n", - "entropy = 1.585\n", - "samples = 150\n", - "value = [50, 50, 50]\n", - "class = setosa\n", - "\n", - "\n", - "1\n", - "\n", - "entropy = 0.0\n", - "samples = 50\n", - "value = [50, 0, 0]\n", - "class = setosa\n", - "\n", - "\n", - "0->1\n", - "\n", - "\n", - "True\n", - "\n", - "\n", - "2\n", - "\n", - "petal width (cm) ≤ 1.75\n", - "entropy = 1.0\n", - "samples = 100\n", - "value = [0, 50, 50]\n", - "class = versicolor\n", - "\n", - "\n", - "0->2\n", - "\n", - "\n", - "False\n", - "\n", - "\n", - "3\n", - "\n", - "petal length (cm) ≤ 4.95\n", - "entropy = 0.445\n", - "samples = 54\n", - "value = [0, 49, 5]\n", - "class = versicolor\n", - "\n", - "\n", - "2->3\n", - "\n", - "\n", - "\n", - "\n", - "8\n", - "\n", - "petal length (cm) ≤ 4.95\n", - "entropy = 0.151\n", - "samples = 46\n", - "value = [0, 1, 45]\n", - "class = virginica\n", - "\n", - "\n", - "2->8\n", - "\n", - "\n", - "\n", - "\n", - "4\n", - "\n", - "sepal length (cm) ≤ 5.15\n", - "entropy = 0.146\n", - "samples = 48\n", - "value = [0, 47, 1]\n", - "class = versicolor\n", - "\n", - "\n", - "3->4\n", - "\n", - "\n", - "\n", - "\n", - "7\n", - "\n", - "entropy = 0.918\n", - "samples = 6\n", - "value = [0, 2, 4]\n", - "class = virginica\n", - "\n", - "\n", - "3->7\n", - "\n", - "\n", - "\n", - "\n", - "5\n", - "\n", - "entropy = 0.722\n", - "samples = 5\n", - "value = [0, 4, 1]\n", - "class = versicolor\n", - "\n", - "\n", - "4->5\n", - "\n", - "\n", - "\n", - "\n", - "6\n", - "\n", - "entropy = 0.0\n", - "samples = 43\n", - "value = [0, 43, 0]\n", - "class = versicolor\n", - "\n", - "\n", - "4->6\n", - "\n", - "\n", - "\n", - "\n", - "9\n", - "\n", - "entropy = 0.65\n", - "samples = 6\n", - "value = [0, 1, 5]\n", - "class = virginica\n", - "\n", - "\n", - "8->9\n", - "\n", - "\n", - "\n", - "\n", - "10\n", - "\n", - "entropy = 0.0\n", - "samples = 40\n", - "value = [0, 0, 40]\n", - "class = virginica\n", - "\n", - "\n", - "8->10\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dot_data = tree.export_graphviz(clf, out_file=None, \n", - " feature_names=iris.feature_names, \n", - " class_names=iris.target_names, \n", - " filled=True, rounded=True, \n", - " special_characters=True) \n", - "graph = graphviz.Source(dot_data) \n", - "graph" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "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.7" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-completo.ipynb b/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-completo.ipynb new file mode 100644 index 0000000..2bd29dc --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/all_m/classification_iris_aa_19_20-completo.ipynb @@ -0,0 +1,1672 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Classifiers introduction\n", + "\n", + "In the following program we introduce the basic steps of classification of a dataset in a matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the package for learning and modeling trees" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from sklearn import tree\n", + "import pandas as pd\n", + "from sklearn.preprocessing import label_binarize\n", + "from sklearn.metrics import roc_curve\n", + "import matplotlib.pyplot as plt\n", + "from numpy import ravel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the matrix containing the data (one example per row)\n", + "and the vector containing the corresponding target value" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X = [[0, 0, 0], [1, 1, 1], [0, 1, 0], [0, 0, 1], [1, 1, 0], [1, 0, 1]]\n", + "Y = [1, 0, 0, 0, 1, 1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Declare the classification model you want to use and then fit the model to the data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier()\n", + "clf = clf.fit(X, Y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predict the target value (and print it) for the passed data, using the fitted model currently in clf" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[0, 1, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[1, 0, 1],[0, 0, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "X[2] <= 0.5\n", + "gini = 0.5\n", + "samples = 6\n", + "value = [3, 3]\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [1, 2]\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [2, 1]\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "1->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "6->10\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "7->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "7->9\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import graphviz \n", + "dot_data = tree.export_graphviz(clf, out_file=None) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following we start using a dataset (from UCI Machine Learning repository)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_iris\n", + "iris = load_iris()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Declare the type of prediction model and the working criteria for the model induction algorithm" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=5,\n", + " max_depth=4,\n", + " min_impurity_decrease=0.1,\n", + " class_weight={0:1,1:10,2:10}) # setosa, versicolor, verginica" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Split the dataset in training and test set" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(0)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "# keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_train = iris.data[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inflating by 140 members.\n" + ] + } + ], + "source": [ + "# artificial inflation\n", + "inflate = len(iris_X_train/2)\n", + "print(\"Inflating by \"+str(inflate)+\" members.\")\n", + "count = 0\n", + "for i,y in enumerate(iris_y_train):\n", + " if count > inflate:\n", + " break\n", + " if y == 1 or y == 2:\n", + " np.append(iris_X_train, iris_X_train[i])\n", + " np.append(iris_y_train, y)\n", + " count += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fit the learning model on training set" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ranking features: [0. 0. 0.31436374 0.68563626]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.225\n", + "samples = 140\n", + "value = [46, 460, 480]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.836\n", + "samples = 97\n", + "value = [46, 460, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 46\n", + "value = [46, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.463\n", + "samples = 51\n", + "value = [0, 460, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "entropy = 0.154\n", + "samples = 45\n", + "value = [0, 440, 10]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 20, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# fit the model to the training data\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "\n", + "print(\"Ranking features: \"+str(clf.feature_importances_))\n", + "\n", + "# plot\n", + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph\n", + "\n", + "#Instance # 70: \n", + "#sepal length (cm)=5.9,\n", + "#sepal width (cm)=3.2,\n", + "#petal length (cm)=4.8,\n", + "#petal width (cm)=1.8\n", + "#Predicted: virginica\t True: versicolor" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Obtain predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predictions:\n", + "[1 2 1 0 0 0 2 1 2 0]\n", + "True classes:\n", + "[1 1 1 0 0 0 2 1 2 0]\n", + "['setosa' 'versicolor' 'virginica']\n" + ] + } + ], + "source": [ + "# apply fitted model \"clf\" to the test set \n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "\n", + "# print the predictions (class numbers associated to classes names in target names)\n", + "print(\"Predictions:\")\n", + "print(predicted_y_test)\n", + "print(\"True classes:\")\n", + "print(iris_y_test) \n", + "print(iris.target_names)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Print the index of the test instances and the corresponding predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Instance # 88: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 70: \n", + "Predicted: virginica\t True: versicolor\n", + "\n", + "Instance # 87: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 36: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 21: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 9: \n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 103: \n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 67: \n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 117: \n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 47: \n", + "Predicted: setosa\t True: setosa\n", + "\n" + ] + } + ], + "source": [ + "# print the corresponding instances indexes and class names \n", + "for i in range(len(iris_y_test)): \n", + " print(\"Instance # \"+str(indices_test[i])+\": \")\n", + " print(\"Predicted: \"+iris.target_names[predicted_y_test[i]]+\"\\t True: \"+iris.target_names[iris_y_test[i]]+\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Look at the specific examples" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.6, sepal width (cm)=3.0, petal length (cm)=4.1, petal width (cm)=1.3\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.9, sepal width (cm)=3.2, petal length (cm)=4.8, petal width (cm)=1.8\n", + "Predicted: virginica\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.3, petal length (cm)=4.4, petal width (cm)=1.3\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.5, sepal width (cm)=3.5, petal length (cm)=1.3, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=4.9, sepal width (cm)=3.1, petal length (cm)=1.5, petal width (cm)=0.1\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.9, petal length (cm)=5.6, petal width (cm)=1.8\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=5.8, sepal width (cm)=2.7, petal length (cm)=4.1, petal width (cm)=1.0\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=7.7, sepal width (cm)=3.8, petal length (cm)=6.7, petal width (cm)=2.2\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # [ 88 70 87 36 21 9 103 67 117 47]: \n", + "sepal length (cm)=4.6, sepal width (cm)=3.2, petal length (cm)=1.4, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n" + ] + } + ], + "source": [ + "for i in range(len(iris_y_test)): \n", + " print(\"Instance # \"+str(indices_test)+\": \")\n", + " s=\"\"\n", + " for j in range(len(iris.feature_names)):\n", + " s=s+iris.feature_names[j]+\"=\"+str(iris_X_test[i][j])\n", + " if (j\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 1.585\n", + "samples = 150\n", + "value = [50, 50, 50]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "entropy = 0.0\n", + "samples = 50\n", + "value = [50, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.0\n", + "samples = 100\n", + "value = [0, 50, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.445\n", + "samples = 54\n", + "value = [0, 49, 5]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.151\n", + "samples = 46\n", + "value = [0, 1, 45]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "sepal length (cm) ≤ 5.15\n", + "entropy = 0.146\n", + "samples = 48\n", + "value = [0, 47, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 2, 4]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.722\n", + "samples = 5\n", + "value = [0, 4, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 43, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.65\n", + "samples = 6\n", + "value = [0, 1, 5]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 40\n", + "value = [0, 0, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# 1. Artificial inflation\n", + "get an artificial inflation of some class in the training set by\n", + " a given factor: 10 (weigh more the classes virginica e versicolor\n", + " which are more difficult to discriminate). Learn the tree in these\n", + " conditions.\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "def start(seed=42):\n", + " # Generate a random permutation of the indices of examples that will be later used \n", + " # for the training and the test set\n", + " np.random.seed(seed)\n", + " indices = np.random.permutation(len(iris.data))\n", + "\n", + " # We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + " indices_training=indices[:-10]\n", + " indices_test=indices[-10:]\n", + "\n", + " iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + " iris_y_train = iris.target[indices_training]\n", + " iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + " iris_y_test = iris.target[indices_test]\n", + " return iris_X_train, iris_y_train, iris_X_test, iris_y_test" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Inflated by 92 samples\n" + ] + } + ], + "source": [ + "iris_X_train, iris_y_train, iris_X_test, iris_y_test = start()\n", + "\n", + "# artificial inflation\n", + "inflate = len(iris_X_train/2)\n", + "count = 0\n", + "extra_samples_x = []\n", + "extra_samples_y = []\n", + "for i,y in enumerate(iris_y_train):\n", + " if count > inflate:\n", + " break\n", + " if y == 1 or y == 2:\n", + " extra_samples_x.append(iris_X_train[i])\n", + " extra_samples_y.append(y)\n", + " count += 1\n", + "iris_X_train = np.append(iris_X_train, extra_samples_x, axis=0)\n", + "iris_y_train = np.append(iris_y_train, extra_samples_y, axis=0)\n", + "print(f'Inflated by {len(extra_samples_x)} samples')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.75\n", + "entropy = 1.529\n", + "samples = 232\n", + "value = [48, 92, 92]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.954\n", + "samples = 128\n", + "value = [48, 80, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.516\n", + "samples = 104\n", + "value = [0, 12, 92]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->4\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 48\n", + "value = [48, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "entropy = 0.0\n", + "samples = 80\n", + "value = [0, 80, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.991\n", + "samples = 18\n", + "value = [0, 10, 8]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "sepal length (cm) ≤ 5.95\n", + "entropy = 0.159\n", + "samples = 86\n", + "value = [0, 2, 84]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.722\n", + "samples = 10\n", + "value = [0, 2, 8]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "entropy = 0.0\n", + "samples = 76\n", + "value = [0, 0, 76]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "6->8\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=10,\n", + " class_weight={0:1,1:1,2:1})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)\n", + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Class weights\n", + "modify the weight of some classes (set to 10 the weights for\n", + " misclassification between virginica into versicolor and vice versa)\n", + " and learn the tree in these conditions. You should obtain similar\n", + " results as for step 1." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + } + ], + "source": [ + "iris_X_train, iris_y_train, iris_X_test, iris_y_test = start()\n", + "\n", + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",\n", + " random_state=300,\n", + " min_samples_leaf=5,\n", + " class_weight={0:1,1:10,2:10})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3 Avoid overfitting\n", + "learn trees but avoid overfitting (by improving the error on the\n", + " test set) tuning the parameters on: the minimum number of samples\n", + " per leaf, max depth of the tree, min_impurity_decrease parameters,\n", + " max leaf nodes, etc." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" + ] + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,\n", + " min_samples_leaf=3,class_weight={0:1,1:10,2:10}, \n", + " min_impurity_decrease = 0.005, \n", + " max_depth = 4, max_leaf_nodes = 6)\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4 Confusion Matrix\n", + "build the confusion matrix of the created tree models on the\n", + " test set and show them.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Confusion matrix:\n", + " setosa versicolor virginica\n", + "setosa 2 0 0\n", + "versicolor 0 4 0\n", + "virginica 0 1 3\n" + ] + } + ], + "source": [ + "#from collections import Counter\n", + "#confusion = np.zeros([3, 3], dtype = int)\n", + "#cnt = Counter([(iris_y_test[i], predicted_y_test[i]) for i in range(len(iris_y_test))])\n", + "\n", + "#for i, j in cnt:\n", + "# confusion[i,j] = cnt[(i,j)]\n", + "#confusion = pd.DataFrame(confusion, columns=iris.target_names, index=iris.target_names)\n", + "#confusion\n", + "# confusion matrix\n", + "from sklearn.metrics import confusion_matrix\n", + "import pandas as pd\n", + "print(\"Confusion matrix:\")\n", + "print(pd.DataFrame(confusion_matrix(iris_y_test, predicted_y_test),\n", + " columns=iris.target_names, index=iris.target_names))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# foreach class\n", + "for i,cname in enumerate(iris.target_names):\n", + " ybin = []\n", + " ypred = []\n", + " \n", + " # rank positives based on predicted probabilities\n", + " pred = clf.predict_proba(iris_X_test)[:,i]\n", + " pi = [(iris_y_test[j], p) for j,p in enumerate(pred)]\n", + " ps = sorted(pi, key=lambda p: p[1], reverse=True)\n", + "\n", + " # binarize (select correct class)\n", + " for y,p in ps:\n", + " ypred.append(p)\n", + " if y == i:\n", + " ybin.append(1)\n", + " else:\n", + " ybin.append(0)\n", + " \n", + " # extract false positives, true positives\n", + " fpr, tpr, _ = roc_curve(ybin, ypred)\n", + " \n", + " fig= plt.figure()\n", + " ax = fig.gca()\n", + " plt.plot(fpr, tpr,\n", + " color='darkorange',\n", + " lw=2\n", + " )\n", + " plt.xlim([-0.1, 1.1])\n", + " plt.ylim([-0.1, 1.1])\n", + " ax.set_title(\"ROC plot for class: %s\" % cname)\n", + " ax.set_xlabel(\"FP\")\n", + " ax.set_ylabel(\"TP\")\n", + " ax.grid(True)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nota\n", + "\n", + "notiamo che cambiando il seed l'accuracy del cls può essere perfezionata. Per questo non ho fatto un tuning ulteriore" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "results = []\n", + "for i in range(1500):\n", + " iris_X_train, iris_y_train, iris_X_test, iris_y_test = start(seed=i)\n", + " clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,\n", + " min_samples_leaf=3,class_weight={0:1,1:10,2:10}, \n", + " min_impurity_decrease = 0.005, \n", + " max_depth = 4, max_leaf_nodes = 6)\n", + " clf = clf.fit(iris_X_train, iris_y_train)\n", + " predicted_y_test = clf.predict(iris_X_test)\n", + " acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + " f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + " results.append((i, acc_score, f1))\n", + " \n", + "results = sorted(results, key=lambda r: r[1], reverse=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best five\n", + "seed=2, accuracy=1.0, f1=1.0\n", + "seed=4, accuracy=1.0, f1=1.0\n", + "seed=5, accuracy=1.0, f1=1.0\n", + "seed=7, accuracy=1.0, f1=1.0\n", + "seed=9, accuracy=1.0, f1=1.0\n", + "\n", + "Worst five\n", + "seed=938, accuracy=0.7, f1=0.6888888888888888\n", + "seed=1148, accuracy=0.7, f1=0.746031746031746\n", + "seed=1316, accuracy=0.7, f1=0.5555555555555555\n", + "seed=1351, accuracy=0.7, f1=0.746031746031746\n", + "seed=901, accuracy=0.6, f1=0.7000000000000001\n" + ] + } + ], + "source": [ + "print('Best five')\n", + "for seed, acc, f1 in results[:5]:\n", + " print(f'seed={seed}, accuracy={acc}, f1={f1}')\n", + " \n", + "print()\n", + "print('Worst five')\n", + "for seed, acc, f1 in results[-5:]:\n", + " print(f'seed={seed}, accuracy={acc}, f1={f1}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions b/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions new file mode 100644 index 0000000..7aec8e9 --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions @@ -0,0 +1,24 @@ +digraph Tree { +node [shape=box] ; +0 [label="X[2] <= 2.45\nentropy = 1.585\nsamples = 150\nvalue = [50, 50, 50]"] ; +1 [label="entropy = 0.0\nsamples = 50\nvalue = [50, 0, 0]"] ; +0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ; +2 [label="X[3] <= 1.75\nentropy = 1.0\nsamples = 100\nvalue = [0, 50, 50]"] ; +0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ; +3 [label="X[2] <= 4.95\nentropy = 0.445\nsamples = 54\nvalue = [0, 49, 5]"] ; +2 -> 3 ; +4 [label="X[0] <= 5.15\nentropy = 0.146\nsamples = 48\nvalue = [0, 47, 1]"] ; +3 -> 4 ; +5 [label="entropy = 0.722\nsamples = 5\nvalue = [0, 4, 1]"] ; +4 -> 5 ; +6 [label="entropy = 0.0\nsamples = 43\nvalue = [0, 43, 0]"] ; +4 -> 6 ; +7 [label="entropy = 0.918\nsamples = 6\nvalue = [0, 2, 4]"] ; +3 -> 7 ; +8 [label="X[2] <= 4.95\nentropy = 0.151\nsamples = 46\nvalue = [0, 1, 45]"] ; +2 -> 8 ; +9 [label="entropy = 0.65\nsamples = 6\nvalue = [0, 1, 5]"] ; +8 -> 9 ; +10 [label="entropy = 0.0\nsamples = 40\nvalue = [0, 0, 40]"] ; +8 -> 10 ; +} diff --git a/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions.pdf b/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions.pdf new file mode 100644 index 0000000..8d2454a Binary files /dev/null and b/anno3/apprendimento_automatico/esercizi/all_m/my_iris_predictions.pdf differ diff --git a/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/classification_iris_aa_19_20-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/classification_iris_aa_19_20-checkpoint.ipynb new file mode 100644 index 0000000..470fdfa --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/classification_iris_aa_19_20-checkpoint.ipynb @@ -0,0 +1,1927 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# # Classifiers introduction\n", + "\n", + "In the following program we introduce the basic steps of classification of a dataset in a matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Import the package for learning and modeling trees" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from sklearn import tree" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the matrix containing the data (one example per row)\n", + "and the vector containing the corresponding target value" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X = [[0, 0, 0], [1, 1, 1], [0, 1, 0], [0, 0, 1], [1, 1, 0], [1, 0, 1]]\n", + "Y = [1, 0, 0, 0, 1, 1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Declare the classification model you want to use and then fit the model to the data" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier()\n", + "clf = clf.fit(X, Y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predict the target value (and print it) for the passed data, using the fitted model currently in clf" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[0, 1, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 0]\n" + ] + } + ], + "source": [ + "print(clf.predict([[1, 0, 1],[0, 0, 1]]))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.5\n", + "samples = 6\n", + "value = [3, 3]\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [2, 1]\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [1, 2]\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "X[2] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "1->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "X[2] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "6->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "os.environ[\"PATH\"] += os.pathsep + 'C:/Users/galat/.conda/envs/aaut/Library/bin/graphviz'\n", + "import graphviz\n", + "dot_data = tree.export_graphviz(clf, out_file=None) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following we start using a dataset (from UCI Machine Learning repository)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.datasets import load_iris\n", + "iris = load_iris()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Declare the type of prediction model and the working criteria for the model induction algorithm" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,min_samples_leaf=5,class_weight={0:1,1:1,2:1})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Split the dataset in training and test set" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(1231)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Fit the learning model on training set" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# fit the model to the training data\n", + "clf = clf.fit(iris_X_train, iris_y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Obtain predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predictions:\n", + "[0 0 0 1 0 0 1 2 0 0]\n", + "True classes:\n", + "[0 0 0 2 0 0 1 1 0 0]\n", + "['setosa' 'versicolor' 'virginica']\n" + ] + } + ], + "source": [ + "# apply fitted model \"clf\" to the test set \n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "\n", + "# print the predictions (class numbers associated to classes names in target names)\n", + "print(\"Predictions:\")\n", + "print(predicted_y_test)\n", + "print(\"True classes:\")\n", + "print(iris_y_test) \n", + "print(iris.target_names)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Print the index of the test instances and the corresponding predictions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Look at the specific examples" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Instance # 33: \n", + "sepal length (cm)=5.5, sepal width (cm)=4.2, petal length (cm)=1.4, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 2: \n", + "sepal length (cm)=4.7, sepal width (cm)=3.2, petal length (cm)=1.3, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 11: \n", + "sepal length (cm)=4.8, sepal width (cm)=3.4, petal length (cm)=1.6, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 126: \n", + "sepal length (cm)=6.2, sepal width (cm)=2.8, petal length (cm)=4.8, petal width (cm)=1.8\n", + "Predicted: versicolor\t True: virginica\n", + "\n", + "Instance # 49: \n", + "sepal length (cm)=5.0, sepal width (cm)=3.3, petal length (cm)=1.4, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 10: \n", + "sepal length (cm)=5.4, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 85: \n", + "sepal length (cm)=6.0, sepal width (cm)=3.4, petal length (cm)=4.5, petal width (cm)=1.6\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 52: \n", + "sepal length (cm)=6.9, sepal width (cm)=3.1, petal length (cm)=4.9, petal width (cm)=1.5\n", + "Predicted: virginica\t True: versicolor\n", + "\n", + "Instance # 5: \n", + "sepal length (cm)=5.4, sepal width (cm)=3.9, petal length (cm)=1.7, petal width (cm)=0.4\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 21: \n", + "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", + "Predicted: setosa\t True: setosa\n", + "\n" + ] + } + ], + "source": [ + "for i in range(len(iris_y_test)): \n", + " print(\"Instance # \"+str(indices_test[i])+\": \")\n", + " s=\"\"\n", + " for j in range(len(iris.feature_names)):\n", + " s=s+iris.feature_names[j]+\"=\"+str(iris_X_test[i][j])\n", + " if (j\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 1.585\n", + "samples = 150\n", + "value = [50, 50, 50]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "entropy = 0.0\n", + "samples = 50\n", + "value = [50, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.0\n", + "samples = 100\n", + "value = [0, 50, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.445\n", + "samples = 54\n", + "value = [0, 49, 5]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.151\n", + "samples = 46\n", + "value = [0, 1, 45]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "sepal length (cm) ≤ 5.15\n", + "entropy = 0.146\n", + "samples = 48\n", + "value = [0, 47, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 2, 4]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.722\n", + "samples = 5\n", + "value = [0, 4, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 43, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.65\n", + "samples = 6\n", + "value = [0, 1, 5]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 40\n", + "value = [0, 0, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Artificial inflation" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(1231)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "samples_x = []\n", + "samples_y = []\n", + "for i in range(0, len(iris_y_train)):\n", + " if iris_y_train[i] == 1:\n", + " for _ in range(9):\n", + " samples_x.append(iris_X_train[i])\n", + " samples_y.append(1)\n", + " elif iris_y_train[i] == 2:\n", + " for _ in range(9):\n", + " samples_x.append(iris_X_train[i])\n", + " samples_y.append(2)\n", + "\n", + "#Samples inflation\n", + "iris_X_train = np.append(iris_X_train, samples_x, axis = 0)\n", + "iris_y_train = np.append(iris_y_train, samples_y, axis = 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 1.0\n", + "F1: 1.0\n" + ] + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,min_samples_leaf=10,class_weight={0:1,1:1,2:1})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 1.211\n", + "samples = 1013\n", + "value = [43, 480, 490]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.648\n", + "samples = 513\n", + "value = [43, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.327\n", + "samples = 500\n", + "value = [0, 30, 470]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->8\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [43, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal width (cm) ≤ 1.65\n", + "entropy = 0.254\n", + "samples = 470\n", + "value = [0, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "entropy = 0.0\n", + "samples = 440\n", + "value = [0, 440, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "sepal width (cm) ≤ 3.1\n", + "entropy = 0.918\n", + "samples = 30\n", + "value = [0, 10, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 0, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "5->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.0\n", + "samples = 10\n", + "value = [0, 10, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "petal length (cm) ≤ 5.35\n", + "entropy = 0.985\n", + "samples = 70\n", + "value = [0, 30, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "16\n", + "\n", + "entropy = 0.0\n", + "samples = 430\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->16\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "petal width (cm) ≤ 1.55\n", + "entropy = 0.971\n", + "samples = 50\n", + "value = [0, 30, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "9->10\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "15\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 0, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "9->15\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "11\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.918\n", + "samples = 30\n", + "value = [0, 10, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "10->11\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "14\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 20, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "10->14\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "12\n", + "\n", + "entropy = 0.0\n", + "samples = 10\n", + "value = [0, 10, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "11->12\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "13\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 0, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "11->13\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Class weights" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(1231)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.8\n", + "F1: 0.5\n" + ] + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,min_samples_leaf=5,class_weight={0:1,1:10,2:10})\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 1.211\n", + "samples = 140\n", + "value = [43, 480, 490]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.648\n", + "samples = 90\n", + "value = [43, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.327\n", + "samples = 50\n", + "value = [0, 30, 470]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->8\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [43, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal width (cm) ≤ 1.45\n", + "entropy = 0.254\n", + "samples = 47\n", + "value = [0, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "entropy = 0.0\n", + "samples = 35\n", + "value = [0, 350, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "sepal length (cm) ≤ 6.1\n", + "entropy = 0.65\n", + "samples = 12\n", + "value = [0, 100, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.863\n", + "samples = 7\n", + "value = [0, 50, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.0\n", + "samples = 5\n", + "value = [0, 50, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.985\n", + "samples = 7\n", + "value = [0, 30, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3. Avoid overfitting" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Generate a random permutation of the indices of examples that will be later used \n", + "# for the training and the test set\n", + "import numpy as np\n", + "np.random.seed(1231)\n", + "indices = np.random.permutation(len(iris.data))\n", + "\n", + "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", + "indices_training=indices[:-10]\n", + "indices_test=indices[-10:]\n", + "\n", + "iris_X_train = iris.data[indices_training] # keep for training all the matrix elements with the exception of the last 10 \n", + "iris_y_train = iris.target[indices_training]\n", + "iris_X_test = iris.data[indices_test] # keep the last 10 elements for test set\n", + "iris_y_test = iris.target[indices_test]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 1.0\n", + "F1: 1.0\n" + ] + } + ], + "source": [ + "clf = tree.DecisionTreeClassifier(criterion=\"entropy\",random_state=300,min_samples_leaf=3,class_weight={0:1,1:10,2:10}, min_impurity_decrease = 0.005, max_depth = 4, max_leaf_nodes = 6)\n", + "clf = clf.fit(iris_X_train, iris_y_train)\n", + "predicted_y_test = clf.predict(iris_X_test)\n", + "acc_score = accuracy_score(iris_y_test, predicted_y_test)\n", + "f1 = f1_score(iris_y_test, predicted_y_test, average='macro')\n", + "print(\"Accuracy: \", acc_score)\n", + "print(\"F1: \", f1)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 1.211\n", + "samples = 140\n", + "value = [43, 480, 490]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.648\n", + "samples = 90\n", + "value = [43, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.327\n", + "samples = 50\n", + "value = [0, 30, 470]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [43, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "petal width (cm) ≤ 1.65\n", + "entropy = 0.254\n", + "samples = 47\n", + "value = [0, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.0\n", + "samples = 44\n", + "value = [0, 440, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "entropy = 0.918\n", + "samples = 3\n", + "value = [0, 10, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "4->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "petal length (cm) ≤ 5.05\n", + "entropy = 0.985\n", + "samples = 7\n", + "value = [0, 30, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.918\n", + "samples = 3\n", + "value = [0, 20, 10]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.811\n", + "samples = 4\n", + "value = [0, 10, 30]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "5->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dot_data = tree.export_graphviz(clf, out_file=None, \n", + " feature_names=iris.feature_names, \n", + " class_names=iris.target_names, \n", + " filled=True, rounded=True, \n", + " special_characters=True) \n", + "graph = graphviz.Source(dot_data) \n", + "graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Confusion Matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[7, 0, 0],\n", + " [0, 2, 0],\n", + " [0, 0, 1]])" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# initializes the confusion matrix\n", + "confusion = np.zeros([3, 3], dtype = int)\n", + "\n", + "# print the corresponding instances indexes and class names\n", + "for i in range(len(iris_y_test)): \n", + " #increments the indexed cell value\n", + " confusion[iris_y_test[i], predicted_y_test[i]]+=1\n", + "confusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 5. ROC Curves" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[(0.0, 43.0), (30.0, 0.0), (30.0, 0.0), (40.0, 0.0), (430.0, 0.0), (440.0, 0.0)], [(0.0, 440.0), (10.0, 20.0), (20.0, 10.0), (30.0, 10.0), (43.0, 0.0), (430.0, 0.0)], [(0.0, 430.0), (10.0, 30.0), (10.0, 20.0), (20.0, 10.0), (43.0, 0.0), (440.0, 0.0)]]\n" + ] + }, + { + "data": { + "text/plain": [ + "[[[0, 0.0, 30.0, 60.0, 100.0, 530.0, 970.0],\n", + " [0, 43.0, 43.0, 43.0, 43.0, 43.0, 43.0]],\n", + " [[0, 0.0, 10.0, 30.0, 60.0, 103.0, 533.0],\n", + " [0, 440.0, 460.0, 470.0, 480.0, 480.0, 480.0]],\n", + " [[0, 0.0, 10.0, 20.0, 40.0, 83.0, 523.0],\n", + " [0, 430.0, 460.0, 480.0, 490.0, 490.0, 490.0]]]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculates the ROC curves (x, y)\n", + "leafs = []\n", + "class_pairs = [[],[],[]]\n", + "roc_curves = [[[0], [0]], [[0], [0]], [[0], [0]]]\n", + "for i in range(clf.tree_.node_count):\n", + " if (clf.tree_.feature[i] == -2):\n", + " leafs.append(i)\n", + "\n", + "# c = class index\n", + "for leaf in leafs:\n", + " for c in range(3):\n", + " #pairs(neg, pos)\n", + " class_pairs[c].append((clf.tree_.value[leaf][0].sum() - clf.tree_.value[leaf][0][c], clf.tree_.value[leaf][0][c]))\n", + "\n", + "#pairs sorting\n", + "for c in range(3):\n", + " class_pairs[c] = sorted(class_pairs[c], key=lambda t: t[0]/max(1,t[1]))\n", + "print(class_pairs)\n", + "\n", + "for i in range(1, len(leafs) + 1):\n", + " for c in range(3):\n", + " roc_curves[c][0].append(class_pairs[c][i - 1][0] + roc_curves[c][0][i - 1])\n", + " roc_curves[c][1].append(class_pairs[c][i - 1][1] + roc_curves[c][1][i - 1])\n", + "\n", + "roc_curves" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Not ordered\n", + "for c in range(3):\n", + " plt.plot(roc_curves[c][0], roc_curves[c][1], color = \"red\")\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb index 4071407..35262a9 100644 --- a/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb +++ b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/coverage_plots-checkpoint.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -45,30 +45,30 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\ipykernel_launcher.py:1: DeprecationWarning: This function is deprecated. Please call randint(-100, 100 + 1) instead\n", + "/home/user/.local/lib/python3.7/site-packages/ipykernel_launcher.py:1: DeprecationWarning: This function is deprecated. Please call randint(-100, 100 + 1) instead\n", " \"\"\"Entry point for launching an IPython kernel.\n" ] }, { "data": { "text/plain": [ - "array([[ -8, -49],\n", - " [-39, 7],\n", - " [ 48, 95],\n", + "array([[ 63, 42],\n", + " [ 77, -65],\n", + " [ 24, -27],\n", " ...,\n", - " [ -2, 7],\n", - " [ 35, 72],\n", - " [ 28, -5]])" + " [ 47, 20],\n", + " [-55, -72],\n", + " [-58, -23]])" ] }, - "execution_count": 6, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -104,22 +104,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -144,115 +144,117 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, + "execution_count": 6, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "array([[-2.47471947, -3.5581708 ],\n", - " [ 1.59686449, 1.71893864],\n", - " [ 3.03294605, 4.57263288],\n", - " [ 4.3603124 , -1.19540694],\n", - " [ 1.21976183, 4.09720458],\n", - " [ 0.42857121, 3.20268614],\n", - " [-2.15226242, 2.96225011],\n", - " [ 0.65773544, -2.54676899],\n", - " [-2.79365386, -0.78924628],\n", - " [ 2.90156232, -3.31703275],\n", - " [-0.9849533 , 0.62170036],\n", - " [-4.0396815 , 4.36277095],\n", - " [ 1.34248188, 1.77758129],\n", - " [ 0.38419206, 0.17314725],\n", - " [-2.04665134, 2.10337995],\n", - " [-2.50975771, 3.65315789],\n", - " [ 2.004511 , 2.73918509],\n", - " [ 4.15805913, -4.96182686],\n", - " [ 4.51026319, -1.78429829],\n", - " [-3.31973604, 3.43442154],\n", - " [ 3.52497128, 0.85718807],\n", - " [-3.06163513, -0.86712587],\n", - " [-4.18156322, -2.21571818],\n", - " [-4.59703113, 4.4801163 ],\n", - " [-2.65368229, 4.37023623],\n", - " [ 3.90990454, -2.1420455 ],\n", - " [-3.24752094, -0.40639067],\n", - " [ 0.10755654, 0.48649316],\n", - " [ 2.26731088, 4.73364989],\n", - " [-4.22292673, -0.21284274],\n", - " [-4.66592874, -2.79620572],\n", - " [ 4.63716865, 0.87182744],\n", - " [-4.32406367, 1.10060443],\n", - " [-0.45847 , 0.70180339],\n", - " [ 3.22176576, -2.5364163 ],\n", - " [ 3.80797501, 2.35293627],\n", - " [ 3.36332162, -3.79299501],\n", - " [ 3.99625756, 2.36135165],\n", - " [ 1.20216525, -1.23827528],\n", - " [-3.09694201, 3.9600678 ],\n", - " [-0.64611333, 2.09501923],\n", - " [ 0.99744202, 1.49993523],\n", - " [-3.36391051, -3.90944487],\n", - " [-3.58672509, -4.1088498 ],\n", - " [ 3.46090243, 0.02661214],\n", - " [-1.49631605, -2.28424324],\n", - " [ 1.1089388 , -1.73806817],\n", - " [ 3.30150146, -3.13759682],\n", - " [-4.51293209, 4.08479726],\n", - " [-4.09529163, 4.28334043],\n", - " [-0.7227784 , 0.85683098],\n", - " [-3.54236195, -4.37842609],\n", - " [-1.67857772, 1.18420411],\n", - " [-2.06131565, -3.81118901],\n", - " [-0.94505145, -0.79410051],\n", - " [-1.58100698, -4.40226088],\n", - " [ 3.49623546, 0.98568917],\n", - " [-4.7875311 , 2.46132599],\n", - " [-0.90714606, -4.03370503],\n", - " [-4.04974727, 1.89697029],\n", - " [ 2.3912763 , 4.43535836],\n", - " [ 1.91805621, 3.10706978],\n", - " [ 2.7870542 , -4.76785357],\n", - " [-4.83230806, 0.68706866],\n", - " [ 4.21091682, 2.69235722],\n", - " [ 4.92125435, 1.67552945],\n", - " [-4.17809823, -3.0655279 ],\n", - " [ 1.34522792, -2.11218453],\n", - " [-2.82712946, -3.84431909],\n", - " [ 4.32983019, -0.67660343],\n", - " [ 3.69650316, -2.09533608],\n", - " [-2.46459767, -2.78730998],\n", - " [-0.12911643, 3.03464722],\n", - " [-0.54414414, -4.24446833],\n", - " [ 0.70841166, 0.82220448],\n", - " [-1.21624127, 2.67030582],\n", - " [-4.4511487 , -0.18157221],\n", - " [ 0.54850624, 3.80806515],\n", - " [ 0.41580003, 2.39770318],\n", - " [ 0.78040198, -2.27920522],\n", - " [-0.98993749, -4.66406869],\n", - " [ 2.67850165, 1.2013196 ],\n", - " [-0.85139301, -3.08916589],\n", - " [ 2.00142468, -3.62142984],\n", - " [-0.08136816, 1.76822154],\n", - " [-4.92951601, 0.11860089],\n", - " [-2.36011692, 2.25618495],\n", - " [ 1.60982063, -0.44192244],\n", - " [-2.54853258, -2.17737341],\n", - " [-1.31205757, 2.17528846],\n", - " [ 4.9863995 , -3.99442219],\n", - " [-1.87206871, -2.53218008],\n", - " [ 2.35107436, -4.08841325],\n", - " [ 3.5602568 , -2.39084033],\n", - " [-1.67264783, -2.78819786],\n", - " [ 2.14307079, -1.80908234],\n", - " [-2.47515458, 2.07939336],\n", - " [ 0.34640981, 0.10794752],\n", - " [ 1.0289358 , -1.10048266],\n", - " [-4.92276006, 0.74592667]])" + "array([[-3.56708359, 4.2173679 ],\n", + " [-2.24819841, -4.78033511],\n", + " [-2.65217433, -0.6063707 ],\n", + " [ 2.22522724, -1.3737868 ],\n", + " [ 1.14192194, -2.89068754],\n", + " [-2.57784496, -0.48320328],\n", + " [-1.98567784, -4.32466545],\n", + " [ 0.18087823, 3.4818154 ],\n", + " [-1.29875835, 1.51557613],\n", + " [ 4.81972953, -0.42049176],\n", + " [ 0.50982555, 4.85988498],\n", + " [-4.65192691, 4.7090496 ],\n", + " [ 1.76978104, -1.68074194],\n", + " [ 3.27116811, -2.24224267],\n", + " [-4.23830139, -3.18612366],\n", + " [-3.8511695 , -3.53659876],\n", + " [ 4.17130749, -3.99493944],\n", + " [-1.77612232, -2.98547622],\n", + " [ 2.60284283, -3.54389893],\n", + " [ 1.94474263, 0.87574031],\n", + " [-0.77056305, 0.69232701],\n", + " [ 3.34291539, 4.50561588],\n", + " [-2.72563297, 3.53671823],\n", + " [ 4.90984365, 1.68029481],\n", + " [ 3.19955049, 3.70221394],\n", + " [ 1.92131467, 3.118134 ],\n", + " [-1.3720329 , -2.8185771 ],\n", + " [-2.10756157, -3.29110329],\n", + " [ 1.23355252, -4.78030807],\n", + " [-1.43163348, -2.53721308],\n", + " [ 2.31520897, -1.3516775 ],\n", + " [-3.76663448, 0.31355621],\n", + " [ 4.85577408, 0.71145002],\n", + " [-4.3294729 , 1.68046326],\n", + " [-2.59917913, 4.08500999],\n", + " [ 3.67943457, 1.29892268],\n", + " [ 1.20118785, -0.04765288],\n", + " [-3.00013655, -4.55005222],\n", + " [ 4.2866447 , -0.31240087],\n", + " [-1.22791008, -2.15250488],\n", + " [-3.95873121, 2.13560657],\n", + " [ 1.40466773, 1.03243411],\n", + " [ 3.40406949, -0.88692212],\n", + " [ 0.62708997, 3.38264686],\n", + " [-3.48823227, -0.89532811],\n", + " [-4.34004124, 4.93494885],\n", + " [ 3.30806754, -3.92628874],\n", + " [-2.67753461, 0.36983349],\n", + " [-4.17195968, -1.85452959],\n", + " [-4.77495175, -3.33001656],\n", + " [-1.56106315, 4.34240146],\n", + " [ 4.10238174, -4.49656149],\n", + " [ 3.49311758, -1.39028564],\n", + " [-0.40272994, 4.22102051],\n", + " [ 4.50566149, 1.10356814],\n", + " [-2.3856706 , -3.97857028],\n", + " [ 3.72462319, 3.22213904],\n", + " [ 4.25264231, -1.68128306],\n", + " [ 0.73249504, -3.71816993],\n", + " [ 1.81677967, 4.73196931],\n", + " [-1.21442479, -2.84759613],\n", + " [-1.31382345, -4.09759844],\n", + " [-4.77299951, 4.85379267],\n", + " [-3.55287405, 0.95910989],\n", + " [ 0.18951388, 4.43661861],\n", + " [ 4.72987013, -4.09163053],\n", + " [ 0.8149054 , 4.31898901],\n", + " [-0.87583647, 1.16675956],\n", + " [-0.64637859, 3.40167131],\n", + " [-0.62658074, 4.58651024],\n", + " [-1.78645632, 3.85215258],\n", + " [ 1.15926923, -1.75726543],\n", + " [-2.00600541, 4.92990747],\n", + " [ 1.35433823, -2.32709303],\n", + " [-2.73621106, -4.0425546 ],\n", + " [ 3.83111626, 1.8644197 ],\n", + " [-1.22410301, 0.86166692],\n", + " [-1.51047856, -0.90824993],\n", + " [ 4.89797894, -2.64889207],\n", + " [-2.59993126, 4.9208619 ],\n", + " [-4.23181733, 2.23064469],\n", + " [-4.76666042, -3.66915997],\n", + " [-4.88905088, -0.44233631],\n", + " [-2.44930748, 0.56878184],\n", + " [-1.09013812, -2.24695652],\n", + " [ 0.49901451, -2.84495088],\n", + " [ 0.46975656, -0.99109978],\n", + " [-3.190664 , 2.63920782],\n", + " [-2.79980528, -4.23234307],\n", + " [ 0.13665919, -2.78904176],\n", + " [-3.56727479, 0.55472856],\n", + " [-3.59152304, 0.07804187],\n", + " [ 4.38128857, -3.87300022],\n", + " [ 3.84261658, 1.82166838],\n", + " [-3.44899234, -3.68102876],\n", + " [ 1.03133548, 3.09634947],\n", + " [-2.30690512, 0.22837024],\n", + " [ 1.35170795, -0.80041915],\n", + " [-2.70097645, 2.7137504 ],\n", + " [ 4.12379905, 4.98983271]])" ] }, - "execution_count": 11, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -293,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -306,15 +308,15 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[202. 281.]\n", - " [310. 207.]]\n" + "[[124. 372.]\n", + " [386. 118.]]\n" ] } ], @@ -331,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 9, "metadata": { "scrolled": true }, @@ -339,16 +341,16 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 43, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -386,16 +388,16 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([ 4.3603124 , -1.19540694])" + "array([ 3.40406949, -0.88692212])" ] }, - "execution_count": 51, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -413,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -423,14 +425,14 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "model: [ 4.3603124 -1.19540694] accuracy: 0.995\n" + "model: [ 3.40406949 -0.88692212] accuracy: 0.998\n" ] } ], diff --git a/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb new file mode 100644 index 0000000..a9f130b --- /dev/null +++ b/anno3/apprendimento_automatico/esercizi/marco/.ipynb_checkpoints/one_vs_rest-checkpoint.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Experiments with the one vs rest multiclass classification scheme" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from sklearn import datasets\n", + "from sklearn.multiclass import OneVsRestClassifier as OvR\n", + "from sklearn.svm import LinearSVC\n", + "import numpy as np\n", + "import copy\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "digits = datasets.load_digits()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will use the \"Optical Recognition of Handwritten Digits Data Set\" from UCI (included in scikit learn and already loaded on the previous line). Let us plot the first 10 images in the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for index, image in enumerate(digits.images[:10]):\n", + " plt.subplot(2, 5, index + 1)\n", + " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us create a training set using the first 1000 images and a test set using the rest of the data." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "X,y = digits.data[0:1000], digits.target[0:1000]\n", + "X_test, y_test = digits.data[1000:], digits.target[1000:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "scikit-learn provide us with an One-Vs-Rest classifier that we already imported with name `OvR`. Let us use that classifier to fit the training set and to make predictions over the test set:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], + "source": [ + "binaryLearner = LinearSVC(random_state=0)\n", + "\n", + "oneVrestLearningAlgorithm = OvR(binaryLearner)\n", + "oneVrestLearningAlgorithm.fit(X,y)\n", + "predicted_labels = oneVrestLearningAlgorithm.predict(X_test)\n", + "\n", + "# n.b.: the above is equivalent to:\n", + "# predicted_labels = OvR(LinearSVC(random_state=0)).fit(X,y).predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9058971141781681\n" + ] + } + ], + "source": [ + "print (\"Accuracy:\", (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Reimplement the OvR classifier by completing the methods in the following class [[1](#hint1)]:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "class OneVsRestClassifier:\n", + " \n", + " def __init__(self, learner):\n", + " self.learner = learner\n", + " return None\n", + "\n", + " def fit(self, data, labels):\n", + " self.labels = list(set(labels))\n", + " self.labels.sort()\n", + " self.classifiers = []\n", + " for i in range(len(self.labels)):\n", + " self.classifiers.append(copy.copy(self.learner))\n", + " #fit con data modificato (valore interessato in 1, il resto in -1)\n", + " self.classifiers[i].fit(data, [1 if label == self.labels[i] else -1 for label in labels])\n", + " return self\n", + "\n", + " def predict(self, data):\n", + " #trasposta delle predictions (ogni riga corrisponde alla prediction di ogni classificartore in ordine)\n", + " predictions = np.array([classifier.predict(data) for classifier in self.classifiers]).transpose()\n", + " prediction = []\n", + " #il valore predetto è la prima occorrenza di 1 in ogni riga di predictions, 0 se non è presente (questo favorisce le labels più piccole, soprattutto 0)\n", + " for i in range(len(data)):\n", + " prediction.append(self.labels[predictions[i].tolist().index(1) if 1 in predictions[i] else 0])\n", + " return prediction" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "<__main__.OneVsRestClassifier at 0x7f7b83ded610>" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classifier = OneVsRestClassifier(binaryLearner)\n", + "classifier.fit(X,y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Calculate the accuracy of your solution using the following code [[2](#hint2)]:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.8393977415307403\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/home/user/.local/lib/python3.7/site-packages/sklearn/svm/_base.py:977: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + } + ], + "source": [ + "ovr = OneVsRestClassifier(LinearSVC(random_state=0))\n", + "predicted_labels = ovr.fit(X,y).predict(X_test)\n", + "print(\"Accuracy:\", (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hint 1: Feel free to organize your code as you like (add as many methods as you believe are necessary).\n", + "\n", + "Hint 2: The scheme provided by scikit-learn is a little different from the one we have seen in the lessons. It is normal if your accuracy is not as good as the one obtained above (expect the accuracy to be between 0.8 and 0.9)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/anno3/apprendimento_automatico/esercizi/marco/classification_iris_aa_19_20.ipynb b/anno3/apprendimento_automatico/esercizi/marco/classification_iris_aa_19_20.ipynb index 8c888af..8cb6bc5 100644 --- a/anno3/apprendimento_automatico/esercizi/marco/classification_iris_aa_19_20.ipynb +++ b/anno3/apprendimento_automatico/esercizi/marco/classification_iris_aa_19_20.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": { "scrolled": true }, @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -71,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -105,165 +105,186 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "Tree\r\n", - "\r\n", - "\r\n", - "0\r\n", - "\r\n", - "X[0] <= 0.5\r\n", - "gini = 0.5\r\n", - "samples = 6\r\n", - "value = [3, 3]\r\n", - "\r\n", - "\r\n", - "1\r\n", - "\r\n", - "X[1] <= 0.5\r\n", - "gini = 0.444\r\n", - "samples = 3\r\n", - "value = [2, 1]\r\n", - "\r\n", - "\r\n", - "0->1\r\n", - "\r\n", - "\r\n", - "True\r\n", - "\r\n", - "\r\n", - "6\r\n", - "\r\n", - "X[2] <= 0.5\r\n", - "gini = 0.444\r\n", - "samples = 3\r\n", - "value = [1, 2]\r\n", - "\r\n", - "\r\n", - "0->6\r\n", - "\r\n", - "\r\n", - "False\r\n", - "\r\n", - "\r\n", - "2\r\n", - "\r\n", - "X[2] <= 0.5\r\n", - "gini = 0.5\r\n", - "samples = 2\r\n", - "value = [1, 1]\r\n", - "\r\n", - "\r\n", - "1->2\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "5\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [1, 0]\r\n", - "\r\n", - "\r\n", - "1->5\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "3\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [0, 1]\r\n", - "\r\n", - "\r\n", - "2->3\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "4\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [1, 0]\r\n", - "\r\n", - "\r\n", - "2->4\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "7\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [0, 1]\r\n", - "\r\n", - "\r\n", - "6->7\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "8\r\n", - "\r\n", - "X[1] <= 0.5\r\n", - "gini = 0.5\r\n", - "samples = 2\r\n", - "value = [1, 1]\r\n", - "\r\n", - "\r\n", - "6->8\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "9\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [0, 1]\r\n", - "\r\n", - "\r\n", - "8->9\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "10\r\n", - "\r\n", - "gini = 0.0\r\n", - "samples = 1\r\n", - "value = [1, 0]\r\n", - "\r\n", - "\r\n", - "8->10\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n" + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "X[2] <= 0.5\n", + "gini = 0.5\n", + "samples = 6\n", + "value = [3, 3]\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [1, 2]\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "X[0] <= 0.5\n", + "gini = 0.444\n", + "samples = 3\n", + "value = [2, 1]\n", + "\n", + "\n", + "\n", + "0->6\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "1->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "2->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "6->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "X[1] <= 0.5\n", + "gini = 0.5\n", + "samples = 2\n", + "value = [1, 1]\n", + "\n", + "\n", + "\n", + "6->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [0, 1]\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "gini = 0.0\n", + "samples = 1\n", + "value = [1, 0]\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -286,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -303,7 +324,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -319,14 +340,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# Generate a random permutation of the indices of examples that will be later used \n", "# for the training and the test set\n", "import numpy as np\n", - "np.random.seed(1231)\n", + "np.random.seed(0)\n", "indices = np.random.permutation(len(iris.data))\n", "\n", "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", @@ -348,7 +369,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -365,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -373,9 +394,9 @@ "output_type": "stream", "text": [ "Predictions:\n", - "[0 0 0 1 0 0 1 2 0 0]\n", + "[1 2 1 0 0 0 2 1 2 0]\n", "True classes:\n", - "[0 0 0 2 0 0 1 1 0 0]\n", + "[1 1 1 0 0 0 2 1 2 0]\n", "['setosa' 'versicolor' 'virginica']\n" ] } @@ -408,52 +429,54 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, + "execution_count": 12, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Instance # 33: \n", - "sepal length (cm)=5.5, sepal width (cm)=4.2, petal length (cm)=1.4, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 2: \n", - "sepal length (cm)=4.7, sepal width (cm)=3.2, petal length (cm)=1.3, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 11: \n", - "sepal length (cm)=4.8, sepal width (cm)=3.4, petal length (cm)=1.6, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 126: \n", - "sepal length (cm)=6.2, sepal width (cm)=2.8, petal length (cm)=4.8, petal width (cm)=1.8\n", - "Predicted: versicolor\t True: virginica\n", - "\n", - "Instance # 49: \n", - "sepal length (cm)=5.0, sepal width (cm)=3.3, petal length (cm)=1.4, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 10: \n", - "sepal length (cm)=5.4, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.2\n", - "Predicted: setosa\t True: setosa\n", - "\n", - "Instance # 85: \n", - "sepal length (cm)=6.0, sepal width (cm)=3.4, petal length (cm)=4.5, petal width (cm)=1.6\n", + "Instance # 88: \n", + "sepal length (cm)=5.6, sepal width (cm)=3.0, petal length (cm)=4.1, petal width (cm)=1.3\n", "Predicted: versicolor\t True: versicolor\n", "\n", - "Instance # 52: \n", - "sepal length (cm)=6.9, sepal width (cm)=3.1, petal length (cm)=4.9, petal width (cm)=1.5\n", + "Instance # 70: \n", + "sepal length (cm)=5.9, sepal width (cm)=3.2, petal length (cm)=4.8, petal width (cm)=1.8\n", "Predicted: virginica\t True: versicolor\n", "\n", - "Instance # 5: \n", - "sepal length (cm)=5.4, sepal width (cm)=3.9, petal length (cm)=1.7, petal width (cm)=0.4\n", + "Instance # 87: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.3, petal length (cm)=4.4, petal width (cm)=1.3\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 36: \n", + "sepal length (cm)=5.5, sepal width (cm)=3.5, petal length (cm)=1.3, petal width (cm)=0.2\n", "Predicted: setosa\t True: setosa\n", "\n", "Instance # 21: \n", "sepal length (cm)=5.1, sepal width (cm)=3.7, petal length (cm)=1.5, petal width (cm)=0.4\n", "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 9: \n", + "sepal length (cm)=4.9, sepal width (cm)=3.1, petal length (cm)=1.5, petal width (cm)=0.1\n", + "Predicted: setosa\t True: setosa\n", + "\n", + "Instance # 103: \n", + "sepal length (cm)=6.3, sepal width (cm)=2.9, petal length (cm)=5.6, petal width (cm)=1.8\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 67: \n", + "sepal length (cm)=5.8, sepal width (cm)=2.7, petal length (cm)=4.1, petal width (cm)=1.0\n", + "Predicted: versicolor\t True: versicolor\n", + "\n", + "Instance # 117: \n", + "sepal length (cm)=7.7, sepal width (cm)=3.8, petal length (cm)=6.7, petal width (cm)=2.2\n", + "Predicted: virginica\t True: virginica\n", + "\n", + "Instance # 47: \n", + "sepal length (cm)=4.6, sepal width (cm)=3.2, petal length (cm)=1.4, petal width (cm)=0.2\n", + "Predicted: setosa\t True: setosa\n", "\n" ] } @@ -478,15 +501,15 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Accuracy score: 0.8\n", - "F1 score: 0.5\n" + "Accuracy score: 0.9\n", + "F1 score: 0.8857142857142858\n" ] } ], @@ -509,7 +532,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -532,7 +555,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -565,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "metadata": { "scrolled": false }, @@ -576,7 +599,7 @@ "'my_iris_predictions.pdf'" ] }, - "execution_count": 18, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -597,7 +620,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -616,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "metadata": { "scrolled": true }, @@ -624,170 +647,191 @@ { "data": { "image/svg+xml": [ - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "Tree\r\n", - "\r\n", - "\r\n", - "0\r\n", - "\r\n", - "petal length (cm) ≤ 2.45\r\n", - "entropy = 1.585\r\n", - "samples = 150\r\n", - "value = [50, 50, 50]\r\n", - "class = setosa\r\n", - "\r\n", - "\r\n", - "1\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 50\r\n", - "value = [50, 0, 0]\r\n", - "class = setosa\r\n", - "\r\n", - "\r\n", - "0->1\r\n", - "\r\n", - "\r\n", - "True\r\n", - "\r\n", - "\r\n", - "2\r\n", - "\r\n", - "petal width (cm) ≤ 1.75\r\n", - "entropy = 1.0\r\n", - "samples = 100\r\n", - "value = [0, 50, 50]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "0->2\r\n", - "\r\n", - "\r\n", - "False\r\n", - "\r\n", - "\r\n", - "3\r\n", - "\r\n", - "petal length (cm) ≤ 4.95\r\n", - "entropy = 0.445\r\n", - "samples = 54\r\n", - "value = [0, 49, 5]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "2->3\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "8\r\n", - "\r\n", - "petal length (cm) ≤ 4.95\r\n", - "entropy = 0.151\r\n", - "samples = 46\r\n", - "value = [0, 1, 45]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "2->8\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "4\r\n", - "\r\n", - "sepal length (cm) ≤ 5.15\r\n", - "entropy = 0.146\r\n", - "samples = 48\r\n", - "value = [0, 47, 1]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "3->4\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "7\r\n", - "\r\n", - "entropy = 0.918\r\n", - "samples = 6\r\n", - "value = [0, 2, 4]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "3->7\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "5\r\n", - "\r\n", - "entropy = 0.722\r\n", - "samples = 5\r\n", - "value = [0, 4, 1]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "4->5\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "6\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [0, 43, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "4->6\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "9\r\n", - "\r\n", - "entropy = 0.65\r\n", - "samples = 6\r\n", - "value = [0, 1, 5]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->9\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "10\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 40\r\n", - "value = [0, 0, 40]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->10\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n" + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 1.585\n", + "samples = 150\n", + "value = [50, 50, 50]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "entropy = 0.0\n", + "samples = 50\n", + "value = [50, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 1.0\n", + "samples = 100\n", + "value = [0, 50, 50]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.445\n", + "samples = 54\n", + "value = [0, 49, 5]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "2->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.151\n", + "samples = 46\n", + "value = [0, 1, 45]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "sepal length (cm) ≤ 5.15\n", + "entropy = 0.146\n", + "samples = 48\n", + "value = [0, 47, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.918\n", + "samples = 6\n", + "value = [0, 2, 4]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "3->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "entropy = 0.722\n", + "samples = 5\n", + "value = [0, 4, 1]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 43, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.65\n", + "samples = 6\n", + "value = [0, 1, 5]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 40\n", + "value = [0, 0, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 20, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -811,7 +855,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": { "scrolled": true }, @@ -820,7 +864,7 @@ "# Generate a random permutation of the indices of examples that will be later used \n", "# for the training and the test set\n", "import numpy as np\n", - "np.random.seed(1231)\n", + "np.random.seed(42)\n", "indices = np.random.permutation(len(iris.data))\n", "\n", "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", @@ -835,7 +879,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -858,15 +902,15 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Accuracy: 1.0\n", - "F1: 1.0\n" + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" ] } ], @@ -882,257 +926,290 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "Tree\r\n", - "\r\n", - "\r\n", - "0\r\n", - "\r\n", - "petal length (cm) ≤ 4.85\r\n", - "entropy = 1.211\r\n", - "samples = 1013\r\n", - "value = [43, 480, 490]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "1\r\n", - "\r\n", - "petal length (cm) ≤ 2.45\r\n", - "entropy = 0.648\r\n", - "samples = 513\r\n", - "value = [43, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "0->1\r\n", - "\r\n", - "\r\n", - "True\r\n", - "\r\n", - "\r\n", - "8\r\n", - "\r\n", - "petal width (cm) ≤ 1.75\r\n", - "entropy = 0.327\r\n", - "samples = 500\r\n", - "value = [0, 30, 470]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "0->8\r\n", - "\r\n", - "\r\n", - "False\r\n", - "\r\n", - "\r\n", - "2\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [43, 0, 0]\r\n", - "class = setosa\r\n", - "\r\n", - "\r\n", - "1->2\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "3\r\n", - "\r\n", - "petal width (cm) ≤ 1.65\r\n", - "entropy = 0.254\r\n", - "samples = 470\r\n", - "value = [0, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "1->3\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "4\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 440\r\n", - "value = [0, 440, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "3->4\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "5\r\n", - "\r\n", - "sepal width (cm) ≤ 3.1\r\n", - "entropy = 0.918\r\n", - "samples = 30\r\n", - "value = [0, 10, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "3->5\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "6\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 20\r\n", - "value = [0, 0, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "5->6\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "7\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 10\r\n", - "value = [0, 10, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "5->7\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "9\r\n", - "\r\n", - "petal length (cm) ≤ 5.35\r\n", - "entropy = 0.985\r\n", - "samples = 70\r\n", - "value = [0, 30, 40]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->9\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "16\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 430\r\n", - "value = [0, 0, 430]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->16\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "10\r\n", - "\r\n", - "petal width (cm) ≤ 1.55\r\n", - "entropy = 0.971\r\n", - "samples = 50\r\n", - "value = [0, 30, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "9->10\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "15\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 20\r\n", - "value = [0, 0, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "9->15\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "11\r\n", - "\r\n", - "petal length (cm) ≤ 4.95\r\n", - "entropy = 0.918\r\n", - "samples = 30\r\n", - "value = [0, 10, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "10->11\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "14\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 20\r\n", - "value = [0, 20, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "10->14\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "12\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 10\r\n", - "value = [0, 10, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "11->12\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "13\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 20\r\n", - "value = [0, 0, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "11->13\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n" + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.75\n", + "entropy = 1.235\n", + "samples = 968\n", + "value = [48, 460, 460]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.491\n", + "samples = 448\n", + "value = [48, 400, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.516\n", + "samples = 520\n", + "value = [0, 60, 460]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->4\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 48\n", + "value = [48, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "entropy = 0.0\n", + "samples = 400\n", + "value = [0, 400, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "petal length (cm) ≤ 4.95\n", + "entropy = 0.991\n", + "samples = 90\n", + "value = [0, 50, 40]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "12\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 0.159\n", + "samples = 430\n", + "value = [0, 10, 420]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "4->12\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 30\n", + "value = [0, 30, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "petal width (cm) ≤ 1.55\n", + "entropy = 0.918\n", + "samples = 60\n", + "value = [0, 20, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "5->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "entropy = 0.0\n", + "samples = 30\n", + "value = [0, 0, 30]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "7->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "petal length (cm) ≤ 5.45\n", + "entropy = 0.918\n", + "samples = 30\n", + "value = [0, 20, 10]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "7->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 20, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "9->10\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "11\n", + "\n", + "entropy = 0.0\n", + "samples = 10\n", + "value = [0, 0, 10]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "9->11\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "13\n", + "\n", + "sepal width (cm) ≤ 3.1\n", + "entropy = 0.918\n", + "samples = 30\n", + "value = [0, 10, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "12->13\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "16\n", + "\n", + "entropy = 0.0\n", + "samples = 400\n", + "value = [0, 0, 400]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "12->16\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "14\n", + "\n", + "entropy = 0.0\n", + "samples = 20\n", + "value = [0, 0, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "13->14\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "15\n", + "\n", + "entropy = 0.0\n", + "samples = 10\n", + "value = [0, 10, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "13->15\n", + "\n", + "\n", + "\n", + "\n", + "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 24, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1156,7 +1233,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -1178,7 +1255,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1202,176 +1279,197 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "Tree\r\n", - "\r\n", - "\r\n", - "0\r\n", - "\r\n", - "petal length (cm) ≤ 4.85\r\n", - "entropy = 1.211\r\n", - "samples = 140\r\n", - "value = [43, 480, 490]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "1\r\n", - "\r\n", - "petal length (cm) ≤ 2.45\r\n", - "entropy = 0.648\r\n", - "samples = 90\r\n", - "value = [43, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "0->1\r\n", - "\r\n", - "\r\n", - "True\r\n", - "\r\n", - "\r\n", - "8\r\n", - "\r\n", - "petal width (cm) ≤ 1.75\r\n", - "entropy = 0.327\r\n", - "samples = 50\r\n", - "value = [0, 30, 470]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "0->8\r\n", - "\r\n", - "\r\n", - "False\r\n", - "\r\n", - "\r\n", - "2\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [43, 0, 0]\r\n", - "class = setosa\r\n", - "\r\n", - "\r\n", - "1->2\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "3\r\n", - "\r\n", - "petal width (cm) ≤ 1.45\r\n", - "entropy = 0.254\r\n", - "samples = 47\r\n", - "value = [0, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "1->3\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "4\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 35\r\n", - "value = [0, 350, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "3->4\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "5\r\n", - "\r\n", - "sepal length (cm) ≤ 6.1\r\n", - "entropy = 0.65\r\n", - "samples = 12\r\n", - "value = [0, 100, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "3->5\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "6\r\n", - "\r\n", - "entropy = 0.863\r\n", - "samples = 7\r\n", - "value = [0, 50, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "5->6\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "7\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 5\r\n", - "value = [0, 50, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "5->7\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "9\r\n", - "\r\n", - "entropy = 0.985\r\n", - "samples = 7\r\n", - "value = [0, 30, 40]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->9\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "10\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [0, 0, 430]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "8->10\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n" + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 1.211\n", + "samples = 140\n", + "value = [43, 480, 490]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.648\n", + "samples = 90\n", + "value = [43, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.327\n", + "samples = 50\n", + "value = [0, 30, 470]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->8\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [43, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "petal width (cm) ≤ 1.45\n", + "entropy = 0.254\n", + "samples = 47\n", + "value = [0, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "entropy = 0.0\n", + "samples = 35\n", + "value = [0, 350, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "sepal length (cm) ≤ 6.1\n", + "entropy = 0.65\n", + "samples = 12\n", + "value = [0, 100, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.863\n", + "samples = 7\n", + "value = [0, 50, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.0\n", + "samples = 5\n", + "value = [0, 50, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.985\n", + "samples = 7\n", + "value = [0, 30, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "8->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 27, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1395,14 +1493,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "# Generate a random permutation of the indices of examples that will be later used \n", "# for the training and the test set\n", "import numpy as np\n", - "np.random.seed(1231)\n", + "np.random.seed(42)\n", "indices = np.random.permutation(len(iris.data))\n", "\n", "# We now decide to keep the last 10 indices for test set, the remaining for the training set\n", @@ -1417,15 +1515,15 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Accuracy: 1.0\n", - "F1: 1.0\n" + "Accuracy: 0.9\n", + "F1: 0.9153439153439153\n" ] } ], @@ -1441,176 +1539,197 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "Tree\r\n", - "\r\n", - "\r\n", - "0\r\n", - "\r\n", - "petal length (cm) ≤ 4.85\r\n", - "entropy = 1.211\r\n", - "samples = 140\r\n", - "value = [43, 480, 490]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "1\r\n", - "\r\n", - "petal length (cm) ≤ 2.45\r\n", - "entropy = 0.648\r\n", - "samples = 90\r\n", - "value = [43, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "0->1\r\n", - "\r\n", - "\r\n", - "True\r\n", - "\r\n", - "\r\n", - "2\r\n", - "\r\n", - "petal width (cm) ≤ 1.75\r\n", - "entropy = 0.327\r\n", - "samples = 50\r\n", - "value = [0, 30, 470]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "0->2\r\n", - "\r\n", - "\r\n", - "False\r\n", - "\r\n", - "\r\n", - "3\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [43, 0, 0]\r\n", - "class = setosa\r\n", - "\r\n", - "\r\n", - "1->3\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "4\r\n", - "\r\n", - "petal width (cm) ≤ 1.65\r\n", - "entropy = 0.254\r\n", - "samples = 47\r\n", - "value = [0, 450, 20]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "1->4\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "7\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 44\r\n", - "value = [0, 440, 0]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "4->7\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "8\r\n", - "\r\n", - "entropy = 0.918\r\n", - "samples = 3\r\n", - "value = [0, 10, 20]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "4->8\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "5\r\n", - "\r\n", - "petal length (cm) ≤ 5.05\r\n", - "entropy = 0.985\r\n", - "samples = 7\r\n", - "value = [0, 30, 40]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "2->5\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "6\r\n", - "\r\n", - "entropy = 0.0\r\n", - "samples = 43\r\n", - "value = [0, 0, 430]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "2->6\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "9\r\n", - "\r\n", - "entropy = 0.918\r\n", - "samples = 3\r\n", - "value = [0, 20, 10]\r\n", - "class = versicolor\r\n", - "\r\n", - "\r\n", - "5->9\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "10\r\n", - "\r\n", - "entropy = 0.811\r\n", - "samples = 4\r\n", - "value = [0, 10, 30]\r\n", - "class = virginica\r\n", - "\r\n", - "\r\n", - "5->10\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n", - "\r\n" + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Tree\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "petal length (cm) ≤ 4.85\n", + "entropy = 1.211\n", + "samples = 140\n", + "value = [43, 480, 490]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "petal length (cm) ≤ 2.45\n", + "entropy = 0.648\n", + "samples = 90\n", + "value = [43, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "True\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "petal width (cm) ≤ 1.75\n", + "entropy = 0.327\n", + "samples = 50\n", + "value = [0, 30, 470]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "False\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [43, 0, 0]\n", + "class = setosa\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "petal width (cm) ≤ 1.65\n", + "entropy = 0.254\n", + "samples = 47\n", + "value = [0, 450, 20]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "1->4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "entropy = 0.0\n", + "samples = 44\n", + "value = [0, 440, 0]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "4->7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "entropy = 0.918\n", + "samples = 3\n", + "value = [0, 10, 20]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "4->8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "petal length (cm) ≤ 5.05\n", + "entropy = 0.985\n", + "samples = 7\n", + "value = [0, 30, 40]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "entropy = 0.0\n", + "samples = 43\n", + "value = [0, 0, 430]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "2->6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "entropy = 0.918\n", + "samples = 3\n", + "value = [0, 20, 10]\n", + "class = versicolor\n", + "\n", + "\n", + "\n", + "5->9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "entropy = 0.811\n", + "samples = 4\n", + "value = [0, 10, 30]\n", + "class = virginica\n", + "\n", + "\n", + "\n", + "5->10\n", + "\n", + "\n", + "\n", + "\n", + "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 30, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1634,7 +1753,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 34, "metadata": { "scrolled": true }, @@ -1642,12 +1761,12 @@ { "data": { "text/plain": [ - "array([[7, 0, 0],\n", - " [0, 2, 0],\n", - " [0, 0, 1]])" + "array([[2, 0, 0],\n", + " [0, 4, 0],\n", + " [0, 1, 3]])" ] }, - "execution_count": 31, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1672,28 +1791,28 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[(0.0, 43.0), (30.0, 0.0), (30.0, 0.0), (40.0, 0.0), (430.0, 0.0), (440.0, 0.0)], [(0.0, 440.0), (10.0, 20.0), (20.0, 10.0), (30.0, 10.0), (43.0, 0.0), (430.0, 0.0)], [(0.0, 430.0), (10.0, 30.0), (10.0, 20.0), (20.0, 10.0), (43.0, 0.0), (440.0, 0.0)]]\n" + "[[(0.0, 48.0), (30.0, 0.0), (30.0, 0.0), (60.0, 0.0), (400.0, 0.0), (400.0, 0.0)], [(0.0, 400.0), (0.0, 30.0), (20.0, 10.0), (40.0, 20.0), (48.0, 0.0), (400.0, 0.0)], [(0.0, 400.0), (10.0, 20.0), (20.0, 40.0), (30.0, 0.0), (48.0, 0.0), (400.0, 0.0)]]\n" ] }, { "data": { "text/plain": [ - "[[[0, 0.0, 30.0, 60.0, 100.0, 530.0, 970.0],\n", - " [0, 43.0, 43.0, 43.0, 43.0, 43.0, 43.0]],\n", - " [[0, 0.0, 10.0, 30.0, 60.0, 103.0, 533.0],\n", - " [0, 440.0, 460.0, 470.0, 480.0, 480.0, 480.0]],\n", - " [[0, 0.0, 10.0, 20.0, 40.0, 83.0, 523.0],\n", - " [0, 430.0, 460.0, 480.0, 490.0, 490.0, 490.0]]]" + "[[[0, 0.0, 30.0, 60.0, 120.0, 520.0, 920.0],\n", + " [0, 48.0, 48.0, 48.0, 48.0, 48.0, 48.0]],\n", + " [[0, 0.0, 0.0, 20.0, 60.0, 108.0, 508.0],\n", + " [0, 400.0, 430.0, 440.0, 460.0, 460.0, 460.0]],\n", + " [[0, 0.0, 10.0, 30.0, 60.0, 108.0, 508.0],\n", + " [0, 400.0, 420.0, 460.0, 460.0, 460.0, 460.0]]]" ] }, - "execution_count": 32, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1728,12 +1847,12 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 36, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1745,7 +1864,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1757,7 +1876,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1802,7 +1921,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.5" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/anno3/apprendimento_automatico/esercizi/marco/coverage_plots.ipynb b/anno3/apprendimento_automatico/esercizi/marco/coverage_plots.ipynb index 4071407..35262a9 100644 --- a/anno3/apprendimento_automatico/esercizi/marco/coverage_plots.ipynb +++ b/anno3/apprendimento_automatico/esercizi/marco/coverage_plots.ipynb @@ -28,7 +28,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -45,30 +45,30 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\ipykernel_launcher.py:1: DeprecationWarning: This function is deprecated. Please call randint(-100, 100 + 1) instead\n", + "/home/user/.local/lib/python3.7/site-packages/ipykernel_launcher.py:1: DeprecationWarning: This function is deprecated. Please call randint(-100, 100 + 1) instead\n", " \"\"\"Entry point for launching an IPython kernel.\n" ] }, { "data": { "text/plain": [ - "array([[ -8, -49],\n", - " [-39, 7],\n", - " [ 48, 95],\n", + "array([[ 63, 42],\n", + " [ 77, -65],\n", + " [ 24, -27],\n", " ...,\n", - " [ -2, 7],\n", - " [ 35, 72],\n", - " [ 28, -5]])" + " [ 47, 20],\n", + " [-55, -72],\n", + " [-58, -23]])" ] }, - "execution_count": 6, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -104,22 +104,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -144,115 +144,117 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, + "execution_count": 6, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "text/plain": [ - "array([[-2.47471947, -3.5581708 ],\n", - " [ 1.59686449, 1.71893864],\n", - " [ 3.03294605, 4.57263288],\n", - " [ 4.3603124 , -1.19540694],\n", - " [ 1.21976183, 4.09720458],\n", - " [ 0.42857121, 3.20268614],\n", - " [-2.15226242, 2.96225011],\n", - " [ 0.65773544, -2.54676899],\n", - " [-2.79365386, -0.78924628],\n", - " [ 2.90156232, -3.31703275],\n", - " [-0.9849533 , 0.62170036],\n", - " [-4.0396815 , 4.36277095],\n", - " [ 1.34248188, 1.77758129],\n", - " [ 0.38419206, 0.17314725],\n", - " [-2.04665134, 2.10337995],\n", - " [-2.50975771, 3.65315789],\n", - " [ 2.004511 , 2.73918509],\n", - " [ 4.15805913, -4.96182686],\n", - " [ 4.51026319, -1.78429829],\n", - " [-3.31973604, 3.43442154],\n", - " [ 3.52497128, 0.85718807],\n", - " [-3.06163513, -0.86712587],\n", - " [-4.18156322, -2.21571818],\n", - " [-4.59703113, 4.4801163 ],\n", - " [-2.65368229, 4.37023623],\n", - " [ 3.90990454, -2.1420455 ],\n", - " [-3.24752094, -0.40639067],\n", - " [ 0.10755654, 0.48649316],\n", - " [ 2.26731088, 4.73364989],\n", - " [-4.22292673, -0.21284274],\n", - " [-4.66592874, -2.79620572],\n", - " [ 4.63716865, 0.87182744],\n", - " [-4.32406367, 1.10060443],\n", - " [-0.45847 , 0.70180339],\n", - " [ 3.22176576, -2.5364163 ],\n", - " [ 3.80797501, 2.35293627],\n", - " [ 3.36332162, -3.79299501],\n", - " [ 3.99625756, 2.36135165],\n", - " [ 1.20216525, -1.23827528],\n", - " [-3.09694201, 3.9600678 ],\n", - " [-0.64611333, 2.09501923],\n", - " [ 0.99744202, 1.49993523],\n", - " [-3.36391051, -3.90944487],\n", - " [-3.58672509, -4.1088498 ],\n", - " [ 3.46090243, 0.02661214],\n", - " [-1.49631605, -2.28424324],\n", - " [ 1.1089388 , -1.73806817],\n", - " [ 3.30150146, -3.13759682],\n", - " [-4.51293209, 4.08479726],\n", - " [-4.09529163, 4.28334043],\n", - " [-0.7227784 , 0.85683098],\n", - " [-3.54236195, -4.37842609],\n", - " [-1.67857772, 1.18420411],\n", - " [-2.06131565, -3.81118901],\n", - " [-0.94505145, -0.79410051],\n", - " [-1.58100698, -4.40226088],\n", - " [ 3.49623546, 0.98568917],\n", - " [-4.7875311 , 2.46132599],\n", - " [-0.90714606, -4.03370503],\n", - " [-4.04974727, 1.89697029],\n", - " [ 2.3912763 , 4.43535836],\n", - " [ 1.91805621, 3.10706978],\n", - " [ 2.7870542 , -4.76785357],\n", - " [-4.83230806, 0.68706866],\n", - " [ 4.21091682, 2.69235722],\n", - " [ 4.92125435, 1.67552945],\n", - " [-4.17809823, -3.0655279 ],\n", - " [ 1.34522792, -2.11218453],\n", - " [-2.82712946, -3.84431909],\n", - " [ 4.32983019, -0.67660343],\n", - " [ 3.69650316, -2.09533608],\n", - " [-2.46459767, -2.78730998],\n", - " [-0.12911643, 3.03464722],\n", - " [-0.54414414, -4.24446833],\n", - " [ 0.70841166, 0.82220448],\n", - " [-1.21624127, 2.67030582],\n", - " [-4.4511487 , -0.18157221],\n", - " [ 0.54850624, 3.80806515],\n", - " [ 0.41580003, 2.39770318],\n", - " [ 0.78040198, -2.27920522],\n", - " [-0.98993749, -4.66406869],\n", - " [ 2.67850165, 1.2013196 ],\n", - " [-0.85139301, -3.08916589],\n", - " [ 2.00142468, -3.62142984],\n", - " [-0.08136816, 1.76822154],\n", - " [-4.92951601, 0.11860089],\n", - " [-2.36011692, 2.25618495],\n", - " [ 1.60982063, -0.44192244],\n", - " [-2.54853258, -2.17737341],\n", - " [-1.31205757, 2.17528846],\n", - " [ 4.9863995 , -3.99442219],\n", - " [-1.87206871, -2.53218008],\n", - " [ 2.35107436, -4.08841325],\n", - " [ 3.5602568 , -2.39084033],\n", - " [-1.67264783, -2.78819786],\n", - " [ 2.14307079, -1.80908234],\n", - " [-2.47515458, 2.07939336],\n", - " [ 0.34640981, 0.10794752],\n", - " [ 1.0289358 , -1.10048266],\n", - " [-4.92276006, 0.74592667]])" + "array([[-3.56708359, 4.2173679 ],\n", + " [-2.24819841, -4.78033511],\n", + " [-2.65217433, -0.6063707 ],\n", + " [ 2.22522724, -1.3737868 ],\n", + " [ 1.14192194, -2.89068754],\n", + " [-2.57784496, -0.48320328],\n", + " [-1.98567784, -4.32466545],\n", + " [ 0.18087823, 3.4818154 ],\n", + " [-1.29875835, 1.51557613],\n", + " [ 4.81972953, -0.42049176],\n", + " [ 0.50982555, 4.85988498],\n", + " [-4.65192691, 4.7090496 ],\n", + " [ 1.76978104, -1.68074194],\n", + " [ 3.27116811, -2.24224267],\n", + " [-4.23830139, -3.18612366],\n", + " [-3.8511695 , -3.53659876],\n", + " [ 4.17130749, -3.99493944],\n", + " [-1.77612232, -2.98547622],\n", + " [ 2.60284283, -3.54389893],\n", + " [ 1.94474263, 0.87574031],\n", + " [-0.77056305, 0.69232701],\n", + " [ 3.34291539, 4.50561588],\n", + " [-2.72563297, 3.53671823],\n", + " [ 4.90984365, 1.68029481],\n", + " [ 3.19955049, 3.70221394],\n", + " [ 1.92131467, 3.118134 ],\n", + " [-1.3720329 , -2.8185771 ],\n", + " [-2.10756157, -3.29110329],\n", + " [ 1.23355252, -4.78030807],\n", + " [-1.43163348, -2.53721308],\n", + " [ 2.31520897, -1.3516775 ],\n", + " [-3.76663448, 0.31355621],\n", + " [ 4.85577408, 0.71145002],\n", + " [-4.3294729 , 1.68046326],\n", + " [-2.59917913, 4.08500999],\n", + " [ 3.67943457, 1.29892268],\n", + " [ 1.20118785, -0.04765288],\n", + " [-3.00013655, -4.55005222],\n", + " [ 4.2866447 , -0.31240087],\n", + " [-1.22791008, -2.15250488],\n", + " [-3.95873121, 2.13560657],\n", + " [ 1.40466773, 1.03243411],\n", + " [ 3.40406949, -0.88692212],\n", + " [ 0.62708997, 3.38264686],\n", + " [-3.48823227, -0.89532811],\n", + " [-4.34004124, 4.93494885],\n", + " [ 3.30806754, -3.92628874],\n", + " [-2.67753461, 0.36983349],\n", + " [-4.17195968, -1.85452959],\n", + " [-4.77495175, -3.33001656],\n", + " [-1.56106315, 4.34240146],\n", + " [ 4.10238174, -4.49656149],\n", + " [ 3.49311758, -1.39028564],\n", + " [-0.40272994, 4.22102051],\n", + " [ 4.50566149, 1.10356814],\n", + " [-2.3856706 , -3.97857028],\n", + " [ 3.72462319, 3.22213904],\n", + " [ 4.25264231, -1.68128306],\n", + " [ 0.73249504, -3.71816993],\n", + " [ 1.81677967, 4.73196931],\n", + " [-1.21442479, -2.84759613],\n", + " [-1.31382345, -4.09759844],\n", + " [-4.77299951, 4.85379267],\n", + " [-3.55287405, 0.95910989],\n", + " [ 0.18951388, 4.43661861],\n", + " [ 4.72987013, -4.09163053],\n", + " [ 0.8149054 , 4.31898901],\n", + " [-0.87583647, 1.16675956],\n", + " [-0.64637859, 3.40167131],\n", + " [-0.62658074, 4.58651024],\n", + " [-1.78645632, 3.85215258],\n", + " [ 1.15926923, -1.75726543],\n", + " [-2.00600541, 4.92990747],\n", + " [ 1.35433823, -2.32709303],\n", + " [-2.73621106, -4.0425546 ],\n", + " [ 3.83111626, 1.8644197 ],\n", + " [-1.22410301, 0.86166692],\n", + " [-1.51047856, -0.90824993],\n", + " [ 4.89797894, -2.64889207],\n", + " [-2.59993126, 4.9208619 ],\n", + " [-4.23181733, 2.23064469],\n", + " [-4.76666042, -3.66915997],\n", + " [-4.88905088, -0.44233631],\n", + " [-2.44930748, 0.56878184],\n", + " [-1.09013812, -2.24695652],\n", + " [ 0.49901451, -2.84495088],\n", + " [ 0.46975656, -0.99109978],\n", + " [-3.190664 , 2.63920782],\n", + " [-2.79980528, -4.23234307],\n", + " [ 0.13665919, -2.78904176],\n", + " [-3.56727479, 0.55472856],\n", + " [-3.59152304, 0.07804187],\n", + " [ 4.38128857, -3.87300022],\n", + " [ 3.84261658, 1.82166838],\n", + " [-3.44899234, -3.68102876],\n", + " [ 1.03133548, 3.09634947],\n", + " [-2.30690512, 0.22837024],\n", + " [ 1.35170795, -0.80041915],\n", + " [-2.70097645, 2.7137504 ],\n", + " [ 4.12379905, 4.98983271]])" ] }, - "execution_count": 11, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -293,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -306,15 +308,15 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[[202. 281.]\n", - " [310. 207.]]\n" + "[[124. 372.]\n", + " [386. 118.]]\n" ] } ], @@ -331,7 +333,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 9, "metadata": { "scrolled": true }, @@ -339,16 +341,16 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 43, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -386,16 +388,16 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([ 4.3603124 , -1.19540694])" + "array([ 3.40406949, -0.88692212])" ] }, - "execution_count": 51, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -413,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -423,14 +425,14 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "model: [ 4.3603124 -1.19540694] accuracy: 0.995\n" + "model: [ 3.40406949 -0.88692212] accuracy: 0.998\n" ] } ], diff --git a/anno3/apprendimento_automatico/esercizi/marco/my_iris_predictions.pdf b/anno3/apprendimento_automatico/esercizi/marco/my_iris_predictions.pdf index 66ba98e..69eaac2 100644 Binary files a/anno3/apprendimento_automatico/esercizi/marco/my_iris_predictions.pdf and b/anno3/apprendimento_automatico/esercizi/marco/my_iris_predictions.pdf differ diff --git a/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest-checkpoint.ipynb b/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest-checkpoint.ipynb deleted file mode 100644 index 747742d..0000000 --- a/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest-checkpoint.ipynb +++ /dev/null @@ -1,324 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Experiments with the one vs rest multiclass classification scheme" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "from sklearn import datasets\n", - "from sklearn.multiclass import OneVsRestClassifier as OvR\n", - "from sklearn.svm import LinearSVC\n", - "import numpy as np\n", - "import copy\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "digits = datasets.load_digits()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will use the \"Optical Recognition of Handwritten Digits Data Set\" from UCI (included in scikit learn and already loaded on the previous line). Let us plot the first 10 images in the dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "for index, image in enumerate(digits.images[:10]):\n", - " plt.subplot(2, 5, index + 1)\n", - " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us create a training set using the first 1000 images and a test set using the rest of the data." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "X,y = digits.data[0:1000], digits.target[0:1000]\n", - "X_test, y_test = digits.data[1000:], digits.target[1000:]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "scikit-learn provide us with an One-Vs-Rest classifier that we already imported with name `OvR`. Let us use that classifier to fit the training set and to make predictions over the test set:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - } - ], - "source": [ - "binaryLearner = LinearSVC(random_state=0)\n", - "\n", - "oneVrestLearningAlgorithm = OvR(binaryLearner)\n", - "oneVrestLearningAlgorithm.fit(X,y)\n", - "predicted_labels = oneVrestLearningAlgorithm.predict(X_test)\n", - "\n", - "# n.b.: the above is equivalent to:\n", - "# predicted_labels = OvR(LinearSVC(random_state=0)).fit(X,y).predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy: 0.9084065244667503\n" - ] - } - ], - "source": [ - "print (\"Accuracy:\", (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels))))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Reimplement the OvR classifier by completing the methods in the following class [[1](#hint1)]:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "class OneVsRestClassifier:\n", - " \n", - " def __init__(self, learner):\n", - " self.learner = learner\n", - " return None\n", - "\n", - " def fit(self, data, labels):\n", - " self.labels = list(set(labels))\n", - " self.labels.sort()\n", - " self.classifiers = []\n", - " for i in range(len(self.labels)):\n", - " self.classifiers.append(copy.copy(self.learner))\n", - " #fit con data modificato (valore interessato in 1, il resto in -1)\n", - " self.classifiers[i].fit(data, [1 if label == self.labels[i] else -1 for label in labels])\n", - " return self\n", - "\n", - " def predict(self, data):\n", - " #trasposta delle predictions (ogni riga corrisponde alla prediction di ogni classificartore in ordine)\n", - " predictions = np.array([classifier.predict(data) for classifier in self.classifiers]).transpose()\n", - " prediction = []\n", - " #il valore predetto è la prima occorrenza di 1 in ogni riga di predictions, 0 se non è presente (questo favorisce le labels più piccole, soprattutto 0)\n", - " for i in range(len(data)):\n", - " prediction.append(self.labels[predictions[i].tolist().index(1) if 1 in predictions[i] else 0])\n", - " return prediction" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "<__main__.OneVsRestClassifier at 0x214ecad01c8>" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classifier = OneVsRestClassifier(binaryLearner)\n", - "classifier.fit(X,y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Calculate the accuracy of your solution using the following code [[2](#hint2)]:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy: 0.8531994981179423\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - } - ], - "source": [ - "ovr = OneVsRestClassifier(LinearSVC(random_state=0))\n", - "predicted_labels = ovr.fit(X,y).predict(X_test)\n", - "print(\"Accuracy:\", (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test))))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Hint 1: Feel free to organize your code as you like (add as many methods as you believe are necessary).\n", - "\n", - "Hint 2: The scheme provided by scikit-learn is a little different from the one we have seen in the lessons. It is normal if your accuracy is not as good as the one obtained above (expect the accuracy to be between 0.8 and 0.9)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "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.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest.ipynb b/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest.ipynb deleted file mode 100644 index 747742d..0000000 --- a/anno3/apprendimento_automatico/esercizi/marco/one_vs_rest.ipynb +++ /dev/null @@ -1,324 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Experiments with the one vs rest multiclass classification scheme" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "from sklearn import datasets\n", - "from sklearn.multiclass import OneVsRestClassifier as OvR\n", - "from sklearn.svm import LinearSVC\n", - "import numpy as np\n", - "import copy\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "digits = datasets.load_digits()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We will use the \"Optical Recognition of Handwritten Digits Data Set\" from UCI (included in scikit learn and already loaded on the previous line). Let us plot the first 10 images in the dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "for index, image in enumerate(digits.images[:10]):\n", - " plt.subplot(2, 5, index + 1)\n", - " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let us create a training set using the first 1000 images and a test set using the rest of the data." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "X,y = digits.data[0:1000], digits.target[0:1000]\n", - "X_test, y_test = digits.data[1000:], digits.target[1000:]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "scikit-learn provide us with an One-Vs-Rest classifier that we already imported with name `OvR`. Let us use that classifier to fit the training set and to make predictions over the test set:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - } - ], - "source": [ - "binaryLearner = LinearSVC(random_state=0)\n", - "\n", - "oneVrestLearningAlgorithm = OvR(binaryLearner)\n", - "oneVrestLearningAlgorithm.fit(X,y)\n", - "predicted_labels = oneVrestLearningAlgorithm.predict(X_test)\n", - "\n", - "# n.b.: the above is equivalent to:\n", - "# predicted_labels = OvR(LinearSVC(random_state=0)).fit(X,y).predict(X_test)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy: 0.9084065244667503\n" - ] - } - ], - "source": [ - "print (\"Accuracy:\", (1.0 - np.count_nonzero(y_test - predicted_labels) / float(len(predicted_labels))))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercise" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Reimplement the OvR classifier by completing the methods in the following class [[1](#hint1)]:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "class OneVsRestClassifier:\n", - " \n", - " def __init__(self, learner):\n", - " self.learner = learner\n", - " return None\n", - "\n", - " def fit(self, data, labels):\n", - " self.labels = list(set(labels))\n", - " self.labels.sort()\n", - " self.classifiers = []\n", - " for i in range(len(self.labels)):\n", - " self.classifiers.append(copy.copy(self.learner))\n", - " #fit con data modificato (valore interessato in 1, il resto in -1)\n", - " self.classifiers[i].fit(data, [1 if label == self.labels[i] else -1 for label in labels])\n", - " return self\n", - "\n", - " def predict(self, data):\n", - " #trasposta delle predictions (ogni riga corrisponde alla prediction di ogni classificartore in ordine)\n", - " predictions = np.array([classifier.predict(data) for classifier in self.classifiers]).transpose()\n", - " prediction = []\n", - " #il valore predetto è la prima occorrenza di 1 in ogni riga di predictions, 0 se non è presente (questo favorisce le labels più piccole, soprattutto 0)\n", - " for i in range(len(data)):\n", - " prediction.append(self.labels[predictions[i].tolist().index(1) if 1 in predictions[i] else 0])\n", - " return prediction" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "<__main__.OneVsRestClassifier at 0x214ecad01c8>" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classifier = OneVsRestClassifier(binaryLearner)\n", - "classifier.fit(X,y)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Calculate the accuracy of your solution using the following code [[2](#hint2)]:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy: 0.8531994981179423\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n", - "C:\\Users\\galat\\.conda\\envs\\aaut\\lib\\site-packages\\sklearn\\svm\\base.py:929: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", - " \"the number of iterations.\", ConvergenceWarning)\n" - ] - } - ], - "source": [ - "ovr = OneVsRestClassifier(LinearSVC(random_state=0))\n", - "predicted_labels = ovr.fit(X,y).predict(X_test)\n", - "print(\"Accuracy:\", (1.0-np.count_nonzero(predicted_labels-y_test)/float(len(y_test))))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Hint 1: Feel free to organize your code as you like (add as many methods as you believe are necessary).\n", - "\n", - "Hint 2: The scheme provided by scikit-learn is a little different from the one we have seen in the lessons. It is normal if your accuracy is not as good as the one obtained above (expect the accuracy to be between 0.8 and 0.9)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "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.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/anno3/apprendimento_automatico/ltximg/org-ltximg_3ad83f47fcf1d5426cfc8c3b6dbd07584589b741.png b/anno3/apprendimento_automatico/ltximg/org-ltximg_3ad83f47fcf1d5426cfc8c3b6dbd07584589b741.png new file mode 100644 index 0000000..f1d2c32 Binary files /dev/null and b/anno3/apprendimento_automatico/ltximg/org-ltximg_3ad83f47fcf1d5426cfc8c3b6dbd07584589b741.png differ diff --git a/anno3/apprendimento_automatico/ltximg/org-ltximg_a5a8ac1677d9310a5ee42489dd17d55eded6b557.png b/anno3/apprendimento_automatico/ltximg/org-ltximg_a5a8ac1677d9310a5ee42489dd17d55eded6b557.png new file mode 100644 index 0000000..f6d7028 Binary files /dev/null and b/anno3/apprendimento_automatico/ltximg/org-ltximg_a5a8ac1677d9310a5ee42489dd17d55eded6b557.png differ diff --git a/anno3/apprendimento_automatico/preparazione.org b/anno3/apprendimento_automatico/preparazione.org index 2a64f37..3a33a81 100644 --- a/anno3/apprendimento_automatico/preparazione.org +++ b/anno3/apprendimento_automatico/preparazione.org @@ -336,7 +336,83 @@ mai viste. Permette di trasformare un sistema induttivo in deduttivo ** TODO Path Through hyp. space Vedi che vuole sapere -** Trees +** TODO Trees (manca ranking e regression trees) +I decision tree sono molto espressivi e corrispondono a proposizioni +logiche in DNF. +Per evitare l'overfitting bisogna introdurre scegliendo un linguaggio +restrittivo per le ipotesi e penalizzando la complessita` di ogni +ipotesi nella funzione target. +*** Feature tree +Nei feature tree ogni nodo interno e` segnato con una feature e ogni +arco con un literal. +L'insieme dei literals in un nodo e` chiamato ~split~. +Dalle foglie possiamo costruire un'espressione logica tramite +congiunzione dei literals risalendo alla root. +Il set di istanze coperto dall'espressione e` chiamato ~instance space +segment~. +Tree learners eseguono una ricerca top-down di tutti i concetti. +*** Algoritmo Grow Tree +Procedura generica +- Homogeneous: D → bool; true if hom. enough to be labelled with a + single label +- Label: D → label; most appropriate label for a set of instances +- BestSplit: D×F → set of literals; best set of literals to be put at the + root of the tree +#+BEGIN_SRC +Input: Dataset D, set of features F +if Homogeneous(D) then return Label(D) +S ← BestSplit(D, F) +split D in Dᵢ secondo i literals in S +foreach i do: + if Dᵢ ≠ ∅ then Tᵢ ← GrowTree(Dᵢ, F) + else Tᵢ is a leaf labelled with Label(D) + +return tree whose root is labelled with S and whose children are Tᵢ +#+END_SRC + +*** Purity +La bonta` di uno split e` determinata dalla purezza. +Per esempio nel caso di due classi ⊕ e ⊖, la purezza puo` essere +definita in termini di probabilita` empirica. +La purezza misura i figli negli alberi, in rule learning la purezza e` +di un solo figlio il literal e` true. Si possono usare le purity +measure degli alberi ma senza bisogno di fare la media. +In the case of classes: +| minority-class: min{p̣, 1-p̣} +| Gini-index: ∑p̣ᵢ(1-p̣ᵢ); expected error rate if examples on leaves were labelled randomly +| Entropy: -∑p̣ᵢ·log₂(p̣ᵢ) +Impurity of a set: $Imp(D_1, D_2, ..., D_l) = \sum_{j=1}^l +\frac{|D_j|}{|D|} Imp(D_j)$ +*** Decision Trees +Separa il dataset in partizioni disgiunte usando l'objective function +(ogni partizione e` pura nel suo target attribute). +L'objective function misura la purezza delle partizioni ottenute dopo +lo split. +- Information of an event +I(E) = log₂(1/p) +Se un evento e` molto probabile (p≊1), l'informazione che ne ricaviamo e` +poca, e viceversa. +Se un esperimento ha n outcomes ognuno con probabilita` pᵢ la +quantita` di informazione media ricavata e` esattamente l'entropia: +| ∑pᵢlog₂(1/pᵢ) = -∑pᵢlog₂(pᵢ) +**** BestSplit-Class Algorithm +#+BEGIN_SRC +input: dataset D, set of features F +Iₘᵢₙ ← 1 +foreach f∈F: + split D into subsets D₁,...,Dₗ secondo i valori υⱼ of f + if Imp({D₁, ..., Dₗ}) < Iₘᵢₙ: + Iₘᵢₙ ← Imp({D₁, ..., Dₗ}) + f_{best} ← f +return f_{best} (feature f to split on) +#+END_SRC +Il best split minimizza l'impurita` dei subset D₁, ..., Dₗ. +*** TODO Ranking Trees +- Spazio diviso in segmenti +- Gli alberi possono diventare rankers se imparano un ordinamento per + i segmenti +- Le foglie devono essere ordinate + ** Rules Ordered rules are a chain of /if-then-else/. #+BEGIN_SRC @@ -344,6 +420,58 @@ Ordered rules are a chain of /if-then-else/. 2. Select the label as the rule consequent 3. Delete the instance segment from the data, restart from 1 #+END_SRC -La purezza misura i figli negli alberi, in rule learning la purezza e` -di un solo figlio il literal e` true. Si possono usare le purity -measure degli alberi ma senza bisogno di fare la media. + +*** LearnRuleList +learn an ordered list of rules +- LearnRuleList: +#+BEGIN_SRC +Input: Labelled training dataset D +R ← ∅ +while D ≠ ∅ : + r ← LearnRule(D) + append r to end of R + D ← D \ {x∈D | x is covered by r} +return R +#+END_SRC +- LearnRule(D): +#+BEGIN_SRC +b ← true +L ← set of available literals +while not Homogeneous(D): + l ← BestLiteral(D,L) + b ← b ∧ l + D ← {x∈D | x is covered by b} + L ← L \ {l'∈L | l' uses same fetures as l} +C ← Label(D) +r ← if b then Class = C +return r +#+END_SRC +*** Unordered rules +Rules can also refer to the same class and we can collect them in a +rule set. +- LearnRuleSet(D): +#+BEGIN_SRC +Input: Labelled training data D +R ← ∅ +for every class Cᵢ : + Dᵢ ← D + while Dᵢ contains examples of class Cᵢ: + r ← LearnRuleForClass(Dᵢ, Cᵢ) + R ← R ∪ {r} + Dᵢ ← Dᵢ \ {x∈Cᵢ | x is covered by r} ;; remove only positives +return R +#+END_SRC +- LearnRuleForClass(Dᵢ, Cᵢ): + Stesso che LearnRule(D) ma usa Cᵢ invece che C←Label(D). +Il problema con queste regole e` che si concentrano troppo sulla +purezza quando ci sono regole quasi pure che pero` non possono essere +generalizzate: usa lo smoothing. +- Laplace correction: $\dot{p}_i^+ = \frac{n_i^+ + 1}{n_i + 2}$ +Solitamente rulesets hanno una performance di ranking maggiore (n +contro 2ⁿ istanze riconoscibili) ma possono restituire una curva di +coverage non convessa. +** TODO Subgroup discovery +I sottogruppi sono un subset dell'instance space la cui class +distribution e` differente da quella di D. +Mapping ĝ: X → C; D = (xᵢ, l(xᵢ))ⁱ + diff --git a/todo.org b/todo.org index d9d74be..78bf9eb 100644 --- a/todo.org +++ b/todo.org @@ -1,4 +1,4 @@ -* Apprendimento Automatico [3/5] +* Apprendimento Automatico [3/6] - [X] Scrivile per date di esame - [X] Richiedi date esame - [ ] Slides [0/5] @@ -26,6 +26,10 @@ + [ ] (w_0,w_1) ortogonale all'iperpiano + [ ] dimostrazione dualita` grangiana + [ ] Mercer condition +- [ ] Meo [0/3] + + [ ] Vedi bene gini index + + [ ] Ranking e regression trees + + [ ] subgroup discovery and ongoing - [X] Esercizi [3/3] - [X] es1: perche` min_impurity decrease - [X] chiedi a Galla`, Marco e Naz quali sono tutti gli es