{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Майнор по Анализу Данных, Группа ИАД-2\n", "## 22/02/2017 Линейная классификация" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "\n", "plt.style.use('ggplot')\n", "plt.rcParams['figure.figsize'] = (10,6)\n", "\n", "# Для кириллицы на графиках\n", "font = {'family': 'Verdana',\n", " 'weight': 'normal'}\n", "plt.rc('font', **font)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "code_folding": [], "collapsed": false }, "outputs": [], "source": [ "try:\n", " from ipywidgets import interact, IntSlider, fixed\n", "except ImportError:\n", " print u'Так надо'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Задача классификации" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "На прошлом семинаре мы рассматривали модели регрессии - случай, в котором необходимо было предсказать вещественную переменную $y \\in \\mathbb{R}^n$ (Стоимость автомобиля, стоимость жилья, размер мозга, объемы продаж и тп.)\n", "\n", "В задаче классификации переменная $y$ - содержит метку принадлежности к классу, как, например, это было в задаче с наивным байесом - категорию текстов. Частный случай задачи классификации - бинарная классификация $y = \\{-1, 1\\}$. Например: является ли клиент банка кредитоспособным, доброкачественная ли опухоль, сообщение - SPAM или HAM?\n", "\n", "Спрашивается, почему бы нам не взять, да и построить обычную регрессию на метки класса $y$?
\n", "Загрузите [данные](https://www.dropbox.com/s/g3s1drtaxqwthw1/crx.data?dl=0) о кредитовании. Они достаточно сильно анонимизированны и еще не до конца подходят для применения, но сейчас это нам не помешает. Постройте график наблюдений в координатах `y` и `a15`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df = pd.read_csv('crx.data',index_col=None) \n", "df.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df.plot(x='a15', y='y', kind='scatter')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Почему бы не обучить по этим данным регрессию, предстказывающую значение $y$? Да потому что это ~~бред~~ не очень корректно!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Немного теории" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Нам надо найти уравнение прямой (гиперплоскости), которая бы могла разделить два класса ($H_2$ и $H_3$ подходят). В данном случае, уравнение прямой задаётся как: $$g(x) = w_0 + w_1x_1 + w_2x_2 = \\langle w, x \\rangle = w^\\top x$$\n", "\n", "* Если $g(x^*) > 0$, то $y^* = \\text{'черный'}$\n", "* Если $g(x^*) < 0$, то $y^* = \\text{'белый'}$\n", "* Если $g(x^*) = 0$, то мы находимся на линии\n", "* т.е. решающее правило: $y^* = sign(g(x^*))$\n", "\n", "Некоторые геометрические особенности\n", "* $\\frac{w_0}{||w||}$ - расстояние от начала координат то прямой\n", "* $\\frac{|g(x)|}{||w||}$ - степень \"уверенности\" в классификациий\n", "* Величину $M = y\\langle w, x \\rangle = y \\cdot g(x)$ называют **отступом**(margin)\n", "\n", "Если для какого-то объекта $M \\geq 0$, то его классификация выполнена успешно." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Отлично! Значит нам надо просто минимизировать ошибки классификации для всех объектов:\n", "\n", "$$L(w) = \\sum_i [y^{(i)} \\langle w, x^{(i)} \\rangle < 0] \\rightarrow \\min_w$$\n", "Проблема в том, что это будет комбинаторная оптимизация. Существуют различные аппроксимации этой функции ошибок:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Знакомьтесь - Логистической регрессия!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Перед тем как мы начнем, рассмотрим функцию $$\\sigma(z) = \\frac{1}{1 + exp{(-z)}},$$она называется **сигмойда**. Постройте данную фукнцию." ] }, { "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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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Your code here\n", "def sigmoid(z):\n", " return 1./(1+np.exp(-z))\n", "\n", "z = np.arange(-10, 10)\n", "s = sigmoid(z)\n", "\n", "plt.plot(z, s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Можно несколькими способами представить линейную регрессию. Один из самых простых - вот какой.\n", "\n", "Рассмотрим принадлежность к классу $y=\\pm1$ некого объекта $x$: $p(y=\\pm1 | x,w)$ и выразим её через **сигмойду** от **отступа**:\n", "$$p(y=\\pm1|x,w) = \\sigma(y \\langle w, x \\rangle) $$\n", "\n", "А ошибка, которую мы будем минимизировать - логарифмическая:\n", "\n", "$$L(w) = -\\sum_i \\log(\\sigma(y^{(i)} \\langle w, x^{(i)} \\rangle)) \\rightarrow \\min_w$$\n", "\n", "**История с регуляризацией, мультиколлинеарностью и шкалированием признаков здесь полностью повторяется!**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Пример" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сгенерируем выборку и опробуем логистическую регрессию" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "np.random.seed(0)\n", "X = np.r_[np.random.randn(20, 2) + [2, 2],\n", " np.random.randn(20, 2) + [-2, -2]]\n", "y = [-1] * 20 + [1] * 20" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n+pOrKF+pAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(7, 7))\n", "ax.scatter(X[:, 0],\n", " X[:, 1],\n", " c=y,\n", " cmap=plt.cm.Paired)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Обучите логистическую регрессию на этих данных и нарисуйте разделяющую гиперплоскость" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", " intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n", " penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n", " verbose=0, warm_start=False)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model = LogisticRegression(C=1.0, \n", " fit_intercept=True, \n", " penalty='l2')\n", "model.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "w_0 = -0.183954\n", "w_1, w_2 = [[-1.06097157 -1.00171289]]\n" ] } ], "source": [ "print 'w_0 = %f' % model.intercept_\n", "print 'w_1, w_2 = ', model.coef_" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Нарисуем эту гиперплоскость\n", "w_0 = model.intercept_[0]\n", "w_1 = model.coef_[0][0]\n", "w_2 = model.coef_[0][1]\n", "\n", "x_1 = np.linspace(-4, 4, 10)\n", "x_2 = - (w_0 + w_1*x_1)/w_2" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nvqa+pj/r9OnTeuKJJ/T1r39dubm54Y4Y9xISEryO0Kq888472rp1qx588EEucnHZu+++q+LiYj3+\n+ONc1BJGn360OnbsWHXv3l1S3b0CT506pTfffFMTJ05s0vNExd/QmDFjNHr06Eb3fzr9FggEVFFR\n0WBfZmamEhMT639LReOaMs5VVVU6deqUVqxYoSeffFLS/xeru+++WzfccAPn/jRBU1/TnyotLdUT\nTzyhPn366J577gl3vLiWmpoqSRe9V5SXl9fvg7t+8YtfaP369fr+97/PlZdh8PHHH+vkyZO69957\n67d9evL6pEmT9KMf/YgbM7vg01nuz793ZGdnN2u2OyqKld/vl9/v/6s/17NnT73++uuqra2t/230\n2LFjqqmpUadOncIdM+Y1ZZwdx7noRPUDBw6osLBQeXl5yszMDGfEuNHU17Qk7d27Vz/5yU80atSo\nJv9GhMb5fD516dJFe/bsUb9+/eq379+/X4MHD/YwWXzauHGj3njjDc2fP79+lhvuuu666zRo0KAG\n25577jmFQiFNmzaNK11dEggElJ2drV27djV47/jggw+Uk5PT5OeJimLVVCNHjtQrr7yiZcuW6bvf\n/a5CoZA2bNigQYMGqUePHl7HiwvGmIteQGfPnpVU19qZ4ndXSUmJli5dqrFjx2rEiBE6ceJE/b7U\n1FSWErlE119/vTZu3Kju3bsrJydHv/71r3X06FHNnTvX62hxZcWKFfrDH/6gOXPm6LLLLmvw+uU/\ne/ckJydf9N776fdMKrhr7NixWrNmjdq1a6cBAwZo3759+vnPf96sTxJiqlilp6crLy9P69evV35+\nvowxGjp0qCZPnux1NOCSHDx4UDU1Ndq6dau2bt3aYN/MmTMbnE+Iprvxxht1/vx5rVmzRmVlZerc\nubMeeughZWdnex0truzZs0dlZWXKz8+/aN+mTZs8SAS0zMiRI5WYmKht27bp+eefV2ZmpmbMmKFh\nw4Y1+TmMw5nJAAAAroip5RYAAACiGcUKAADAJRQrAAAAl1CsAAAAXEKxAgAAcAnFCgAAwCUUKwAA\nAJdQrAAAAFxCsQIAAHAJxQoAAMAlFCsAAACX/B8lb7hggPFabAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(7, 7))\n", "ax.scatter(X[:, 0],\n", " X[:, 1],\n", " c=y,\n", " cmap=plt.cm.Paired)\n", "plt.plot(x_1, x_2)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_hat = model.predict(X)\n", "y_hat[:10]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 9.98616528e-01, 1.38347180e-03],\n", " [ 9.99496019e-01, 5.03981209e-04],\n", " [ 9.95091160e-01, 4.90883960e-03],\n", " [ 9.94323473e-01, 5.67652674e-03],\n", " [ 9.90157090e-01, 9.84290974e-03],\n", " [ 9.97319087e-01, 2.68091305e-03],\n", " [ 9.94720579e-01, 5.27942062e-03],\n", " [ 9.94026880e-01, 5.97312006e-03],\n", " [ 9.96628393e-01, 3.37160720e-03],\n", " [ 9.77815343e-01, 2.21846572e-02]])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_hat_proba = model.predict_proba(X)\n", "y_hat_proba[:10, :]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-6.58177471, -7.59246747, -5.31179677, -5.16572302, -4.61111223,\n", " -5.91891334, -5.23864551, -5.11449484, -5.68898843, -3.78591991])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dec_func = model.decision_function(X)\n", "dec_func[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Как сделать нелинейную границу?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Рассмотрим набор данных, который в простонародье называют \"Бублик\"." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sklearn.datasets import make_circles" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nMAUAAAAAFvx/5hhGn+7682sAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X, y = make_circles(n_samples=100, shuffle=True,\n", " noise = 0.1,\n", " factor=0.1)\n", "\n", "plt.scatter(X[:, 0],\n", " X[:, 1],\n", " c=y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Очевидно, что классы нельзя разделить линией. Но можно сделать это окружностью!
\n", "Т.е. разделяющся линия теперь будет задаваться не уравнением прямой $g(x) = w_0 + w_1x_1 + w_2x_2$, а уравнением окружности $c(x) = (x_1 - a)^2 + (x_2 - b)^2 - R^2$. \n", "\n", "Выполните преобразование матрицы X, чтобы в ней были столбцы для $x_1$, $x^2_1$, $x_2$, $x^2_2$ и обучите логистическую регрессию" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LogisticRegression(C=100000, class_weight=None, dual=False,\n", " fit_intercept=True, intercept_scaling=1, max_iter=100,\n", " multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,\n", " solver='liblinear', tol=0.0001, verbose=0, warm_start=False)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_new = np.c_[X[:,0], X[:,1], X[:,0]**2, X[:,1]**2]\n", "model = LogisticRegression(C=100000, \n", " fit_intercept=True)\n", "model.fit(X_new, y)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Посчитаем количество ошибок\n", "y_hat = model.predict(X_new)\n", "(y != y_hat).sum()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAAH+CAYAAACm6y6aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xd4VFX+P/D3nZo2mcmkFwgJHUILhJZAAJEqIggqTXAV\nVxBFvz9dXHV1xc6CKNhdXASlC4IgvVcRA9IxhARCgLRJZtKn3d8fGUZjKAlkMiXv1/Pk0Zy5d/IJ\nJ1Pec849RxBFUQQRERERERFB4uwCiIiIiIiIXAUDEhERERERkQ0DEhERERERkQ0DUj3at2+fs0sg\nB2MfNwzsZ8/HPvZ87OOGgf3s+RzRxwxI9Wj//v3OLoEcjH3cMLCfPR/72POxjxsG9rPnc0QfMyAR\nERERERHZMCARERERERHZMCARERERERHZMCDVo9DQUGeXQA7GPm4Y2M+ej33s+djHDQP72fM5oo8F\nURTFOr9XIiIiIiIiNyRz9A8QRREZGRl46623MGXKFHTp0uWWx58+fRpvvPFGtfYmTZrg/fffr/XP\nLygogNlsrvV5juDv7w+DweDsMsiB2McNA/vZ87GPPR/7uGFgP3u+mvaxTCZDQEBAje7ToQEpLy8P\nTz/99B2dO3v2bHh7e9u/l8nurFSz2QyTyXRH59Y1URRdphZyDPZxw8B+9nzsY8/HPm4Y2M+ezxF9\n7NCAFBAQgLlz5wIAnn/++VqdGxgYCB8fH0eURUREREREdEMODUhSqRQRERF3dO6UKVMglUoRGhqK\nAQMGoG/fvnVcHRERERERUVUOvwaptsLDw/HSSy9Bq9WioqICKSkp+OKLLyCVStG7d29nl0dERERE\nRB7M5QJSQEBAlQuoWrRoAZ1Ohy1bttw0IO3btw/79++v0hYaGopJkybB398frrJQn1wuh1ardXYZ\n5EDs44aB/ez52Meej33cMLCfPV9N+1gQBADAwoULkZ2dXeW2xMREJCUl2b93uYB0I2FhYUhNTb3p\n7UlJSVV+qT8zGAwuc3GeVquFTqdzdhnkQOzjhoH97PnYx56PfdwwsJ89X037WC6XIzg4GJMmTbrt\nsS63UazVaq3WlpaWhkaNGjmhGiIiIiIiakgcGpBEUURpaSlKSkoAAOXl5SgtLbXvS7R7926MGTMG\nZ86csZ/z6aefYunSpUhLS8OlS5ewZMkSpKSk4MEHH3RkqURERERERI7fB2natGn27+fPnw8AmDp1\nKpKTkyGKIqxWa5VrhNq1a4fNmzdj69atMBqNiImJwcyZMxEdHe3IUomIiIiIiCCIrrKCgYPk5uby\nGiSqN+zjhoH97PnYx56PfdwwsJ89X22vQaoJl7sGiYiIiIiIyFkYkIiIiIiIiGwYkIiIiIiIiGwY\nkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiI\niIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiI\niGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwY\nkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiI\niIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiI\niGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwY\nkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiI\niIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiI\niGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwYkIiIiIiIiGwY\nkIiIiIiIiGwYkIiIiIiIiGwcHpBEUUR6ejoef/xxHDlypEbnrFq1ClOmTMG4ceMwY8YMHD9+3MFV\nEhERUW2VlVmRnV2Bq1fLUVxscXY5RER1QubIO8/Ly8PTTz9dq3M2bdqEjRs3YurUqYiIiMDOnTsx\na9YszJ07F8HBwQ6qlIiIiGpDrzfjrbcOYdmys7BaRdx7bzTmzu2HgACHvrUgInI4h44gBQQEYO7c\nuZg7d26Nz9m2bRuGDx+Ozp07Izw8HGPHjkV4eDh27drluEKJiIioxgRBwL59WViy5AysVhEAsHXr\nRSxefAqiKDi5OiKiu+PQgCSVShEREYGIiIgaHW8ymZCZmYnY2Ngq7S1btsSFCxccUSIRERHVktUK\n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\nM8/swpUrFTe4qmb8/KqHIJVKxrVIRER0UwxIRER0TeXlIt54Yx8+++w3mM0VOHEiD2PHrkZubv0D\njCAIyMgoqtZ++XIx6jtAZbfbMXnyLfD1rRqSnnuuF0ePiIjophiQiIjomoqKrPj661NV2mw2EXv2\nZNR7JEYURfToEQa5vOr9DB3aEn5+9Z96GBrqg127JuCBBzrj7rvbY+vW8ejcOYg7BRIR0U3xrTQi\nIrommQwICfHDxYvmKu3h4ZoGuf/gYBVWrhyJp5/eifR0E4YPb4XXX+8LX9/6v3cnlwPNmvnilVd6\nAxAAcFtoIiKqGQYkIiK6JoNBhXnz+mHy5O+d0946dgzCLbc0zEiMSiVD796hWLduDOx2QKORN8gO\ndlWJjj9EREQ1w4BERETXJIoievUKw969k7B9+wVERWnRtasRer2yQb9HQ94fERFRfTEgERHRdfn4\nyNCihR+mTOkIAFzDQ0REHo8BiYiIborBiIiIvAV3sSMiIiIiInJgQCIiIiIiInJgQCIiIiIiInJg\nQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIi\nIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIi\nInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJg\nQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIi\nIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIi\nInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJg\nQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIi\nIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJgQCIiIiIiInJQuPLOzWYz\nFi9eDFEUMWvWrBpd8+ijjyI3N7da+/z58xEVFdXQJRIRERERETm5LCC99tprOHLkCAAgPj6+VteO\n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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Нарисуем полученную окружность\n", "\n", "x0, x1 = np.meshgrid(np.arange(-1.5, 1.5, 0.1),\n", " np.arange(-1.5, 1.5, 0.1))\n", "xx0, xx1 = x0.ravel(), x1.ravel()\n", "\n", "X_grid = np.c_[xx0, xx1, xx0**2, xx1**2]\n", "\n", "y_hat = model.decision_function(X_grid)\n", "y_hat = y_hat.reshape(x0.shape)\n", "\n", "plt.contour(x0, x1, y_hat, levels=[0])\n", "plt.scatter(X[:,0], \n", " X[:, 1], \n", " c=y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Задача на \"реальных\" данных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Предобработка данных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Вновь [данные](https://www.dropbox.com/s/jeijgsga8w55c8w/crx.data?dl=0) по кредитованию.\n", "\n", "Столбец с классом называется `y`.
Значение $1$ соответствует классу клиентов банка, которым выдали кредит и они его успешно вернули.
Значение $-1$ соответствует клиентам, невыполнившим свои кредитные обязанности. \n", "\n", "В банке хотят уметь определять по признакам `a1-a15`, сможет ли новый клиент вернуть кредит или нет? То есть нам надо обучить классификатор! *Обычно, в банках используют скор-карты, но процесс их построения тесно связан с логистической регрессией*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Загрузите данные и преобразуйте признаки `a1`, `a9`, `a10` и `a12` из строковых в числовые. В них только 2 возможных значения. Для этого можно использовать функцию DataFrame.replace() в `pandas` или самое обычное присваивание на соответствующих строках." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "В признаках `a6`, `a7` присутствуют \"редкие\" значение. Найдите их с помощью фунцкии `.value_counts()` и объедините, присвоив им одно и то же значение, например `'Other'`." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выделите бинарные признаки `a1`, `a9`, `a10` и `a12` в матрицу `X_binary`\n", "\n", "Преобразуйте категориальные признаки `a5`, `a6`, `a7`, `a13` с помощью `DictVectorizer`. Вы должны получить матрицу `X_cat`.\n", "\n", "Нормализуйте количественные признаки `a2`, `a3`, `a8`, `a11`, `a14` и `a15` с помощью `StandartScaler` или вручную. Вы должны получить матрицу `X_real`.\n", "\n", "Матрица `X_cat` будет sparse-матрицой (разреженной). Преобразуте её в полную матрицу с помощью команд `X_cat = X_cat.toarray()` или `X_cat = X_cat.todence()`\n", "\n", "Используйте функцию np.concatinate(..) или np.c[..] чтобы сцепить матрицы `X_binary`, `X_cat` и `X_real`\n", "\n", "В результате вы должны получить матрицу с преобразованными призанками `X` и вектор ответов `y`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Исследование влияния регуляризации\n", "\n", "В случае с логистичесткой регресии, сложность модели выражается в значениях весов $w_j$ при признаках. Больший вес означает большее влияние признака на результат. В таком случае, давайте добавил штрафное слагаемое в функцию оптимизации для логистической регресии. Самый распространенные из них это:\n", "\n", "* Ridge regression\n", "$$L(w) = - \\left(\\sum_i \\log(\\sigma(y^{(i)} \\langle w, x^{(i)} \\rangle)) + \\frac{1}{C}\\sum_j w_j^2\\right) \\rightarrow \\min_w$$\n", "\n", "* Lasso regression\n", "$$L(w) = -\\left(\\sum_i \\log(\\sigma(y^{(i)} \\langle w, x^{(i)} \\rangle) + \\frac{1}{C}\\sum_j |w_j|\\right) \\rightarrow \\min_w$$\n", "\n", "$C$ - называется гиперпараметром регуляризации и он задается вручную. Выбирается он с помощью кросс-валидации. Чем больше $С$ - тем меньше влияние регуляризации.\n", "\n", "\n", "Разделите ваши даннные на обучающую и контрольную выборку в пропорции 70/30 соответственно.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lasso regression называется так, потому что она осуществляет \"отлов\" признаков - т.е. незначимые признаки будут иметь нулевые веса в модели, в то время как в Ridge regression - веса будут постепенно падать у всех признаков.\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Давайте сравним работу регуляризаторов. \n", "\n", "1. Разбейте данные на обучающую и валидационную выборки в пропорции 70\\30.\n", "1. Для $C$ из набора np.logspace(-3, 3, 10) обучите LogisctigRegression c Lasso регуляризацией (`penalty='l1'`). На каждой итерации оцените качество (ROC-AUC) на валидационной выборке и запомните полученные коэффициенты модели\n", "1. На одном графике выведите значение качества в зависимости от параметра `C` \n", "1. На другом графике для каждого признака выведите значение коэффициента в модели в зависимости от параметра `C`\n", "1. Проделайте тоже самое для Ridge регуляризации (`penalty='l2'`)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Your code here" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "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.12" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": false, "sideBar": false, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": true }, "toc_position": { "height": "44px", "left": "20px", "right": "562.667px", "top": "29px", "width": "164px" } }, "nbformat": 4, "nbformat_minor": 2 }