machinelearning

Machine learning code
git clone git://git.laack.co/machinelearning.git
Log | Files | Refs

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\">&nbsp;&nbsp;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\">&nbsp;&nbsp;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\">&nbsp;&nbsp;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 }