From b3bcee414c67c7f0372aac2232a5717ffdfaa25a Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Thu, 14 Sep 2023 04:55:24 +0200 Subject: [PATCH] updadting --- .../codeexamplesscaling-checkpoint.ipynb | 521 ++++++++++++++++-- .../programs/codeexamplesscaling.do.txt | 37 +- .../week37/programs/codeexamplesscaling.ipynb | 367 ++++++------ 3 files changed, 653 insertions(+), 272 deletions(-) diff --git a/doc/src/week37/programs/.ipynb_checkpoints/codeexamplesscaling-checkpoint.ipynb b/doc/src/week37/programs/.ipynb_checkpoints/codeexamplesscaling-checkpoint.ipynb index 265ef3fb7..00eceddcf 100644 --- a/doc/src/week37/programs/.ipynb_checkpoints/codeexamplesscaling-checkpoint.ipynb +++ b/doc/src/week37/programs/.ipynb_checkpoints/codeexamplesscaling-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "a85a3d6f", + "id": "8dd69296", "metadata": {}, "source": [ "\n", - "\n", - "" + "Finally, instead of using our own function we repeat the same example\n", + "using the **standardscaler** functionality of the library\n", + "**Scikit-Learn**. Here we limit ourselves to Ridge regression only." ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "9efe225d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.5 5. ]\n", + "[0.50026997 4.99920486]\n", + "1.9999999999999893\n", + "2.00251547683159\n", + " \n", + "test MSE of OLS\n", + "2.524354896707238e-28\n", + " \n", + "test MSE of Ridge\n", + "1.5906811889393548e-05\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn import linear_model\n", + "np.random.seed(2018)\n", + "n = 100\n", + "d = 2\n", + "Lambda = 0.01\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-3, 3, n)\n", + "y = 2.0 + 0.5*x + 5.0*(x**2)#+ np.random.randn(n)\n", + "\n", + "# Design matrix X does not include the intercept. \n", + "X = np.zeros((n, d))\n", + "for p in range(d): \n", + " X[:, p] = x ** (p+1)\n", + "\n", + "#Split data in train and test\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "# Scale data by subtracting mean value of the input using scikit-learn\n", + "scaler = StandardScaler(with_std=False)\n", + "scaler.fit(X_train)\n", + "X_train_mean = np.mean(X_train,axis=0)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# We scale also the output, here by our own code\n", + "y_scaler = np.mean(y_train)\n", + "y_train_scaled = y_train - y_scaler\n", + "y_test_scaled = y_test- y_scaler\n", + "\n", + "#Calculate beta\n", + "OLS = LinearRegression()\n", + "betaOLS=OLS.fit(X_train_scaled,y_train_scaled)\n", + "ypredictOLS = OLS.predict(X_test_scaled)\n", + "linear_model.Ridge(Lambda)\n", + "RegRidge.fit(X_train_scaled,y_train_scaled)\n", + "ypredictRidge = RegRidge.predict(X_test_scaled)\n", + "betaOLS = OLS.coef_\n", + "betaRidge = RegRidge.coef_\n", + "print(betaOLS)\n", + "print(betaRidge)\n", + "interceptOLS = np.mean(y_train) - X_train_mean @ betaOLS\n", + "interceptRidge = y_scaler - X_train_mean @ betaRidge\n", + "print(interceptOLS)\n", + "print(interceptRidge)\n", + "#predict value \n", + "ytilde_test_Ridge = X_test_scaled @ betaRidge+y_scaler\n", + "ytilde_test_OLS = X_test_scaled @ betaOLS+y_scaler\n", + "\n", + "#Calculate MSE\n", + "print(\" \")\n", + "print(\"test MSE of OLS\")\n", + "print(MSE(y_test,ytilde_test_OLS))\n", + "print(\" \")\n", + "print(\"test MSE of Ridge\")\n", + "print(MSE(y_test,ytilde_test_Ridge))\n", + "plt.scatter(x,y,label='Data')\n", + "plt.plot(x, X @ betaRidge+interceptRidge, label=\"Ridge_Fit\")\n", + "plt.grid()\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff7247d8", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/doc/src/week37/programs/codeexamplesscaling.do.txt b/doc/src/week37/programs/codeexamplesscaling.do.txt index 1060014d4..77735056a 100644 --- a/doc/src/week37/programs/codeexamplesscaling.do.txt +++ b/doc/src/week37/programs/codeexamplesscaling.do.txt @@ -309,32 +309,35 @@ for p in range(d): #Split data in train and test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) - -# Scale data by subtracting mean value using scikit-learn -scaler = StandardScaler() +# Scale data by subtracting mean value of the input using scikit-learn +scaler = StandardScaler(with_std=False) scaler.fit(X_train) +X_train_mean = np.mean(X_train,axis=0) X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test) - -y_train_scaled = y_train - np.mean(y_train) -y_test_scaled = y_test - np.mean(y_test) - +# We scale also the output, here by our own code +y_scaler = np.mean(y_train) +y_train_scaled = y_train - y_scaler +y_test_scaled = y_test- y_scaler #Calculate beta OLS = LinearRegression() -OLS.fit(X_train_scaled,y_train_scaled) +betaOLS=OLS.fit(X_train_scaled,y_train_scaled) ypredictOLS = OLS.predict(X_test_scaled) -RegRidge = linear_model.Ridge(Lambda) +linear_model.Ridge(Lambda) RegRidge.fit(X_train_scaled,y_train_scaled) ypredictRidge = RegRidge.predict(X_test_scaled) -print(OLS.coef_) -print(RegRidge.coef_) -print(OLS.intercept_) -interceptRidge = RegRidge.intercept_ -print(RegRidge.intercept_) -#predict value without intercept -ytilde_test_Ridge = X_test @ RegRidge.coef_+ RegRidge.intercept_ -ytilde_test_OLS = X_test @ OLS.coef_+ OLS.intercept_ +betaOLS = OLS.coef_ +betaRidge = RegRidge.coef_ +print(betaOLS) +print(betaRidge) +interceptOLS = np.mean(y_train) - X_train_mean @ betaOLS +interceptRidge = y_scaler - X_train_mean @ betaRidge +print(interceptOLS) +print(interceptRidge) +#predict value +ytilde_test_Ridge = X_test_scaled @ betaRidge+y_scaler +ytilde_test_OLS = X_test_scaled @ betaOLS+y_scaler #Calculate MSE print(" ") diff --git a/doc/src/week37/programs/codeexamplesscaling.ipynb b/doc/src/week37/programs/codeexamplesscaling.ipynb index ace108d34..6bea642d5 100644 --- a/doc/src/week37/programs/codeexamplesscaling.ipynb +++ b/doc/src/week37/programs/codeexamplesscaling.ipynb @@ -2,8 +2,10 @@ "cells": [ { "cell_type": "markdown", - "id": "8dd69296", - "metadata": {}, + "id": "1d05176d", + "metadata": { + "editable": true + }, "source": [ "\n", @@ -12,21 +14,25 @@ }, { "cell_type": "markdown", - "id": "9ed62808", - "metadata": {}, + "id": "0657357c", + "metadata": { + "editable": true + }, "source": [ "# Scaling examples with own code and the library Scikit-Learn\n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Isotope Beams, Michigan State University\n", "\n", - "Date: **Sep 13, 2023**\n", + "Date: **Sep 14, 2023**\n", "\n", "Copyright 1999-2023, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license" ] }, { "cell_type": "markdown", - "id": "3f5c8c2c", - "metadata": {}, + "id": "171695b1", + "metadata": { + "editable": true + }, "source": [ "## This note contains code examples with a simple scaling\n", "\n", @@ -50,34 +56,12 @@ { "cell_type": "code", "execution_count": 1, - "id": "83cff314", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1.79934087 0.47179152 5.01549939]\n", - "[1.79909592 0.47176716 5.01550546]\n", - " \n", - "test MSE of OLS:\n", - "1.13943111290393\n", - " \n", - "test MSE of Ridge\n", - "1.1395235273363686\n" - ] - }, - { - "data": { - "image/png": "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3qF9+/Z4eXlRuXJld1enVJk2bRqhoaF4eHhwww038Oeff7q7SqXSunXr6N27NzVq1EBRFBYsWODuKpVKEyZM4MYbb8THx4dq1arRr18/9u/f7+5qlVrTp0/nuuuucyUXa9euHUuWLHFLXSps8NGlSxd++OEH9u/fz88//8yhQ4e455573F2tUmffvn3ous7nn3/Onj17+Oijj/jss8949dVX3V21UisjI4N7772XYcOGubsqpcq8efMYNWoUY8aMYceOHdx000307NmTY8eOubtqpU5KSgrXX389U6dOdXdVSrW1a9cyYsQINm3axIoVK7Db7XTv3p2UlBR3V61UqlmzJu+++y5bt25l69at3HLLLfTt25c9e/aUfGUMYRiGYSxcuNBQFMXIyMhwd1VKvUmTJhmhoaHurkapN2PGDMPPz8/d1Sg1WrdubTz55JNZjjVu3Nh4+eWX3VSjsgEw5s+f7+5qlAknT540AGPt2rXurkqZUaVKFeOrr74q8detsD0fl4qPj+f777+nffv2shVzASQmJuLv7+/uaogyJCMjg23bttG9e/csx7t3786GDRvcVCtR3iQmJgLI51MBOBwO5s6dS0pKCu3atSvx16/QwcdLL71EpUqVCAgI4NixYyxcuNDdVSr1Dh06xJQpU3jyySfdXRVRhpw+fRqHw0H16tWzHK9evTpxcXFuqpUoTwzD4LnnnqNjx46EhYW5uzql1u7du/H29sZqtfLkk08yf/58mjRpUuL1KFfBR3h4OIqi5Ptn69atrvIvvvgiO3bsYPny5WiaxoMPPohRQRK+FratAE6cOEGPHj249957eeyxx9xUc/e4kvYSOSmKkuWxYRg5jglxJUaOHMmuXbuYM2eOu6tSql1zzTVERESwadMmhg0bxpAhQ9i7d2+J18NU4q9YjEaOHMn999+fb5m6deu6/h0YGEhgYCCNGjXi2muvpVatWmzatMktXVAlrbBtdeLECbp06UK7du344osvirl2pU9h20tkFRgYiKZpOXo5Tp48maM3RIjCeuqpp1i0aBHr1q2jZs2a7q5OqWaxWGjQoAEArVq1YsuWLXz88cd8/vnnJVqPchV8OIOJK+Hs8UhPTy/KKpVahWmrmJgYunTpwg033MCMGTNQ1XLVYVYgV/PeEpkfeDfccAMrVqzgzjvvdB1fsWIFffv2dWPNRFlmGAZPPfUU8+fPZ82aNYSGhrq7SmWOYRhu+d4rV8FHQW3evJnNmzfTsWNHqlSpwuHDh3njjTeoX79+hej1KIwTJ07QuXNnateuzfvvv8+pU6dc54KCgtxYs9Lr2LFjxMfHc+zYMRwOBxEREQA0aNAAb29v91bOjZ577jkGDx5Mq1atXD1ox44dk/lDuTh37hwHDx50PY6KiiIiIgJ/f39q167txpqVLiNGjGD27NksXLgQHx8fV8+an58fnp6ebq5d6fPqq6/Ss2dPatWqRXJyMnPnzmXNmjUsXbq05CtT4utrSoFdu3YZXbp0Mfz9/Q2r1WrUrVvXePLJJ43o6Gh3V63UmTFjhgHk+kfkbsiQIbm21+rVq91dNbf79NNPjTp16hgWi8Vo2bKlLInMw+rVq3N9Dw0ZMsTdVStV8vpsmjFjhrurVio98sgjrv9/VatWNbp27WosX77cLXVRDKOCzLAUQgghRKlQ8QbvhRBCCOFWEnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFKlAQfQgghhChREnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFKlAQfQgghhChREnwIIYQQokRJ8CGEEEKIEiXBhxBCCCFK1P8BtqD5pxfNaEwAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "id": "4efd9f62", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "%matplotlib inline\n", "\n", @@ -147,8 +131,10 @@ }, { "cell_type": "markdown", - "id": "e191101c", - "metadata": {}, + "id": "34902c2d", + "metadata": { + "editable": true + }, "source": [ "In this example we do not include the intercept and we scale the data by subtracting the mean values. This follows the discussion in the [lecture material](https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter3.html#more-on-rescaling-data).\n", "see also the weekly slides [for week 36](https://compphysics.github.io/MachineLearning/doc/pub/week36/html/._week36-bs029.html).\n", @@ -165,8 +151,10 @@ }, { "cell_type": "markdown", - "id": "9dcb2642", - "metadata": {}, + "id": "cd4c7349", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\beta_0, \\beta_1, ... , \\beta_{p-1}) = \\frac{1}{n}\\sum_{i=0}^{n} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij}\\beta_j\\right)^2,.\n", @@ -175,8 +163,10 @@ }, { "cell_type": "markdown", - "id": "14975f05", - "metadata": {}, + "id": "5ff088cd", + "metadata": { + "editable": true + }, "source": [ "Recall also that we use the squared value. This expression can lead to an\n", "increased penalty for higher differences between predicted and\n", @@ -190,8 +180,10 @@ }, { "cell_type": "markdown", - "id": "9865e8c7", - "metadata": {}, + "id": "b3269034", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C}{\\partial \\beta_j} = 0,\n", @@ -200,16 +192,20 @@ }, { "cell_type": "markdown", - "id": "2825085b", - "metadata": {}, + "id": "4b351523", + "metadata": { + "editable": true + }, "source": [ "for all $j$. For $\\beta_0$ we have" ] }, { "cell_type": "markdown", - "id": "4489dc78", - "metadata": {}, + "id": "b2e291c2", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\frac{\\partial C}{\\partial \\beta_0} = -\\frac{2}{n}\\sum_{i=0}^{n-1} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij} \\beta_j\\right).\n", @@ -218,16 +214,20 @@ }, { "cell_type": "markdown", - "id": "bc778224", - "metadata": {}, + "id": "bdd3dc6b", + "metadata": { + "editable": true + }, "source": [ "Multiplying away the constant $2/n$, we obtain" ] }, { "cell_type": "markdown", - "id": "fb878937", - "metadata": {}, + "id": "b8e48859", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\sum_{i=0}^{n-1} \\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} \\sum_{j=1}^{p-1} X_{ij} \\beta_j.\n", @@ -236,8 +236,10 @@ }, { "cell_type": "markdown", - "id": "86c24e64", - "metadata": {}, + "id": "b46c3e3c", + "metadata": { + "editable": true + }, "source": [ "Let us specialize first to the case where we have only two parameters $\\beta_0$ and $\\beta_1$.\n", "Our result for $\\beta_0$ simplifies then to" @@ -245,8 +247,10 @@ }, { "cell_type": "markdown", - "id": "c196965b", - "metadata": {}, + "id": "602d978b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "n\\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} X_{i1} \\beta_1.\n", @@ -255,16 +259,20 @@ }, { "cell_type": "markdown", - "id": "61bb9626", - "metadata": {}, + "id": "3645a8e6", + "metadata": { + "editable": true + }, "source": [ "We obtain then" ] }, { "cell_type": "markdown", - "id": "0a691dc6", - "metadata": {}, + "id": "3aa6f59b", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\beta_1\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1}.\n", @@ -273,16 +281,20 @@ }, { "cell_type": "markdown", - "id": "6e22de1e", - "metadata": {}, + "id": "65543278", + "metadata": { + "editable": true + }, "source": [ "If we define" ] }, { "cell_type": "markdown", - "id": "6f3805ca", - "metadata": {}, + "id": "bf53261f", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mu_{\\boldsymbol{x}_1}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1},\n", @@ -291,16 +303,20 @@ }, { "cell_type": "markdown", - "id": "902819aa", - "metadata": {}, + "id": "d5cf7d47", + "metadata": { + "editable": true + }, "source": [ "and the mean value of the outputs as" ] }, { "cell_type": "markdown", - "id": "3700e9b3", - "metadata": {}, + "id": "85fe3987", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mu_y=\\frac{1}{n}\\sum_{i=0}^{n-1}y_i,\n", @@ -309,16 +325,20 @@ }, { "cell_type": "markdown", - "id": "faa60df7", - "metadata": {}, + "id": "b387adbd", + "metadata": { + "editable": true + }, "source": [ "we have" ] }, { "cell_type": "markdown", - "id": "b3c79af0", - "metadata": {}, + "id": "a53a238c", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\beta_0 = \\mu_y - \\beta_1\\mu_{\\boldsymbol{x}_1}.\n", @@ -327,16 +347,20 @@ }, { "cell_type": "markdown", - "id": "8fe0e8a3", - "metadata": {}, + "id": "6691851e", + "metadata": { + "editable": true + }, "source": [ "In the general case with more parameters than $\\beta_0$ and $\\beta_1$, we have" ] }, { "cell_type": "markdown", - "id": "9f674239", - "metadata": {}, + "id": "18614be3", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\frac{1}{n}\\sum_{i=0}^{n-1}\\sum_{j=1}^{p-1} X_{ij}\\beta_j.\n", @@ -345,16 +369,20 @@ }, { "cell_type": "markdown", - "id": "3853856a", - "metadata": {}, + "id": "1dacf335", + "metadata": { + "editable": true + }, "source": [ "We can rewrite the latter equation as" ] }, { "cell_type": "markdown", - "id": "9d908a64", - "metadata": {}, + "id": "66877d8e", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\sum_{j=1}^{p-1} \\mu_{\\boldsymbol{x}_j}\\beta_j,\n", @@ -363,16 +391,20 @@ }, { "cell_type": "markdown", - "id": "f4057055", - "metadata": {}, + "id": "11b4c661", + "metadata": { + "editable": true + }, "source": [ "where we have defined" ] }, { "cell_type": "markdown", - "id": "b8da6f70", - "metadata": {}, + "id": "17d73efe", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\mu_{\\boldsymbol{x}_j}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{ij},\n", @@ -381,8 +413,10 @@ }, { "cell_type": "markdown", - "id": "5c17a3cf", - "metadata": {}, + "id": "6965fc95", + "metadata": { + "editable": true + }, "source": [ "the mean value for all elements of the column vector $\\boldsymbol{x}_j$.\n", "\n", @@ -391,8 +425,10 @@ }, { "cell_type": "markdown", - "id": "761b906e", - "metadata": {}, + "id": "737f4be0", + "metadata": { + "editable": true + }, "source": [ "$$\n", "C(\\boldsymbol{\\beta}) = (\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta})^T(\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta}).\n", @@ -401,16 +437,20 @@ }, { "cell_type": "markdown", - "id": "1ec1566c", - "metadata": {}, + "id": "9fdba59d", + "metadata": { + "editable": true + }, "source": [ "If we minimize with respect to $\\boldsymbol{\\beta}$ we have then" ] }, { "cell_type": "markdown", - "id": "3b0f3345", - "metadata": {}, + "id": "855cd8c1", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X})^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}},\n", @@ -419,8 +459,10 @@ }, { "cell_type": "markdown", - "id": "e90e926f", - "metadata": {}, + "id": "0678fa9c", + "metadata": { + "editable": true + }, "source": [ "where $\\boldsymbol{\\tilde{y}} = \\boldsymbol{y} - \\overline{\\boldsymbol{y}}$\n", "and $\\tilde{X}_{ij} = X_{ij} - \\frac{1}{n}\\sum_{k=0}^{n-1}X_{kj}$.\n", @@ -430,8 +472,10 @@ }, { "cell_type": "markdown", - "id": "d1517970", - "metadata": {}, + "id": "e6455ef5", + "metadata": { + "editable": true + }, "source": [ "$$\n", "\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X} + \\lambda I)^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}}.\n", @@ -440,45 +484,23 @@ }, { "cell_type": "markdown", - "id": "b509f569", - "metadata": {}, + "id": "5005d317", + "metadata": { + "editable": true + }, "source": [ "Now we try to implement this." ] }, { "cell_type": "code", - "execution_count": 30, - "id": "102e944d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.5 5. ]\n", - "[0.49997283 4.99990314]\n", - "2.0000000000000107\n", - "2.0002882118959935\n", - " \n", - "test MSE of OLS:\n", - "5.761642836507965e-29\n", - " \n", - "test MSE of Ridge\n", - "1.1410026487363786e-07\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 2, + "id": "588142b8", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "\n", "np.random.seed(2018)\n", @@ -489,7 +511,7 @@ "\n", "# Make data set.\n", "x = np.linspace(-3, 3, n)\n", - "y = 2.0 + 0.5*x + 5.0*(x**2)#+ np.random.randn(n)\n", + "y = 2.0 + 0.5*x + 5.0*(x**2)+ np.random.randn(n)\n", "\n", "#Design matrix X does not include the intercept. \n", "X = np.zeros((len(x), d))\n", @@ -546,8 +568,10 @@ }, { "cell_type": "markdown", - "id": "aedf3071", - "metadata": {}, + "id": "b4e6d08d", + "metadata": { + "editable": true + }, "source": [ "Finally, instead of using our own function we repeat the same example\n", "using the **standardscaler** functionality of the library\n", @@ -556,37 +580,13 @@ }, { "cell_type": "code", - "execution_count": 48, - "id": "9efe225d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.5 5. ]\n", - "[0.50026997 4.99920486]\n", - "1.9999999999999893\n", - "2.00251547683159\n", - " \n", - "test MSE of OLS\n", - "2.524354896707238e-28\n", - " \n", - "test MSE of Ridge\n", - "1.5906811889393548e-05\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 3, + "id": "19de88b1", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], "source": [ "from sklearn import linear_model\n", "np.random.seed(2018)\n", @@ -596,7 +596,7 @@ "\n", "# Make data set.\n", "x = np.linspace(-3, 3, n)\n", - "y = 2.0 + 0.5*x + 5.0*(x**2)#+ np.random.randn(n)\n", + "y = 2.0 + 0.5*x + 5.0*(x**2)+ np.random.randn(n)\n", "\n", "# Design matrix X does not include the intercept. \n", "X = np.zeros((n, d))\n", @@ -605,17 +605,16 @@ "\n", "#Split data in train and test\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", - "\n", - "# Scale data by subtracting mean value using scikit-learn\n", + "# Scale data by subtracting mean value of the input using scikit-learn\n", "scaler = StandardScaler(with_std=False)\n", "scaler.fit(X_train)\n", "X_train_mean = np.mean(X_train,axis=0)\n", - "#The model intercept (called y_scaler) is given by the mean of the target variable (IF X is centered, note)\n", - "y_scaler = np.mean(y_train)\n", "X_train_scaled = scaler.transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)\n", - "y_train_scaled = y_train - np.mean(y_train)\n", - "y_test_scaled = y_test-np.mean(y_test)\n", + "# We scale also the output, here by our own code\n", + "y_scaler = np.mean(y_train)\n", + "y_train_scaled = y_train - y_scaler\n", + "y_test_scaled = y_test- y_scaler\n", "\n", "#Calculate beta\n", "OLS = LinearRegression()\n", @@ -644,40 +643,14 @@ "print(\"test MSE of Ridge\")\n", "print(MSE(y_test,ytilde_test_Ridge))\n", "plt.scatter(x,y,label='Data')\n", - "plt.plot(x, X @ betaRidge+interceptRidge, label=\"Ridge_Fit\")\n", + "plt.plot(x, X @ RegRidge.coef_ + RegRidge.intercept_ , label=\"Ridge_Fit\")\n", "plt.grid()\n", "plt.legend()\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c6130d15", - "metadata": {}, - "outputs": [], - "source": [] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.10" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 }