{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Семинар 9. Метрики качества классификации. Многоклассовая классификаци\n", "\n", " - коллоквиум 12 апреля\n", " - [вопросы](https://docs.google.com/document/d/17rXxZvS1gjZUwvns-bFrh1lsR2I5HygeNKJm5ZJQd_E/edit#heading=h.fufpprwa66pk) к коллоквиуму\n", " \n", "## Метрики качества классификации\n", "\n", "Очень часто классификатор выдает не сам класс, а некоторую оценку принадлежности к классу (например, логистическая регрессия выдает вероятность). Тогда итоговый классификатор имеет вид: $$a(x) = [b(x) > t]$$ где $b(x)$ — ответ классификатора (оценка принадлежности классу +1), $t$ — некоторый фиксированный порог.\n", "\n", "Это позволяет варьировать значение $t$, тем самым меняя качество: \n", " - чем больше $t$, тем выше точность, но ниже полнота\n", " - чем меньше $t$, тем выше полнота, но ниже точность\n", " \n", "Рассмотрим задачу кредитного скоринга в немного другой интерпретации: по некоторой банковской информации необходимо понять, будет ли испытывать клиент финансовые затруднения в будущем. Данные взяты из [этого](https://www.kaggle.com/c/GiveMeSomeCredit) соревнования. Целевая переменная *SeriousDlqin2yrs* — 1 если финансовые затруднения будут, 0 в противном случае." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import pylab as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SeriousDlqin2yrsRevolvingUtilizationOfUnsecuredLinesageNumberOfTime30-59DaysPastDueNotWorseDebtRatioMonthlyIncomeNumberOfOpenCreditLinesAndLoansNumberOfTimes90DaysLateNumberRealEstateLoansOrLinesNumberOfTime60-89DaysPastDueNotWorseNumberOfDependents
000.0000003900.371156660060103
100.0479026912988.000000090200
200.0058318800.001946976380000
300.0000006200.459369390070101
400.0000004800.2253037500140201
\n", "
" ], "text/plain": [ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n", "0 0 0.000000 39 \n", "1 0 0.047902 69 \n", "2 0 0.005831 88 \n", "3 0 0.000000 62 \n", "4 0 0.000000 48 \n", "\n", " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n", "0 0 0.371156 6600 \n", "1 1 2988.000000 0 \n", "2 0 0.001946 9763 \n", "3 0 0.459369 3900 \n", "4 0 0.225303 7500 \n", "\n", " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n", "0 6 0 \n", "1 9 0 \n", "2 8 0 \n", "3 7 0 \n", "4 14 0 \n", "\n", " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n", "0 1 0 \n", "1 2 0 \n", "2 0 0 \n", "3 1 0 \n", "4 2 0 \n", "\n", " NumberOfDependents \n", "0 3 \n", "1 0 \n", "2 0 \n", "3 1 \n", "4 1 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_csv('data.csv')\n", "data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Можно заметить что выборка весьма несбалансирована:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0 27939\n", "1 2061\n", "Name: SeriousDlqin2yrs, dtype: int64" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['SeriousDlqin2yrs'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Попробуем посмотреть какое качество дает один из пройденных алгоритмов:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.cross_validation import KFold, cross_val_score, train_test_split" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X, y = data.drop(['SeriousDlqin2yrs'], axis=1), data['SeriousDlqin2yrs']" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Оценим *precision* и *recall*:\n", "\n", "| | y = 1 | y = 0 |\n", "|------|------|\n", "| a(x) = 1 | TP| FP |\n", "| a(x) = 0| FN | TN |\n", "\n", "$precision = \\dfrac{TP}{TP + FP}$\n", "\n", "$recall = \\dfrac{TP}{TP + FN}$" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import precision_score, recall_score" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "precision: 0.533333333333\n", "recall: 0.0376766091052\n" ] } ], "source": [ "clf = LogisticRegression(random_state=42)\n", "clf.fit(X_train, y_train)\n", "print 'precision:', precision_score(y_test, clf.predict(X_test))\n", "print 'recall:', recall_score(y_test, clf.predict(X_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Известно, что логистическая регрессия умеет возвращать вероятность принадлежности классу. Можно ли в данном случае ослабить порог, чтобы, например, полнота была выше при той же точности?" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import precision_recall_curve" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEPCAYAAABY9lNGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuUFPWZ//H3w/0qKiQaQAgI3hVvKCquoxiD0azGRAUj\nxlskJjGu2d/RuBuPZKOJnuy60RjN4iGsGm/H1Xi/Rhk1CohRISoIAip3I6AgN4F5fn883U4z1Mw0\nw1RX98zndU6frqqubp6pM/Rn6vv91rfM3REREamrTdYFiIhIeVJAiIhIIgWEiIgkUkCIiEgiBYSI\niCRSQIiISKJUA8LMJpjZMjOb0cA+N5nZHDN708wOTLMeEREpXtpnEBOBr9f3opmdCOzu7oOBscAf\nUq5HRESKlGpAuPtfgZUN7HIKcEdu36lADzPbJc2aRESkOFn3QfQBFhSsL8ptExGRjGUdECIiUqba\nZfzvLwJ2K1jvm9u2FTPTpFEiIk3g7taU95XiDMJyjySPAOcAmNkw4BN3X1bfB7m7Hu5cffXVmddQ\nLg8dCx0LHYuGH9sj1TMIM7sbqAJ6mtmHwNVAB8Ddfby7P2Fm3zCz94A1wHlp1iMiIsVLNSDc/awi\n9vlxmjWIiEjTqJO6AlVVVWVdQtnQsailY1FLx6J52Pa2UZWKmXml1CoiUi7MDC/jTmoREalACggR\nEUmkgBARkUQKCBERSaSAEBGRRAoIERFJpIAQEZFECggREUmkgBARkUQKCBERSaSAEBGRRAoIERFJ\npIAQEZFECggREUmkgBARkUQKCBERSaSAEBGRRAoIERFJpIAQEZFECggREUmkgBARkUQKCBERSaSA\nEBGRRAoIERFJpIAQEZFECggREUmkgBARkUQKCBERSaSAEBGRRAoIERFJpIAQEZFECggREUmkgBAR\nkUQKCBERSZR6QJjZSDObZWazzeyKhNd7mtmTZvammf3dzM5NuyYREWmcuXt6H27WBpgNjAAWA9OA\nUe4+q2Cfq4FO7n6lmfUC3gV2cfdNdT7L06xVRKQlMjPc3Zry3rTPIA4D5rj7B+6+EbgXOKXOPkuB\n7rnl7sDyuuEgIiKl1y7lz+8DLChYX0iERqHbgOfMbDHQDTgz5ZpERKQIaQdEMa4Eprv7sWa2O/Cs\nmR3g7p/V3XHcuHFfLFdVVVFVVVWyIkVEKkF1dTXV1dXN8llp90EMA8a5+8jc+s8Ad/frC/Z5ArjW\n3V/OrT8HXOHur9X5LPVBiIhso3Lug5gGDDKz/mbWARgFPFJnn5nA8QBmtguwBzAv5bpERKQRqTYx\nuftmM/sx8AwRRhPcfaaZjY2XfTzwa2CimU0HDLjc3VekWZeIiDQu1Sam5qQmJhGRbVfOTUwiIlKh\nFBAiIpJIASEiIokUECIikkgBISIiiRQQIiKSSAEhIiKJFBAiIpJIASEiIokUECIikkgBISIiiRQQ\nIiKSSAEhIiKJFBAiIpJIASEiIokUECIikkgBISIiiRQQIiKSSAEhIiKJFBAiIpJIASEiIokUECIi\nkkgBISIiiRQQIiKSqKIC4plnsq5ARKT1MHfPuoaimJmDUyHlioiUBTPD3a0p762oMwgRESkdBYSI\niCRSQIiISCIFhIiIJFJAiIhIIgWEiIgkUkCIiEgiBYSIiCRSQIiISKLUA8LMRprZLDObbWZX1LNP\nlZm9YWZvmdmktGsSEZHGpTrVhpm1AWYDI4DFwDRglLvPKtinB/AKcIK7LzKzXu7+ccJnaaoNEZFt\nVM5TbRwGzHH3D9x9I3AvcEqdfc4CHnD3RQBJ4SAiIqWXdkD0ARYUrC/MbSu0B7CzmU0ys2lmNibl\nmkREpAjtsi6AqOFg4DigKzDZzCa7+3tJO8+bBwMHlrI8EZHWKe2AWAT0K1jvm9tWaCHwsbuvB9ab\n2YvAECAhIMYxZgx87WtQVVVFVVVVKkWLiFSq6upqqqurm+Wz0u6kbgu8S3RSLwFeBUa7+8yCffYC\nfgeMBDoCU4Ez3f2dOp/l4Pz7v8M116RWsohIi7I9ndRFnUGYWUfg28BXC9/j7v/R0PvcfbOZ/Rh4\nhujvmODuM81sbLzs4919lpk9DcwANgPj64ZDoQ4diqlYRES2V7FNTA8DnwJ/AzZsyz/g7k8Be9bZ\n9j911v8T+M9iPk8BISJSGsUGRF93H5lqJUVKKyDcwZp0EiYi0jIVO8z1FTPbP9VKivSPf2z7ezZs\ngO98p/7XZ8yAoUPhww9rt731Fjz7bMOfu24drFq17fWIiFSCojqpzewdYBAwn2hiMqIP4YB0y9ui\nBoeodVv71f/yFzjhBKipSX79+9+HiRNhxx3hhhvgnHOgqgoGD4bbbkt+jzt8/euwZg1ccgmMGrVt\nNYmIlELqndTAiU358HLx1FP1v7ZiBdx1F2zeDMuXwwUXwG67wQsvREAkmT0b9izoVenXD4YNg69+\ntVnLFhHJVFFNTO7+AbAj8M3cY8fctorw1FO1fQyFZx+zZkH//nDUUbDDDrFt0yY47jj4p39K/ix3\nGDs2lm+5Jc407r0Xrroq1R9BRKTkigoIM7sUuAv4cu7xJzO7JM3CmsuCBbBkSe36mjW1y9//Pnz2\nGfzyl7HPxRfXvjZ6NDz2WARGobvvhpUrYf362P/CC6Fz5zgDKfxsEZFKV2wfxAzgCHdfk1vvCkwu\n9z6IlSuhVy8444z4Kx9g9Wro3h1+/Wu48srYVlNTO4LpjjtgwAB4+mm49lqYMwcGDYrXDj0U/vY3\nePXV6NTOv/euu+D886FHj2imWrgwguX3v4f99oOTToKePZvpQIiIbINSzOZqxEVseZtz28ra/ffH\nF/jIkfEXf5s28QUPEQ6HHbb18NZzzoGjj4Zzz431Nrkj9MIL8d799qsNh/zrHTvW9mEAvPIKnHYa\n/OY38L3vwX80eDmhiEh5KraTeiIw1cz+nFs/FZiQTklNN2UKPPkk/OIXsZ6fjmTEiPgS79QpQiPv\nvPPq/6xBg+JMAiIYxo6NPocLL9x631NPjWGxs2fHPlddBfvsA3vvHcNyd9mlWX48EZGSKnouJjM7\nGBieW33J3d9Irarkf7/RJqbrr4fJk+Ghh2J9v/3g7bdr9+/aNTqjzz8/hrMuWRJDW+szcCAceyz8\n8Y+xXtgUVZ8TToClS6OOrl3h3/4NunWLZxGRUkttmKuZ7eDuq8xsZ+D93CP/2s7uvqIp/+j2+vTT\naMJ57rktt7/9du3yhRfGet2O4y5d4i9+aDgc8vLh8OqrxV1pfemlsO++EQ4iIpWssSamu4GTiTmY\nCv9ut9x6JndmmD4dnn8ebroJfvKT2u3vvAN9+8byhFwDWJcuW7739NOjD6GwH6Ehxx4LDz5YXJhA\ndEjXtXp1dFq3K4e7b4iIFKnBTmp3Pzn3PMDdBxY8Brh7ZrftWbkynu+8s3ZbTQ3MzE0inu8szo8+\nKnT66cX/O3/6EzzzTPHhkGT+fLjuOmjfPs5ANDWHiFSKYq+DOCo3tBUzO9vMbjCzfo29Ly2ffBLP\nX/pSPG/cGB3Ea9fG+rRp8Xz99Vu+7+mn4eCDi/93jjxy+//q/+Uvt1xfvXr7Pk9EpFSKHeZ6K7DW\nzIYA/wrMBe5s+C3pyZ9B9OoVz2ecESOGIP5CnzoVrrgi+ikKDR9e+hlbBw2Ki/HyZw59+zZtwkER\nkVIrNiA2eQx3OgW42d1/D3RPr6yG5QMifwaRH7UEMGkS/OpXcY1DuejaNS7Oy19bkW8CExEpZ8UG\nxGozuxI4G3jczNoA7dMrq2F1zyDy9tgjnj//HA4/vLQ1FWPixNpJ/q65Js5mzGJUlohIuSk2IM4k\npvm+wN2XAn2B36RWVSOefz6eGxpK2qdPaWppigceiI7rfP9G4cV7IiLlotjZXJe6+w3u/lJu/UN3\nvyPd0upXeL1D4T0exo+P5113LW092+o3v4GXXorO9W99K67wFhEpNw0GhJn9Nfe82sxWFTxWm1nJ\nB2zefHPtcj4Eli6NqSzc4ZhjYtu2jFQqteOOg0cfhYMOivW612mIiJSLBgdxuvvw3HNmHdKFCkcg\n7bRTPM+bVztnUl45dVDXdcstW67PmhXTih9zTEwD0qNHNnWJiNRV1Ch/MxsGvO3uq3Pr3YF93H1q\nmsVtXUftcj4g5s+POZPyXnoppuWuFEcdFZMB9stdVbKtt1MVEUlLsZeB3QoUNtysSdiWuroB8e67\nMddS4a0+hw/f6m1l7cYb42eZOrXhW6OKiJRa0feD8IJpX929huLDpdm0Kah2xx2jueb222v/+q5U\n48ZFM5MZnHji1pMQiohkodiAmGdmPzGz9rnHpcC8NAtLUngGUdhWv9tupa4kHe5xFvHb38b6Z59l\nW4+ItG7FBsQPgCOBRcBC4HDgorSKqk9hQLRtW7vcEgKibduYKyp/NvHQQzFSKz8BoYhIqRV7HcRH\n7j7K3b/s7ru4+1nu/lHaxdVV3zxKLSEgIG42dMYZsXzBBXEXvI9KfpRFREKxs7nuYWbPmdlbufUD\nzOzn6ZaWVEc8//SnW25vSUND99477nExaRKsWAFVVdEnsXlzo28VEWlWxTYx3QZcCWwEcPcZwKi0\niqpPvpN6yJAtt5d6hta03XgjHHBA3LYU4PjjozN+w4Zs6xKR1qXYgOji7q/W2bapuYtpTD4IunUr\n9b+cjWHDYO7cuIXpBRfAI49kXZGItCbFBsTHZrY7uduOmtl3gCWpVVWP1hYQEBcB/vzncdY0d27c\n/vTAA+Pq8QULsq5ORFqyYq9l+BEwHtjLzBYB84HvplZVPZICYsSIUldReqNGwcMPw5VXbrm9Xz84\n++wtb70qItJcGj2DyN374VB3Px74ErCXuw939w9Sr26rWuK5e25mqIsuiqGhrcGYMfDKK/DWW3G9\nxA03RDi2tP4XESkfjQZE7qrpy3PLa/LzMWUh30mdP4Po02fL6yFasm98A444IvojAC67LIbEPv54\n3F5VRKS5FdvE9Bcz+3/AfcQ8TAC4+4pUqqpHYRPTSSdtfUe51mbw4LjHdXU1zJgBs2fDd76TdVUi\n0lKYFzF9qJnNJ9dBXcjdBybsngoz83vucUaPhrVroXPnUv3L5e3BB+Hb347lo4+GF1/Mth4RKS9m\nhrs3qTG62FFM+wC/B6YDbwK/A/YtsriRZjbLzGabWb2NIWY21Mw2mtlp9e8TzUy6A1utU0+N6cLv\nvjumOv+g5D1DItJSFdvEdDuwCrgpt35WbtsZDb0p18F9MzACWAxMM7OH3X1Wwn7XAQ12OZtF85I6\nZmu1aRN30OvdO9Zffhl69mxdQ4FFJB3FBsR+7r5PwfokM3uniPcdBszJj3gys3uBU4BZdfa7BPg/\nYGhDH9amjb746rPrrnFm9d3c4GPdeEhEtlexTUyv5+4qB4CZHQ68VsT7+gCFl3MtzG37gpn1Bk51\n91uBBs8N8mcQkmzRIrjpJmjfvjYoRESaqtiAOAR4xczeN7P3gcnAUDP7u5nN2M4afgsU9k3UGxI7\n7bT1/ael1s47w1lnwf77w1/+Aps2wQsvZF2ViFSqYpuYRjbx8xcBhfd765vbVuhQ4F4zM6AXcKKZ\nbXT3rWYeevTRcQwbFvdMqKqqoqqqqolltVw9e8ITT0STU/v2sW3TptZzvYhIa1ddXU11dXWzfFZR\nw1yb/OFmbYF3iU7qJcCrwGh3T7wNjplNBB519wcTXvMPP/QWc++HNG3aBOedF5P9XXIJTJsGN98M\nS5fC/fermU6kNdmeYa6pBgTEMFfgRqI5a4K7X2dmYwF39/F19v0j8Fh9AbFwodOnT91XpCFt20JN\nTe16z54x0mnPPbOrSURKpxTXQTSZuz/l7nu6+2B3vy637X/qhkNu+/lJ4ZCn4a3b7r/+CxYvrp2/\nqXNnWLky66pEpBKkHhDNSQGx7f7lX+ArX4nlyy5DZ2AiUjQFRCu0eLFuYSoijauogGhTUdWWr29/\nO+5QJyLSkIr6ytUZxPa74QY44YS4x7WISEMUEK3MkUfCNdfE8pQp2dYiIuVNAdEKDRkSz0ccERcd\niogkSf06iOZiZr58ubPzzllX0jJMmwaHHRbLFfIrICJNUNbXQTQndVI3n6FDY3K//BBYEZG6Kuor\nV01MzcsMliyBQw7JuhIRKUcKiFZs113hRz+C11+HW27JuhoRKTfFzuZaFhQQzcssJvF7/31YsSLr\nakSk3OgMQthrL7jqqqyrEJFyU1GjmNascbp0ybqSluezz6B7d41mEmmJWs0oJp1BpEP3hxCRJAoI\nERFJpIAQEZFECgj5wve+B2vXZl2FiJSLiuqk3rjRaVdRA3Mrx777wjvvwDHHwNFHw7JlcPnlsPvu\nCmaRSlbW96RuLmbmmzY5bdtmXUnLdeut8MMfbrlt8mQYNiybekRk+2kUkzSLiy+Ooa7uUFMDhx8O\n69ZlXZWIZKWiziBqalwhUUI9esCqVbBwYUzLsWgR9OuXdVUisi10BiGpePzxeO7bF7p0gf79IyxE\npHWoqICQ0ho+HB56KDqtJ02KbXfcAUuXwvLl2dYmIumrqCamSqm1pbrkkpjcD6L5aflyNGhApMy1\nmiYmydb558P998PTT8Onn8JPfgKbN2ddlYikRWcQ0iQXXQS33Va7fuut8IMfZFePiCRrNddBVEqt\nrcWUKTB1akwVvm4dbNig28KKlBsFhGRq+nQ48EB49lk4/visqxGRQuqDkEwNGQIjRsC8eVlXIiLN\nSTMbSbNYvRrGjoWVK2Nep5NPzroiEdleamKSZrFpE/TqFaObIK7A7twZTa4okjE1MUnm2rWLs4eV\nK2N9hx3g1FNhyZJs6xKRptMZhDS7jz6CJ56A886L9U8+iQvrRKT0NIpJytLixdCnD3TvHhP9de+e\ndUUirY+amKQs9e4N99wTHdg77BDPIlI5FBCSqlGjYO7cWL7uurjXhIhUhtQDwsxGmtksM5ttZlck\nvH6WmU3PPf5qZvunXZOU1sCBcOaZ8KtfxZXWt9+edUUiUoxUA8LM2gA3A18H9gVGm9ledXabB/yT\nuw8BrgFuQ1qce++NKcOHDIFzz41pxPNnExs2ZFqaiNQj1U5qMxsGXO3uJ+bWfwa4u19fz/47An93\n990SXlMndQuwYUP0TaxYEetDhsDs2fDZZ5rHSSQN5dxJ3QdYULC+MLetPhcCT6ZakWSqY8e4j8TD\nD8OYMfC730VotG0bdww85RR45pm48E5EslU217ma2bHAecDw+vYZN27cF8tVVVVUVVWlXpek45//\nOR4Azz8Py5bB//5vNEM98khsHzQo7mB3xBGZlSlScaqrq6murm6WzypFE9M4dx+ZW09sYjKzA4AH\ngJHuPreez1ITUyuxejVcey1cX/Bb8re/wcEHZ1eTSKUq2wvlzKwt8C4wAlgCvAqMdveZBfv0A54D\nxrj7lAY+SwHRyrjD5Mlw1FGxPmAAzJ8fy4MHw+efw5//DAcdFNvWrIn5n9SXIVKrbAMCYpgrcCPR\n3zHB3a8zs7HEmcR4M7sNOA34ADBgo7sflvA5CohWau3auHvdrrvCjjvCyy/HVdoTJiTvv9deMHNm\n8msirU1ZB0RzUUBIXRs2RNPTTjvFcqdOccZx/vnxeo8ecd/sPfeEI4+MM5BPP42ruq1J/11EKo8C\nQqTA1KkRHL/4RUwcmOQrX4EXXoiOcIWFtGQKCJFGrFhROyX5E0/AD39Y+9oFF8Bxx0Xn+MCB8LWv\nZVenSHNTQIhso3Xr4P33YxjtddfFGcWAAREg3/oWXHJJ9HmIVDoFhEgzmD8/htbeeWd0jD/5JBx4\nYJxZLF0ay2vXQpcu0K2bmqakMiggRJrRtGlwWME4uk6dYP365H3POCMu8IMYYrtpU+1V4SLlQAEh\nkoL8r1v+y37z5lj+8MMIgvvug5//PPm9F18MBxwAJ5wANTWw++4KDcmGAkIkI+7xWLcump969IDL\nLoPXX4cpdS77vPrqGJK7665w4okx3FYkbQoIkTI2dy789Kcwb15cwLd5c1zwd/LJ0UmuMwtJkwJC\npILMnAl33w3XXBNNT0cdBWefreG1kg4FhEgFmjo1pj2/805YuDC2nXRSzF7btSuMHg277JJtjVL5\nFBAiFe6TT+LeGK++GtOBvPRS7WtDh8YQ21NPhf33j9FSvXplV6tUFgWESAuzbBlMnx5Xfc+YAUuW\nwKxZW+/XqRPsuy+8+27cyrVDB9hvP9hjj+jbOPzwGHYrrZcCQqSV2LwZFiyIO/MtXRpDbnv2hFtv\njSCYNw/eeSemFfnHP+I9Bx0UZx1f+hJcemk0W3XqBH37xnsUIC2bAkJEtjJrVvRzrFsXV3//7Gdx\nwd/KlVvuN3w4XHRR9Ht07x7zUe2+ezY1S/NTQIjINtmwIZ7vvBPuuiv6PZYti+3Ll9fuN3Qo9O4d\nI606d45JDnVDpsqigBCRZrN0aQTFyy/HBX/vvx9NWw89tOV+AwZEU9dOO0Xz1c47w1lnwdFHRxOW\nlAcFhIikbt26CIo1a+Ctt2J99eq4gnzOHHjsMXj77dr9zWDkyNh/0yYYMiSW9947zkrWrYv+kA4d\n4qykc2fo1y9GaHXvnt3P2dIoIESkbKxfH/ffuP/+mEZ92bLoMP/kE/jgA1i1Ctq3j76QTz+NgGjX\nLvpM8k1fF14YwZMPi4MOgv79a/tJ2rWLaU06d872Z60ECggRaRHcYeLEGJ21ZEmchbz2WlxI6B53\nCOzZc8t+Eoj5rTp3hhEj4PPPo8/kkEPirKVdu2x+lnKhgBCRVmf9+jgbWbQont94IwJk8uSYzmTZ\nsmi6GjEimrjatIlbzPbvD9/8ZtyrvH37rH+K9CkgRETqeO89qK6O6zy6dInO9jlz4PHHoyM+b6ed\nYPDg6GSvqYmRW/37Q1VVhFDv3nHW4h5nJx07ZvQDNZECQkRkG2zaFGGxalWExdq10aS1YEHMvvvo\nozFKa8mSCImOHWv7R/KOOy4ep58eV66XKwWEiEgK3KMjvWPHeNTURGC8+CI88ECcjSxbFh3t7dvH\nqKyOHWN98+ZY//KXY7lr15hLq6YmlnfZJaZJ6dgRdtstvetLFBAiIhlZtQo+/jhGatXUxFDeDh3i\nbGTduhjR1a5dTIGybl2cvbz/fozaMosAAvjqV2OUV+/e0Vdy6KERLKtXR/NXt24x8qtXrwgusxgl\n1rlzhMznn0d4rV8fZzvr10d4/fd/Nz0gWnn/vojI9tlhh3gMHNi09+ebudq3j9FZL74YHe+9esUX\n/7x5sV8+XNasif2XLYtAWr06bkDVrVvs36lTPDp2jP23h84gRERasO1pYtKsKiIikkgBISIiiRQQ\nIiKSSAEhIiKJFBAiIpJIASEiIokUECIikkgBISIiiRQQIiKSKPWAMLORZjbLzGab2RX17HOTmc0x\nszfN7MC0axIRkcalGhBm1ga4Gfg6sC8w2sz2qrPPicDu7j4YGAv8Ic2aWoLq6uqsSygbOha1dCxq\n6Vg0j7TPIA4D5rj7B+6+EbgXOKXOPqcAdwC4+1Sgh5ntknJdFU2//LV0LGrpWNTSsWgeaQdEH2BB\nwfrC3LaG9lmUsI+IiJSYOqlFRCRRqtN9m9kwYJy7j8yt/wxwd7++YJ8/AJPc/b7c+izgGHdfVuez\nNNe3iEgTlOsNg6YBg8ysP7AEGAWMrrPPI8CPgPtygfJJ3XCApv+AIiLSNKkGhLtvNrMfA88QzVkT\n3H2mmY2Nl328uz9hZt8ws/eANcB5adYkIiLFqZg7yomISGmVXSe1Lqyr1dixMLOzzGx67vFXM9s/\nizpLoZjfi9x+Q81so5mdVsr6SqnI/yNVZvaGmb1lZpNKXWOpFPF/pKeZPZn7rvi7mZ2bQZmpM7MJ\nZrbMzGY0sM+2f2+6e9k8iMB6D+gPtAfeBPaqs8+JwOO55cOBKVnXneGxGAb0yC2PbM3HomC/54DH\ngNOyrjvD34sewNtAn9x6r6zrzvBYXA38On8cgOVAu6xrT+FYDAcOBGbU83qTvjfL7QxCF9bVavRY\nuPsUd/80tzqFlnv9SDG/FwCXAP8HfFTK4kqsmGNxFvCAuy8CcPePS1xjqRRzLJYC3XPL3YHl7r6p\nhDWWhLv/FVjZwC5N+t4st4DQhXW1ijkWhS4Enky1ouw0eizMrDdwqrvfCrTkEW/F/F7sAexsZpPM\nbJqZjSlZdaVVzLG4DdjXzBYD04FLS1RbuWnS92baw1ylBMzsWGL01/Csa8nQb4HCNuiWHBKNaQcc\nDBwHdAUmm9lkd38v27IycSUw3d2PNbPdgWfN7AB3/yzrwipBuQXEIqBfwXrf3La6++zWyD4tQTHH\nAjM7ABgPjHT3hk4xK1kxx+JQ4F4zM6Kt+UQz2+juj5SoxlIp5lgsBD529/XAejN7ERhCtNe3JMUc\ni6OAawHcfa6ZzQf2Al4rSYXlo0nfm+XWxPTFhXVm1oG4sK7uf/BHgHPgiyu1Ey+sawEaPRZm1g94\nABjj7nMzqLFUGj0W7j4w9xhA9EP8sAWGAxT3f+RhYLiZtTWzLkSn5MwS11kKxRyLmcDxALk29z2A\neSWtsnSM+s+cm/S9WVZnEK4L675QzLEArgJ2Bm7J/eW80d0Py67qdBR5LLZ4S8mLLJEi/4/MMrOn\ngRnAZmC8u7+TYdmpKPL34tfARDObTnx5Xu7uK7KrOh1mdjdQBfQ0sw+J0Vsd2M7vTV0oJyIiicqt\niUlERMqEAkJERBIpIEREJJECQkREEikgREQkkQJCREQSKSBESiB3Mdffc8vHmNmjWdck0hgFhEgj\nchchNgevZ1mkLCkgROrI/bU/y8xuz/3VP8bMXjGz18zsvtz0FfmbE72cuwHLFDPrmnvvi7l9X8tN\nayBSkcpqqg2RMjIIGEPM2/MgMMLd15nZ5cBPzex64v4Dp7v762bWDVgHLAOOd/fPzWwQcA8wNJsf\nQWT7KCBEkn3g7tPM7CRgH+DlXFNTe2AysCew2N1fB8hPH52bNO7m3C0dNwODM6lepBkoIESSrck9\nG/CMu3+38EUz24/kmTMvA5a6+wFm1pY4qxCpSOqDEEmW//KfAhyVu9kMZtbFzAYD7wK7mtkhue3d\ncoHQA1gfnzX5AAAAc0lEQVSSe+85QNvSli3SfBQQIskcvrif87nAPbkpo18B9szdA/lMojnpTWLK\n6Y7ALcC5ZvYGce+BNQmfLVIRNN23iIgk0hmEiIgkUkCIiEgiBYSIiCRSQIiISCIFhIiIJFJAiIhI\nIgWEiIgkUkCIiEii/w8Tzm4A/JSllwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "precision, recall, thresholds = precision_recall_curve(y_test, clf.predict_proba(X_test)[:, 1])\n", "plt.plot(recall, precision)\n", "plt.xlabel('recall')\n", "plt.ylabel('precision')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.26844583987441129" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recall[precision >= 0.3][0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "И еще одна характеристика, которая является следствием графика выше: площадь под кривой." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import auc" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.22875668832460233" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auc(recall, precision)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В данном случае она не такая уж большая.\n", "\n", "В данной выборке признаки имеют разные масшатбы. Посмотрим повлияет ли масштабирование на качество модели:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "scaler = StandardScaler()\n", "scaler.fit(X_train)\n", "\n", "new_X_train = scaler.transform(X_train)\n", "new_X_test = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "precision: 0.548387096774\n", "recall: 0.0266875981162\n" ] } ], "source": [ "clf_scaled = LogisticRegression(random_state=42)\n", "clf_scaled.fit(new_X_train, y_train)\n", "print 'precision:', precision_score(y_test, clf_scaled.predict(new_X_test))\n", "print 'recall:', recall_score(y_test, clf_scaled.predict(new_X_test))" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "precision_scaled, recall_scaled, thresholds = precision_recall_curve(y_test, clf_scaled.predict_proba(new_X_test)[:, 1])\n", "plt.plot(recall_scaled, precision_scaled)\n", "plt.xlabel('recall')\n", "plt.ylabel('precision')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Аналогично:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.31397174254317112" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recall_scaled[precision_scaled >= 0.3][0]" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.2389065332622245" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auc(recall_scaled, precision_scaled)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Еще один из способ визуализации зависимости метрик качества от порога, подходящей в этом случае, является *ROC*. По осям: \n", " - $FPR = \\frac{FP}{FP + TN}$\n", " - $TPR = \\frac{TP}{TP + FN}$\n", " \n", "$AUC-ROC$ — площадь под такой кривой. Наихудший классификатор имеет площадь $0.5$, идеальный — 1." ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import roc_curve" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nEXGb/w+wRXE5lx2VCgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fpr, tpr, thresholds = roc_curve(y_test, clf.predict_proba(X_test)[:, 1])\n", "fpr_scaled, tpr_scaled, thresholds = roc_curve(y_test, clf_scaled.predict_proba(new_X_test)[:, 1])\n", "plt.plot(fpr, tpr, label='first classifier')\n", "plt.plot(fpr_scaled, tpr_scaled, label='scaled classifier')\n", "plt.xlabel('fpr')\n", "plt.ylabel('tpr')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.68626562279728431" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auc(fpr, tpr)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.69065645923745378" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auc(fpr_scaled, tpr_scaled)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Многоклассовая классификация\n", "\n", "Одна из стратегий многоклассовой классификации *One-vs-All*:\n", " - для каждого класса строим свой классификатор\n", " - *K* различных классификаоров\n", " - рашающее правило: пытаемся отнести классификатор к каждому из классов, выбираем тот, значение на котором у классификатора больше всего\n", " \n", "![](http://i.imgur.com/3GVuwGD.png)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Плюс sklearn — все уже работает \"из коробки\". По умолчанию для многоклассового случая реализована стратегия One-vs-Rest." ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.datasets import make_classification" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X, y = make_classification(n_classes=3, n_features=2, n_clusters_per_class=1, \n", " n_informative=2, n_redundant=0, n_samples=120, random_state=42)\n", "min_x = np.min(X[:, 0])\n", "max_x = np.max(X[:, 0])\n", "\n", "min_y = np.min(X[:, 1])\n", "max_y = np.max(X[:, 1])\n", "\n", "classif = LogisticRegression(random_state=42)\n", "classif.fit(X, y)\n", "\n", "plt.figure(figsize=(10, 10))\n", "plt.title(\"Multiclass classification\")\n", "h = 0.02\n", "xx, yy = np.meshgrid(np.arange(min_x, max_x, h),\n", " np.arange(min_y, max_y, h))\n", "\n", "Z = classif.predict(np.c_[xx.ravel(), yy.ravel()])\n", "Z = Z.reshape(xx.shape)\n", "plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)\n", "plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Accent, s=100)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Полиномиальная регрессия\n", "\n", "Ранее рассматривался один тип модели регрессии — линейная. Это означает, что ищется алгорим вида $$ a(x) = w_0 + \\sum_{j=1}^k w_jx^j = \\sum_{j=0}^k w_jx^j$$\n", "\n", "Но что делать если на самом деле данные имеют более сложный вид?\n", "\n", "Рассмотрим простой пример: пусть истинная зависимость имеет вид $y = x * \\sin(x)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сгенерируем такую выборку и по части точек будем обучаться (*train*), а на оставшихся — оценивать качество (*test*)." ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X = np.linspace(0, 10, 100)\n", "y = X * np.sin(X)\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Эту зависимость можно изобразить на графике (синим показаны точки для обучающей выборки, зеленым — тестовой)." ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(X_train, y_train)\n", "_ = plt.scatter(X_test, y_test, c='g')\n", "_ = plt.legend(('train', 'test'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь применим известную нам модель линейной регрессии:" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/site-packages/scipy/linalg/basic.py:884: RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010). Falling back to 'gelss' driver.\n", " warnings.warn(mesg, RuntimeWarning)\n" ] }, { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr = LinearRegression()\n", "lr.fit(X_train[:, np.newaxis], y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Посчитаем качество нашей модели:" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE: 14.7599775028\n", "MAE: 3.19823417124\n", "r2: 0.0685661961929\n" ] } ], "source": [ "prediction = lr.predict(X_test[:, np.newaxis])\n", "print \"MSE:\", mean_squared_error(y_test, prediction) \n", "print \"MAE:\", mean_absolute_error(y_test, prediction) \n", "print \"r2:\", r2_score(y_test, prediction) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Судя по метрикам, наша модель работает не самым лучшим образом. Изобразим ее на графике:" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhcAAAEACAYAAAAA4lT2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VNW5//HPCrkNhEACgSCXBEoRqrUG6rX2GMJFi1XU\ntkq0WjEqeKvHWiuiCLTFWjkWtVUbJGI9SsRaf15OaUWK8dYflWoq/ipyQEyUS2DCNYFJMiHr98ck\nIVdIMjuZ2TPf9+uVF3PZ2fNMjLOfPOtZaxlrLSIiIiJOiQl1ACIiIhJZlFyIiIiIo5RciIiIiKOU\nXIiIiIijlFyIiIiIo5RciIiIiKM6nFwYYwqMMbuMMRuaPJZijFltjNlkjHndGNOve8IUERERt+hM\n5WI5cF6Lx+YAa6y1JwJrgbudCkxERETcyXRmES1jTAbwmrX2lPr7nwLnWmt3GWPSgSJr7djuCVVE\nRETcINiei0HW2l0A1toyYFDwIYmIiIibOd3QqbXERUREolxskN+/yxgzuMmwyO72DjTGKPEQEekC\na60JdQwindHZyoWp/2rwKnBN/e0fAa8c65utta79mj9/fshjiNb43Ry74g/9l9vjF3GjzkxFXQH8\nHRhjjPnCGDMTeACYYozZBEyqvy8iIiJRrMPDItbaK9p5arJDsYiIiEgE0AqdHZSdnR3qEILi5vjd\nHDso/lBze/wibtSpdS6CeiFjrMYPRUQ6xxiDVUOnuEyws0VERMSFPB5PWVVV1eBQxyHulZiYuMvn\n86W39ZwqFyIiYay7Khf6TJZgHet3Uz0XIiIi4iglFyIiIuIoJRciIiLiKCUXIiISdkaOHMnatWsB\n+NWvfsUNN9wQ4ojc68Ybb2TRokU9+ppq6BQRCWPR2tA5cuRICgoKyMnJCXUo0g41dIqIiHRSXV3d\ncY9xOkEL54SvM5RciIhIWFu4cCFXXXUVAKWlpcTExPDMM8+QkZHBoEGDuP/++xuPtdbywAMPMHr0\naNLS0pgxYwb79u1rfP6yyy5jyJAhpKSkkJ2dzSeffNL43MyZM7npppu44IIL6Nu3L0VFRa1imThx\nIvfeey/nnHMOffr04fPPP+fgwYPk5eVxwgknMHz4cObNm9eYJNTV1XHHHXeQlpbGV77yFR577DFi\nYmIaE5fOnu+zzz4jOzub/v37M2jQIHJzcxtju/322xk8eDD9+vXjG9/4RuN7mzlzJvfdd1/jcU8+\n+SRf/epXGThwIBdffDE7d+5sfC4mJob8/HzGjBlDamoqt9xyS5f+mym5EBGRsGdM8+r7e++9x+bN\nm1mzZg0///nP2bRpEwCPPvoor776Ku+88w47duwgJSWFm2++ufH7pk2bxmeffcbu3bsZP348V155\nZbPzFhYWMm/ePCoqKjjnnHPajOXZZ59l2bJlVFRUMGLECH70ox+RkJDA1q1bKS4u5o033mDZsmUA\nLF26lNdff50NGzbw4Ycf8vLLL7d6L50537x58zjvvPPYv38/27Zt49ZbbwVg9erVvPvuu2zZsoUD\nBw7wwgsvMGDAgFaxr127lrlz5/Liiy+yc+dORowYwYwZM5od8+c//5kPPviAjz76iBdeeIHVq1cf\n979PKz24bbAVEZHOqf/sDM1nMjjz1QWZmZn2b3/7m7XW2gULFtirrrrKWmttSUmJjYmJsTt27Gg8\n9vTTT7crV6601lo7btw4u3bt2sbnduzYYePi4uyRI0davca+ffusMcYePHjQWmvtNddcY3/0ox8d\nM67s7Gw7f/78xvu7du2yCQkJtqqqqvGxwsJCm5OTY621Nicnxy5durTxuTVr1tiYmJjGeDp7vquv\nvtrOmjXLbtu2rVlca9eutSeeeKJdt26draura/bcNddcY+fNm2ettTYvL8/eddddjc9VVlbauLg4\nW1paaq211hhj//73vzc+f9lll9lf//rXbf4sjvW7qcqFiIi0zan0ohsMHnx05fLevXtTWVkJBIZN\nLrnkElJTU0lNTeVrX/sacXFx7Nq1i7q6OubMmcPo0aPp378/I0eOxBhDeXl547mGDx9+3Nduekxp\naSl+v58hQ4aQmppKSkoKs2fPxuv1ArBjx45mx7d1/s6cb/HixdTV1XH66afz9a9/neXLlwOB4ZVb\nbrmFm2++mcGDBzN79uzGn0lTO3bsICMjo/F+nz59GDBgANu3bz/uz7YztLeIiIhEjBEjRvDUU09x\n1llntXru2Wef5bXXXmPt2rWMGDGCAwcOkJKS0qyJsuWQRVuaHjN8+HASExPZs2dPm987ZMgQtm3b\n1nj/iy++COp8gwYNYunSpUBgaGjy5Mmce+65jBo1iltuuYVbbrmF8vJyfvCDH7B48WIWLlzY7PtP\nOOEESktLG+8fOnSIPXv2MGzYsOO+785Q5UJERFzFHqMaMmvWLObOndt4Efd6vbz66qsAVFRUkJCQ\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(X_train, y_train)\n", "_ = plt.scatter(X_test, y_test, c='g')\n", "y_plot = lr.predict(X[:, np.newaxis])\n", "_ = plt.plot(X, y_plot, c='r')\n", "_ = plt.legend(('linear regression', 'train', 'test'), bbox_to_anchor=(1.05, 1), loc=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Кажется линейная зависимость совсем не подходит под наши данные. Чтобы как-то исправить это одиним из подходов является добавление всех попарных произведений признаков, а также степеней: $x_1, \\dots , x_d, x^2_1, x_1x_2, \\dots , x^2_d, \\dots$" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.preprocessing import PolynomialFeatures" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "poly = PolynomialFeatures(degree=2)\n", "poly.fit(X_train[:, np.newaxis])" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(75, 3)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_features = poly.transform(X_train[:, np.newaxis])\n", "new_features.shape" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": true }, "outputs": [], "source": [ "new_test_features = poly.transform(X_test[:, np.newaxis])" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lr2 = LinearRegression()\n", "lr2.fit(new_features, y_train)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE: 13.6939938774\n", "MAE: 3.01139113345\n", "r2: 0.135835484569\n" ] } ], "source": [ "prediction = lr2.predict(new_test_features)\n", "print \"MSE:\", mean_squared_error(y_test, prediction) \n", "print \"MAE:\", mean_absolute_error(y_test, prediction) \n", "print \"r2:\", r2_score(y_test, prediction) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Судя по всему, уже лучше!" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAEACAYAAACUBP0EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNX9//HXCZkkE0IggUCQJUEpglo1KG7VGqKoxX2F\naLXFWEGtWrW2FBWxil/rUrR+RWONiK1E3H4VlFakGtBSlK/GpbIUxAQBAwOBkJDJRs7vj5uEDAQk\nmUlmez8fj/tI5s6de8+EMPeTcz7nc4y1FhEREZFwEBPsBoiIiIgcLAUuIiIiEjYUuIiIiEjYUOAi\nIiIiYUOBi4iIiIQNBS4iIiISNg46cDHGFBhjNhtjvmi1L8UYs9AYs9oY844xpmfnNFNERESkfT0u\ns4Cz99o3GVhkrT0ceA/4XaAaJiIiIrI3054CdMaYDGC+tfbopsergNOttZuNMelAkbV2eOc0VURE\nRKKdvzkufa21mwGstWVAX/+bJCIiItK2QCfnav0AERER6TSxfr5+szGmX6uhoi37O9AYo6BGRKQD\nrLUm2G0QCRXt7XExTVuzecDPm77/GfDmgV5srQ3b7d577w16G6K1/eHcdrU/+Fu4t19EfLVnOvQc\nYCkwzBiz3hgzAXgIGGOMWQ2c0fRYREREpFMc9FCRtfbK/Tx1ZoDaIiIiInJAqpx7kLKzs4PdBL+E\nc/vDue2g9gdbuLdfRHy1q46LXxcyxmq8VkSkfYwxWCXnirTwd1aRiIiEIbfbXVZTU9Mv2O0QaUtC\nQsJmr9eb3tZz6nEREQlhndXjos9kCWUH+r1XjouIiIiEDQUuIiIiEjYUuIiIiEjYUOAiIiJRbciQ\nIbz33nsBO9+HH37IiBEjAna+UDZnzhzOOeecLr2mknNFREKYknM735AhQygoKCAnJ6dDr4+JiWHt\n2rUceuihAW5Z9FJyroiISAfs3r37e48xpnPK7BzMtYN5vmBR4CIiIiGnuLiY4447jp49ezJ+/Hhy\nc3OZOnUqALNnz+a0007zOT4mJoZ169YBsGDBAkaOHEnPnj3JyMjgvvvu8zn2L3/5C5mZmaSlpfHg\ngw/6PHffffdx+eWXc/XVV9OrVy9mz57N8uXLOeWUU0hJSWHAgAHcfPPNNDQ0AHD66adjreXoo48m\nOTmZV199lcWLFzNo0KCWc27YsIFLL72Uvn37kpaWxi233NLme27r2tZaHnroIYYOHUpaWhrjx49n\nx44dLa958cUXW97LAw884DPs1d7z1dbWcvXVV9OnTx9SUlI48cQT8Xg8ALzwwgscdthhJCcnc9hh\nh1FYWNjmv8XSpUs54YQTWl7/73//u+W50aNHM3XqVE499VSSk5M555xzKC8vP+DvQVsUuIiISEip\nr6/n4osv5mc/+xnl5eVcfvnlvP766z7H7N3L0fpxUlISf/nLX6ioqODtt9/mmWeeYd68eQCsWLGC\nG2+8kZdeeolNmzaxbds2Nm7c6HOuefPmccUVV7Bjxw6uuuoqYmNjefzxxykvL+ff//437733HjNn\nzgRg8eLFAHz55Zfs3LmTyy+/3Kc9jY2NnHfeeQwZMoT169ezceNGxo8fv9/3vve1//SnPzFv3jw+\n+OADNm3aREpKCjfeeGPLe7npppsoLCzku+++o6Kigk2bNnX4fLNnz2bnzp1s3LiR8vJynnnmGdxu\nN9XV1dx6662888477Ny5k6VLl3Lsscfu87Pfvn075513Hr/61a/Ytm0bt912G+eeey7bt29vObaw\nsJDZs2fj8Xiora3l0Ucf3e/PYn8UuIiISNuMCczWTsuWLaOhoYFbbrmFbt26cemllzJq1KgDvqZ1\nvs6Pf/xjjjzySACOOuooxo8f3xJgvP7665x//vn86Ec/wuVycf/99+8TBJ188smcf/75AMTHx5OV\nlcUJJ5yAMYbBgwdz/fXXt5yvreu39tFHH/Hdd9/x8MMPk5CQQFxcHKeccsp+38fe187Pz2f69On0\n798fl8vF1KlTee2112hsbOT111/nggsu4OSTTyY2Npbf//73fp3P5XKxbds2/vvf/2KMISsri6Sk\nJAC6devGl19+SU1NDf369Wsz+fjtt99m2LBhXHnllcTExDB+/HiGDx/O/PnzW46ZMGEChx12GPHx\n8VxxxRV89tln+/1Z7I8CFxERaZu1gdnaadOmTQwYMMBnX0ZGxkG//qOPPiInJ4e+ffvSq1cv8vPz\n2bp1a8u5Ww/jJCYm0rt3b5/Xt34eYM2aNZx//vn079+fXr16cdddd7Wc7/ts2LCBjIwMYmIO7na7\n97VLS0u5+OKLSU1NJTU1lSOOOAKXy8XmzZv3eS9ut/t738uBznf11Vdz9tlnM378eAYOHMjkyZPZ\nvXs3iYmJzJ07l6effpr+/ftz/vnns3r16n3avmnTpn3+nTIyMnx6tNLT91TxT0xMpKqq6qB+Lq0p\n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\njf8PO9W5QVtS9cgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(X_train, y_train)\n", "_ = plt.scatter(X_test, y_test, c='g')\n", "y_plot = lr2.predict(poly.transform(X[:, np.newaxis]))\n", "_ = plt.plot(X, y_plot, c='r')\n", "_ = plt.legend(('quadratic regression', 'train', 'test'), bbox_to_anchor=(1.05, 1), loc=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь можно попробовать различные степени!" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "degree: 2\n", " MSE: 13.6939938774\n", " MAE: 3.01139113345\n", " r2: 0.135835484569\n", "degree: 3\n", " MSE: 11.0905318302\n", " MAE: 3.04851665191\n", " r2: 0.300127913683\n", "degree: 4\n", " MSE: 1.94641536663\n", " MAE: 1.19021797393\n", " r2: 0.877170743087\n" ] }, { "data": { "image/png": "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\nREQC7P8BE6//eNSgr0sAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(X_train, y_train, label='train')\n", "_ = plt.scatter(X_test, y_test, c='g', label='test')\n", "\n", "for degree in range(2, 5):\n", " print \"degree:\", degree\n", " poly = PolynomialFeatures(degree=degree)\n", " poly.fit(X_train[:, np.newaxis])\n", " new_features = poly.transform(X_train[:, np.newaxis])\n", " new_test_features = poly.transform(X_test[:, np.newaxis])\n", " \n", " lr = LinearRegression()\n", " lr.fit(new_features, y_train)\n", " \n", " prediction = lr.predict(new_test_features)\n", " print \" MSE:\", mean_squared_error(y_test, prediction) \n", " print \" MAE:\", mean_absolute_error(y_test, prediction) \n", " print \" r2:\", r2_score(y_test, prediction) \n", " \n", "\n", " y_plot = lr.predict(poly.transform(X[:, np.newaxis]))\n", " _ = plt.plot(X, y_plot, label='degree: %s' % degree)\n", "\n", "_ = plt.legend(bbox_to_anchor=(1.05, 1), loc=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Но что будет если увеличивать степень полинома?" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mae = []\n", "mse = []\n", "r2 = []\n", "degrees = range(4, 20)\n", "for degree in degrees:\n", " poly = PolynomialFeatures(degree=degree)\n", " poly.fit(X_train[:, np.newaxis])\n", " new_features = poly.transform(X_train[:, np.newaxis])\n", " new_test_features = poly.transform(X_test[:, np.newaxis])\n", " \n", " lr = LinearRegression()\n", " lr.fit(new_features, y_train)\n", " \n", " prediction = lr.predict(new_test_features)\n", " mse.append(mean_squared_error(y_test, prediction))\n", " mae.append(mean_absolute_error(y_test, prediction))\n", " r2.append(r2_score(y_test, prediction))\n", "\n", "plt.plot(degrees, mae, label='MAE')\n", "plt.plot(degrees, mse, label='MSE')\n", "plt.plot(degrees, r2, label='R2')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2)\n", "plt.xlabel('degree')\n", "plt.ylabel('value')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n6K+3X/Zy2Mu8NGUaf+7kzynvcpQiX0pLf7N2WJKVBQUFYWdnB/zfeusGgwGAZ599lsGDB+Po6Iid\nnR1vvPEGP//88zXrCQ8PZ/ny5URHR6PT6UhISEAIwdy5cwkICMBgMBAWFsbFixctZYYMGYKHhwd6\nvZ7Q0FCOHj0KQGxsLCtXrmTevHnodDoGDBgAgEqlqrVS3JW9++3bt+Pt7c28efPw8PDg1VdfBWDD\nhg0EBwej1+vp2bMnhw793+yM0dHRtGrVCp1OR7t27di2bdttv38yuUvSPSou7iu+mjKdeKWYgl+r\n+cfab3h6lw2GP7hw8eIP6PV9rR1ivXEMCaENFzhpKKX8tBulpcetHZJ0Dxg/fjzNmjWjQ4cOTJs2\njZCQa1+G2r59O+3bt7/mtmXLljF8+HAmTZpEYWEhvXv3Zv78+cTHx5OUlERmZiZ6vZ7x48dbyvTr\n148TJ06Qk5NDSEgIw4YNA2qWah0+fDhvv/02hYWFrFu3Drj2Gu9XysrKIj8/37La3b59+4iIiCA2\nNpa8vDwiIyPp378/lZWVpKWlsXDhQvbs2UNhYSFbtmy5o8tU8tyXJN2DLq93nlDdhuXtT2Pe+QEz\nv1rDl/v/iHbsKbRqX7RaD2uHWX/atEFJSyUn1AblN0+Z3O8RiUpivdQTKkLvqNzChQv517/+xY4d\nOxg8eDBdunShW7dutfY5ePAgs2bNYv369bdc7+LFi1m4cCEeHjX/hqKiovD19WXFihWoVCpGjx5t\n2TcqKoqYmBiKiopwcnK6Zn03W13PxsaGmTNnolargZozAGPHjqVr165AzfiC2bNns3PnTjw9Pamo\nqODw4cM0b94cHx+fWz6uK8nkLkn3oPT0dOzUvjxUepQD7gbIDMPNI4tmW82Uu2/HlcY9Sv53/P3h\n7Fla6tyoyvLEdCEN/KwdlHSnSbk+KYrCE088wUsvvURcXFyt5H78+HH69evHggULfrfu+o1kZGQw\ncOBAVKqak9eXT/tnZ2fj7u7O1KlTWbNmDbm5uSiKgqIo5ObmXje534zBYLAk9svtf/755yxYsMDS\nfmVlJZmZmTz++OPExMQwY8YMjhw5wjPPPMOHH35o+SFyq+p8Wl5RlFaKoiQoipKiKMohRVHerGud\nknS/8/Pzw7f8JOft7Cg6+SJwiK4FPqh7O5J7YR0tWgywdoj1S60GPz+etbMjs7o5OVn75b3uUi1V\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = plt.scatter(X_train, y_train, label='train')\n", "_ = plt.scatter(X_test, y_test, c='g', label='test')\n", "\n", "for degree in range(16, 40, 4):\n", " poly = PolynomialFeatures(degree=degree)\n", " poly.fit(X_train[:, np.newaxis])\n", " new_features = poly.transform(X_train[:, np.newaxis])\n", " new_test_features = poly.transform(X_test[:, np.newaxis])\n", " \n", " lr = LinearRegression()\n", " lr.fit(new_features, y_train)\n", " \n", " prediction = lr.predict(new_test_features)\n", "\n", " y_plot = lr.predict(poly.transform(X[:, np.newaxis]))\n", " _ = plt.plot(X, y_plot, label='%s features' % degree)\n", "\n", "_ = plt.legend(bbox_to_anchor=(1.05, 1), loc=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Какие недостатки такого подхода? При увеличении степени полинома получаем:\n", " - переобучение\n", " - очень много признаков" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }