mirea-projects/Third term/Artificial intelligence systems and big data/4.ipynb

1360 lines
323 KiB
Plaintext
Raw Normal View History

2024-09-23 23:22:33 +00:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Рабочая тетрадь No 4"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 403,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from sklearn import metrics\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.linear_model import LinearRegression\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1.3 Задание\n",
"\n",
"Представьте собственные данные и постройте эктраполяцию полиномами \n",
"первой, второй и третьей степени. "
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 404,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[-0.07808256 1.34935162 1.7342857 2.54080198 3.89339092 4.61161853\n",
" 6.12398157 6.8045353 8.26939507 9.02620843 9.50583159]\n",
"[8.71060552e-01 2.77270588e+00 6.94877588e+00 2.01183390e+01\n",
" 5.48419138e+01 1.48152200e+02 4.03507781e+02 1.09625683e+03\n",
" 2.98133624e+03 8.10312483e+03 2.20261474e+04]\n"
2024-09-23 23:22:33 +00:00
]
}
],
"source": [
2024-09-27 05:31:03 +00:00
"import math\n",
"\n",
2024-09-23 23:22:33 +00:00
"delta = 1.0\n",
2024-09-27 05:31:03 +00:00
"x = np.linspace(0, 10, 11)\n",
"y = math.e ** x + delta * (np.random.rand(11) - 0.5)\n",
2024-09-23 23:22:33 +00:00
"x += delta * (np.random.rand(11) - 0.5)\n",
"\n",
"print(x)\n",
"print(y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Эктраполяция полиномом первой степени"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 405,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = np.vstack((x, np.ones(11))).T\n",
"s = np.linalg.lstsq(m,y,rcond = None)[0]\n",
"\n",
2024-09-27 05:31:03 +00:00
"x_prec = np.linspace(8, 10, 101)\n",
2024-09-23 23:22:33 +00:00
"\n",
"plt.plot(x, y,'D')\n",
"plt.plot(x_prec, s[0] * x_prec + s[1], '-', lw=1)\n",
"plt.grid()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Эктраполяция полиномом второй степени"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 406,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAGdCAYAAADwjmIIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGe0lEQVR4nO3dd3wUdf7H8demAxKqJEQCRIp0RBAMoCIloYgiHDZURCzHjxwlHioWRD1FUVFQFDkL5x0o4J2oiEAMStFQJVJEQEQBIQlKCQRINtn5/TFkQwRCAtmd3dn38/HYh/Od/e7OZ7/E7DtTvuMwDMNARERExGaCrC5ARERExBMUckRERMSWFHJERETElhRyRERExJYUckRERMSWFHJERETElhRyRERExJYUckRERMSWQqwuwEoul4u9e/dSuXJlHA6H1eWIiIhIKRiGwZEjR4iJiSEo6Oz7awI65Ozdu5fY2FiryxAREZHzsHv3burUqXPW5wM65FSuXBkwBykyMtJj23E6nSxevJiEhARCQ0M9tp1ApjH2Do2z52mMvUPj7HmeHOPs7GxiY2Pd3+NnE9Ahp/AQVWRkpMdDTsWKFYmMjNT/TB6iMfYOjbPnaYy9Q+Psed4Y43OdaqITj0VERMSWFHJERETElhRyRERExJYUckRERMSWFHJERETElhRyRERExJYUckRERMSWFHJEREQC2JTU7cQ98jlTUrdbXUq5C+jJAEVERALZlNTtTErZBuD+74hujawsqVxpT46IiEgAOjXgFJqUss1We3QUckRERALMmQJOITsFHYUcERGRAFJSwClkl6CjkCMiIhIgShNwCtkh6CjkiIiIBIhXShlwzre/r1HIERERCRCjezT2aH9fo5AjIiISIEZ0a0RyKYNLco/Gfn85uUKOiIhIAClN0LFDwAGFHBERkYBTUtCxS8ABhRwREZGAdKagY6eAA7qtg4iISMAqDDSvpGxjtM0CDijkiIiIBLQR3RrZLtwU0uEqERERsSWFHBEREbElhRwRERGxJYUcERERsSWFHBEREbElhRwRERGxJYUcERERsSWFHBEREbElhRwRERGxJYUcERERsSWFHBEREbElhRwRERGxJYUcERERsSWFHBEREbElhRwRERGxJYUcERERsSWFHBEREbGlMoWcCRMmcOWVV1K5cmVq1apFv3792Lp1a7E+J06cYPjw4dSoUYOLLrqIAQMGkJmZWazPrl276NOnDxUrVqRWrVqMGTOG/Pz8Yn2+/vprrrjiCsLDw2nYsCEzZsw4rZ6pU6dSv359IiIi6NChA6tXry7LxxEREREbK1PIWbp0KcOHD2flypWkpKTgdDpJSEggJyfH3Wf06NF89tlnzJ07l6VLl7J371769+/vfr6goIA+ffqQl5fHt99+y7/+9S9mzJjBuHHj3H127txJnz59uO6660hPT2fUqFHce++9LFq0yN1n9uzZJCcn8+STT/Ldd9/RunVrEhMTycrKupDxEBEREbswLkBWVpYBGEuXLjUMwzAOHTpkhIaGGnPnznX32bJliwEYaWlphmEYxoIFC4ygoCAjIyPD3efNN980IiMjjdzcXMMwDOOhhx4ymjdvXmxbt9xyi5GYmOhut2/f3hg+fLi7XVBQYMTExBgTJkwodf2HDx82AOPw4cNl+NRll5eXZ8ybN8/Iy8vz6HYCmcbYOzTOnqcx9g6Ns+d5coxL+/0dciEB6fDhwwBUr14dgHXr1uF0Ounevbu7T5MmTahbty5paWlcddVVpKWl0bJlS6Kiotx9EhMTGTZsGJs3b6ZNmzakpaUVe4/CPqNGjQIgLy+PdevWMXbsWPfzQUFBdO/enbS0tLPWm5ubS25urrudnZ0NgNPpxOl0nuconFvhe3tyG4FOY+wdGmfP0xh7h8bZ8zw5xqV9z/MOOS6Xi1GjRtGpUydatGgBQEZGBmFhYVStWrVY36ioKDIyMtx9Tg04hc8XPldSn+zsbI4fP87BgwcpKCg4Y58ff/zxrDVPmDCBp5566rT1ixcvpmLFiqX41BcmJSXF49sIdBpj79A4e57G2Ds0zp7niTE+duxYqfqdd8gZPnw4mzZtYsWKFef7Fl43duxYkpOT3e3s7GxiY2NJSEggMjLSY9t1Op2kpKTQo0cPQkNDPbadQKYx9g6Ns+dpjL1D4+x5nhzjwiMx53JeIScpKYn58+ezbNky6tSp414fHR1NXl4ehw4dKrY3JzMzk+joaHefP18FVXj11al9/nxFVmZmJpGRkVSoUIHg4GCCg4PP2KfwPc4kPDyc8PDw09aHhoZ65YfcW9sJZBpj79A4e57G2Ds0zp7niTEu7fuV6eoqwzBISkri448/ZsmSJcTFxRV7vm3btoSGhpKamupet3XrVnbt2kV8fDwA8fHxbNy4sdhVUCkpKURGRtKsWTN3n1Pfo7BP4XuEhYXRtm3bYn1cLhepqanuPiIiIhLYyrQnZ/jw4cyaNYtPPvmEypUru8+hqVKlChUqVKBKlSoMHTqU5ORkqlevTmRkJH/729+Ij4/nqquuAiAhIYFmzZpx5513MnHiRDIyMnj88ccZPny4ey/LX//6V15//XUeeugh7rnnHpYsWcKcOXP4/PPP3bUkJyczePBg2rVrR/v27Xn11VfJyclhyJAh5TU2IiIi4sfKFHLefPNNALp06VJs/Xvvvcfdd98NwCuvvEJQUBADBgwgNzeXxMRE3njjDXff4OBg5s+fz7Bhw4iPj6dSpUoMHjyYp59+2t0nLi6Ozz//nNGjRzN58mTq1KnD22+/TWJiorvPLbfcwv79+xk3bhwZGRlcfvnlLFy48LSTkUVERCQwlSnkGIZxzj4RERFMnTqVqVOnnrVPvXr1WLBgQYnv06VLF9avX19in6SkJJKSks5Zk4iIiAQe3btKREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREbEkhR0RERGxJIUdERERsSSFHREREyl3Q4seofWgNGIZlNYRYtmURERGxp5+XErzmLdoDrnl74OYZlpShPTkiIiJSfgryYeFYd9N16XWWlaKQIyIiIuXnu39B1mYADlWoj9HqVstKUcgRERGR8nH8ICz5h7u5oc6d4LAuauicHBERESkfX78Axw8A4Go+gINhjSwtR3tyRERE5MJl/Qirp5vLoRUp6PqktfWgkCMiIiIXyjBg0aNgFJjtzqMhMsbamlDIERERkQu1fTHsSDWXq8RCx79ZW89JCjkiIiJy/vJzi10yTo+nIbSCdfWcQiFHREREzt/KN+HADnO5bkdofpO19ZxCIUdERETOT/Y+WPaiuewIgl4vgMNhbU2nUMgRERGR8/Plk5B31FxuOwRqt7K2nj9RyBEREZGy27USNsw2lyOqQtfHLS3nTBRyREREpGxcBfDFQ0Xtro9DxerW1XMWCjkiIiJSNuv/Dfu+N5ejWpiHqnyQQo6IiIiU3vGDkPp0UbvXRAj2zbtEKeSIiIhI6X31HBz7w1xuMQDqd7K2nhIo5IiIiEjp7NsAa942l0MrmhP/+TCFHBERETk3w4AFY8Bwme1rxkCVOtbWdA4KOSIiInJuG+bA7pXmcvUGED/c2npKQSFHRERESnYiG1KeKGr3nggh4dbVU0plDjnLli2jb9++xMTE4HA4mDdvXrHn7777bhwOR7FHz549i/U5cOAAgwYNIjIykqpVqzJ06FCOHj1arM+GDRu4+uqriYiIIDY2lokTJ55Wy9y5c2nSpAkRERG0bNmSBQsWlPXjiIiIyLksfQGOZprLTa6Hht2trae
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = np.vstack((x**2, x, np.ones(11))).T\n",
"s = np.linalg.lstsq(m, y, rcond = None)[0]\n",
"\n",
2024-09-27 05:31:03 +00:00
"x_prec = np.linspace(0, 10, 101)\n",
2024-09-23 23:22:33 +00:00
"\n",
"plt.plot(x, y,'D')\n",
"plt.plot(x_prec, s[0] * x_prec**2 + s[1] * x_prec + s[2], '-', lw=2)\n",
"plt.grid()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Эктраполяция полиномом третьей степени"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 407,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m = np.vstack((x**3, x**2, x, np.ones(11))).T\n",
"s = np.linalg.lstsq(m, y, rcond = None)[0]\n",
"\n",
2024-09-27 05:31:03 +00:00
"x_prec = np.linspace(0, 10, 101)\n",
2024-09-23 23:22:33 +00:00
"\n",
2024-09-27 05:31:03 +00:00
"plt.plot(x, y, 'D')\n",
2024-09-23 23:22:33 +00:00
"plt.plot(x_prec, s[0] * x_prec**3 + s[1] * x_prec**2 + s[2] * x_prec + s[3], '-', lw=3)\n",
"plt.grid()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.1.5 Задача\n",
"\n",
"Необходимо проверить гипотезу, что наши точечно заданная функция ложится \n",
"на кривые вида: \n",
"1. $f(x,b) = b_0+b_1x$\n",
"2. $f(x,b) = b_0+b_1x+b_2x^2$\n",
"3. $f(x,b) = b_0+b_1\\ln(x)$\n",
"4. $f(x,b) = b_0x^{b_1}$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Функция №1"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 439,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[1.45930946 1.67619359]\n",
"0.04053187863635288\n",
"35.64010010802867\n"
2024-09-23 23:22:33 +00:00
]
}
],
"source": [
"beta = (1.24, 1.74)\n",
"def f(x, b0, b1):\n",
" return b0 + b1 * x\n",
"\n",
"xdata = np.linspace(0,5,50)\n",
"y = f(xdata, *beta)\n",
2024-09-27 05:31:03 +00:00
"ydata = y + 1 * np.random.randn(len(xdata))\n",
2024-09-23 23:22:33 +00:00
"\n",
"from scipy.optimize import curve_fit\n",
"beta_opt, beta_cov = curve_fit(f, xdata, ydata)\n",
"print(beta_opt)\n",
"\n",
"lin_dev = sum(beta_cov[0])\n",
"print(lin_dev)\n",
"\n",
"residuals = ydata - f(xdata, *beta_opt)\n",
"fres = sum(residuals**2)\n",
"print(fres)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 440,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkUAAAG6CAYAAAAGUjKQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgKUlEQVR4nO3deVzU1RrH8c+ACppI4oYmFlmpSO5LLi1abplXq1tZmlruS7nkXmamubVom2uLltl+zazULDPT3BEV0Sy1NMUNFNxAnZn7x8+ZAQVhYDaG7/v14nUvZ37z+x2ge+fpnOc8j8lqtVoRERERKeACvD0BEREREV+goEhEREQEBUUiIiIigIIiEREREUBBkYiIiAigoEhEREQEUFAkIiIiAkAhb0/AV1ksFg4fPkxISAgmk8nb0xEREZEcsFqtnD59mgoVKhAQ4Nzaj4KiLBw+fJiIiAhvT0NERERy4eDBg1SsWNGp9ygoykJISAhg/FJLlCjh5dmIiIhITqSkpBAREWH/HHeGgqIs2LbMSpQooaBIREQkn8lN6osSrUVERERQUCQiIiICKCgSERERARQUiYiIiAAKikREREQABUUiIiIigIIiEREREUBBkYiIiAigoEhEREQEUEVrERER8XFmi5WN+5M4djqVsiHBNIgMIzDA9c3aFRSJiIiIz1oWl8C4JfEkJKfax8qHBjO2XRSto8u79FnaPhMRERGftCwugb4LYjIERABHklPpuyCGZXEJLn2egiIRERHxOWaLlXFL4rFm8pptbNySeMyWzK7IHQVFIiIi4nM27k+6aoUoPSuQkJzKxv1JLnumgiIRERHxOcdOZx0Q5ea6nFBQJCIiIj6nbEiwS6/LCQVFIiIi4nMaRIZRPjSYrA7emzBOoTWIDHPZMxUUiYiIiM8JDDAxtl0UwFWBke37se2iXFqvSEGRiIiI+KTW0eWZ2bkO4aEZt8jCQ4OZ2bnOVXWKzBYrG/flPvFaxRtFRETEZ7WOLk+LqPBsK1rbijweOqagSERERPxUYICJRpVLZfm6rchjXisWaftMRERE8q1rFXl0loIiERERybeyK/LojHwZFK1evZp27dpRoUIFTCYT33zzTYbXrVYrL774IuXLl6do0aLcd999/Pnnn96ZrIiIiAuZLVbW7U1kcewh1u1NdGmbi/zIlcUb82VO0dmzZ6lZsyZPP/00Dz300FWvT506lbfeeov58+cTGRnJmDFjaNWqFfHx8QQHu67Ik4iIiCd5smN8fuHK4o35Mihq06YNbdq0yfQ1q9XK9OnTeeGFF2jfvj0AH330EeXKleObb76hY8eOnpyqiIiIS2SVTGzrGJ/ZEfWCwFbk8UhyqhKtr7R//36OHDnCfffdZx8LDQ2lYcOGrFu3Lsv3paWlkZKSkuFLRETEF3ijY3x+ca0ij87yu6DoyJEjAJQrVy7DeLly5eyvZWbSpEmEhobavyIiItw6TxERkZzyRsf4/MRW5PHGYiYGrvkk1/fxu6Aot0aNGkVycrL96+DBg96ekoiICOCdjvH5TeuTf/HLJ4PpuXlxru/hd0FReHg4AEePHs0wfvToUftrmQkKCqJEiRIZvkRERHyBNzrG5xspKdCvH9x1F6Y9e/J0K78LiiIjIwkPD+fnn3+2j6WkpLBhwwYaNWrkxZmJiIjkjjc6xucL338P1avDzJn2oYt1G+b6dvkyKDpz5gyxsbHExsYCRnJ1bGwsBw4cwGQyMWjQICZMmMC3337Ljh076NKlCxUqVKBDhw5enbeIiEhueKNjvE87fhw6dYIHHoB//zXGihVj3aDPuev88lzf1mS1WvNdqvqqVato1qzZVeNdu3Zl3rx5WK1Wxo4dy5w5czh16hRNmzZlxowZ3HbbbTl+RkpKCqGhoSQnJ2srTUREfEKBr1NktcJnn8Gzz8KJE/bhU/d0YNQN85m9sARWawqQu8/vfBkUeYKCIhER8UVmizXbjvF+6d9/oW9f+O47+5D1+pJ83nERgxbdxdGjtt9B7oOifFm8UURExN/kNNjJrmO837FYYM4cGD4cTp+2D+9r3Y9+qW+wfFaQfey66+D552H06Nw9SkGRiIiIlxX4bbGs7NkDPXvC6tX2oQvlInj9vqW8/HV1UtNVIOjQAd56C0JDcx8U5ctEaxEREX9ha99xZXFGW/uOZXEJXpqZF126BFOmQI0aGQKiNW0nUafkfkZ/4giIKlaERYuMr7zWXdZKkYiIiJdk177DhNG+o0VUuNN5Q/k292jrVuje3fjPy5Iq1WJk9HfM/f4G+1hAAAwcCOPGQUiIax6toEhERMRLnGnf4UweUb7cjktNhZdfhqlTwWwGwGoKYGHrjxi86QmO/+AI6OrWNdKM6tRx7RS0fSYiIuIl7mjfkS+349asgZo1YdIke0D05y1taFkvic5LO3H8hBEQhYQYeUMbNrg+IAIFRSIiIl7j6vYd2W3HgbEdZ7b4SDWelBTo3x/uvNNIqgbSCl3HhOYruf3g9/y0KdR+6UMPQXw8PPMMBAa6ZzoKikRERLzE1e07nNmO87offoDoaJgxwz60ulpvakUkMmZlM9LSjN9KpUrw7bfw9ddGUrU7KSgSERHxEle373DHdpzLnTgBnTtD27Zw8CAAR4Nu4NGaW7l71yx27zfqDgUGwtChsHMntGvnmakpKBIREfGi1tHlmdm5DuGhGbfIwkODmdm5jlOJ0a7ejnMpW4uOatXgk0+MIeD5Ui9Q0fQnX26rZb+0YUPYsgVefRWKF/fcFHX6TERExMtaR5enRVR4no/Q27bjjiSnZppXZMIItnK6HecymbTo2Fy4Fg+FfM7BREdfUlORi5S8+w/GvFqKmjU9f0pOQZGIiIgPcEX7Dtt2XN8FMZggQ2CU1XacW+sZWSwwdy4MG2Zv0ZFGEXqXmclHiV2xJjkypotVPUzJ5vEUDkljwg9HaX2787WZ8kpBkYiIiB+xbcddWacoPJM6RW6tZ/Tnn0aLjl9/tQ/9UvIhni78AX8fc5wqCww9R6kWcRStfBzIfW0mV1BQJCIi4mdysh1nq2d05TabrZ6Rs/lMdpcuwRtvwNix2HpxHKc0Q2/5ho/+auK4LsBCifr7CG3yJwGFLVfdxhvJ4AqKRERE/NC1tuPc1l5k2zZ4+mmIibHfa17pYQxNm0DSX0XslwVVOElY6x0UKXM6ixt5Jxlcp89EREQKGJfXM0pNheefh3r17AHRLlMU99zwF0+fmErSaSMgCg2FGTOs1OoXQ1AWAZGztZlcSUGRiIhIAePSekZr10KtWjBxIly6RCpBvFhmBjUDd7D6UGX7ZY8/Drt3Q9++Jl5q77raTK6koEhERKSAcUk9o9OnjZ4bd94Jf/wBwE+Brbg97BDjj/fl4iUjxLj5Zli+HBYuhPBw462urM3kSsopEhERKWDyXM9o6VLo3dtekfoYZXiu1HwWJLaByztuhQrB8OHwwgtQtOjVt3BVbSZXUlAkIiJSwOSmnhEAiYkweDB8/DEAFkx8UKQPwwu9wclEx6pPkyYwezZUr579PDx97P5atH0mIiJSADm1hWW1wuefGy06LgdEO4ni7uu30fPCDE6eM+5RsqRRq3H16uwDIl+klSIREZECKkdbWIcOQb9+Rqt64DzBTAiawNRLg7l0yrG20rkzvP46lC3r6Z/CdRQUiYiIFGBZbmFZLPDee0aLjpQUAH6kBX2v+4h9Z8Ptl91yC8ycCffd56kZu4+2z0RERCSjv/6Ce+81kqlTUjhCOZ4I/ppW/GgPiAoXhjFjYMcO/wiIQCtFIiIiYnPpEkybBi++CKmpWDAxl56MLPIGp1Kvs192110wa5aRYuRPFBSJiIiI0aKje3fYsgWAHUTTO2ge69LqwgXjkrAweO016NYNTN47Oe822j4TEREpyFJTjWJC9erBli2cpRgjmEKdgFgjILqsa1ejIvVTT/lnQARaKRIRESm41q6FHj2MaAf4gTb0LzyHvy9WhMuN62+7zdgqa9bMi/P0EAVFIiIiBc3p0zB6NLz7LlitHKY8g0xv8aX1v3DRuKRIEeOSESMg2MmG9WaL1ac
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, y, 'r', lw=2)\n",
"ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2)\n",
"ax.set_xlim(0,5)\n",
"ax.set_xlabel(r'$x$', fontsize=18)\n",
"ax.set_ylabel(r'$f(x, \\beta)$', fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Функция №2"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 410,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[0.52433999 2.73790669 1.17001858]\n",
"0.0001973378757534478\n",
"0.1645591178934446\n"
2024-09-23 23:22:33 +00:00
]
}
],
"source": [
"beta = (0.51, 2.74, 1.17)\n",
"def f(x, b0, b1, b2):\n",
" return b0 + b1 * x + b2 * x**2\n",
"\n",
"xdata = np.linspace(0,5,50)\n",
"y = f(xdata, *beta)\n",
"ydata = y + 0.05 * np.random.randn(len(xdata))\n",
"\n",
"from scipy.optimize import curve_fit\n",
"beta_opt, beta_cov = curve_fit(f, xdata, ydata)\n",
"print(beta_opt)\n",
"\n",
"lin_dev = sum(beta_cov[0])\n",
"print(lin_dev)\n",
"\n",
"residuals = ydata - f(xdata, *beta_opt)\n",
"fres = sum(residuals**2)\n",
"print(fres)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 411,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, y, 'r', lw=2)\n",
"ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2)\n",
"ax.set_xlim(0,5)\n",
"ax.set_xlabel(r'$x$', fontsize=18)\n",
"ax.set_ylabel(r'$f(x, \\beta)$', fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Функция №3"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 412,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[1.37468848 0.47099867]\n",
"5.1105391253661135e-05\n",
"0.15167039301730045\n"
2024-09-23 23:22:33 +00:00
]
}
],
"source": [
"beta = (1.37, 0.48)\n",
"\n",
"def f(x, b0, b1):\n",
" return b0 + b1 * np.log(x)\n",
"\n",
"xdata = np.linspace(0.01,5,50)\n",
"y = f(xdata, *beta)\n",
"ydata = y + 0.05 * np.random.randn(len(xdata))\n",
"\n",
"from scipy.optimize import curve_fit\n",
"beta_opt, beta_cov = curve_fit(f, xdata, ydata)\n",
"print(beta_opt)\n",
"\n",
"lin_dev = sum(beta_cov[0])\n",
"print(lin_dev)\n",
"\n",
"residuals = ydata - f(xdata, *beta_opt)\n",
"fres = sum(residuals**2)\n",
"print(fres)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 413,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, y, 'r', lw=2)\n",
"ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2)\n",
"ax.set_xlim(0,5)\n",
"ax.set_xlabel(r'$x$', fontsize=18)\n",
"ax.set_ylabel(r'$f(x, \\beta)$', fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Функция №4"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 414,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[0.88850056 1.91981925]\n",
"9.931739265191307e-05\n",
"0.1375688913692001\n"
2024-09-23 23:22:33 +00:00
]
}
],
"source": [
"beta = (0.89, 1.92)\n",
"def f(x, b0, b1):\n",
" return b0 + np.float_power(x, b1)\n",
"\n",
"xdata = np.linspace(0,5,50)\n",
"y = f(xdata, *beta)\n",
"ydata = y + 0.05 * np.random.randn(len(xdata))\n",
"\n",
"from scipy.optimize import curve_fit\n",
"beta_opt, beta_cov = curve_fit(f, xdata, ydata)\n",
"print(beta_opt)\n",
"\n",
"lin_dev = sum(beta_cov[0])\n",
"print(lin_dev)\n",
"\n",
"residuals = ydata - f(xdata, *beta_opt)\n",
"fres = sum(residuals**2)\n",
"print(fres)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 415,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, y, 'r', lw=2)\n",
"ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2)\n",
"ax.set_xlim(0,5)\n",
"ax.set_xlabel(r'$x$', fontsize=18)\n",
"ax.set_ylabel(r'$f(x, \\beta)$', fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.2.1 Задание\n",
"\n",
"Постройте модель линейной регрессии для произвольных данных из двух \n",
"столбцов. Для примера можно взять точечную зависимость заработной платы от \n",
"опыта работы: \n",
"(https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv). \n",
"Найдите коэффициенты линии регрессии. Постройте прогноз. "
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 416,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
"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>YearsExperience</th>\n",
" <th>Salary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>30.000000</td>\n",
" <td>30.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>5.313333</td>\n",
" <td>76003.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>2.837888</td>\n",
" <td>27414.429785</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.100000</td>\n",
" <td>37731.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>3.200000</td>\n",
" <td>56720.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>4.700000</td>\n",
" <td>65237.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>7.700000</td>\n",
" <td>100544.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>10.500000</td>\n",
" <td>122391.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" YearsExperience Salary\n",
"count 30.000000 30.000000\n",
"mean 5.313333 76003.000000\n",
"std 2.837888 27414.429785\n",
"min 1.100000 37731.000000\n",
"25% 3.200000 56720.750000\n",
"50% 4.700000 65237.000000\n",
"75% 7.700000 100544.750000\n",
"max 10.500000 122391.000000"
]
},
2024-09-27 05:31:03 +00:00
"execution_count": 416,
2024-09-23 23:22:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url = 'https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv'\n",
"\n",
"ds = pd.read_csv(url)\n",
"\n",
"ds.describe()"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 417,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(ds['YearsExperience'], ds['Salary'])\n",
"plt.xlabel('Опыт (годы)')\n",
"plt.ylabel('Зарплата')\n",
"plt.show()"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 418,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"X = ds.iloc[:, :-1].values\n",
"y = ds.iloc[:, 1].values\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 419,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"26780.09915062818\n",
2024-09-23 23:22:33 +00:00
"[9312.57512673]\n"
]
}
],
"source": [
"regressor = LinearRegression()\n",
"regressor.fit(X_train, y_train)\n",
"\n",
"print(regressor.intercept_)\n",
"print(regressor.coef_)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 420,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"y_pred = regressor.predict(X_test)\n",
"df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 421,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.plot(kind='bar')\n",
"plt.grid()\n",
"plt.show()"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 422,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAGdCAYAAAD+JxxnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9sklEQVR4nO3de3RU1f3//1cuMAmQC8HmglxM/SCUSxVKjfH6aUkNXYjy09aKQSlS9YNYQVtFq4BoFQx4KSogWhUFUagXBBGbAopAGjCESwQDtRGokKRfQiYBSQiZ/fvjmCGHCZBAkjOZeT7WmrU8+2wy72mq8+K99zknxBhjBAAAEIRCnS4AAADAKQQhAAAQtAhCAAAgaBGEAABA0CIIAQCAoEUQAgAAQYsgBAAAghZBCAAABK1wpwvwZx6PR/v27VNUVJRCQkKcLgcAADSAMUYVFRXq3LmzQkNP3fMhCJ3Cvn371LVrV6fLAAAAZ2Dv3r3q0qXLKecQhE4hKipKkvU/ZHR0tMPVAACAhigvL1fXrl293+OnQhA6hdrlsOjoaIIQAACtTEO2tbBZGgAABC2CEAAACFoEIQAAELQIQgAAIGgRhAAAQNAiCAEAgKBFEAIAAEGLIAQAAIIWQQgAAAQtghAAAAhaPGIDAAC0uBqP0YbCUpVUVCo+KkIXJ8cpLPT0j8RoagQhAADQolbk79eUpdu1313pHUuKidDkob01uG9Si9bC0hgAAGgxK/L3a8z8TTpSVKLPXvqdbtu4RJJU5K7UmPmbtCJ/f4vWQxACAAAtosZjNGXpdv1/+Su1eebN6l5WpEmrXpYkme/nTFm6XTUec/If0sRYGgMAAC1iw9f/T+88laFu7mLv2BP/e5v3n42k/e5KbSgsVer5nVqkJoIQAABoftu2KfXHP7YNDRo9W1+f09VnaklFpc9Yc2FpDAAANK/x46U6Ieirc7or+YEP6w1BkhQfFdFChdERAgAAzaW8XIqJsQ09ctMjWtD9EtW3CyhEUmKMdSl9S6EjBAAAmt677/qEIB08qMsfvkuSFXrqqj2ePLR3i95PiCAEAACajjHSgAHSr351fGzMGGs8NlaD+yZp9ogBSoyxL38lxkRo9ogB/n8foTVr1mjo0KHq3LmzQkJC9MEHH3jPVVdXa8KECerXr5/at2+vzp0769Zbb9W+fftsP6O0tFQZGRmKjo5WbGysRo8erUOHDtnmbN26VVdccYUiIiLUtWtXZWZm+tSyePFi9erVSxEREerXr5+WL19uO2+M0aRJk5SUlKTIyEilpaVp165djf3IAACgIXbulEJDpby842ObNkmzZtmmDe6bpLUTfq6Ft1+iv9x0kRbefonWTvh5i4cg6QyC0OHDh3XhhRfqxRdf9Dn33XffadOmTZo4caI2bdqk9957TwUFBbr22mtt8zIyMvTll18qKytLy5Yt05o1a3THHXd4z5eXl+vqq69W9+7dlZubq+nTp+vRRx/V3LlzvXPWr1+v4cOHa/To0crLy9OwYcM0bNgw5efne+dkZmZq5syZmjNnjnJyctS+fXulp6ersrLldqMDABAUJk6UevY8ftyli3TsmNS/f73Tw0JDlHp+J1130blKPb+TI4/XkCSZsyDJvP/++6ecs2HDBiPJ7N692xhjzPbt240ks3HjRu+cjz/+2ISEhJhvv/3WGGPMrFmzTMeOHU1VVZV3zoQJE0zPnj29xzfeeKMZMmSI7b1SUlLMnXfeaYwxxuPxmMTERDN9+nTv+bKyMuNyuczChQsb9PncbreRZNxud4PmAwAQdA4fNsZa+Dr+evVVR0tqzPd3s+8RcrvdCgkJUWxsrCQpOztbsbGxGjhwoHdOWlqaQkNDlZOT451z5ZVXqm3btt456enpKigo0MGDB71z0tLSbO+Vnp6u7OxsSVJhYaGKiopsc2JiYpSSkuKdc6KqqiqVl5fbXgAA4CRWrJDat7ePlZRIo0Y5U88ZaNYgVFlZqQkTJmj48OGKjo6WJBUVFSk+Pt42Lzw8XHFxcSoqKvLOSUhIsM2pPT7dnLrn6/65+uacaOrUqYqJifG+unat//4GAAAENWOkn/9c+uUvj4/dfLM1/oMfOFfXGWi2IFRdXa0bb7xRxhjNnj27ud6mST300ENyu93e1969e50uCQAA/7J7t7UhevXq42Pr10sLFjhX01loliBUG4J2796trKwsbzdIkhITE1VSUmKbf+zYMZWWlioxMdE7p7i42Dan9vh0c+qer/vn6ptzIpfLpejoaNsLAAB8LzNTOu+848cdOkhHj0qpqY6VdLaaPAjVhqBdu3bpH//4hzp1sj80LTU1VWVlZcrNzfWOrVq1Sh6PRykpKd45a9asUXV1tXdOVlaWevbsqY4dO3rnrFy50vazs7KylPr9LyM5OVmJiYm2OeXl5crJyfHOAQAADVBVZXWBJkw4PjZzplRRIbVp41xdTaGxO7ErKipMXl6eycvLM5LMM888Y/Ly8szu3bvN0aNHzbXXXmu6dOliNm/ebPbv3+991b0CbPDgwaZ///4mJyfHrF271vTo0cMMHz7ce76srMwkJCSYW265xeTn55u3337btGvXzrz00kveOevWrTPh4eFmxowZZseOHWby5MmmTZs2Ztu2bd4506ZNM7GxsWbJkiVm69at5rrrrjPJycnmyJEjDfqsXDUGAAh6n37qe1XYf/7jdFWn1Jjv70YHodWrVxtJPq+RI0eawsLCes9JMqtXr/b+jAMHDpjhw4ebDh06mOjoaDNq1ChTUVFhe58tW7aYyy+/3LhcLnPuueeaadOm+dSyaNEic8EFF5i2bduaPn36mI8++sh23uPxmIkTJ5qEhATjcrnMoEGDTEFBQYM/K0EIABDUrrvOHoCuucbpihqkMd/fIcaY+p57BllLaTExMXK73ewXAgAEj/37pc6d7WMrV1pXirUCjfn+5unzAAAEmBqP0YbCUpVUVCo+ynqae4Pv3Dx7tnTXXfaxI0ekiIj657dyBCEAAALIivz9mrJ0u/a7jz9OKikmQpOH9j71s7yOHZPi46Xvb1wsSXriCelPf2rGap3H0+cBAAgQK/L3a8z8TbYQJElF7kqNmb9JK/L31/8HN2ywrv6qG4L+/e+AD0ESQQgAgIBQ4zGasnS76tv4Wzs2Zel21XhOmPHb30rf375GknTFFZLHIyUnN1Ol/oWlMQAAAsCGwlKfTlBdRtJ+d6U2FJYq9fxO0oED0jnn2CctWyYNGdK8hfoZOkIAAASAkoqThyCfeW+84RuCKiqCLgRJBCEAAAJCfNTpr+oKMR6lX3uZNHLk8cEHH7TuEtShQzNW579YGgMAIABcnBynpJgIFbkr690n9KOSQn382u/tgzt2SL16tUh9/oqOEAAAASAsNESTh/aWJJ14x6BH//GSPQT162dtiA7yECQRhAAACBiD+yZp9ogBSoyxlsmiqg7rm6eu0W9zlx6f9M470tatUkgDb7AY4FgaAwAggAzum6Rf9E7U18+/ogvG32E/efCgFBvrSF3+iiAEAEAg8XgUFhamC+qO3XWX9OKLTlXk11gaAwAgUCxdKoWF2cfy8ghBp0BHCACAQFDfnp+jR61HZ+Ck6AgBANCa/fe/viHoiiusewMRgk6LIAQAQGs1bpz1xPi6tm+X1qxxpp5WiKUxAABaG2Ok0Hp6Gaa+WyniVOgIAQDQmnz2mW8IevZZQtAZoiMEAEBrERdn3QuorsOHpXbtnKknANARAgDA35WXWxui64agHj2sLhAh6KwQhAAA8GePPSbFxNjHNmyQdu50pp4Aw9IYAAD+qr57A7EXqEnREQIAwN9s2uQbgiZOJAQ1AzpCAAD4kz59rHsB1cXDUpsNQQgAAH9w5IjvxucOHaSKCmfqCRIsjQEA4LTnn/cNQatWEYJaAB0hAACcVN+GaI+n/nE0OTpCAAA4oaDAN+zcdZe1IZoQ1GLoCAEA0NIGDbKWvuoqKpISEpypJ4gRhAAAaCnV1VLbtr7jXBbvGJbGAABohBqPUfbXB7Rk87fK/vqAajwNDDHz5/uGoA8+IAQ5jI4QAAANtCJ
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(X_test, y_test)\n",
"plt.plot(X_test, y_pred, c='r')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.3.2 Задание\n",
"\n",
"Постройте модель множественной линейной регрессии для произвольных \n",
"данных из нескольких столбцов. Для примера можно взять потребления \n",
"газа (в миллионах галлонов) в 48 штатах США или набор данных о \n",
"качестве красного вина (1) и (2) соответственно. Найдите коэффициенты \n",
"множественной регрессии. Постройте прогноз. "
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 423,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
"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>fixed acidity</th>\n",
" <th>volatile acidity</th>\n",
" <th>citric acid</th>\n",
" <th>residual sugar</th>\n",
" <th>chlorides</th>\n",
" <th>free sulfur dioxide</th>\n",
" <th>total sulfur dioxide</th>\n",
" <th>density</th>\n",
" <th>pH</th>\n",
" <th>sulphates</th>\n",
" <th>alcohol</th>\n",
" <th>quality</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" <td>1599.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>8.319637</td>\n",
" <td>0.527821</td>\n",
" <td>0.270976</td>\n",
" <td>2.538806</td>\n",
" <td>0.087467</td>\n",
" <td>15.874922</td>\n",
" <td>46.467792</td>\n",
" <td>0.996747</td>\n",
" <td>3.311113</td>\n",
" <td>0.658149</td>\n",
" <td>10.422983</td>\n",
" <td>5.636023</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1.741096</td>\n",
" <td>0.179060</td>\n",
" <td>0.194801</td>\n",
" <td>1.409928</td>\n",
" <td>0.047065</td>\n",
" <td>10.460157</td>\n",
" <td>32.895324</td>\n",
" <td>0.001887</td>\n",
" <td>0.154386</td>\n",
" <td>0.169507</td>\n",
" <td>1.065668</td>\n",
" <td>0.807569</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>4.600000</td>\n",
" <td>0.120000</td>\n",
" <td>0.000000</td>\n",
" <td>0.900000</td>\n",
" <td>0.012000</td>\n",
" <td>1.000000</td>\n",
" <td>6.000000</td>\n",
" <td>0.990070</td>\n",
" <td>2.740000</td>\n",
" <td>0.330000</td>\n",
" <td>8.400000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>7.100000</td>\n",
" <td>0.390000</td>\n",
" <td>0.090000</td>\n",
" <td>1.900000</td>\n",
" <td>0.070000</td>\n",
" <td>7.000000</td>\n",
" <td>22.000000</td>\n",
" <td>0.995600</td>\n",
" <td>3.210000</td>\n",
" <td>0.550000</td>\n",
" <td>9.500000</td>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>7.900000</td>\n",
" <td>0.520000</td>\n",
" <td>0.260000</td>\n",
" <td>2.200000</td>\n",
" <td>0.079000</td>\n",
" <td>14.000000</td>\n",
" <td>38.000000</td>\n",
" <td>0.996750</td>\n",
" <td>3.310000</td>\n",
" <td>0.620000</td>\n",
" <td>10.200000</td>\n",
" <td>6.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>9.200000</td>\n",
" <td>0.640000</td>\n",
" <td>0.420000</td>\n",
" <td>2.600000</td>\n",
" <td>0.090000</td>\n",
" <td>21.000000</td>\n",
" <td>62.000000</td>\n",
" <td>0.997835</td>\n",
" <td>3.400000</td>\n",
" <td>0.730000</td>\n",
" <td>11.100000</td>\n",
" <td>6.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>15.900000</td>\n",
" <td>1.580000</td>\n",
" <td>1.000000</td>\n",
" <td>15.500000</td>\n",
" <td>0.611000</td>\n",
" <td>72.000000</td>\n",
" <td>289.000000</td>\n",
" <td>1.003690</td>\n",
" <td>4.010000</td>\n",
" <td>2.000000</td>\n",
" <td>14.900000</td>\n",
" <td>8.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
2024-09-27 05:31:03 +00:00
" fixed acidity volatile acidity citric acid residual sugar \\\n",
"count 1599.000000 1599.000000 1599.000000 1599.000000 \n",
2024-09-23 23:22:33 +00:00
"mean 8.319637 0.527821 0.270976 2.538806 \n",
"std 1.741096 0.179060 0.194801 1.409928 \n",
"min 4.600000 0.120000 0.000000 0.900000 \n",
"25% 7.100000 0.390000 0.090000 1.900000 \n",
"50% 7.900000 0.520000 0.260000 2.200000 \n",
"75% 9.200000 0.640000 0.420000 2.600000 \n",
"max 15.900000 1.580000 1.000000 15.500000 \n",
"\n",
2024-09-27 05:31:03 +00:00
" chlorides free sulfur dioxide total sulfur dioxide density \\\n",
"count 1599.000000 1599.000000 1599.000000 1599.000000 \n",
2024-09-23 23:22:33 +00:00
"mean 0.087467 15.874922 46.467792 0.996747 \n",
"std 0.047065 10.460157 32.895324 0.001887 \n",
"min 0.012000 1.000000 6.000000 0.990070 \n",
"25% 0.070000 7.000000 22.000000 0.995600 \n",
"50% 0.079000 14.000000 38.000000 0.996750 \n",
"75% 0.090000 21.000000 62.000000 0.997835 \n",
"max 0.611000 72.000000 289.000000 1.003690 \n",
"\n",
" pH sulphates alcohol quality \n",
"count 1599.000000 1599.000000 1599.000000 1599.000000 \n",
"mean 3.311113 0.658149 10.422983 5.636023 \n",
"std 0.154386 0.169507 1.065668 0.807569 \n",
"min 2.740000 0.330000 8.400000 3.000000 \n",
"25% 3.210000 0.550000 9.500000 5.000000 \n",
"50% 3.310000 0.620000 10.200000 6.000000 \n",
"75% 3.400000 0.730000 11.100000 6.000000 \n",
"max 4.010000 2.000000 14.900000 8.000000 "
]
},
2024-09-27 05:31:03 +00:00
"execution_count": 423,
2024-09-23 23:22:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url = 'https://raw.githubusercontent.com/aniruddhachoudhury/Red-Wine-Quality/master/winequality-red.csv'\n",
"\n",
"ds = pd.read_csv(url)\n",
"\n",
"ds.describe()"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 424,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"X = ds[['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar', 'chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density', 'pH', 'sulphates', 'alcohol']]\n",
"y = ds['quality']\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 425,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"34.99871062872143\n",
2024-09-23 23:22:33 +00:00
"[ 4.12835075e-02 -1.14952802e+00 -1.77927063e-01 2.78700036e-02\n",
" -1.87340739e+00 2.68362616e-03 -2.77748370e-03 -3.15166657e+01\n",
" -2.54486051e-01 9.24040106e-01 2.67797417e-01]\n"
]
}
],
"source": [
"regressor = LinearRegression()\n",
"regressor.fit(X_train, y_train)\n",
"\n",
"print(regressor.intercept_)\n",
"print(regressor.coef_)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 426,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
"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>Coefficient</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>fixed acidity</th>\n",
" <td>0.041284</td>\n",
" </tr>\n",
" <tr>\n",
" <th>volatile acidity</th>\n",
" <td>-1.149528</td>\n",
" </tr>\n",
" <tr>\n",
" <th>citric acid</th>\n",
" <td>-0.177927</td>\n",
" </tr>\n",
" <tr>\n",
" <th>residual sugar</th>\n",
" <td>0.027870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>chlorides</th>\n",
" <td>-1.873407</td>\n",
" </tr>\n",
" <tr>\n",
" <th>free sulfur dioxide</th>\n",
" <td>0.002684</td>\n",
" </tr>\n",
" <tr>\n",
" <th>total sulfur dioxide</th>\n",
" <td>-0.002777</td>\n",
" </tr>\n",
" <tr>\n",
" <th>density</th>\n",
" <td>-31.516666</td>\n",
" </tr>\n",
" <tr>\n",
" <th>pH</th>\n",
" <td>-0.254486</td>\n",
" </tr>\n",
" <tr>\n",
" <th>sulphates</th>\n",
" <td>0.924040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alcohol</th>\n",
" <td>0.267797</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Coefficient\n",
"fixed acidity 0.041284\n",
"volatile acidity -1.149528\n",
"citric acid -0.177927\n",
"residual sugar 0.027870\n",
"chlorides -1.873407\n",
"free sulfur dioxide 0.002684\n",
"total sulfur dioxide -0.002777\n",
"density -31.516666\n",
"pH -0.254486\n",
"sulphates 0.924040\n",
"alcohol 0.267797"
]
},
2024-09-27 05:31:03 +00:00
"execution_count": 426,
2024-09-23 23:22:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(regressor.coef_, X.columns, columns=['Coefficient'])"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 427,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
"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>Actual</th>\n",
" <th>Predicted</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1109</th>\n",
" <td>6</td>\n",
" <td>5.782930</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1032</th>\n",
" <td>5</td>\n",
" <td>5.036193</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1002</th>\n",
" <td>7</td>\n",
" <td>6.596989</td>\n",
" </tr>\n",
" <tr>\n",
" <th>487</th>\n",
" <td>6</td>\n",
" <td>5.339126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>979</th>\n",
" <td>5</td>\n",
" <td>5.939529</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>794</th>\n",
" <td>6</td>\n",
" <td>6.559757</td>\n",
" </tr>\n",
" <tr>\n",
" <th>813</th>\n",
" <td>4</td>\n",
" <td>6.017576</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1322</th>\n",
" <td>5</td>\n",
" <td>6.251291</td>\n",
" </tr>\n",
" <tr>\n",
" <th>704</th>\n",
" <td>4</td>\n",
" <td>5.163926</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1023</th>\n",
" <td>6</td>\n",
" <td>6.367205</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>320 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" Actual Predicted\n",
"1109 6 5.782930\n",
"1032 5 5.036193\n",
"1002 7 6.596989\n",
"487 6 5.339126\n",
"979 5 5.939529\n",
"... ... ...\n",
"794 6 6.559757\n",
"813 4 6.017576\n",
"1322 5 6.251291\n",
"704 4 5.163926\n",
"1023 6 6.367205\n",
"\n",
"[320 rows x 2 columns]"
]
},
2024-09-27 05:31:03 +00:00
"execution_count": 427,
2024-09-23 23:22:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_pred = regressor.predict(X_test)\n",
"df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})\n",
"\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Средняя квадратичная ошибка"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 428,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2024-09-27 05:31:03 +00:00
"np.float64(0.38447119782012357)"
2024-09-23 23:22:33 +00:00
]
},
2024-09-27 05:31:03 +00:00
"execution_count": 428,
2024-09-23 23:22:33 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"metrics.mean_squared_error(y_test,y_pred)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1.3.2 Задание*\n",
"\n",
"Экспериментально получены N значений величины Y при \n",
"различных значениях величины X. Построить полиномы первой и второй \n",
"степени, аппроксимирующие результаты эксперимента, с применением \n",
"метода наименьших квадратов. Результаты выводятся в виде таблиц \n",
"значений и графиков, полученных полиномов. \n",
"\n",
"*Вариант:* 2"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 429,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"# Линейная функция\n",
"def linear_func(x, b0, b1):\n",
" return b0 + b1 * x\n",
"\n",
"# Квадратичная функция\n",
"def quadratic_func(x, b0, b1, b2):\n",
" return b0 + b1 * x + b2 * x**2"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 430,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [],
"source": [
"xdata = np.linspace(0, 1, 6)\n",
"ydata = np.asarray([5.0, 5.0, 4.0, 4.0, 6.0, 6.0])"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 431,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[4.42857143 1.14285715]\n",
" x y\n",
"0 0.0 4.428571\n",
"1 0.2 4.657143\n",
"2 0.4 4.885714\n",
"3 0.6 5.114286\n",
"4 0.8 5.342857\n",
"5 1.0 5.571429\n"
]
}
],
"source": [
"beta_opt, beta_cov = curve_fit(linear_func, xdata, ydata, method='lm')\n",
"print(beta_opt)\n",
"df = pd.DataFrame({\"x\": xdata, \"y\": linear_func(xdata, *beta_opt)});\n",
"#df.columns=['xdata', 'ydata']\n",
"print(df)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 432,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, linear_func(xdata, *beta_opt), 'b', lw=2)\n",
"plt.xlabel('x')\n",
"plt.ylabel('linear')\n",
"plt.show()"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 433,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-09-27 05:31:03 +00:00
"[ 5.14285713 -4.21428562 5.35714277]\n",
2024-09-23 23:22:33 +00:00
" x y\n",
"0 0.0 5.142857\n",
"1 0.2 4.514286\n",
"2 0.4 4.314286\n",
"3 0.6 4.542857\n",
"4 0.8 5.200000\n",
"5 1.0 6.285714\n"
]
}
],
"source": [
"beta_opt, beta_cov = curve_fit(quadratic_func, xdata, ydata, method='lm')\n",
"print(beta_opt)\n",
"df = pd.DataFrame({\"x\": xdata, \"y\": quadratic_func(xdata, *beta_opt)});\n",
"print(df)"
]
},
{
"cell_type": "code",
2024-09-27 05:31:03 +00:00
"execution_count": 434,
2024-09-23 23:22:33 +00:00
"metadata": {},
"outputs": [
{
"data": {
2024-09-27 05:31:03 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBxElEQVR4nO3de5yN5f7/8feaGTODPTPkLJNNOcsWNgnpoIiEKMmxLUr6VpRQbKdCQu2d0jk6qii7EJVCRdu57VDKKcJQYcZxxszcvz+u38xqmJlmxlrrWuter+fjsR5d15p7Zj5zh/s9133d1+VxHMcRAACAS0TYLgAAAMCXCDcAAMBVCDcAAMBVCDcAAMBVCDcAAMBVCDcAAMBVCDcAAMBVomwXEGiZmZnav3+/4uLi5PF4bJcDAAAKwHEcHTt2TJUrV1ZERP5jM2EXbvbv36/ExETbZQAAgCLYu3evqlSpku8xYRdu4uLiJJmTEx8fb7kaAABQECkpKUpMTMy+jucn7MJN1q2o+Ph4wg0AACGmIFNKmFAMAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAABchXADAAB8Yt8+6corpRUr7NZBuAEAAD7x6KPSV19JrVtLr7xirw7CDQAAOG/r1kmzZ5t26dJSly72aiHcAACA8+I40pAh3v6YMdIFF9irh3ADAADOy4cfmttRklSjhjRokN16CDcAAKDIUlOlYcO8/alTpehoe/VIhBsAAHAennlG2rnTtK+5RurY0W49EuEGAAAU0a+/ShMmmLbHI02bZv5rG+EGAAAUydixUkqKaf/jH1LDhjar8SLcAACAQtu6VXrhBdMuWVJ67DG79fwR4QYAABTaQw9JGRmmPXKkVLGi3Xr+iHADAAAKZckS6ZNPTPuii6ShQ+3WczbCDQAAKLD09JxhZvJkqXhxe/XkhnADAAAK7OWXzXwbSWrWTLrtNrv15IZwAwAACiQ5WfrnP739p54Kjke/z0a4AQAABTJxolnbRjIjNs2b260nL4QbAADwp3bulJ5+2rRjYsxcm2BFuAEAAH9q+HApLc20hw6Vqla1W09+CDcAACBfX38tzZ1r2uXLm3VtghnhBgAA5CkzUxoyxNt/7DEpLs5ePQVBuAEAAHl66y1p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
2024-09-23 23:22:33 +00:00
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"ax.scatter(xdata, ydata)\n",
"ax.plot(xdata, quadratic_func(xdata, *beta_opt), 'b', lw=2)\n",
"plt.xlabel('x')\n",
"plt.ylabel('linear')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
2024-09-27 05:31:03 +00:00
"version": "3.12.5"
2024-09-23 23:22:33 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 2
}