diff --git a/2-Regression/1-Tools/notebook.ipynb b/2-Regression/1-Tools/notebook.ipynb index e69de29bb..10153b837 100644 --- a/2-Regression/1-Tools/notebook.ipynb +++ b/2-Regression/1-Tools/notebook.ipynb @@ -0,0 +1,128 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ccd1edc5", + "metadata": {}, + "source": [ + "### In order to create a regression model using the Linnerud dataset, you first load the data, then select one of the exercise variables (for example, sit-ups) as the input feature and one of the physiological variables (for example, waistline) as the output variable, fit a regression model such as LinearRegression, and then assess it and, if desired, plot the relationship; you carry out this procedure for each combination of exercise and physiological variables that you are interested in.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4fc227b7", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "from sklearn.datasets import load_linnerud\n", + "\n", + "data = load_linnerud(as_frame=True)\n", + "X = data.data # exercises\n", + "y = data.target # physiological measures" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fad548fe", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "X_situps = X[[\"Situps\"]] # 2D DataFrame\n", + "y_waist = y[\"Waist\"] # Series" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "325f344e", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X_situps, y_waist, test_size=0.25, random_state=42\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "930b8b74", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "\n", + "model = LinearRegression()\n", + "model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71cee5ee", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "from sklearn.metrics import mean_squared_error, r2_score\n", + "\n", + "y_pred = model.predict(X_test)\n", + "mse = mean_squared_error(y_test, y_pred)\n", + "r2 = r2_score(y_test, y_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2533995", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "plt.scatter(X_situps, y_waist, label=\"Data\")\n", + "x_vals = np.linspace(X_situps.min(), X_situps.max(), 100).reshape(-1, 1)\n", + "plt.plot(x_vals, model.predict(x_vals), color=\"red\", label=\"Fit\")\n", + "plt.xlabel(\"Situps\")\n", + "plt.ylabel(\"Waist\")\n", + "plt.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}