From 851b68dbccae859682082c4038f8ed1cdba05e9a Mon Sep 17 00:00:00 2001 From: githubtemp5 Date: Sat, 17 Aug 2024 17:03:33 +0100 Subject: [PATCH 1/3] work in progress regression --- .gitignore | 3 + 2-Regression/1-Tools/notebook.ipynb | 92 +++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) diff --git a/.gitignore b/.gitignore index f780d5761..9f1537587 100644 --- a/.gitignore +++ b/.gitignore @@ -361,3 +361,6 @@ MigrationBackup/ .Rhistory ML-For-Beginners.Rproj + +#.venv +.venv/ diff --git a/2-Regression/1-Tools/notebook.ipynb b/2-Regression/1-Tools/notebook.ipynb index e69de29bb..6e92813b9 100644 --- a/2-Regression/1-Tools/notebook.ipynb +++ b/2-Regression/1-Tools/notebook.ipynb @@ -0,0 +1,92 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#Python notebook for ML" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello World!\n" + ] + } + ], + "source": [ + "print(\"Hello World!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'numpy'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[10], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 3\u001b[0m a \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray([\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m3\u001b[39m,\u001b[38;5;241m4\u001b[39m],[\u001b[38;5;241m5\u001b[39m,\u001b[38;5;241m6\u001b[39m,\u001b[38;5;241m7\u001b[39m,\u001b[38;5;241m8\u001b[39m],[\u001b[38;5;241m9\u001b[39m,\u001b[38;5;241m10\u001b[39m,\u001b[38;5;241m11\u001b[39m,\u001b[38;5;241m12\u001b[39m])\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(a[\u001b[38;5;241m0\u001b[39m])\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'numpy'" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "a = np.array([1,2,3,4],[5,6,7,8],[9,10,11,12])\n", + "\n", + "print(a[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.12.5 (tags/v3.12.5:ff3bc82, Aug 6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)]\n" + ] + } + ], + "source": [ + "import sys\n", + "print(sys.version)" + ] + } + ], + "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", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 653933aca0b7267bfd78a94bccca8f09a40bea1c Mon Sep 17 00:00:00 2001 From: githubtemp5 Date: Sat, 17 Aug 2024 17:12:10 +0100 Subject: [PATCH 2/3] work in progress --- 2-Regression/1-Tools/notebook.ipynb | 547 +++++++++++++++++++++++++++- 1 file changed, 532 insertions(+), 15 deletions(-) diff --git a/2-Regression/1-Tools/notebook.ipynb b/2-Regression/1-Tools/notebook.ipynb index 6e92813b9..184e20bfd 100644 --- a/2-Regression/1-Tools/notebook.ipynb +++ b/2-Regression/1-Tools/notebook.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 118, "metadata": {}, "outputs": [ { @@ -26,45 +26,562 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 119, "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'numpy'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[10], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 3\u001b[0m a \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray([\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m2\u001b[39m,\u001b[38;5;241m3\u001b[39m,\u001b[38;5;241m4\u001b[39m],[\u001b[38;5;241m5\u001b[39m,\u001b[38;5;241m6\u001b[39m,\u001b[38;5;241m7\u001b[39m,\u001b[38;5;241m8\u001b[39m],[\u001b[38;5;241m9\u001b[39m,\u001b[38;5;241m10\u001b[39m,\u001b[38;5;241m11\u001b[39m,\u001b[38;5;241m12\u001b[39m])\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28mprint\u001b[39m(a[\u001b[38;5;241m0\u001b[39m])\n", - "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'numpy'" + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3 4]\n" ] } ], "source": [ "import numpy as np\n", "\n", - "a = np.array([1,2,3,4],[5,6,7,8],[9,10,11,12])\n", + "a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])\n", "\n", "print(a[0])" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 120, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn import datasets, linear_model, model_selection" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442, 10)\n", + "[ 0.03807591 0.05068012 0.06169621 0.02187239 -0.0442235 -0.03482076\n", + " -0.04340085 -0.00259226 0.01990749 -0.01764613]\n" + ] + } + ], + "source": [ + "X,y = datasets.load_diabetes(return_X_y=True)\n", + "columns = [\"age age in years\", \"sex\", \"bmi body mass index\",\"bp average blood pressure\",\"s1 tc, total serum cholesterol\",\"s2 ldl, low-density lipoproteins\",\"s3 hdl, high-density lipoproteins\",\"s4 tch, total cholesterol / HDL\",\"s5 ltg, possibly log of serum triglycerides level\",\"s6 glu, blood sugar level\"]\n", + "print(X.shape)\n", + "print(X[0])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 122, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "3.12.5 (tags/v3.12.5:ff3bc82, Aug 6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)]\n" + "(442,)\n", + "(442, 1)\n" ] } ], "source": [ - "import sys\n", - "print(sys.version)" + "columnNumber = 2\n", + "X = X[:,columnNumber]\n", + "print(X.shape)\n", + "X = X.reshape((-1,1))\n", + "print(X.shape)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Splitting between training and testing data and training" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LinearRegression()" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size = 0.25)\n", + "model = linear_model.LinearRegression()\n", + "model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model.predict(X_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting graph" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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bAySiGwB0zNbl2pyWn3jw6KjLV83IiIisjh2tyMi4vgwIiIiyodBEhERwPFhREREpMbudkREKhwfRkRERGCQRESkiePDiIiInB672xEREREREeXDIImIiIiIiCgfBklERERERET5MEgiIiIiIiLKh0ESERERERFRPgySiIiIiIiI8mGQRERERERElA+DJCIiIiIionwYJBEREREREeXjZu0KEBlCCAEAyM7OtnJNiIiISC7VeVt1HieydQySyK7cvXsXABAeHm7lmhAREZGh7t69Cz8/P2tXg0gvSTCkJzuSl5eHq1evolSpUpAkyWKvm52djfDwcFy+fBm+vr4We13ivrcm7nvr4b63Du538xFC4O7duwgNDYWLC0d7kO1jSxLZFRcXF4SFhVnt9X19fXnitBLue+vhvrce7nvr4H43D7YgkT1hKE9ERERERJQPgyQiIiIiIqJ8GCQRyeDh4YHRo0fDw8PD2lVxOtz31sN9bz3c99bB/U5EKkzcQERERERElA9bkoiIiIiIiPJhkERERERERJQPgyQiIiIiIqJ8GCQRERERERHlwyCJ6F+3b9/GK6+8Al9fX/j7+6Nfv364d+9ekc+ZO3cuWrZsCV9fX0iShMzMTJOs15kYs38ePXqEgQMHokyZMvDx8UH37t1x7do1jTKSJBX6WbJkiTk3xeZ99913iIiIgKenJxo3bow//vijyPLLli1DZGQkPD09UbduXaxfv17jcSEERo0ahZCQEHh5eaFt27Y4d+6cOTfBbpl63yckJBT6fHfo0MGcm2C3DNn3J0+eRPfu3REREQFJkjB9+vRir5OI7BODJKJ/vfLKKzh58iS2bNmCdevWYdeuXXjjjTeKfM6DBw/QoUMHfPTRRyZdrzMxZv8MGzYMa9euxbJly7Bz505cvXoVcXFxhcrNnz8f6enp6p+uXbuaaSts39KlS/Huu+9i9OjROHLkCOrVq4eYmBhcv35da/l9+/ahZ8+e6NevH44ePYquXbuia9eu+Ouvv9RlJk+ejK+//hqzZ8/GgQMH4O3tjZiYGDx69MhSm2UXzLHvAaBDhw4an+/FixdbYnPsiqH7/sGDB6hcuTK++OILBAcHm2SdRGSnBBGJU6dOCQDi4MGD6mUbNmwQkiSJtLQ0vc/fsWOHACDu3Llj0vU6OmP2T2ZmpihRooRYtmyZetnp06cF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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_test, y_test, color='red')\n", + "plt.plot(X_test, y_pred, color='green', linewidth=3)\n", + "plt.xlabel(f\"{columns[columnNumber]}\")\n", + "plt.ylabel(\"Disease Progression\")\n", + "plt.title(f\"A Graph Plot Showing Diabetes Progression Against {columns[columnNumber]}\")\n", + "plt.show()" ] } ], From bb40b8823f411d2b05e8a5a353f3c9e7f79c97d7 Mon Sep 17 00:00:00 2001 From: Alvin Date: Sat, 17 Aug 2024 18:09:01 +0100 Subject: [PATCH 3/3] linnerud dataset modelled by linear regression --- 2-Regression/1-Tools/assignment.ipynb | 625 ++++++++++++++++++++++++++ 2-Regression/1-Tools/notebook.ipynb | 16 +- 2 files changed, 633 insertions(+), 8 deletions(-) create mode 100644 2-Regression/1-Tools/assignment.ipynb diff --git a/2-Regression/1-Tools/assignment.ipynb b/2-Regression/1-Tools/assignment.ipynb new file mode 100644 index 000000000..ab05d95ca --- /dev/null +++ b/2-Regression/1-Tools/assignment.ipynb @@ -0,0 +1,625 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Importing necessary libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import datasets, linear_model, model_selection" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Data processing" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(20, 3)\n", + "(20, 3)\n", + "[[191. 36. 50.]\n", + " [189. 37. 52.]\n", + " [193. 38. 58.]\n", + " [162. 35. 62.]\n", + " [189. 35. 46.]\n", + " [182. 36. 56.]\n", + " [211. 38. 56.]\n", + " [167. 34. 60.]\n", + " [176. 31. 74.]\n", + " [154. 33. 56.]\n", + " [169. 34. 50.]\n", + " [166. 33. 52.]\n", + " [154. 34. 64.]\n", + " [247. 46. 50.]\n", + " [193. 36. 46.]\n", + " [202. 37. 62.]\n", + " [176. 37. 54.]\n", + " [157. 32. 52.]\n", + " [156. 33. 54.]\n", + " [138. 33. 68.]]\n", + "[[ 5. 162. 60.]\n", + " [ 2. 110. 60.]\n", + " [ 12. 101. 101.]\n", + " [ 12. 105. 37.]\n", + " [ 13. 155. 58.]\n", + " [ 4. 101. 42.]\n", + " [ 8. 101. 38.]\n", + " [ 6. 125. 40.]\n", + " [ 15. 200. 40.]\n", + " [ 17. 251. 250.]\n", + " [ 17. 120. 38.]\n", + " [ 13. 210. 115.]\n", + " [ 14. 215. 105.]\n", + " [ 1. 50. 50.]\n", + " [ 6. 70. 31.]\n", + " [ 12. 210. 120.]\n", + " [ 4. 60. 25.]\n", + " [ 11. 230. 80.]\n", + " [ 15. 225. 73.]\n", + " [ 2. 110. 43.]]\n" + ] + } + ], + "source": [ + "XColumns= [\"weight\", \"waist\", \"pulse\"]\n", + "yColumns = [\"chins\", \"situps\", \"jumps\"]\n", + "columnNumber = 0\n", + "targetColumnNumber = 1\n", + "y,X = datasets.load_linnerud(return_X_y= True)\n", + "print(X.shape)\n", + "print(y.shape)\n", + "print(X)\n", + "print(y)" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(20,)\n", + "(20, 1)\n", + "(20,)\n", + "(20, 1)\n" + ] + } + ], + "source": [ + "\n", + "X= X[:,columnNumber]\n", + "print(X.shape)\n", + "X = X.reshape((-1,1))\n", + "print(X.shape)\n", + "\n", + "y = y[:,targetColumnNumber]\n", + "print(y.shape)\n", + "y= y.reshape((-1,1))\n", + "print(y.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Splitting training and test data and training the model" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LinearRegression()" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, train_size=0.75)\n", + "model = linear_model.LinearRegression()\n", + "model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Predicting, Plotting the data and determining accuracy" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 139, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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5+XlISIiAq6urjA1NYW3tzfWrFmjskxhYSHCw8NhZ2cHCwsLjBo1CpmZmU24F0RERKTLtBp28vPz4ePjg1WrVqmdP3v2bOzatQvr16/HhQsXMHPmTERERGDHjh3SMrNmzcKvv/6KTZs2Yf/+/UhLS0NYWFhT7QIRERHpOIUQQmi7CABQKBTYunUrRowYIU3r3Lkznn/+ebz33nvSNF9fXwwaNAgLFy5EdnY27O3tsWHDBowePRoAcPHiRXTs2BHx8fHo06dPrbadk5MDpVKJ7OxsWFlZaXS/iIiIqHHU9vtbp/vsPPnkk9ixYwdSU1MhhEBMTAwuX76MAQMGAABOnjyJkpIShISESK/p0KED3N3dER8fX+16i4qKkJOTo/IgIiIiedLpsPPFF1/A29sbrq6uMDIywsCBA7Fq1SoEBgYCADIyMmBkZARra2uV1zk6OiIjI6Pa9S5atAhKpVJ6uLm5NeZuEBERkRbpfNg5cuQIduzYgZMnT2Lp0qUIDw/H3r17G7TeefPmITs7W3qkpKRoqGIiIiLSNQbaLqA69+/fx9tvv42tW7diyJAhAICuXbvizJkz+OyzzxASEgInJycUFxcjKytLpXUnMzMTTk5O1a7b2NgYxsbGjb0LREREpAN0tmWnpKQEJSUl0NNTLVFfXx/l5eUAKjorGxoaYt++fdL8S5cu4fr16/Dz82vSeomIiEg3abVlJy8vDwkJCdLzxMREnDlzBra2tnB3d0dQUBDmzJkDU1NTeHh4YP/+/Vi3bh0+//xzAIBSqcTkyZMxe/Zs2NrawsrKCtOmTYOfn1+tR2IRERGRvGl16HlsbCz69u1bZfqECROwdu1aZGRkYN68edizZw/u3r0LDw8PTJkyBbNmzYJCoQBQcVHB119/HT///DOKiooQGhqKL7/88pGnsR7GoedERETNT22/v3XmOjvaxLBDRETU/MjiOjtEREREDcWwQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREssawQ0RERLLGsENERESyxrBDREREslavsJOSkoIbN25Iz48dO4aZM2fi66+/1lhhRERERJpQr7AzduxYxMTEAAAyMjLw9NNP49ixY3jnnXfw4YcfarRAIiIiooaoV9g5e/YsevXqBQD473//i86d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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "y_pred = model.predict(X_test)\n", + "plt.scatter(X_test, y_test, color=\"red\")\n", + "plt.plot(X_test, y_pred, color=\"green\", linewidth=3)\n", + "plt.xlabel(f'{XColumns[columnNumber]}')\n", + "plt.ylabel(f'{yColumns[targetColumnNumber]}')\n", + "plt.title(f'A Graph Plot Showing Prediction of {yColumns[targetColumnNumber]} by {XColumns[columnNumber]}')\n", + "plt.plot()\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2-Regression/1-Tools/notebook.ipynb b/2-Regression/1-Tools/notebook.ipynb index 184e20bfd..d178554b8 100644 --- a/2-Regression/1-Tools/notebook.ipynb +++ b/2-Regression/1-Tools/notebook.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -58,7 +58,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -545,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -561,7 +561,7 @@ }, { "cell_type": "code", - "execution_count": 125, + "execution_count": null, "metadata": {}, "outputs": [ {