StudentPerformance.ipynb (63861B)
1 { 2 "cells": [ 3 { 4 "cell_type": "markdown", 5 "metadata": {}, 6 "source": [ 7 "https://www.kaggle.com/datasets/rabieelkharoua/students-performance-dataset/data\n", 8 "\n", 9 "MAPE (Average Percent Error)\n", 10 "\n", 11 "SVM:\n", 12 "\n", 13 "18.431351756224238%\n", 14 "\n", 15 "Linear Regression:\n", 16 "\n", 17 "6.027964205816556%\n", 18 "\n", 19 "Random Forest:\n", 20 "\n", 21 "18.610917749737553%\n", 22 "___\n", 23 "\n", 24 "6% error seems sufficient using the Random Forest Model. This is however destroyed by a deep neural network which achieved 3.5% MAPE" 25 ] 26 }, 27 { 28 "cell_type": "code", 29 "execution_count": 120, 30 "metadata": {}, 31 "outputs": [ 32 { 33 "data": { 34 "text/html": [ 35 "<div>\n", 36 "<style scoped>\n", 37 " .dataframe tbody tr th:only-of-type {\n", 38 " vertical-align: middle;\n", 39 " }\n", 40 "\n", 41 " .dataframe tbody tr th {\n", 42 " vertical-align: top;\n", 43 " }\n", 44 "\n", 45 " .dataframe thead th {\n", 46 " text-align: right;\n", 47 " }\n", 48 "</style>\n", 49 "<table border=\"1\" class=\"dataframe\">\n", 50 " <thead>\n", 51 " <tr style=\"text-align: right;\">\n", 52 " <th></th>\n", 53 " <th>StudentID</th>\n", 54 " <th>Age</th>\n", 55 " <th>Gender</th>\n", 56 " <th>Ethnicity</th>\n", 57 " <th>ParentalEducation</th>\n", 58 " <th>StudyTimeWeekly</th>\n", 59 " <th>Absences</th>\n", 60 " <th>Tutoring</th>\n", 61 " <th>ParentalSupport</th>\n", 62 " <th>Extracurricular</th>\n", 63 " <th>Sports</th>\n", 64 " <th>Music</th>\n", 65 " <th>Volunteering</th>\n", 66 " <th>GPA</th>\n", 67 " <th>GradeClass</th>\n", 68 " </tr>\n", 69 " </thead>\n", 70 " <tbody>\n", 71 " <tr>\n", 72 " <th>0</th>\n", 73 " <td>1001</td>\n", 74 " <td>17</td>\n", 75 " <td>1</td>\n", 76 " <td>0</td>\n", 77 " <td>2</td>\n", 78 " <td>19.833723</td>\n", 79 " <td>7</td>\n", 80 " <td>1</td>\n", 81 " <td>2</td>\n", 82 " <td>0</td>\n", 83 " <td>0</td>\n", 84 " <td>1</td>\n", 85 " <td>0</td>\n", 86 " <td>2.929196</td>\n", 87 " <td>2.0</td>\n", 88 " </tr>\n", 89 " </tbody>\n", 90 "</table>\n", 91 "</div>" 92 ], 93 "text/plain": [ 94 " StudentID Age Gender Ethnicity ParentalEducation StudyTimeWeekly \\\n", 95 "0 1001 17 1 0 2 19.833723 \n", 96 "\n", 97 " Absences Tutoring ParentalSupport Extracurricular Sports Music \\\n", 98 "0 7 1 2 0 0 1 \n", 99 "\n", 100 " Volunteering GPA GradeClass \n", 101 "0 0 2.929196 2.0 " 102 ] 103 }, 104 "execution_count": 120, 105 "metadata": {}, 106 "output_type": "execute_result" 107 } 108 ], 109 "source": [ 110 "import pandas as pd\n", 111 "\n", 112 "df = pd.read_csv('../datasets/studentPerformance/StudentPerformance.csv')\n", 113 "\n", 114 "df.head(1)" 115 ] 116 }, 117 { 118 "cell_type": "code", 119 "execution_count": 121, 120 "metadata": {}, 121 "outputs": [ 122 { 123 "data": { 124 "text/html": [ 125 "<div>\n", 126 "<style scoped>\n", 127 " .dataframe tbody tr th:only-of-type {\n", 128 " vertical-align: middle;\n", 129 " }\n", 130 "\n", 131 " .dataframe tbody tr th {\n", 132 " vertical-align: top;\n", 133 " }\n", 134 "\n", 135 " .dataframe thead th {\n", 136 " text-align: right;\n", 137 " }\n", 138 "</style>\n", 139 "<table border=\"1\" class=\"dataframe\">\n", 140 " <thead>\n", 141 " <tr style=\"text-align: right;\">\n", 142 " <th></th>\n", 143 " <th>Age</th>\n", 144 " <th>Gender</th>\n", 145 " <th>Ethnicity</th>\n", 146 " <th>ParentalEducation</th>\n", 147 " <th>StudyTimeWeekly</th>\n", 148 " <th>Absences</th>\n", 149 " <th>Tutoring</th>\n", 150 " <th>ParentalSupport</th>\n", 151 " <th>Extracurricular</th>\n", 152 " <th>Sports</th>\n", 153 " <th>Music</th>\n", 154 " <th>Volunteering</th>\n", 155 " </tr>\n", 156 " </thead>\n", 157 " <tbody>\n", 158 " <tr>\n", 159 " <th>0</th>\n", 160 " <td>17</td>\n", 161 " <td>1</td>\n", 162 " <td>0</td>\n", 163 " <td>2</td>\n", 164 " <td>19.833723</td>\n", 165 " <td>7</td>\n", 166 " <td>1</td>\n", 167 " <td>2</td>\n", 168 " <td>0</td>\n", 169 " <td>0</td>\n", 170 " <td>1</td>\n", 171 " <td>0</td>\n", 172 " </tr>\n", 173 " </tbody>\n", 174 "</table>\n", 175 "</div>" 176 ], 177 "text/plain": [ 178 " Age Gender Ethnicity ParentalEducation StudyTimeWeekly Absences \\\n", 179 "0 17 1 0 2 19.833723 7 \n", 180 "\n", 181 " Tutoring ParentalSupport Extracurricular Sports Music Volunteering \n", 182 "0 1 2 0 0 1 0 " 183 ] 184 }, 185 "execution_count": 121, 186 "metadata": {}, 187 "output_type": "execute_result" 188 } 189 ], 190 "source": [ 191 "X = df.drop(columns=['GPA', 'GradeClass', 'StudentID'], axis=1)\n", 192 "y = df['GradeClass']\n", 193 "\n", 194 "X.head(1)" 195 ] 196 }, 197 { 198 "cell_type": "code", 199 "execution_count": 122, 200 "metadata": {}, 201 "outputs": [], 202 "source": [ 203 "from sklearn.preprocessing import StandardScaler\n", 204 "\n", 205 "sclr = StandardScaler()\n", 206 "X = sclr.fit_transform(X)" 207 ] 208 }, 209 { 210 "cell_type": "code", 211 "execution_count": 123, 212 "metadata": {}, 213 "outputs": [], 214 "source": [ 215 "from sklearn.model_selection import train_test_split\n", 216 "\n", 217 "X_train, X_test, y_train, y_test = train_test_split(X,y)\n", 218 "X_val, X_test, y_val, y_test = train_test_split(X_train,y_train, test_size=.5)" 219 ] 220 }, 221 { 222 "cell_type": "code", 223 "execution_count": 124, 224 "metadata": {}, 225 "outputs": [ 226 { 227 "data": { 228 "text/html": [ 229 "<style>#sk-container-id-47 {\n", 230 " /* Definition of color scheme common for light and dark mode */\n", 231 " --sklearn-color-text: black;\n", 232 " --sklearn-color-line: gray;\n", 233 " /* Definition of color scheme for unfitted estimators */\n", 234 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 235 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 236 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 237 " --sklearn-color-unfitted-level-3: chocolate;\n", 238 " /* Definition of color scheme for fitted estimators */\n", 239 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 240 " --sklearn-color-fitted-level-1: #d4ebff;\n", 241 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 242 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 243 "\n", 244 " /* Specific color for light theme */\n", 245 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 246 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 247 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 248 " --sklearn-color-icon: #696969;\n", 249 "\n", 250 " @media (prefers-color-scheme: dark) {\n", 251 " /* Redefinition of color scheme for dark theme */\n", 252 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 253 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 254 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 255 " --sklearn-color-icon: #878787;\n", 256 " }\n", 257 "}\n", 258 "\n", 259 "#sk-container-id-47 {\n", 260 " color: var(--sklearn-color-text);\n", 261 "}\n", 262 "\n", 263 "#sk-container-id-47 pre {\n", 264 " padding: 0;\n", 265 "}\n", 266 "\n", 267 "#sk-container-id-47 input.sk-hidden--visually {\n", 268 " border: 0;\n", 269 " clip: rect(1px 1px 1px 1px);\n", 270 " clip: rect(1px, 1px, 1px, 1px);\n", 271 " height: 1px;\n", 272 " margin: -1px;\n", 273 " overflow: hidden;\n", 274 " padding: 0;\n", 275 " position: absolute;\n", 276 " width: 1px;\n", 277 "}\n", 278 "\n", 279 "#sk-container-id-47 div.sk-dashed-wrapped {\n", 280 " border: 1px dashed var(--sklearn-color-line);\n", 281 " margin: 0 0.4em 0.5em 0.4em;\n", 282 " box-sizing: border-box;\n", 283 " padding-bottom: 0.4em;\n", 284 " background-color: var(--sklearn-color-background);\n", 285 "}\n", 286 "\n", 287 "#sk-container-id-47 div.sk-container {\n", 288 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 289 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 290 " so we also need the `!important` here to be able to override the\n", 291 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 292 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 293 " display: inline-block !important;\n", 294 " position: relative;\n", 295 "}\n", 296 "\n", 297 "#sk-container-id-47 div.sk-text-repr-fallback {\n", 298 " display: none;\n", 299 "}\n", 300 "\n", 301 "div.sk-parallel-item,\n", 302 "div.sk-serial,\n", 303 "div.sk-item {\n", 304 " /* draw centered vertical line to link estimators */\n", 305 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 306 " background-size: 2px 100%;\n", 307 " background-repeat: no-repeat;\n", 308 " background-position: center center;\n", 309 "}\n", 310 "\n", 311 "/* Parallel-specific style estimator block */\n", 312 "\n", 313 "#sk-container-id-47 div.sk-parallel-item::after {\n", 314 " content: \"\";\n", 315 " width: 100%;\n", 316 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 317 " flex-grow: 1;\n", 318 "}\n", 319 "\n", 320 "#sk-container-id-47 div.sk-parallel {\n", 321 " display: flex;\n", 322 " align-items: stretch;\n", 323 " justify-content: center;\n", 324 " background-color: var(--sklearn-color-background);\n", 325 " position: relative;\n", 326 "}\n", 327 "\n", 328 "#sk-container-id-47 div.sk-parallel-item {\n", 329 " display: flex;\n", 330 " flex-direction: column;\n", 331 "}\n", 332 "\n", 333 "#sk-container-id-47 div.sk-parallel-item:first-child::after {\n", 334 " align-self: flex-end;\n", 335 " width: 50%;\n", 336 "}\n", 337 "\n", 338 "#sk-container-id-47 div.sk-parallel-item:last-child::after {\n", 339 " align-self: flex-start;\n", 340 " width: 50%;\n", 341 "}\n", 342 "\n", 343 "#sk-container-id-47 div.sk-parallel-item:only-child::after {\n", 344 " width: 0;\n", 345 "}\n", 346 "\n", 347 "/* Serial-specific style estimator block */\n", 348 "\n", 349 "#sk-container-id-47 div.sk-serial {\n", 350 " display: flex;\n", 351 " flex-direction: column;\n", 352 " align-items: center;\n", 353 " background-color: var(--sklearn-color-background);\n", 354 " padding-right: 1em;\n", 355 " padding-left: 1em;\n", 356 "}\n", 357 "\n", 358 "\n", 359 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 360 "clickable and can be expanded/collapsed.\n", 361 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 362 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 363 "*/\n", 364 "\n", 365 "/* Pipeline and ColumnTransformer style (default) */\n", 366 "\n", 367 "#sk-container-id-47 div.sk-toggleable {\n", 368 " /* Default theme specific background. It is overwritten whether we have a\n", 369 " specific estimator or a Pipeline/ColumnTransformer */\n", 370 " background-color: var(--sklearn-color-background);\n", 371 "}\n", 372 "\n", 373 "/* Toggleable label */\n", 374 "#sk-container-id-47 label.sk-toggleable__label {\n", 375 " cursor: pointer;\n", 376 " display: block;\n", 377 " width: 100%;\n", 378 " margin-bottom: 0;\n", 379 " padding: 0.5em;\n", 380 " box-sizing: border-box;\n", 381 " text-align: center;\n", 382 "}\n", 383 "\n", 384 "#sk-container-id-47 label.sk-toggleable__label-arrow:before {\n", 385 " /* Arrow on the left of the label */\n", 386 " content: \"▸\";\n", 387 " float: left;\n", 388 " margin-right: 0.25em;\n", 389 " color: var(--sklearn-color-icon);\n", 390 "}\n", 391 "\n", 392 "#sk-container-id-47 label.sk-toggleable__label-arrow:hover:before {\n", 393 " color: var(--sklearn-color-text);\n", 394 "}\n", 395 "\n", 396 "/* Toggleable content - dropdown */\n", 397 "\n", 398 "#sk-container-id-47 div.sk-toggleable__content {\n", 399 " max-height: 0;\n", 400 " max-width: 0;\n", 401 " overflow: hidden;\n", 402 " text-align: left;\n", 403 " /* unfitted */\n", 404 " background-color: var(--sklearn-color-unfitted-level-0);\n", 405 "}\n", 406 "\n", 407 "#sk-container-id-47 div.sk-toggleable__content.fitted {\n", 408 " /* fitted */\n", 409 " background-color: var(--sklearn-color-fitted-level-0);\n", 410 "}\n", 411 "\n", 412 "#sk-container-id-47 div.sk-toggleable__content pre {\n", 413 " margin: 0.2em;\n", 414 " border-radius: 0.25em;\n", 415 " color: var(--sklearn-color-text);\n", 416 " /* unfitted */\n", 417 " background-color: var(--sklearn-color-unfitted-level-0);\n", 418 "}\n", 419 "\n", 420 "#sk-container-id-47 div.sk-toggleable__content.fitted pre {\n", 421 " /* unfitted */\n", 422 " background-color: var(--sklearn-color-fitted-level-0);\n", 423 "}\n", 424 "\n", 425 "#sk-container-id-47 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 426 " /* Expand drop-down */\n", 427 " max-height: 200px;\n", 428 " max-width: 100%;\n", 429 " overflow: auto;\n", 430 "}\n", 431 "\n", 432 "#sk-container-id-47 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 433 " content: \"▾\";\n", 434 "}\n", 435 "\n", 436 "/* Pipeline/ColumnTransformer-specific style */\n", 437 "\n", 438 "#sk-container-id-47 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 439 " color: var(--sklearn-color-text);\n", 440 " background-color: var(--sklearn-color-unfitted-level-2);\n", 441 "}\n", 442 "\n", 443 "#sk-container-id-47 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 444 " background-color: var(--sklearn-color-fitted-level-2);\n", 445 "}\n", 446 "\n", 447 "/* Estimator-specific style */\n", 448 "\n", 449 "/* Colorize estimator box */\n", 450 "#sk-container-id-47 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 451 " /* unfitted */\n", 452 " background-color: var(--sklearn-color-unfitted-level-2);\n", 453 "}\n", 454 "\n", 455 "#sk-container-id-47 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 456 " /* fitted */\n", 457 " background-color: var(--sklearn-color-fitted-level-2);\n", 458 "}\n", 459 "\n", 460 "#sk-container-id-47 div.sk-label label.sk-toggleable__label,\n", 461 "#sk-container-id-47 div.sk-label label {\n", 462 " /* The background is the default theme color */\n", 463 " color: var(--sklearn-color-text-on-default-background);\n", 464 "}\n", 465 "\n", 466 "/* On hover, darken the color of the background */\n", 467 "#sk-container-id-47 div.sk-label:hover label.sk-toggleable__label {\n", 468 " color: var(--sklearn-color-text);\n", 469 " background-color: var(--sklearn-color-unfitted-level-2);\n", 470 "}\n", 471 "\n", 472 "/* Label box, darken color on hover, fitted */\n", 473 "#sk-container-id-47 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 474 " color: var(--sklearn-color-text);\n", 475 " background-color: var(--sklearn-color-fitted-level-2);\n", 476 "}\n", 477 "\n", 478 "/* Estimator label */\n", 479 "\n", 480 "#sk-container-id-47 div.sk-label label {\n", 481 " font-family: monospace;\n", 482 " font-weight: bold;\n", 483 " display: inline-block;\n", 484 " line-height: 1.2em;\n", 485 "}\n", 486 "\n", 487 "#sk-container-id-47 div.sk-label-container {\n", 488 " text-align: center;\n", 489 "}\n", 490 "\n", 491 "/* Estimator-specific */\n", 492 "#sk-container-id-47 div.sk-estimator {\n", 493 " font-family: monospace;\n", 494 " border: 1px dotted var(--sklearn-color-border-box);\n", 495 " border-radius: 0.25em;\n", 496 " box-sizing: border-box;\n", 497 " margin-bottom: 0.5em;\n", 498 " /* unfitted */\n", 499 " background-color: var(--sklearn-color-unfitted-level-0);\n", 500 "}\n", 501 "\n", 502 "#sk-container-id-47 div.sk-estimator.fitted {\n", 503 " /* fitted */\n", 504 " background-color: var(--sklearn-color-fitted-level-0);\n", 505 "}\n", 506 "\n", 507 "/* on hover */\n", 508 "#sk-container-id-47 div.sk-estimator:hover {\n", 509 " /* unfitted */\n", 510 " background-color: var(--sklearn-color-unfitted-level-2);\n", 511 "}\n", 512 "\n", 513 "#sk-container-id-47 div.sk-estimator.fitted:hover {\n", 514 " /* fitted */\n", 515 " background-color: var(--sklearn-color-fitted-level-2);\n", 516 "}\n", 517 "\n", 518 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 519 "\n", 520 "/* Common style for \"i\" and \"?\" */\n", 521 "\n", 522 ".sk-estimator-doc-link,\n", 523 "a:link.sk-estimator-doc-link,\n", 524 "a:visited.sk-estimator-doc-link {\n", 525 " float: right;\n", 526 " font-size: smaller;\n", 527 " line-height: 1em;\n", 528 " font-family: monospace;\n", 529 " background-color: var(--sklearn-color-background);\n", 530 " border-radius: 1em;\n", 531 " height: 1em;\n", 532 " width: 1em;\n", 533 " text-decoration: none !important;\n", 534 " margin-left: 1ex;\n", 535 " /* unfitted */\n", 536 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 537 " color: var(--sklearn-color-unfitted-level-1);\n", 538 "}\n", 539 "\n", 540 ".sk-estimator-doc-link.fitted,\n", 541 "a:link.sk-estimator-doc-link.fitted,\n", 542 "a:visited.sk-estimator-doc-link.fitted {\n", 543 " /* fitted */\n", 544 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 545 " color: var(--sklearn-color-fitted-level-1);\n", 546 "}\n", 547 "\n", 548 "/* On hover */\n", 549 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 550 ".sk-estimator-doc-link:hover,\n", 551 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 552 ".sk-estimator-doc-link:hover {\n", 553 " /* unfitted */\n", 554 " background-color: var(--sklearn-color-unfitted-level-3);\n", 555 " color: var(--sklearn-color-background);\n", 556 " text-decoration: none;\n", 557 "}\n", 558 "\n", 559 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 560 ".sk-estimator-doc-link.fitted:hover,\n", 561 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 562 ".sk-estimator-doc-link.fitted:hover {\n", 563 " /* fitted */\n", 564 " background-color: var(--sklearn-color-fitted-level-3);\n", 565 " color: var(--sklearn-color-background);\n", 566 " text-decoration: none;\n", 567 "}\n", 568 "\n", 569 "/* Span, style for the box shown on hovering the info icon */\n", 570 ".sk-estimator-doc-link span {\n", 571 " display: none;\n", 572 " z-index: 9999;\n", 573 " position: relative;\n", 574 " font-weight: normal;\n", 575 " right: .2ex;\n", 576 " padding: .5ex;\n", 577 " margin: .5ex;\n", 578 " width: min-content;\n", 579 " min-width: 20ex;\n", 580 " max-width: 50ex;\n", 581 " color: var(--sklearn-color-text);\n", 582 " box-shadow: 2pt 2pt 4pt #999;\n", 583 " /* unfitted */\n", 584 " background: var(--sklearn-color-unfitted-level-0);\n", 585 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 586 "}\n", 587 "\n", 588 ".sk-estimator-doc-link.fitted span {\n", 589 " /* fitted */\n", 590 " background: var(--sklearn-color-fitted-level-0);\n", 591 " border: var(--sklearn-color-fitted-level-3);\n", 592 "}\n", 593 "\n", 594 ".sk-estimator-doc-link:hover span {\n", 595 " display: block;\n", 596 "}\n", 597 "\n", 598 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 599 "\n", 600 "#sk-container-id-47 a.estimator_doc_link {\n", 601 " float: right;\n", 602 " font-size: 1rem;\n", 603 " line-height: 1em;\n", 604 " font-family: monospace;\n", 605 " background-color: var(--sklearn-color-background);\n", 606 " border-radius: 1rem;\n", 607 " height: 1rem;\n", 608 " width: 1rem;\n", 609 " text-decoration: none;\n", 610 " /* unfitted */\n", 611 " color: var(--sklearn-color-unfitted-level-1);\n", 612 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 613 "}\n", 614 "\n", 615 "#sk-container-id-47 a.estimator_doc_link.fitted {\n", 616 " /* fitted */\n", 617 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 618 " color: var(--sklearn-color-fitted-level-1);\n", 619 "}\n", 620 "\n", 621 "/* On hover */\n", 622 "#sk-container-id-47 a.estimator_doc_link:hover {\n", 623 " /* unfitted */\n", 624 " background-color: var(--sklearn-color-unfitted-level-3);\n", 625 " color: var(--sklearn-color-background);\n", 626 " text-decoration: none;\n", 627 "}\n", 628 "\n", 629 "#sk-container-id-47 a.estimator_doc_link.fitted:hover {\n", 630 " /* fitted */\n", 631 " background-color: var(--sklearn-color-fitted-level-3);\n", 632 "}\n", 633 "</style><div id=\"sk-container-id-47\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-47\" type=\"checkbox\" checked><label for=\"sk-estimator-id-47\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LinearRegression<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>" 634 ], 635 "text/plain": [ 636 "LinearRegression()" 637 ] 638 }, 639 "execution_count": 124, 640 "metadata": {}, 641 "output_type": "execute_result" 642 } 643 ], 644 "source": [ 645 "from sklearn.linear_model import LinearRegression\n", 646 "\n", 647 "lin_reg = LinearRegression()\n", 648 "\n", 649 "lin_reg.fit(X_train,y_train)" 650 ] 651 }, 652 { 653 "cell_type": "code", 654 "execution_count": 125, 655 "metadata": {}, 656 "outputs": [ 657 { 658 "data": { 659 "text/plain": [ 660 "0.5898980915568777" 661 ] 662 }, 663 "execution_count": 125, 664 "metadata": {}, 665 "output_type": "execute_result" 666 } 667 ], 668 "source": [ 669 "from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error\n", 670 "\n", 671 "y_pred = lin_reg.predict(X_test)\n", 672 "mean_absolute_error(y_pred=y_pred, y_true=y_test)" 673 ] 674 }, 675 { 676 "cell_type": "code", 677 "execution_count": 126, 678 "metadata": {}, 679 "outputs": [ 680 { 681 "data": { 682 "text/html": [ 683 "<style>#sk-container-id-48 {\n", 684 " /* Definition of color scheme common for light and dark mode */\n", 685 " --sklearn-color-text: black;\n", 686 " --sklearn-color-line: gray;\n", 687 " /* Definition of color scheme for unfitted estimators */\n", 688 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 689 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 690 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 691 " --sklearn-color-unfitted-level-3: chocolate;\n", 692 " /* Definition of color scheme for fitted estimators */\n", 693 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 694 " --sklearn-color-fitted-level-1: #d4ebff;\n", 695 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 696 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 697 "\n", 698 " /* Specific color for light theme */\n", 699 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 700 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 701 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 702 " --sklearn-color-icon: #696969;\n", 703 "\n", 704 " @media (prefers-color-scheme: dark) {\n", 705 " /* Redefinition of color scheme for dark theme */\n", 706 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 707 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 708 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 709 " --sklearn-color-icon: #878787;\n", 710 " }\n", 711 "}\n", 712 "\n", 713 "#sk-container-id-48 {\n", 714 " color: var(--sklearn-color-text);\n", 715 "}\n", 716 "\n", 717 "#sk-container-id-48 pre {\n", 718 " padding: 0;\n", 719 "}\n", 720 "\n", 721 "#sk-container-id-48 input.sk-hidden--visually {\n", 722 " border: 0;\n", 723 " clip: rect(1px 1px 1px 1px);\n", 724 " clip: rect(1px, 1px, 1px, 1px);\n", 725 " height: 1px;\n", 726 " margin: -1px;\n", 727 " overflow: hidden;\n", 728 " padding: 0;\n", 729 " position: absolute;\n", 730 " width: 1px;\n", 731 "}\n", 732 "\n", 733 "#sk-container-id-48 div.sk-dashed-wrapped {\n", 734 " border: 1px dashed var(--sklearn-color-line);\n", 735 " margin: 0 0.4em 0.5em 0.4em;\n", 736 " box-sizing: border-box;\n", 737 " padding-bottom: 0.4em;\n", 738 " background-color: var(--sklearn-color-background);\n", 739 "}\n", 740 "\n", 741 "#sk-container-id-48 div.sk-container {\n", 742 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 743 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 744 " so we also need the `!important` here to be able to override the\n", 745 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 746 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 747 " display: inline-block !important;\n", 748 " position: relative;\n", 749 "}\n", 750 "\n", 751 "#sk-container-id-48 div.sk-text-repr-fallback {\n", 752 " display: none;\n", 753 "}\n", 754 "\n", 755 "div.sk-parallel-item,\n", 756 "div.sk-serial,\n", 757 "div.sk-item {\n", 758 " /* draw centered vertical line to link estimators */\n", 759 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 760 " background-size: 2px 100%;\n", 761 " background-repeat: no-repeat;\n", 762 " background-position: center center;\n", 763 "}\n", 764 "\n", 765 "/* Parallel-specific style estimator block */\n", 766 "\n", 767 "#sk-container-id-48 div.sk-parallel-item::after {\n", 768 " content: \"\";\n", 769 " width: 100%;\n", 770 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 771 " flex-grow: 1;\n", 772 "}\n", 773 "\n", 774 "#sk-container-id-48 div.sk-parallel {\n", 775 " display: flex;\n", 776 " align-items: stretch;\n", 777 " justify-content: center;\n", 778 " background-color: var(--sklearn-color-background);\n", 779 " position: relative;\n", 780 "}\n", 781 "\n", 782 "#sk-container-id-48 div.sk-parallel-item {\n", 783 " display: flex;\n", 784 " flex-direction: column;\n", 785 "}\n", 786 "\n", 787 "#sk-container-id-48 div.sk-parallel-item:first-child::after {\n", 788 " align-self: flex-end;\n", 789 " width: 50%;\n", 790 "}\n", 791 "\n", 792 "#sk-container-id-48 div.sk-parallel-item:last-child::after {\n", 793 " align-self: flex-start;\n", 794 " width: 50%;\n", 795 "}\n", 796 "\n", 797 "#sk-container-id-48 div.sk-parallel-item:only-child::after {\n", 798 " width: 0;\n", 799 "}\n", 800 "\n", 801 "/* Serial-specific style estimator block */\n", 802 "\n", 803 "#sk-container-id-48 div.sk-serial {\n", 804 " display: flex;\n", 805 " flex-direction: column;\n", 806 " align-items: center;\n", 807 " background-color: var(--sklearn-color-background);\n", 808 " padding-right: 1em;\n", 809 " padding-left: 1em;\n", 810 "}\n", 811 "\n", 812 "\n", 813 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 814 "clickable and can be expanded/collapsed.\n", 815 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 816 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 817 "*/\n", 818 "\n", 819 "/* Pipeline and ColumnTransformer style (default) */\n", 820 "\n", 821 "#sk-container-id-48 div.sk-toggleable {\n", 822 " /* Default theme specific background. It is overwritten whether we have a\n", 823 " specific estimator or a Pipeline/ColumnTransformer */\n", 824 " background-color: var(--sklearn-color-background);\n", 825 "}\n", 826 "\n", 827 "/* Toggleable label */\n", 828 "#sk-container-id-48 label.sk-toggleable__label {\n", 829 " cursor: pointer;\n", 830 " display: block;\n", 831 " width: 100%;\n", 832 " margin-bottom: 0;\n", 833 " padding: 0.5em;\n", 834 " box-sizing: border-box;\n", 835 " text-align: center;\n", 836 "}\n", 837 "\n", 838 "#sk-container-id-48 label.sk-toggleable__label-arrow:before {\n", 839 " /* Arrow on the left of the label */\n", 840 " content: \"▸\";\n", 841 " float: left;\n", 842 " margin-right: 0.25em;\n", 843 " color: var(--sklearn-color-icon);\n", 844 "}\n", 845 "\n", 846 "#sk-container-id-48 label.sk-toggleable__label-arrow:hover:before {\n", 847 " color: var(--sklearn-color-text);\n", 848 "}\n", 849 "\n", 850 "/* Toggleable content - dropdown */\n", 851 "\n", 852 "#sk-container-id-48 div.sk-toggleable__content {\n", 853 " max-height: 0;\n", 854 " max-width: 0;\n", 855 " overflow: hidden;\n", 856 " text-align: left;\n", 857 " /* unfitted */\n", 858 " background-color: var(--sklearn-color-unfitted-level-0);\n", 859 "}\n", 860 "\n", 861 "#sk-container-id-48 div.sk-toggleable__content.fitted {\n", 862 " /* fitted */\n", 863 " background-color: var(--sklearn-color-fitted-level-0);\n", 864 "}\n", 865 "\n", 866 "#sk-container-id-48 div.sk-toggleable__content pre {\n", 867 " margin: 0.2em;\n", 868 " border-radius: 0.25em;\n", 869 " color: var(--sklearn-color-text);\n", 870 " /* unfitted */\n", 871 " background-color: var(--sklearn-color-unfitted-level-0);\n", 872 "}\n", 873 "\n", 874 "#sk-container-id-48 div.sk-toggleable__content.fitted pre {\n", 875 " /* unfitted */\n", 876 " background-color: var(--sklearn-color-fitted-level-0);\n", 877 "}\n", 878 "\n", 879 "#sk-container-id-48 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 880 " /* Expand drop-down */\n", 881 " max-height: 200px;\n", 882 " max-width: 100%;\n", 883 " overflow: auto;\n", 884 "}\n", 885 "\n", 886 "#sk-container-id-48 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 887 " content: \"▾\";\n", 888 "}\n", 889 "\n", 890 "/* Pipeline/ColumnTransformer-specific style */\n", 891 "\n", 892 "#sk-container-id-48 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 893 " color: var(--sklearn-color-text);\n", 894 " background-color: var(--sklearn-color-unfitted-level-2);\n", 895 "}\n", 896 "\n", 897 "#sk-container-id-48 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 898 " background-color: var(--sklearn-color-fitted-level-2);\n", 899 "}\n", 900 "\n", 901 "/* Estimator-specific style */\n", 902 "\n", 903 "/* Colorize estimator box */\n", 904 "#sk-container-id-48 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 905 " /* unfitted */\n", 906 " background-color: var(--sklearn-color-unfitted-level-2);\n", 907 "}\n", 908 "\n", 909 "#sk-container-id-48 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 910 " /* fitted */\n", 911 " background-color: var(--sklearn-color-fitted-level-2);\n", 912 "}\n", 913 "\n", 914 "#sk-container-id-48 div.sk-label label.sk-toggleable__label,\n", 915 "#sk-container-id-48 div.sk-label label {\n", 916 " /* The background is the default theme color */\n", 917 " color: var(--sklearn-color-text-on-default-background);\n", 918 "}\n", 919 "\n", 920 "/* On hover, darken the color of the background */\n", 921 "#sk-container-id-48 div.sk-label:hover label.sk-toggleable__label {\n", 922 " color: var(--sklearn-color-text);\n", 923 " background-color: var(--sklearn-color-unfitted-level-2);\n", 924 "}\n", 925 "\n", 926 "/* Label box, darken color on hover, fitted */\n", 927 "#sk-container-id-48 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 928 " color: var(--sklearn-color-text);\n", 929 " background-color: var(--sklearn-color-fitted-level-2);\n", 930 "}\n", 931 "\n", 932 "/* Estimator label */\n", 933 "\n", 934 "#sk-container-id-48 div.sk-label label {\n", 935 " font-family: monospace;\n", 936 " font-weight: bold;\n", 937 " display: inline-block;\n", 938 " line-height: 1.2em;\n", 939 "}\n", 940 "\n", 941 "#sk-container-id-48 div.sk-label-container {\n", 942 " text-align: center;\n", 943 "}\n", 944 "\n", 945 "/* Estimator-specific */\n", 946 "#sk-container-id-48 div.sk-estimator {\n", 947 " font-family: monospace;\n", 948 " border: 1px dotted var(--sklearn-color-border-box);\n", 949 " border-radius: 0.25em;\n", 950 " box-sizing: border-box;\n", 951 " margin-bottom: 0.5em;\n", 952 " /* unfitted */\n", 953 " background-color: var(--sklearn-color-unfitted-level-0);\n", 954 "}\n", 955 "\n", 956 "#sk-container-id-48 div.sk-estimator.fitted {\n", 957 " /* fitted */\n", 958 " background-color: var(--sklearn-color-fitted-level-0);\n", 959 "}\n", 960 "\n", 961 "/* on hover */\n", 962 "#sk-container-id-48 div.sk-estimator:hover {\n", 963 " /* unfitted */\n", 964 " background-color: var(--sklearn-color-unfitted-level-2);\n", 965 "}\n", 966 "\n", 967 "#sk-container-id-48 div.sk-estimator.fitted:hover {\n", 968 " /* fitted */\n", 969 " background-color: var(--sklearn-color-fitted-level-2);\n", 970 "}\n", 971 "\n", 972 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 973 "\n", 974 "/* Common style for \"i\" and \"?\" */\n", 975 "\n", 976 ".sk-estimator-doc-link,\n", 977 "a:link.sk-estimator-doc-link,\n", 978 "a:visited.sk-estimator-doc-link {\n", 979 " float: right;\n", 980 " font-size: smaller;\n", 981 " line-height: 1em;\n", 982 " font-family: monospace;\n", 983 " background-color: var(--sklearn-color-background);\n", 984 " border-radius: 1em;\n", 985 " height: 1em;\n", 986 " width: 1em;\n", 987 " text-decoration: none !important;\n", 988 " margin-left: 1ex;\n", 989 " /* unfitted */\n", 990 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 991 " color: var(--sklearn-color-unfitted-level-1);\n", 992 "}\n", 993 "\n", 994 ".sk-estimator-doc-link.fitted,\n", 995 "a:link.sk-estimator-doc-link.fitted,\n", 996 "a:visited.sk-estimator-doc-link.fitted {\n", 997 " /* fitted */\n", 998 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 999 " color: var(--sklearn-color-fitted-level-1);\n", 1000 "}\n", 1001 "\n", 1002 "/* On hover */\n", 1003 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 1004 ".sk-estimator-doc-link:hover,\n", 1005 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 1006 ".sk-estimator-doc-link:hover {\n", 1007 " /* unfitted */\n", 1008 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1009 " color: var(--sklearn-color-background);\n", 1010 " text-decoration: none;\n", 1011 "}\n", 1012 "\n", 1013 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 1014 ".sk-estimator-doc-link.fitted:hover,\n", 1015 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 1016 ".sk-estimator-doc-link.fitted:hover {\n", 1017 " /* fitted */\n", 1018 " background-color: var(--sklearn-color-fitted-level-3);\n", 1019 " color: var(--sklearn-color-background);\n", 1020 " text-decoration: none;\n", 1021 "}\n", 1022 "\n", 1023 "/* Span, style for the box shown on hovering the info icon */\n", 1024 ".sk-estimator-doc-link span {\n", 1025 " display: none;\n", 1026 " z-index: 9999;\n", 1027 " position: relative;\n", 1028 " font-weight: normal;\n", 1029 " right: .2ex;\n", 1030 " padding: .5ex;\n", 1031 " margin: .5ex;\n", 1032 " width: min-content;\n", 1033 " min-width: 20ex;\n", 1034 " max-width: 50ex;\n", 1035 " color: var(--sklearn-color-text);\n", 1036 " box-shadow: 2pt 2pt 4pt #999;\n", 1037 " /* unfitted */\n", 1038 " background: var(--sklearn-color-unfitted-level-0);\n", 1039 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 1040 "}\n", 1041 "\n", 1042 ".sk-estimator-doc-link.fitted span {\n", 1043 " /* fitted */\n", 1044 " background: var(--sklearn-color-fitted-level-0);\n", 1045 " border: var(--sklearn-color-fitted-level-3);\n", 1046 "}\n", 1047 "\n", 1048 ".sk-estimator-doc-link:hover span {\n", 1049 " display: block;\n", 1050 "}\n", 1051 "\n", 1052 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 1053 "\n", 1054 "#sk-container-id-48 a.estimator_doc_link {\n", 1055 " float: right;\n", 1056 " font-size: 1rem;\n", 1057 " line-height: 1em;\n", 1058 " font-family: monospace;\n", 1059 " background-color: var(--sklearn-color-background);\n", 1060 " border-radius: 1rem;\n", 1061 " height: 1rem;\n", 1062 " width: 1rem;\n", 1063 " text-decoration: none;\n", 1064 " /* unfitted */\n", 1065 " color: var(--sklearn-color-unfitted-level-1);\n", 1066 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1067 "}\n", 1068 "\n", 1069 "#sk-container-id-48 a.estimator_doc_link.fitted {\n", 1070 " /* fitted */\n", 1071 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1072 " color: var(--sklearn-color-fitted-level-1);\n", 1073 "}\n", 1074 "\n", 1075 "/* On hover */\n", 1076 "#sk-container-id-48 a.estimator_doc_link:hover {\n", 1077 " /* unfitted */\n", 1078 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1079 " color: var(--sklearn-color-background);\n", 1080 " text-decoration: none;\n", 1081 "}\n", 1082 "\n", 1083 "#sk-container-id-48 a.estimator_doc_link.fitted:hover {\n", 1084 " /* fitted */\n", 1085 " background-color: var(--sklearn-color-fitted-level-3);\n", 1086 "}\n", 1087 "</style><div id=\"sk-container-id-48\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>RandomForestRegressor(max_depth=30)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-48\" type=\"checkbox\" checked><label for=\"sk-estimator-id-48\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> RandomForestRegressor<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestRegressor.html\">?<span>Documentation for RandomForestRegressor</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestRegressor(max_depth=30)</pre></div> </div></div></div></div>" 1088 ], 1089 "text/plain": [ 1090 "RandomForestRegressor(max_depth=30)" 1091 ] 1092 }, 1093 "execution_count": 126, 1094 "metadata": {}, 1095 "output_type": "execute_result" 1096 } 1097 ], 1098 "source": [ 1099 "from sklearn.ensemble import RandomForestRegressor\n", 1100 "\n", 1101 "rnd_reg = RandomForestRegressor(max_depth=30, n_estimators=100)\n", 1102 "\n", 1103 "rnd_reg.fit(X_train,y_train)" 1104 ] 1105 }, 1106 { 1107 "cell_type": "code", 1108 "execution_count": 127, 1109 "metadata": {}, 1110 "outputs": [ 1111 { 1112 "data": { 1113 "text/plain": [ 1114 "0.18502787068004456" 1115 ] 1116 }, 1117 "execution_count": 127, 1118 "metadata": {}, 1119 "output_type": "execute_result" 1120 } 1121 ], 1122 "source": [ 1123 "y_pred = rnd_reg.predict(X_test)\n", 1124 "mean_absolute_error(y_pred=y_pred, y_true=y_test)" 1125 ] 1126 }, 1127 { 1128 "cell_type": "code", 1129 "execution_count": 128, 1130 "metadata": {}, 1131 "outputs": [ 1132 { 1133 "data": { 1134 "text/html": [ 1135 "<style>#sk-container-id-49 {\n", 1136 " /* Definition of color scheme common for light and dark mode */\n", 1137 " --sklearn-color-text: black;\n", 1138 " --sklearn-color-line: gray;\n", 1139 " /* Definition of color scheme for unfitted estimators */\n", 1140 " --sklearn-color-unfitted-level-0: #fff5e6;\n", 1141 " --sklearn-color-unfitted-level-1: #f6e4d2;\n", 1142 " --sklearn-color-unfitted-level-2: #ffe0b3;\n", 1143 " --sklearn-color-unfitted-level-3: chocolate;\n", 1144 " /* Definition of color scheme for fitted estimators */\n", 1145 " --sklearn-color-fitted-level-0: #f0f8ff;\n", 1146 " --sklearn-color-fitted-level-1: #d4ebff;\n", 1147 " --sklearn-color-fitted-level-2: #b3dbfd;\n", 1148 " --sklearn-color-fitted-level-3: cornflowerblue;\n", 1149 "\n", 1150 " /* Specific color for light theme */\n", 1151 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1152 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n", 1153 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n", 1154 " --sklearn-color-icon: #696969;\n", 1155 "\n", 1156 " @media (prefers-color-scheme: dark) {\n", 1157 " /* Redefinition of color scheme for dark theme */\n", 1158 " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1159 " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n", 1160 " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n", 1161 " --sklearn-color-icon: #878787;\n", 1162 " }\n", 1163 "}\n", 1164 "\n", 1165 "#sk-container-id-49 {\n", 1166 " color: var(--sklearn-color-text);\n", 1167 "}\n", 1168 "\n", 1169 "#sk-container-id-49 pre {\n", 1170 " padding: 0;\n", 1171 "}\n", 1172 "\n", 1173 "#sk-container-id-49 input.sk-hidden--visually {\n", 1174 " border: 0;\n", 1175 " clip: rect(1px 1px 1px 1px);\n", 1176 " clip: rect(1px, 1px, 1px, 1px);\n", 1177 " height: 1px;\n", 1178 " margin: -1px;\n", 1179 " overflow: hidden;\n", 1180 " padding: 0;\n", 1181 " position: absolute;\n", 1182 " width: 1px;\n", 1183 "}\n", 1184 "\n", 1185 "#sk-container-id-49 div.sk-dashed-wrapped {\n", 1186 " border: 1px dashed var(--sklearn-color-line);\n", 1187 " margin: 0 0.4em 0.5em 0.4em;\n", 1188 " box-sizing: border-box;\n", 1189 " padding-bottom: 0.4em;\n", 1190 " background-color: var(--sklearn-color-background);\n", 1191 "}\n", 1192 "\n", 1193 "#sk-container-id-49 div.sk-container {\n", 1194 " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n", 1195 " but bootstrap.min.css set `[hidden] { display: none !important; }`\n", 1196 " so we also need the `!important` here to be able to override the\n", 1197 " default hidden behavior on the sphinx rendered scikit-learn.org.\n", 1198 " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n", 1199 " display: inline-block !important;\n", 1200 " position: relative;\n", 1201 "}\n", 1202 "\n", 1203 "#sk-container-id-49 div.sk-text-repr-fallback {\n", 1204 " display: none;\n", 1205 "}\n", 1206 "\n", 1207 "div.sk-parallel-item,\n", 1208 "div.sk-serial,\n", 1209 "div.sk-item {\n", 1210 " /* draw centered vertical line to link estimators */\n", 1211 " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n", 1212 " background-size: 2px 100%;\n", 1213 " background-repeat: no-repeat;\n", 1214 " background-position: center center;\n", 1215 "}\n", 1216 "\n", 1217 "/* Parallel-specific style estimator block */\n", 1218 "\n", 1219 "#sk-container-id-49 div.sk-parallel-item::after {\n", 1220 " content: \"\";\n", 1221 " width: 100%;\n", 1222 " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n", 1223 " flex-grow: 1;\n", 1224 "}\n", 1225 "\n", 1226 "#sk-container-id-49 div.sk-parallel {\n", 1227 " display: flex;\n", 1228 " align-items: stretch;\n", 1229 " justify-content: center;\n", 1230 " background-color: var(--sklearn-color-background);\n", 1231 " position: relative;\n", 1232 "}\n", 1233 "\n", 1234 "#sk-container-id-49 div.sk-parallel-item {\n", 1235 " display: flex;\n", 1236 " flex-direction: column;\n", 1237 "}\n", 1238 "\n", 1239 "#sk-container-id-49 div.sk-parallel-item:first-child::after {\n", 1240 " align-self: flex-end;\n", 1241 " width: 50%;\n", 1242 "}\n", 1243 "\n", 1244 "#sk-container-id-49 div.sk-parallel-item:last-child::after {\n", 1245 " align-self: flex-start;\n", 1246 " width: 50%;\n", 1247 "}\n", 1248 "\n", 1249 "#sk-container-id-49 div.sk-parallel-item:only-child::after {\n", 1250 " width: 0;\n", 1251 "}\n", 1252 "\n", 1253 "/* Serial-specific style estimator block */\n", 1254 "\n", 1255 "#sk-container-id-49 div.sk-serial {\n", 1256 " display: flex;\n", 1257 " flex-direction: column;\n", 1258 " align-items: center;\n", 1259 " background-color: var(--sklearn-color-background);\n", 1260 " padding-right: 1em;\n", 1261 " padding-left: 1em;\n", 1262 "}\n", 1263 "\n", 1264 "\n", 1265 "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n", 1266 "clickable and can be expanded/collapsed.\n", 1267 "- Pipeline and ColumnTransformer use this feature and define the default style\n", 1268 "- Estimators will overwrite some part of the style using the `sk-estimator` class\n", 1269 "*/\n", 1270 "\n", 1271 "/* Pipeline and ColumnTransformer style (default) */\n", 1272 "\n", 1273 "#sk-container-id-49 div.sk-toggleable {\n", 1274 " /* Default theme specific background. It is overwritten whether we have a\n", 1275 " specific estimator or a Pipeline/ColumnTransformer */\n", 1276 " background-color: var(--sklearn-color-background);\n", 1277 "}\n", 1278 "\n", 1279 "/* Toggleable label */\n", 1280 "#sk-container-id-49 label.sk-toggleable__label {\n", 1281 " cursor: pointer;\n", 1282 " display: block;\n", 1283 " width: 100%;\n", 1284 " margin-bottom: 0;\n", 1285 " padding: 0.5em;\n", 1286 " box-sizing: border-box;\n", 1287 " text-align: center;\n", 1288 "}\n", 1289 "\n", 1290 "#sk-container-id-49 label.sk-toggleable__label-arrow:before {\n", 1291 " /* Arrow on the left of the label */\n", 1292 " content: \"▸\";\n", 1293 " float: left;\n", 1294 " margin-right: 0.25em;\n", 1295 " color: var(--sklearn-color-icon);\n", 1296 "}\n", 1297 "\n", 1298 "#sk-container-id-49 label.sk-toggleable__label-arrow:hover:before {\n", 1299 " color: var(--sklearn-color-text);\n", 1300 "}\n", 1301 "\n", 1302 "/* Toggleable content - dropdown */\n", 1303 "\n", 1304 "#sk-container-id-49 div.sk-toggleable__content {\n", 1305 " max-height: 0;\n", 1306 " max-width: 0;\n", 1307 " overflow: hidden;\n", 1308 " text-align: left;\n", 1309 " /* unfitted */\n", 1310 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1311 "}\n", 1312 "\n", 1313 "#sk-container-id-49 div.sk-toggleable__content.fitted {\n", 1314 " /* fitted */\n", 1315 " background-color: var(--sklearn-color-fitted-level-0);\n", 1316 "}\n", 1317 "\n", 1318 "#sk-container-id-49 div.sk-toggleable__content pre {\n", 1319 " margin: 0.2em;\n", 1320 " border-radius: 0.25em;\n", 1321 " color: var(--sklearn-color-text);\n", 1322 " /* unfitted */\n", 1323 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1324 "}\n", 1325 "\n", 1326 "#sk-container-id-49 div.sk-toggleable__content.fitted pre {\n", 1327 " /* unfitted */\n", 1328 " background-color: var(--sklearn-color-fitted-level-0);\n", 1329 "}\n", 1330 "\n", 1331 "#sk-container-id-49 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n", 1332 " /* Expand drop-down */\n", 1333 " max-height: 200px;\n", 1334 " max-width: 100%;\n", 1335 " overflow: auto;\n", 1336 "}\n", 1337 "\n", 1338 "#sk-container-id-49 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n", 1339 " content: \"▾\";\n", 1340 "}\n", 1341 "\n", 1342 "/* Pipeline/ColumnTransformer-specific style */\n", 1343 "\n", 1344 "#sk-container-id-49 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1345 " color: var(--sklearn-color-text);\n", 1346 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1347 "}\n", 1348 "\n", 1349 "#sk-container-id-49 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1350 " background-color: var(--sklearn-color-fitted-level-2);\n", 1351 "}\n", 1352 "\n", 1353 "/* Estimator-specific style */\n", 1354 "\n", 1355 "/* Colorize estimator box */\n", 1356 "#sk-container-id-49 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1357 " /* unfitted */\n", 1358 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1359 "}\n", 1360 "\n", 1361 "#sk-container-id-49 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n", 1362 " /* fitted */\n", 1363 " background-color: var(--sklearn-color-fitted-level-2);\n", 1364 "}\n", 1365 "\n", 1366 "#sk-container-id-49 div.sk-label label.sk-toggleable__label,\n", 1367 "#sk-container-id-49 div.sk-label label {\n", 1368 " /* The background is the default theme color */\n", 1369 " color: var(--sklearn-color-text-on-default-background);\n", 1370 "}\n", 1371 "\n", 1372 "/* On hover, darken the color of the background */\n", 1373 "#sk-container-id-49 div.sk-label:hover label.sk-toggleable__label {\n", 1374 " color: var(--sklearn-color-text);\n", 1375 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1376 "}\n", 1377 "\n", 1378 "/* Label box, darken color on hover, fitted */\n", 1379 "#sk-container-id-49 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n", 1380 " color: var(--sklearn-color-text);\n", 1381 " background-color: var(--sklearn-color-fitted-level-2);\n", 1382 "}\n", 1383 "\n", 1384 "/* Estimator label */\n", 1385 "\n", 1386 "#sk-container-id-49 div.sk-label label {\n", 1387 " font-family: monospace;\n", 1388 " font-weight: bold;\n", 1389 " display: inline-block;\n", 1390 " line-height: 1.2em;\n", 1391 "}\n", 1392 "\n", 1393 "#sk-container-id-49 div.sk-label-container {\n", 1394 " text-align: center;\n", 1395 "}\n", 1396 "\n", 1397 "/* Estimator-specific */\n", 1398 "#sk-container-id-49 div.sk-estimator {\n", 1399 " font-family: monospace;\n", 1400 " border: 1px dotted var(--sklearn-color-border-box);\n", 1401 " border-radius: 0.25em;\n", 1402 " box-sizing: border-box;\n", 1403 " margin-bottom: 0.5em;\n", 1404 " /* unfitted */\n", 1405 " background-color: var(--sklearn-color-unfitted-level-0);\n", 1406 "}\n", 1407 "\n", 1408 "#sk-container-id-49 div.sk-estimator.fitted {\n", 1409 " /* fitted */\n", 1410 " background-color: var(--sklearn-color-fitted-level-0);\n", 1411 "}\n", 1412 "\n", 1413 "/* on hover */\n", 1414 "#sk-container-id-49 div.sk-estimator:hover {\n", 1415 " /* unfitted */\n", 1416 " background-color: var(--sklearn-color-unfitted-level-2);\n", 1417 "}\n", 1418 "\n", 1419 "#sk-container-id-49 div.sk-estimator.fitted:hover {\n", 1420 " /* fitted */\n", 1421 " background-color: var(--sklearn-color-fitted-level-2);\n", 1422 "}\n", 1423 "\n", 1424 "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n", 1425 "\n", 1426 "/* Common style for \"i\" and \"?\" */\n", 1427 "\n", 1428 ".sk-estimator-doc-link,\n", 1429 "a:link.sk-estimator-doc-link,\n", 1430 "a:visited.sk-estimator-doc-link {\n", 1431 " float: right;\n", 1432 " font-size: smaller;\n", 1433 " line-height: 1em;\n", 1434 " font-family: monospace;\n", 1435 " background-color: var(--sklearn-color-background);\n", 1436 " border-radius: 1em;\n", 1437 " height: 1em;\n", 1438 " width: 1em;\n", 1439 " text-decoration: none !important;\n", 1440 " margin-left: 1ex;\n", 1441 " /* unfitted */\n", 1442 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1443 " color: var(--sklearn-color-unfitted-level-1);\n", 1444 "}\n", 1445 "\n", 1446 ".sk-estimator-doc-link.fitted,\n", 1447 "a:link.sk-estimator-doc-link.fitted,\n", 1448 "a:visited.sk-estimator-doc-link.fitted {\n", 1449 " /* fitted */\n", 1450 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1451 " color: var(--sklearn-color-fitted-level-1);\n", 1452 "}\n", 1453 "\n", 1454 "/* On hover */\n", 1455 "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n", 1456 ".sk-estimator-doc-link:hover,\n", 1457 "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n", 1458 ".sk-estimator-doc-link:hover {\n", 1459 " /* unfitted */\n", 1460 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1461 " color: var(--sklearn-color-background);\n", 1462 " text-decoration: none;\n", 1463 "}\n", 1464 "\n", 1465 "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n", 1466 ".sk-estimator-doc-link.fitted:hover,\n", 1467 "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n", 1468 ".sk-estimator-doc-link.fitted:hover {\n", 1469 " /* fitted */\n", 1470 " background-color: var(--sklearn-color-fitted-level-3);\n", 1471 " color: var(--sklearn-color-background);\n", 1472 " text-decoration: none;\n", 1473 "}\n", 1474 "\n", 1475 "/* Span, style for the box shown on hovering the info icon */\n", 1476 ".sk-estimator-doc-link span {\n", 1477 " display: none;\n", 1478 " z-index: 9999;\n", 1479 " position: relative;\n", 1480 " font-weight: normal;\n", 1481 " right: .2ex;\n", 1482 " padding: .5ex;\n", 1483 " margin: .5ex;\n", 1484 " width: min-content;\n", 1485 " min-width: 20ex;\n", 1486 " max-width: 50ex;\n", 1487 " color: var(--sklearn-color-text);\n", 1488 " box-shadow: 2pt 2pt 4pt #999;\n", 1489 " /* unfitted */\n", 1490 " background: var(--sklearn-color-unfitted-level-0);\n", 1491 " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n", 1492 "}\n", 1493 "\n", 1494 ".sk-estimator-doc-link.fitted span {\n", 1495 " /* fitted */\n", 1496 " background: var(--sklearn-color-fitted-level-0);\n", 1497 " border: var(--sklearn-color-fitted-level-3);\n", 1498 "}\n", 1499 "\n", 1500 ".sk-estimator-doc-link:hover span {\n", 1501 " display: block;\n", 1502 "}\n", 1503 "\n", 1504 "/* \"?\"-specific style due to the `<a>` HTML tag */\n", 1505 "\n", 1506 "#sk-container-id-49 a.estimator_doc_link {\n", 1507 " float: right;\n", 1508 " font-size: 1rem;\n", 1509 " line-height: 1em;\n", 1510 " font-family: monospace;\n", 1511 " background-color: var(--sklearn-color-background);\n", 1512 " border-radius: 1rem;\n", 1513 " height: 1rem;\n", 1514 " width: 1rem;\n", 1515 " text-decoration: none;\n", 1516 " /* unfitted */\n", 1517 " color: var(--sklearn-color-unfitted-level-1);\n", 1518 " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n", 1519 "}\n", 1520 "\n", 1521 "#sk-container-id-49 a.estimator_doc_link.fitted {\n", 1522 " /* fitted */\n", 1523 " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n", 1524 " color: var(--sklearn-color-fitted-level-1);\n", 1525 "}\n", 1526 "\n", 1527 "/* On hover */\n", 1528 "#sk-container-id-49 a.estimator_doc_link:hover {\n", 1529 " /* unfitted */\n", 1530 " background-color: var(--sklearn-color-unfitted-level-3);\n", 1531 " color: var(--sklearn-color-background);\n", 1532 " text-decoration: none;\n", 1533 "}\n", 1534 "\n", 1535 "#sk-container-id-49 a.estimator_doc_link.fitted:hover {\n", 1536 " /* fitted */\n", 1537 " background-color: var(--sklearn-color-fitted-level-3);\n", 1538 "}\n", 1539 "</style><div id=\"sk-container-id-49\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearSVR(max_iter=1000000)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-49\" type=\"checkbox\" checked><label for=\"sk-estimator-id-49\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\"> LinearSVR<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.5/modules/generated/sklearn.svm.LinearSVR.html\">?<span>Documentation for LinearSVR</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LinearSVR(max_iter=1000000)</pre></div> </div></div></div></div>" 1540 ], 1541 "text/plain": [ 1542 "LinearSVR(max_iter=1000000)" 1543 ] 1544 }, 1545 "execution_count": 128, 1546 "metadata": {}, 1547 "output_type": "execute_result" 1548 } 1549 ], 1550 "source": [ 1551 "from sklearn.svm import LinearSVR\n", 1552 "\n", 1553 "svr = LinearSVR(max_iter=1000000)\n", 1554 "\n", 1555 "svr.fit(X_train,y_train)" 1556 ] 1557 }, 1558 { 1559 "cell_type": "code", 1560 "execution_count": 139, 1561 "metadata": {}, 1562 "outputs": [ 1563 { 1564 "data": { 1565 "text/plain": [ 1566 "0.5856977527312485" 1567 ] 1568 }, 1569 "execution_count": 139, 1570 "metadata": {}, 1571 "output_type": "execute_result" 1572 } 1573 ], 1574 "source": [ 1575 "y_pred = svr.predict(X_test)\n", 1576 "mean_absolute_error(y_pred=y_pred, y_true=y_test)" 1577 ] 1578 }, 1579 { 1580 "cell_type": "markdown", 1581 "metadata": {}, 1582 "source": [ 1583 "Let's Check Out Each of These Models (My Bet's On The Random Forest)" 1584 ] 1585 }, 1586 { 1587 "cell_type": "code", 1588 "execution_count": 143, 1589 "metadata": {}, 1590 "outputs": [ 1591 { 1592 "data": { 1593 "text/plain": [ 1594 "18.431351756224238" 1595 ] 1596 }, 1597 "execution_count": 143, 1598 "metadata": {}, 1599 "output_type": "execute_result" 1600 } 1601 ], 1602 "source": [ 1603 "y_pred = svr.predict(X_val)\n", 1604 "mean_absolute_error(y_pred=y_pred, y_true=y_val) / y_val.mean() * 100" 1605 ] 1606 }, 1607 { 1608 "cell_type": "code", 1609 "execution_count": 144, 1610 "metadata": {}, 1611 "outputs": [ 1612 { 1613 "data": { 1614 "text/plain": [ 1615 "6.027964205816556" 1616 ] 1617 }, 1618 "execution_count": 144, 1619 "metadata": {}, 1620 "output_type": "execute_result" 1621 } 1622 ], 1623 "source": [ 1624 "y_pred = rnd_reg.predict(X_val)\n", 1625 "mean_absolute_error(y_pred=y_pred, y_true=y_val) / y_val.mean() * 100" 1626 ] 1627 }, 1628 { 1629 "cell_type": "code", 1630 "execution_count": 145, 1631 "metadata": {}, 1632 "outputs": [ 1633 { 1634 "data": { 1635 "text/plain": [ 1636 "18.610917749737553" 1637 ] 1638 }, 1639 "execution_count": 145, 1640 "metadata": {}, 1641 "output_type": "execute_result" 1642 } 1643 ], 1644 "source": [ 1645 "y_pred = lin_reg.predict(X_val)\n", 1646 "mean_absolute_error(y_pred=y_pred, y_true=y_val) / y_val.mean() * 100" 1647 ] 1648 } 1649 ], 1650 "metadata": { 1651 "kernelspec": { 1652 "display_name": ".venv", 1653 "language": "python", 1654 "name": "python3" 1655 }, 1656 "language_info": { 1657 "codemirror_mode": { 1658 "name": "ipython", 1659 "version": 3 1660 }, 1661 "file_extension": ".py", 1662 "mimetype": "text/x-python", 1663 "name": "python", 1664 "nbconvert_exporter": "python", 1665 "pygments_lexer": "ipython3", 1666 "version": "3.11.2" 1667 } 1668 }, 1669 "nbformat": 4, 1670 "nbformat_minor": 2 1671 }