From 0e5d5aa1d51c8effd1693512b68967120d35fa76 Mon Sep 17 00:00:00 2001 From: gsingh58 <gurmail-singh@wisc.edu> Date: Thu, 11 Apr 2024 06:48:36 -0500 Subject: [PATCH] lec19 and lec20 updated --- .../19-regression-1/19-regression1.ipynb | 223 ++-- .../19-regression-1/19-regression1_001.ipynb | 3 +- .../19-regression-1/19-regression1_002.ipynb | 3 +- .../20-regression-2/20-regression2.ipynb | 1009 ++++++++++++++--- ...on1_001.ipynb => 20-regression2_001.ipynb} | 299 ++++- ...on1_002.ipynb => 20-regression2_002.ipynb} | 299 ++++- 6 files changed, 1558 insertions(+), 278 deletions(-) rename lecture_material/20-regression-2/{20-regression1_001.ipynb => 20-regression2_001.ipynb} (98%) rename lecture_material/20-regression-2/{20-regression1_002.ipynb => 20-regression2_002.ipynb} (98%) diff --git a/lecture_material/19-regression-1/19-regression1.ipynb b/lecture_material/19-regression-1/19-regression1.ipynb index 80f8f5b..84fbd59 100644 --- a/lecture_material/19-regression-1/19-regression1.ipynb +++ b/lecture_material/19-regression-1/19-regression1.ipynb @@ -1953,124 +1953,124 @@ " </thead>\n", " <tbody>\n", " <tr>\n", - " <th>1203</th>\n", + " <th>1002</th>\n", " <td>2022-04-07 19:00:00+00:00</td>\n", - " <td>55079070100</td>\n", + " <td>55117000900</td>\n", " <td>None</td>\n", - " <td>962</td>\n", - " <td>0</td>\n", - " <td>0.86</td>\n", + " <td>1620</td>\n", " <td>0</td>\n", + " <td>0.29</td>\n", + " <td>15</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>0</td>\n", " <td>...</td>\n", - " <td>432</td>\n", - " <td>518</td>\n", + " <td>736</td>\n", + " <td>809</td>\n", " <td>2022-04-06 06:00:00+00:00</td>\n", - " <td>4312</td>\n", - " <td>174.0</td>\n", - " <td>2957</td>\n", + " <td>5217</td>\n", + " <td>306.0</td>\n", + " <td>2755</td>\n", " <td>Census tract</td>\n", - " <td>3.024857e+06</td>\n", - " <td>10099.546360</td>\n", - " <td>POLYGON ((-87.90633 43.13312, -87.90820 43.133...</td>\n", + " <td>1.721632e+07</td>\n", + " <td>20245.615434</td>\n", + " <td>POLYGON ((-87.72310 43.73206, -87.72307 43.732...</td>\n", " </tr>\n", " <tr>\n", - " <th>1191</th>\n", + " <th>550</th>\n", " <td>2022-04-07 19:00:00+00:00</td>\n", - " <td>55079185700</td>\n", + " <td>55093960100</td>\n", " <td>None</td>\n", - " <td>595</td>\n", + " <td>697</td>\n", " <td>0</td>\n", - " <td>0.00</td>\n", - " <td>2</td>\n", + " <td>0.14</td>\n", + " <td>4</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>0</td>\n", " <td>...</td>\n", - " <td>298</td>\n", - " <td>266</td>\n", + " <td>460</td>\n", + " <td>215</td>\n", " <td>2022-04-06 06:00:00+00:00</td>\n", - " <td>1877</td>\n", - " <td>383.0</td>\n", - " <td>2945</td>\n", + " <td>2895</td>\n", + " <td>154.0</td>\n", + " <td>2238</td>\n", " <td>Census tract</td>\n", - " <td>1.254436e+06</td>\n", - " <td>4482.212537</td>\n", - " <td>POLYGON ((-87.91698 43.07116, -87.91726 43.071...</td>\n", + " <td>3.401782e+08</td>\n", + " <td>79266.666247</td>\n", + " <td>POLYGON ((-92.13636 44.85786, -92.14036 44.857...</td>\n", " </tr>\n", " <tr>\n", - " <th>389</th>\n", + " <th>777</th>\n", " <td>2022-04-07 19:00:00+00:00</td>\n", - " <td>55079101200</td>\n", + " <td>55017010100</td>\n", " <td>None</td>\n", - " <td>915</td>\n", - " <td>0</td>\n", - " <td>0.29</td>\n", - " <td>33</td>\n", + " <td>822</td>\n", + " <td>1</td>\n", + " <td>0.43</td>\n", + " <td>2</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>0</td>\n", " <td>...</td>\n", - " <td>379</td>\n", - " <td>469</td>\n", + " <td>581</td>\n", + " <td>221</td>\n", " <td>2022-04-06 06:00:00+00:00</td>\n", - " <td>3184</td>\n", - " <td>202.0</td>\n", - " <td>1363</td>\n", + " <td>2992</td>\n", + " <td>153.0</td>\n", + " <td>2529</td>\n", " <td>Census tract</td>\n", - " <td>2.511556e+06</td>\n", - " <td>6796.635429</td>\n", - " <td>POLYGON ((-88.01756 42.98824, -88.01756 42.988...</td>\n", + " <td>3.245227e+07</td>\n", + " <td>25883.820359</td>\n", + " <td>POLYGON ((-91.43747 44.85741, -91.43761 44.861...</td>\n", " </tr>\n", " <tr>\n", - " <th>448</th>\n", + " <th>669</th>\n", " <td>2022-04-07 19:00:00+00:00</td>\n", - " <td>55079009500</td>\n", + " <td>55059001900</td>\n", " <td>None</td>\n", - " <td>547</td>\n", - " <td>3</td>\n", - " <td>0.43</td>\n", + " <td>549</td>\n", " <td>1</td>\n", + " <td>0.14</td>\n", + " <td>7</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>0</td>\n", " <td>...</td>\n", - " <td>277</td>\n", - " <td>254</td>\n", + " <td>155</td>\n", + " <td>374</td>\n", " <td>2022-04-06 06:00:00+00:00</td>\n", - " <td>2113</td>\n", - " <td>150.0</td>\n", - " <td>1874</td>\n", + " <td>2717</td>\n", + " <td>377.0</td>\n", + " <td>2392</td>\n", " <td>Census tract</td>\n", - " <td>9.560618e+05</td>\n", - " <td>4005.196264</td>\n", - " <td>POLYGON ((-87.97244 43.05711, -87.97267 43.057...</td>\n", + " <td>2.687141e+06</td>\n", + " <td>9958.692789</td>\n", + " <td>POLYGON ((-87.81235 42.58064, -87.81474 42.580...</td>\n", " </tr>\n", " <tr>\n", - " <th>1012</th>\n", + " <th>1331</th>\n", " <td>2022-04-07 19:00:00+00:00</td>\n", - " <td>55027960300</td>\n", + " <td>55079080100</td>\n", " <td>None</td>\n", - " <td>3879</td>\n", + " <td>547</td>\n", " <td>0</td>\n", - " <td>0.57</td>\n", - " <td>29</td>\n", + " <td>1.14</td>\n", + " <td>2</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>0</td>\n", " <td>...</td>\n", - " <td>1363</td>\n", - " <td>2386</td>\n", + " <td>231</td>\n", + " <td>307</td>\n", " <td>2022-04-06 06:00:00+00:00</td>\n", - " <td>7928</td>\n", - " <td>40.0</td>\n", - " <td>2766</td>\n", + " <td>2700</td>\n", + " <td>152.0</td>\n", + " <td>3191</td>\n", " <td>Census tract</td>\n", - " <td>2.580188e+07</td>\n", - " <td>27162.474970</td>\n", - " <td>POLYGON ((-88.77561 43.59656, -88.77558 43.596...</td>\n", + " <td>1.869090e+06</td>\n", + " <td>6262.002770</td>\n", + " <td>POLYGON ((-87.89722 43.10022, -87.89845 43.100...</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", @@ -2079,46 +2079,46 @@ ], "text/plain": [ " RptDt GEOID GEOName POS_CUM_CP POS_NEW_CP \\\n", - "1203 2022-04-07 19:00:00+00:00 55079070100 None 962 0 \n", - "1191 2022-04-07 19:00:00+00:00 55079185700 None 595 0 \n", - "389 2022-04-07 19:00:00+00:00 55079101200 None 915 0 \n", - "448 2022-04-07 19:00:00+00:00 55079009500 None 547 3 \n", - "1012 2022-04-07 19:00:00+00:00 55027960300 None 3879 0 \n", + "1002 2022-04-07 19:00:00+00:00 55117000900 None 1620 0 \n", + "550 2022-04-07 19:00:00+00:00 55093960100 None 697 0 \n", + "777 2022-04-07 19:00:00+00:00 55017010100 None 822 1 \n", + "669 2022-04-07 19:00:00+00:00 55059001900 None 549 1 \n", + "1331 2022-04-07 19:00:00+00:00 55079080100 None 547 0 \n", "\n", " POS_7DAYAVG_CP DTH_CUM_CP DTH_NEW_CP DTH_7DAYAVG_CP \\\n", - "1203 0.86 0 0 0.0 \n", - "1191 0.00 2 0 0.0 \n", - "389 0.29 33 0 0.0 \n", - "448 0.43 1 0 0.0 \n", - "1012 0.57 29 0 0.0 \n", + "1002 0.29 15 0 0.0 \n", + "550 0.14 4 0 0.0 \n", + "777 0.43 2 0 0.0 \n", + "669 0.14 7 0 0.0 \n", + "1331 1.14 2 0 0.0 \n", "\n", " DTH_OVER_30DAYS_CP ... HOSP_NO_CP HOSP_UNK_CP \\\n", - "1203 0 ... 432 518 \n", - "1191 0 ... 298 266 \n", - "389 0 ... 379 469 \n", - "448 0 ... 277 254 \n", - "1012 0 ... 1363 2386 \n", + "1002 0 ... 736 809 \n", + "550 0 ... 460 215 \n", + "777 0 ... 581 221 \n", + "669 0 ... 155 374 \n", + "1331 0 ... 231 307 \n", "\n", " Date POP POP_MOE OBJECTID GEO \\\n", - "1203 2022-04-06 06:00:00+00:00 4312 174.0 2957 Census tract \n", - "1191 2022-04-06 06:00:00+00:00 1877 383.0 2945 Census tract \n", - "389 2022-04-06 06:00:00+00:00 3184 202.0 1363 Census tract \n", - "448 2022-04-06 06:00:00+00:00 2113 150.0 1874 Census tract \n", - "1012 2022-04-06 06:00:00+00:00 7928 40.0 2766 Census tract \n", + "1002 2022-04-06 06:00:00+00:00 5217 306.0 2755 Census tract \n", + "550 2022-04-06 06:00:00+00:00 2895 154.0 2238 Census tract \n", + "777 2022-04-06 06:00:00+00:00 2992 153.0 2529 Census tract \n", + "669 2022-04-06 06:00:00+00:00 2717 377.0 2392 Census tract \n", + "1331 2022-04-06 06:00:00+00:00 2700 152.0 3191 Census tract \n", "\n", " ShapeSTArea ShapeSTLength \\\n", - "1203 3.024857e+06 10099.546360 \n", - "1191 1.254436e+06 4482.212537 \n", - "389 2.511556e+06 6796.635429 \n", - "448 9.560618e+05 4005.196264 \n", - "1012 2.580188e+07 27162.474970 \n", + "1002 1.721632e+07 20245.615434 \n", + "550 3.401782e+08 79266.666247 \n", + "777 3.245227e+07 25883.820359 \n", + "669 2.687141e+06 9958.692789 \n", + "1331 1.869090e+06 6262.002770 \n", "\n", " geometry \n", - "1203 POLYGON ((-87.90633 43.13312, -87.90820 43.133... \n", - "1191 POLYGON ((-87.91698 43.07116, -87.91726 43.071... \n", - "389 POLYGON ((-88.01756 42.98824, -88.01756 42.988... \n", - "448 POLYGON ((-87.97244 43.05711, -87.97267 43.057... \n", - "1012 POLYGON ((-88.77561 43.59656, -88.77558 43.596... \n", + "1002 POLYGON ((-87.72310 43.73206, -87.72307 43.732... \n", + "550 POLYGON ((-92.13636 44.85786, -92.14036 44.857... \n", + "777 POLYGON ((-91.43747 44.85741, -91.43761 44.861... \n", + "669 POLYGON ((-87.81235 42.58064, -87.81474 42.580... \n", + "1331 POLYGON ((-87.89722 43.10022, -87.89845 43.100... \n", "\n", "[5 rows x 90 columns]" ] @@ -2143,7 +2143,7 @@ { "data": { "text/plain": [ - "0.16858602389122834" + "0.15656136953145716" ] }, "execution_count": 42, @@ -2195,7 +2195,7 @@ { "data": { "text/plain": [ - "array([0.22428886, 0.09466345, 0.25987694, 0.12149025, 0.2110579 ])" + "array([0.18224501, 0.17362946, 0.15636298, 0.17604786, 0.16674181])" ] }, "execution_count": 43, @@ -2220,7 +2220,7 @@ { "data": { "text/plain": [ - "0.1822754791451171" + "0.1710054227127618" ] }, "execution_count": 44, @@ -2265,7 +2265,7 @@ { "data": { "text/plain": [ - "0.1822754791451171" + "0.1710054227127618" ] }, "execution_count": 46, @@ -2286,7 +2286,7 @@ { "data": { "text/plain": [ - "0.21847807530968777" + "0.22423438769788911" ] }, "execution_count": 47, @@ -2324,7 +2324,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x300 with 1 Axes>" ] @@ -2356,7 +2356,7 @@ { "data": { "text/plain": [ - "0.06322381180319962" + "0.008845559484288846" ] }, "execution_count": 49, @@ -2377,7 +2377,7 @@ { "data": { "text/plain": [ - "0.06703675246344569" + "0.029473832647323676" ] }, "execution_count": 50, @@ -2398,8 +2398,8 @@ { "data": { "text/plain": [ - "model1 0.063224\n", - "model2 0.067037\n", + "model1 0.008846\n", + "model2 0.029474\n", "dtype: float64" ] }, @@ -2432,7 +2432,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x300 with 1 Axes>" ] @@ -2471,7 +2471,7 @@ { "data": { "text/plain": [ - "0.675922025742224" + "0.6354908636406671" ] }, "execution_count": 53, @@ -2507,9 +2507,8 @@ { "data": { "text/plain": [ - "array([-3.07843136e-02, 2.30136853e-04, -9.79624336e-04, 1.38921261e-02,\n", - " 1.65612818e-02, -1.14307223e-02, 6.32603501e-03, 2.87701547e-02,\n", - " 1.77580170e-01, 2.86019994e-01])" + "array([-0.0246031 , -0.0023333 , 0.00082983, 0.00863443, 0.02272604,\n", + " -0.01537279, 0.01147649, 0.02750062, 0.16175569, 0.30770274])" ] }, "execution_count": 54, @@ -2539,7 +2538,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x200 with 1 Axes>" ] diff --git a/lecture_material/19-regression-1/19-regression1_001.ipynb b/lecture_material/19-regression-1/19-regression1_001.ipynb index 2edd0e8..1606fe4 100644 --- a/lecture_material/19-regression-1/19-regression1_001.ipynb +++ b/lecture_material/19-regression-1/19-regression1_001.ipynb @@ -754,7 +754,8 @@ "\n", "- requires `from sklearn.model_selection import cross_val_score`\n", "- do many different train/test splits of the values, fitting and scoring the model across each combination\n", - "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html" + "- cross validation documentation: https://scikit-learn.org/stable/modules/cross_validation.html\n", + "- function documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html" ] }, { diff --git a/lecture_material/19-regression-1/19-regression1_002.ipynb b/lecture_material/19-regression-1/19-regression1_002.ipynb index 2edd0e8..1606fe4 100644 --- a/lecture_material/19-regression-1/19-regression1_002.ipynb +++ b/lecture_material/19-regression-1/19-regression1_002.ipynb @@ -754,7 +754,8 @@ "\n", "- requires `from sklearn.model_selection import cross_val_score`\n", "- do many different train/test splits of the values, fitting and scoring the model across each combination\n", - "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html" + "- cross validation documentation: https://scikit-learn.org/stable/modules/cross_validation.html\n", + "- function documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_score.html" ] }, { diff --git a/lecture_material/20-regression-2/20-regression2.ipynb b/lecture_material/20-regression-2/20-regression2.ipynb index 46516ba..fbfe4df 100644 --- a/lecture_material/20-regression-2/20-regression2.ipynb +++ b/lecture_material/20-regression-2/20-regression2.ipynb @@ -44,6 +44,29 @@ "df = gpd.read_file(dataset_file)" ] }, + { + "cell_type": "markdown", + "id": "64736014-bca3-4bc5-8f99-d08c5dc14bad", + "metadata": {}, + "source": [ + "### How well does our model fit the data?\n", + "- explained variance score\n", + "- R^2 (\"r squared\")" + ] + }, + { + "cell_type": "markdown", + "id": "2b452eac-c695-4e65-be5d-c4938e848944", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.explained_variance_score(y_true, y_pred)`\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.explained_variance_score.html" + ] + }, { "cell_type": "markdown", "id": "e3e73632", @@ -64,6 +87,328 @@ "df = df[df[\"GEOID\"].str.fullmatch(r\"\\d+\")]" ] }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4ec84d65-7b80-41af-8a35-579c15ac07ad", + "metadata": {}, + "outputs": [], + "source": [ + "xcols = [\"POP\"]\n", + "ycol = \"DTH_CUM_CP\"" + ] + }, + { + "cell_type": "markdown", + "id": "5a1a80c2-afa9-4a80-83e7-3471f31fce47", + "metadata": {}, + "source": [ + "### Let's use `LinearRegression` model.\n", + "\n", + "- `from sklearn.linear_model import LinearRegression`" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "3656144c-d475-4f85-8e32-949dd0b32f7b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" 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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div>" + ], + "text/plain": [ + "LinearRegression()" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = LinearRegression()\n", + "model.fit(df[xcols], df[ycol])" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f3dda9d9-9331-4ffa-a0da-e6769730b85e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([10.66799181, 8.62647161, 12.86546147, ..., 9.7606495 ,\n", + " 15.96419749, 8.59001589])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Let's now make predictions for the known data\n", + "predictions = model.predict(df[xcols])\n", + "predictions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0c99727d-bcf7-4e4a-a719-8c808ec063f6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.19407871463171344" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "2dc5c8e8-e6d0-42a1-9a1e-cb1eb2405cad", + "metadata": {}, + "source": [ + "#### Explained variance score\n", + "\n", + "- `explained_variance_score = (known_var - explained_variance) / known_var`\n", + " - where `known_var = y_true.var()` and `explained_variance = (y_true - y_pred).var()`" + ] + }, + { + "cell_type": "markdown", + "id": "19c29c12-4310-448a-87cc-0e8e227fcc3f", + "metadata": {}, + "source": [ + "What is the variation in known deaths?" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "1eb001ad-c942-4d54-a042-a042da4321c3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "64.45856160704695" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compute variance of \"DTH_CUM_CP\" column\n", + "known_var = df[ycol].var()\n", + "known_var" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "23c1a630-53b3-4df1-928c-ea4b58401fc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "51.94852682334216" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# explained_variance\n", + "explained_variance = (df[ycol] - predictions).var() \n", + "explained_variance" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7faed709-1853-4a1a-9dd0-31c2543e11e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.19407871463171342" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# explained_variance score\n", + "explained_variance_score = (known_var - explained_variance) / known_var\n", + "explained_variance_score" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5256c668-af84-47f6-a85e-ca2dd62996b8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.19407871463171344" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# For comparison here is the explained variance score from sklearn\n", + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "8218a426-4270-4fcb-94af-0434396aa6d5", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.r2_score(y_true, y_pred)`\n", + "\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "8771e0f6-7ef5-46b2-bf2b-02c72643d106", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.19407871463171344" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sklearn.metrics.r2_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "6d33a3f8-fb48-4da5-833b-88f317af8bb9", + "metadata": {}, + "source": [ + "#### R^2 score (aka coefficient of determination) approximation\n", + "\n", + "- `r2_score = (known_var - r2_val) / known_var`\n", + " - where `known_var = y_true.var()` and `r2_val = ((y_true - y_pred) ** 2).mean()`" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1a8f1cda-2958-4733-8e6b-e2c60e0e8adf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "51.911207479359874" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# r2_val\n", + "r2_val = ((df[ycol] - predictions) ** 2).mean()\n", + "r2_val" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "17e8027f-afd4-437a-95e5-9d72c90aaaec", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.1946576810723516" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r2_score = (known_var - r2_val) / known_var\n", + "r2_score # there might be minor rounding off differences" + ] + }, + { + "cell_type": "markdown", + "id": "4ff1ab9d-47fb-499a-b556-743f1234dc5c", + "metadata": {}, + "source": [ + "#### `model.score(X, y)`\n", + "- invokes `predict` method for calculating predictions (`y`) based on features (`X`) and compares the predictions with true values of y" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1cb9dc46-a90d-4add-a7e4-aacd1424cfbf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.19407871463171344" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.score(df[xcols], df[ycol]) " + ] + }, { "cell_type": "markdown", "id": "1768f9a9", @@ -74,47 +419,403 @@ "- Split data into train and test" ] }, + { + "cell_type": "code", + "execution_count": 16, + "id": "f3ff44f1-f7e6-44e6-863d-5e594b11c65f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "696" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Split the data into two equal parts\n", + "len(df) // 2" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4860cfb4-b699-423d-98e4-1e1bf1e5b6af", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(696, 696)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Manual way of splitting train and test data\n", + "train, test = df.iloc[:len(df)//2], df.iloc[len(df)//2:]\n", + "len(train), len(test)" + ] + }, { "cell_type": "markdown", "id": "3a781391", "metadata": {}, "source": [ - "#### `train_test_split(<dataframe>, test_size=<val>)`\n", - "\n", - "- requires `from sklearn.model_selection import train_test_split`\n", - "- shuffles the data and then splits based on 75%-25% split between train and test\n", - " - produces new train and test data every single time\n", - "- `test_size` parameter can take two kind of values:\n", - " - actual number of rows that we want in test data\n", - " - fractional number representing the ratio of train versus test data\n", - " - default value is `0.25`\n", - "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html" + "#### `train_test_split(<dataframe>, test_size=<val>)`\n", + "\n", + "- requires `from sklearn.model_selection import train_test_split`\n", + "- shuffles the data and then splits based on 75%-25% split between train and test\n", + " - produces new train and test data every single time\n", + "- `test_size` parameter can take two kind of values:\n", + " - actual number of rows that we want in test data\n", + " - fractional number representing the ratio of train versus test data\n", + " - default value is `0.25`\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "577b5b14-05aa-47f6-bd05-ad72f6aaeee0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['POP'], 'DTH_CUM_CP')" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xcols, ycol" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "213d6462-feda-471c-b36c-2ebcd20a3cd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1044, 348)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train, test = train_test_split(df)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "fc00271a-ebe5-4db7-b6a2-0fae2853a704", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1272, 120)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Test size using row count\n", + "train, test = train_test_split(df, test_size=120)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c69b74b1-31b6-4c0a-b2d0-80b48603a18a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(696, 696)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Test size using fraction\n", + "train, test = train_test_split(df, test_size=0.5)\n", + "len(train), len(test)" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "5c3de0c2", + "execution_count": 22, + "id": "2a54abb7-3ffb-40ca-bab1-7743cef019f2", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>RptDt</th>\n", + " <th>GEOID</th>\n", + " <th>GEOName</th>\n", + " <th>POS_CUM_CP</th>\n", + " <th>POS_NEW_CP</th>\n", + " <th>POS_7DAYAVG_CP</th>\n", + " <th>DTH_CUM_CP</th>\n", + " <th>DTH_NEW_CP</th>\n", + " <th>DTH_7DAYAVG_CP</th>\n", + " <th>DTH_OVER_30DAYS_CP</th>\n", + " <th>...</th>\n", + " <th>HOSP_NO_CP</th>\n", + " <th>HOSP_UNK_CP</th>\n", + " <th>Date</th>\n", + " <th>POP</th>\n", + " <th>POP_MOE</th>\n", + " <th>OBJECTID</th>\n", + " <th>GEO</th>\n", + " <th>ShapeSTArea</th>\n", + " <th>ShapeSTLength</th>\n", + " <th>geometry</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>1345</th>\n", + " <td>2022-04-07 19:00:00+00:00</td>\n", + " <td>55079090600</td>\n", + " <td>None</td>\n", + " <td>1233</td>\n", + " <td>2</td>\n", + " <td>0.43</td>\n", + " <td>19</td>\n", + " <td>0</td>\n", + " <td>0.0</td>\n", + " <td>0</td>\n", + " <td>...</td>\n", + " <td>375</td>\n", + " <td>808</td>\n", + " <td>2022-04-06 06:00:00+00:00</td>\n", + " <td>4605</td>\n", + " <td>321.0</td>\n", + " <td>3275</td>\n", + " <td>Census tract</td>\n", + " <td>5.748098e+06</td>\n", + " <td>12281.856069</td>\n", + " <td>POLYGON ((-88.03158 43.03837, -88.03172 43.038...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>201</th>\n", + " <td>2022-04-07 19:00:00+00:00</td>\n", + " <td>55139000800</td>\n", + " <td>None</td>\n", + " <td>985</td>\n", + " <td>0</td>\n", + " <td>0.29</td>\n", + " <td>6</td>\n", + " <td>0</td>\n", + " <td>0.0</td>\n", + " <td>0</td>\n", + " <td>...</td>\n", + " <td>439</td>\n", + " <td>519</td>\n", + " <td>2022-04-06 06:00:00+00:00</td>\n", + " <td>3111</td>\n", + " <td>219.0</td>\n", + " <td>1153</td>\n", + " <td>Census tract</td>\n", + " <td>2.682861e+06</td>\n", + " <td>7374.033238</td>\n", + " <td>POLYGON ((-88.54256 44.03214, -88.54257 44.033...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>652</th>\n", + " <td>2022-04-07 19:00:00+00:00</td>\n", + " <td>55063010203</td>\n", + " <td>None</td>\n", + " <td>526</td>\n", + " <td>0</td>\n", + " <td>0.14</td>\n", + " <td>1</td>\n", + " <td>0</td>\n", + " <td>0.0</td>\n", + " <td>0</td>\n", + " <td>...</td>\n", + " <td>251</td>\n", + " <td>261</td>\n", + " <td>2022-04-06 06:00:00+00:00</td>\n", + " <td>2173</td>\n", + " <td>248.0</td>\n", + " <td>2340</td>\n", + " <td>Census tract</td>\n", + " <td>2.292166e+07</td>\n", + " <td>37445.149081</td>\n", + " <td>POLYGON ((-91.25735 43.91612, -91.25784 43.916...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>889</th>\n", + " <td>2022-04-07 19:00:00+00:00</td>\n", + " <td>55137960400</td>\n", + " <td>None</td>\n", + " <td>662</td>\n", + " <td>0</td>\n", + " <td>0.00</td>\n", + " <td>12</td>\n", + " <td>0</td>\n", + " <td>0.0</td>\n", + " <td>0</td>\n", + " <td>...</td>\n", + " <td>438</td>\n", + " <td>193</td>\n", + " <td>2022-04-06 06:00:00+00:00</td>\n", + " <td>3307</td>\n", + " <td>153.0</td>\n", + " <td>2641</td>\n", + " <td>Census tract</td>\n", + " <td>6.855749e+08</td>\n", + " <td>110225.598212</td>\n", + " <td>POLYGON ((-89.38503 44.15584, -89.38705 44.155...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1248</th>\n", + " <td>2022-04-07 19:00:00+00:00</td>\n", + " <td>55079012400</td>\n", + " <td>None</td>\n", + " <td>605</td>\n", + " <td>0</td>\n", + " <td>0.00</td>\n", + " <td>4</td>\n", + " <td>0</td>\n", + " <td>0.0</td>\n", + " <td>0</td>\n", + " <td>...</td>\n", + " <td>297</td>\n", + " <td>283</td>\n", + " <td>2022-04-06 06:00:00+00:00</td>\n", + " <td>2456</td>\n", + " <td>270.0</td>\n", + " <td>3002</td>\n", + " <td>Census tract</td>\n", + " <td>2.465252e+06</td>\n", + " <td>7607.108441</td>\n", + " <td>POLYGON ((-87.97882 43.04910, -87.97905 43.049...</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>5 rows × 90 columns</p>\n", + "</div>" + ], + "text/plain": [ + " RptDt GEOID GEOName POS_CUM_CP POS_NEW_CP \\\n", + "1345 2022-04-07 19:00:00+00:00 55079090600 None 1233 2 \n", + "201 2022-04-07 19:00:00+00:00 55139000800 None 985 0 \n", + "652 2022-04-07 19:00:00+00:00 55063010203 None 526 0 \n", + "889 2022-04-07 19:00:00+00:00 55137960400 None 662 0 \n", + "1248 2022-04-07 19:00:00+00:00 55079012400 None 605 0 \n", + "\n", + " POS_7DAYAVG_CP DTH_CUM_CP DTH_NEW_CP DTH_7DAYAVG_CP \\\n", + "1345 0.43 19 0 0.0 \n", + "201 0.29 6 0 0.0 \n", + "652 0.14 1 0 0.0 \n", + "889 0.00 12 0 0.0 \n", + "1248 0.00 4 0 0.0 \n", + "\n", + " DTH_OVER_30DAYS_CP ... HOSP_NO_CP HOSP_UNK_CP \\\n", + "1345 0 ... 375 808 \n", + "201 0 ... 439 519 \n", + "652 0 ... 251 261 \n", + "889 0 ... 438 193 \n", + "1248 0 ... 297 283 \n", + "\n", + " Date POP POP_MOE OBJECTID GEO \\\n", + "1345 2022-04-06 06:00:00+00:00 4605 321.0 3275 Census tract \n", + "201 2022-04-06 06:00:00+00:00 3111 219.0 1153 Census tract \n", + "652 2022-04-06 06:00:00+00:00 2173 248.0 2340 Census tract \n", + "889 2022-04-06 06:00:00+00:00 3307 153.0 2641 Census tract \n", + "1248 2022-04-06 06:00:00+00:00 2456 270.0 3002 Census tract \n", + "\n", + " ShapeSTArea ShapeSTLength \\\n", + "1345 5.748098e+06 12281.856069 \n", + "201 2.682861e+06 7374.033238 \n", + "652 2.292166e+07 37445.149081 \n", + "889 6.855749e+08 110225.598212 \n", + "1248 2.465252e+06 7607.108441 \n", + "\n", + " geometry \n", + "1345 POLYGON ((-88.03158 43.03837, -88.03172 43.038... \n", + "201 POLYGON ((-88.54256 44.03214, -88.54257 44.033... \n", + "652 POLYGON ((-91.25735 43.91612, -91.25784 43.916... \n", + "889 POLYGON ((-89.38503 44.15584, -89.38705 44.155... \n", + "1248 POLYGON ((-87.97882 43.04910, -87.97905 43.049... \n", + "\n", + "[5 rows x 90 columns]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "xcols = [\"POP\"]\n", - "ycol = \"DTH_CUM_CP\"" + "# Running this cell twice will give you two different train datasets\n", + "train, test = train_test_split(df)\n", + "train.head()" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 23, "id": "0fe05a2e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.1504426295511987" + "0.21891170867219" ] }, - "execution_count": 5, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -157,17 +858,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 24, "id": "bfa17fce", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([0.10684052, 0.33530335, 0.3062585 , 0.11900059, 0.17557615])" + "array([0.21248762, 0.16242777, 0.13919094, 0.28071399, 0.23917723])" ] }, - "execution_count": 6, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -182,17 +883,17 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 25, "id": "284f776f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.20859582270735122" + "0.20679950928518975" ] }, - "execution_count": 7, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -214,7 +915,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 26, "id": "ffd9791b", "metadata": {}, "outputs": [], @@ -227,17 +928,17 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 27, "id": "60f0bf73", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.20859582270735122" + "0.20679950928518975" ] }, - "execution_count": 9, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -248,17 +949,17 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 28, "id": "e3070bf6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.24634023216945558" + "0.2465092965565187" ] }, - "execution_count": 10, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -277,7 +978,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 29, "id": "dfedd8d4", "metadata": {}, "outputs": [ @@ -287,13 +988,13 @@ "<Axes: >" ] }, - "execution_count": 11, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x300 with 1 Axes>" ] @@ -318,17 +1019,17 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 30, "id": "5123c3a9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.09493633774546946" + "0.05115426004890505" ] }, - "execution_count": 12, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -339,17 +1040,17 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 31, "id": "230b9dc9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.09217633613807436" + "0.05964084644394735" ] }, - "execution_count": 13, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -360,19 +1061,19 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 32, "id": "484c7af9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "model1 0.094936\n", - "model2 0.092176\n", + "model1 0.051154\n", + "model2 0.059641\n", "dtype: float64" ] }, - "execution_count": 14, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -385,7 +1086,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 33, "id": "233cd91d", "metadata": {}, "outputs": [ @@ -395,13 +1096,13 @@ "<Axes: >" ] }, - "execution_count": 15, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x300 with 1 Axes>" ] @@ -435,7 +1136,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 34, "id": "d3016079", "metadata": {}, "outputs": [ @@ -467,7 +1168,7 @@ " dtype='object')" ] }, - "execution_count": 16, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -478,17 +1179,17 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 35, "id": "2538534d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.6687962834257137" + "0.6969249590929576" ] }, - "execution_count": 17, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -514,19 +1215,19 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 36, "id": "68e3d21a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([-2.52154412e-02, 2.46452751e-04, -1.20827425e-03, 1.33674297e-02,\n", - " 1.20108729e-02, -5.77172447e-03, 4.75485875e-03, 2.54843687e-02,\n", - " 1.69087610e-01, 2.86734406e-01])" + "array([-2.75210584e-02, -8.60005368e-04, 9.33529282e-06, 1.21603948e-02,\n", + " 1.62902754e-02, -1.32283956e-02, 1.58114831e-02, 1.88835471e-02,\n", + " 1.58450769e-01, 3.14462893e-01])" ] }, - "execution_count": 18, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -537,27 +1238,27 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 37, "id": "98fa5442", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0 -0.025215\n", - "1 0.000246\n", - "2 -0.001208\n", - "3 0.013367\n", - "4 0.012011\n", - "5 -0.005772\n", - "6 0.004755\n", - "7 0.025484\n", - "8 0.169088\n", - "9 0.286734\n", + "0 -0.027521\n", + "1 -0.000860\n", + "2 0.000009\n", + "3 0.012160\n", + "4 0.016290\n", + "5 -0.013228\n", + "6 0.015811\n", + "7 0.018884\n", + "8 0.158451\n", + "9 0.314463\n", "dtype: float64" ] }, - "execution_count": 19, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -568,7 +1269,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 38, "id": "44bd5b07", "metadata": {}, "outputs": [ @@ -578,13 +1279,13 @@ "<Axes: >" ] }, - "execution_count": 20, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 300x200 with 1 Axes>" ] @@ -624,7 +1325,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 39, "id": "a3109957", "metadata": { "scrolled": true @@ -756,7 +1457,7 @@ "4 06/04/2018 9:00 AM OhioStreetBeach201806040900 " ] }, - "execution_count": 21, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -768,7 +1469,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 40, "id": "18d71eb8", "metadata": {}, "outputs": [ @@ -781,7 +1482,7 @@ " dtype='object')" ] }, - "execution_count": 22, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -800,7 +1501,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 41, "id": "149aa67c", "metadata": {}, "outputs": [ @@ -810,7 +1511,7 @@ "<Axes: xlabel='Wave Period', ylabel='Wave Height'>" ] }, - "execution_count": 23, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, @@ -848,7 +1549,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 42, "id": "3f045b08", "metadata": {}, "outputs": [ @@ -863,7 +1564,7 @@ " 'Rainbow Beach']" ] }, - "execution_count": 24, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -875,7 +1576,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 43, "id": "bc626c9d", "metadata": {}, "outputs": [ @@ -935,7 +1636,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 44, "id": "a454b7ec", "metadata": {}, "outputs": [ @@ -1065,7 +1766,7 @@ "30642 07/29/2017 7:00 PM OhioStreetBeach201707291900 " ] }, - "execution_count": 26, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -1094,7 +1795,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 45, "id": "199a5ca6", "metadata": {}, "outputs": [ @@ -1105,7 +1806,7 @@ " 0.0045598 , 0.00501976, 0.00087213, 0.00324963, 0.00139934])" ] }, - "execution_count": 27, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -1121,7 +1822,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 46, "id": "15bec5d5", "metadata": {}, "outputs": [ @@ -1131,7 +1832,7 @@ "0.0028549034281171947" ] }, - "execution_count": 28, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -1150,7 +1851,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 47, "id": "306e21bd", "metadata": {}, "outputs": [ @@ -1160,7 +1861,7 @@ "0.0016835509327158373" ] }, - "execution_count": 29, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -1211,7 +1912,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 48, "id": "5b6f8a12", "metadata": {}, "outputs": [ @@ -1273,7 +1974,7 @@ "30642 3.0" ] }, - "execution_count": 30, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -1297,7 +1998,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 49, "id": "54f8d249", "metadata": {}, "outputs": [ @@ -1377,7 +2078,7 @@ "30642 3.0 9.0 27.0 1.732051" ] }, - "execution_count": 31, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -1406,7 +2107,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 50, "id": "e6c43483", "metadata": {}, "outputs": [], @@ -1416,20 +2117,20 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 51, "id": "6f81a519", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>PolynomialFeatures(degree=4, include_bias=False)</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures(degree=4, include_bias=False)</pre></div></div></div></div></div>" + "<style>#sk-container-id-2 {color: black;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>PolynomialFeatures(degree=4, include_bias=False)</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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures(degree=4, include_bias=False)</pre></div></div></div></div></div>" ], "text/plain": [ "PolynomialFeatures(degree=4, include_bias=False)" ] }, - "execution_count": 33, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -1441,7 +2142,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 52, "id": "8d6d2e1c", "metadata": {}, "outputs": [ @@ -1457,7 +2158,7 @@ " [7.000e+00, 4.900e+01, 3.430e+02, 2.401e+03]])" ] }, - "execution_count": 34, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -1469,7 +2170,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 53, "id": "ecfc2493", "metadata": {}, "outputs": [ @@ -1600,7 +2301,7 @@ "[29871 rows x 4 columns]" ] }, - "execution_count": 35, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } @@ -1620,7 +2321,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 54, "id": "1ab1eaa3", "metadata": {}, "outputs": [ @@ -1631,7 +2332,7 @@ " dtype=object)" ] }, - "execution_count": 36, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -1642,7 +2343,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 55, "id": "2d62b3d3", "metadata": {}, "outputs": [ @@ -1773,7 +2474,7 @@ "[29871 rows x 4 columns]" ] }, - "execution_count": 37, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -1785,7 +2486,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 56, "id": "4beebe68", "metadata": {}, "outputs": [ @@ -1865,7 +2566,7 @@ "4 3.0 9.0 27.0 81.0" ] }, - "execution_count": 38, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -1887,7 +2588,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 57, "id": "91c3a781", "metadata": {}, "outputs": [ @@ -1967,7 +2668,7 @@ "4 3.0 9.0 27.0 81.0" ] }, - "execution_count": 39, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -1992,23 +2693,23 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 58, "id": "bb509930", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "<style>#sk-container-id-2 {color: black;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('pf', PolynomialFeatures(include_bias=False)),\n", - " ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('pf', PolynomialFeatures(include_bias=False)),\n", - " ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures(include_bias=False)</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" + "<style>#sk-container-id-3 {color: black;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('pf', PolynomialFeatures(include_bias=False)),\n", + " ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('pf', PolynomialFeatures(include_bias=False)),\n", + " ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures(include_bias=False)</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" ], "text/plain": [ "Pipeline(steps=[('pf', PolynomialFeatures(include_bias=False)),\n", " ('lr', LinearRegression())])" ] }, - "execution_count": 40, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -2023,7 +2724,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 59, "id": "ccf76663", "metadata": {}, "outputs": [ @@ -2033,7 +2734,7 @@ "0.048992293142027354" ] }, - "execution_count": 41, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } @@ -2061,7 +2762,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 60, "id": "76a31355", "metadata": {}, "outputs": [ @@ -2073,7 +2774,7 @@ " dtype=object)" ] }, - "execution_count": 42, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } @@ -2108,7 +2809,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 61, "id": "9c01ad37-ea34-4c35-9cf8-74552a54eec6", "metadata": {}, "outputs": [], @@ -2118,7 +2819,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 62, "id": "ef069c7b", "metadata": {}, "outputs": [ @@ -2129,7 +2830,7 @@ "\twith 29871 stored elements in Compressed Sparse Row format>" ] }, - "execution_count": 44, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -2141,7 +2842,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 63, "id": "5cb24e10", "metadata": {}, "outputs": [ @@ -2152,7 +2853,7 @@ "\twith 29871 stored elements in Compressed Sparse Row format>" ] }, - "execution_count": 45, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } @@ -2163,7 +2864,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 64, "id": "d5303636", "metadata": {}, "outputs": [ @@ -2344,7 +3045,7 @@ "[29871 rows x 6 columns]" ] }, - "execution_count": 46, + "execution_count": 64, "metadata": {}, "output_type": "execute_result" } @@ -2357,20 +3058,20 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 65, "id": "625a8edc", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "<style>#sk-container-id-3 {color: black;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('oh', OneHotEncoder()), ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('oh', OneHotEncoder()), ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" + "<style>#sk-container-id-4 {color: black;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('oh', OneHotEncoder()), ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('oh', OneHotEncoder()), ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" ], "text/plain": [ "Pipeline(steps=[('oh', OneHotEncoder()), ('lr', LinearRegression())])" ] }, - "execution_count": 47, + "execution_count": 65, "metadata": {}, "output_type": "execute_result" } @@ -2385,7 +3086,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 66, "id": "5494c1fa", "metadata": {}, "outputs": [ @@ -2395,7 +3096,7 @@ "0.04564310407563701" ] }, - "execution_count": 48, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -2450,20 +3151,20 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 67, "id": "40378fb3", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "<style>#sk-container-id-4 {color: black;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", + "<style>#sk-container-id-5 {color: black;}#sk-container-id-5 pre{padding: 0;}#sk-container-id-5 div.sk-toggleable {background-color: white;}#sk-container-id-5 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-5 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-5 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-5 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-5 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-5 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-5 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-5 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-5 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-5 div.sk-item {position: relative;z-index: 1;}#sk-container-id-5 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-5 div.sk-item::before, #sk-container-id-5 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-5 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-5 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-5 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-5 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-5 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-5 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-5 div.sk-label-container {text-align: center;}#sk-container-id-5 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-5 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", " ['Wave Period']),\n", " ('onehotencoder', OneHotEncoder(),\n", - " ['Beach Name'])])</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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">ColumnTransformer</label><div class=\"sk-toggleable__content\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", + " ['Beach Name'])])</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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">ColumnTransformer</label><div class=\"sk-toggleable__content\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", " ['Wave Period']),\n", " ('onehotencoder', OneHotEncoder(),\n", - " ['Beach Name'])])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">polynomialfeatures</label><div class=\"sk-toggleable__content\"><pre>['Wave Period']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures()</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">onehotencoder</label><div class=\"sk-toggleable__content\"><pre>['Beach Name']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div></div></div>" + " ['Beach Name'])])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">polynomialfeatures</label><div class=\"sk-toggleable__content\"><pre>['Wave Period']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures()</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">onehotencoder</label><div class=\"sk-toggleable__content\"><pre>['Beach Name']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div></div></div>" ], "text/plain": [ "ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", @@ -2472,7 +3173,7 @@ " ['Beach Name'])])" ] }, - "execution_count": 49, + "execution_count": 67, "metadata": {}, "output_type": "execute_result" } @@ -2487,31 +3188,31 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 68, "id": "2d6e0ba2", "metadata": {}, "outputs": [ { "data": { "text/html": [ - "<style>#sk-container-id-5 {color: black;}#sk-container-id-5 pre{padding: 0;}#sk-container-id-5 div.sk-toggleable {background-color: white;}#sk-container-id-5 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-5 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-5 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-5 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-5 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-5 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-5 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-5 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-5 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-5 div.sk-item {position: relative;z-index: 1;}#sk-container-id-5 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-5 div.sk-item::before, #sk-container-id-5 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-5 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-5 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-5 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-5 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-5 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-5 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-5 div.sk-label-container {text-align: center;}#sk-container-id-5 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-5 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('transformers',\n", + "<style>#sk-container-id-6 {color: black;}#sk-container-id-6 pre{padding: 0;}#sk-container-id-6 div.sk-toggleable {background-color: white;}#sk-container-id-6 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-6 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-6 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-6 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-6 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-6 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-6 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-6 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-6 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-6 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-6 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-6 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-6 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-6 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-6 div.sk-item {position: relative;z-index: 1;}#sk-container-id-6 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-6 div.sk-item::before, #sk-container-id-6 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-6 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-6 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-6 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-6 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-6 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-6 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-6 div.sk-label-container {text-align: center;}#sk-container-id-6 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-6 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-6\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[('transformers',\n", " ColumnTransformer(transformers=[('polynomialfeatures',\n", " PolynomialFeatures(),\n", " ['Wave Period']),\n", " ('onehotencoder',\n", " OneHotEncoder(),\n", " ['Beach Name'])])),\n", - " ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('transformers',\n", + " ('lr', 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 sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" ><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><pre>Pipeline(steps=[('transformers',\n", " ColumnTransformer(transformers=[('polynomialfeatures',\n", " PolynomialFeatures(),\n", " ['Wave Period']),\n", " ('onehotencoder',\n", " OneHotEncoder(),\n", " ['Beach Name'])])),\n", - " ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" ><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">transformers: ColumnTransformer</label><div class=\"sk-toggleable__content\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", + " ('lr', LinearRegression())])</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-15\" type=\"checkbox\" ><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">transformers: ColumnTransformer</label><div class=\"sk-toggleable__content\"><pre>ColumnTransformer(transformers=[('polynomialfeatures', PolynomialFeatures(),\n", " ['Wave Period']),\n", " ('onehotencoder', OneHotEncoder(),\n", - " ['Beach Name'])])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-15\" type=\"checkbox\" ><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">polynomialfeatures</label><div class=\"sk-toggleable__content\"><pre>['Wave Period']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" ><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures()</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-17\" type=\"checkbox\" ><label for=\"sk-estimator-id-17\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">onehotencoder</label><div class=\"sk-toggleable__content\"><pre>['Beach Name']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-18\" type=\"checkbox\" ><label for=\"sk-estimator-id-18\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-19\" type=\"checkbox\" ><label for=\"sk-estimator-id-19\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" + " ['Beach Name'])])</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" ><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">polynomialfeatures</label><div class=\"sk-toggleable__content\"><pre>['Wave Period']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-17\" type=\"checkbox\" ><label for=\"sk-estimator-id-17\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">PolynomialFeatures</label><div class=\"sk-toggleable__content\"><pre>PolynomialFeatures()</pre></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-18\" type=\"checkbox\" ><label for=\"sk-estimator-id-18\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">onehotencoder</label><div class=\"sk-toggleable__content\"><pre>['Beach Name']</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-19\" type=\"checkbox\" ><label for=\"sk-estimator-id-19\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-20\" type=\"checkbox\" ><label for=\"sk-estimator-id-20\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>" ], "text/plain": [ "Pipeline(steps=[('transformers',\n", @@ -2524,7 +3225,7 @@ " ('lr', LinearRegression())])" ] }, - "execution_count": 50, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } @@ -2539,7 +3240,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 69, "id": "4248010b", "metadata": {}, "outputs": [], @@ -2549,7 +3250,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 70, "id": "57b9ffc8", "metadata": {}, "outputs": [ @@ -2559,7 +3260,7 @@ "0.08853953873940563" ] }, - "execution_count": 52, + "execution_count": 70, "metadata": {}, "output_type": "execute_result" } @@ -2587,7 +3288,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 71, "id": "e7e58157", "metadata": {}, "outputs": [ @@ -2597,7 +3298,7 @@ "0.08646767678269851" ] }, - "execution_count": 53, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } @@ -2617,7 +3318,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 72, "id": "50c7e102", "metadata": {}, "outputs": [ @@ -2634,7 +3335,7 @@ " 'onehotencoder__Beach Name_Rainbow Beach'], dtype=object)" ] }, - "execution_count": 54, + "execution_count": 72, "metadata": {}, "output_type": "execute_result" } @@ -2645,7 +3346,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 73, "id": "28ccbf92", "metadata": {}, "outputs": [ @@ -2656,7 +3357,7 @@ " 0.02296935, -0.01070481, 0.00846144, 0.02463752])" ] }, - "execution_count": 55, + "execution_count": 73, "metadata": {}, "output_type": "execute_result" } @@ -2667,7 +3368,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 74, "id": "03863a66-3a16-4147-9a56-793f91a33ce2", "metadata": {}, "outputs": [ @@ -2677,7 +3378,7 @@ "<Axes: >" ] }, - "execution_count": 56, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" }, @@ -2699,7 +3400,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 75, "id": "acd00dc3", "metadata": {}, "outputs": [ @@ -2709,7 +3410,7 @@ "<Axes: >" ] }, - "execution_count": 57, + "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, diff --git a/lecture_material/20-regression-2/20-regression1_001.ipynb b/lecture_material/20-regression-2/20-regression2_001.ipynb similarity index 98% rename from lecture_material/20-regression-2/20-regression1_001.ipynb rename to lecture_material/20-regression-2/20-regression2_001.ipynb index 2a7959a..6d7f4e3 100644 --- a/lecture_material/20-regression-2/20-regression1_001.ipynb +++ b/lecture_material/20-regression-2/20-regression2_001.ipynb @@ -41,12 +41,35 @@ "source": [ "# Read the \"covid.geojson\" file\n", "dataset_file = \"covid.geojson\"\n", - "df = " + "df = gpd.read_file(dataset_file)" ] }, { "cell_type": "markdown", - "id": "e3e73632", + "id": "b37d6f28-fabd-4418-8c85-8e7cd24331f5", + "metadata": {}, + "source": [ + "### How well does our model fit the data?\n", + "- explained variance score\n", + "- R^2 (\"r squared\")" + ] + }, + { + "cell_type": "markdown", + "id": "a2bf3bc0-03b8-4c41-93a9-bef8a76bf3de", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.explained_variance_score(y_true, y_pred)`\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.explained_variance_score.html" + ] + }, + { + "cell_type": "markdown", + "id": "c7fbd149-0c50-46ec-bfb1-f33e9fece60e", "metadata": {}, "source": [ "### Predicting \"DTH_CUM_CP\"" @@ -55,7 +78,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0c57bc47", + "id": "cebb790b-9374-4d02-afe0-40e1efc8f176", "metadata": {}, "outputs": [], "source": [ @@ -64,6 +87,203 @@ "df = df[df[\"GEOID\"].str.fullmatch(r\"\\d+\")]" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4a4dd37-d7d3-41ca-8319-1442b56b2a24", + "metadata": {}, + "outputs": [], + "source": [ + "xcols = [\"POP\"]\n", + "ycol = \"DTH_CUM_CP\"" + ] + }, + { + "cell_type": "markdown", + "id": "87c4b295-39ca-445c-865d-4829d77f55ce", + "metadata": {}, + "source": [ + "### Let's use `LinearRegression` model.\n", + "\n", + "- `from sklearn.linear_model import LinearRegression`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78c2c891-caed-4359-bc91-a97de21db812", + "metadata": {}, + "outputs": [], + "source": [ + "model = LinearRegression()\n", + "model.fit(df[xcols], df[ycol])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7787a889-c693-40b3-8e66-9a266bb0c683", + "metadata": {}, + "outputs": [], + "source": [ + "# Let's now make predictions for the known data\n", + "predictions = model.predict(df[xcols])\n", + "predictions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7952f67c-57b3-4ca8-bb42-b6287f012157", + "metadata": {}, + "outputs": [], + "source": [ + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "39caf7a5-c782-4c02-8c3e-8385eddb108f", + "metadata": {}, + "source": [ + "#### Explained variance score\n", + "\n", + "- `explained_variance_score = (known_var - explained_variance) / known_var`\n", + " - where `known_var = y_true.var()` and `explained_variance = (y_true - y_pred).var()`" + ] + }, + { + "cell_type": "markdown", + "id": "908b8af9-6ba1-4e92-9569-36168b253fae", + "metadata": {}, + "source": [ + "What is the variation in known deaths?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5fc126c4-de9a-4a35-abe6-8d5820227f6f", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute variance of \"DTH_CUM_CP\" column\n", + "known_var = df[ycol].var()\n", + "known_var" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2f489d5-1325-4870-b6f8-d2b7949f12cf", + "metadata": {}, + "outputs": [], + "source": [ + "# explained_variance\n", + "explained_variance = (df[ycol] - predictions).var() \n", + "explained_variance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e049b2bd-35e8-4a75-9d6d-d70c2b998541", + "metadata": {}, + "outputs": [], + "source": [ + "# explained_variance score\n", + "explained_variance_score = (known_var - explained_variance) / known_var\n", + "explained_variance_score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ced64de4-d1dc-464e-8855-3341a8f3b15a", + "metadata": {}, + "outputs": [], + "source": [ + "# For comparison here is the explained variance score from sklearn\n", + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "e85ad41f-8d4b-471f-b689-333346d7d660", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.r2_score(y_true, y_pred)`\n", + "\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "557a7646-7843-4956-8d72-9104aa7113de", + "metadata": {}, + "outputs": [], + "source": [ + "sklearn.metrics.r2_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "3ceeca6f-e7d4-47fa-b53e-8c3bbba41594", + "metadata": {}, + "source": [ + "#### R^2 score (aka coefficient of determination) approximation\n", + "\n", + "- `r2_score = (known_var - r2_val) / known_var`\n", + " - where `known_var = y_true.var()` and `r2_val = ((y_true - y_pred) ** 2).mean()`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1ea5c04-3dd7-412c-9cbf-32f4a69bdb20", + "metadata": {}, + "outputs": [], + "source": [ + "# r2_val\n", + "r2_val = ((df[ycol] - predictions) ** 2).mean()\n", + "r2_val" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e3e83156-8e02-4216-9738-bed6b0052608", + "metadata": {}, + "outputs": [], + "source": [ + "r2_score = (known_var - r2_val) / known_var\n", + "r2_score # there might be minor rounding off differences" + ] + }, + { + "cell_type": "markdown", + "id": "d1795241-d9d7-42c5-8bf4-614ec7d972d7", + "metadata": {}, + "source": [ + "#### `model.score(X, y)`\n", + "- invokes `predict` method for calculating predictions (`y`) based on features (`X`) and compares the predictions with true values of y" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a50b84d0-5c1b-4f84-9f41-d6157057d645", + "metadata": {}, + "outputs": [], + "source": [ + "model.score(df[xcols], df[ycol]) " + ] + }, { "cell_type": "markdown", "id": "1768f9a9", @@ -74,6 +294,29 @@ "- Split data into train and test" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "80cef390-831c-443a-9149-9141c8d34ef2", + "metadata": {}, + "outputs": [], + "source": [ + "# Split the data into two equal parts\n", + "len(df) // 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68c16194-1c7b-4f3a-81a3-4b0352f36872", + "metadata": {}, + "outputs": [], + "source": [ + "# Manual way of splitting train and test data\n", + "train, test = df.iloc[:len(df)//2], df.iloc[len(df)//2:]\n", + "len(train), len(test)" + ] + }, { "cell_type": "markdown", "id": "3a781391", @@ -98,8 +341,54 @@ "metadata": {}, "outputs": [], "source": [ - "xcols = [\"POP\"]\n", - "ycol = \"DTH_CUM_CP\"" + "xcols, ycol" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c52c86c4-8afe-4d49-97a5-e2fcb18242c5", + "metadata": {}, + "outputs": [], + "source": [ + "train, test = train_test_split(df)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3ccdf1a-0958-402c-80e1-2eed12abdf88", + "metadata": {}, + "outputs": [], + "source": [ + "# Test size using row count\n", + "train, test = train_test_split(df, test_size=120)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "adeea246-f80a-46c2-b62b-9e95bef5d02f", + "metadata": {}, + "outputs": [], + "source": [ + "# Test size using fraction\n", + "train, test = train_test_split(df, test_size=0.5)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba4c6310-0f35-44ac-9250-79b6eb04f7cc", + "metadata": {}, + "outputs": [], + "source": [ + "# Running this cell twice will give you two different train datasets\n", + "train, test = train_test_split(df)\n", + "train.head()" ] }, { diff --git a/lecture_material/20-regression-2/20-regression1_002.ipynb b/lecture_material/20-regression-2/20-regression2_002.ipynb similarity index 98% rename from lecture_material/20-regression-2/20-regression1_002.ipynb rename to lecture_material/20-regression-2/20-regression2_002.ipynb index 2a7959a..6d7f4e3 100644 --- a/lecture_material/20-regression-2/20-regression1_002.ipynb +++ b/lecture_material/20-regression-2/20-regression2_002.ipynb @@ -41,12 +41,35 @@ "source": [ "# Read the \"covid.geojson\" file\n", "dataset_file = \"covid.geojson\"\n", - "df = " + "df = gpd.read_file(dataset_file)" ] }, { "cell_type": "markdown", - "id": "e3e73632", + "id": "b37d6f28-fabd-4418-8c85-8e7cd24331f5", + "metadata": {}, + "source": [ + "### How well does our model fit the data?\n", + "- explained variance score\n", + "- R^2 (\"r squared\")" + ] + }, + { + "cell_type": "markdown", + "id": "a2bf3bc0-03b8-4c41-93a9-bef8a76bf3de", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.explained_variance_score(y_true, y_pred)`\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.explained_variance_score.html" + ] + }, + { + "cell_type": "markdown", + "id": "c7fbd149-0c50-46ec-bfb1-f33e9fece60e", "metadata": {}, "source": [ "### Predicting \"DTH_CUM_CP\"" @@ -55,7 +78,7 @@ { "cell_type": "code", "execution_count": null, - "id": "0c57bc47", + "id": "cebb790b-9374-4d02-afe0-40e1efc8f176", "metadata": {}, "outputs": [], "source": [ @@ -64,6 +87,203 @@ "df = df[df[\"GEOID\"].str.fullmatch(r\"\\d+\")]" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4a4dd37-d7d3-41ca-8319-1442b56b2a24", + "metadata": {}, + "outputs": [], + "source": [ + "xcols = [\"POP\"]\n", + "ycol = \"DTH_CUM_CP\"" + ] + }, + { + "cell_type": "markdown", + "id": "87c4b295-39ca-445c-865d-4829d77f55ce", + "metadata": {}, + "source": [ + "### Let's use `LinearRegression` model.\n", + "\n", + "- `from sklearn.linear_model import LinearRegression`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78c2c891-caed-4359-bc91-a97de21db812", + "metadata": {}, + "outputs": [], + "source": [ + "model = LinearRegression()\n", + "model.fit(df[xcols], df[ycol])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7787a889-c693-40b3-8e66-9a266bb0c683", + "metadata": {}, + "outputs": [], + "source": [ + "# Let's now make predictions for the known data\n", + "predictions = model.predict(df[xcols])\n", + "predictions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7952f67c-57b3-4ca8-bb42-b6287f012157", + "metadata": {}, + "outputs": [], + "source": [ + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "39caf7a5-c782-4c02-8c3e-8385eddb108f", + "metadata": {}, + "source": [ + "#### Explained variance score\n", + "\n", + "- `explained_variance_score = (known_var - explained_variance) / known_var`\n", + " - where `known_var = y_true.var()` and `explained_variance = (y_true - y_pred).var()`" + ] + }, + { + "cell_type": "markdown", + "id": "908b8af9-6ba1-4e92-9569-36168b253fae", + "metadata": {}, + "source": [ + "What is the variation in known deaths?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5fc126c4-de9a-4a35-abe6-8d5820227f6f", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute variance of \"DTH_CUM_CP\" column\n", + "known_var = df[ycol].var()\n", + "known_var" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a2f489d5-1325-4870-b6f8-d2b7949f12cf", + "metadata": {}, + "outputs": [], + "source": [ + "# explained_variance\n", + "explained_variance = (df[ycol] - predictions).var() \n", + "explained_variance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e049b2bd-35e8-4a75-9d6d-d70c2b998541", + "metadata": {}, + "outputs": [], + "source": [ + "# explained_variance score\n", + "explained_variance_score = (known_var - explained_variance) / known_var\n", + "explained_variance_score" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ced64de4-d1dc-464e-8855-3341a8f3b15a", + "metadata": {}, + "outputs": [], + "source": [ + "# For comparison here is the explained variance score from sklearn\n", + "sklearn.metrics.explained_variance_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "e85ad41f-8d4b-471f-b689-333346d7d660", + "metadata": {}, + "source": [ + "#### `sklearn.metrics.r2_score(y_true, y_pred)`\n", + "\n", + "- requires `import sklearn`\n", + "- calculates the explained variance score given:\n", + " - y_true: actual death values in our example\n", + " - y_pred: prediction of deaths in our example\n", + "- documentation: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "557a7646-7843-4956-8d72-9104aa7113de", + "metadata": {}, + "outputs": [], + "source": [ + "sklearn.metrics.r2_score(df[ycol], predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "3ceeca6f-e7d4-47fa-b53e-8c3bbba41594", + "metadata": {}, + "source": [ + "#### R^2 score (aka coefficient of determination) approximation\n", + "\n", + "- `r2_score = (known_var - r2_val) / known_var`\n", + " - where `known_var = y_true.var()` and `r2_val = ((y_true - y_pred) ** 2).mean()`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1ea5c04-3dd7-412c-9cbf-32f4a69bdb20", + "metadata": {}, + "outputs": [], + "source": [ + "# r2_val\n", + "r2_val = ((df[ycol] - predictions) ** 2).mean()\n", + "r2_val" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e3e83156-8e02-4216-9738-bed6b0052608", + "metadata": {}, + "outputs": [], + "source": [ + "r2_score = (known_var - r2_val) / known_var\n", + "r2_score # there might be minor rounding off differences" + ] + }, + { + "cell_type": "markdown", + "id": "d1795241-d9d7-42c5-8bf4-614ec7d972d7", + "metadata": {}, + "source": [ + "#### `model.score(X, y)`\n", + "- invokes `predict` method for calculating predictions (`y`) based on features (`X`) and compares the predictions with true values of y" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a50b84d0-5c1b-4f84-9f41-d6157057d645", + "metadata": {}, + "outputs": [], + "source": [ + "model.score(df[xcols], df[ycol]) " + ] + }, { "cell_type": "markdown", "id": "1768f9a9", @@ -74,6 +294,29 @@ "- Split data into train and test" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "80cef390-831c-443a-9149-9141c8d34ef2", + "metadata": {}, + "outputs": [], + "source": [ + "# Split the data into two equal parts\n", + "len(df) // 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68c16194-1c7b-4f3a-81a3-4b0352f36872", + "metadata": {}, + "outputs": [], + "source": [ + "# Manual way of splitting train and test data\n", + "train, test = df.iloc[:len(df)//2], df.iloc[len(df)//2:]\n", + "len(train), len(test)" + ] + }, { "cell_type": "markdown", "id": "3a781391", @@ -98,8 +341,54 @@ "metadata": {}, "outputs": [], "source": [ - "xcols = [\"POP\"]\n", - "ycol = \"DTH_CUM_CP\"" + "xcols, ycol" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c52c86c4-8afe-4d49-97a5-e2fcb18242c5", + "metadata": {}, + "outputs": [], + "source": [ + "train, test = train_test_split(df)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3ccdf1a-0958-402c-80e1-2eed12abdf88", + "metadata": {}, + "outputs": [], + "source": [ + "# Test size using row count\n", + "train, test = train_test_split(df, test_size=120)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "adeea246-f80a-46c2-b62b-9e95bef5d02f", + "metadata": {}, + "outputs": [], + "source": [ + "# Test size using fraction\n", + "train, test = train_test_split(df, test_size=0.5)\n", + "len(train), len(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba4c6310-0f35-44ac-9250-79b6eb04f7cc", + "metadata": {}, + "outputs": [], + "source": [ + "# Running this cell twice will give you two different train datasets\n", + "train, test = train_test_split(df)\n", + "train.head()" ] }, { -- GitLab