From 2c984834d322bbcbe0b459e042c56f21351e013d Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Mon, 19 Jun 2023 13:19:24 +0200 Subject: [PATCH] Solve parts of MLDM Lab04 --- ...d_Logistic_Regression_LAB_ASSIGNMENT.ipynb | 238 ++++++++++++++++-- 1 file changed, 215 insertions(+), 23 deletions(-) diff --git a/Notes/Semester 4/MLDM - Machine Learning and Data Mining/Labs/L04_Polynomial_and_Logistic_Regression_LAB_ASSIGNMENT.ipynb b/Notes/Semester 4/MLDM - Machine Learning and Data Mining/Labs/L04_Polynomial_and_Logistic_Regression_LAB_ASSIGNMENT.ipynb index 1926799..2da30dc 100644 --- a/Notes/Semester 4/MLDM - Machine Learning and Data Mining/Labs/L04_Polynomial_and_Logistic_Regression_LAB_ASSIGNMENT.ipynb +++ b/Notes/Semester 4/MLDM - Machine Learning and Data Mining/Labs/L04_Polynomial_and_Logistic_Regression_LAB_ASSIGNMENT.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "id": "pAJRKdv9QA4C" }, @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "id": "D1m4qcrpXdTt" }, @@ -25,6 +25,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "Ia9s_Q-KXf0T" @@ -34,6 +35,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "VV0Z3OdeXpha" @@ -44,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "id": "nb5WsezldFla" }, @@ -59,6 +61,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "E65IxT1Bwpmk" @@ -69,17 +72,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "id": "nCZgTYP3fZe7" }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plt.scatter(x, y)\n", "plt.show()" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "Cx8aSpUnJCI7" @@ -90,6 +105,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "nvRxguOTJnjS" @@ -100,17 +116,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "id": "ti7myWk7KS8Z" }, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", - "X_train, X_test, y_train, y_test = ..." + "X_train, X_test, y_train, y_test = train_test_split(x, y, train_size=80, test_size=20, random_state=RANDOM_SEED)" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "RFSaakYLJuK7" @@ -121,17 +138,138 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "id": "Ez6t4Q4P82Qo" }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 24.8105505 ],\n", + " [ -5.20409199],\n", + " [ 27.96106747],\n", + " [ 5.02690375],\n", + " [ -1.1310202 ],\n", + " [-13.89980582],\n", + " [ 13.94364999],\n", + " [ 7.99160103],\n", + " [ 8.683055 ],\n", + " [ -5.83014814],\n", + " [ -3.67632257],\n", + " [ -9.02665362],\n", + " [ -0.75205446],\n", + " [ -6.22653091],\n", + " [ 7.82776611],\n", + " [ 1.59350968],\n", + " [ 7.02596155],\n", + " [ 4.34856133],\n", + " [-15.12024136],\n", + " [ 7.99542656],\n", + " [ 7.97170485],\n", + " [ -0.27832457],\n", + " [-14.90291777],\n", + " [-11.79437851],\n", + " [ 23.90685605],\n", + " [ 7.24973797],\n", + " [ 1.39831761],\n", + " [ -7.76047681],\n", + " [ -0.57993093],\n", + " [ -6.98646928],\n", + " [ 16.9012908 ],\n", + " [ -0.31294451],\n", + " [ 22.78284269],\n", + " [ -0.15190969],\n", + " [ 20.27134592],\n", + " [ -6.09804415],\n", + " [ 19.41881787],\n", + " [ 5.32408382],\n", + " [ -4.43327521],\n", + " [ -1.92083638],\n", + " [ 5.19045409],\n", + " [ 7.73285484],\n", + " [-14.07682012],\n", + " [ 6.91089705],\n", + " [ 4.23614571],\n", + " [ 24.21451687],\n", + " [ -6.01463481],\n", + " [ 19.7878074 ],\n", + " [ 8.44632781],\n", + " [ 15.07697712],\n", + " [ -5.64878018],\n", + " [ 19.58263539],\n", + " [ 1.31598115],\n", + " [ 23.01977556],\n", + " [ 5.00441582],\n", + " [ 4.19031945],\n", + " [-24.097819 ],\n", + " [ 7.49616115],\n", + " [ 15.99947525],\n", + " [ -2.65976186],\n", + " [-12.16737571],\n", + " [ 16.68339373],\n", + " [ 13.40869299],\n", + " [ -9.97843491],\n", + " [ 0.34338285],\n", + " [ -0.73689457],\n", + " [ -3.26216139],\n", + " [ 11.89066528],\n", + " [ -8.00155266],\n", + " [ 11.54373697],\n", + " [ 1.67233851],\n", + " [ 16.98648974],\n", + " [ 10.72415365],\n", + " [-13.05652509],\n", + " [ 8.08509145],\n", + " [ 3.74024588],\n", + " [ 8.65177781],\n", + " [ 5.55297013],\n", + " [ 12.06933164],\n", + " [ -1.90831592]])" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "array([[ 4.12313341],\n", + " [ 16.42710792],\n", + " [ 14.25476825],\n", + " [ 8.27766591],\n", + " [ -3.81043278],\n", + " [ 14.23197485],\n", + " [ 19.85108404],\n", + " [ -9.78329577],\n", + " [ 3.3201783 ],\n", + " [ 11.29921067],\n", + " [ -9.19478321],\n", + " [ 5.88797122],\n", + " [ 0.2429354 ],\n", + " [ 4.94754411],\n", + " [ 1.98256696],\n", + " [ 5.30886385],\n", + " [ 13.01351483],\n", + " [ 28.27448639],\n", + " [-17.88411949],\n", + " [ 2.50532257]])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from sklearn.linear_model import LinearRegression\n", - "..." + "model = LinearRegression()\n", + "model.fit(X_train, y_train)\n", + "display(model.predict(X_train))\n", + "display(model.predict(X_test))" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "P1k6VBGk8yI6" @@ -142,21 +280,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "id": "qJGjXK8aKD8q" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE of training data: 131.3354142667106\n", + "MSE of test data: 135.783818600193\n" + ] + } + ], "source": [ "from sklearn.metrics import mean_squared_error\n", "\n", - "...\n", + "mse_train = mean_squared_error(y_train, model.predict(X_train))\n", + "mse_test = mean_squared_error(y_test, model.predict(X_test))\n", "\n", "print(f\"MSE of training data: {mse_train}\")\n", "print(f\"MSE of test data: {mse_test}\")" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "T0VOmhngKEQL" @@ -167,30 +316,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "id": "94LPydyRD4Nr" }, "outputs": [], "source": [ - "def plot_artefacts(...):\n", + "def plot_artefacts(X_train, y_train, X_test, y_test, y_predict):\n", " plt.figure()\n", - " ...\n", + " plt.scatter(X_train, y_train, label=\"Train Data\")\n", + " plt.scatter(X_test, y_test, label=\"Test Data\")\n", + " plt.plot(X_train, y_predict, label=\"Prediction\", c=\"black\")\n", + " plt.legend()\n", " plt.show()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "id": "yLwMEWirLLBA" }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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lFhvDsvnMFAhIiKSQZBGwPSsNABoFKyYb0/PSmM/FScYqBAREckkMz0BC0d0g05rnd7RacOwcEQ39lFxARu+ERERySgzPQED0nTsTOshBipEREQyC9II6JXaUulh+CSmfoiIiEi1GKgQERGRajFQISIiItVioEJERESqxUCFiIiIVIuBChEREakWAxUiIiJSLQYqREREpFoMVIiIiEi1GKgQERGRajFQISIiItVioEJERESqxUCFiIiILPbs2YMZM2bg7NmzSg8FAHdPJiIiCniiKGLWrFl4/vnnLfedPXsWc+bMUXBUJgxUiIiIAtT58+cxePBgfP/9942O/fWvf1VgRI0x9UNERBRgduzYAUEQEBsb2yhIWb58OURRxDXXXKPQ6KwxUCEiIgoAoigiJycHgiDg5ptvtjoWFxeHI0eOQBRFDB8+XKER2sbUDxERkR87e/Ys7rzzTuTn5zc69sgjj2DRokUICQlRYGSuYaBCRESByWgATuwEKsuAyHgguTegCVJ6VJLZtm0b+vbta/PYypUrMWzYMO8OyEMMVIiIKPAU5gJ52YD+9JX7ohOBzNlA2mDlxtVERqMRL730Ev7+9783OtamTRts374dKSkpCozMc6xRISKiwFKYC6waaR2kAIC+xHR/Ya4y42qCM2fO4IYbbkBQUFCjIOXxxx9HTU0NTp065XNBCsBAhYiIAonRYJpJgWjj4B/35U0xnecDNm/eDEEQEB8fjwMHDlgdW716NURRxKJFixAcHKzMACXAQIWIiALHiZ2NZ1KsiIC+2HSeShmNRjz33HMQBAEDBgywOnb11Vfj5MmTEEURd999tzIDlBgDFSIiCggGo4hfjh117eTKMnkH44EjR46gY8eOCAoKwhtvvGF1bMKECaitrcWxY8eQlJSk0AjlwWJaIiLye3kFJchZW4jki2exwoWVuIaIOKhl/c8777yDp556yuaxdevW4c477/TyiLyLgQoRWRiMIvKLynHmYhXiosKQkRKLII2g9LCImiSvoATjlu+HCKAMnXBajIUO5bD11jaKQCla4v4VVZg2uASZ6QleHy8A1NXVIT09HYcPH250rFOnTtiyZQsSExMVGJn3MVAhIgBXPnGWVFRZ7kvQhmF6Vppif6yJmspgFJGzttBSOmuEBjm1I7EweB6MIqyCFeMfJ+XUPozT1bUYt3w/Fo7o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pFoMVIiIiEi1GKgQERGRajFQISIiItVioEJERESqxUCFiIiIVIuBChEREakWAxUiIiJSLXamtcFgFNnGnYiISAUYqDSQV1CCnLWFKKmostyXoA3D9Kw0boxHRETkZUz91JNXUIJxy/dbBSkAUFpRhXHL9yOvoEShkREREQUmBip/MBhF5KwthGjjmPm+nLWFMBhtnUFERERyYKDyh/yi8kYzKfWJAEoqqpBfVO69QREREQU4Bip/OHPRfpDiyXlERETUdAxU/hAXFSbpeURERNR0DFT+kJESiwRtGOwtQhZgWv2TkRLrzWEREREFNAYqfwjSCJielQYAjYIV8+3pWWnsp0JERORFDFTqyUxPwMIR3aDTWqd3dNowLBzRjX1UiIiIvIwN3xrITE/AgDQdO9MSERGpAAMVG4I0AnqltlR6GERERAGPqR8iIiJSLQYqREREpFoMVIiIiEi1GKgQERGRajFQISIiItVioEJERESqJXugUl1dja5du0IQBBw4cMDq2H/+8x/ccsstCAsLQ1JSEl5//XW5h0NEREQ+RPZA5bnnnkNiYmKj+/V6PQYOHIjk5GTs27cPb7zxBl5++WW89957cg+JiIiIfISsDd82bNiAb775Bl999RU2bNhgdezTTz9FTU0NPvzwQ4SEhODaa6/FgQMHMGfOHDz22GN2H7O6uhrV1dWW23q9XrbxExERkbJkC1TKysowduxYrFmzBuHh4Y2O79q1C7feeitCQkIs9w0aNAizZ8/G+fPn0aJFC5uPO3PmTOTk5DS6nwELERGR7zBft0VRdHieLIGKKIoYPXo0/vrXv+LGG2/E8ePHG51TWlqKlJQUq/vi4+Mtx+wFKlOnTsWkSZMst4uLi5GWloakpCTpfgAiIiLyiosXL0Kr1do97lagMmXKFMyePdvhOQcPHsQ333yDixcvYurUqe48vEtCQ0MRGhpquR0ZGYlTp04hKioKgsCNA+3R6/VISkrCqVOnEB0drfRwAgZfd+/ja64Mvu7e5+uvuSiKuHjxos061vrcClSeffZZjB492uE5V199Nb799lvs2rXLKqAAgBtvvBHDhw/HRx99BJ1Oh7KyMqvj5ts6nc7lMWk0GrRp08bl8wNddHS0T76hfR1fd+/ja64Mvu7e58uvuaOZFDO3ApVWrVqhVatWTs97++238dprr1lunz59GoMGDcLKlSvRs2dPAECvXr3wwgsvoLa2FsHBwQCATZs2oWPHjnbTPkRERBRYZKlRadu2rdXtyMhIAEBqaqpl9uPPf/4zcnJyMGbMGGRnZ6OgoADz58/H3Llz5RgSERER+SBZlyc7otVq8c0332D8+PHo3r07rrrqKrz00ksOlyaT50JDQzF9+vRG6TiSF1937+Nrrgy+7t4XKK+5IDpbF0RERESkEO71Q0RERKrFQIWIiIhUi4EKERERqRYDFSIiIlItBipERESkWgxUAszx48cxZswYpKSkoHnz5khNTcX06dNRU1Oj9ND83t///nf07t0b4eHhiImJUXo4fmvBggVo164dwsLC0LNnT+Tn5ys9JL+2fft2ZGVlITExEYIgYM2aNUoPye/NnDkTPXr0QFRUFOLi4nD33Xfj8OHDSg9LNgxUAsyhQ4dgNBqxePFi/Pe//8XcuXOxaNEiPP/880oPze/V1NTg/vvvx7hx45Qeit9auXIlJk2ahOnTp2P//v24/vrrMWjQIJw5c0bpofmtS5cu4frrr8eCBQuUHkrA2LZtG8aPH4/du3dj06ZNqK2txcCBA3Hp0iWlhyYL9lEhvPHGG1i4cCF+/fVXpYcSEJYtW4aJEyfiwoULSg/F7/Ts2RM9evTAu+++CwAwGo1ISkrCk08+iSlTpig8Ov8nCAJWr16Nu+++W+mhBJTff/8dcXFx2LZtG2699ValhyM5zqgQKioqEBsbq/QwiJqkpqYG+/btQ//+/S33aTQa9O/fH7t27VJwZETyqqioAAC//TvOQCXAHT16FO+88w4ef/xxpYdC1CRnz56FwWBAfHy81f3x8fEoLS1VaFRE8jIajZg4cSL69OmD9PR0pYcjCwYqfmLKlCkQBMHh16FDh6y+p7i4GJmZmbj//vsxduxYhUbu2zx53YmIpDJ+/HgUFBRgxYoVSg9FNoptSkjSevbZZzF69GiH51x99dWW/z59+jT69euH3r1747333pN5dP7L3ded5HPVVVchKCgIZWVlVveXlZVBp9MpNCoi+UyYMAHr1q3D9u3b0aZNG6WHIxsGKn6iVatWaNWqlUvnFhcXo1+/fujevTuWLl0KjYYTa55y53UneYWEhKB79+7YsmWLpZjTaDRiy5YtmDBhgrKDI5KQKIp48sknsXr1amzduhUpKSlKD0lWDFQCTHFxMfr27Yvk5GS8+eab+P333y3H+KlTXidPnkR5eTlOnjwJg8GAAwcOAADat2+PyMhIZQfnJyZNmoRRo0bhxhtvREZGBubNm4dLly7hkUceUXpofquyshJHjx613C4qKsKBAwcQGxuLtm3bKjgy/zV+/Hh89tln+Oc//4moqChLDZZWq0Xz5s0VHp0MRAooS5cuFQHY/CJ5jRo1yubr/u9//1vpofmVd955R2zbtq0YEhIiZmRkiLt371Z6SH7t3//+t8339ahRo5Qemt+y9zd86dKlSg9NFuyjQkRERKrF4gQiIiJSLQYqREREpFoMVIiIiEi1GKgQERGRajFQISIiItVioEJERESqxUCFiIiIVIuBChEREakWAxUiIiJSLQYqREREpFoMVIiIiEi1/h/E0igXP4UJIgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "plot_artefacts(...)" + "plot_artefacts(X_train, y_train, X_test, y_test, model.predict(X_train))" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "zwsmpB3oMJZf" @@ -215,8 +379,11 @@ "source": [ "from sklearn.preprocessing import PolynomialFeatures\n", "\n", - "def poly_regression(...):\n", - " ...\n", + "def poly_regression(X_train, y_train, X_test, y_test):\n", + " features = PolynomialFeatures(degree=2)\n", + " X_train_poly = features.fit_transform(X_train, y_train)\n", + " X_test_poly = features.fit_transform(X_test, y_test)\n", + " model = LinearRegression()\n", " return y_pred_train_poly, y_pred_test_poly, mse_train_poly, mse_test_poly" ] }, @@ -234,6 +401,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "nhbIv-toOFoV" @@ -254,6 +422,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "lR_v9mTWOVNj" @@ -278,6 +447,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "qY6QK6OhGBVp" @@ -289,6 +459,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "lhOvMhs_V4cY" @@ -306,6 +477,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "Zz4WDaq436-y" @@ -322,6 +494,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "DUDUkf1uJFWf" @@ -331,6 +504,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "XO800wc-WhyJ" @@ -356,6 +530,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "_lLze_K1g0ZA" @@ -397,6 +572,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "_9FX76IifOik" @@ -406,6 +582,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "fDgGTbTMHxwN" @@ -433,6 +610,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "26YTJ4uQYE46" @@ -455,6 +633,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "b61c7d24-8e54-4827-a15f-b0ae553d5743" @@ -476,6 +655,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "1ca1ada5-1203-4e44-a5aa-38b512d522c6" @@ -490,6 +670,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "5Sk55fOkLhgm" @@ -532,6 +713,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "X5JzFGLlMvk8" @@ -541,6 +723,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "JFqGPd65aM_l" @@ -565,6 +748,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "id": "n9lT2RiDNPD2" @@ -583,10 +767,18 @@ "name": "python3" }, "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", "name": "python", - "version": "3.8.15" + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.3" } }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +}