You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/2-Regression/1-Tools/solution/notebook.ipynb

753 lines
76 KiB

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Linear Regression for Diabetes dataset - Lesson 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import needed libraries"
]
},
{
"cell_type": "code",
"execution_count": 12,
"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": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from sklearn import datasets, linear_model, model_selection\n",
"\n",
"# Load the diabetes dataset\n",
"X, y= datasets.load_diabetes(return_X_y=True)\n",
"# Print the shape of the data and the first row\n",
"print(X.shape)\n",
"print(X[0])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(442,)\n",
"(442, 1)\n"
]
}
],
"source": [
"# Extract the column at index 2 bmi\n",
"X = X[:,2]\n",
"print(X.shape)\n",
"\n",
"# Shape to a 2D array\n",
"X = X.reshape(-1,1)\n",
"print(X.shape)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# split the data into training and testing data\n",
"X_train, X_test,y_train, y_test = model_selection.train_test_split(X,y, test_size=0.33)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-3 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-3 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-3 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-3 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-3 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-3 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content {\n",
" display: none;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" display: block;\n",
" width: 100%;\n",
" overflow: visible;\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-3 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-3 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-3 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-3 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-3 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-3 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".estimator-table summary {\n",
" padding: .5rem;\n",
" font-family: monospace;\n",
" cursor: pointer;\n",
"}\n",
"\n",
".estimator-table details[open] {\n",
" padding-left: 0.1rem;\n",
" padding-right: 0.1rem;\n",
" padding-bottom: 0.3rem;\n",
"}\n",
"\n",
".estimator-table .parameters-table {\n",
" margin-left: auto !important;\n",
" margin-right: auto !important;\n",
"}\n",
"\n",
".estimator-table .parameters-table tr:nth-child(odd) {\n",
" background-color: #fff;\n",
"}\n",
"\n",
".estimator-table .parameters-table tr:nth-child(even) {\n",
" background-color: #f6f6f6;\n",
"}\n",
"\n",
".estimator-table .parameters-table tr:hover {\n",
" background-color: #e0e0e0;\n",
"}\n",
"\n",
".estimator-table table td {\n",
" border: 1px solid rgba(106, 105, 104, 0.232);\n",
"}\n",
"\n",
".user-set td {\n",
" color:rgb(255, 94, 0);\n",
" text-align: left;\n",
"}\n",
"\n",
".user-set td.value pre {\n",
" color:rgb(255, 94, 0) !important;\n",
" background-color: transparent !important;\n",
"}\n",
"\n",
".default td {\n",
" color: black;\n",
" text-align: left;\n",
"}\n",
"\n",
".user-set td i,\n",
".default td i {\n",
" color: black;\n",
"}\n",
"\n",
".copy-paste-icon {\n",
" background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZD0iTTIwOCAwTDMzMi4xIDBjMTIuNyAwIDI0LjkgNS4xIDMzLjkgMTQuMWw2Ny45IDY3LjljOSA5IDE0LjEgMjEuMiAxNC4xIDMzLjlMNDQ4IDMzNmMwIDI2LjUtMjEuNSA0OC00OCA0OGwtMTkyIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4bDAtMjg4YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4ek00OCAxMjhsODAgMCAwIDY0LTY0IDAgMCAyNTYgMTkyIDAgMC0zMiA2NCAwIDAgNDhjMCAyNi41LTIxLjUgNDgtNDggNDhMNDggNTEyYy0yNi41IDAtNDgtMjEuNS00OC00OEwwIDE3NmMwLTI2LjUgMjEuNS00OCA0OC00OHoiLz48L3N2Zz4=);\n",
" background-repeat: no-repeat;\n",
" background-size: 14px 14px;\n",
" background-position: 0;\n",
" display: inline-block;\n",
" width: 14px;\n",
" height: 14px;\n",
" cursor: pointer;\n",
"}\n",
"</style><body><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LinearRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.7/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
" <div class=\"estimator-table\">\n",
" <details>\n",
" <summary>Parameters</summary>\n",
" <table class=\"parameters-table\">\n",
" <tbody>\n",
" \n",
" <tr class=\"default\">\n",
" <td><i class=\"copy-paste-icon\"\n",
" onclick=\"copyToClipboard('fit_intercept',\n",
" this.parentElement.nextElementSibling)\"\n",
" ></i></td>\n",
" <td class=\"param\">fit_intercept&nbsp;</td>\n",
" <td class=\"value\">True</td>\n",
" </tr>\n",
" \n",
"\n",
" <tr class=\"default\">\n",
" <td><i class=\"copy-paste-icon\"\n",
" onclick=\"copyToClipboard('copy_X',\n",
" this.parentElement.nextElementSibling)\"\n",
" ></i></td>\n",
" <td class=\"param\">copy_X&nbsp;</td>\n",
" <td class=\"value\">True</td>\n",
" </tr>\n",
" \n",
"\n",
" <tr class=\"default\">\n",
" <td><i class=\"copy-paste-icon\"\n",
" onclick=\"copyToClipboard('tol',\n",
" this.parentElement.nextElementSibling)\"\n",
" ></i></td>\n",
" <td class=\"param\">tol&nbsp;</td>\n",
" <td class=\"value\">1e-06</td>\n",
" </tr>\n",
" \n",
"\n",
" <tr class=\"default\">\n",
" <td><i class=\"copy-paste-icon\"\n",
" onclick=\"copyToClipboard('n_jobs',\n",
" this.parentElement.nextElementSibling)\"\n",
" ></i></td>\n",
" <td class=\"param\">n_jobs&nbsp;</td>\n",
" <td class=\"value\">None</td>\n",
" </tr>\n",
" \n",
"\n",
" <tr class=\"default\">\n",
" <td><i class=\"copy-paste-icon\"\n",
" onclick=\"copyToClipboard('positive',\n",
" this.parentElement.nextElementSibling)\"\n",
" ></i></td>\n",
" <td class=\"param\">positive&nbsp;</td>\n",
" <td class=\"value\">False</td>\n",
" </tr>\n",
" \n",
" </tbody>\n",
" </table>\n",
" </details>\n",
" </div>\n",
" </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
" // Get the parameter prefix from the closest toggleable content\n",
" const toggleableContent = element.closest('.sk-toggleable__content');\n",
" const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
" const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
"\n",
" const originalStyle = element.style;\n",
" const computedStyle = window.getComputedStyle(element);\n",
" const originalWidth = computedStyle.width;\n",
" const originalHTML = element.innerHTML.replace('Copied!', '');\n",
"\n",
" navigator.clipboard.writeText(fullParamName)\n",
" .then(() => {\n",
" element.style.width = originalWidth;\n",
" element.style.color = 'green';\n",
" element.innerHTML = \"Copied!\";\n",
"\n",
" setTimeout(() => {\n",
" element.innerHTML = originalHTML;\n",
" element.style = originalStyle;\n",
" }, 2000);\n",
" })\n",
" .catch(err => {\n",
" console.error('Failed to copy:', err);\n",
" element.style.color = 'red';\n",
" element.innerHTML = \"Failed!\";\n",
" setTimeout(() => {\n",
" element.innerHTML = originalHTML;\n",
" element.style = originalStyle;\n",
" }, 2000);\n",
" });\n",
" return false;\n",
"}\n",
"\n",
"document.querySelectorAll('.fa-regular.fa-copy').forEach(function(element) {\n",
" const toggleableContent = element.closest('.sk-toggleable__content');\n",
" const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
" const paramName = element.parentElement.nextElementSibling.textContent.trim();\n",
" const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
"\n",
" element.setAttribute('title', fullParamName);\n",
"});\n",
"</script></body>"
],
"text/plain": [
"LinearRegression()"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create a linear regression model and train it with our data\n",
"model=linear_model.LinearRegression()\n",
"model.fit(X_train,y_train)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# Predict using our test data\n",
"y_pred = model.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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R44cwbZt21RBX7du3RAcHIwOHTogKCgIZ86cwXfffYdevXrBy8sL9+7dg1QqRXx8PFq2bAlPT09s27YNBw8exNdff611/71790ZMTAw+/fRTZGdno2XLltiyZQvWrVuHxMREtWRkY127dg0ymaxCErSSq6srunfvjtTUVHzzzTcGfX5efvllTJs2DW+99Raef/55nDhxAsuXL0fdunUrXW+lt99+G3fu3MGLL74IqVSKy5cv49tvv0WrVq1UuU2tWrWCs7MzZs2ahYKCAri6uuLFF1/UGbAAipYpT09PEBGuXbuGn3/+GXfv3sXixYt1fk906tRJrdvfqph17Jed6t27N7m5udGDBw+0lhkyZAhVrVq1wlBOTdasWUMvvfQSBQQEUJUqVcjX15deeOEFmjNnjmoYsRJ0DAX++eefKSIiglxdXalRo0a0ZMkS1dBCTdtYtmyZqnzr1q0rDFdUPrf8sFvl0Gd9w72Vww0PHTpEkZGR5ObmRmFhYfTdd9+pldM0HJOIaNu2bdShQweqVq0aeXt7U+/even06dMV9vP5559TrVq1yMnJSWe9njx5Qj/99BP17duXwsLCyNXVldzd3al169Y0Z84ctSHmyqHnqampguq6cuVKat26Nbm6upKfnx8NGjSIrl69WqEOp06dUg1pf9oXX3xBAGjSpEkVnqNt6PnBgwfVyinr/PTrWFpaSpMmTaLg4GCqVq0avfjii3TmzBny9/enESNGaDxPT8NTw1GdnJzI19eXWrduTWPHjtU4/YGm83P16lV65ZVXyNfXl3x8fOjVV1+la9euEQCaMmWKqpzy/Xb69GmKj48nLy8vql69Oo0ZM0ZtWL9SWloavfDCC+Th4UEeHh7UqFEjGj16NJ09e1ZV5v79+zRw4EDy9fUlAGrDnUtKSmjWrFnUtGlTcnV1perVq1Pbtm0pKSmJCgoKiIho+/btFBsbSyEhIeTi4kIhISGUkJBA586d03vuwsLCqFevXjrLPD2cVxOhn4Ht27dT69atycXFherVq0f/93//R+PGjSM3Nze1crq+P65fv06jR4+m0NBQqlq1KgUHB1Pnzp3pxx9/VJX54YcfqGPHjuTv70+urq5Ur149mjBhgup8FRcX04QJE6hly5bk5eVFHh4e1LJlS1q4cKHavsoPPSciKioqog8++IBCQkKoatWqFBERQXPm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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# create a scatter plot\n",
"plt.scatter(X_test, y_test, color='black')\n",
"\n",
"# Plot the prediction\n",
"plt.plot(X_test, y_pred, color='blue', linewidth=3)\n",
"\n",
"# Add labels and a title\n",
"plt.xlabel('Scale BMIs')\n",
"plt.ylabel('Disease Progression')\n",
"plt.title('A Graph plot Showing Diabetes Progression Against BMI')\n",
"\n",
"# Draw the plot\n",
"plt.show()"
]
}
],
"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.11.4"
},
"metadata": {
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
}