{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "YVAZkjYZu7Tp" }, "source": [ "#### Загрузка данных" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "eqUQyj22pEUP", "outputId": "38936c5b-aaca-4131-e8e0-51dc39fe2345" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
HeightWeight
0167.081251.242630
1181.660861.900227
2176.276069.401361
3173.278864.553288
4172.186665.442177
.........
195167.132054.802721
196167.919452.507937
197173.329658.185941
198172.770857.809524
199181.330657.995465
\n", "

200 rows × 2 columns

\n", "
" ], "text/plain": [ " Height Weight\n", "0 167.0812 51.242630\n", "1 181.6608 61.900227\n", "2 176.2760 69.401361\n", "3 173.2788 64.553288\n", "4 172.1866 65.442177\n", ".. ... ...\n", "195 167.1320 54.802721\n", "196 167.9194 52.507937\n", "197 173.3296 58.185941\n", "198 172.7708 57.809524\n", "199 181.3306 57.995465\n", "\n", "[200 rows x 2 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "\n", "df = pd.read_csv(\"data/wh_data.csv\", index_col=0)\n", "df" ] }, { "cell_type": "markdown", "metadata": { "id": "HquD4-wzvz6-" }, "source": [ "#### Обучение модели линейной регрессии" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4OYkFByZvHyD", "outputId": "1a76004f-fe0c-4490-e2b0-616a05ee9462" }, "outputs": [ { "data": { "text/plain": [ "'weight = -48.08512764117069 + 0.6129012675686306 * height'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn import linear_model\n", "\n", "\n", "num_records = df.shape[0]\n", "X = df[\"Height\"].to_numpy().reshape(num_records, 1)\n", "y = df[\"Weight\"].to_numpy().reshape(num_records, 1)\n", "\n", "model = linear_model.LinearRegression().fit(X, y)\n", "display(f\"weight = {model.intercept_[0]} + {model.coef_.T[0][0]} * height\") # type: ignore" ] }, { "cell_type": "markdown", "metadata": { "id": "1B2CgY0Ev9ZD" }, "source": [ "В среднем на каждый килограмм приходится 0,6 см роста." ] }, { "cell_type": "markdown", "metadata": { "id": "3eJTKdzLykXV" }, "source": [ "#### Оценка ошибки работы модели" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3p-VQkfPyVsB", "outputId": "4e6b99b2-fdfd-414b-d636-90d03554de8c" }, "outputs": [ { "data": { "text/plain": [ "'MAE = 3.518701759813252'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn import metrics\n", "\n", "\n", "y_pred = model.predict(X)\n", "mae = metrics.mean_absolute_error(y, y_pred)\n", "display(f\"MAE = {mae}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "JrLR5nEmytq4" }, "source": [ "В среднем предсказание отстает от фактического значения на 3,5 кг." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Визуализация результатов" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 466 }, "id": "r0TbhuiBy6KI", "outputId": "343af02b-1447-4186-fc4a-05c83ede1fd2" }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Вес, кг')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "plt.scatter(X, y, color='black')\n", "plt.plot(X, y_pred, color='blue', linewidth=3)\n", "plt.plot(X, y_pred + mae, color='lightgray')\n", "plt.plot(X, y_pred - mae, color='lightgray')\n", "plt.xlabel('Рост, см')\n", "plt.ylabel('Вес, кг')" ] }, { "cell_type": "markdown", "metadata": { "id": "bXhC75uRzSMV" }, "source": [ "#### Определение линейной зависимости (линейная корреляция)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "uF45zDJkzR-0", "outputId": "8a5a0ef5-e0bd-488c-ef45-e086b255bcd1" }, "outputs": [ { "data": { "text/plain": [ "0.5568647346122992" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1.1029015151266403e-17" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'1.1029015151266403e-17 < 0.05'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from scipy import stats\n", "\n", "\n", "corr, pval = stats.pearsonr(X[:,0], y[:,0])\n", "\n", "display(corr)\n", "display(pval)\n", "display(f\"{pval} < 0.05\")" ] }, { "cell_type": "markdown", "metadata": { "id": "tVUen-uczxXq" }, "source": [ "corr > 0, значит обнаружена линейная зависимость между x и y\n", "\n", "corr -> 1, присутствует сильная корреляция\n", "\n", "pval < 5%, значит корреляция присутствует\n" ] } ], "metadata": { "colab": { "authorship_tag": "ABX9TyM5PyQgrWDfgi5yGxN9RXFr", "provenance": [] }, "kernelspec": { "display_name": ".venv (3.11.12)", "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", "version": "3.11.12" } }, "nbformat": 4, "nbformat_minor": 0 }