{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Метрические методы\n", "Шестаков А.В. Майнор по анализу данных 31/05/2016" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Метрические методы классификации и регрессии - одни из самых простых моделей. Они основаны на гипотезе о компактности (непрерывности) - близким объектам соответствуют близкие ответы.\n", "\n", "Дело остаётся за малым: \n", "* Определить, что же такое близкий объект\n", "* Определить, сколько ближайших соседей учитывать при прогнозировании\n", "* Определить как их учитывать?\n", "\n", "Какие недостатки метода kNN вы помните из лекции?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Интуиция\n", "### Классификация\n", "Поиграем с kNN на игружечном датасете" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/shestakoff/anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n", " warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n" ] } ], "source": [ "from sklearn.datasets import make_moons\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "plt.style.use('ggplot')\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAzwAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X, y = make_moons(noise=0.3, random_state=123)\n", "plt.scatter(X[:,0], X[:,1], c=y)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='euclidean',\n", " metric_params=None, n_jobs=1, n_neighbors=10, p=2,\n", " weights='distance')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.cross_validation import train_test_split\n", "\n", "knn = KNeighborsClassifier(n_neighbors=10, weights='distance', metric='euclidean')\n", "knn.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAD/CAYAAAADvzaFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl4XHW9/1/nzJk9k0zSNGm609ISWqAtBQqFlspaBQVZ\nBgEV3BdEWQS8cFlU/AF6EVBBZBFBQe8oXAQURIUKtCylNKVAgUL3pnu22dfz+2My6WQy+5xZ8309\nTx+YZOackzNz3vM57+9nkVRVRSAQCAS1jVzpAxAIBAJB8QgxFwgEgjpAiHkBOByOJZU+hlpHnMPi\nEeeweOrpHAoxL4wllT6AOmBJpQ+gDlhS6QOoA5ZU+gC0Qoi5QCAQ1AFCzAUCgaAOkCqYmihyIgUC\ngaAwpOQfKJU4ijjd3d2V3H3B2Gw2XC5XpQ+jphHnsHjEOSyeWjyH48ePT/lzYbMIBAJBHSDEXCAQ\nCOoAIeYCgUBQBwgxFwgEgjpAiLlAIBDUAULMBQKBoA4QYi4QCAR1QEXzzIvh+ecDFdu3xaLD663c\n/usBcQ6Lp5Bz2LXbzNx5+hIdUXWypkli3uRQyt+Zoyo+WVeyfXuMG5gTjQ49nho4oGT7EpG5QCCo\nW9Y0jSiULBse44ay7k+IuUAgqGvSReWlJC7kiVF5qRFiLhAI6pJKRuVQXiEHIeYCgaAOiQt5JaPy\nclOzC6ACgSB3unabAUbV4udosVfiCDEXCOqc0Sjk5SYxGq+EkIMQc4FgVDCahLxSXnmlRDyO8MwF\nAkHdUQmLpdIIMRcIBIIiqNSCZzLCZhEIBIICyMcntykrYv9TwgpQIeYCgaBuKLdfno9P3hZqJ1LC\nYxE2i0AgqAsqmVteDQgxFwgEdUO5hDwfn3zIYikxwmYRCASCPMi1MChRxNtC7SU9JtBAzB0Ox0Tg\nEaAdiAL3O53OXxS7XYFAUDzxgiGBNiS3tE1HXMjLIeJxtLBZwsAVTqdzNnAMcInD4ejUYLsCgaBA\nunabReVnhaiEkIMGkbnT6dwJ7Bz8f7fD4VgHTADeL3bbAoGgcISIa0suPrlNWVF2EY+j6QKow+GY\nCswFXtdyuwKBQFBJKtlAK1c0WwB1OBwNwF+A7zmdTrdW2xUIBIJKkq9PXik0EXOHw6EQE/LfO53O\nv6Z5zhJgSfyx0+nEZrMVvE+LpXRz+7KhKAoWi6Vi+68HxDksnkzn0Gg0YDEby3xElcVoiGI25ydp\nekUBc+ZF4pBixJylFskivwwY6IiOhwzulmQsXPMScTgcNyU8XOZ0OpdJqqpqseFHgL1Op/OKPF6m\ndnd3F7zPyg50tuD1eiu2/3pAnMPiyXQOR9vg5kxDmzNhNpvx+Xxpf5+LvZKPTx4JnpTfAaZg/Pjx\nACO+XrRITTwWuBBY63A4VgMqcK3T6Xyu2G0LBAJBpagFnzwRLbJZlgOV8zwEAoFAY2rFJ09ElPML\nBAJBAVQqnzwdopxfIBDUNFp3SsyWT15tIh5HROYCgaBm0bpTYjafvFqFHERkLhDULV2rQ3Wd0aKl\nkGudtVIJRGQuENQhc9vSp9vVE+US8lpAiLlAIBi1DCgfAfm1s61WhM0iEAhGHfFo3IAxZyGvZosF\nhJgLBIJRRqKtYpYgnSFVKyIeR4i5QFCH1HM5fzELn/lOCaoVIQfhmQsEghpCCHl6hJgLBIKaopRC\nHqfWhByEzSIQCOqcXPusQG1kraRDiLlAIKhL8o3Ga9VeiSNsFoGgTularU2Jey2Sj5DblBU1L+Qg\nxFwgqEviFaD1IuhrmqScB1DkI+SxCUExEa9lIQch5gJB3VIvgp5PBku+ETnUdjSeiBBzgaCOqZce\nLVoLeZyO6PiCj6naEGIuEIwCaj06z0ahi531hBBzgaDOqVW7JVeffLRlraRDiLlAMAqoNUHPt9Jz\ntAs5CDEXCEYNteafazU9KJl6FHIQYi4QCAR1gagAHcXY7WF27OhFr5dpabEzMKCr9CEJSszcNh9d\nqwf/vwq7KuZrr2QbvpxItY99KxYRmY9SmppU7rvvNb797Wf52tf+xgsvvE9DQ6WPSlAOqtU/L7Qj\nYq2Pe9MKIeajFJ0uzLPP7o9q/vrXD9HrxUUxWqgmQY9nrUDpfPJ6TEVMRtgso5RoVMdxx03klVe2\nAXDiiVMJh3WAWtkDE5SN/YI++LgCtosW/ckzkSji9WyxgBDzUUtfn8xVVy3inHP2YjDoaG9vYWBA\nCPloZG6bj67d5rLvtxyDJqD+RTyOEPNRTE+PnqamDgAGBip8MIJRQ7GWSiFl+6MB4ZkLBIKyI4Rc\ne0RkLhAIqp5Ef3w091/JhBBzgUBQNuIWSyEUEo2PFr8chJgLBIIyUOrUw0SqISI3rF+d8ue+KSeV\nbJ9CzAUCQVko1ifPh3JG5OmEOxqeU7ZjACHmAoGgiqnWPuXJAl5u4U6FEHOBQFBSCvXJPcYNVeOT\nV6N4JyPEXCAQlIxyeeWl6FOeKODVKN7JCDEXCARArE+LliX9uUwJSkelfPJaE/BERNGQQCCoqsZb\nlSgMMqxfPSTk0fCcmhNyEJG5QCAYJLHxVrERejl98kIXPQ3rV6MYDRgCwZoU72SEmFcQg0HCYvHj\n9YYwm83094vhEILap9w+OeRnsQxbzIzOJxr2anlYFUOIeYWQJDAY3Hzxi0/jcgU54YQpfOc7x9Lf\nL94SQeUp1D8vZ3EQ5O+TJ1opAFTfsKWCEZ55hbBYZP7+9/W4XEEAXnhhM/39bk33YbXKmM3iLRbk\nR7H+ebmEPB+SPfF6RFzpFSIUUpkypWnosaLIWK0GTbYtSdDSEuD551fzyitraW4OarJdweghLujV\nSj4+ea0vbOaKuKevEMGgyqGHTuLqq49m7drdOByziUYtmmy7uTnKlVf+g48+6gPgvff2cumlx9PX\np8nmBYKKka9PXu/ReCJCzCvIwIDC/PmdLFx4MC5XBJ9mwVCEDRv6hx598ME+JCmKuBETaEVytsqc\nfrWojoi5kG9h0GgSchBXd8XxeqP09kYIh7XbZiCgcOml84cef+c7R+D3j9632miUsNuDWCxebDYx\n1KBYEhc54/54uQYy5yPk9W6rJKNJZO5wOB4ETgd2OZ3Ow7TYpqBwPB6JRYsO5sgjJ6LTySiKFXcO\na6tGo4TJJON2R4hESn+c5UCnA+jnwgufwesN841vzOWkkw7B7dbuy62xUUVRIoTDSt2P30sl2loJ\neLaqz3yFfLSh1Sf6IeBUjbYl0ACXSyIUasTvb8Dtzn7729gY5sMPN/CHPywnGu3FZCrDQZaBpiaZ\ne+99E683duvzm990EY36Ndx+mMcee4MLLvgzjz76Ona7hrdYVUopom+tqj7TtaMdDWgi5k6n8xWg\nV4ttCcqPosDHH+/kppte5oknPuSrX/0bOl3lCym6dptH/MuXSERi0qT9WUNms4LBoF1x1o4dPTz+\n+Ad4PCGeeOIDurt7NNv2aEFrIR+NUTmIBVABoNdLbNy4P9UlHI7icgWQZW2ya/IlUbQTC1e6VoeG\nfpdr6lx/f4Rzzz0UVVXZunWAb35zPj6fCVA1PWZBcWQScpuyImeLZbQKOZRRzB0OxxJgSfyx0+nE\nZrMVvD2LpXKl74qiYLFURuhKxcknH8gf/vAOLleQBQs6aG83Ayo+n5VS9DtKdw5X7TBgNML8+cYR\nv1u4MCbkq1YFWNdvZH5HbvnzgYCFz3/+eGRZxe2GSAS0evvGjm3n3HM7ee65DSxdOo0pU9rxePK/\ngyiEUn8OjUYDFvPw98FoiPLeTgPzD9DuQxFSjJjTOIEW+WXAgFmf+Zwq778JRgPo8zsfekUBc/mu\nZUMRmpeIw+G4KeHhMqfTuUxSVW0iFIfDMQV4Oo8FULW7u7vg/T3/fKDg1xaLxWLB6628DaEFJhPI\nsgevN0hrqwm3O8h77+3h5ptX0NFh5Z57TqO3V3sDPd057NptzqmMPF6dWA3FLTabil4fIRzWMTBQ\n2vS8REr5Ocz0PhTT2jYV6Zpr5ZPBUuiip9lswecr37UcmH5K0dsYP348wIgPmpaRuZRqB4LqRZYh\nGOzly19+hkhEZdasMVxxxQJ+/OPYRdTd7eGtt7qZMWOapqmTiSiKhNXqZcOGHsaOtdJu15NLw4y5\n8/RDtkulBd3lkqgXx3LIxtKwr3km0mWwlGLYRL2jVWriY8QslDEOh2MLcKPT6XxIi20LSofVKvPE\nEx8TicTuzt57bx9m83D7qrXVUtI0RYvFz5e//BR9fbE7rV/ecxqydADRhBtGSYJUN5BxQRdoQ6WE\nPJ1fnm9x0GhHEzF3Op0XaLEdQXnx+1XmzBnHY4+9B4DNZsBut3DnnSfz5z+/x8KFk5gwYWxJc6f7\n+rxDQg7QtXoHp8w6ANQwHcGtGAjy5kcSsqLQNq0DV7Q8fvRoo9qEPF8KXfiM6owEZCM6nYoSqu1+\nF/Vxb1hHWK0qen0IWZZxufSEQqXLugiFVKZN6+BXvzqVzZv7WbBgIn19JtraxnP11RPw+2FgoLQV\nky0tVtrbLeza5UWS4LjFk0CNYv/oOZZ966sgSXTeeBeX3ePh/AsPZcHpR+Cp3HKJJlitKjpdAJ1O\nh8djIBisjsyafIR89RZ90b55OScJpcLzzjbW+/fy2i/voWX6dI756ucxb1yN+di5FT2uQhFiXkVY\nrSpvv72Bm29ejt1u5P77TycatZbU5nC7dTQ0tDN37jhcLpV4yl4gUB6BWb6hidvuOoM9O3qZMLEB\n3ZixyPpdrLriUqKDRv3Gu27Eccb/8J8XN7H4jHn4JB0mPfhr0GFpaFB57bUPuP32N7DZDDzwwGlE\nIraaqrgtRx+WUuNb3oV74qH845KvgarSv3EjjVOncuThkyt9aAUzeht2VCGS5Ofmm5cD0NcX4Je/\nfJ3GxtK/RapKxaLD2S0+Vm9uZEzHWLZv7WP7Ox/THNBhbNpf6GO023H7VD577sFEIyrh7s384w/L\ncW/YRJs9poLFFBaVE1X1cfvtbwDgcgX51a9W0tRUucswfs7KZa9A5rJ9m7Ki4DFw+WA+dm4sWEhY\njAm63fH+DzWJiMyrCJ1OxmDQEQzGBMpuN6Vc+Ks3jp/h4ed3/IdXXt4KwGfPPogfPPRn3rr2u0iS\nxOwf/IgxwfEYx7bi2bmbr1z0NAC/fWA19z10Jl2725OKi2L/LWWWi8EARqOXrVv7GTeuAUlqwOfL\nHq3q9TqMRh2BQOw9bmsrTR5/LhTrk+drtWTzycudwWKLuDnqe5fyxi9+RcP48Rx21umYxoWp1YIy\nIeZVRCBg4t57P8nPfvYqHR1WvvKVI+jpqZ8uf4lRs9FoGLJy5lq8vPbq9qHfvfyfLVx8ybFMvv0J\nNlslNvSYiKoQjkDfHs+wbfbs9Y4Qo3KkLRqNPr74xSfxesPIssSjj54JpC8IsVplTCYIhUzcd9+n\nuOuuN5gwwcYXvjCP3t7yv8fFCnm+VkuuC57lTEVsmDmGow+bSednTkSnSFjlvtRpUzWCEPMqwu9X\nMRrHcMstpwESPT21+8GKk2x7xMXDYjbi9cUubJti5hzHwfzpsXcBcHxuFgHJSI9fh9kPiZf/lGlj\nGDPGzL59PlpaTMyc1Uo/Iym1oO/a5Rpq3hWNqmzY0MPEibaUUXZjY4QVK97npZe2cPbZncycOZkb\nbliKqko1KeSJ5BKda525oiVGyUejfrBoqMYvNyHmOWK3gyRF8PtL66kFgyrBINT8JyuBbKLhChtw\nfGUBJ5w8DVkn0zxhLAOh1OfZY2jhgUfPpmePm+bWBjx6+3C1T7HfUtgu7e02LBZlKDKfNq0Ff5pm\njDt37h3yyVeu3Mkjj5xBJNJEJd9jLYQ8l+i8XEIuK2tGdV8WEGKeEy0tQe68cwXr1u3j0kuP4NBD\nZ1An1fxVQ3/Egn7CFAAGMmR2hKPQJ9uR2+2xiDwHjUiM0lP+vgCRDwYtPPLImXR399PWZmbfPg/j\nx+txu03DqmVlGfr6hqu8xxOsmxbDkD06z0XIi1n0DM6YJwqHEGKeFbNZ5p//XM+LL24B4Lrr/oPT\n2QaUNmvCbFaJRFzs2eNh0iQ7Pp+lpDnnpaRrdais2RKpSLf/fCtIFQUaG2WiUXC7rUQifXzuc08B\nMGaMmQceOIO+vv2DuaNRmD17HFOmNA3m8o+no8NOb500jI5H58XknYvSfW0QYp4FWYZAYHhjknC4\n9N5fKNTPF74QEwmbzcDvfncmoVDthXNz23xVny6YK0ajhCT1c9ttK+noaODLXz6cZ57Zv3C7b5+P\ngQEfYBj2ur4+I3fddRqBQBC93khvb+2mv6WimLxzLYV8tFstQsyz4PFEOf30Tl56aSsff9zHpZce\ngc3WTCCQW/vVQjAYJLq6dg89drmC7N3rwWCoPTGvBSHPdZHUYglw4YV/w+OJRaCRiMoFF8zif/93\nHQBTpjTR2GihL6kqXFWht1ehmi63UtwtFRqdZxLyZPskOGNeyucJq6WaPl1VTG+vkZ/+9FNIUhS/\nX4fXqwDFibnVqiJJfnQ6mWDQiC9BS4JBlTlz2ocaTDU2GmhttdbsfEmtRSOfKHBOf2ZrKp9mXaFQ\nZEjIAbq7B2hsbOLRR8+kt9fPhAlNDAxU1k7KhfjdkpaCXkh0ns4nN6xfQ+JiSGK0HRfsdKI+mqPz\nUSvmsewUFZ9Pxu/PfMGrKvT0yMQLZoudB2CxqKxbt4kbb3wZRZG5556lWK2tg1ksMfT6mEjs3h33\nzGPDImqF5uYQ3d19HNRiYN/WMYyZVPhJSxaJXKO/1Vv0rGmSMgp6fp65icsuO5I771yJ2azw3e8u\nYM8elXC4Eau1cUREXs3E70S6Vpe+udYaWc6pM6JhfRd9/rmsX92O3mqho3M8Vnl4BBMNz0FW1qTc\nVjw6H62CPirFvLk5yP33r+Tdd/fyrW/N54ADJuDxlK/XhMkU5oc/fAWI+e+33LKcO+74NMHg/rLu\nWLZMI01NjYMRee0Iud0e5dZbX+K112J+8n/feDyuQCdTD8xPNBJFvJDb93mTQ1kF3WyEYw4IEArJ\nuFyZ10Lcboljjz2IhQunotfr8PuNWQOB0Y41MC1j+X4cw/rVeCKd/P3S29j7bqyL57xvfo1jLjoV\nOeTKeX+jWdBHXW8Wk0ni5Zc38Le/fcymTf1cc80LRCKe7C/UEEmSGTNmv//d0dFAPb0V4XBgSMgB\nnvnrOsbYcl80XtMkDU2zif8rlPjrU1kAFn2EDv1WbrnlH/zrX2toatq/n3Rev9st4/GY6eszCCFP\nweotI7+wrYFprJGzf74Dfv2QkANsfvElwtH84824BZMugq9X6kdBckSWJdzu4X53KFTeyrT+fh33\n3nsaS5ZM4vTTD+Saa46rm1Q1AIPBwMyZzUOPj1s8lY4pI2d6piIuulqOJUvedhzXtn1cfumzvPba\nDu69dzVr1myLLT4PCnktNO6qJrKtT6QS9N36XUBMgM0WD1NPOnHod7M+dw56aXi/41wFOp2nXs+M\nOpvF643yyU8exD/+sZFNm/r5xjfm0tBgoz9VTXiJCIfB7bZw2WUnDvrx1VfmnC+Joiftgetu/hRb\nP95Jg83IpM4OBtJURyZSSiFPZbn4fSGiCSONtm13Q3vsjml/9WgN9tmtAIZBJZnTrw5F54nvYyq7\nxRVeOGwR1Cxt4ITrz2P3+eegmE2MnWRDCrtGCPhoFOpcGHViDtDfb+Suu05HVSOEQnr6+8vfmzka\npSJ9ObQmUcQTF9KiNDNxfjMqkDjfIi7YRkOUgKGwhc1kkkXCGpiW8nnJgj5+ejOnf+ZAnnnqI8aM\nMXP6Zw+iT5+qaVd1DI6uJhK/5A4/wM2qNzYgSRKLT57OnP6mtIVEmRZDgzPm0bB+NQ0Hp/6dIDOS\nWrkuYWp3d3fBL37++cqNmynlVPRqJ5XtkC0bIlU2itlsxufLXyBTLaYli0Py7XyyuMcjxzn9Ko06\nP2G3G6PFgEtqJFU9WFy4qk3QtfgcFtp0q2t1iLltPuz2KLfd9gKvvRa7lhctnsQVP1xKXyhmq8XX\nPuJ4jBtGvF82ZYXm1Z/xFMZsi6BmswWfr3TXsm9517DH8hevLnqb48ePBxgRgY7KyFxQHMkXfi75\nxVpF3bn0+Uh8zhpZxmPcMEzQEyN0MDMnYsK7f8jSCJJ7u1SbqBdDYs455CbqcSEHkOUoa9fuGfrd\nmq5dyNEwkNsaSSnIVchLSaKIh8btH0NXyrMixDwH7PYokUgARTHQ11dfpdj5kCoq19LnziXqTmZY\n4YkqIWFAJYArsnDo9ekEHXLLRYfhHnop+6RXgqGc8wRRT/m8xAEgg5+FtmCEL31lHr/6Rawr5Je/\nejgB2QSR9F/yqayW3fpdRUfniRWg1SDkiSJeDoTNkoXm5jC33vofXnttO52dLdx22yn4/fZRZbOk\n88ULEfK4YBsMRoLBke9hvh324gIQ9pnZ/YaXve+8z9ijDkF/VD9RxYMrHBP1uPWSyk9PTKfLJupQ\nPbZLOew+RYFIBFbvSm/HNOoC7Nq4lwabjHXsGAbChoyfjVRtcQvt0VKsgGtps6SLxhMxnnJK0fsR\nNkuBbN/eM5Qz/f77Paxfv4dJk+wVOx5Jik2tCYXUsgxdTuep5iPkiRF3/AI2S+AroMd1qotejZjY\n9bKPpy+8GABZUTj72cfgSA82ZQWu8MJhETqgUZReeUFPxm5XkeUIfr9SVJtmRYGGBh+rV++gvd3K\noumtuFy6lBWjAxEj5skTiAAD4eyfjUyZLYVE6JWKwpP9cCh/NJ6IEPMsWCzDP7hWqyHNM0uPXi9h\nNLp55pkPmTy5kblzJ+fcC6SpKUJvbz9Go4LRaMPtzuxzp4vGE8kUdSVS2sEEOnYt62fHqveHfhIN\nh/Fu3sqkue3s1u8aJuiQ2keH/V56rsQzXSAm6k1NKjpdhGBQl/X8loKWlhC33/4Kq1fv4stfPozF\nizsZGCislKShIchXv/oM+/bFvqx+9KPFHHjgARlfk2/FbrLdkpyqWK3kEoFXAiHmWWhoaOKGG47j\nr3/9gE98YiptbS3Dhg+UE6s1wBe/+DQuV6zo6bLLgixcOBuPJ7NYNjZGefTRN3n88Q8A+MlPjmf6\n9Kn4fCMj0FxEPJUXmir6zkZcZIvBsHUna373PJOXnIDOZCLi92NubaV58hggFsEnCnri8a1JIeiQ\n3utNFbHHF0ebm0P88pcreOONHXz+84dw0kmzMgppU5OKokQIBAoTfosFLBYXJpOKy6VHVWHVqq28\n9FJsKPZdd73JvHkTgKa8tw3g8QSGhBzg9de3Y5w4i3SrxFqunWjhn2tFqugbqkvE4wgxz4LbLTN7\n9oHMnz+NYFBmYCBadKOtfLDbZWQZBgai+HzBISEHeOed3XziE4fgydKNQJZDQ0IO8PDDb/PTn05O\nO00+U0ZDcqpZIvmIuEE2ECR157xMEVryRR6cNIX2ww5m5R13cPQPfkAkFGLycfNpaXyNILOHXhOv\nNMxGouWS+HdmitgVHbz33g7+/e/NAPz6129x5JETkKTmlM+PCf+rvPTSFs48cyYXXDA/r4V1q1Xl\nvfc2cdNNL2OzGXjggdOIRhtTzCIu3IazWs3MmTOWNWtimSonf/IguvvVlJ+NfIU80yi5YuwWrUgW\n8GoU7lQIMc8Brzc66D+Wr8hHkmD8+DArV27l5Ze38sUvzqWhoYGlS6fx3HMbUBSZCy44lIFMM9YG\nkWWF6dPtfPxxrK3fEUeMJxLRkfz3ZCtdzxaR50JcpDui4/GF0vjN+nwWw7wc9PnjMTRY6Nu4ns6z\nTmFcy0qC02an3HfynUAquwVSC1Pi358cpQcjw8+NqqpIaQLujRv38u9/bwLgz39+nxNPnIbR2Jr6\nySnQ6QLcdNPLQKzX/e23v8q1157KEUdMZNGiSaxevZMvfWkONltjQW2Tu3abkfbApdcsxdXTi7XB\nSNPkNprCw79wCmmElstM0KH3SJ85/1zr/uXVap/kihDzKkSSYMwYP9///ov09QX45jfncOONy/jp\nT5fy9a8fw+c+dyhWq55IxEIudTe9vTp+/vOlvPrqZhobjXR2dtDfn1rIs1kr8Ys2X1tlRAZKBms6\n34jM3OFi1rcOA+YDXoJ0ptxmcnSeLm0RYpG4IsGhk2J/b3KUnrhQeshhetSeCSz5xBTeXNnNhRce\ngt1uTyuksjxc5XW6/GwWWZYxmXT4/bEv8uZmMyDR02PgiiuWIMsRAgEl5f6z5crHfz9nrh5owt4a\ns2m8CdZiod0stRzuXEwueaJoRw1GAglZVbUo4nFEamIBlDolrLlZ4vbb/83LL28DwGDQcfnlR3Dk\nkZNxuQpv/KTXS0SjKpEUwXzXbnNe9kqqSr44qSySZIE2W8z4vLlngqSySfIV/fg2kqPzNbI8TMy7\nN0PLxp1s2djLjEPbMc1vJpAUZidWkcZp0gfp2eVnj8vAzp7UtkmsajLMo4++xbJlmznrrINYunQ2\n/f252yxGIwSDvdx22wra2ixcccVCenpyK0cZtiaSJOj5fqHnS76L45kqQw3rVxcl5HHRLlc1d9Rm\nIxCNYpw+HfO4cUVtS6QmVjl2uw5ZVociZp9vfygUDkfp7BxDNFrc2Lh0A6FzEfJEUl2UyQKupd+Z\nSoQL8VVTLYbCYISeEJ03b9jBNy74KwAmk44/PHsOgc7h/neqxl39IQO6FgPjWmDclJH7H6oi3Q0L\nPnkcJ5+1gB63nv+s1+WV4hgIgF7fws9//lkCgRA9PbkHZKn2U4yIp/osxM9j4u+sgWmpF5sLWDgv\nlnJH39HGRlY//jjvPvYYppYWPvPnP9PUOfLusViEmFcBzc1BHn20i927PXz720fi89m45ppj+da3\n/s7AQJDbbjueMWPGsG+f9uluuQp58oUcv/BSFfBoyW79riHhlcMKwd1GdAYVd+uxNCjLixJ0GP4F\n4TFuwB6Yxtp1e4d+5vdH2LrFS0vnyMXM4W0BchtRtx89YGJcK4ybylCK47DnZxD4UEhlYEDB681t\nfGG6iDyTkKd673Npr5As0MlWlg5oBMKSBCmEPxuFRuXFErXbCRF75+Q8xkq5PR7efewxAPw9Pbz3\nyCMsvOXCo/sjAAAgAElEQVQWtHZFhJhXGLtd5sEH3+Tppz8C4K23dvH735+Ny2Xlt789C1WN4vPp\n2bdP2/3m0mAp2221lpPVU5ForXwcMbLnSS83XfUCra1m7nloCeohhWU+xJ+bKOpzwgtZI8v0GTcw\nf2ELiiITDkcZO9bM1Bk24vZzctFRcsFRKnKpKk1+H7RsG5D4hZ3YYybdviH1GondL3PwO300qirR\n6c0ETakj6VQCHz9fBlVFfXM3t/98FZOn2Tn7W4fRP7Eh57+l0EXPYkvsQ83NvPiTn7Bz5UomLl7M\noiuuQJ/jEALFZEKSZdTB82KN2SSaI8S8wsiyyrZt+1eqXK4g4XCEcFjPvn06YnGMthQj5MkRVKnT\nx+KRs2mDjqu+vYxoVMXlCnLrD9/i9j/OxUWhqWwKYwY6kRSVveYPsSkrmDO4rw+PiPD7f5xGz04/\nbdMs7DloH2Fi0Xq2Xi/JZBJ5SC/0iYOmrVZQVQ/hsIrRaMXlGr69TKKfi3Ank2p9pCEsM/7xZSy7\n9AcAHH/nT7B87gTCSvZsqkRMm1xccN7TMRtx2RYkWeLMmxdCYBprMqzDQGGLnlplqOzdtImdK1cC\nsO2ll+hxOGi3WnN6rSUaZek99/DW/fcz9tBDmXH22ZpH5SDEvOK4XHDZZQv4+tf/TiAQ4fLLj0JV\nS99xrhghL5e3CYnphNKwVD+dLIFU6N2BkZ0rwiy//r+xtI3l2B9/D3/nB0PbmhleCHNg8hwAD+OT\n/ty4oOdCpsXCZKFPJexmM2zatJWrr34RgKuvPpojjpgxbGZttug9n/a26dZHDt0d4Lnrbx36+avX\n38oZJ02nb9zEnLYb//IL+MLD1oO2bOhFUdURQUK6OoNChFwLj1wxGjM+znwgPtpsNpbecAPGI48s\niZCDEPOKEwqpmEzN/PGP5xAKRZBlc0VKweNkEvJcRTyXW2HFaMAQiPm96QYPDAm0fgWdBzZx930n\ncN3VK2hrM3PNTYdjMPxz+PPSHEPy9r3v+Hjm/EsID2YxSLLEqQ9/F0npTeunpyJdjnri75NJF82n\n6wvTG5G5886VQ49//vM3ePzxaRgMKjt2bMFq1WMy2fB4hn+5FNqnPPm4IPblZbBspXHyJPYMesW2\nSROxGSxEcqjiTbybsU2ayMVfO4zf3f82FovCNy4/YsjCSl6HKeauT+vOhS1tbRz+7W+z8Z//ZMbp\np9Pc0kI+SfxqMAg9PSUTchBiXhX4/eD3V67/cxwthTxrBKW3EA17h70mkUQBji9aHvvZtfxt4Sz0\nhhD6ln+BpGa84KPhOcjKGgzrVw/bXjSsDgk5gG9vD2oYJCW1n55KrFI17sq2OLhGllHYyLjdQUJG\nHZvbdERQsQampcyOmTtPz8COMNOnN9Pd7QZgypRGTCa45pp/09W1G4Cf/ewEJkyYRCCgFiXimehr\nnMrx997A23f+ETUa5YjLvkTf2A9zfn38fO1s3cap/zWFky+cjNGiY+BAH372n7d0Qp7PomcpWtDq\nBgY49BOfYPYppyAHg6iFVGOVGJFnXgC1PGkoW/ZCPkKenAecj6eZqfVosTMfk49DVtYM20bEb+HD\nh7v4z3//BH1DA595+BeMXWwERjbdSZebnkzcdsn0pWcPrmPH77ey4r9vwdrRwYm/v49XD21EZX/E\nnip/vUXt40nnO/j9YU4741D0apDzznt86PfHHTeBs7/+aTbtSF1unw/ZPgMmYumxet2LmJV1+CLD\nU+xy7bWT6nylEvJ8ffJ8hbzc17JogSvQlFzb2RYs5HoT6C0QcEMkt9S5RBIv3HhknY5Ekc71wteZ\nvMy8aC4TT/o/ZIMO6yQPkPo4c+3rkq34BSD03nheueZHALi2bGHt7b/kqN/+iNfl/YFJqs6NPZKd\nT33xOCQJXn41xCGTfUye3MiWLbHocOGiA+h1aSPkaX832OHQT2wytz9yzIg7o1Q5/OnIltpaTJ/y\nWq7iLAYh5mVCUSQaG4OEQhFU1VhRXzwV2bJWciEanoNPtbH+X2vZ/OLLHHzumUw5dBz6aOZOYJ5o\nE+5eH+ZGC41GN0T3R8iZLuRkoc/1oo/bLrbpOT29KBKjzT5peIqaYjJi0a0BtXOE/56cu+4e1Pu5\n8/TIkp5f3PdpPnxvF01NJsZMaccV1T4ij5PKQkpFuqKsOLk0T6uWaUG1iBDzMiDLYDa7ueiiZwZ7\nrczjpJMOGZFiVm3kWq6feAHu/GgvL13/QwA2v/ACZ//lD3S0pd6+b3kXgcmH8M//+TG7Vq/G3NrK\nZ+6+g4YNXZiPzR5dJV/syfZMHC0muyf+zYW27W2crnLKfXey/IZbaZwyiUOvOJ+eSAfImYdlwHDb\nJapCr9zM1CM78Pj8uHJYzkgVdeeS/54vyUVZyb9LRfKdV7Eirt/ZlTU6lwwGfCYTA243ZrsdfX8/\n8baT4aYm9m3fTiQcZuwBB+ScT15phJiXgcZGHQ880EVfXyy8uvfe1SxefACQe7FEqUls+ZprFJZI\nNDwHJBnPtuHrIL4du6FtePWkb3kXUYOR0Li59LgC7Fodu5h9e/eybe0HdNoN+JbnJujJ5CLc+Yp7\nKisBchP1xJau6MF2loVPLv4ZkilKr6Vj6HnphmXESdWC95jgSIHOZJXk2tI3mUx2W6r8/nyyULQe\nvmw+di6+5V1ZBd1jNPLXiy4i5HbT0tnJqbfcgr6vD2w23n7iCd75wx8AmHjccXziyiuR8qj4rBRC\nzMtAJKIybtz+AgNFkTEYFAKVW8Mdxpx+dYQIFJSGqEYZf8zhWMeNw7NzJ21z5jB29jQgFtkkLk7p\nLRbwejE2Ng7bXkN7OyGbDf0Obdub5nT8QFTXTCA8Fr3egxLePkL4c812SWTE71uGP8zUvTFOsgWy\neouetxqiBAwjxTtbI6xkIc/0BZBJyBNb1ULh8zu1tlOyCbpkMLDt9dcJuWMZQj3vv49rzx5a9Hoi\nisKmF18ceu625csJX3VVpiafVYMQ8zLgckX5zGdm09vrZ8OGPr7znSMJh4trmlVNJF6MLeYBzn70\n1/hdPqx2M1Z5pJAn0qDTcerdd/PBk08y4eijGdPREaukGnxNvtF5chpiuuekOv6g3MD7/1rLmt/+\nlPELjmTBt06mcfC5Woh6JjLNKE3FvMkhzGYFny+/DoaJQp6tlW2u6ya59h+HwiyVkNyAP2REUVTM\nai+5DN3IJOhqKETT1KlDjyWdDqPdDh4PumCQmWecwVv33APA9E99Cl2lRovliUhNLIBs6UyyDHZ7\nhEgkTDSqx+WKpWHZ7TKSpOLxQDBYmfOerrFW4gJYLu1t4xdtrtGVb/nwiyrxHEp6PXJDA1GfD9Xv\nH3qOfmfsCyAfQU9OQ0xFupzlHbsUHj/3C0OPP3HbT5h97CRk+S0gsz2TawojpJ+uFCeetpdN0M1m\nM75cGtonkTxFKRP51BhkalkLhUXifhpZ9cjf6Prt72g56CBO+eG1jBmXu7gmf+7iRG02dmzaxO61\nazngxBOxGwzEhwNEGhvp6+khGgrR3NGBoqHFIlITa4ympgCXXvosW7YMcO65nZx//nz6+3X09ZWv\nDL5YkoftQuo84OCMeUVPfFFDISIpFplC4+aiNjTQv6EXJIkx05uyZsbAftHI1xuPBIanJ4Y8HkBO\nW3yUSKaFv3TPH4Z+f3SfOKMUsot6vuQSheeawZIrI4RckvHSTDikYjH4UaKpg6O97+9g9QO/BWDf\nunV8vPwNrNMaMc07MOs+083vBJBdLia2tzPjoIPw9vSQOOVFNzDAGEUBRYEa8MrjaCLmDodjKXAn\nIAMPOp3O27TYbi1iNEr85z8bh3KA//zn91m6dAaynHoeZDWQMtMhByGH7KX7yRdUPNpmWg6WhMXC\nhrffZvmPfwzA8T+8gVknzUIXSR+NJkZ96UQ9/gWUHCG2TGll1gXn895jf2TMwZ1MXbwAoj1D281F\n0AslVWveZOsFUgt7OtHN9iWQblpU4j61mgo0/FxL7HM38vTXvo2nu5uF113DIacejj7qHvFaWRku\nUYrVNpTamUwq8c60CKqGw+D1Qhl7DZWSosXc4XDIwK+AE4FuYKXD4fir0+l8v9ht1yLRKDQ1DS/N\nN5urZ7EzmUzj4OJkE/J0t83DFjx3du0XckDetgp9cPhJCY2bS7SxEbfXi06vx9jYyOu33z70+9fv\n+hWTD7yVpkm5LUfFjyudqMvKmqHnqDojuz/ag6+3j6OvvZbxRx1Bk8U3rCg0UdBTba9Ykn34xCgd\nGCHsIcVI0Bg7h6laB2SLrNMJdS4CvqXXjHtNiFAowuzDzCjt3phVpB9ZTDbi82Fq5M07Hsa9LTZJ\na/mPb2HikX9krH3kfsbOaGXR9dex+re/o33OHA449EDYNDIFtRQl/LWGFpH5UcB6p9O5GcDhcPwJ\nOAMYlWIeCqkcdthEzj9/Fl1dO7noojkoSkPVijmkHzyRSLqoM5P/mbgIFX889DuzBXmwnD9+IaoN\nDbzz3HN03X8/SBIn3XEHHUcfzdYXXgDAPn06unCAjANE0xxjclQd/29cmN3hT/DvK7+Lb+9eNj77\nLEa7nQuefBir7BuxrTiZmnkVQ2KDMdjvpye/L2YJfEUIcqFsiBh584Fu7rptFQCfOftArvlZJzT6\nhz3PsH41yEZ6vI0MdO+hoX0MY+xBJFQMVsvQ8yRZRtalliK96mJmu4EDbvtvdEEv8qY1addQRrOQ\ngzZiPgHYmvB4GzGBH7X09+s555wjOe88Fb9fwuOp2CJz0WRb1MpGrouXoXFzCSlKTMgBVJVV99zD\n0rvv5p1Jk5Bkmdmf/AQN4/Lrnx0nLujJxC0XWbcTQ0MDvr2xvuWGhgYkHRkTJxJ7v2SzmwoR+2wV\nlZVgjSwzdp/CX/7wwdDPnnr8Iy6+7hDaG0c+f2/vUTx+/lcI9PWhmM2c5XyYtqYB5l18Hv1bttC/\ncTML/+v72O1RSPPWmg+bTKyjkAkObEn9JIFYAC0VAwNxFagdIU/OXChWyPNFJ8s0TJiAe/t2AMZ0\ndmJwu1lwdGyxS/14FRQRfUXDc1JaJMEZ87B89A5Lf/UjXrjudohGOeGWq2nQL4docOi1mbabiWxe\neyaqTdDnRKNsboyy6KRJ/OnhdQAsWNhBuFEdtvgbP899W3cQGFxEDPt89KzfRNsRY7Ebejjt1u8T\nCYNR50WK1GbjumpCCzHfDkxOeDxx8GfDcDgcS4Al8cdOpxObzVbwTi0W7Sfw5IqiKFgsluxPLABZ\nBqvVRyQSRlXN+Hzaft8ajQYs5v2evtEQxWxWGFA+woAR8+BaqEV+mY7o1IyOhmI0xBpqFYBeUcAc\ne635pIV4XloF/Qqf/vWvefeJJzDa7Rx04olYP3wZAOvi+cDMgvY1nGNAXoXOsn8Cj6rKvGs5mV29\nMnN+czczJnkwNrmQpCMAUN5/E4wx4SI6v+B9Gre8m9Ozw51HDHs8hanskLsx64dPDVL0Cmb2/8wi\nvzxiW97oorT7SfX8XF7baQbjDw7mmOMnEPRHWLCwmYZxIQw6Ax3R8aAf/GxE59PYISPpdKiRWNjd\nNHkiZnPs2jUTGPx86VB1dvYNKISDYZrtMkbJn3LfqfC8tAqjwRgrRMuTUl7LqbAUoXmJOByOmxIe\nLnM6ncuKzjN3OBw64ANiC6A7gDeA851O57osL63bPPNisNt9XHLJ3+nu9vD1r8/l1FMPYWAgt6k2\nuZCYZx5f/Jw5I3bLPCcazWkwgBaVe6la4PqWd4EkITU2QySM6o5lBBVS1p+JxFz03fpd7PvgcD5/\nVhfbt7sZO9bMn548ktkzt6Z8bTHDhOM2T/z1frURV18QvdmI3eqHSCCtFZTcudEVXsgY65sEE9Ip\nk9+zVLnvuQ7gTtcpMvnuwKZ7FSR12PYSPx9R2cTu3RK73n6HMZ0zGTfRODINUVbo3iHz1EVfI+z1\ncsz3r+CwM49Jmd2STLELn6IFbgJOpzPicDi+AzzP/tTEbEJeNDZbTOBcuXQZqhEaGmQef/w9urtj\nudT33dfFokVTic0yL55ihbzUHe20Fu1cWfOuge3bY8KxZ4+Pt9eGGDtrF23h1OchMQsmHxJf46eR\n5Xf/kXXOv6C3WjnjDw8yrlVO2TzMsH41bQkWTdx26YhOxRdKn6aZLvc9F+ss1XPyaaA1tJ4Q9TOu\nFcaddFCsG2aKfPKIvpEVP715aGDIq//zcybPfYCxk9PffYvslZFocg/vdDqfAw7SYlu5sHGjmyee\neBudTuKcc2bT01P5KT1aEI1Cc/P+Mn9JAoNBQetq4sR0RA/DMx+yCXk9tiVtbxu+8tbapk8R92h7\nDvr3+ljn/AsQK05a87vHGHfdl8A/vEglVSbO/myX7PtJTHcsdv0jl9enXQiOpv8QS5JKQ8f+beut\nVnS61HejWg1orkdqbgG0vz/E1772D9atixVzfPDBPq699iR6e6u7nWwueL1RTjxxBps3D/DBB/u4\n5JL5QOF+XqrJ7OkGUeRCJYU8UzUfFB7Vt4XaiR6+kd89uoh//XMXC48fy+wjt2nSYzvxmJOPT28x\nozMaiQzmrDZPPyDtII/kfHkorvNjqSj0y07293L0d7+GJMm4duxk4dWX0TIeCA+3UkU0npma682y\na5efhQsfw++PRVOtrWYefPAsenrKtyBaSp9NpwObTUKSovh8Mn5/Ye9PuvFw6XqwZLJYShGVZxob\nl28lX6E9XCBRFHVImFHxk1gpVMzfntgXJLFgCgBrI3ttk+l69E+0ds7kkLNOxqb053X8RqMB1+TZ\neR9XKYidJ4mo7jhQoxDM7ncnEzU1o6oyulD/iEg+UciHevl4vahFFnAIz7yCtLQYuP76Y7juulcA\nuPLKBfh8lcts0QpZjvV0Wbt2By0tZtrbW/H7C7vbyCTkcSop5Oko9BY6XmGaT5fFVNWcKsMFSMu/\nPdXf07rvPU6+4JOYZk2BYO5CPnRMeguG9a8C2lej5o2kY0//cax55H8xNDRwqOPTNBl68tqE7M88\nBCI0bi6q1crOXbv46LHHmHzssUw86CDkwS6bo52aE3O9XuZzn5vJtGntyDJIkhVP9t5LVU9TU5hL\nLvnb0ELc1Vcfzfz5nXi9hS3wZprzWS1Cnm8EnolEQY+TTdhzKfop5ZdYaMys2DHvimXO5PpF5KUZ\nvyeMTTGj18CCyUaqzJbkz4sncjDPfO27uLbG/pbejzfwyZsvRQlp26hqIBDg+UsvBWDD3//Op+67\nj1Z9LXQbLz01J+YAJpMOv9+a/Yk1hN8fGBJygFde2cJxx3WS7x1gqha3yUIep1JCHp80BNr6n4nb\n0u/sYmCjm6BiQa+GaJqcfpG8VH9jLn9bog2TbV0AwH/AXJ7/yfXsWbuWcYcfzqn/cwM2pTevalTI\nXfBHpDf2WpD8u1DbtiMZe4Y+O+Gwgmuw1wpA7/qPCIclzQUm0D/8Dsa3bx90dAyNfBvN1KSY1yNG\no4kFCzp4/fUdAJx99izc7vw+oMkLnokkLnhmy14pNJc6FzGKE504n1AJvUpf5xJevuMOtr70Eq2z\nZ3PK9Vdh3ri6YumPmZBMJqKzTyTq8Qzr556K3Tv72bN2LQA733qLnV0fogS2D/1dubxv6WaljthX\nkpB711u5/BvL+Xh9H1f91xGc+SUju207aAu1YzHu4OirvstrP70LJImjr7oco+xLW6JfCPqdXdgP\n/gQtnZ30vP8+lvZ2xnZ21lSb2lIixLxK6OvT8V//tYSdO/tpaDBgMNjy6umSq09eKvLNNCj1jXHv\njh1sfeklAPa++y67tu5hqiQVPFs0H/L6UmtoYNv69Xz07LNMO+UUJnd2IrvTLx7qzUlVoI0tsGd7\n3usFubYXiAv5BtnIvx7awDtvx3rX/OiG1zj8mNOYduSOWNrjgeOZe6aeycf+Blm209wsIUW08z/j\nTdsMfX0sveUWfG43poYG9MIvH0K70kJB0fT26jEaWwmFGvF4cl/8zCbk6aLyVOQ7aMK3vKvkKWOS\nwUCgqYl+SSJkt8cS8LOgmIaP5dNbrYTay7eIm+u56HO5WHbttWx7+WVeuv56+gYGMj6/ubWVBd//\nPmMPPZRjr72WZrt9aF/5fInkStyKUwGdbvh598hJ78OMsYwbu47WJi+6HIaI5MPQ36aqKH192MLh\n2ADmiIahf40jIvM6IRchz0a+Pnm58n49JhNPXXQRQZeLloMP5tT/9/9iF3IGmhobWXjttXzwf//H\n1BNOYEx7OwwKZami80LORzBJvAMDA2BP0dh7EN3AAAcvWMBBixZhkWW8g10e883oySU6T6wgnR5e\niPXiaby7ejfrP+zj+z+Yz+zOd4eeN/T3pBn8UQiiQCg/hJjXOKl88lRCns1iKXTBs9QXmaTXs/2N\nNwgO3k73rFvHwJ49jMmSwSC7XMyYM4fpRx2FLhQiOiiacdHTmkK/2FqmTqV55kx6P/wQ+/TpjJk2\nDXoyp/RF4zZMUoOoQlI08xF020yJX/9pKkHvBCytG8DQn/fkqVypiQIhRQGbDQlQ+/oqvggrxLyG\nSWWvZBLydO1tq7lUXw2HaZoyZeixJMuYmprIJc1H9XqRvF6SjaXQuLmQRwpjJoqNHg19fXzyttvw\n+3wYzWb0KWah5sPQMeQg6LmMwoOkRXKrN/YPE4T2W1lafoZqQcglvZ4BvZ7lN92E3mLh2KuvxlRh\nQRdiXqOk88lhpJBn8smrWcgBUFVa29o44Wc/Y1dXF9NOPhmrBhfMMKHIwWtOFMZkb7oo0Rn0gBsA\nLcdRxb+w8hF0yC9HPTkKL/YzVBMibrMRURRUi4VnzzsP/+CX70s//jEnX389UpFfxsUgxLwGySVz\nJR+qVsgHkV0uJnV0MPmAA4h6PMMmqWtBNvFIlQNezYKTSC6WS7Yc9bgPnoqIehT+iAWdAgb6KHQY\nSy0IebipibV//Subly2j89xzmbhoER899RQAvt5eVFL2ZysbQsxriER/XIsFz2IoReZEJtRQCDVU\nor9NUQhYrXh7erC0tGD0eEhsVVnNApOJfNcHUn2pJwp88u8jOjMb1+7hlR99n4bx4znx/11Psym/\nEn6oDSEH2Lt9O2sffhiAN/7nfzj1N7/h42eeQTYYWHzDDeg8norOFRNiXiNkslXSCXkp88qh+i++\nXPFbrTz11a/i7+nBPGYMn77/fkz9+fVKqVZytVvSkemurX9A4R/f/h5qNIq7u5s3fvkAS85chHHG\n2Jy3XytCjiQRSSrokoHzHn8cJAmDBk2/ikWIeQ1QiJDHKcWU9nJH5aWmd/Nm/IMZJL59++jbupVx\njdoMBKkGEhd8tUzJVKMqasLnKxwMog4WZsVJtb+atKxUlbaZMxk3fz47V61i2qc+RUt7O7oKeuTJ\nCDGvcvIpCEok08JnYiZLvnnBZY2kZBlJUVCDqft8a4WltXXk4xLvs9wkNyLTQtSbmlSW3PpjXrr+\nR1jHjeOIb3wjljc/LnY+M/WbqRYBV41GwiYTErEc/kyTYPQ9PZx0/fWEJQl9JFLRxc5UCDFPQFFA\nkiRCoepo2lOMkKcj1dgvyG8UWjkuxGhDA3t27aJv0yYmHn00DYFAyUS90WDgtAcfpHvlSiYceSQ2\nRak7MYf0Tb0KFXYl6uHgRTOZ8MhvkKytyL29w1LzqkWw02I2s2nbNv591VUYbDaW3n03DT5fxqpS\nubcXQxkPMR+EmA9it4d4++3t+P1hjj56Mj09lX3LMuWQQ3Yhz2SvpJqik09Gi35nbh0BC0ZR2LFl\nC/++8koA3rJa+ewjj2AqkcBKXi9jFIWxS5YQDQRyymGvZZK7S+Zqm6VLz9SNmwv+fdodYJkImkw8\n/73voUYihH0+Xr75Zj75wx9ClUXcuSLEHGhqgoceepOnnloPwOzZH/KTnyylt7f8rWsy+eOQOVsl\nm5Cni8rzEfJ4w6NSCrpsMrHr7beHHoc8HvwDA5gyvKZoolGiGqc8JiIZDHiNRly7dtHQ1oYlFNI0\nr7xQ0r2HKd/fOiuvlyQJWVGIDEbiiqFaY+7cEI22AFmOsmrVjqHH7723F0kqfwOfbAudxQh5nFLO\ngpQMhtjcuyKJer1MO/FEZCUWa7R0dmLN0K+kFvAajTx58cU8d8kl/N/nP49Hqe44KpVYh8bNHfpX\nD+i9Xj517700TJhAy8EHc9y110INZzFV9yeqTAQCMhdfPIef/GQ5AF/4wqEEg+U7Ndmi8VzJJOSp\novJi+mgMu6B1OvyNjWxZvhxrezvtBxyAkqX7X0aiUewmE5997DECfX00jB2LvoYvMoD+7m5Cgz1V\nIoEAfZs3Y01aeNUcWUa122MdDz2eiqfOVR1+PxPsds64+25kQOrvhxJkf5ULIebELNK5c6fxyCOt\nhMNR7PZG+vvLU8ulhZBnK9mPkyoq12S+ZWMjz3z963h37wbgqCuvZNaCBbFqzULx+7ECVr2+LoYP\n2NrbkRWFaDgMkoRtwoTS2iyyjLehgReuuYagy8WSm2+mxWgsubUTttvp37MHQ0NDbCG52mc6BoPo\n6mSNRIj5IG63BDQhSaW/00rudFiskFeaoM83JOQA3W+8wezFi6vnQm5qIiLL6Cq4uGkxmVj64IPs\neecdbBMmYG5uhp0789qGZDQStVqRo9FYl75MNDXx0g9/SM/77wPw3Le/jeNPf0IpoZiHm5pYduut\ndL/+OgCn3n0345qaSle5KxiG8MzLTGIkHv+XjXR+ea4+eSZyHSGWCZPRyKTFi2MPJInZ5523v01r\nhQnZ7ax46CGe/OY3+XDVKlSbrSLH4Xa7+ftFF7Hqzjt54bLLWPfkk8jWPObYms3s6uvj7z/4ASse\neohgc3PWl0QTsn+i4XDhpeayTKi5Ga/FQjTD2oXf7x8ScoB1f/4zcoXO92hEiHkZ0cobB22EPN4h\nr1hB1/X3s+jyyzn9/vs567HHaBs7tuSFPrkdmI7ud9/lo6efxrNzJ6/99Kf0V+huQRqcjhQdjFJl\nWQUYhcgAAAujSURBVM6rXapPp+Mf3/kO+9atY/1TT/HBc8+N6Gc+DJeLxTfcgHnsWBSLhVN+8Qv0\nBWbrBJqaePqSS/jLeeex7PbbCaf5IjFaLJjH7i/ln3DMMaglzBASDEfYLGWiECHP1gVRi1L9TB3x\n8kHp66NFUSDLQOKyIklEkmwFNRwGufwxjFWv57gbbmDlL35By0EHMXPpUqJZhlAkEgkGh5XOe/fu\nRcr0d4TD2ICzHnwQVVXRe72FCauisP2tt3Bv3w7Atldeoe/zn6fVaBzxVP3AAJ++7z62rVyJtb2d\nsRMmEBUzOsuGEPMSU2g0Xu4uiHVJOMzEI46gfd48dq9ZwyFf+AKNdvvQ+LhyIrndTJs9mykPP4ys\nqkh5CDnEPPfDv/Ut3vr1rzGPHcthF16ImuUuQw2H0e2LFfMUbLFEIphbWob9yNDQAKl88EgEU18f\nM2bNQo1EQAh5WRFiXkKqRcjTFQuNBgw9PZx8441EZBklGESqgJAP4fUWnDkhDwww64QTmHHyyeh0\nOpT+fkgRHWuOqjJ24kSOuvxytq5Ywaxzz8Wm16cW8/hLxIJnRRBiXiKKEfJSRONaFwuVvKRfQ+Te\n3rpYHJLdbsog3yNQXC5mLVzIrBNPJChJuHt6MNvtKHWQMlpPCDHXmGIWOXMV8nzSEUsRlcdL+gWj\nh6jbjU+n4+mvfAV/by/t8+Zxwo03Fj2zVKAd9RCwVA1aZqtkI5fFz7iQl7KEXzA6kPR6tr3xxtDM\ny12rVzOwa1eFj0qQiIjMNUALES90fmc2akrI7XaikoTs9VZFEyrBftRwGFtHx/4fSBLGxsbU2UuD\naZiVnFQ/GhFiXiTFCrnIWokRbGlhxR130L95M0dfeSXjWltFjnI1oaq0TpjAohtvpHvlSg464wwa\nUqRGhpqb2fXBByDLtM+YIWyYMiLEvEC0jMYrLeRa9GcpBrmxkbf/9Ce2LFsGwPPf/S7n/O//Ys78\nMkGZUVwupnV2cuDcuUTc7hGtEVS7nVfuuIOt//kPAAd++tMs/NKXaroTYS0hPPMCWLUj1ve4HoRc\ni4KhYpFkmWBCzrQajcYaUtUaOh1yY2OsFXCVIun1SC0tyAW2FFb9fiJ9fSnHq0V0OrpffXXo8fYV\nK4ho0BJZkBtCzPOga7eZrt1m5s83Fi3k8yaH8hZyj3FDzh0Sa4lIfz/zLr4Y67hxIEkcc801WKq8\n3/cIzGZ6o1Fe/eMf2bRxI5Ey9ySJ2mwM6HT0yzLRNMOoJZOJfcEgf7/hBl7Jsb9LPuiCQQ4+77yh\nxwefd16suZmgLNTYFVMZErscliNTJRX59mJJHNqciXwHOpcEVcXsdnPmffcRVVWUQACpShp15YpH\nknjmK19BjUT44C9/4eQ776Sjubk8/bEtFj5+801evfVWAOZfcgmzjj8eKalC1G8w8OxFFxEJBtmz\nZg2GhgYWnHMOEY1sEMnlYs5nP8uUxYuRZBl7c7OwWMqIEPMMlELEi8laqZaIvCQ55pEIun37qNWb\n8sDAQKyEfZD+zZsZ39ZWloEQEaORrgceGHrcdf/9HHTKKShJYh4OhYgkNEDz7N6NqnGfGl1/P2Pi\nd1VCyMuKEPMkShWF5zKMudqJi3itVH6WE1trK21z57K7qwuDzcbkY49FLVNvEp2q0nbYYWx+4QUA\nWg85BDnFF79Fp+OI736XN3/xCwyNjcz/+teJCsGtG4SYo+2wiFRUy2KnFgghT42+r4+TbrwRr8uF\nsaEBk89XeHOrfOnrY+H3vsf4BQuIhsMccNxxyCkaeUluNwcvWsS0xYvRKQoGt3tYJ0ZBbTNqxbzU\nAg71EY0Lckfp66MRoL+/fEI+iL6nh5mHHAKShJqhI6PkdmMa/H9R0lNfjBoxL4d4p6ISIj6auySO\nZqpiIIigYtSlmCcLN1QuC6XciH4sAsHopC7EvBrFW6teK4WMhyuVkJuPnQtiEVQgqEpqWsyrIf87\nGS19ci3mfGpNvP1tLfUzFwhGA0WJucPhOAe4CTgYONLpdL6lxUHlxIRG5k4o295yQsuslWoU8jii\nn3kNoijobDbUcFjM5axTio3M1wKfBX6jwbHULPUejQtqHJOJvlCI1XfeScuBBzLrtNPQiylBdUdR\nYu50Oj8AcDgcpWnGXUNombVSiJCLhU9BOvwGA3+7+GIigQBbly1DZzRy2PHHE80yEFpQW4hGW3WA\nFkIuK2u0OhxBlRH2+4kktBXo37QJSV8da0wC7cgamTscjn8CiSohEas3uM7pdD6d644cDscSYEn8\nsdPpxFZEZzmLuXJdPBS9Hsvg/7/VEMUImM3FryUPKB9hwIg5z/scg2ygIzoeCr0+5yxEef9N0Fuy\nP3eQqMGI3pL785NRFAVLEa8X5H4OdRYLs88/n3f/+Ef0VitzL7oIYzgM4vyX/XNo0aibpsPhuCnh\n4TKn07lMUjUY7eRwOF4ErsxzAVTt7u4ueJ/Pv1uJOeUxLGYzrxr2j8vSyieHwi2WYu2VfDsn+pYX\nl81isVjwJg03EORHPucwarPhC4XQm0wYvV5RYDRIuT+HxlNOKXob48ePh1hQPQwtUxNHnW9eaZ+8\nksRzzkV6Ym0gu1xYAfx+UcZfpxTlmTscjjMdDsdW4GjgGYfD8aw2hyUQCASCfCg2m+VJ4EmNjqVm\neKshChrdpSZaLAKBQFAoNV0BWm7i+eRG6qswqBrmgAoEguIQYp4jidWdZrOCz1fc9rSa5alVh8SK\njo0TCARFI8Q8C9XakzxRxEWhkEAgEGKeA1qLuFY+uRBxgUAQR1SAlplq8ckFAkF9ISLzDGjVkzyO\nVj65QCAQJCPEPAXV6pMLBAJBOoSYJ6FlT3KBQCAoF0LMBxHRuEAgqGWEmFOeaFzLSk+tcssFAkH9\nMKrFvFzRuJYZLNUyhKLYrokCgUBbRrWYQ+ktlXoUcoFAUH2M2jzzNU1S2bxxLdMRq0HIRVQuEFQf\no1bMy0EtdETMt8mWb3lXiY5EIBAUw6izWbQuBEpHLVR6xoU83yZbIioXCKqPUSXm5cohr2chFwgE\n1YkmM0ALpKgZoJXEZrPhcrkqfRg1jTiHxSPOYfHU4jlMNwNUeOYCgUBQBwgxFwgEgjpAiLlAIBDU\nAULMBQKBoA4QYi4QCAR1gBBzgUAgqAOEmAsEAkEdIMRcIBAI6gAh5gKBQFAHVLQCtFI7FggEghqn\nqipApVr953A4fljpY6j1f+IcinNYDf9q+ByOQNgsAoFAUAcIMRcIBII6QIh5YSyr9AHUAcsqfQB1\nwLJKH0AdsKzSB6AVlVwAFQgEAoFGiMhcIBAI6gAh5gKBQFAHjKqxcVricDjOAW4CDgaOdDqdb1X2\niGoDh8OxFLiTWCDxoNPpvK3Ch1RzOByOB4HTgV1Op/OwSh9PreFwOCYCjwDtQBS43+l0/qKyR1U8\nIjIvnLXAZ4H/VPpAagWHwyEDvwJOBWYD5zscjs7KHlVN8hCxcygojDBwhdPpnA0cA1xSD59DIeYF\n4nQ6P3A6netJk8AvSMlRwHqn07nZ6XSGgD8BZ1T4mGoOp9P5CtBb6eOoVZxO506n09k1+P9uYB0w\nobJHVTxCzAXlZAKwNeHxNurgIhLULg6HYyowF3i9wodSNMIzz4DD4fgnMV8tjkSsp8x1Tqfz6coc\nlUAg0AKHw9EA/AX43mCEXtMIMc+A0+k8udLHUGdsByYnPJ44+DOBoKw4HA6FmJD/3ul0/rXSx6MF\nQsy1QfjmubESONDhcPz/du4QR4EoCINw3WHxHASDxaE6cBUMFjvBg0P0CdCcAMUVCI4b7ApIUCQb\nIHlMp77k+V+V6pkhcAZmwLztpN56+sMl/csGOGVm13rIp/gF6IsiYgqsgQFwBY6ZOWm76vvdTxM7\nHqeJq8aTeicidsAY+AEuwDIzt01H9UhEjIADt4u03/tbZOa+6bA3GXNJKsBrFkkqwJhLUgHGXJIK\nMOaSVIAxl6QCjLkkFWDMJakAYy5JBfwBtFrIQ8up/hsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_range = np.linspace(X.min(), X.max(), 100)\n", "xx1, xx2 = np.meshgrid(x_range, x_range)\n", "\n", "Y = knn.predict_proba(np.c_[xx1.ravel(), xx2.ravel()])[:,1]\n", "Y = Y.reshape(xx1.shape)\n", "\n", "plt.contourf(xx1, xx2, Y, alpha=0.3)\n", "plt.scatter(X[:,0], X[:,1],c=y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Регрессия\n", "Загрузите простой [датасет](https://www.dropbox.com/s/ow82e7paghozork/kengo.csv?dl=0) с измерениями носов(?) кенгуру. \n", "*Reference: Australian Journal of Zoology, Vol. 28, p607-613*" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data = np.loadtxt('kengo.csv', skiprows=1, delimiter=',')\n", "X = data[:,0].reshape(-1,1)\n", "y = data[:,1]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nkmEqAiIiGfb/RnjrR3DJgqkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(X, y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.neighbors import KNeighborsRegressor" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='euclidean',\n", " metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n", " weights='uniform')" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "knn = KNeighborsRegressor(n_neighbors=5, weights='uniform', metric='euclidean')\n", "knn.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x_range = np.linspace(X.min(), X.max(), 100).reshape(-1,1)\n", "\n", "y_hat = knn.predict(x_range)\n", "\n", "plt.scatter(X, y)\n", "plt.plot(x_range, y_hat, 'r')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Задание 1\n", "## Регрессия\n", "\n", "Обучите метод ближайшего соседа на данных о стоимости апартаментов в Бостоне.
\n", "С помощью кросс-валидации определите оптимальное количество ближайших соседей и функцию расчета весов ближайших соседей" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.datasets import load_boston\n", "data = load_boston()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Boston House Prices dataset\n", "\n", "Notes\n", "------\n", "Data Set Characteristics: \n", "\n", " :Number of Instances: 506 \n", "\n", " :Number of Attributes: 13 numeric/categorical predictive\n", " \n", " :Median Value (attribute 14) is usually the target\n", "\n", " :Attribute Information (in order):\n", " - CRIM per capita crime rate by town\n", " - ZN proportion of residential land zoned for lots over 25,000 sq.ft.\n", " - INDUS proportion of non-retail business acres per town\n", " - CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n", " - NOX nitric oxides concentration (parts per 10 million)\n", " - RM average number of rooms per dwelling\n", " - AGE proportion of owner-occupied units built prior to 1940\n", " - DIS weighted distances to five Boston employment centres\n", " - RAD index of accessibility to radial highways\n", " - TAX full-value property-tax rate per $10,000\n", " - PTRATIO pupil-teacher ratio by town\n", " - B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n", " - LSTAT % lower status of the population\n", " - MEDV Median value of owner-occupied homes in $1000's\n", "\n", " :Missing Attribute Values: None\n", "\n", " :Creator: Harrison, D. and Rubinfeld, D.L.\n", "\n", "This is a copy of UCI ML housing dataset.\n", "http://archive.ics.uci.edu/ml/datasets/Housing\n", "\n", "\n", "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n", "\n", "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n", "prices and the demand for clean air', J. Environ. Economics & Management,\n", "vol.5, 81-102, 1978. Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n", "...', Wiley, 1980. N.B. Various transformations are used in the table on\n", "pages 244-261 of the latter.\n", "\n", "The Boston house-price data has been used in many machine learning papers that address regression\n", "problems. \n", " \n", "**References**\n", "\n", " - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n", " - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n", " - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n", "\n" ] } ], "source": [ "print data['DESCR']" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = data.data\n", "y = data.target" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.cross_validation import KFold\n", "from sklearn.cross_validation import cross_val_score\n", "from sklearn.preprocessing import StandardScaler" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import mean_absolute_error" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [], "source": [ "cv = KFold(X.shape[0], n_folds=3)\n", "\n", "scores = []\n", "for k in xrange(1,20):\n", " cv_score = []\n", " for train_idx, test_idx in cv:\n", " # Нормализация\n", " scaller = StandardScaler()\n", "\n", " X_train, y_train = X[train_idx], y[train_idx]\n", "\n", " X_train = scaller.fit_transform(X_train)\n", "\n", " # Обучили knn\n", " knn = KNeighborsRegressor(n_neighbors=k, weights='distance')\n", " knn.fit(X_train, y_train)\n", "\n", " # Предсказываем\n", " X_test, y_test = X[test_idx], y[test_idx]\n", " X_test = scaller.transform(X_test)\n", " y_hat = knn.predict(X_test)\n", "\n", " cv_score.append(mean_absolute_error(y_test, y_hat))\n", " scores.append(np.mean(cv_score))" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(np.arange(1,20), scores)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Классификация\n", "Загрузите датасет с новостными текстами. Выберите 2 категории, разбейте документы на слова (n-gramm'ы), \"обучите\" метод ближайшего соседа для задачи категоризации текстов по их содержанию.\n", "\n", "Используйте косинусную мету близости" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.datasets import fetch_20newsgroups\n", "from sklearn.feature_extraction.text import CountVectorizer\n", "from sklearn.feature_extraction.text import TfidfVectorizer" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": true }, "outputs": [], "source": [ "news_docs = fetch_20newsgroups(subset='all', \n", " categories=['alt.atheism', 'comp.graphics'])" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = news_docs.data\n", "y = news_docs.target" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import roc_auc_score" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [], "source": [ "cv = KFold(len(X), n_folds=3)\n", "\n", "scores = []\n", "vect = CountVectorizer(stop_words='english')\n", "X_bow = vect.fit_transform(X) \n", "for k in xrange(1,40):\n", " cv_score = []\n", " for train_idx, test_idx in cv:\n", " # Векторизация уже\n", " X_train, y_train = X_bow[train_idx], y[train_idx]\n", "\n", " # Обучили knn\n", " knn = KNeighborsClassifier(n_neighbors=k, weights='uniform', algorithm='brute',\n", " metric='cosine')\n", " knn.fit(X_train, y_train)\n", "\n", " # Предсказываем\n", " X_test, y_test = X_bow[test_idx], y[test_idx]\n", " y_hat = knn.predict_proba(X_test)\n", "\n", " cv_score.append(roc_aplt.plot(np.arange(1,40), scores)uc_score(y_test, y_hat[:,1]))\n", " scores.append(np.mean(cv_score))" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEECAYAAAAyMaOFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2UVPWd5/H37YYGGkoeFMEGAYGoQFQ0Dieb7JwhYxKN\nycQMZ/cbzdmsCUbdk5DjcbKZE93NQmaTHcnsuOo6mRmfsuZp9JuMeTo7mzGu2+ZssklAEUQQURSB\npnkQxX6iabp++8e9DWXbdNdT962Hz+ucOlV1696qb93urk/9fr97fx2FEBARERmsIe0CRESkMikg\nRERkSAoIEREZkgJCRESGpIAQEZEhKSBERGRI4/JZycyuAu4iDpQH3X39oMenAQ8Bi4AeYLW7b0se\nuwX4XLLqA+5+d7J8LXAjcDB57HZ3/0Vpb0dERMplxBaEmTUA9wJXAsuA68zswkGr3Q5scvdLgOuB\ne5JtlwE3AJcDy4GPmdnCnO3udPfLkkte4WBmK/NZL22qs7yqoc5qqBFUZ7nVcp35dDGtAHa6+253\n7wMeAa4ZtM5S4EkAd98BLDCzmcAS4Hfu3uvu/cBTwKqc7aJCCwZWFrFNGlamXUCeVqZdQJ5Wpl1A\nHlamXUCeVqZdQJ5Wpl1AnlamXUCeVha6QT5dTHOAPTn39xKHRq7NxB/8vzazFcA8YC6wFfi6mU0H\neoGrgQ05260xs08DG4EvufvRQt+AiIiMjnINUt8BTDezZ4AvAJuAfnd/AVgP/BL4p4HlyTbfAha6\n+3KgHbizTLWIiEgZRCPNxWRm7wXWuftVyf2vAGHwQPWgbV4BLnL3zkHLvwHscfe/G7R8PvBzd794\niOdaSU7TyN3XjvCeRERkCGb2tZy7re7eOtz6+XQxbQAWJx/i+4FrgesGvehUoNvd+8zsRuCpgXAw\ns5nufsjM5gF/Crw3WT7b3duTp1hF3B31DskbyH0Ta9va2vIoO12ZTIaOjo60yxiR6ixeeP0g4Zn/\nR3jmN9C2h/HLLuXEpGaY2AwTJ8GkSTCxmWhifE3TBMKBffDKi4RXdsLBfdAyn+i88+G884nOexec\n3ULUMLpHnw+1L0NPN7z2MmH3S7B3NzQ0wISJQ16iCZNg2gyY1RK/tzGssxJVS50tLS24+7pCthkx\nINy938zWAI9z6jDX7WZ2M3FL4j7iweiHzSwLPE985NKAfzSzGUAf8Hl3fytZ/k0zWw5kgVeBmwsp\nXKRQIQTIZuFEX3zpS65PnID+fpg4EZqnwMRJRNHQx0+EA22EZ35DePo38PpBoktW0HC1wZKLmTx9\nxogfFNH5y+APPxw/V+8x2P0y4dUXYcsGsj/9PnR2wDlziVrmQcs8opZzoWUezJh52poK3g/Heggv\nPk947SV49aU4FI4chrkLiOYvhsVLIIqg99ipy1tvnryd7T0GbxyGg20w5QyYPZdo9tzkeg6cMxem\nzihbvZKeEbuYKlBQC6J0oa+P8LtWJkYRxxoaiSY1w8nL5Ph6YnP8TbKvD/p64fhx6Mu5HD8O/X3Q\n0AiN46CxEcaNO3W7cRyMGw9Tp5f8rbjQ/Rn6++HVnYTnNxG2bYI9u+L3QQTjk7pOXpKae3ugqyt+\nr82T47BILtHkKYT9e6DjKNGl7yW67H1w/ruJGhuLrnHIurs6Yf9rhLbXoG1PfL1/D/T0xMExe07S\nGmmCpgkwPrlO7kfjJxCO90LnWycvYeB2R3J9vDcOn/mLYcFiovmL4Jx5b3svedWa7YfXD0H7PkL7\nXmjfG1/v3ws93XHgNk2M65swMa5xQrwsmjABZp5zMgg5+5x3vH6l/w0NqJY6W1paoMAjRxUQo6SS\nf2nClg1kH30AZs6mqeVc+t46Gncx9HTFH0Q9XfEf+LFuCCH+EB3fFP+Bj8+5NDXFj/X3Q3/yLfzE\niVO3+0/EH0YNDUTvvozoosthyXKi5skF15zP/gyHDxC2bSI8/yy8sCX+1r1sOdHSS+G88+MP0Dw+\nBMOJE/E+6OqE7vgSujqJZsyERRcQNQz9HKP5M4+DYw/hYFv8Tf748XjfHu9Nwjq+HY73EjVNiL/Z\nJ5cocwZMmRrfz2TIzJ5DZ3f3qNR5st7eXjietD6O90JvUuvx+H441gMH2pIgfA2OHom71062nObR\nPPNsug8fJHR1JT+Hrrf9PDjRRzRzdk4LZg6cOfO0P5/RUsl/67kUEBWkEn9pQvs+sv4gHNxPwyc/\nR3TRe4atM4QAIZT87T8c3E947mnC1o2wc3v8rfWi9xC9+3JoOTevrohMJsNbR47AW2/Am0fgzSOE\nN4/A0dfhjSOEXTvgWDfR0uWw9FKipcuJpk4vqe5CVeLPfCiVWGfo7YX2PYR9cWCEttdoPN5L/8RJ\n8ReK5ilva9VFk6dA4zjCofZTLZf2vXEL6eyWU4HRNBGy/fEXlpCNr7P9cVdjNhvfDgABsiG+HvhM\nHLgen7R8JkxIWmtxqyhKljXPnkN3c6aoLz5jSQFRQSrpjzD0dBP+56OEXz9BdNW/IrriY0TjxgNj\nX2fo7YUdWwjPbSRs2Rj3dZ97XvzHONDyyGbffrvvOFHHUUJ3F0ydBlNnwLQZRNNmnLp97sK4D32U\nB3iHU0k/8+HUcp0nWybte6F9X9y6amyMu0obcq4bk+uoIf7IHLgmin8nB24T4q7JIVpC4XgvHDtG\nQ+dRsgf2x12VZ82KWzVnzYKZs4jOmg0zzoq7bZOuwbTGZhQQFaQS/ghDNkv47f8hPPZdomWXEq36\nt+/4Vp1mnSEEaNsDB/bmjGM0xNcDf8zJ+MCUOefSGaJUA2AklfAzz4fqLK9MJsNbbyXjO4fa41bN\n4QNw+EB8+43DSZdtT9xiOXmUW84RbwOhEXJaMQMtmxDix0+O7TXG3Wi5Y32ZM2j4xL8Zts5iAiKv\nyfqk8oUQ4iNgDie/oIfaCZt/DyHQ8PnbiBZekHaJ7xBFEcyZF19G0JDJEFXBh4XUpyiKIDMVMlOH\n/VsLJ/rioBgIjJ6u+DoE4tYLSVhEb2/RhHBqXC/bHx+EcXKsrz8eDxwFCogqE7JZ2L+XsOuFuO/1\nUDscOgCH2+Nv3TNnE501C2bOpuHDn4DL3lfR37pF6kk0bjxMGR8fMFDK85SpnpEoICpc6OqAXS8S\ndr0QD8S+shMyZ8TfUuYuoGHhBXBW3OcZTZ6SdrkiUkMUEBUovH6Q8E8/JLy4NT5iZ/5iokUX0vDH\nH4OFFxBlpqZdoojUAQVEBQl9xwn//BjhiZ8TfeCjNNz05zBn3pgf1y0iAgqIihE2byD76P1xt9F/\nvDMeRxARSZECImXhYBvZRx6IT1771L8jevdlaZckIgIoIFITenvjcYZf/S+iK1cRff62kyeviYhU\nAgVECsKO58g+dFc88PzVu4lmnJV2SSIi76CAGGPZX/0z4Sffo2H1repOEpGKpoAYIyHbT/jhtwnP\nPU3Dn98RT9ssIlLBFBBjIPR0k73vr6D/BA23/ZVOaBORqqCAGGXhUDvZe79O9K6lRNfeRDROu1xE\nqoM+rUZR2LmN7N+vJ7r6XxN94KP6F4wiUlUUEKOkt/UXZL//dxqMFpGqpYAosxAC4Sffo3fjr2n4\n8n8hOufctEsSESmKAqKMQgiERx8g7NxG5uvfoivSNNsiUr30CVYmIZslfP9vCbt20PCl/0zDGZpx\nVUSqm1oQZRCy/YTv/A3hQBsNt/4F0aTmtEsSESmZAqJEob+f8D/uJrzxOg23rCWaOCntkkREykIB\nUYJw4gThwTsJ3V00fPE/EU2YkHZJIiJlo4AoUujrO3V29Jr/QDR+dP5puIhIWjRIXYTQd5zs3/4l\nRNDw+dsUDiJSk9SCKFDI9pO99xtEk6cQrb5VU2eISM1SC6JQL22Ho0eIbvgzhYOI1DQFRIHClg1E\nl76XqLEx7VJEREaVAqJAYfMGootXpF2GiMioU0AUIBxsg54umL8o7VJEREadAqIAYcsGoosuJ2rQ\nbhOR2qdPugKELRuJLvmDtMsQERkTCog8he4ueOVFWLI87VJERMaEAiJP4flNsHgp0YSJaZciIjIm\n8jqQ38yuAu4iDpQH3X39oMenAQ8Bi4AeYLW7b0seuwX4XLLq/e5+T7J8OvAoMB94FTB3P1rqGxo1\nWzYQXazuJRGpHyO2IMysAbgXuBJYBlxnZhcOWu12YJO7XwJcDwyEwDLgBuByYDnwJ2a2MNnmK8AT\n7n4B8CRwW+lvZ3SEbD9h60YFhIjUlXy6mFYAO919t7v3AY8A1wxaZynxhzzuvgNYYGYzgSXA79y9\n1937gaeAVck21wAPJ7cfBj5R0jsZTbt2wLQzic6cmXYlIiJjJp+AmAPsybm/N1mWazPJB7+ZrQDm\nAXOBrcAfmtl0M2sGrgYG/knzLHc/AODu7cDZxb6J0aaT40SkHpVrMqE7gLvN7BngOWAT0O/uL5jZ\neuCXQOfA8tM8RxhqoZmtBFYO3Hd3MplMmcrOz1tbn6b55i8zroDXbWpqGvM6i6E6y6caagTVWW7V\nUieAma3Ludvq7q3DrZ9PQOwjbhEMmJssO8ndO4DVOUW8AuxKHvs28O1k+Tc41RppN7NZ7n7AzGYD\nB4d68eQN5L6JtR0dHXmUXR7hUDvZo2/QffYcogJeN5PJMJZ1Fkt1lk811Aiqs9yqqU53X1fINvl0\nMW0AFpvZfDNrAq4Ffpa7gplNNbPxye0bgafcvTO5PzO5ngf8KfCDZLOfAZ9Jbl8P/LSQwsdK2LJR\nZ0+LSF0a8VMvGVxeAzwOPA884u7bzexmM7spWW0JsNXMthMf7XRLzlP8o5ltJQ6Az7v7W8ny9cCH\nzGwHcAVxN1XFCVt+r7OnRaQuRSEM2fVfyUJbW9vYvNCxbrL//rM0/NdvE01sLmjbamp2qs7yqIYa\nQXWWW7XU2dLSAhAVso36TYbz/LOw6MKCw0FEpBYoIIYRdPa0iNQxBcRphGw/4bmNRBdfnnYpIiKp\nUECczis7ITOVaObstCsREUmFAuI0wpYNOnpJROqaAuI0NP4gIvVOATGE8PpBePMILLwg7VJERFKj\ngBhC2LKR6N3vIWpoTLsUEZHUKCCGoLOnRUQUEO8QjvXAzu2w9NK0SxERSZUCYrDtm2Hh+UTNk9Ou\nREQkVQqIQcKO54iWLE+7DBGR1CkgBgkvbSdavCTtMkREUqeAyBF6j8H+PTB/UdqliIikTgGR69WX\nYM58oqYJaVciIpI6BUSO8LK6l0REBiggcoSXthMtUkCIiIAC4qSQzcKuHbBI02uIiIAC4pQDbTBx\nEtG0M9OuRESkIiggEuFldS+JiORSQAx4+QVYfGHaVYiIVAwFRCK8/ALRIgWEiMgABQQQujrgyGGY\nsyDtUkREKoYCAuKjl857F1Gj/v+DiMgABQQQXnpBJ8iJiAyigGDgCCaNP4iI5Kr7gAgnTsRzMOn/\nT4uIvE3dBwT7XoUzZxI1T0m7EhGRilL3ARFe0uGtIiJDqfuA4OXtoDOoRUTeoe4DQifIiYgMra4D\nIhw5DMePwayWtEsREak4dR0Q7HoBFi0hiqK0KxERqTh1HRBx95LGH0REhqKA0PiDiMiQxuWzkpld\nBdxFHCgPuvv6QY9PAx4CFgE9wGp335Y8ditwA5AFngM+6+7HzWwtcCNwMHma2939F6W/pfyE3l7Y\ntxsWLB6rlxQRqSojtiDMrAG4F7gSWAZcZ2aDv3bfDmxy90uA64F7km1bgC8Cl7n7xcSBdG3Odne6\n+2XJZczCAYDdO2HOfKKmCWP6siIi1SKfLqYVwE533+3ufcAjwDWD1lkKPAng7juABWY2M3msEZhs\nZuOAZqAtZ7vURofVvSQiMrx8AmIOsCfn/t5kWa7NwCoAM1sBzAPmunsb8NfAa8A+4E13fyJnuzVm\n9qyZPWBmU4t8D0VRQIiIDK9cg9R3ANPN7BngC8AmoD8Zm7gGmA+0AFPM7FPJNt8CFrr7cqAduLNM\ntYwohBCfQb1QASEicjr5DFLvI24RDJibLDvJ3TuA1QP3zWwXsAu4Ctjl7keS5Y8B7wN+4O6Hcp7i\nfuDnQ724ma0EVua8FplMJo+yT6+/bQ+dE5s5Y/55JT3PcJqamkqucyyozvKphhpBdZZbtdQJYGbr\ncu62unvrcOvnExAbgMVmNh/YTzzIfN2gF50KdLt7n5ndCPzK3TvN7DXgvWY2EegFrkieDzOb7e7t\nyVOsArYO9eLJG8h9E2s7OjryKPv0sluehvPOp9TnGU4mkxnV5y8X1Vk+1VAjqM5yq6Y63X1dIduM\n2MXk7v3AGuBx4HngEXffbmY3m9lNyWpLgK1mtp34aKdbkm1/D/yIuMtpM/Gg9H3JNt80sy1m9izw\nR8CthRRekpe3g/6DnIjIsKIQQto1FCq0tbWNvNYw+teuoWH1rUTzF5WppHeqpm8VqrM8qqFGUJ3l\nVi11trS0QIFHjtbdmdShqxNePwRzF6RdiohIRau7gGDXDliwmKixMe1KREQqWt0FRHh5uyboExHJ\nQ/0FxK4dRIsuSLsMEZGKV3cBwesH4exz0q5CRKTi1V9AdHdC85S0qxARqXh1FRAhBOjuUkCIiOSh\nrgKCYz0wvoloXF7/BkNEpK7VV0B0d8JktR5ERPJRXwHRpfEHEZF81VdAaIBaRCRvCggRERlSXQVE\n6Ookmjw57TJERKpCXQWEDnEVEclffQVEV4cCQkQkT/UVEDrMVUQkb3UWEOpiEhHJV10FROjqJFJA\niIjkpa4CIj7MVUcxiYjko/4CQmMQIiJ5qb+AUBeTiEhe6iYgNNW3iEhh6iYgNNW3iEhh6icg1L0k\nIlKQ+gmILh3BJCJSiPoJCB3BJCJSkPoKCHUxiYjkrW4CQmdRi4gUpm4CQoe4iogUpo4CohP0z4JE\nRPJWXwGhFoSISN7qJyC6FBAiIoWom4AI3Z1EOsxVRCRvdRMQGqQWESlM/QREl06UExEpRP0EhAap\nRUQKktfUpmZ2FXAXcaA86O7rBz0+DXgIWAT0AKvdfVvy2K3ADUAWeA74rLsfN7PpwKPAfOBVwNz9\naDne1GAhBOhRF5OISCFGbEGYWQNwL3AlsAy4zswuHLTa7cAmd78EuB64J9m2BfgicJm7X0wcSNcm\n23wFeMLdLwCeBG4r/e2cxrEeGDdeU32LiBQgny6mFcBOd9/t7n3AI8A1g9ZZSvwhj7vvABaY2czk\nsUZgspmNA5qBfcnya4CHk9sPA58o+l2MRN1LIiIFyycg5gB7cu7vTZbl2gysAjCzFcA8YK67twF/\nDbxGHAxvuvv/TrY5290PALh7O3B2sW9iRJrqW0SkYOUapL4DmG5mzwBfADYB/cnYxDXE4wwtwBQz\n+9RpniOUqZZ30lTfIiIFy6dTfh9xi2DAXE51EwHg7h3A6oH7ZrYL2AVcBexy9yPJ8seA9wE/AA6Y\n2Sx3P2Bms4GDQ724ma0EVua8FplMJo+yTzke+jl+xjSmFLhdKZqamgquMw2qs3yqoUZQneVWLXUC\nmNm6nLut7t463Pr5BMQGYLGZzQf2Ew8yXzfoRacC3e7eZ2Y3Ar9y904zew14r5lNBHqBK5LnA/gZ\n8BlgPfHA9k+HevHkDeS+ibUdHR15lH1K9vAhaJpIoduVIpPJjOnrFUt1lk811Aiqs9yqqU53X1fI\nNiN2Mbl7P7AGeBx4HnjE3beb2c1mdlOy2hJgq5ltJz7a6ZZk298DPyLuctoMRMB9yTbrgQ+Z2Q7i\n4LijkMILorOoRUQKFoUwel3/oyS0tbUVtEH2x9+F8eNp+Ni1I69cJtX0rUJ1lkc11Aiqs9yqpc6W\nlhaIv6TnrT7OpNZhriIiBauPgNBU3yIiBauLgNBU3yIihauLgNAgtYhI4eojINTFJCJSsPoIiO5O\nmKypNkREClHzAaGpvkVEilPzAUFvDzSOIxo3Pu1KRESqSu0HRJdaDyIixaj9gNBMriIiRamPgND/\nghARKVjtB4QOcRURKUrNB0R8FnV1zNUuIlJJaj4gNFGfiEhxaj8gurp0kpyISBFqPyDUghARKUrt\nB0RXhwJCRKQINR8QmupbRKQ4NR8QmupbRKQ4tR8QOg9CRKQotR8QmupbRKQoNR0QmupbRKR4NR0Q\nmupbRKR4tR0QmupbRKRotR0QmupbRKRotR8QmupbRKQotR0QOsRVRKRoNR0QobuTSAEhIlKUmg4I\njUGIiBSvtgNCRzGJiBSttgNCU32LiBSt9gNC02yIiBSlpgNCg9QiIsWr6YDQYa4iIsWr7YDo7tJR\nTCIiRarxgFALQkSkWOPyWcnMrgLuIg6UB919/aDHpwEPAYuAHmC1u28zs/OBR4EARMBC4Kvufo+Z\nrQVuBA4mT3O7u/+iDO8JSKb6VkCIiBRtxIAwswbgXuAKoA3YYGY/dfcXcla7Hdjk7qvM7ALgb4AP\nuvuLwKU5z7MXeCxnuzvd/c7yvJVBeo/FU32P11TfIiLFyKeLaQWw0913u3sf8AhwzaB1lgJPArj7\nDmCBmc0ctM4HgZfdfW/Osqi4svOg1oOISEny6WKaA+zJub+XODRybQZWAb82sxXAPGAucChnnU8C\n/zBouzVm9mlgI/Aldz9aQO3D69I0GyIipchrDCIPdwB3m9kzwHPAJqB/4EEzGw98HPhKzjbfAv7C\n3YOZfR24E7hh8BOb2Upg5cB9dyeTyYxYUF/IciwzNa91R0NTU1Nqr10I1Vk+1VAjqM5yq5Y6Acxs\nXc7dVndvHW79fAJiH3GLYMDcZNlJ7t4BrM4p4hVgV84qHwGedvdDOdvkti7uB34+1Isnb6A1Z9Ha\njo6OEYsOhw+SnTCRfNYdDZlMJrXXLoTqLJ9qqBFUZ7lVU53uvq6QbfIZg9gALDaz+WbWBFwL/Cx3\nBTObmrQSMLMbgafcvTNnlesY1L1kZrNz7q4CthZS+Eh0FrWISGlGbEG4e7+ZrQEe59RhrtvN7GYg\nuPt9wBLgYTPLAs+T01VkZs3EA9Q3DXrqb5rZciALvArcXIb3c4qm+hYRKUkUQki7hkKFtra2EVfK\n/vh7MG4cDX9y7RiU9E7V1OxUneVRDTWC6iy3aqmzpaUFCjxytHbPpNZhriIiJantgNBU3yIiRavZ\ngNAgtYhIaWo2IDTVt4hIaWo3IDTVt4hISWo4INSCEBEpRU0GhKb6FhEpXU0GRDzVd6Om+hYRKUFt\nBoRaDyIiJVNAiIjIkGozILq6FBAiIiWqzYDQRH0iIiWryYCIz6LWNBsiIqWoyYDQWdQiIqWrzYDQ\nILWISMlqNyAmV8f/iBURqVS1GRBdXZrqW0SkRDUZEKG7Q1N9i4iUqCYDQoPUIiKlq82A0FTfIiIl\nq9GAUAtCRKRUNRcQmupbRKQ8ai4gNNW3iEh51F5AqPUgIlIWCggRERlS7QWEpvoWESmL2gsITfUt\nIlIWNRcQmupbRKQ8ai4gdBa1iEh51F5AaJBaRKQsajMgNAYhIlKy2gsIHcUkIlIWNRcQ8SC1AkJE\npFQ1FxBxF5OOYhIRKVVtBoRaECIiJRuXz0pmdhVwF3GgPOju6wc9Pg14CFgE9ACr3X2bmZ0PPAoE\nIAIWAl9193vMbHry2HzgVcDc/WjJ70iHuYqIlMWILQgzawDuBa4ElgHXmdmFg1a7Hdjk7pcA1wP3\nALj7i+5+qbtfBrwH6AIeS7b5CvCEu18APAncVuqbiaf61j8LEhEph3y6mFYAO919t7v3AY8A1wxa\nZynxhzzuvgNYYGYzB63zQeBld9+b3L8GeDi5/TDwiSLqf7vjvdDQQDS+qeSnEhGpd/kExBxgT879\nvcmyXJuBVQBmtgKYB8wdtM4ngX/IuX+2ux8AcPd24Oz8yz4NdS+JiJRNuQap7wCmm9kzwBeATUD/\nwINmNh74OPDDYZ4jlFxFdydoHiYRkbLIZ5B6H3GLYMDcZNlJ7t4BrB64b2avALtyVvkI8LS7H8pZ\ndsDMZrn7ATObDRwc6sXNbCWwMue1aGlpGbrSlhZY8eOR39EYyWQyaZeQF9VZPtVQI6jOcquWOs1s\nXc7dVndvHW79fFoQG4DFZjbfzJqAa4GfDXrRqUkrATO7EXjK3TtzVrmOt3cvkTzHZ5Lb1wM/HerF\n3b3V3dcNXMzsa8RHRFX0RXXWX53VUKPqrO86cz9LRwoHyCMg3L0fWAM8DjwPPOLu283sZjO7KVlt\nCbDVzLYTH+10y8D2ZtZMPED92NufmfXAh8xsB3AFcTeViIhUiLzOg3D3XwAXDFr29zm3fzv48ZzH\nuoHBRzTh7keIg0NERCpQNZ5J3Zp2AXlqTbuAPLWmXUCeWtMuIA+taReQp9a0C8hTa9oF5Kk17QLy\n1FroBlEIpR88JCIitacaWxAiIjIGFBAiIjKkvAapK8FIEwZWCjN7FTgKZIE+d1+RbkUxM3sQ+Bhw\nwN0vTpaNzoSJJThNnWuBGzl1rsztyYETqTGzucB3gFnEP+v7R3USyvLVeZ+7//dK2qdmNgH4FdBE\n/Jn0I3f/WgXuy9PVWTH7Mlcyj95GYK+7f7yY/VkVLYg8JwysFFlgZTJJYUWEQ+LbxPsvV9knTCyD\noeoEuNPdL0suqf/xASeAP3P3ZcC/AL6Q/E5W2j4dXOeanL+ditin7t4LfMDdLwWWAx9JpuypqH05\nTJ1QIftykFuAbTn3C96fVREQ5DdhYKWIqMD96u7/F3hj0OLyT5hYotPUCfF+rRju3u7uzya3O4Ht\nxLMMVNQ+PU2dA3OpVcw+TQ6HB5hA/O08UGH7Ek5bJ1TQvoSTLcergQdyFhe8Pyvug+w08pkwsFIE\n4JdmtiE5q7ySlX/CxNGzxsyeNbMHzGxq2sXkMrMFxN8ofwvMqtR9mlPn75JFFbNPzazBzDYB7cAv\n3X0DFbgvT1MnVNC+TPw34Mu8fY67gvdntQRENXl/8v8vribudviXaRdUgEo95vlbwEJ3X078h3ln\nyvWcZGZTgB8BtyTf0Afvw4rYp0PUWVH71N2zSdfNXGCFmS2jAvflEHUupcL2pZl9lHgM71mGb9mM\nuD+rJSBGnDCwUrj7/uT6EPBj4u6xSnXAzGYBDDdhYtrc/ZC7D/wy3w/8QZr1DDCzccQfut9194G5\nxCpunw7J9cv1AAABW0lEQVRVZ6XuU3d/i/iErquowH05ILfOCtyX7wc+bma7iOfA+2Mz+y7QXuj+\nrJaAGHHCwEpgZs3JNzXMbDLwYWBrulW9zcDEXQPymjAxBW+rM/llHrCKytmnDwHb3P3unGWVuE/f\nUWcl7VMzO2ugW8bMJgEfIh4rqah9eZo6X6ikfQng7re7+zx3X0j8Wfmku38a+DkF7s+qOZM6Ocz1\nbk4d5lpxk/uZ2XnErYZAPID1/Uqp08x+QDxt+pnAAWAt8BPi/9FxLrCb+LC3N9OqEU5b5weI+86z\nxIfn3TzQl5oWM3s/8SGPzxH/vAPxv979PeBUyD4dps5PUSH71MwuIh40bUguj7r7N8xsBpW1L09X\n53eokH05mJn9EfCl5DDXgvdn1QSEiIiMrWrpYhIRkTGmgBARkSEpIEREZEgKCBERGZICQkREhqSA\nEBGRISkgRERkSAoIEREZ0v8HwhQHqzjoMuAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(np.arange(1,40), scores)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }