polynomial_regression/Regresja_wielomianowa.ipynb

775 lines
2.1 MiB
Plaintext
Raw Normal View History

2022-06-20 20:34:11 +02:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Regresja wielomianowa"
]
},
{
"source": [
"![polynomial_regression](regression.png)\n",
"\n",
"Celem regresji wielomianowej jest zamodelowanie relacji między zmienną zależną od zmiennych niezależnych jako funkcję wielomianu n-tego stopnia.\n",
"\n",
"Postać ogólna regresji wielomianowej:\n",
"\n",
"$$ h_{\\theta}(x) = \\sum_{i=0}^{n} \\theta_i x^i $$\n",
"\n",
"Gdzie:\n",
"\n",
"$$ \\theta - \\text{wektor parametrów modelu} $$ "
],
"cell_type": "markdown",
"metadata": {}
},
{
"source": [
"## Funkcja kosztu\n",
"![MSE](mse.webp)\n",
"\n",
"W celu odpowiedniego dobrania parametrów modelu, trzeba znaleźć minimum funkcji kosztu zdefiniowanej poniższym wzorem:\n",
"\n",
"$$ J = \\frac{1}{2m} (X \\theta - y)^T (X \\theta - y) $$\n",
"\n",
"Gdzie:\n",
"\n",
"$$ m - \\text{ilość przykładów} $$ \n",
"\n",
"Za funkcję kosztu przyjmuje się zmodyfikowaną wersję błędu średniokwadratowego. Dodatkowo dodaje się dzielenie przez 2*m zamiast m, aby gradient z funkcji był lepszej postaci."
],
"cell_type": "markdown",
"metadata": {}
},
{
"source": [
"## Metoda gradientu prostego\n",
"![gradient_descent](gradient.png)"
],
"cell_type": "markdown",
"metadata": {}
},
{
"source": [
"Do znalezienia minimum funckji kosztu można użyć metody gradientu prostego. W tym celu iteracyjnie liczy się gradient funkcji kosztu i aktualizuje się za jego pomocą wektor parametrów modelu aż do uzyskania zbieżności (Różnica między obliczoną funkcją kosztu a funkcją kosztu w poprzedniej iteracji będzie mniejsza od ustalonej wcześniej wartości $\\varepsilon$).\n",
"\n",
"Gradient funkcji kosztu:\n",
"\n",
"$$ \\dfrac{\\partial J(\\theta)}{\\partial \\theta} = \\frac{1}{m}X^T(X \\theta - y)$$\n",
"\n",
"Modyfikacja parametrów modelu:\n",
"\n",
"$$ \\theta_{new} = \\theta - \\alpha * \\dfrac{\\partial J(\\theta)}{\\partial \\theta}$$\n",
"\n",
"Gdzie:\n",
"\n",
"$$ \\alpha - \\text{współczynnik uczenia} $$"
],
"cell_type": "markdown",
"metadata": {}
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"outputs": [],
"source": [
"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": 47,
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"outputs": [],
"source": [
"# Przydatne funkcje\n",
"cost_functions = dict()\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**-7):\n",
" \"\"\"Algorytm gradientu prostego\"\"\"\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",
" # print(current_cost)\n",
" if abs(prev_cost - current_cost) > 10**15:\n",
" print('Algorytm nie jest zbieżny!')\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\"\"\"\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_data_cost(X, y, xlabel, ylabel):\n",
" \"\"\"Wykres funkcji kosztu\"\"\"\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], [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(min(y) - 1, max(y) + 1)\n",
" plt.xlim(np.min(X) - 1, np.max(X) + 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": 48,
"metadata": {},
"outputs": [],
"source": [
"def MSE(Y_true, Y_pred):\n",
" \"\"\"Błąd średniokwadratowy - Mean Squared Error\"\"\"\n",
" return np.square(np.subtract(Y_true,Y_pred)).mean()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"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 get_poly_data(data, deg):\n",
" \"\"\"Przygotowanie danych do regresji wielomianowej\"\"\"\n",
" m, n_plus_1 = data.shape\n",
" n = n_plus_1 - 1\n",
"\n",
" X1 = data[:, 0:n]\n",
" X1 /= np.amax(X1, axis=0)\n",
"\n",
" Xs = [np.ones((m, 1)), X1]\n",
"\n",
" for i in range(2, deg+1):\n",
" Xn = np.power(X1, i)\n",
" Xn /= np.amax(Xn, axis=0)\n",
" Xs.append(Xn)\n",
"\n",
" X = np.matrix(np.concatenate(Xs, axis=1)).reshape(m, deg * n + 1)\n",
"\n",
" y = np.matrix(data[:, -1]).reshape(m, 1)\n",
"\n",
" return X, y\n",
"\n",
"\n",
"def polynomial_regression(X, y, n):\n",
" \"\"\"Funkcja regresji wielomianowej\"\"\"\n",
" theta_start = np.matrix([0] * (n+1)).reshape(n+1, 1)\n",
" theta, logs = gradient_descent(cost, gradient, theta_start, X, y)\n",
" return lambda x: h_poly(theta, x), logs"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"def predict_values(model, data, n):\n",
" \"\"\"Funkcja predykcji\"\"\"\n",
" x, y = get_poly_data(np.array(data), n)\n",
" preprocessed_x = []\n",
" for i in x:\n",
" preprocessed_x.append(i.item(1))\n",
" return y, model(preprocessed_x), MSE(y, model(preprocessed_x))\n",
"\n",
"def plot_and_mse(data, data_test, n):\n",
" \"\"\"Wykres wraz z MSE\"\"\"\n",
" x, y = get_poly_data(np.array(data), n)\n",
" model, logs = polynomial_regression(x, y, n)\n",
" cost_function = [[element[0], i] for i, element in enumerate(logs)]\n",
" cost_functions[n] = cost_function\n",
" \n",
" fig = plot_data(x, y, xlabel='x', ylabel='y')\n",
" plot_fun(fig, model, x)\n",
"\n",
" y_true, Y_pred, mse = predict_values(model, data_test, n)\n",
" print(f'Wielomian {n} stopnia, MSE = {mse}')"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" sqrMetres price\n",
"1102 73 550000.0\n",
"1375 78 496573.0\n",
"1644 40 310000.0\n",
"1434 22 377652.0\n",
"1444 30 345180.0\n",
"... ... ...\n",
"384 76 269984.0\n",
"214 42 249000.0\n",
"24 47 299000.0\n",
"1004 57 293848.0\n",
"1632 112 329000.0\n",
"\n",
"[1674 rows x 2 columns]"
],
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>sqrMetres</th>\n <th>price</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1102</th>\n <td>73</td>\n <td>550000.0</td>\n </tr>\n <tr>\n <th>1375</th>\n <td>78</td>\n <td>496573.0</td>\n </tr>\n <tr>\n <th>1644</th>\n <td>40</td>\n <td>310000.0</td>\n </tr>\n <tr>\n <th>1434</th>\n <td>22</td>\n <td>377652.0</td>\n </tr>\n <tr>\n <th>1444</th>\n <td>30</td>\n <td>345180.0</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>384</th>\n <td>76</td>\n <td>269984.0</td>\n </tr>\n <tr>\n <th>214</th>\n <td>42</td>\n <td>249000.0</td>\n </tr>\n <tr>\n <th>24</th>\n <td>47</td>\n <td>299000.0</td>\n </tr>\n <tr>\n <th>1004</th>\n <td>57</td>\n <td>293848.0</td>\n </tr>\n <tr>\n <th>1632</th>\n <td>112</td>\n <td>329000.0</td>\n </tr>\n </tbody>\n</table>\n<p>1674 rows × 2 columns</p>\n</div>"
},
"metadata": {},
"execution_count": 51
}
],
"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",
"alldata = alldata[['sqrMetres', 'price']]\n",
"alldata = alldata.sample(frac=1)\n",
"alldata"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"# alldata = np.matrix(alldata[['sqrMetres', 'price']])\n",
"data_train = alldata[0:1600]\n",
"data_test = alldata[1600:]\n",
"data_train = np.matrix(data_train).astype(float)\n",
"data_test = np.matrix(data_test).astype(float)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Wielomian 1 stopnia, MSE = 49522013685.367744\n",
"Wielomian 2 stopnia, MSE = 148367826800.28735\n",
"Wielomian 3 stopnia, MSE = 145689760074.80402\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 611.892812 366.394687\" width=\"611.892812pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:29.197818</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 611.892812 366.394687 \r\nL 611.892812 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"mc0b5115b94\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#p2caf5c0389)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"290.50125\" xlink:href=\"#mc0b5115b94\" y=\"275.004513\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"295.30125\" xlink:href=\"#mc0b5115b94\" y=\"281.396021\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#mc0b5115b94\" y=\"303.715876\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"241.54125\" xlink:href=\"#mc0b5115b94\" y=\"295.622621\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"249.22125\" xlink:href=\"#mc0b5115b94\" y=\"299.507268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"306.82125\" xlink:href=\"#mc0b5115b94\" y=\"293.547268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"263.62125\" xlink:href=\"#mc0b5115b94\" y=\"305.151444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"268.42125\" xlink:href=\"#mc0b5115b94\" y=\"301.323262\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"318.34125\" xlink:href=\"#mc0b5115b94\" y=\"255.507105\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"279.94125\" xlink:href=\"#mc0b5115b94\" y=\"293.068745\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"248.26125\" xlink:href=\"#mc0b5115b94\" y=\"319.555575\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"274.18125\" xlink:href=\"#mc0b5115b94\" y=\"302.519569\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"244.42125\" xlink:href=\"#mc0b5115b94\" y=\"298.430951\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#mc0b5115b94\" y=\"311.392337\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"271.30125\" xlink:href=\"#mc0b5115b94\" y=\"291.752808\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"288.58125\" xlink:href=\"#mc0b5115b94\" y=\"310.893716\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"297.22125\" xlink:href=\"#mc0b5115b94\" y=\"270.21
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 611.892812 366.394687\" width=\"611.892812pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:29.379817</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 611.892812 366.394687 \r\nL 611.892812 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m14499e479b\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#p0904b6529c)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"290.50125\" xlink:href=\"#m14499e479b\" y=\"275.004513\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"295.30125\" xlink:href=\"#m14499e479b\" y=\"281.396021\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#m14499e479b\" y=\"303.715876\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"241.54125\" xlink:href=\"#m14499e479b\" y=\"295.622621\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"249.22125\" xlink:href=\"#m14499e479b\" y=\"299.507268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"306.82125\" xlink:href=\"#m14499e479b\" y=\"293.547268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"263.62125\" xlink:href=\"#m14499e479b\" y=\"305.151444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"268.42125\" xlink:href=\"#m14499e479b\" y=\"301.323262\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"318.34125\" xlink:href=\"#m14499e479b\" y=\"255.507105\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"279.94125\" xlink:href=\"#m14499e479b\" y=\"293.068745\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"248.26125\" xlink:href=\"#m14499e479b\" y=\"319.555575\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"274.18125\" xlink:href=\"#m14499e479b\" y=\"302.519569\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"244.42125\" xlink:href=\"#m14499e479b\" y=\"298.430951\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#m14499e479b\" y=\"311.392337\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"271.30125\" xlink:href=\"#m14499e479b\" y=\"291.752808\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"288.58125\" xlink:href=\"#m14499e479b\" y=\"310.893716\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"297.22125\" xlink:href=\"#m14499e479b\" y=\"270.21
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 611.892812 366.394687\" width=\"611.892812pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:29.563819</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 611.892812 366.394687 \r\nL 611.892812 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m1694d4bdb2\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#pea196e4b2c)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"290.50125\" xlink:href=\"#m1694d4bdb2\" y=\"275.004513\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"295.30125\" xlink:href=\"#m1694d4bdb2\" y=\"281.396021\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#m1694d4bdb2\" y=\"303.715876\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"241.54125\" xlink:href=\"#m1694d4bdb2\" y=\"295.622621\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"249.22125\" xlink:href=\"#m1694d4bdb2\" y=\"299.507268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"306.82125\" xlink:href=\"#m1694d4bdb2\" y=\"293.547268\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"263.62125\" xlink:href=\"#m1694d4bdb2\" y=\"305.151444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"268.42125\" xlink:href=\"#m1694d4bdb2\" y=\"301.323262\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"318.34125\" xlink:href=\"#m1694d4bdb2\" y=\"255.507105\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"279.94125\" xlink:href=\"#m1694d4bdb2\" y=\"293.068745\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"248.26125\" xlink:href=\"#m1694d4bdb2\" y=\"319.555575\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"274.18125\" xlink:href=\"#m1694d4bdb2\" y=\"302.519569\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"244.42125\" xlink:href=\"#m1694d4bdb2\" y=\"298.430951\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"258.82125\" xlink:href=\"#m1694d4bdb2\" y=\"311.392337\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"271.30125\" xlink:href=\"#m1694d4bdb2\" y=\"291.752808\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"288.58125\" xlink:href=\"#m1694d4bdb2\" y=\"310.893716\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"297.22125\" xlink:href=\"#m1694d4bdb2\" y=\"270.21
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"cost_fun_slices = []\n",
"for n in range(1, 4):\n",
" plot_and_mse(data_train, data_test, n)\n",
" \n",
" cost_data = cost_functions.get(n)\n",
" cost_x = [line[1] for line in cost_data[:250]]\n",
" cost_y = [line[0] for line in cost_data[:250]]\n",
" cost_fun_slices.append((cost_x, cost_y))"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 603.944375 366.394687\" width=\"603.944375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:30.037820</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 603.944375 366.394687 \r\nL 603.944375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 34.240625 328.838437 \r\nL 587.200625 328.838437 \r\nL 587.200625 17.798437 \r\nL 34.240625 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"med1a61cf7a\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.443653\" xlink:href=\"#med1a61cf7a\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(33.262403 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"146.595047\" xlink:href=\"#med1a61cf7a\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(140.232547 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 603.944375 366.394687\" width=\"603.944375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:30.351819</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 603.944375 366.394687 \r\nL 603.944375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 34.240625 328.838437 \r\nL 587.200625 328.838437 \r\nL 587.200625 17.798437 \r\nL 34.240625 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m53652101c9\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.443653\" xlink:href=\"#m53652101c9\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(33.262403 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"146.595047\" xlink:href=\"#m53652101c9\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(140.232547 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 603.944375 366.394687\" width=\"603.944375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:30.662817</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 603.944375 366.394687 \r\nL 603.944375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 34.240625 328.838437 \r\nL 587.200625 328.838437 \r\nL 587.200625 17.798437 \r\nL 34.240625 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m0d993e7107\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"36.443653\" xlink:href=\"#m0d993e7107\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(33.262403 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"146.595047\" xlink:href=\"#m0d993e7107\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(140.232547 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"#WYKRESY FUNKCJI KOSZTU\n",
"for fig in cost_fun_slices:\n",
" cost_x, cost_y = fig\n",
" fig = plot_data_cost(cost_x, cost_y, \"Iteration\", \"Cost function value\")"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"# Ilość nauki do oceny"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" number_courses time_study Marks\n",
"0 3 4.508 19.202\n",
"1 4 0.096 7.734\n",
"2 4 3.133 13.811\n",
"3 6 7.909 53.018\n",
"4 8 7.811 55.299\n",
".. ... ... ...\n",
"95 6 3.561 19.128\n",
"96 3 0.301 5.609\n",
"97 4 7.163 41.444\n",
"98 7 0.309 12.027\n",
"99 3 6.335 32.357\n",
"\n",
"[100 rows x 3 columns]"
],
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>number_courses</th>\n <th>time_study</th>\n <th>Marks</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>3</td>\n <td>4.508</td>\n <td>19.202</td>\n </tr>\n <tr>\n <th>1</th>\n <td>4</td>\n <td>0.096</td>\n <td>7.734</td>\n </tr>\n <tr>\n <th>2</th>\n <td>4</td>\n <td>3.133</td>\n <td>13.811</td>\n </tr>\n <tr>\n <th>3</th>\n <td>6</td>\n <td>7.909</td>\n <td>53.018</td>\n </tr>\n <tr>\n <th>4</th>\n <td>8</td>\n <td>7.811</td>\n <td>55.299</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>95</th>\n <td>6</td>\n <td>3.561</td>\n <td>19.128</td>\n </tr>\n <tr>\n <th>96</th>\n <td>3</td>\n <td>0.301</td>\n <td>5.609</td>\n </tr>\n <tr>\n <th>97</th>\n <td>4</td>\n <td>7.163</td>\n <td>41.444</td>\n </tr>\n <tr>\n <th>98</th>\n <td>7</td>\n <td>0.309</td>\n <td>12.027</td>\n </tr>\n <tr>\n <th>99</th>\n <td>3</td>\n <td>6.335</td>\n <td>32.357</td>\n </tr>\n </tbody>\n</table>\n<p>100 rows × 3 columns</p>\n</div>"
},
"metadata": {},
"execution_count": 56
}
],
"source": [
"data_marks_all = pandas.read_csv('Student_Marks.csv')\n",
"data_marks_all"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"data_marks_all = data_marks_all[['time_study', 'Marks']]\n",
"# data_marks_all = data_marks_all.sample(frac=1)\n",
"data_marks_train = data_marks_all[0:70]\n",
"data_marks_test = data_marks_all[70:]\n",
"data_marks_train = np.matrix(data_marks_train).astype(float)\n",
"data_marks_test = np.matrix(data_marks_test).astype(float)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"tags": []
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Wielomian 1 stopnia, MSE = 381.1693728350544\n",
"Wielomian 2 stopnia, MSE = 394.1863119057109\n",
"Wielomian 3 stopnia, MSE = 391.50171107305584\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 608.714687 355.79625\" width=\"608.714687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:34.813658</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M -0 355.79625 \r\nL 608.714687 355.79625 \r\nL 608.714687 0 \r\nL -0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 40.603125 318.24 \r\nL 593.563125 318.24 \r\nL 593.563125 7.2 \r\nL 40.603125 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m5637b01e2b\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#p746ac559a1)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"328.911709\" xlink:href=\"#m5637b01e2b\" y=\"232.943453\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"225.671918\" xlink:href=\"#m5637b01e2b\" y=\"302.728771\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"296.737024\" xlink:href=\"#m5637b01e2b\" y=\"265.748881\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"408.494332\" xlink:href=\"#m5637b01e2b\" y=\"27.165611\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"406.201155\" xlink:href=\"#m5637b01e2b\" y=\"13.285221\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"298.562206\" xlink:href=\"#m5637b01e2b\" y=\"241.341059\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"365.298354\" xlink:href=\"#m5637b01e2b\" y=\"167.910694\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"303.28896\" xlink:href=\"#m5637b01e2b\" y=\"244.736612\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"326.618532\" xlink:href=\"#m5637b01e2b\" y=\"225.96979\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.872329\" xlink:href=\"#m5637b01e2b\" y=\"161.989773\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"395.484059\" xlink:href=\"#m5637b01e2b\" y=\"93.993511\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"233.323643\" xlink:href=\"#m5637b01e2b\" y=\"275.965968\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"322.125776\" xlink:href=\"#m5637b01e2b\" y=\"201.811461\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.436163\" xlink:href=\"#m5637b01e2b\" y=\"242.253842\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.472075\" xlink:href=\"#m5637b01e2b\" y=\"280.438605\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.108566\" xlink:href=\"#m5637b01e2b\" y=\"231.336955\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"357.248833\" xlink:href=\"#m5637b01e2b\" y=\"163.900533\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 608.714687 355.79625\" width=\"608.714687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:34.957659</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M -0 355.79625 \r\nL 608.714687 355.79625 \r\nL 608.714687 0 \r\nL -0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 40.603125 318.24 \r\nL 593.563125 318.24 \r\nL 593.563125 7.2 \r\nL 40.603125 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"mda1611d1ae\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#pb7df3feb70)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"328.911709\" xlink:href=\"#mda1611d1ae\" y=\"232.943453\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"225.671918\" xlink:href=\"#mda1611d1ae\" y=\"302.728771\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"296.737024\" xlink:href=\"#mda1611d1ae\" y=\"265.748881\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"408.494332\" xlink:href=\"#mda1611d1ae\" y=\"27.165611\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"406.201155\" xlink:href=\"#mda1611d1ae\" y=\"13.285221\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"298.562206\" xlink:href=\"#mda1611d1ae\" y=\"241.341059\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"365.298354\" xlink:href=\"#mda1611d1ae\" y=\"167.910694\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"303.28896\" xlink:href=\"#mda1611d1ae\" y=\"244.736612\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"326.618532\" xlink:href=\"#mda1611d1ae\" y=\"225.96979\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.872329\" xlink:href=\"#mda1611d1ae\" y=\"161.989773\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"395.484059\" xlink:href=\"#mda1611d1ae\" y=\"93.993511\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"233.323643\" xlink:href=\"#mda1611d1ae\" y=\"275.965968\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"322.125776\" xlink:href=\"#mda1611d1ae\" y=\"201.811461\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.436163\" xlink:href=\"#mda1611d1ae\" y=\"242.253842\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.472075\" xlink:href=\"#mda1611d1ae\" y=\"280.438605\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.108566\" xlink:href=\"#mda1611d1ae\" y=\"231.336955\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"357.248833\" xlink:href=\"#mda1611d1ae\" y=\"163.900533\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 608.714687 355.79625\" width=\"608.714687pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:35.105659</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M -0 355.79625 \r\nL 608.714687 355.79625 \r\nL 608.714687 0 \r\nL -0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 40.603125 318.24 \r\nL 593.563125 318.24 \r\nL 593.563125 7.2 \r\nL 40.603125 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m57aae5905a\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#pd90f6d9ef9)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"328.911709\" xlink:href=\"#m57aae5905a\" y=\"232.943453\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"225.671918\" xlink:href=\"#m57aae5905a\" y=\"302.728771\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"296.737024\" xlink:href=\"#m57aae5905a\" y=\"265.748881\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"408.494332\" xlink:href=\"#m57aae5905a\" y=\"27.165611\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"406.201155\" xlink:href=\"#m57aae5905a\" y=\"13.285221\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"298.562206\" xlink:href=\"#m57aae5905a\" y=\"241.341059\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"365.298354\" xlink:href=\"#m57aae5905a\" y=\"167.910694\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"303.28896\" xlink:href=\"#m57aae5905a\" y=\"244.736612\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"326.618532\" xlink:href=\"#m57aae5905a\" y=\"225.96979\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.872329\" xlink:href=\"#m57aae5905a\" y=\"161.989773\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"395.484059\" xlink:href=\"#m57aae5905a\" y=\"93.993511\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"233.323643\" xlink:href=\"#m57aae5905a\" y=\"275.965968\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"322.125776\" xlink:href=\"#m57aae5905a\" y=\"201.811461\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.436163\" xlink:href=\"#m57aae5905a\" y=\"242.253842\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.472075\" xlink:href=\"#m57aae5905a\" y=\"280.438605\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"323.108566\" xlink:href=\"#m57aae5905a\" y=\"231.336955\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"357.248833\" xlink:href=\"#m57aae5905a\" y=\"163.900533\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"cost_fun_slices = []\n",
"\n",
"for n in range(1, 4):\n",
" plot_and_mse(data_marks_train, data_marks_test, n)\n",
" \n",
" cost_data = cost_functions.get(n)\n",
" cost_x = [line[1] for line in cost_data[:250]]\n",
" cost_y = [line[0] for line in cost_data[:250]]\n",
" cost_fun_slices.append((cost_x, cost_y))"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 616.669375 355.79625\" width=\"616.669375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:35.487659</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 616.669375 355.79625 \r\nL 616.669375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 46.965625 318.24 \r\nL 599.925625 318.24 \r\nL 599.925625 7.2 \r\nL 46.965625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m2fd6aca046\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"49.168653\" xlink:href=\"#m2fd6aca046\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(45.987403 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"159.320047\" xlink:href=\"#m2fd6aca046\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(152.957547 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 616.669375 355.79625\" width=\"616.669375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:35.794658</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 616.669375 355.79625 \r\nL 616.669375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 46.965625 318.24 \r\nL 599.925625 318.24 \r\nL 599.925625 7.2 \r\nL 46.965625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m136bb56895\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"49.168653\" xlink:href=\"#m136bb56895\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(45.987403 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"159.320047\" xlink:href=\"#m136bb56895\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(152.957547 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 616.669375 355.79625\" width=\"616.669375pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:03:36.103659</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 616.669375 355.79625 \r\nL 616.669375 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 46.965625 318.24 \r\nL 599.925625 318.24 \r\nL 599.925625 7.2 \r\nL 46.965625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"ma8525507c9\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"49.168653\" xlink:href=\"#ma8525507c9\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(45.987403 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"159.320047\" xlink:href=\"#ma8525507c9\" y=\"318.24\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(152.957547 332.838437)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"#WYKRESY FUNKCJI KOSZTU\n",
"for fig in cost_fun_slices:\n",
" cost_x, cost_y = fig\n",
" fig = plot_data_cost(cost_x, cost_y, \"Iteration\", \"Cost function value\")"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" age sex bmi children smoker region charges\n",
"319 32 male 37.335 1 no northeast 4667.60765\n",
"832 28 female 23.845 2 no northwest 4719.73655\n",
"79 41 female 32.965 0 no northwest 6571.02435\n",
"74 44 male 27.400 2 no southwest 7726.85400\n",
"603 64 female 39.050 3 no southeast 16085.12750\n",
".. ... ... ... ... ... ... ...\n",
"328 64 female 33.800 1 yes southwest 47928.03000\n",
"447 56 female 25.650 0 no northwest 11454.02150\n",
"320 34 male 25.270 1 no northwest 4894.75330\n",
"575 58 female 27.170 0 no northwest 12222.89830\n",
"756 39 female 22.800 3 no northeast 7985.81500\n",
"\n",
"[1338 rows x 7 columns]"
],
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>age</th>\n <th>sex</th>\n <th>bmi</th>\n <th>children</th>\n <th>smoker</th>\n <th>region</th>\n <th>charges</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>319</th>\n <td>32</td>\n <td>male</td>\n <td>37.335</td>\n <td>1</td>\n <td>no</td>\n <td>northeast</td>\n <td>4667.60765</td>\n </tr>\n <tr>\n <th>832</th>\n <td>28</td>\n <td>female</td>\n <td>23.845</td>\n <td>2</td>\n <td>no</td>\n <td>northwest</td>\n <td>4719.73655</td>\n </tr>\n <tr>\n <th>79</th>\n <td>41</td>\n <td>female</td>\n <td>32.965</td>\n <td>0</td>\n <td>no</td>\n <td>northwest</td>\n <td>6571.02435</td>\n </tr>\n <tr>\n <th>74</th>\n <td>44</td>\n <td>male</td>\n <td>27.400</td>\n <td>2</td>\n <td>no</td>\n <td>southwest</td>\n <td>7726.85400</td>\n </tr>\n <tr>\n <th>603</th>\n <td>64</td>\n <td>female</td>\n <td>39.050</td>\n <td>3</td>\n <td>no</td>\n <td>southeast</td>\n <td>16085.12750</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>328</th>\n <td>64</td>\n <td>female</td>\n <td>33.800</td>\n <td>1</td>\n <td>yes</td>\n <td>southwest</td>\n <td>47928.03000</td>\n </tr>\n <tr>\n <th>447</th>\n <td>56</td>\n <td>female</td>\n <td>25.650</td>\n <td>0</td>\n <td>no</td>\n <td>northwest</td>\n <td>11454.02150</td>\n </tr>\n <tr>\n <th>320</th>\n <td>34</td>\n <td>male</td>\n <td>25.270</td>\n <td>1</td>\n <td>no</td>\n <td>northwest</td>\n <td>4894.75330</td>\n </tr>\n <tr>\n <th>575</th>\n <td>58</td>\n <td>female</td>\n <td>27.170</td>\n <td>0</td>\n <td>no</td>\n <td>northwest</td>\n <td>12222.89830</td>\n </tr>\n <tr>\n <th>756</th>\n <td>39</td>\n <td>female</td>\n <td>22.800</td>\n <td>3</td>\n <td>no</td>\n <td>northeast</td>\n <td>7985.81500</td>\n </tr>\n </tbody>\n</table>\n<p>1338 rows × 7 columns</p>\n</div>"
},
"metadata": {},
"execution_count": 60
}
],
"source": [
"data_ins = pandas.read_csv('insurance.csv')\n",
"data_ins = data_ins.sample(frac=1)\n",
"data_ins"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"data_ins = data_ins[['age', 'charges']]\n",
"data_ins_train = data_ins[0:1200]\n",
"data_ins_test = data_ins[1200:]\n",
"data_ins_train = np.matrix(data_ins_train).astype(float)\n",
"data_ins_test = np.matrix(data_ins_test).astype(float)"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Wielomian 1 stopnia, MSE = 164742254.38173005\n",
"Wielomian 2 stopnia, MSE = 165462756.34970585\n",
"Wielomian 3 stopnia, MSE = 165419346.88711548\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 627.802187 355.79625\" width=\"627.802187pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:56.575016</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 627.802187 355.79625 \r\nL 627.802187 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 59.690625 318.24 \r\nL 612.650625 318.24 \r\nL 612.650625 7.2 \r\nL 59.690625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m5cc4cb12cf\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#pf2d1c4044a)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#m5cc4cb12cf\" y=\"300.631599\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"294.857522\" xlink:href=\"#m5cc4cb12cf\" y=\"300.372796\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"336.170625\" xlink:href=\"#m5cc4cb12cf\" y=\"291.181743\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"345.704418\" xlink:href=\"#m5cc4cb12cf\" y=\"285.443418\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#m5cc4cb12cf\" y=\"243.947258\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"332.992694\" xlink:href=\"#m5cc4cb12cf\" y=\"227.270209\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#m5cc4cb12cf\" y=\"301.690094\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.949935\" xlink:href=\"#m5cc4cb12cf\" y=\"277.205487\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"301.213384\" xlink:href=\"#m5cc4cb12cf\" y=\"302.7688\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5cc4cb12cf\" y=\"144.137444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"358.416142\" xlink:href=\"#m5cc4cb12cf\" y=\"120.381133\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"272.612004\" xlink:href=\"#m5cc4cb12cf\" y=\"310.907638\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5cc4cb12cf\" y=\"270.206399\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5cc4cb12cf\" y=\"310.449225\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#m5cc4cb12cf\" y=\"77.667515\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.679591\" xlink:href=\"#m5cc4cb12cf\" y=\"311.422758\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"383.839591\" xlink:href=\"#m5cc4cb12cf\" y=\"257.127803\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 627.802187 355.79625\" width=\"627.802187pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:56.752013</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 627.802187 355.79625 \r\nL 627.802187 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 59.690625 318.24 \r\nL 612.650625 318.24 \r\nL 612.650625 7.2 \r\nL 59.690625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"m5e77661ebf\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#p6d50a4ac4e)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#m5e77661ebf\" y=\"300.631599\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"294.857522\" xlink:href=\"#m5e77661ebf\" y=\"300.372796\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"336.170625\" xlink:href=\"#m5e77661ebf\" y=\"291.181743\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"345.704418\" xlink:href=\"#m5e77661ebf\" y=\"285.443418\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#m5e77661ebf\" y=\"243.947258\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"332.992694\" xlink:href=\"#m5e77661ebf\" y=\"227.270209\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#m5e77661ebf\" y=\"301.690094\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.949935\" xlink:href=\"#m5e77661ebf\" y=\"277.205487\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"301.213384\" xlink:href=\"#m5e77661ebf\" y=\"302.7688\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5e77661ebf\" y=\"144.137444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"358.416142\" xlink:href=\"#m5e77661ebf\" y=\"120.381133\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"272.612004\" xlink:href=\"#m5e77661ebf\" y=\"310.907638\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5e77661ebf\" y=\"270.206399\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#m5e77661ebf\" y=\"310.449225\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#m5e77661ebf\" y=\"77.667515\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.679591\" xlink:href=\"#m5e77661ebf\" y=\"311.422758\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"383.839591\" xlink:href=\"#m5e77661ebf\" y=\"257.127803\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"355.79625pt\" version=\"1.1\" viewBox=\"0 0 627.802187 355.79625\" width=\"627.802187pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:56.930014</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 355.79625 \r\nL 627.802187 355.79625 \r\nL 627.802187 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 59.690625 318.24 \r\nL 612.650625 318.24 \r\nL 612.650625 7.2 \r\nL 59.690625 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"PathCollection_1\">\r\n <defs>\r\n <path d=\"M 0 3.535534 \r\nC 0.937635 3.535534 1.836992 3.163008 2.5 2.5 \r\nC 3.163008 1.836992 3.535534 0.937635 3.535534 0 \r\nC 3.535534 -0.937635 3.163008 -1.836992 2.5 -2.5 \r\nC 1.836992 -3.163008 0.937635 -3.535534 0 -3.535534 \r\nC -0.937635 -3.535534 -1.836992 -3.163008 -2.5 -2.5 \r\nC -3.163008 -1.836992 -3.535534 -0.937635 -3.535534 0 \r\nC -3.535534 0.937635 -3.163008 1.836992 -2.5 2.5 \r\nC -1.836992 3.163008 -0.937635 3.535534 0 3.535534 \r\nz\r\n\" id=\"mdf3fa7425a\" style=\"stroke:#ff0000;\"/>\r\n </defs>\r\n <g clip-path=\"url(#pd915e1e571)\">\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#mdf3fa7425a\" y=\"300.631599\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"294.857522\" xlink:href=\"#mdf3fa7425a\" y=\"300.372796\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"336.170625\" xlink:href=\"#mdf3fa7425a\" y=\"291.181743\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"345.704418\" xlink:href=\"#mdf3fa7425a\" y=\"285.443418\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#mdf3fa7425a\" y=\"243.947258\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"332.992694\" xlink:href=\"#mdf3fa7425a\" y=\"227.270209\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"307.569246\" xlink:href=\"#mdf3fa7425a\" y=\"301.690094\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"367.949935\" xlink:href=\"#mdf3fa7425a\" y=\"277.205487\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"301.213384\" xlink:href=\"#mdf3fa7425a\" y=\"302.7688\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#mdf3fa7425a\" y=\"144.137444\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"358.416142\" xlink:href=\"#mdf3fa7425a\" y=\"120.381133\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"272.612004\" xlink:href=\"#mdf3fa7425a\" y=\"310.907638\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#mdf3fa7425a\" y=\"270.206399\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"278.967866\" xlink:href=\"#mdf3fa7425a\" y=\"310.449225\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"409.263039\" xlink:href=\"#mdf3fa7425a\" y=\"77.667515\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"291.679591\" xlink:href=\"#mdf3fa7425a\" y=\"311.422758\"/>\r\n <use style=\"fill:#ff0000;stroke:#ff0000;\" x=\"383.839591\" xlink:href=\"#mdf3fa7425a\" y=\"257.127803\"
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"cost_fun_slices = []\n",
"\n",
"for n in range(1, 4):\n",
" plot_and_mse(data_ins_train, data_ins_test, n)\n",
" \n",
" cost_data = cost_functions.get(n)\n",
" cost_x = [line[1] for line in cost_data[:250]]\n",
" cost_y = [line[0] for line in cost_data[:250]]\n",
" cost_fun_slices.append((cost_x, cost_y))"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 613.485 366.394687\" width=\"613.485pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:57.375013</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 613.485 366.394687 \r\nL 613.485 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"mce9172e3ee\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.984278\" xlink:href=\"#mce9172e3ee\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(42.803028 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"156.135672\" xlink:href=\"#mce9172e3ee\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(149.773172 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.79687
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 613.485 366.394687\" width=\"613.485pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:57.669013</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 613.485 366.394687 \r\nL 613.485 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"mc0829b05e7\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.984278\" xlink:href=\"#mc0829b05e7\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(42.803028 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"156.135672\" xlink:href=\"#mc0829b05e7\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(149.773172 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.79687
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAFvCAYAAAAL/LzcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAXIklEQVR4nO3de7RmZX0f8O9PQDGI2srU5eKSsRYT0QoavKGxeKkBlgmaZVRijXei4iWNTcQ0EVfyR8xyabSNYDGhqDWwqJfIsgg0xojxPhAExJBQLxEUZ5RWsKYm4K9/vO8kh3HOOe8M5z3nOfN+Pmuddd797Mv7Gx728GXvZz+7ujsAAGysu2x0AQAACGUAAEMQygAABiCUAQAMQCgDABiAUAYAMIBNGcqq6pyq2l5V18yw7RFV9bGq+suquqqqTlqPGgEA9sSmDGVJzk1ywozb/maSC7r7YUmeneTMeRUFALC3NmUo6+7Lkty8tK2qHlBVF1fV5VX1iar6yZ2bJ7nn9PO9knxjHUsFAJjJ/htdwBo6O8lLu/tvqupRmVwRe2KSNyS5tKpemeSgJE/euBIBAHZvnwhlVXWPJMcl+e9VtbP5btPfpyQ5t7vfXFWPSfKeqnpId/9wA0oFANitfSKUZXIb9v909zG7WfeiTMefdfenq+rAJIck2b5+5QEArGxTjinbVXffkuQrVfULSVITR09X/22SJ03bH5TkwCQ7NqRQAIBlVHdvdA17rKrOS3J8Jle8vpXkjCR/luSsJPdLckCS87v7t6vqqCTvTHKPTAb9/3p3X7oRdQMALGdThjIAgH3NPnH7EgBgsxPKAAAGsOmevjzkkEN669atG10GAMAdXH755d/u7i17u/+mC2Vbt27Ntm3bNroMAIA7qKqv3Zn93b4EABiAUAYAMAChDABgAEIZAMAAhDIAgAEIZQAAAxDKAAAGIJQBAAxAKAMAGIBQBgAwAKEMAGAAQhkAwACEMgCAAQhlAAADEMoAAAYglAEADEAoAwAYgFAGADAAoQwAYABCGQDAAIQyAIABCGUAAAMQygAABiCUAQAMQCgDABiAUAYAMAChDABgAEIZAMAAhDIAgAEIZQAAAxDKAAAGIJQBAAxAKAMAGIBQBgAwAKEMAGAAQhkAwACEMgCAAQhlAAADEMoAAAYglAEADEAoAwAYgFAGADAAoQwAYABCGQDAAIQyAIABCGUAAAMQygAABiCUAQAMQCgDABiAUAYAMAChDABgAEIZAMAAhDIAgAEIZQAAAxDKAAAGIJQBAAxAKAMAGIBQBgAwAKEMAGAAcwtlVXVOVW2vqmtW2e4RVXVbVT1jXrUAAIxunlfKzk1ywkobVNV+SX4vyaVzrAMAYHhzC2XdfVmSm1fZ7JVJ3p9k+7zqAADYDDZsTFlVHZrk6UnOmmHbU6tqW1Vt27Fjx/yLAwBYZxs50P+tSV7b3T9cbcPuPru7j+3uY7ds2TL/ygAA1tn+G/jdxyY5v6qS5JAkJ1XVbd39JxtYEwDAhtiwUNbd99/5uarOTfJhgQwAWFRzC2VVdV6S45McUlU3JDkjyQFJ0t3vmNf3AgBsRnMLZd19yh5s+/x51QEAsBmY0R8AYABCGQDAAIQyAIABCGUAAAMQygAABiCUAQAMQCgDABiAUAYAMAChDABgAEIZAMAAhDIAgAEIZQAAAxDKAAAGIJQBAAxAKAMAGIBQBgAwAKEMAGAAQhkAwACEMgCAAQhlAAADEMoAAAYglAEADEAoAwAYgFAGADAAoQwAYABCGQDAAIQyAIABCGUAAAMQygAABiCUAQAMQCgDABiAUAYAMAChDABgAEIZAMAAhDIAgAEIZQAAAxDKAAAGIJQBAAxg5lBWVT82z0IAABbZqqGsqo6rqmuT/NV0+eiqOnPulQEALJBZrpT9fpKfSfKdJOnuLyR5/DyLAgBYNDPdvuzur+/SdPscagEAWFj7z7DN16vquCRdVQckeXWSL823LACAxTLLlbKXJjktyaFJbkxyzHQZAIA1suqVsu7+dpLnrEMtAAALa9VQVlX/NUnv2t7dL5xLRQAAC2iWMWUfXvL5wCRPT/KN+ZQDALCYZrl9+f6ly1V1XpK/mFtFAAALaG9es3Rkkn+x1oUAACyyWcaU3ZrJmLKa/r4pyWvnXBcAwEKZ5fblwetRCADAIls2lFXVw1fasbuvWPtyAAAW00pXyt68wrpO8sQ1rgUAYGEtG8q6+wnrWQgAwCKbZZ6yVNVDkhyVyTxlSZLufve8igIAWDSzPH15RpLjMwllFyU5MZN5yoQyAIA1Mss8Zc9I8qQkN3X3C5IcneRec60KAGDBzBLK/q67f5jktqq6Z5LtSQ5fbaeqOqeqtlfVNcusf05VXVVVV1fVp6rq6D0rHQBg3zFLKNtWVfdO8s4klye5IsmnZ9jv3CQnrLD+K0n+TXf/6yS/k+TsGY4JALBPmmXy2JdPP76jqi5Ocs/uvmqG/S6rqq0rrP/UksXPJDlstWMCAOyrVr1SVlUXVtUvVtVB3f3VWQLZXnhRko/M4bgAAJvCLLcv35zkcUmurar3VdUzqurA1XaaVVU9IZNQtuz7NKvq1KraVlXbduzYsVZfDQAwjFVDWXd/fHoL818m+S9JnpnJYP87raoemuQPk5zc3d9ZoYazu/vY7j52y5Yta/HVAABDmXXy2Lsn+dkkz0ry8CTvurNfXFVHJPlAkud291/f2eMBAGxms0wee0GSRya5OMkfJPn4dIqM1fY7L5NJZw+pqhuSnJHkgCTp7nckeX2S+yQ5s6qS5LbuPnbv/hgAAJvbLFfK/ijJKd19+54cuLtPWWX9i5O8eE+OCQCwr5plSoxL1qMQAIBFNsvTlwAAzJlQBgAwgFmfvjw0yY8v3b67L5tXUQAAi2aWpy9/L5OpMK5NsnOwfycRygAA1sgsV8qeluQnuvsHc64FAGBhzTKm7MuZzi8GAMB8zHKl7PtJrqyqjyb5x6tl3f2quVUFALBgZgllF05/AACYk1kmj31XVd01yQOnTdd19z/MtywAgMUyy9OXx2fyAvKvJqkkh1fV80yJAQCwdma5ffnmJE/p7uuSpKoemOS8JD81z8IAABbJLE9fHrAzkCVJd/91PI0JALCmZrlStq2q/jDJf5suPyfJtvmVBACweGYJZS9LclqSnVNgfCLJmXOrCABgAc3y9OUPkrxl+gMAwBwsG8qq6oLufmZVXZ3Juy7voLsfOtfKAAAWyEpXyl49/f3U9SgEAGCRLfv0ZXd/c/rx5d39taU/SV6+PuUBACyGWabE+Le7aTtxrQsBAFhkK40pe1kmV8QeUFVXLVl1cJJPzbswAIBFstKYsj9O8pEkv5vk9CXtt3b3zXOtCgBgwaw0puy73f3VJG9LcvOS8WS3VdWj1qtAAIBFMMuYsrOSfG/J8vembQAArJFZQll19z/OU9bdP8xsbwIAAGBGs4SyL1fVq6rqgOnPq5N8ed6FAQAskllC2UuTHJfkxiQ3JHlUklPnWRQAwKKZ5d2X25M8ex1qAQBYWKuGsqrakuQlSbYu3b67Xzi/sgAAFsssA/Y/lOQTSf40ye3zLQcAYDHNEsp+rLtfO/dKAAAW2CwD/T9cVSfNvRIAgAU2Syh7dSbB7O+q6paqurWqbpl3YQAAi2SWpy8PXo9CAAAW2SxPXz5+d+3dfdnalwMAsJhmGej/a0s+H5jkkUkuT/LEuVQEALCAZrl9+bNLl6vq8CRvnVdBAACLaJaB/ru6IcmD1roQAIBFNsuYsv+cpKeLd0lyTJIr5lgTAMDCmWVM2bYln29Lcl53f3JO9QAALKRlQ1lVfbS7n5TkKDP6AwDM10pXyu5XVccl+bmqOj9JLV3Z3W5hAgCskZVC2euT/FaSw5K8ZZd1HVNiAACsmWVDWXe/L8n7quq3uvt31rEmAICFs+qUGAIZAMD87c08ZQAArDGhDABgAKuGsqp6zyxtAADsvVmulD146UJV7Zfkp+ZTDgDAYlo2lFXV66rq1iQPrapbpj+3Jtme5EPrViEAwAJYNpR19+9298FJ3tTd95z+HNzd9+nu161jjQA
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 691.2x388.8 with 1 Axes>",
"image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"366.394687pt\" version=\"1.1\" viewBox=\"0 0 613.485 366.394687\" width=\"613.485pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <metadata>\r\n <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\r\n <cc:Work>\r\n <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\r\n <dc:date>2022-06-20T19:06:57.964014</dc:date>\r\n <dc:format>image/svg+xml</dc:format>\r\n <dc:creator>\r\n <cc:Agent>\r\n <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\r\n </cc:Agent>\r\n </dc:creator>\r\n </cc:Work>\r\n </rdf:RDF>\r\n </metadata>\r\n <defs>\r\n <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n <g id=\"patch_1\">\r\n <path d=\"M 0 366.394687 \r\nL 613.485 366.394687 \r\nL 613.485 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n </g>\r\n <g id=\"axes_1\">\r\n <g id=\"patch_2\">\r\n <path d=\"M 43.78125 328.838437 \r\nL 596.74125 328.838437 \r\nL 596.74125 17.798437 \r\nL 43.78125 17.798437 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n </g>\r\n <g id=\"matplotlib.axis_1\">\r\n <g id=\"xtick_1\">\r\n <g id=\"line2d_1\">\r\n <defs>\r\n <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m1d2da14d7e\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n </defs>\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.984278\" xlink:href=\"#m1d2da14d7e\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_1\">\r\n <!-- 0 -->\r\n <g transform=\"translate(42.803028 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n </defs>\r\n <use xlink:href=\"#DejaVuSans-48\"/>\r\n </g>\r\n </g>\r\n </g>\r\n <g id=\"xtick_2\">\r\n <g id=\"line2d_2\">\r\n <g>\r\n <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"156.135672\" xlink:href=\"#m1d2da14d7e\" y=\"328.838437\"/>\r\n </g>\r\n </g>\r\n <g id=\"text_2\">\r\n <!-- 50 -->\r\n <g transform=\"translate(149.773172 343.436875)scale(0.1 -0.1)\">\r\n <defs>\r\n <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.79687
"image/png": "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
},
"metadata": {
"needs_background": "light"
}
}
],
"source": [
"#WYKRESY FUNKCJI KOSZTU\n",
"for fig in cost_fun_slices:\n",
" cost_x, cost_y = fig\n",
" fig = plot_data_cost(cost_x, cost_y, \"Iteration\", \"Cost function value\")"
]
}
],
"metadata": {
"author": "Paweł Skórzewski",
"celltoolbar": "Slideshow",
"email": "pawel.skorzewski@amu.edu.pl",
"kernelspec": {
"name": "python3",
"display_name": "Python 3.9.5 64-bit",
"metadata": {
"interpreter": {
"hash": "ac59ebe37160ed0dfa835113d9b8498d9f09ceb179beaac4002f036b9467c963"
}
}
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5-final"
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "white"
},
"subtitle": "5.Regresja wielomianowa. Problem nadmiernego dopasowania[wykład]",
"title": "Uczenie maszynowe",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}