{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Uczenie maszynowe – zastosowania\n", "# 5. Regresja wielomianowa. Problem nadmiernego dopasowania" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 5.1. Regresja wielomianowa" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Wprowadzenie: wybór cech" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Niech naszym zadaniem będzie przewidzieć cenę działki o kształcie prostokąta.\n", "\n", "Jakie cechy wybrać?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Możemy wybrać dwie cechy:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " * $x_1$ – szerokość działki, $x_2$ – długość działki:\n", "$$ h_{\\theta}(\\vec{x}) = \\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "...albo jedną:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " * $x_1$ – powierzchnia działki:\n", "$$ h_{\\theta}(\\vec{x}) = \\theta_0 + \\theta_1 x_1 $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "**Wniosek:** możemy tworzyć nowe cechy na podstawie innych poprzez wykonywanie na nich różnych operacji matematycznych." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Można też zauważyć, że cecha „powierzchnia działki” powstaje przez pomnożenie dwóch innych cech: długości działki i jej szerokości." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Regresja wielomianowa" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "W regresji wielomianowej będziemy korzystać z cech, które utworzymy jako potęgi cech wyjściowych." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Przydatne importy\n", "\n", "import ipywidgets as widgets\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Przydatne funkcje\n", "\n", "def cost(theta, X, y):\n", " \"\"\"Wersja macierzowa funkcji kosztu\"\"\"\n", " m = len(y)\n", " J = 1.0 / (2.0 * m) * ((X * theta - y).T * (X * theta - y))\n", " return J.item()\n", "\n", "def gradient(theta, X, y):\n", " \"\"\"Wersja macierzowa gradientu funkcji kosztu\"\"\"\n", " return 1.0 / len(y) * (X.T * (X * theta - y)) \n", "\n", "def gradient_descent(fJ, fdJ, theta, X, y, alpha=0.1, eps=10**-5):\n", " \"\"\"Algorytm gradientu prostego (wersja macierzowa)\"\"\"\n", " current_cost = fJ(theta, X, y)\n", " logs = [[current_cost, theta]]\n", " while True:\n", " theta = theta - alpha * fdJ(theta, X, y)\n", " current_cost, prev_cost = fJ(theta, X, y), current_cost\n", " if abs(prev_cost - current_cost) > 10**15:\n", " print('Algorithm does not converge!')\n", " break\n", " if abs(prev_cost - current_cost) <= eps:\n", " break\n", " logs.append([current_cost, theta]) \n", " return theta, logs\n", "\n", "def plot_data(X, y, xlabel, ylabel):\n", " \"\"\"Wykres danych (wersja macierzowa)\"\"\"\n", " fig = plt.figure(figsize=(16*.6, 9*.6))\n", " ax = fig.add_subplot(111)\n", " fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n", " ax.scatter([X[:, 1]], [y], c='r', s=50, label='Dane')\n", " \n", " ax.set_xlabel(xlabel)\n", " ax.set_ylabel(ylabel)\n", " ax.margins(.05, .05)\n", " plt.ylim(y.min() - 1, y.max() + 1)\n", " plt.xlim(np.min(X[:, 1]) - 1, np.max(X[:, 1]) + 1)\n", " return fig\n", "\n", "def plot_fun(fig, fun, X):\n", " \"\"\"Wykres funkcji `fun`\"\"\"\n", " ax = fig.axes[0]\n", " x0 = np.min(X[:, 1]) - 1.0\n", " x1 = np.max(X[:, 1]) + 1.0\n", " Arg = np.arange(x0, x1, 0.1)\n", " Val = fun(Arg)\n", " return ax.plot(Arg, Val, linewidth='2')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Wczytanie danych (mieszkania) przy pomocy biblioteki pandas\n", "\n", "alldata = pandas.read_csv('data_flats.tsv', header=0, sep='\\t',\n", " usecols=['price', 'rooms', 'sqrMetres'])\n", "data = np.matrix(alldata[['sqrMetres', 'price']])\n", "\n", "m, n_plus_1 = data.shape\n", "n = n_plus_1 - 1\n", "Xn = data[:, 0:n]\n", "Xn /= np.amax(Xn, axis=0)\n", "Xn2 = np.power(Xn, 2) \n", "Xn2 /= np.amax(Xn2, axis=0)\n", "Xn3 = np.power(Xn, 3) \n", "Xn3 /= np.amax(Xn3, axis=0)\n", "\n", "X = np.matrix(np.concatenate((np.ones((m, 1)), Xn), axis=1)).reshape(m, n + 1)\n", "X2 = np.matrix(np.concatenate((np.ones((m, 1)), Xn, Xn2), axis=1)).reshape(m, 2 * n + 1)\n", "X3 = np.matrix(np.concatenate((np.ones((m, 1)), Xn, Xn2, Xn3), axis=1)).reshape(m, 3 * n + 1)\n", "y = np.matrix(data[:, -1]).reshape(m, 1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Postać ogólna regresji wielomianowej:\n", "\n", "$$ h_{\\theta}(x) = \\sum_{i=0}^{n} \\theta_i x^i $$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "# Funkcja regresji wielomianowej\n", "\n", "def h_poly(Theta, x):\n", " \"\"\"Funkcja wielomianowa\"\"\"\n", " return sum(theta * np.power(x, i) for i, theta in enumerate(Theta.tolist()))\n", "\n", "def polynomial_regression(theta):\n", " \"\"\"Funkcja regresji wielomianowej\"\"\"\n", " return lambda x: h_poly(theta, x)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Najprostszym przypadkiem regresji wielomianowej jest funkcja kwadratowa:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Funkcja kwadratowa:\n", "\n", "$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 $$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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7h/19WFkZjOAjwLVfS4l3OdHXaV+ic3MthH5aJqvJvAxi5xzTWZWCGw1s/dC/xOT+FiE1/puZ47nHklcPO36FjDdOdduZkuBnxI6UkqGjfq7P9TXh5GZBYDXgL90zrX1vRzhLTH7vEbIUoxzrso5d0uEr58BLeEh09D31iif0RT63gr8BG8aSOLXCEzr9bwEaBrAPZK4a7arc67NOdceevwLINvMJo1ciGlJ/d0H6uvDx8yy8ZKxl5xzr0e4JeE+r4QsvbwBrAw9Xgn8rO8NZjbWzArCj4F7gYg7eCSqfcAsMys1sxxgOV7b9/YGsCK0E2c+cDY8nSyDcs22N7PJZmahx3Pxfg+eHvFI04v6uw/U14dHqE2fBw455/45ym0J93lNWaaXJ4FXzewR4BiwDMDMioF1zrmlQBHwk9C/4SzgZefcL32Kd1RyznWb2ZeAzUAm8IJzrsbM/iJ0/VngF8BSoB44B3zBr3hTSZxt/1lglZl1A+eB5U4VsgfFzF4B7gEmmVkj8A9ANqi/D6c42l19fXgsAv4cOGhmb4de+zvgBhh4n1elfhERERGfacpSRERExGdKyERERER8poRMRERExGdKyERERER8poRMRERExGdKyERERER8poRMRERExGdKyEQk7ZjZnWb2jpmNCZ1OUWNmt/gdl4ikLxWGFZG0ZGb/CIwB8oBG59xan0MSkTSmhExE0lLorMt9wAVgoXPuks8hiUga05SliKSriUAAKMAbKRMR8Y1GyEQkLZnZG8CPgVJginPuSz6HJCJpLMvvAERERpqZrQC6nXMvm1km8Csz+7hzboffsYlIetIImYiIiIjPtIZMRERExGdKyERERER8poRMRERExGdKyERERER8poRMRERExGdKyERERER8poRMRERExGdKyERERER89v9v+uR1RUNIPQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X2, y, xlabel='x', ylabel='y')\n", "theta_start = np.matrix([0, 0, 0]).reshape(3, 1)\n", "theta, logs = gradient_descent(cost, gradient, theta_start, X2, y)\n", "plot_fun(fig, polynomial_regression(theta), X)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Innym szczególnym przypadkiem regresji wielomianowej jest funkjca sześcienna:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Funkcja sześcienna:\n", "\n", "$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 + \\theta_3 x^3 $$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 397521.22456017]\n", " [-841359.33647153]\n", " [2253763.58150567]\n", " [-244046.90860749]]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X3, y, xlabel='x', ylabel='y')\n", "theta_start = np.matrix([0, 0, 0, 0]).reshape(4, 1)\n", "theta, _ = gradient_descent(cost, gradient, theta_start, X3, y)\n", "plot_fun(fig, polynomial_regression(theta), X)\n", "\n", "print(theta)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Regresję wielomianową można potraktować jako szczególny przypadek regresji liniowej wielu zmiennych:\n", "\n", "$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 x^2 + \\theta_3 x^3 $$\n", "$$ x_1 = x, \\quad x_2 = x^2, \\quad x_3 = x^3, \\quad \\vec{x} = \\left[ \\begin{array}{ccc} x_0 \\\\ x_1 \\\\ x_2 \\end{array} \\right] $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "(W tym przypadku za kolejne cechy przyjmujemy kolejne potęgi zmiennej $x$)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Uwaga praktyczna: przyda się normalizacja cech, szczególnie skalowanie!" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Do tworzenia cech „pochodnych” możemy używać nie tylko potęgowania, ale też innych operacji matematycznych, np.:\n", "\n", "$$ h_{\\theta}(x) = \\theta_0 + \\theta_1 x + \\theta_2 \\sqrt{x} $$\n", "$$ x_1 = x, \\quad x_2 = \\sqrt{x}, \\quad \\vec{x} = \\left[ \\begin{array}{ccc} x_0 \\\\ x_1 \\end{array} \\right] $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Jakie zatem cechy wybrać? Najlepiej dopasować je do konkretnego problemu." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Wielomianowa regresja logistyczna\n", "\n", "Podobne modyfikacje cech możemy również stosować dla regresji logistycznej." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def powerme(x1,x2,n):\n", " \"\"\"Funkcja, która generuje n potęg dla zmiennych x1 i x2 oraz ich iloczynów\"\"\"\n", " X = []\n", " for m in range(n+1):\n", " for i in range(m+1):\n", " X.append(np.multiply(np.power(x1,i),np.power(x2,(m-i))))\n", " return np.hstack(X)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [ { "data": { "text/plain": [ "matrix([[ 1. , 0.36596696, -0.11214686],\n", " [ 0. , 0.4945305 , 0.47110656],\n", " [ 0. , 0.70290604, -0.92257983],\n", " [ 0. , 0.46658862, -0.62269739],\n", " [ 0. , 0.87939462, -0.11408015],\n", " [ 0. , -0.331185 , 0.84447667],\n", " [ 0. , -0.54351701, 0.8851383 ],\n", " [ 0. , 0.91979241, 0.41607012],\n", " [ 0. , 0.28011742, 0.61431157],\n", " [ 0. , 0.94754363, -0.78307311]])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Wczytanie danych\n", "import pandas\n", "import numpy as np\n", "\n", "alldata = pandas.read_csv('polynomial_logistic.tsv', sep='\\t')\n", "data = np.matrix(alldata)\n", "\n", "m, n_plus_1 = data.shape\n", "n = n_plus_1 - 1\n", "Xn = data[:, 1:]\n", "\n", "Xpl = powerme(data[:, 1], data[:, 2], n)\n", "Ypl = np.matrix(data[:, 0]).reshape(m, 1)\n", "\n", "data[:10]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def plot_data_for_classification(X, Y, xlabel, ylabel):\n", " \"\"\"Wykres danych (wersja macierzowa)\"\"\"\n", " fig = plt.figure(figsize=(16*.6, 9*.6))\n", " ax = fig.add_subplot(111)\n", " fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)\n", " X = X.tolist()\n", " Y = Y.tolist()\n", " X1n = [x[1] for x, y in zip(X, Y) if y[0] == 0]\n", " X1p = [x[1] for x, y in zip(X, Y) if y[0] == 1]\n", " X2n = [x[2] for x, y in zip(X, Y) if y[0] == 0]\n", " X2p = [x[2] for x, y in zip(X, Y) if y[0] == 1]\n", " ax.scatter(X1n, X2n, c='r', marker='x', s=50, label='Dane')\n", " ax.scatter(X1p, X2p, c='g', marker='o', s=50, label='Dane')\n", " \n", " ax.set_xlabel(xlabel)\n", " ax.set_ylabel(ylabel)\n", " ax.margins(.05, .05)\n", " return fig" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Przyjmijmy, że mamy następujące dane i chcemy przeprowadzić klasyfikację dwuklasową dla następujących klas:\n", " * czerwone krzyżyki\n", " * zielone kółka" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Propozycja hipotezy:\n", "\n", "$$ h_\\theta(x) = g(\\theta^T x) = g(\\theta_0 + \\theta_1 x_1 + \\theta_2 x_2 + \\theta_3 x_3 + \\theta_4 x_4 + \\theta_5 x_5) \\; , $$\n", "\n", "gdzie $g$ – funkcja logistyczna, $x_3 = x_1^2$, $x_4 = x_2^2$, $x_5 = x_1 x_2$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def safeSigmoid(x, eps=0):\n", " \"\"\"Funkcja sigmoidalna zmodyfikowana w taki sposób, \n", " żeby wartości zawsz były odległe od asymptot o co najmniej eps\n", " \"\"\"\n", " y = 1.0/(1.0 + np.exp(-x))\n", " if eps > 0:\n", " y[y < eps] = eps\n", " y[y > 1 - eps] = 1 - eps\n", " return y\n", "\n", "def h(theta, X, eps=0.0):\n", " \"\"\"Funkcja hipotezy\"\"\"\n", " return safeSigmoid(X*theta, eps)\n", "\n", "def J(h,theta,X,y, lamb=0):\n", " \"\"\"Funkcja kosztu\"\"\"\n", " m = len(y)\n", " f = h(theta, X, eps=10**-7)\n", " j = -np.sum(np.multiply(y, np.log(f)) + \n", " np.multiply(1 - y, np.log(1 - f)), axis=0)/m\n", " if lamb > 0:\n", " j += lamb/(2*m) * np.sum(np.power(theta[1:],2))\n", " return j\n", "\n", "def dJ(h,theta,X,y,lamb=0):\n", " \"\"\"Pochodna funkcji kosztu\"\"\"\n", " g = 1.0/y.shape[0]*(X.T*(h(theta,X)-y))\n", " if lamb > 0:\n", " g[1:] += lamb/float(y.shape[0]) * theta[1:] \n", " return g\n", "\n", "def classifyBi(theta, X):\n", " \"\"\"Funkcja decyzji\"\"\"\n", " prob = h(theta, X)\n", " return prob" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def GD(h, fJ, fdJ, theta, X, y, alpha=0.01, eps=10**-3, maxSteps=10000):\n", " \"\"\"Metoda gradientu prostego dla regresji logistycznej\"\"\"\n", " errorCurr = fJ(h, theta, X, y)\n", " errors = [[errorCurr, theta]]\n", " while True:\n", " # oblicz nowe theta\n", " theta = theta - alpha * fdJ(h, theta, X, y)\n", " # raportuj poziom błędu\n", " errorCurr, errorPrev = fJ(h, theta, X, y), errorCurr\n", " # kryteria stopu\n", " if abs(errorPrev - errorCurr) <= eps:\n", " break\n", " if len(errors) > maxSteps:\n", " break\n", " errors.append([errorCurr, theta]) \n", " return theta, errors" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "theta = [[ 1.59558981]\n", " [ 0.12602307]\n", " [ 0.65718518]\n", " [-5.26367581]\n", " [ 1.96832544]\n", " [-6.97946065]]\n" ] } ], "source": [ "# Uruchomienie metody gradientu prostego dla regresji logistycznej\n", "theta_start = np.matrix(np.zeros(Xpl.shape[1])).reshape(Xpl.shape[1],1)\n", "theta, errors = GD(h, J, dJ, theta_start, Xpl, Ypl, \n", " alpha=0.1, eps=10**-7, maxSteps=10000)\n", "print(r'theta = {}'.format(theta))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def plot_decision_boundary(fig, theta, X):\n", " \"\"\"Wykres granicy klas\"\"\"\n", " ax = fig.axes[0]\n", " xx, yy = np.meshgrid(np.arange(-1.0, 1.0, 0.02),\n", " np.arange(-1.0, 1.0, 0.02))\n", " l = len(xx.ravel())\n", " C = powerme(xx.reshape(l, 1), yy.reshape(l, 1), n)\n", " z = classifyBi(theta, C).reshape(int(np.sqrt(l)), int(np.sqrt(l)))\n", "\n", " plt.contour(xx, yy, z, levels=[0.5], lw=3);" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":10: UserWarning: The following kwargs were not used by contour: 'lw'\n", " plt.contour(xx, yy, z, levels=[0.5], lw=3);\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')\n", "plot_decision_boundary(fig, theta, Xpl)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Wczytanie danych\n", "\n", "alldata = pandas.read_csv('polynomial_logistic.tsv', sep='\\t')\n", "data = np.matrix(alldata)\n", "\n", "m, n_plus_1 = data.shape\n", "Xn = data[:, 1:]\n", "\n", "n = 10\n", "Xpl = powerme(data[:, 1], data[:, 2], n)\n", "Ypl = np.matrix(data[:, 0]).reshape(m, 1)\n", "\n", "theta_start = np.matrix(np.zeros(Xpl.shape[1])).reshape(Xpl.shape[1],1)\n", "theta, errors = GD(h, J, dJ, theta_start, Xpl, Ypl, \n", " alpha=0.1, eps=10**-7, maxSteps=10000)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":10: UserWarning: The following kwargs were not used by contour: 'lw'\n", " plt.contour(xx, yy, z, levels=[0.5], lw=3);\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Przykład dla większej liczby cech\n", "fig = plot_data_for_classification(Xpl, Ypl, xlabel=r'$x_1$', ylabel=r'$x_2$')\n", "plot_decision_boundary(fig, theta, Xpl)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 5.2. Problem nadmiernego dopasowania" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Obciążenie a wariancja" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Dane do prostego przykładu\n", "\n", "data = np.matrix([\n", " [0.0, 0.0],\n", " [0.5, 1.8],\n", " [1.0, 4.8],\n", " [1.6, 7.2],\n", " [2.6, 8.8],\n", " [3.0, 9.0],\n", " ])\n", "\n", "m, n_plus_1 = data.shape\n", "n = n_plus_1 - 1\n", "Xn1 = data[:, 0:n]\n", "Xn1 /= np.amax(Xn1, axis=0)\n", "Xn2 = np.power(Xn1, 2) \n", "Xn2 /= np.amax(Xn2, axis=0)\n", "Xn3 = np.power(Xn1, 3) \n", "Xn3 /= np.amax(Xn3, axis=0)\n", "Xn4 = np.power(Xn1, 4) \n", "Xn4 /= np.amax(Xn4, axis=0)\n", "Xn5 = np.power(Xn1, 5) \n", "Xn5 /= np.amax(Xn5, axis=0)\n", "\n", "X1 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1), axis=1)).reshape(m, n + 1)\n", "X2 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1, Xn2), axis=1)).reshape(m, 2 * n + 1)\n", "X5 = np.matrix(np.concatenate((np.ones((m, 1)), Xn1, Xn2, Xn3, Xn4, Xn5), axis=1)).reshape(m, 5 * n + 1)\n", "y = np.matrix(data[:, -1]).reshape(m, 1)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X1, y, xlabel='x', ylabel='y')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X1, y, xlabel='x', ylabel='y')\n", "theta_start = np.matrix([0, 0]).reshape(2, 1)\n", "theta, _ = gradient_descent(cost, gradient, theta_start, X1, y, eps=0.00001)\n", "plot_fun(fig, polynomial_regression(theta), X1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Ten model ma duże **obciążenie** (**błąd systematyczny**, _bias_) – zachodzi **niedostateczne dopasowanie** (_underfitting_)." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAFoCAYAAAAfEiweAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd3yV5cH/8e91ssmAACFA2CTsKWGDIm4caBVxVlstWldt+1StHc/z9Pm1tba1tVatVq0LFQsOFMRRQUWGhr1JGBkEQoCQBZnn+v1xAiKCBEjOdcbn/XrxSnLOCfl6v26O31zXfV+XsdYKAAAA/uVxHQAAACAcUcIAAAAcoIQBAAA4QAkDAABwgBIGAADgACUMAADAgWYrYcaY54wxu40xa494rLUx5kNjTHbDx+Tm+vkAAACBrDlHwp6XdOFRjz0g6T/W2gxJ/2n4GgAAIOyY5lys1RjTTdK71toBDV9vkjTBWrvTGNNB0gJrbe9mCwAAABCg/H1NWKq1dqckNXxs5+efDwAAEBAiXQc4HmPMNEnTJCk+Pn5Ynz59HCcCAAD4umXLlu2x1qacyvf6u4QVGWM6HDEduft4L7TWPi3paUnKzMy0WVlZ/soIAADQKMaY3FP9Xn9PR86WdFPD5zdJetvPPx8AACAgNOcSFa9KWiyptzGmwBhzi6SHJJ1njMmWdF7D1wAAAGGn2aYjrbXXHuepc5rrZwIAAAQLVswHAABwgBIGAADgACUMAADAAUoYAACAA5QwAAAAByhhAAAADlDCAAAAHKCEAQAAOEAJAwAAcIASBgAA4AAlDAAAwAFKGAAAgAOUMAAAAAcoYQAAAA5QwgAAAByghAEAADhACQMAAHCAEgYAAOBApOsAAIDwYa1Vndeqps7r+1Pv+1h91Ne+z+u/9lyrFtE6o0srtUmIcf2fATQJShgAoEmVHqzV5zl79MnaQn2xvkDlNV5VR0SqxhOpmnqvrD29v79H23id0TVZmV2TNaxrsnqmJMjjMU0THvAjShgA4LRYa7WusEyfbC7WJ5uKtSyvRPXeQ00rUjKSvJK8XklShMcoOsKj6MiGPxEexUR+/etjfb6j5KBWFezX1j2V2rqnUjOXFUiSWsZFaVhDIRvWNVmDO7VSXHSEk2MBnAxKGADgpJUeqNVnOcVasKlYn2wuVnF59eHnIow0YscGTcheqjO3r1C7in2Krq/1/YmLVeSOAikh4ZR+bm29V+sLy7Qst0TLckuUlbtPRWXV+njjbn28cbckKdJj1L9jkoZ1ba3Mbr5ilpoU2yT/3UBTMvZ0x4X9IDMz02ZlZbmOAQBhy+v1jXYt2LRbCzYXa0VeibxH/O+jfVKsJvRO0Vm9UjR20Vwl/fRHUmXlN/+i+Hjp0UelW25pklzWWu3Yf/CrUra9RBt3lX0tmyR1So47PH05vHtr9U5NlDFMYeL0GWOWWWszT+V7GQkDABxTSWWNPs32jXR9urlYeypqDj8X6TEa2b21zuqdogm9U75eal7efOwCJvkez8lpsozGGHVKbqFOyS00eUiaJKmiuk4r8/YrK3efluWWaEXefhWUHFRByUG9tbJQknRGl1a6e2KGJvROoYzBGUoYAOCwmjqvZmTl643lBVqVv/9rI0odW8bqrN7tNKF3isamt1VCzHH+F5KR4RvxOt5IWHp684RvkBATqXEZbTUuo60kqd5rtbmoXFm5JVqeW6L5m3Zred5+fe/5LzUgLUl3nZ2h8/ulcnE//I7pSAAIR+Xl0owZUna2lJEh79VXa862Cv3pg03K3XtAkhQVYTSie2tN6OUrXuntEho3alReLqWl+T4eLTFRKiw85WvCmkJldZ1eWZqnpz7dqj0VvmvZeqcm6s6J6bp4YAdFUMZwEk5nOpISBgDhZuFCadIk392KlZVa1GuEHhp7vVa36ylJ6pkSrx+d20vn9Gmn+OONdp3kz1B8vOTxSHPnSuPGNeF/zKmrqq3XjC/z9Y9PtmhnaZUk3/IXd5ydrslDOioqgvXMcWKUMABA4xwxSrU+pbv+MOEmfdLD9/+PdpUl+vGUkZoytqcim6KAVFT4RttycnxTkFOnOh0BO56aOq9mLS/QEwtylL/voCTfhfw/nNBTVw3rpJhIlrvA8VHCAACN88wzyv/Vb/XIsO/orf4TZI1HidWVun3JTH1vw3/U4s8PN9mdi8Gmtt6r2SsL9fiCHG0t9l3P1j4pVred1UPXDO/C2mM4Ju6OBACcUElljR7PrteL1/9FNZFRiqqv1Y3LZ+uuxa+r9cEy34ua8M7FYBMV4dGVwzrp8qFpmrtmp/7+cY42FZXrf99Zr8fn5+gH43vo+lFdj39DAnCSOJMAIMQdrKnXc59v0z8WbFG56SRFSpevm6+ffvayOpcWffVCP9y5GAwiPEaXDu6oiwd20EcbivTYxzlas6NUv39vo578ZIu+P7a7bhrTTS3jolxHRZBjOhIAQlRdvVczlxXoLx9tVlGZ7y7A8T2Sdf9Dt2vAtjXf/IYAuHMxEFlr9cnmYj32cY6W5ZZIkhJjInXTmG66ZVx3JcdHO04Il7gmDABwmLVWH64v0sPvb1LO7gpJ0oC0JD1wYV/f2llBcOdiILLWavHWvfr7xzlatGWvJKltQrT+MnWIxmekOE4HVyhhAABJUtb2fXrovY3Kahix6dw6Tv91fm9dOqjj1xcjDZI7FwPVstx9+sO8Tfpi2z4ZI90xoad+fG6vprmrFEGFEgYAYa64vFq/fGuN3l/nu8ardXy07p6YrutHdlV0JMWgOdR7rR6fn6O/frRZXisN75asv107VB1axrmOBj+ihAFAGFuVv1+3v7xMO0urFBcVoVvHd9e0M3soMZYLx/1hyda9+tFrK1RUVq3kFlH689WDNbFPqutY8JPTKWH8egQAQez1rHxNeWqxdpZW6YwurfTxf52ln57fmwLmR6N6tNHce8ZrQu8UlRyo1fefz9Jv56xXTZ3XdTQEOEoYAAShmjqvfv32Wt03c7Vq6ry6fmQXvTZtNFNhjrRJiNFzNw3Xzy/qowiP0T8/26YpTy1W/r4DrqMhgFHCACDI7C6v0vXPLNGLi3MVHeHRQ98ZqN9eMZBrvxzzeIxuO6unXr9ttNJaxWlV/n5N+ttnem/NTtfREKD4FwsAQWRFXokufWyhvtxeotSkGM24bZSuGdHFdSwcYVjXZM25Z5zO75eq8qo6/XD6cv367bWqqq13HQ0BhhIGAEFixpd5mvrUEhWVVWt4t2S9c/c4De2S7DoWjqFVi2g9deMw/c+l/RQd4dGLi3P1nScWaWtxhetoCCCUMAAIcDV1Xv3izTW6f9Ya1dR79d3RXTX91lFqlxjrOhq+hTFGN4/trlk/HKOubVpo/c4yXfrYQr29cofraAgQlDAACGC7y6p07T+XaPrSPEVHevTwVYP0m8kDuP4riAzs1FLv3j1OlwzqoMqaev3otZW6f+ZqHaxhejLc8a8YAALUstx9uuSxhVqWW6IOLWP179tG6+rMzq5j4RQkxkbpsWuH6ndXDFRMpEczsvI1+fGF2lxU7joaHKKEAUAAemVpnq55eol2l1drRPfWeufucRrcuZXrWDgNxhhdN7KL3rpzrHqmxGtzUYUu+/tCvf5lvoJh4XQ0PUoYAASQ6rp6/fyN1XrwzTWqrbe6eUw3Tb91pNomxLiOhibSt0OSZt81Tlee0UlVtV7dN2u1fjxjJXdPhqFI1wEAAD5FZVW6/eVlWpG3X9GRHv3uioG6algn17HQDOJjIvXnqwdrdM82+tVba/XWykLtqajRMzdlKjYqwnU8+AkjYQAQALK2+67/WpG3Xx1bxmrW7WMoYGHgqmGd9NadY9U2IUYLc/bo1heyGBELI05KmDHmx8aYdcaYtcaYV40x3GcNICxZa/XSklxd8/QSFZdXa1QP3/VfAzu1dB0NftK7faJe/cFIilgY8nsJM8akSbpHUqa1doCkCEnX+DsHALhmrdVv3l2vX721VnVeq1vGddfLt4xUG67/CjsZqRSxcORqOjJSUpwxJlJSC0mFjnIAgDMPv79J//p8u6IjPPrL1MH61SX9FBnBVSLhKiM1Ua9N+3oRYy2x0Ob3f+3W2h2S/iQpT9JOSaXW2g+Ofp0xZpoxJssYk1VcXOzvmADQrB6fn6MnF2xRhMfo8evP0BVDuf4LUnq7rxexH7xIEQtlLqYjkyVNltRdUkdJ8caYG45+nbX2aWttprU2MyUlxd8xAaDZPP/5Nv3x/U0yRnrk6sE6r1+q60gIIBSx8OFi3PtcSdustcXW2lpJb0ga4yAHAPjd61n5+p931kuSfnfFQE0ekuY4EQIRRSw8uChheZJGGWNaGGOMpHMkbXCQAwD8as7qnXpg1mpJ0i8v7qtrR3RxnAiB7OgiduuLX1LEQoyLa8KWSpopabmkNQ0ZnvZ3DgDwp483FulHr62Q10o/PreXbh3fw3UkBAFfERultgkx+jxnL0UsxDi5Dcda+9/W2j7W2gHW2huttdUucgCAPyzaske3v7xcdV6raWf20D3npLuOhCCS3i6BIhaiuBcaAJrRirwS/eCFLNXUeXXdyC76+UV95LsSA2g8ilhoooQBQDNZX1imm577QpU19bp8SEf9v8kDKGA4ZYeKWEoiRSxUUMIAoBlsKa7Qjc8uVVlVnc7vl6o/TRksj4cChtOT3i5Br/7gqyJ2ywsUsWBGCQOAJpa/74BueGap9lbWaHxGWz123VBWwkeTObKILdpCEQtmvCsAQBPaXValG55dqp2lVRreLVlP35ipmMgI17EQYihioYESBgBNZF9lja5/Zqly9x7QwLSWevbm4YqLpoCheRx5jRhFLDhRwgCgCZRV1eq7zy1V9u4KZbRL0AvfH6Gk2CjXsRDieqZQxIIZJQwATtOBmjp9/19fau2OMnVt00LTbx2p1vHRrmMhTBxdxO6Yvkz1Xus6FhqBEgYAp6G6rl63vbRMWbkl6tAyVtNvHal2SbGuYyHMHCpiyS2iNH9Tsf7y4WbXkdAIlDAAOEW19V7d/coKfZa9R20TojX91pHqlNzCdSyEqZ4pCXr8ujPkMdLf5+do3tqdriPhBChhAHAKvF6rn/17lT5YX6Sk2Ei9dMtI9UhJcB0LYW5Mels9OKmvJOmnr69SdlG540T4NpQwADhJ1lr98u21emtloeKjI/TC90eob4ck17EASdIt47rr0sEdVVlTr2kvLVNZVa3rSDgOShgAnKQXF+fqlaV5ion06Jmbhmtol2TXkYDDjDH6w5UD1ad9orbtqdSPX1spLxfqByRKGACUl0vPPCPdf7/vY/nxp3BW5u/X/5uzXpL0pymDNbpnG3+lBBqtRXSknr4xUy3jovSfjbv1t4+zXUfCMVDCAIS3hQultDTp3nulhx/2fUxL8z1+lJLKGt05fblq661uGt1Vlw7u6CAw0Dhd2rTQY9cOlcdIf/0oWx+uL3IdCUehhAEIX+Xl0qRJvo+Vlb7HKiu/eryi4vBLvV6rn7y+Ujv2H9Tgzq304MV9HYUGGu/MXin62QV9JEk/mbFSW4orTvAd8CdKGIDwNWOG5PUe+zmv1/d8gyc/2aL5m4rVMi5Kj183lP0gETRuP6uHJg1sr/LqOk17MUvlXKgfMChhAMJXdvZXI2BHq6yUcnIkSYu37NWfP9gkSfrL1MGsBYagYozRH68arF6pCdpSXKmfvr6KC/UDBCUMQPjKyJDi44/9XHy8lJ6u3WVVuvvVFfJa6Y4JPTWxT6p/MwJNID4mUk/dmKnE2Eh9sL5ITyzIcR0JooQBCGdTp0qe47wNejyqm3K17n51hfZUVGtUj9b6yXm9/JsPaELd28br0WuGyBjpzx9u1vyNu11HCnuUMADhKzFRmjvX9/HQiFh8/OHHH1m0Q0u37VNKYoz+du1QRUbwlongNrFPqn5ybi9ZK93z2gpt33Oc6Xj4Be8oAMLbuHFSYaH06KPSAw/4PhYW6uO2GXpiwRZ5jPS3a4aqXSKbciM03Hl2us7vl6ryqjpNeylLldV1riOFLWNt4F+cl5mZabOyslzHABAm8vcd0CWPLVTpwVrdd2Fv3TEh3XUkoEmVV9Xq8sc/15biSl08sIP+ft1QGWNcxwpKxphl1trMU/leRsIA4AjVdfW665XlKj1Yq3P6tNPtZ/Z0HQlocomxUXrqxkwlxERqzpqdeurTra4jhSVKGAAc4XdzNmhVQanSWsXpz1cPlsfD6ABCU3q7BD1y9WBJ0sPzNurTzcWOE4UfShgANHhnVaFeWJyrqAijx68/Q61aRLuOBDSr8/u31z3nZMhrpbtfXaG8vQdcRworlDAAkLSluEIPzFotSfrVJf00pHMrx4kA/7j3nAyd06edSg/WatpLWTpQw4X6/kIJAxD2DtbU646Xl6uypl6XDu6oG0d1dR0J8BuPx+iRqUPUvW28Nu4q1wOz1igYbtoLBZQwAGHNWqtfvLVGm4rK1SMlXr//zkDuEkPYaRkXpaduHKYW0RGavapQzy7c5jpSWKCEAQhrM77M1xvLdyg2yqMnrx+mhJhI15EAJ3qlJurPU3wX6v9u7gYtytnjOFHoo4QBCFvrCkv169nrJEm/vXygerdPdJwIcOuigR10x4Se8lrpzleWq6isynWkkEYJAxCWyqpqdcf05aqp8+qa4Z115bBOriMBAeGn5/fW+Iy2KjlQq1+8uZbrw5oRJQxA2LHW6r5/r1bu3gPq1yFJ/3NZf9eRgIAR4TF6+KpBSoyJ1EcbijR7VaHrSCGLEgYg7Dy7cJvmrdulxJhIPXH9GYqNinAdCQgoHVrG6RcX95Uk/ffsddpdzrRkc6CEAQgry3L36aH3NkqS/jhlkLq1jXecCAhMU4d31viMttp/oFa/fmsd05LNgBIGIGzsq6zRXa+sUJ3X6pZx3XXhgA6uIwEByxijh64cpPjoCM1bt0tz1ux0HSnkUMIAhI1fvLlGO0urdEaXVnrgoj6u4wABL61VnH4+yTct+eu312lvRbXjRKGFEgYgLLy/bpfeW7tLLaIj9Ldrhyoqgrc/oDGuG9FFo3u00b7KmsNLuqBp8C4EIOSVVdXq12+vlSTdd0FvdUpu4TgREDw8DXdLtoiO0JzVOzVvLdOSTYUSBiDkPTxvo4rKqjWkcyvdOLqb6zhA0OncuoXuv9A3hf/Lt9aqpLLGcaLQQAkDENKytu/Ty0vyFOkxeujKgYrwsC8kcCpuHNVVI7q31p6KGv3vO0xLNgVKGICQVV1Xr/tnrZYk/XBCT/Vpn+Q4ERC8PB6jh68cpNgoj95aWagP1xe5jhT0KGEAQtYT87doS3GleqTE686z013HAYJet7bx+tkFvmnJX7y5RqUHah0nCm6UMAAhKbuoXE8syJEk/f6KgayKDzSRm8d007CuydpdXq3fvLvedZygRgkDEHK8XqsH3lij2nqra0d01sgebVxHAkLGob0lYyI9mrW8QPM37nYdKWhRwgCEnOlLc7Ust0QpiTF64KK+ruMAIadnSoJ+en4vSdLP31ijsiqmJU8FJQxASNlZelB/mLdJkvSby/qrZVyU40RAaLplXA8N6dxKu8qq9Nt3N7iOE5SclDBjTCtjzExjzEZjzAZjzGgXOQCEFmutfvXWOlVU1+m8fqm6cEB715GAkBXhMfrjVYMUHeHRjKx8fbq52HWkoONqJOxRSfOstX0kDZZEhQZw2t5bu0sfbShSYkyk/m/yABnDmmBAc8pITdS952VI8k1LljMteVL8XsKMMUmSzpT0rCRZa2ustfv9nQNAaCk9UKv/btjX7r6L+qh9y1jHiYDwMG18Dw3q1FI79h/U79/b6DpOUHExEtZDUrGkfxljVhhjnjHGxDvIASCEPDRvg4rLq5XZNVnXj+jiOg4QNiIjPPrjVYMVFWH0ytI8LcrZ4zpS0HBRwiIlnSHpSWvtUEmVkh44+kXGmGnGmCxjTFZxMfPMAI5vyda9evWLfEVFGP3+OwPlYWsiwK96t0/UPRN905L3zVqtyuo6x4mCg4sSViCpwFq7tOHrmfKVsq+x1j5trc201mampKT4NSCA4FFVW68H31gjSbrz7HRlpCY6TgSEp9sn9FT/jkkqKDmoh+cxLdkYfi9h1tpdkvKNMb0bHjpHEkvuAjglf/84R1v3VCq9XYJ+OKGn6zhA2IpqmJaM9Bi9sDhXS7budR0p4Lm6O/JuSdONMaslDZH0O0c5AASxjbvK9I9PtkiSHvrOQMVEsjUR4FK/jkmH92m9f9ZqHaypd5wosDkpYdbalQ1TjYOstZdba0tc5AAQvOq9VvfPWqM6r9WNo7oqs1tr15EAyHdZQJ/2icrde0B/fH+T6zgBjRXzAQSlFxdv16r8/WqfFKv7Lux9wtcD8I/oSI/+NGWwIjxG/1q0TVnb97mOFLAoYQCCzo79Bw//hv2byf2VGMvWREAgGZDWUref1UPWSvfNXK2qWqYlj4USBiCoWGv1yzfX6EBNvS4a0F7n92drIiAQ3XNOhjLaJWjrnko9+p9s13ECEiUMQFB5Z/VOzd9UrMTYSP3vZf1dxwFwHDGREXr4qkGSpGc/26b8fQccJwo8lDAAQaOkskb/27A10YOT+qpdElsTAYFsaJdkXTE0TTX1Xj3ElkbfQAkDEDR+O3eD9lbWaET31pqa2dl1HACN8LMLeis2yqM5a3Zykf5RKGEAgsLnOXs0c1mBoiM9bE0EBJGOreI0bXwPSdL/vbteXq91nChwUMIABLyq2no9+KZva6J7JqarZ0qC40QATsZtZ/VUu8QYrSoo1durdriOEzAoYQAC3l8/ylbu3gPqnZqoaWeyNREQbOJjIvWzC3zr+T08bxMr6TeghAEIaFuLK/TMZ1tljPTQlQMVHcnbFhCMrjyjk/p3TNLO0ir987OtruMEBN7NAAS0h+dtUp3X6uphnTW0S7LrOABOkcdj9KtL+kmSnlywRUVlVY4TuUcJAxCwluXu07x1uxQb5dFPzu/lOg6A0zSqRxtd0D9VB2vr9Sf2laSEAQhM1lr9bq5vXaEfjO+hVNYEA0LCzy/qq6gIo5nLC7R2R6nrOE5RwgAEpPfX7dKy3BK1iY/WtDN7uI4DoIl0axuvm0Z3k7W+JSusDd8lKyhhAAJObb1Xf5jnm6q499wMNugGQszd52QouUWUlm7bpw/WF7mO4wwlDEDAee2LPG3bU6nubeN1zYguruMAaGIt46J077m+6zx/P3eDauq8jhO5QQkDEFDKq2r114+yJUn3X9hbURG8TQGh6LqRXdQzJV7b9x7Qi4u3u47jBO9uAALK059u1d7KGg3rmqwL+rd3HQdAM4mK8OiXF/uWrHj0P9naV1njOJH/UcIABIyisq8WcXxwUh8Zw/6QQCib0DtF4zPaqryqTo9+tNl1HL+jhAEIGI98sFlVtV5d2L+9hnVt7ToOgGZmjNEvL+4nj5FeXpqnnN3lriP5FSUMQEDYtKtc/16Wr0iP0X0X9nYdB4Cf9G6fqGtGdFG91+q3cza4juNXlDAAAeEP8zbKa30X6/ZISXAdB4Af/eS8XkqIidT8TcX6dHOx6zh+QwkD4NyiLXv08cbdSoiJ1D3nZLiOA8DP2ibE6M6z0yVJv52zQXX14bFkBSUMgFNer9XvG7Ynuv2sHmqbEOM4EQAXvje2mzolx2lTUblmZOW7juMXlDAATr2zulBrdpQqNSlGt4xjeyIgXMVGRejnF/WV5LtJp7yq1nGi5hfpOgCAMFNeLs2YIWVnqzo9Q3/c002S75qQuOgIt9kAODVpYHtldk1WVm6JHp+/RQ9c1Md1pGbFSBgA/1m4UEpLk+69V3r4Yb30wocqKK1Wr0SPrhrW2XU6AI4ZY/SrS3wLuD63cJvy9x1wnKh5UcIA+Ed5uTRpku9jZaVKY+L12LArJEk/f/X3ijhQ6TgggEAwuHMrXTE0TTX1Xj00b6PrOM2KEgbAP2bMkLxf3fH0+OirVRqXqNG5qzRh+3Lf8wAg6WcX9FZslEdzVu9U1vZ9ruM0G0oYAP/IzpYqfaNd+Unt9PywyyRJD85/TqayUsrJcZkOQADp2CpO08b7btT5v3fXy+u1jhM1D0oYAP/IyJDi4yVJj4y/QTWRUZq8boEGFm3xPZ6e7jgggEBy21k91S4xRqsKSjV7VaHrOM2CEgbAP6ZOlTwerU3tqTcHTFR0Xa3+67OXfM95PL7nAaBBfEyk/usC3xZmf5i3UQdr6h0nanqUMAD+kZgoO2eOfnfuDyRJ313+rjrXVUiJidLcuVICWxUB+Lqrzuik/h2TtLO0Sv/8bKvrOE2OEgbAbz5p11uLOg1Qkseru0Z0kB59VCoslMaNcx0NQADyeIx+ebFvyYonF2xRUVmV40RNixIGwC/qj9ie6K4L+6nVQ/8n3XILI2AAvtXonm10fr9UHayt15/e3+Q6TpOihAHwi1nLC7SpqFxpreL03dHdXMcBEEQenNRXURFGM5cXKGd3ues4TeaEJcwYc5cxJtkfYQCEpoM19Xrkg82SDq3/w/ZEABqvW9t4XZ3ZWdZKj30cOsvZNGYkrL2kL40xrxtjLjTGmOYOBSC0PPf5Nu0qq1L/jkm6bHBH13EABKE7zk5XVITRO6sKtaW4wnWcJnHCEmat/aWkDEnPSrpZUrYx5nfGmJ7NnA1ACNhbUa0nF2yR5JtS8Hj4PQ7AyUtrFaerhnWS10qPh8hoWKOuCbPWWkm7Gv7USUqWNNMY83AzZgMQAh77OEcV1XWa0DtFY9Pbuo4DIIjdMSFdkR6jt1bu0PY9wb/fbGOuCbvHGLNM0sOSPpc00Fr7Q0nDJF3ZzPkABLFteyr18pJcGSM9cFEf13EABLnOrVvoO2ek+UbD5gf/aFhjRsLaSvqOtfYCa+2/rbW1kmSt9Uq6pFnTAQhqf3x/o+q8Vled0Ul92ie5jgMgBNx5droiPEZvrNihvL0HXMc5LY25JuzX1trc4zy3oekjAQgFK/JKNHfNLsVGefST83u5jgMgRHRtE6/Lh6Sp3mv1xILgHg1jnTAAzeLR/2RLkr43trs6tIxznAZAKLnz7J7yGGnmsgIVlATvaBglDECTW7ujVAs2FSsuKjx57UQAABYhSURBVEI/GN/DdRwAIaZHSoIuG9xRdV6rJxruvg5GlDAATe7QBbPXj+yi1vHRjtMACEV3TcyQMdK/s/JVuP+g6zinhBIGoEnl7C7XvHW7FB3h0Q/OZBQMQPNIb5egSwZ1VG291T8+Cc7RMEoYgCb1xPwtslaaktlJqUmxruMACGF3T0yXMdJrX+RrV2mV6zgnzVkJM8ZEGGNWGGPedZUBQNPK23tAb68qVITH6Paz2FQDQPPqlZqoSQM6qKbeG5SjYS5Hwn4kiSUugBDyj0+3qN5rNXlIR3Vu3cJ1HABh4O5z0iVJr36Rp91lwTUa5qSEGWM6SbpY0jMufj6AprertEozswpkjG9rEQDwhz7tk3Rh//aqrvPqqU+3uo5zUlyNhP1V0n2SvMd7gTFmmjEmyxiTVVxc7L9kAE7JPz/bqpp6ry4a0F7p7RJcxwEQRg6Nhk1fmqvi8mrHaRrP7yXMGHOJpN3W2mXf9jpr7dPW2kxrbWZKSoqf0gE4Ffsqa/TK0jxJjIIB8L/+HVvqvH6pqqr16p+fBc9omIuRsLGSLjPGbJf0mqSJxpiXHeQA0ESeW7hNB2vrdXbvFA1Ia+k6DoAwdM/EDEnSS4tztbciOEbD/F7CrLU/t9Z2stZ2k3SNpI+ttTf4OweAplFWVasXFm+XJN01kVEwAG4M7NRSE/u008Haej2zcJvrOI3COmEATstLi3NVXlWnUT1aa1jX1q7jAAhj95zjGw17cdF2lVTWOE5zYk5LmLV2gbX2EpcZAJy6AzV1erbhN867zs5wnAZAuBvSuZXO6pWiypr6w+9NgYyRMACn7NUv8rWvskaDO7fS2PQ2ruMAwOHRsOcXbdf+A4E9GkYJA3BKquvq9fSnvhWq7zo7XcYYx4kAQBrWNVnjM9qqorpOz32+3XWcb0UJA3BKZi3boaKyavVpn6hz+rRzHQcADjs0Gvavz7ep9GCt4zTHRwkDcNLqjtin7Y6z0+XxMAoGIHAM79ZaY3q2UXlVnZ4P4NEwShiAk/bO6kLl7Tug7m3jdfHADq7jAMA3HBoNe3bhVpVXBeZoGCUMwEnxeq2emO8bBfvhWT0VwSgYgAA0qkcbjejeWmVVdXpxca7rOMdECQNwUj5Yv0vZuyvUsWWsLh+a5joOABzXvQ2jYf/8bKsqquscp/kmShiARrPW6u/zcyRJt53VU9GRvIUACFyje7ZRZtdk7T9Qq5cCcDSMd1AAjfbJ5mKt3VGmtgkxmjq8s+s4APCtjDGHrw3752dbdaAmsEbDKGEAGu3xhlGwW8d3V2xUhOM0AHBi4zPaamiXVtpXWaOXlwTWaBglDECjLN26V19uL1HLuCjdMKqr6zgA0ChHjoY9/elWHaypd5zoK5QwAI1y6Fqwm8d0U0JMpOM0ANB4E3qlaHCnltpTUaPpSwNnNIwSBuCEVuXv12fZexQfHaHvje3mOg4AnJQjR8Oe+nSrqmoDYzSMEgbghA5dC3bDqK5q1SLacRoAOHkT+7TTgLQkFZdX67Uv8lzHkUQJA3ACm3aV64P1RYqO9OiW8d1dxwGAU2KM0T0TfaNhT36yJSBGwyhhAL7VEwt8o2DXDO+sdomxjtMAwKk7r1+q+nZIUlFZtf6dle86DiUMwPFt31Opd1YVKtJjdNtZPV3HAYDT4hsNS1fr+GhFRrivQNziBOC4/vHJFnmtdOUZaUprFec6DgCctgv6t9dZvVPUItp9BXJfAwEEpML9BzVreYE8RvrhBEbBAIQGj8cERAGTKGEAjuPpT7eqtt7q4kEd1SMlwXUcAAg5lDAA37Cnolqvfem7hfvOsxkFA4DmQAkD8A3PLtymqlqvzu2bqj7tk1zHAYCQRAkD8DWlB2r10mLfth53TUx3nAYAQhclDMDXPL9ouyqq6zQuva2GdG7lOg4AhCxKGIDDqmrr9cLi7ZKkO89mFAwAmhMlDMBh76wq1L7KGg1IS9KoHq1dxwGAkEYJAyBJstbq+UXbJUk3j+kuY4zbQAAQ4ihhACRJy3JLtK6wTK3jo3XJoA6u4wBAyKOEAZAk/athFOy6EV0UGxXhNgwAhAFKGADtLD2oeWt3KcJjdP2oLq7jAEBYoIQB0PQlear3Wl04oL06tGSjbgDwB0oYEOaqauv16he+LYpuHtPNbRgACCOUMCDMvbt6p/ZW1qh/xyRldk12HQcAwgYlDAhj1lq90HBB/k1jurEsBQD4ESUMCGPL80q0ZkepWsdH67LBHV3HAYCwQgkDwtjzi3wbdV8zvDPLUgCAn1HCgDBVVFal99bsVITH6IZRXV3HAYCwQwkDwtT0Jbmq81pd0D9VHVuxLAUA+BslDAhD1XX1euXwshTdHacBgPBECQPC0JzVO7WnokZ9OyRpeDeWpQAAFyhhQJix1ur5hmUpvseyFADgDCUMCDMr8vdrdUGpkltE6bIhLEsBAK5QwoAw8/zn2yVJ14zowrIUAOAQJQwII0VlVZq7Zqc8RixLAQCOUcKAMDJ9aV7DshTtlcayFADgFCUMCBPVdfV6ZalvWYqbxnRzGwYAQAkDwsXcNTu1p6JafdonamT31q7jAEDY83sJM8Z0NsbMN8ZsMMasM8b8yN8ZgHB0aJ/Im1mWAgACQqSDn1kn6afW2uXGmERJy4wxH1pr1zvIAoSFFXklWpW/X61aRGnykDTXcQAAcjASZq3daa1d3vB5uaQNkvi/AtCMXmhYnHXq8M6Ki2ZZCgAIBE6vCTPGdJM0VNJSlzmAULa7vEpzGpaluJFlKQAgYDgrYcaYBEmzJN1rrS07xvPTjDFZxpis4uJi/wcEQsQrS/NUW291Xr9UdUpu4ToOAKCBkxJmjImSr4BNt9a+cazXWGufttZmWmszU1JS/BsQCBE1dV5Nb1iW4uYx3R2nAQAcye8X5hvfbVnPStpgrX3E3z8fCCfvrd2p4vJq9U5N1KgeRyxLUV4uzZghZWdLGRnS1KlSYqK7oAAQhlzcHTlW0o2S1hhjVjY89qC1dq6DLEBI+1fDPpE3jz1iWYqFC6VJkySvV6qslOLjpZ/8RJo7Vxo3zl1YAAgzfi9h1tqFklikCGhmq/L3a2X+frWMi9Llh5alKC/3FbDy8q9eWFnp+zhpklRYKCUk+D8sAIQhVswHQtShZSmuOXJZihkzfCNgx+L1+p4HAPgFJQwIQcXl1XpndaE8RrrhyGUpsrO/Gvk6WmWllJPjn4AAAEoYEIpe/cK3LMW5fVPVufURy1JkZPiuATuW+HgpPd0/AQEAlDAg1NTUefXykq/2ifyaqVMlz3H+2Xs8vucBAH5BCQNCzLx1u7S7vFq9UhM0umebrz+ZmOi7CzIx8asRsfj4rx7nonwA8BsXS1QAaEbPf75NknTTmCOWpTjSuHG+uyBnzPBdA5ae7hsBo4ABgF9RwoAQsrpgv5bn7VdSbKSuGJp2/BcmJEi33OK/YACAb2A6EgghzzcsSzF1eGe1iOZ3LAAIZJQwIETsqajWu6t2yhjpu6O7uY4DADgBShgQIl5dmqeaeq/O6XPUshQAgIBECQNCQG29Vy8v9S1L8b2x3dyGAQA0CiUMCAEfri9SUVm1MtolaMzRy1IAAAISJQwIATO+zJckXTeyy7GXpQAABBxKGBDkCvcf1KfZxYqO8OjyId+yLAUAIKBQwoAgN2tZgayVzuufquT4aNdxAACNRAkDgpjXa/X6Mt9U5NTMzo7TAABOBiUMCGJLtu1V/r6DSmsVp7HpbV3HAQCcBEoYEMReb7gg/8phnRTh4YJ8AAgmlDAgSJUerNV7a3fJGGnKsE6u4wAAThIlDAhSs1cVqrrOq7E927JCPgAEIUoYEKQOTUVOyWQUDACCESUMCELrC8u0ZkepWsZF6YL+7V3HAQCcAkoYEIRez/KNgl0+pKNioyIcpwEAnApKGBBkqmrr9eaKHZKkKawNBgBBixIGBJkP1xep9GCt+ndM0oC0lq7jAABOESUMCDKHpiKnDmcUDACCGSUMCCIFJQe0MGePoiM9mjyYzboBIJhRwoAgMrNhs+4L+7dXyxZRruMAAE4DJQwIEl6v1b+zCiQxFQkAoYASBgSJRVv2asf+g+qUHKfRPdq4jgMAOE2UMCBIzGi4IH/KsM7ysFk3AAQ9ShgQBPYfqNH763ybdV/FNkUAEBIoYUAQeHtloWrqvBqfkaK0VnGu4wAAmgAlDAgCMxo2676aUTAACBmUMCDArd1RqvU7y5TcIkrn9Ut1HQcA0EQoYUCAO7xZ99A0xUSyWTcAhApKGBDAqmrr9VbDZt1Xs1k3AIQUShgQwN5ft0tlVXUa1Kml+nZIch0HANCEKGFAADs0FckoGACEHkoYEKDy9x3Q5zl7FRPp0aWDO7qOAwBoYpQwIED9u2EUbNLADmoZx2bdABBqKGFAAKr3Ws1c5tusm6lIAAhNlDAgAC3M2aPC0ip1ad1CI7u3dh0HANAMKGFAAHr9iBXy2awbAEITJQwIMPsqa/TB+l3yGOnKYWxTBAChihIGBJi3VuxQbb3Vmb1S1KElm3UDQKiihAEBxFp7eG2wqVyQDwAhjRIGBJDVBaXauKtcreOjdU5fNusGgFAW6eKHGmMulPSopAhJz1hrH3KRA3CqvFyaMUPKzpYyMqSpUw+Pgl0xNE3RkfyOBAChzO8lzBgTIelxSedJKpD0pTFmtrV2vb+zAM4sXChNmiR5vVJlpRQfr4P3PaDZd7wgSZo6nKlIAAh1Ln7VHiEpx1q71VpbI+k1SZMd5ADcKC/3FbDycl8Bk6TKSr3XcZDK66QhaYnqlZroNiMAoNm5KGFpkvKP+Lqg4TEgPMyY4RsBO8rrA8+TJF1dW+DvRAAAB1yUsGOtPGm/8SJjphljsowxWcXFxX6IBfhJdvZXI2ANclu115KugxRXU6VLdzMzDwDhwEUJK5B05AUvnSQVHv0ia+3T1tpMa21mSkqK38IBzS4jQ4qP/9pDh0bBJm1ZosSM7i5SAQD8zEUJ+1JShjGmuzEmWtI1kmY7yAG4MXWq5Pnqn1698WjmwHMlSVdv/MT3PAAg5Pm9hFlr6yTdJel9SRskvW6tXefvHIAziYnS3Lm+j/Hx+rT7GSpKbKPu+3dqxDN/lhISXCcEAPiBk3XCrLVzJc118bOBgDBunFRYKM2YoRnZvn+GU64YIzO+n+NgAAB/YTVIwJWEBO2deoM+8qT4Nuse3cN1IgCAH1HCAIfeXLFDdV6rs3u3U2pSrOs4AAA/ooQBDs1c5lsTbAqbdQNA2KGEAY5sLirXxl3lahkXpYl92rmOAwDwM0oY4Mjslb7l8SYNbM9m3QAQhnjnBxyw1urtVTskSZcNZtcuAAhHlDDAgRX5+5W/76BSk2I0ontr13EAAA5QwgAHDk1FXjqooyI8x9pOFQAQ6ihhgJ/V1Xv17mpfCZs8hKlIAAhXlDDAzxZv3as9FTXq0TZeA9KSXMcBADhCCQP87O1DU5GDO8oYpiIBIFxRwgA/qqqt17y1uyRJlw3p6DgNAMAlShjgR/M37lZFdZ0GprVUz5QE13EAAA5RwgA/OjQVOZlRMAAIe5QwwE/Kqmr18abdMka6ZBAlDADCHSUM8JP31+5STZ1XI7u3VvuWsa7jAAAco4QBfjJ7FWuDAQC+QgkD/GB3eZU+z9mjqAijiwa0dx0HABAAKGGAH8xZvVNeK53VK0WtWkS7jgMACACUMMAPDk1FXsZUJACgASUMaGZ5ew9oRd5+tYiO0Ll927mOAwAIEJQwoJnNXrVDknR+v1S1iI50nAYAECgoYUAzstYeXqCVbYoAAEcy1lrXGU7IGFMuaZPrHGGkraQ9rkOEEY63f3G8/Y9j7l8cb//qba1NPJVvDJa5kU3W2kzXIcKFMSaL4+0/HG//4nj7H8fcvzje/mWMyTrV72U6EgAAwAFKGAAAgAPBUsKedh0gzHC8/Yvj7V8cb//jmPsXx9u/Tvl4B8WF+QAAAKEmWEbCAAAAQkpAljBjzBRjzDpjjNcYc9w7PIwxFxpjNhljcowxD/gzYygxxrQ2xnxojMlu+Jh8nNdtN8asMcasPJ27QcLVic5X4/O3hudXG2POcJEzVDTieE8wxpQ2nM8rjTG/dpEzVBhjnjPG7DbGrD3O85zfTagRx5vzuwkZYzobY+YbYzY09JMfHeM1J32OB2QJk7RW0nckfXq8FxhjIiQ9LukiSf0kXWuM6eefeCHnAUn/sdZmSPpPw9fHc7a1dgi3P5+cRp6vF0nKaPgzTdKTfg0ZQk7i/eGzhvN5iLX2N34NGXqel3ThtzzP+d20nte3H2+J87sp1Un6qbW2r6RRku5sivfwgCxh1toN1toTLc46QlKOtXartbZG0muSJjd/upA0WdILDZ+/IOlyh1lCVWPO18mSXrQ+SyS1MsZ08HfQEMH7g59Zaz+VtO9bXsL53YQacbzRhKy1O621yxs+L5e0QVLaUS876XM8IEtYI6VJyj/i6wJ984CgcVKttTsl34km6Xi7TFtJHxhjlhljpvktXWhozPnKOd10GnssRxtjVhlj3jPG9PdPtLDF+e1/nN/NwBjTTdJQSUuPeuqkz3FnK+YbYz6S1P4YT/3CWvt2Y/6KYzzGrZ7H8W3H+yT+mrHW2kJjTDtJHxpjNjb8NoYTa8z5yjnddBpzLJdL6mqtrTDGTJL0lnzTCGgenN/+xfndDIwxCZJmSbrXWlt29NPH+JZvPcedlTBr7bmn+VcUSOp8xNedJBWe5t8Zsr7teBtjiowxHay1OxuGTncf5+8obPi42xjzpnxTPpSwxmnM+co53XROeCyPfAO11s41xjxhjGlrrWXPvebB+e1HnN9NzxgTJV8Bm26tfeMYLznpczyYpyO/lJRhjOlujImWdI2k2Y4zBavZkm5q+PwmSd8YiTTGxBtjEg99Lul8+W6gQOM05nydLem7DXfYjJJUemiaGCfthMfbGNPeGGMaPh8h3/vhXr8nDR+c337E+d20Go7ls5I2WGsfOc7LTvocD8gNvI0xV0h6TFKKpDnGmJXW2guMMR0lPWOtnWStrTPG3CXpfUkRkp6z1q5zGDuYPSTpdWPMLZLyJE2RpCOPt6RUSW82/JuOlPSKtXaeo7xB53jnqzHm9obn/yFprqRJknIkHZD0PVd5g10jj/dVkn5ojKmTdFDSNZbVq0+ZMeZVSRMktTXGFEj6b0lREud3c2jE8eb8blpjJd0oaY0xZmXDYw9K6iKd+jnOivkAAAAOBPN0JAAAQNCihAEAADhACQMAAHCAEgYAAOAAJQwAAMABShgAAIADlDAAAAAHKGEAwoIxZrgxZrUxJrZhB4h1xpgBrnMBCF8s1gogbBhj/p+kWElxkgqstb93HAlAGKOEAQgbDftIfimpStIYa22940gAwhjTkQDCSWtJCZIS5RsRAwBnGAkDEDaMMbMlvSapu6QO1tq7HEcCEMYiXQcAAH8wxnxXUp219hVjTISkRcaYidbaj11nAxCeGAkDAABwgGvCAAAAHKCEAQAAOEAJAwAAcIASBgAA4AAlDAAAwAFKGAAAgAOUMAAAAAcoYQAAAA78f/lvrVq4UvfLAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X2, y, xlabel='x', ylabel='y')\n", "theta_start = np.matrix([0, 0, 0]).reshape(3, 1)\n", "theta, _ = gradient_descent(cost, gradient, theta_start, X2, y, eps=0.000001)\n", "plot_fun(fig, polynomial_regression(theta), X1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Ten model jest odpowiednio dopasowany." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plot_data(X5, y, xlabel='x', ylabel='y')\n", "theta_start = np.matrix([0, 0, 0, 0, 0, 0]).reshape(6, 1)\n", "theta, _ = gradient_descent(cost, gradient, theta_start, X5, y, alpha=0.5, eps=10**-7)\n", "plot_fun(fig, polynomial_regression(theta), X1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Ten model ma dużą **wariancję** (_variance_) – zachodzi **nadmierne dopasowanie** (_overfitting_)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "(Zwróć uwagę na dziwny kształt krzywej w lewej części wykresu – to m.in. efekt nadmiernego dopasowania)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Nadmierne dopasowanie występuje, gdy model ma zbyt dużo stopni swobody w stosunku do ilości danych wejściowych.\n", "\n", "Jest to zjawisko niepożądane.\n", "\n", "Możemy obrazowo powiedzieć, że nadmierne dopasowanie występuje, gdy model zaczyna modelować szum/zakłócenia w danych zamiast ich „głównego nurtu”. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "notes" } }, "source": [ "Zobacz też: https://pl.wikipedia.org/wiki/Nadmierne_dopasowanie" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Obciążenie (błąd systematyczny, *bias*)\n", "\n", "* Wynika z błędnych założeń co do algorytmu uczącego się.\n", "* Duże obciążenie powoduje niedostateczne dopasowanie." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Wariancja (*variance*)\n", "\n", "* Wynika z nadwrażliwości na niewielkie fluktuacje w zbiorze uczącym.\n", "* Wysoka wariancja może spowodować nadmierne dopasowanie (modelując szum zamiast sygnału)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 5.3. Regularyzacja" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def SGD(h, fJ, fdJ, theta, X, Y, \n", " alpha=0.001, maxEpochs=1.0, batchSize=100, \n", " adaGrad=False, logError=False, validate=0.0, valStep=100, lamb=0, trainsetsize=1.0):\n", " \"\"\"Stochastic Gradient Descent - stochastyczna wersja metody gradientu prostego\n", " (więcej na ten temat na wykładzie 11)\n", " \"\"\"\n", " errorsX, errorsY = [], []\n", " errorsVX, errorsVY = [], []\n", " \n", " XT, YT = X, Y\n", " \n", " m_end=int(trainsetsize*len(X))\n", " \n", " if validate > 0:\n", " mv = int(X.shape[0] * validate)\n", " XV, YV = X[:mv], Y[:mv] \n", " XT, YT = X[mv:m_end], Y[mv:m_end] \n", " m, n = XT.shape\n", "\n", " start, end = 0, batchSize\n", " maxSteps = (m * float(maxEpochs)) / batchSize\n", " \n", " if adaGrad:\n", " hgrad = np.matrix(np.zeros(n)).reshape(n,1)\n", " \n", " for i in range(int(maxSteps)):\n", " XBatch, YBatch = XT[start:end,:], YT[start:end,:]\n", "\n", " grad = fdJ(h, theta, XBatch, YBatch, lamb=lamb)\n", " if adaGrad:\n", " hgrad += np.multiply(grad, grad)\n", " Gt = 1.0 / (10**-7 + np.sqrt(hgrad))\n", " theta = theta - np.multiply(alpha * Gt, grad)\n", " else:\n", " theta = theta - alpha * grad\n", " \n", " if logError:\n", " errorsX.append(float(i*batchSize)/m)\n", " errorsY.append(fJ(h, theta, XBatch, YBatch).item())\n", " if validate > 0 and i % valStep == 0:\n", " errorsVX.append(float(i*batchSize)/m)\n", " errorsVY.append(fJ(h, theta, XV, YV).item())\n", " \n", " if start + batchSize < m:\n", " start += batchSize\n", " else:\n", " start = 0\n", " end = min(start + batchSize, m)\n", " return theta, (errorsX, errorsY, errorsVX, errorsVY)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "# Przygotowanie danych do przykładu regularyzacji\n", "\n", "n = 6\n", "\n", "data = np.matrix(np.loadtxt(\"ex2data2.txt\", delimiter=\",\"))\n", "np.random.shuffle(data)\n", "\n", "X = powerme(data[:,0], data[:,1], n)\n", "Y = data[:,2]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def draw_regularization_example(X, Y, lamb=0, alpha=1, adaGrad=True, maxEpochs=2500, validate=0.25):\n", " \"\"\"Rusuje przykład regularyzacji\"\"\"\n", " plt.figure(figsize=(16,8))\n", " plt.subplot(121)\n", " plt.scatter(X[:, 2].tolist(), X[:, 1].tolist(),\n", " c=Y.tolist(),\n", " s=100, cmap=plt.cm.get_cmap('prism'));\n", "\n", " theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n", " thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=alpha, adaGrad=adaGrad, maxEpochs=maxEpochs, batchSize=100, \n", " logError=True, validate=validate, valStep=1, lamb=lamb)\n", "\n", " xx, yy = np.meshgrid(np.arange(-1.5, 1.5, 0.02),\n", " np.arange(-1.5, 1.5, 0.02))\n", " l = len(xx.ravel())\n", " C = powerme(xx.reshape(l, 1),yy.reshape(l, 1), n)\n", " z = classifyBi(thetaBest, C).reshape(int(np.sqrt(l)), int(np.sqrt(l)))\n", "\n", " plt.contour(xx, yy, z, levels=[0.5], lw=3);\n", " plt.ylim(-1,1.2);\n", " plt.xlim(-1,1.2);\n", " plt.legend();\n", " plt.subplot(122)\n", " plt.plot(err[0],err[1], lw=3, label=\"Training error\")\n", " if validate > 0:\n", " plt.plot(err[2],err[3], lw=3, label=\"Validation error\");\n", " plt.legend()\n", " plt.ylim(0.2,0.8);" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":5: RuntimeWarning: overflow encountered in exp\n", " y = 1.0/(1.0 + np.exp(-x))\n", ":19: UserWarning: The following kwargs were not used by contour: 'lw'\n", " plt.contour(xx, yy, z, levels=[0.5], lw=3);\n", "No handles with labels found to put in legend.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw_regularization_example(X, Y)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Regularyzacja\n", "\n", "Regularyzacja jest metodą zapobiegania zjawisku nadmiernego dopasowania (*overfitting*) poprzez odpowiednie zmodyfikowanie funkcji kosztu.\n", "\n", "Do funkcji kosztu dodawane jest specjalne wyrażenie (**wyrazenie regularyzacyjne** – zaznaczone na czerwono w poniższych wzorach), będące „karą” za ekstremalne wartości parametrów $\\theta$.\n", "\n", "W ten sposób preferowane są wektory $\\theta$ z mniejszymi wartosciami parametrów – mają automatycznie niższy koszt.\n", "\n", "Jak silną regularyzację chcemy zastosować? Możemy o tym zadecydować, dobierajac odpowiednio **parametr regularyzacji** $\\lambda$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Regularyzacja dla regresji liniowej – funkcja kosztu\n", "\n", "$$\n", "J(\\theta) \\, = \\, \\dfrac{1}{2m} \\left( \\displaystyle\\sum_{i=1}^{m} \\left( h_\\theta(x^{(i)}) - y^{(i)} \\right) \\color{red}{ + \\lambda \\displaystyle\\sum_{j=1}^{n} \\theta^2_j } \\right)\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "* $\\lambda$ – parametr regularyzacji\n", "* jeżeli $\\lambda$ jest zbyt mały, skutkuje to nadmiernym dopasowaniem\n", "* jeżeli $\\lambda$ jest zbyt duży, skutkuje to niedostatecznym dopasowaniem" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Regularyzacja dla regresji liniowej – gradient\n", "\n", "$$\\small\n", "\\begin{array}{llll}\n", "\\dfrac{\\partial J(\\theta)}{\\partial \\theta_0} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_0 & \\textrm{dla $j = 0$ }\\\\\n", "\\dfrac{\\partial J(\\theta)}{\\partial \\theta_j} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_j \\color{red}{+ \\dfrac{\\lambda}{m}\\theta_j} & \\textrm{dla $j = 1, 2, \\ldots, n $} \\\\\n", "\\end{array} \n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Regularyzacja dla regresji logistycznej – funkcja kosztu\n", "\n", "$$\n", "\\begin{array}{rtl}\n", "J(\\theta) & = & -\\dfrac{1}{m} \\left( \\displaystyle\\sum_{i=1}^{m} y^{(i)} \\log h_\\theta(x^{(i)}) + \\left( 1-y^{(i)} \\right) \\log \\left( 1-h_\\theta(x^{(i)}) \\right) \\right) \\\\\n", "& & \\color{red}{ + \\dfrac{\\lambda}{2m} \\displaystyle\\sum_{j=1}^{n} \\theta^2_j } \\\\\n", "\\end{array}\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Regularyzacja dla regresji logistycznej – gradient\n", "\n", "$$\\small\n", "\\begin{array}{llll}\n", "\\dfrac{\\partial J(\\theta)}{\\partial \\theta_0} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_0 & \\textrm{dla $j = 0$ }\\\\\n", "\\dfrac{\\partial J(\\theta)}{\\partial \\theta_j} &=& \\dfrac{1}{m}\\displaystyle\\sum_{i=1}^m \\left( h_{\\theta}(x^{(i)})-y^{(i)} \\right) x^{(i)}_j \\color{red}{+ \\dfrac{\\lambda}{m}\\theta_j} & \\textrm{dla $j = 1, 2, \\ldots, n $} \\\\\n", "\\end{array} \n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Implementacja metody regularyzacji" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "def J_(h,theta,X,y,lamb=0):\n", " \"\"\"Funkcja kosztu z regularyzacją\"\"\"\n", " m = float(len(y))\n", " f = h(theta, X, eps=10**-7)\n", " j = 1.0/m \\\n", " * -np.sum(np.multiply(y, np.log(f)) + \n", " np.multiply(1 - y, np.log(1 - f)), axis=0) \\\n", " + lamb/(2*m) * np.sum(np.power(theta[1:] ,2))\n", " return j\n", "\n", "def dJ_(h,theta,X,y,lamb=0):\n", " \"\"\"Gradient funkcji kosztu z regularyzacją\"\"\"\n", " m = float(y.shape[0])\n", " g = 1.0/y.shape[0]*(X.T*(h(theta,X)-y))\n", " g[1:] += lamb/m * theta[1:]\n", " return g" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "slider_lambda = widgets.FloatSlider(min=0.0, max=0.5, step=0.005, value=0.01, description=r'$\\lambda$', width=300)\n", "\n", "def slide_regularization_example_2(lamb):\n", " draw_regularization_example(X, Y, lamb=lamb)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "187489841a6b4b6a8fac8d4e5f2e28de", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.01, description='$\\\\lambda$', max=0.5, step=0.005), Button(descripti…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "widgets.interact_manual(slide_regularization_example_2, lamb=slider_lambda)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def cost_lambda_fun(lamb):\n", " \"\"\"Koszt w zależności od parametru regularyzacji lambda\"\"\"\n", " theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n", " thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=1, adaGrad=True, maxEpochs=2500, batchSize=100, \n", " logError=True, validate=0.25, valStep=1, lamb=lamb)\n", " return err[1][-1], err[3][-1]\n", "\n", "def plot_cost_lambda():\n", " \"\"\"Wykres kosztu w zależności od parametru regularyzacji lambda\"\"\"\n", " plt.figure(figsize=(16,8))\n", " ax = plt.subplot(111)\n", " Lambda = np.arange(0.0, 1.0, 0.01)\n", " Costs = [cost_lambda_fun(lamb) for lamb in Lambda]\n", " CostTrain = [cost[0] for cost in Costs]\n", " CostCV = [cost[1] for cost in Costs]\n", " plt.plot(Lambda, CostTrain, lw=3, label='training error')\n", " plt.plot(Lambda, CostCV, lw=3, label='validation error')\n", " ax.set_xlabel(r'$\\lambda$')\n", " ax.set_ylabel(u'cost')\n", " plt.legend()\n", " plt.ylim(0.2,0.8)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7AAAAHmCAYAAABK9WIBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZRc1X3u/Wd3VVdXz3NrFhoQltCAEEKSDcYSGIxJArYxII8hiY1D4im5l0D83nggyY2dOH5t3oRwsRe2rxfBF4ONnQvGRDGDwQIjMQg0gGapNfY8d1d31X7/OKeqTlUP6qFOVQ/fz1q1zj5DVe8WIPrp3x6MtVYAAAAAAEx2ebnuAAAAAAAAo0GABQAAAABMCQRYAAAAAMCUQIAFAAAAAEwJBFgAAAAAwJRAgAUAAAAATAm+BlhjzLXGmLeMMQeMMXcNcb/cGPMfxpjXjTG7jTF/5Gd/AAAAAABTl/FrH1hjTEDS25KullQv6WVJH7HW7vE88yVJ5dbaO40xtZLekjTbWhvxpVMAAAAAgCnLzwrsBkkHrLWH3ED6Y0k3pD1jJZUaY4ykEknNkgZ87BMAAAAAYIryM8DOk3Tcc17vXvP6F0krJJ2U9IakL1hrYz72CQAAAAAwRQV9/GwzxLX08crvk/SapCslLZX0n8aY31hr21M+yJjbJN0mScXFxZcsX77ch+5m2Nm90kCv065dIeWHc9sfAAAAAJgCdu7c2WitrR3qnp8Btl7SAs/5fDmVVq8/kvR160zEPWCMOSxpuaTfeR+y1t4v6X5JWr9+vd2xY4dvnc6Y/3WFdOp1p33bj6S5F+e2PwAAAAAwBRhjjg53z88hxC9LWmaMWWyMCUnaKukXac8ck3SVJBljZkl6h6RDPvYpe4KeiutAX+76AQAAAADThG8VWGvtgDHms5J+JSkg6QFr7W5jzJ+69++T9LeSfmCMeUPOkOM7rbWNfvUpqwKhZDs+lBgAAAAAMG5+DiGWtfYJSU+kXbvP0z4p6Ro/+5AzKRVYdgUCAAAAgInyNcDOaMGCZJsKLAAAAJBx/f39qq+vV28vP29PReFwWPPnz1d+fv6o30OA9UtKgGUOLAAAAJBp9fX1Ki0t1aJFi2TMUJugYLKy1qqpqUn19fVavHjxqN/n5yJOM5t3CHGUAAsAAABkWm9vr6qrqwmvU5AxRtXV1WOunhNg/cIQYgAAAMB3hNepazz/7AiwfgkwhBgAAACYzlpbW3XvvfeO673XXXedWltbR3zmy1/+srZt2zauz5+uCLB+YQ4sAAAAMK2NFGCj0eiI733iiSdUUVEx4jN333233vve9467f2OV3udzfQ9jfS4TCLB+SdlGhwALAAAATDd33XWXDh48qLVr1+qOO+7QM888oy1btuijH/2oVq9eLUn6wAc+oEsuuUQrV67U/fffn3jvokWL1NjYqCNHjmjFihX69Kc/rZUrV+qaa65RT0+PJOnWW2/VI488knj+K1/5itatW6fVq1dr3759kqSGhgZdffXVWrdunT7zmc/ovPPOU2Nj46C+PvXUU3rnO9+pdevW6aabblJnZ2fic++++25dfvnl+slPfjLo/KGHHtLq1au1atUq3XnnnYnPKykp0Ze//GVt3LhR27dv9+cPeAisQuyXYCjZZg4sAAAA4KtFdz3u22cf+frvDXn961//ut5880299tprkqRnnnlGv/vd7/Tmm28mVtZ94IEHVFVVpZ6eHl166aW68cYbVV1dnfI5+/fv10MPPaTvfve7uvnmm/Xoo4/q4x//+KCvV1NTo1deeUX33nuvvvnNb+p73/uevva1r+nKK6/UX//1X+vJJ59MCclxjY2N+ru/+ztt27ZNxcXF+sY3vqFvfetb+vKXvyzJ2c7m+eefl+SE8vj5yZMntWnTJu3cuVOVlZW65ppr9Nhjj+kDH/iAurq6tGrVKt19993j/4MdByqwfklZhTiSu34AAAAAyJoNGzakbAtzzz336KKLLtKmTZt0/Phx7d+/f9B7Fi9erLVr10qSLrnkEh05cmTIz/7Qhz406Jnnn39eW7dulSRde+21qqysHPS+F198UXv27NFll12mtWvX6oc//KGOHj2auH/LLbekPB8/f/nll7V582bV1tYqGAzqYx/7mJ577jlJUiAQ0I033jiaP5KMogLrF1YhBgAAAGac4uLiRPuZZ57Rtm3btH37dhUVFWnz5s1DbhtTUJDMDoFAIDGEeLjnAoGABgYGJDn7qZ6LtVZXX321HnrooXP22Xs+0meHw2EFAoFzfu1MI8D6hVWIAQAAgKwZbpivn0pLS9XR0THs/ba2NlVWVqqoqEj79u3Tiy++mPE+XH755Xr44Yd155136qmnnlJLS8ugZzZt2qQ///M/14EDB3T++eeru7tb9fX1uuCCC0b87I0bN+oLX/iCGhsbVVlZqYceekif+9znMv49jAVDiP3CIk4AAADAtFZdXa3LLrtMq1at0h133DHo/rXXXquBgQGtWbNGf/M3f6NNmzZlvA9f+cpX9NRTT2ndunX65S9/qTlz5qi0tDTlmdraWv3gBz/QRz7yEa1Zs0abNm1KLAI1kjlz5ugf/uEftGXLFl100UVat26dbrjhhox/D2NhRlNynkzWr19vd+zYketunNueX0gPf8JpL/99aeuDue0PAAAAMM3s3btXK1asyHU3cqqvr0+BQEDBYFDbt2/X7bffnlhUaioY6p+hMWantXb9UM8zhNgvVGABAAAA+OzYsWO6+eabFYvFFAqF9N3vfjfXXfIVAdYvbKMDAAAAwGfLli3Tq6++mutuZA1zYP3CNjoAAAAAkFEEWL+wjQ4AAAAAZBQB1i9sowMAAAAAGUWA9UuQAAsAAAAAmUSA9QurEAMAAABIU1JSIkk6efKkPvzhDw/5zObNm3WurUO//e1vq7u7O3F+3XXXqbW1NXMdnaQIsH5hDiwAAACAYcydO1ePPPLIuN+fHmCfeOIJVVRUZKJr5zQwMDDi+WjfNx4EWL94AyyrEAMAAADTzp133ql77703cf7Vr35V//zP/6zOzk5dddVVWrdunVavXq2f//zng9575MgRrVq1SpLU09OjrVu3as2aNbrlllvU09OTeO7222/X+vXrtXLlSn3lK1+RJN1zzz06efKktmzZoi1btkiSFi1apMbGRknSt771La1atUqrVq3St7/97cTXW7FihT796U9r5cqVuuaaa1K+TlxDQ4NuvPFGXXrppbr00kv1wgsvJL632267Tddcc40++clPDjo/evSorrrqKq1Zs0ZXXXWVjh07Jkm69dZb9Zd/+ZfasmWL7rzzzgn/mbMPrF9ShhBTgQUAAAB89dVyHz+7bcjLW7du1Re/+EX92Z/9mSTp4Ycf1pNPPqlwOKyf/exnKisrU2NjozZt2qTrr79expghP+ff/u3fVFRUpF27dmnXrl1at25d4t7f//3fq6qqStFoVFdddZV27dqlz3/+8/rWt76lp59+WjU1NSmftXPnTn3/+9/XSy+9JGutNm7cqPe85z2qrKzU/v379dBDD+m73/2ubr75Zj366KP6+Mc/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_cost_lambda()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 5.4. Krzywa uczenia się" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "* Krzywa uczenia pozwala sprawdzić, czy uczenie przebiega poprawnie.\n", "* Krzywa uczenia to wykres zależności między wielkością zbioru treningowego a wartością funkcji kosztu.\n", "* Wraz ze wzrostem wielkości zbioru treningowego wartość funkcji kosztu na zbiorze treningowym rośnie.\n", "* Wraz ze wzrostem wielkości zbioru treningowego wartość funkcji kosztu na zbiorze walidacyjnym maleje." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [], "source": [ "def cost_trainsetsize_fun(m):\n", " \"\"\"Koszt w zależności od wielkości zbioru uczącego\"\"\"\n", " theta = np.matrix(np.zeros(X.shape[1])).reshape(X.shape[1],1)\n", " thetaBest, err = SGD(h, J, dJ, theta, X, Y, alpha=1, adaGrad=True, maxEpochs=2500, batchSize=100, \n", " logError=True, validate=0.25, valStep=1, lamb=0.01, trainsetsize=m)\n", " return err[1][-1], err[3][-1]\n", "\n", "def plot_learning_curve():\n", " \"\"\"Wykres krzywej uczenia się\"\"\"\n", " plt.figure(figsize=(16,8))\n", " ax = plt.subplot(111)\n", " M = np.arange(0.3, 1.0, 0.05)\n", " Costs = [cost_trainsetsize_fun(m) for m in M]\n", " CostTrain = [cost[0] for cost in Costs]\n", " CostCV = [cost[1] for cost in Costs]\n", " plt.plot(M, CostTrain, lw=3, label='training error')\n", " plt.plot(M, CostCV, lw=3, label='validation error')\n", " ax.set_xlabel(u'trainset size')\n", " ax.set_ylabel(u'cost')\n", " plt.legend()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Krzywa uczenia a obciążenie i wariancja\n", "\n", "Wykreślenie krzywej uczenia pomaga diagnozować nadmierne i niedostateczne dopasowanie:\n", "\n", "\n", "\n", "Źródło: http://www.ritchieng.com/machinelearning-learning-curve" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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wKZNm7jiiitqvebcc8/laFuH3nnnnezfv/9I/+KLL2bXrl31vKNtMMCq6d5/HfYVxe0u/WHWXalzq/8Cuz9Ipi5JkiSplTvuuON4+OGHm/z+6gH2ySefpGfPns1R2lGVlpbW22/o+5rCAKumS58+POYS6HMSDD8n7kfl8bOwkiRJUht12223cffddx/pf+c73+E///M/2bt3L+eddx6FhYVMmDCBP/7xjzXeu27dOsaPHw9ASUkJs2fPZuLEiVx11VWUlJQcue5LX/oSU6dOZdy4cXz7298G4K677mLTpk1Mnz6d6dOnAzBs2DC2bdsGwB133MH48eMZP348d95555HPGzNmDF/4whcYN24cM2bMqPI5lYqKirj88ss59dRTOfXUU3n55ZePfLebb76ZGTNmcP3119for1+/nvPOO4+JEydy3nnnsWHDBgBuvPFG/v7v/57p06dz2223HfPvufvAqmmiCJY/nuqPuTT+tfAGWPtC3F50H3zkf0GOPyeRJElShn2nRwbvvbvWl2fPns03vvENvvzlLwPw0EMP8fTTT1NQUMAf/vAHunfvzrZt25g2bRqzZs0ihFDrfX7605/SuXNnlixZwpIlSygsLDxy7l//9V/p3bs3ZWVlnHfeeSxZsoRbb72VO+64g2effZa+fftWudeCBQv41a9+xeuvv04URZx++ul89KMfpVevXqxatYo5c+bwi1/8giuvvJJHHnmEa6+9tsr7v/71r/N3f/d3nH322WzYsIELL7yQ5cuXH7n3Sy+9RKdOnfjOd75TpX/ppZdy/fXXc8MNN3Dvvfdy66238thj8XabK1euZN68eeTm5jbt9z+NAVZNs2kh7NkYtwt6wrCPxO3Rl8T9A7tg1wZY+zycND25OiVJkqQMmTJlClu3bmXTpk0UFRXRq1cvhg4dyuHDh/nf//t/88ILL5CTk8MHH3zAhx9+yMCBA2u9zwsvvMCtt94KwMSJE5k4ceKRcw899BD33HMPpaWlbN68mWXLllU5X91LL73EJz/5Sbp06QLApz71KV588UVmzZrF8OHDmTx5MgCnnHIK69atq/H+efPmsWzZsiP9PXv2UFxcDMCsWbPo1KnTkXPp/VdffZVHH30UgOuuu45/+Id/OHLdpz/96WYJr2CAVVOlTx8e/XHIzY/b+QUw8Sp44+dxf+F9BlhJkiS1WVdc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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_learning_curve()" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "livereveal": { "start_slideshow_at": "selected", "theme": "white" } }, "nbformat": 4, "nbformat_minor": 4 }