Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save alonsosilvaallende/e986dcdf7d0759a81c215244f3769022 to your computer and use it in GitHub Desktop.

Select an option

Save alonsosilvaallende/e986dcdf7d0759a81c215244f3769022 to your computer and use it in GitHub Desktop.
interpretable_ml_xai_regression_2026-06.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.2"
},
"colab": {
"provenance": [],
"include_colab_link": true
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/alonsosilvaallende/e986dcdf7d0759a81c215244f3769022/interpretable_ml_xai_regression_2026-06.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "VCV1UZu-NTgr"
},
"source": [
"# Regression for Iris dataset with 'sepal width' as the target"
]
},
{
"cell_type": "code",
"metadata": {
"id": "vVdIF-vCOYWB"
},
"source": [
"import sklearn\n",
"\n",
"assert sklearn.__version__ >= \"1.0\", \"Please upgrade scikit-learn with %pip install --quiet --upgrade scikit-learn>=1.0\""
],
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "9ypieMc3NQ-M"
},
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
],
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "-atdbdkNNQ-i"
},
"source": [
"from sklearn.datasets import load_iris\n",
"\n",
"iris = load_iris()"
],
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"scrolled": false,
"id": "o-LwD0hQNQ-4",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "bd2dd31c-b3c0-4f0d-c178-037c73dabfa2"
},
"source": [
"print(iris.DESCR)"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
".. _iris_dataset:\n",
"\n",
"Iris plants dataset\n",
"--------------------\n",
"\n",
"**Data Set Characteristics:**\n",
"\n",
":Number of Instances: 150 (50 in each of three classes)\n",
":Number of Attributes: 4 numeric, predictive attributes and the class\n",
":Attribute Information:\n",
" - sepal length in cm\n",
" - sepal width in cm\n",
" - petal length in cm\n",
" - petal width in cm\n",
" - class:\n",
" - Iris-Setosa\n",
" - Iris-Versicolour\n",
" - Iris-Virginica\n",
"\n",
":Summary Statistics:\n",
"\n",
"============== ==== ==== ======= ===== ====================\n",
" Min Max Mean SD Class Correlation\n",
"============== ==== ==== ======= ===== ====================\n",
"sepal length: 4.3 7.9 5.84 0.83 0.7826\n",
"sepal width: 2.0 4.4 3.05 0.43 -0.4194\n",
"petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)\n",
"petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)\n",
"============== ==== ==== ======= ===== ====================\n",
"\n",
":Missing Attribute Values: None\n",
":Class Distribution: 33.3% for each of 3 classes.\n",
":Creator: R.A. Fisher\n",
":Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
":Date: July, 1988\n",
"\n",
"The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\n",
"from Fisher's paper. Note that it's the same as in R, but not as in the UCI\n",
"Machine Learning Repository, which has two wrong data points.\n",
"\n",
"This is perhaps the best known database to be found in the\n",
"pattern recognition literature. Fisher's paper is a classic in the field and\n",
"is referenced frequently to this day. (See Duda & Hart, for example.) The\n",
"data set contains 3 classes of 50 instances each, where each class refers to a\n",
"type of iris plant. One class is linearly separable from the other 2; the\n",
"latter are NOT linearly separable from each other.\n",
"\n",
".. dropdown:: References\n",
"\n",
" - Fisher, R.A. \"The use of multiple measurements in taxonomic problems\"\n",
" Annual Eugenics, 7, Part II, 179-188 (1936); also in \"Contributions to\n",
" Mathematical Statistics\" (John Wiley, NY, 1950).\n",
" - Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.\n",
" (Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.\n",
" - Dasarathy, B.V. (1980) \"Nosing Around the Neighborhood: A New System\n",
" Structure and Classification Rule for Recognition in Partially Exposed\n",
" Environments\". IEEE Transactions on Pattern Analysis and Machine\n",
" Intelligence, Vol. PAMI-2, No. 1, 67-71.\n",
" - Gates, G.W. (1972) \"The Reduced Nearest Neighbor Rule\". IEEE Transactions\n",
" on Information Theory, May 1972, 431-433.\n",
" - See also: 1988 MLC Proceedings, 54-64. Cheeseman et al\"s AUTOCLASS II\n",
" conceptual clustering system finds 3 classes in the data.\n",
" - Many, many more ...\n",
"\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SAFiuZC9NQ_J",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "ae82dcef-640f-4a49-e12a-0de78a4b3862"
},
"source": [
"df_raw = pd.DataFrame(iris.data, columns=iris.feature_names)\n",
"df_raw.head()"
],
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)\n",
"0 5.1 3.5 1.4 0.2\n",
"1 4.9 3.0 1.4 0.2\n",
"2 4.7 3.2 1.3 0.2\n",
"3 4.6 3.1 1.5 0.2\n",
"4 5.0 3.6 1.4 0.2"
],
"text/html": [
"\n",
" <div id=\"df-b46d3658-ae19-49d9-b947-cf35ceb8354b\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal length (cm)</th>\n",
" <th>sepal width (cm)</th>\n",
" <th>petal length (cm)</th>\n",
" <th>petal width (cm)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.1</td>\n",
" <td>3.5</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.9</td>\n",
" <td>3.0</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.7</td>\n",
" <td>3.2</td>\n",
" <td>1.3</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.6</td>\n",
" <td>3.1</td>\n",
" <td>1.5</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5.0</td>\n",
" <td>3.6</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b46d3658-ae19-49d9-b947-cf35ceb8354b')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b46d3658-ae19-49d9-b947-cf35ceb8354b button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b46d3658-ae19-49d9-b947-cf35ceb8354b');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "df_raw",
"summary": "{\n \"name\": \"df_raw\",\n \"rows\": 150,\n \"fields\": [\n {\n \"column\": \"sepal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8280661279778629,\n \"min\": 4.3,\n \"max\": 7.9,\n \"num_unique_values\": 35,\n \"samples\": [\n 6.2,\n 4.5,\n 5.6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sepal width (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.435866284936698,\n \"min\": 2.0,\n \"max\": 4.4,\n \"num_unique_values\": 23,\n \"samples\": [\n 2.3,\n 4.0,\n 3.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.7652982332594667,\n \"min\": 1.0,\n \"max\": 6.9,\n \"num_unique_values\": 43,\n \"samples\": [\n 6.7,\n 3.8,\n 3.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal width (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7622376689603465,\n \"min\": 0.1,\n \"max\": 2.5,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.2,\n 1.2,\n 1.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "e0HkoLYYNQ_f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "239d3c50-321e-4c93-9b44-3704807525dd"
},
"source": [
"df_raw['class'] = iris.target\n",
"df_raw.head()"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) \\\n",
"0 5.1 3.5 1.4 0.2 \n",
"1 4.9 3.0 1.4 0.2 \n",
"2 4.7 3.2 1.3 0.2 \n",
"3 4.6 3.1 1.5 0.2 \n",
"4 5.0 3.6 1.4 0.2 \n",
"\n",
" class \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 "
],
"text/html": [
"\n",
" <div id=\"df-1578320a-350f-4ca0-9d5e-e6f156dc5dca\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal length (cm)</th>\n",
" <th>sepal width (cm)</th>\n",
" <th>petal length (cm)</th>\n",
" <th>petal width (cm)</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.1</td>\n",
" <td>3.5</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.9</td>\n",
" <td>3.0</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.7</td>\n",
" <td>3.2</td>\n",
" <td>1.3</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.6</td>\n",
" <td>3.1</td>\n",
" <td>1.5</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5.0</td>\n",
" <td>3.6</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1578320a-350f-4ca0-9d5e-e6f156dc5dca')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-1578320a-350f-4ca0-9d5e-e6f156dc5dca button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-1578320a-350f-4ca0-9d5e-e6f156dc5dca');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "df_raw",
"summary": "{\n \"name\": \"df_raw\",\n \"rows\": 150,\n \"fields\": [\n {\n \"column\": \"sepal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8280661279778629,\n \"min\": 4.3,\n \"max\": 7.9,\n \"num_unique_values\": 35,\n \"samples\": [\n 6.2,\n 4.5,\n 5.6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"sepal width (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.435866284936698,\n \"min\": 2.0,\n \"max\": 4.4,\n \"num_unique_values\": 23,\n \"samples\": [\n 2.3,\n 4.0,\n 3.5\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.7652982332594667,\n \"min\": 1.0,\n \"max\": 6.9,\n \"num_unique_values\": 43,\n \"samples\": [\n 6.7,\n 3.8,\n 3.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal width (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7622376689603465,\n \"min\": 0.1,\n \"max\": 2.5,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.2,\n 1.2,\n 1.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"class\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 2,\n \"num_unique_values\": 3,\n \"samples\": [\n 0,\n 1,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZAthwy2MNQ_3",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "e3330042-9ed3-435a-d9ba-437fded0e871"
},
"source": [
"df_raw['class'].unique()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0, 1, 2])"
]
},
"metadata": {},
"execution_count": 7
}
]
},
{
"cell_type": "code",
"source": [
"iris.target_names.tolist()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YhbXfF8XhdMe",
"outputId": "c9e75b3c-352a-4f0f-bace-dd401923ab9e"
},
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['setosa', 'versicolor', 'virginica']"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"source": [
"X = df_raw.drop(columns='sepal width (cm)')\n",
"X.head()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "_I57WI_pSh6f",
"outputId": "32b9c7ef-a8f3-4fef-bdbf-4ffbfbebad43"
},
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" sepal length (cm) petal length (cm) petal width (cm) class\n",
"0 5.1 1.4 0.2 0\n",
"1 4.9 1.4 0.2 0\n",
"2 4.7 1.3 0.2 0\n",
"3 4.6 1.5 0.2 0\n",
"4 5.0 1.4 0.2 0"
],
"text/html": [
"\n",
" <div id=\"df-f54b2eb1-af30-4ced-98b0-382dfc37864c\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal length (cm)</th>\n",
" <th>petal length (cm)</th>\n",
" <th>petal width (cm)</th>\n",
" <th>class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5.1</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.9</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.7</td>\n",
" <td>1.3</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.6</td>\n",
" <td>1.5</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5.0</td>\n",
" <td>1.4</td>\n",
" <td>0.2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f54b2eb1-af30-4ced-98b0-382dfc37864c')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-f54b2eb1-af30-4ced-98b0-382dfc37864c button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-f54b2eb1-af30-4ced-98b0-382dfc37864c');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "X",
"summary": "{\n \"name\": \"X\",\n \"rows\": 150,\n \"fields\": [\n {\n \"column\": \"sepal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8280661279778629,\n \"min\": 4.3,\n \"max\": 7.9,\n \"num_unique_values\": 35,\n \"samples\": [\n 6.2,\n 4.5,\n 5.6\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal length (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.7652982332594667,\n \"min\": 1.0,\n \"max\": 6.9,\n \"num_unique_values\": 43,\n \"samples\": [\n 6.7,\n 3.8,\n 3.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"petal width (cm)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.7622376689603465,\n \"min\": 0.1,\n \"max\": 2.5,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.2,\n 1.2,\n 1.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"class\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0,\n \"min\": 0,\n \"max\": 2,\n \"num_unique_values\": 3,\n \"samples\": [\n 0,\n 1,\n 2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"source": [
"y = df_raw['sepal width (cm)']\n",
"y[:5]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 240
},
"id": "Y319buLBSnuf",
"outputId": "82361ed1-a15f-4082-c612-c4e91f02f3a9"
},
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0 3.5\n",
"1 3.0\n",
"2 3.2\n",
"3 3.1\n",
"4 3.6\n",
"Name: sepal width (cm), dtype: float64"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>sepal width (cm)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3.6</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div><br><label><b>dtype:</b> float64</label>"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "d0MYo8ixNRAA"
},
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(\n",
" X, y, random_state=42)"
],
"execution_count": 11,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "nY28r0Z6NRAK",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "3ef6fa12-20e5-4c1d-f5da-36dc3eafd226"
},
"source": [
"X_train.columns.to_list()"
],
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['sepal length (cm)', 'petal length (cm)', 'petal width (cm)', 'class']"
]
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "TSYfiyqPNRAT",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 36
},
"outputId": "bab604d2-a231-4ab9-b3ad-db2523ab52a5"
},
"source": [
"y_train.name"
],
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'sepal width (cm)'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "_Nn9wkJINRAj"
},
"source": [
"categorical_columns = ['class']\n",
"numerical_columns = ['sepal length (cm)', 'petal length (cm)', 'petal width (cm)']"
],
"execution_count": 14,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "SHNFVFSCNRAt"
},
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import OneHotEncoder\n",
"\n",
"categorical_pipe = Pipeline([\n",
" ('onehot', OneHotEncoder())\n",
"])"
],
"execution_count": 15,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(X_train['class']).head(5).style.hide(axis=\"index\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "Svs5Vu0IClPD",
"outputId": "ce1b4cd1-8211-430a-f70f-d9b668ae363c"
},
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<pandas.io.formats.style.Styler at 0x79b40eea2720>"
],
"text/html": [
"<style type=\"text/css\">\n",
"</style>\n",
"<table id=\"T_026f6\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th id=\"T_026f6_level0_col0\" class=\"col_heading level0 col0\" >class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td id=\"T_026f6_row0_col0\" class=\"data row0 col0\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_026f6_row1_col0\" class=\"data row1 col0\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_026f6_row2_col0\" class=\"data row2 col0\" >2</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_026f6_row3_col0\" class=\"data row3 col0\" >1</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_026f6_row4_col0\" class=\"data row4 col0\" >1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "code",
"source": [
"encoder = OneHotEncoder(sparse_output=False)\n",
"X = encoder.fit_transform(pd.DataFrame(X_train['class']))"
],
"metadata": {
"id": "RHVVQuInDJ9H"
},
"execution_count": 17,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Scikit-Learn loves Pandas: https://colab.research.google.com/gist/ageron/d4e0d3caed542b8a4285ef433f650a8d/scikit-learn-pandas.ipynb#scrollTo=9jZTcN0OC8ZP"
],
"metadata": {
"id": "N70viswyma4H"
}
},
{
"cell_type": "code",
"source": [
"encoder.feature_names_in_.tolist()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "qbJssFuqDQ6b",
"outputId": "2805706b-0880-47fa-b6d7-74119bd62d6e"
},
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['class']"
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"source": [
"encoder.get_feature_names_out().tolist()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "y-MD3HyjDYqW",
"outputId": "f6c6a021-505f-46fa-d6b8-ce678f371aeb"
},
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['class_0', 'class_1', 'class_2']"
]
},
"metadata": {},
"execution_count": 19
}
]
},
{
"cell_type": "code",
"source": [
"X_train_df = pd.DataFrame(X, columns=encoder.get_feature_names_out(), index=X_train.index)\n",
"formatdict = {col: '{:.0f}' for col in X_train_df.columns.values}\n",
"X_train_df[:5].style.hide(axis=\"index\").format(formatdict)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "XrVNezgkUavU",
"outputId": "1ae5288c-9243-4a62-90fe-0123d2be530b"
},
"execution_count": 20,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<pandas.io.formats.style.Styler at 0x79b40e60b6e0>"
],
"text/html": [
"<style type=\"text/css\">\n",
"</style>\n",
"<table id=\"T_039ee\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th id=\"T_039ee_level0_col0\" class=\"col_heading level0 col0\" >class_0</th>\n",
" <th id=\"T_039ee_level0_col1\" class=\"col_heading level0 col1\" >class_1</th>\n",
" <th id=\"T_039ee_level0_col2\" class=\"col_heading level0 col2\" >class_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td id=\"T_039ee_row0_col0\" class=\"data row0 col0\" >1</td>\n",
" <td id=\"T_039ee_row0_col1\" class=\"data row0 col1\" >0</td>\n",
" <td id=\"T_039ee_row0_col2\" class=\"data row0 col2\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_039ee_row1_col0\" class=\"data row1 col0\" >1</td>\n",
" <td id=\"T_039ee_row1_col1\" class=\"data row1 col1\" >0</td>\n",
" <td id=\"T_039ee_row1_col2\" class=\"data row1 col2\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_039ee_row2_col0\" class=\"data row2 col0\" >0</td>\n",
" <td id=\"T_039ee_row2_col1\" class=\"data row2 col1\" >0</td>\n",
" <td id=\"T_039ee_row2_col2\" class=\"data row2 col2\" >1</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_039ee_row3_col0\" class=\"data row3 col0\" >0</td>\n",
" <td id=\"T_039ee_row3_col1\" class=\"data row3 col1\" >1</td>\n",
" <td id=\"T_039ee_row3_col2\" class=\"data row3 col2\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_039ee_row4_col0\" class=\"data row4 col0\" >0</td>\n",
" <td id=\"T_039ee_row4_col1\" class=\"data row4 col1\" >1</td>\n",
" <td id=\"T_039ee_row4_col2\" class=\"data row4 col2\" >0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "DZIhlDdKNRA8"
},
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"numerical_pipe = Pipeline([\n",
" ('scaler', StandardScaler())\n",
"])"
],
"execution_count": 21,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "RwfiM8TKNRBD"
},
"source": [
"from sklearn.compose import ColumnTransformer\n",
"\n",
"preprocessing = ColumnTransformer(\n",
" [('cat', categorical_pipe, categorical_columns),\n",
" ('num', numerical_pipe, numerical_columns)]\n",
")"
],
"execution_count": 22,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## KNeighborsRegressor"
],
"metadata": {
"id": "DV5JV17b3jQz"
}
},
{
"cell_type": "code",
"source": [
"from sklearn.neighbors import KNeighborsRegressor\n",
"\n",
"knn = Pipeline([\n",
" ('preprocess', preprocessing),\n",
" ('knn', KNeighborsRegressor(n_neighbors=1))\n",
"])"
],
"metadata": {
"id": "q90veasnBAGS"
},
"execution_count": 23,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from sklearn import set_config\n",
"\n",
"set_config(display='diagram')\n",
"\n",
"knn.fit(X_train, y_train)"
],
"metadata": {
"id": "adLj3uqmBT1X",
"outputId": "c52ed269-40b3-42fc-f5ba-e44986a81b10",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 245
}
},
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Pipeline(steps=[('preprocess',\n",
" ColumnTransformer(transformers=[('cat',\n",
" Pipeline(steps=[('onehot',\n",
" OneHotEncoder())]),\n",
" ['class']),\n",
" ('num',\n",
" Pipeline(steps=[('scaler',\n",
" StandardScaler())]),\n",
" ['sepal length (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)'])])),\n",
" ('knn', KNeighborsRegressor(n_neighbors=1))])"
],
"text/html": [
"<style>#sk-container-id-1 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-1 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-1 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-1 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-1 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-1 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-1 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-1 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-1 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-1 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;knn&#x27;, KNeighborsRegressor(n_neighbors=1))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>Pipeline</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.pipeline.Pipeline.html\">?<span>Documentation for Pipeline</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;knn&#x27;, KNeighborsRegressor(n_neighbors=1))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>preprocess: ColumnTransformer</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocess: ColumnTransformer</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;, OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;, StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>cat</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;class&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" ><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>OneHotEncoder</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OneHotEncoder.html\">?<span>Documentation for OneHotEncoder</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>OneHotEncoder()</pre></div> </div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>num</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>KNeighborsRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.neighbors.KNeighborsRegressor.html\">?<span>Documentation for KNeighborsRegressor</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>KNeighborsRegressor(n_neighbors=1)</pre></div> </div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import median_absolute_error\n",
"\n",
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, knn.predict(X_train)),\n",
" median_absolute_error(y_test, knn.predict(X_test))))"
],
"metadata": {
"id": "CmbjfLmABb1F",
"outputId": "31099083-a186-4409-d66f-5f81515260f8",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 25,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.000, test error: 0.300\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"def scatter_predictions(y_pred, y_true):\n",
" plt.figure(figsize=(6, 6))\n",
" plt.xlabel('true target')\n",
" plt.ylabel('prediction')\n",
" plt.scatter(y_true, y_pred, color=\"C0\")\n",
" plt.plot(y_true,y_true, color=\"C1\")\n",
"\n",
"scatter_predictions(knn.predict(X_test), y_test)"
],
"metadata": {
"id": "_qVERwk2BsR-",
"outputId": "76c2fe50-8b37-4168-d80a-da225e1d0547",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
}
},
"execution_count": 26,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
],
"image/png": "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g1VWVqbbb7+9cU5hYaGmT5/eeC7MoEGDdO+99+rMM89UUVFRi5kAWIsSAqBFI0eObNf8Tz/9VPv3729SXA4cOKDhw4e367HcbrfuuOMOPfnkk/ryyy914MAB1dXVqXv37n7zRowY4Tf+6KOPdNppp/ltO7y0SNJ7772n999/X48//njjNq/XK4/Ho4qKCg0ZMqRdWQEEhxICoEVHH3203zguLk5er9dv28GDBxv/vHfvXknSSy+9pD59+vjNS0hIaNffvWTJEi1dulT33HOPhg4dqqOPPlrz589vcvJpYMa22Lt3r+bMmaOrrrqqyedOPPHEdj8egOBQQoAY161bN7nd7jbNPf7441VWVua3bfPmzerataskKSMjQwkJCdqxY0ezb720J8Obb76p888/XzNmzJBUf8Lrxx9/rIyMjFYfa/DgwXr55Zf9tm3cuNFvnJWVpfLycg0cOLBdmQBYixNTgRjXv39/vf3229q2bZu++eYbeTyeFueeddZZeuedd/TYY4/pk08+UX5+vl8pSUxM1HXXXadrrrlGjz76qD777DOVlpbqT3/6kx599NFWM6xZs0ZffvmlvvnmG0n152msWrVK69at0wcffKA5c+Zo165dR3w+c+bM0Ycffqjrr79eH3/8sZ588kktX75ckhqvcrn++uu1bt06zZs3T5s3b9Ynn3yi559/vvHE1JYyAbAWJQSIcdddd53i4+OVkZGh448/Xjt27Ghx7qRJk3TzzTfrt7/9rU477TTt2bNHM2fO9JuzaNEi3XzzzSosLNSQIUM0efJkvfTSS0pPT2/xcRcuXKht27ZpwIABOv744yVJN910k7KysjRp0iSNGzdOKSkpTS4Pbk56erqefvppPfPMMxo2bJiKiooar45peEto2LBhWr16tT7++GONGTNGw4cP1y233KITTjih1UwArGXzBr7BCwBR5vbbb9f999+vnTt3mo4C4DCcEwIg6vzlL3/Raaedpl69eunNN9/UkiVL/N5qARAeKCEAos4nn3yi2267TdXV1TrxxBN17bXXasGCBaZjAQjA2zEAAMAITkwFAABGUEIAAIARlBAAAGAEJQQAABhBCQEAAEZQQgAAgBGUEAAAYAQlBAAAGPH/EyhbELYa2oIAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.inspection import permutation_importance\n",
"\n",
"def boxplot_pi(model, X_test, y_test):\n",
" result = permutation_importance(model, X_test, y_test, n_repeats=100,\n",
" random_state=42, n_jobs=-1)\n",
" sorted_idx = result.importances_mean.argsort()\n",
"\n",
" fig, ax = plt.subplots(figsize=(8,6))\n",
" ax.boxplot(result.importances[sorted_idx].T,\n",
" vert=False, tick_labels=X_test.columns[sorted_idx])\n",
" ax.set_title(\"Permutation Importances (test set)\")\n",
" fig.tight_layout()\n",
" plt.show()\n",
"\n",
"boxplot_pi(knn, X_test, y_test)"
],
"metadata": {
"id": "0eCWxLhCEMuj",
"outputId": "5e48a283-6ae1-4067-f803-4a96a7c7bcdc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
}
},
"execution_count": 27,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAJOCAYAAADBIyqKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVfJJREFUeJzt3XlYVWX//v1zA4Igk7OQKIooWJaCOWCopYWm3pmZpplDTn3VJofMzDmHHNKyssFCU9OsW61fVpoDOWRmOOQAzmilZk6AYg6wnj982Hdb1IAL3Cjv13F4yL72Gj7r2gPrXNdaC5tlWZYAAAAAIJdcnF0AAAAAgFsboQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIAYJeUlCSbzaZZs2Y5uxTcQvr06aMHH3zQ2WUUCO+9954qVKigCxcuOLsU4KYiVAC4rc2aNUs2m83+r2jRoqpatar69eunP//809nl5cquXbs0cuRIJSUl5XoZn376qaZNm5ZnNeWFrl27ytvb29ll5FpaWppGjhypuLg4Z5dyUx08eFAzZ87UK6+8Ym87cuSIRo4cqa1bt+brup35Ph43bpyWLFmSpb1r1666ePGi3n///ZtfFOBEhAoAhcLo0aM1Z84cvf3224qKitKMGTNUv359paWlObu0HNu1a5dGjRqVL6GiYsWKOn/+vJ566qncF1hIpaWladSoUYUuVLz55puqVKmS7r//fnvbkSNHNGrUqEIZKooWLaouXbrojTfekGVZN78wwEkIFQAKhebNm6tTp07q0aOHZs2apRdeeEEHDx7Ul19+abzsWzGYXE/maI6rq6uzS7llZGRk6O+//3Z2GU5x6dIlzZs3T+3atXN2KQVKu3btdOjQIa1evdrZpQA3DaECQKH0wAMPSLpy6kamuXPnKjIyUp6enipRooSeeOIJ/fbbbw7zNW7cWHfddZfi4+PVsGFDeXl56ZVXXrFfizB58mS98847qly5sry8vPTQQw/pt99+k2VZGjNmjMqXLy9PT0898sgjOnXqlMOybTabRo4cmaXW4OBgde3aVdKV07kef/xxSdL9999vP60r8+j4l19+qRYtWigwMFAeHh4KCQnRmDFjlJ6e7rANS5cu1aFDh+zzBwcHS7r+NRWrVq1SdHS0ihUrJn9/fz3yyCNKSEhwmGbkyJGy2Wzat2+funbtKn9/f/n5+albt265Dl7BwcFq2bKl4uLiVLt2bXl6eqpGjRr27V20aJFq1KihokWLKjIyUlu2bHGYP/OUqgMHDigmJkbFihVTYGCgRo8eneUo8rlz5zRgwAAFBQXJw8ND1apV0+TJk7NMZ7PZ1K9fP82bN0933nmnPDw89N5776l06dKSpFGjRtn7NfP1/PXXX9W1a1dVrlxZRYsWVbly5fT000/r5MmTRn04d+5c1alTR15eXipevLgaNmyo5cuXO0zz7bff2l87Hx8ftWjRQjt37nSY5tixY+rWrZvKly8vDw8PBQQE6JFHHvnX0bB169bpxIkTatq0qb0tLi5O9957rySpW7du9r7453tq48aNatasmfz8/OTl5aVGjRpp/fr1DstOTU3VCy+8oODgYHl4eKhMmTJ68MEHtXnzZkk3fh9fz/fff6/77rtP/v7+8vb2VrVq1RxO25KkCxcuaMSIEapSpYo8PDwUFBSkl156yeEaCZvNpnPnzmn27Nn2dWd+RiUpMjJSJUqUyJODFsCtws3ZBQCAM+zfv1+SVLJkSUnS2LFjNWzYMLVr1049evTQX3/9penTp6thw4basmWL/P397fOePHlSzZs31xNPPKFOnTqpbNmy9ufmzZunixcv6tlnn9WpU6c0ceJEtWvXTg888IDi4uI0ePBg7du3T9OnT9fAgQP18ccf56juhg0b6rnnntNbb72lV155ReHh4ZJk/3/WrFny9vZW//795e3trVWrVmn48OFKSUnRpEmTJElDhw5VcnKyfv/9d02dOlWSbngtw4oVK9S8eXNVrlxZI0eO1Pnz5zV9+nQ1aNBAmzdvzrIj165dO1WqVEnjx4/X5s2bNXPmTJUpU0avv/56jrY10759+9SxY0f17t1bnTp10uTJk9WqVSu99957euWVV9SnTx9J0vjx49WuXTvt3r1bLi7/O2aWnp6uZs2aqV69epo4caK+++47jRgxQpcvX9bo0aMlSZZl6T//+Y9Wr16t7t27q2bNmlq2bJkGDRqkP/74w95PmVatWqWFCxeqX79+KlWqlO655x7NmDFD//d//6dHH31Ubdq0kSTdfffdkq7szB44cEDdunVTuXLltHPnTn3wwQfauXOnfvrpJ9lsthz34ahRozRy5EhFRUVp9OjRcnd318aNG7Vq1So99NBDkqQ5c+aoS5cuiomJ0euvv660tDTNmDFD9913n7Zs2WJ/7R577DHt3LlTzz77rIKDg3X8+HF9//33Onz48A131H/88UfZbDbVqlXL3hYeHq7Ro0dr+PDh6tWrl6KjoyVJUVFR9r5r3ry5IiMjNWLECLm4uCg2NlYPPPCA1q5dqzp16kiSnnnmGX3xxRfq16+fqlevrpMnT2rdunVKSEhQREREjt/HO3fuVMuWLXX33Xdr9OjR8vDw0L59+xzCTEZGhv7zn/9o3bp16tWrl8LDw7V9+3ZNnTpVe/bssZ/uNGfOHPXo0UN16tRRr169JEkhISEO64uIiMgSlIDbmgUAt7HY2FhLkrVixQrrr7/+sn777TdrwYIFVsmSJS1PT0/r999/t5KSkixXV1dr7NixDvNu377dcnNzc2hv1KiRJcl67733HKY9ePCgJckqXbq0debMGXv7kCFDLEnWPffcY126dMne3qFDB8vd3d36+++/7W2SrBEjRmTZhooVK1pdunSxP/78888tSdbq1auzTJuWlpalrXfv3paXl5fDulq0aGFVrFgxy7SZ2xEbG2tvq1mzplWmTBnr5MmT9rZt27ZZLi4uVufOne1tI0aMsCRZTz/9tMMyH330UatkyZJZ1nW1Ll26WMWKFXNoq1ixoiXJ+vHHH+1ty5YtsyRZnp6e1qFDh+zt77//fpZ+6dKliyXJevbZZ+1tGRkZVosWLSx3d3frr7/+sizLspYsWWJJsl577TWH9bdt29ay2WzWvn377G2SLBcXF2vnzp0O0/7111/XfQ2v9brMnz/fkmStWbPG3pbdPty7d6/l4uJiPfroo1Z6errDtBkZGZZlWVZqaqrl7+9v9ezZ0+H5Y8eOWX5+fvb206dPW5KsSZMmZanx33Tq1Omar+2mTZuyvI8yawsNDbViYmLsdVrWlf6pVKmS9eCDD9rb/Pz8rL59+95w/dd7H1/L1KlTLUn21/xa5syZY7m4uFhr1651aH/vvfcsSdb69evtbcWKFXP4XF6tV69elqenZ7ZqA24HnP4EoFBo2rSpSpcuraCgID3xxBPy9vbW4sWLdccdd2jRokXKyMhQu3btdOLECfu/cuXKKTQ0NMt50R4eHurWrds11/P444/Lz8/P/rhu3bqSpE6dOsnNzc2h/eLFi/rjjz/ydDs9PT3tP6empurEiROKjo5WWlqaEhMTc7y8o0ePauvWreratatKlChhb7/77rv14IMP6ptvvskyzzPPPOPwODo6WidPnlRKSkqO1y9J1atXV/369e2PM/v0gQceUIUKFbK0HzhwIMsy+vXrZ/858/SlixcvasWKFZKkb775Rq6urnruuecc5hswYIAsy9K3337r0N6oUSNVr14929vwz9fl77//1okTJ1SvXj1Jsp/O80//1odLlixRRkaGhg8f7jAqk7l90pXRkTNnzqhDhw4O72tXV1fVrVvX/r729PSUu7u74uLidPr06Wxvk3Rl1K548eLZnn7r1q3au3evOnbsqJMnT9prOnfunJo0aaI1a9YoIyNDkuTv76+NGzfqyJEjOarpejJHG7/88kv7Oq72+eefKzw8XGFhYQ59lnm6ZE6ukShevLjOnz9/W11zBdwIpz8BKBTeeecdVa1aVW5ubipbtqyqVatm3xnbu3evLMtSaGjoNectUqSIw+M77rhD7u7u15z2nzu5kuwBIygo6JrtOd2J+zc7d+7Uq6++qlWrVmXZiU9OTs7x8g4dOiRJqlatWpbnwsPDtWzZMp07d07FihWzt1/dB5k7nadPn5avr2+OazDtUxcXF1WuXNmhrWrVqpJkv2bg0KFDCgwMlI+Pj8N0maeVZfZDpkqVKuVoG06dOqVRo0ZpwYIFOn78uMNz13pd/q0P9+/fLxcXlxsGm71790r63/VDV8t8LTw8PPT6669rwIABKlu2rOrVq6eWLVuqc+fOKleu3L9um5WDOxxl1tSlS5frTpOcnKzixYtr4sSJ6tKli4KCghQZGamHH35YnTt3zvJaZlf79u01c+ZM9ejRQy+//LKaNGmiNm3aqG3btg7fBQkJCfbrY6529Wt3I5n9cvWpbcDtilABoFCoU6eOateufc3nMjIyZLPZ9O23317zrkdXn6f9z6POV7veXZOu156dHbJ/XmR9I2fOnFGjRo3k6+ur0aNHKyQkREWLFtXmzZs1ePDg6x6dzWsm25qT5eX1enLiRu+Ba2nXrp1+/PFHDRo0SDVr1pS3t7cyMjLUrFmza74uebFtmcudM2fONcPBP0fOXnjhBbVq1UpLlizRsmXLNGzYMI0fP16rVq1yuF7iaiVLlsxRMM6sadKkSapZs+Y1p8n8vLVr107R0dFavHixli9frkmTJun111/XokWL1Lx582yvM5Onp6fWrFmj1atXa+nSpfruu+/02Wef6YEHHtDy5cvl6uqqjIwM1ahRQ2+88cY1l3F1kL2R06dPy8vLK8fvFeBWRagAUOiFhITIsixVqlTJfgTbGYoXL64zZ844tF28eFFHjx51aLvekc+4uDidPHlSixYtUsOGDe3t/7zD1b8t42oVK1aUJO3evTvLc4mJiSpVqpTDKEVBlJGRoQMHDji8tnv27JEk+0XIFStW1IoVK5SamuowWpF5ylhmP9zI9fr09OnTWrlypUaNGqXhw4fb2zOP2udGSEiIMjIytGvXruvunGdeOFymTBmHuzPdaJkDBgzQgAEDtHfvXtWsWVNTpkzR3LlzrztPWFiY5s2bp+TkZIfT/q7XF5k1+fr6ZqumgIAA9enTR3369NHx48cVERGhsWPH2kNFTkcBXFxc1KRJEzVp0kRvvPGGxo0bp6FDh2r16tVq2rSpQkJCtG3bNjVp0uRfl/1vzx88eNA+0gUUBlxTAaDQa9OmjVxdXTVq1KgsR4Ity8py28/8EhISojVr1ji0ffDBB1lGKjJ34q8OIJlHt/+5DRcvXtS7776bZV3FihXL1ulQAQEBqlmzpmbPnu2wvh07dmj58uV6+OGH/3UZBcHbb79t/9myLL399tsqUqSImjRpIkl6+OGHlZ6e7jCdJE2dOlU2my1bR8a9vLwkZe91kWT0R9tat24tFxcXjR49OstIR+Z6YmJi5Ovrq3HjxunSpUtZlvHXX39JuvJ3Vq7+OxshISHy8fFxuI3qtdSvX1+WZSk+Pt6h/Xrv0cjISIWEhGjy5Mk6e/bsdWtKT0/P8v4sU6aMAgMDHWrK7vtYUpZbOEuyB7LMZbZr105//PGHPvzwwyzTnj9/XufOnXNY99Xb90+bN2+23/EKKAwYqQBQ6IWEhOi1117TkCFDlJSUpNatW8vHx0cHDx7U4sWL1atXLw0cODDf6+jRo4eeeeYZPfbYY3rwwQe1bds2LVu2TKVKlXKYrmbNmnJ1ddXrr7+u5ORkeXh46IEHHlBUVJSKFy+uLl266LnnnpPNZtOcOXOuecpMZGSkPvvsM/Xv31/33nuvvL291apVq2vWNWnSJDVv3lz169dX9+7d7beU9fPzu+bf1ShoihYtqu+++05dunRR3bp19e2332rp0qV65ZVX7OfOt2rVSvfff7+GDh2qpKQk3XPPPVq+fLm+/PJLvfDCC1luF3otnp6eql69uj777DNVrVpVJUqU0F133aW77rpLDRs21MSJE3Xp0iXdcccdWr58+TVHkLKrSpUqGjp0qMaMGaPo6Gi1adNGHh4e2rRpkwIDAzV+/Hj5+vpqxowZeuqppxQREaEnnnhCpUuX1uHDh7V06VI1aNBAb7/9tvbs2aMmTZqoXbt2ql69utzc3LR48WL9+eefeuKJJ25Yx3333aeSJUtqxYoVDtduhISEyN/fX++99558fHxUrFgx1a1bV5UqVdLMmTPVvHlz3XnnnerWrZvuuOMO/fHHH1q9erV8fX31//7f/1NqaqrKly+vtm3b6p577pG3t7dWrFihTZs2acqUKfb15OR9PHr0aK1Zs0YtWrRQxYoVdfz4cb377rsqX7687rvvPknSU089pYULF+qZZ57R6tWr1aBBA6WnpysxMVELFy7UsmXL7KdRRkZGasWKFXrjjTcUGBioSpUq2W8WEB8fr1OnTumRRx7J9WsM3HJu+v2mAOAmyryl7KZNm/512v/+97/WfffdZxUrVswqVqyYFRYWZvXt29favXu3fZpGjRpZd955Z5Z5M2/FevVtOVevXm1Jsj7//PN/rSs9Pd0aPHiwVapUKcvLy8uKiYmx9u3bl+WWspZlWR9++KFVuXJly9XV1eE2quvXr7fq1atneXp6WoGBgdZLL71kvwXrP2+1evbsWatjx46Wv7+/Jcl+W85r3VLWsixrxYoVVoMGDSxPT0/L19fXatWqlbVr1y6HaTJvh3r1LTszt/XgwYNZ+u2frndL2RYtWmSZVlKW241e6zXIXOb+/futhx56yPLy8rLKli1rjRgxIsutWFNTU60XX3zRCgwMtIoUKWKFhoZakyZNcrj16fXWnenHH3+0IiMjLXd3d4fby/7+++/Wo48+avn7+1t+fn7W448/bh05ciTLLWhz2ocff/yxVatWLcvDw8MqXry41ahRI+v77793mGb16tVWTEyM5efnZxUtWtQKCQmxunbtav3yyy+WZVnWiRMnrL59+1phYWFWsWLFLD8/P6tu3brWwoULr7mNV3vuueesKlWqZGn/8ssvrerVq1tubm5Z3lNbtmyx2rRpY5UsWdLy8PCwKlasaLVr185auXKlZVmWdeHCBWvQoEHWPffcY/n4+FjFihWz7rnnHuvdd991WMf13sfXsnLlSuuRRx6xAgMDLXd3dyswMNDq0KGDtWfPHofpLl68aL3++uvWnXfeae/XyMhIa9SoUVZycrJ9usTERKthw4aWp6enJcnhMzp48GCrQoUKWd47wO3MZlk34Yo2AACcoGvXrvriiy+ueaoN8saBAwcUFhamb7/91n46WWF24cIFBQcH6+WXX9bzzz/v7HKAm4ZrKgAAQK5VrlxZ3bt314QJE5xdSoEQGxurIkWKZPlbI8DtjpEKAMBti5EKALg5GKkAAAAAYISRCgAAAABGGKkAAAAAYIRQAQAAAMAIf/wOOZaRkaEjR47Ix8dHNpvN2eUAAAAgD1iWpdTUVAUGBsrFJWdjD4QK5NiRI0cUFBTk7DIAAACQD3777TeVL18+R/MQKpBjPj4+kq684Xx9fZ1cDQAAAPJCSkqKgoKC7Pt6OUGoQI5lnvLk6+tLqAAAALjN5Ob0di7UBgAAAGCEUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARggVAAAAAIwQKgAAAAAYIVQAAAAAMEKoAAAAAGCEUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARggVAAAAAIwQKgAAAAAYIVQAAAAAMEKoAAAAAGCEUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARggVAAAAAIwQKgAAAAAYIVQAAAAAMEKoAAAAAGCEUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARggVAAAAAIwQKgAAAAAYIVQAAAAAMOLm7AIAAIDz7N27V6mpqc4uo9Dw8fFRaGios8sA8hyhAgCAQmrv3r2qWrWqs8vIlnLeNvWOdNf78Rd17Kzl7HKM7Nmzh2CB2w6hAgCAQipzhGLu3LkKDw93cjU35nlmj8LX9Fb74bN03v/WCEJXS0hIUKdOnRgZwm2JUAEAQCEXHh6uiIgIZ5dxY0dcpDVSeFiYFFjT2dUAuAoXagMAAAAwQqgAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIACpG0tDRt3rxZaWlpzi4FAG5rhe37llABAIVIYmKiIiMjlZiY6OxSAOC2Vti+bwkVAAAAAIwQKgAAAAAYIVQAAAAAMEKoAAAAAGCEUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARm65UNG1a1e1bt36us/PmjVL/v7+N62efxMcHKxp06bleL6TJ0+qTJkySkpKyvOaMp04cUJlypTR77//nm/rAAAAwO3vlgsVBVVeh5mxY8fqkUceUXBwcJ4t82qlSpVS586dNWLEiHxbBwAAAHImPT1dcXFxmj9/vuLi4pSenu7skv4VoaIASktL00cffaTu3bvn+7q6deumefPm6dSpU/m+LgAAANzYokWLVKVKFd1///3q2LGj7r//flWpUkWLFi1ydmk3lKNQ8cUXX6hGjRry9PRUyZIl1bRpU507d87+/MyZMxUeHq6iRYsqLCxM7777rv25pKQk2Ww2LViwQFFRUSpatKjuuusu/fDDD/Zp0tPT1b17d1WqVEmenp6qVq2a3nzzTeON/PLLLxUREaGiRYuqcuXKGjVqlC5fvmx/3mazaebMmXr00Ufl5eWl0NBQffXVVw7L+OqrrxQaGqqiRYvq/vvv1+zZs2Wz2XTmzBnFxcWpW7duSk5Ols1mk81m08iRI+3zpqWl6emnn5aPj48qVKigDz744Ib1fvPNN/Lw8FC9evUc2nfu3KmWLVvK19dXPj4+io6O1v79+yX977SwcePGqWzZsvL399fo0aN1+fJlDRo0SCVKlFD58uUVGxvrsMw777xTgYGBWrx4cW66FgAAAHlk0aJFatu2rWrUqKENGzYoNTVVGzZsUI0aNdS2bdsCHSyyHSqOHj2qDh066Omnn1ZCQoLi4uLUpk0bWZYlSZo3b56GDx+usWPHKiEhQePGjdOwYcM0e/Zsh+UMGjRIAwYM0JYtW1S/fn21atVKJ0+elCRlZGSofPny+vzzz7Vr1y4NHz5cr7zyihYuXJjrDVy7dq06d+6s559/Xrt27dL777+vWbNmaezYsQ7TjRo1Su3atdOvv/6qhx9+WE8++aT96P3BgwfVtm1btW7dWtu2bVPv3r01dOhQ+7xRUVGaNm2afH19dfToUR09elQDBw60Pz9lyhTVrl1bW7ZsUZ8+ffR///d/2r179w1rjoyMdGj7448/1LBhQ3l4eGjVqlWKj4/X008/7RCOVq1apSNHjmjNmjV64403NGLECLVs2VLFixfXxo0b9cwzz6h3795ZrqGoU6eO1q5dm/POBQAAQJ5IT0/XgAED1LJlSy1ZskT16tWTt7e36tWrpyVLlqhly5YaOHBggT0Vyi27Ex49elSXL19WmzZtVLFiRUlSjRo17M+PGDFCU6ZMUZs2bSRJlSpVsu/Ed+nSxT5dv3799Nhjj0mSZsyYoe+++04fffSRXnrpJRUpUkSjRo2yT1upUiVt2LBBCxcuVLt27XK1gaNGjdLLL79sr6Fy5coaM2aMXnrpJYdrCbp27aoOHTpIksaNG6e33npLP//8s5o1a6b3339f1apV06RJkyRJ1apV044dO+zBxN3dXX5+frLZbCpXrlyWGh5++GH16dNHkjR48GBNnTpVq1evVrVq1a5Z86FDhxQYGOjQ9s4778jPz08LFixQkSJFJElVq1Z1mKZEiRJ666235OLiomrVqmnixIlKS0vTK6+8IkkaMmSIJkyYoHXr1umJJ56wzxcYGKgtW7Zctw8vXLigCxcu2B+npKRcd1oABdv58+clSQkJCU6uBAVB5vsg832B/MXnr3DJ6edr7dq1SkpK0vz58+Xi4njc38XFRUOGDFFUVJTWrl2rxo0b53W5xrIdKu655x41adJENWrUUExMjB566CG1bdtWxYsX17lz57R//351795dPXv2tM9z+fJl+fn5OSynfv36/1u5m5tq167t8OF655139PHHH+vw4cM6f/68Ll68qJo1a+Z6A7dt26b169c7jEykp6fr77//Vlpamry8vCRJd999t/35YsWKydfXV8ePH5ck7d69W/fee6/DcuvUqZPtGv657Mzgkbnsazl//ryKFi3q0LZ161ZFR0fbA8W13HnnnQ5vwrJly+quu+6yP3Z1dVXJkiWzrNvT01NpaWnXXe748eMdwh6AW1fmHeU6derk3EJQoCQlJalBgwbOLuO2x+evcMru5+vo0aOS5LDv9k+Z7ZnTFTTZDhWurq76/vvv9eOPP2r58uWaPn26hg4dqo0bN9p3zD/88EPVrVs3y3zZtWDBAg0cOFBTpkxR/fr15ePjo0mTJmnjxo3ZXsbVzp49q1GjRtlHUP7pnzvuV++s22w2ZWRk5Hq9/5TTZZcqVUqnT592aPP09MzVerKz7lOnTql06dLXXe6QIUPUv39/++OUlBQFBQX9az0ACp7MO8rNnTtX4eHhzi0GTpeQkKBOnTrl650G8T98/gqXnH6+AgICJEk7duzIcl1tZvs/pytosh0qpCs7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QgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARN2cXAABATu3du1epqanOLgO3MR8fH4WGhjq7DOCWQagAANxS9u7dq6pVqzq7DCPlvG3qHemu9+Mv6thZy9nl4Dr27NlDsACyiVABALilZI5QzJ07V+Hh4U6uJnc8z+xR+Jreaj98ls7739oB6XaUkJCgTp06MRoG5AChAgBwSwoPD1dERISzy8idIy7SGik8LEwKrOnsagDAGBdqAwAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAMpaWlafPmzUpLS3N2KQCAAqaw/I4gVACAocTEREVGRioxMdHZpQAACpjC8juCUAEAAADACKECAAAAgBFCBQAAAAAjhAoAAAAARggVAAAAAIwQKgAAAAAYIVQAAAAAMEKoAAAAAGCEUHELSEpKks1m09atW51dCgAAAJAFoQIAAACAEUIFAAAAACOEigIkIyNDEydOVJUqVeTh4aEKFSpo7NixWaZLT09X9+7dValSJXl6eqpatWp68803HaaJi4tTnTp1VKxYMfn7+6tBgwY6dOiQJGnbtm26//775ePjI19fX0VGRuqXX365KdsIAACA24+bswvA/wwZMkQffvihpk6dqvvuu09Hjx5VYmJilukyMjJUvnx5ff755ypZsqR+/PFH9erVSwEBAWrXrp0uX76s1q1bq2fPnpo/f74uXryon3/+WTabTZL05JNPqlatWpoxY4ZcXV21detWFSlS5GZvLgAAAG4ThIoCIjU1VW+++abefvttdenSRZIUEhKi++67T0lJSQ7TFilSRKNGjbI/rlSpkjZs2KCFCxeqXbt2SklJUXJyslq2bKmQkBBJUnh4uH36w4cPa9CgQQoLC5MkhYaG3rC2Cxcu6MKFC/bHKSkpRtsK3G7Onz8vSUpISHByJYVDZj9n9juQ1/hMIy8Vlu8sQkUBkZCQoAsXLqhJkybZmv6dd97Rxx9/rMOHD+v8+fO6ePGiatasKUkqUaKEunbtqpiYGD344INq2rSp2rVrp4CAAElS//791aNHD82ZM0dNmzbV448/bg8f1zJ+/HiHEAPAUWbw79Spk3MLKWSSkpLUoEEDZ5eB2xCfaeSH2/07i1BRQHh6emZ72gULFmjgwIGaMmWK6tevLx8fH02aNEkbN260TxMbG6vnnntO3333nT777DO9+uqr+v7771WvXj2NHDlSHTt21NKlS/Xtt99qxIgRWrBggR599NFrrm/IkCHq37+//XFKSoqCgoJyv7HAbSY4OFiSNHfuXIdRQeSPhIQEderUyd7vQF7jM428VFi+swgVBURoaKg8PT21cuVK9ejR44bTrl+/XlFRUerTp4+9bf/+/Vmmq1WrlmrVqqUhQ4aofv36+vTTT1WvXj1JUtWqVVW1alW9+OKL6tChg2JjY68bKjw8POTh4WGwdcDtLfOgQHh4uCIiIpxcTeGRk4MxQE7wmUZ+uN2/s7j7UwFRtGhRDR48WC+99JI++eQT7d+/Xz/99JM++uijLNOGhobql19+0bJly7Rnzx4NGzZMmzZtsj9/8OBBDRkyRBs2bNChQ4e0fPly7d27V+Hh4Tp//rz69eunuLg4HTp0SOvXr9emTZs4EgMAAIBcY6SiABk2bJjc3Nw0fPhwHTlyRAEBAXrmmWeyTNe7d29t2bJF7du3l81mU4cOHdSnTx99++23kiQvLy8lJiZq9uzZOnnypAICAtS3b1/17t1bly9f1smTJ9W5c2f9+eefKlWqlNq0acM1EwAAAMg1QkUB4uLioqFDh2ro0KFZnrMsy/6zh4eHYmNjFRsb6zDN+PHjJUlly5bV4sWLr7kOd3d3zZ8/Pw+rBgAAQGHH6U8AAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVACAobCwMMXHxyssLMzZpQAACpjC8jvCzdkFAMCtzsvLSxEREc4uAwBQABWW3xGMVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYMTN2QUAAJATaWlpkqTNmzc7uZLc8zyzR+GSEhITdf5YhrPLwVUSEhKcXQJwyyFUAABuKYmJiZKknj17OrmS3CvnbVPvSHe9P6Wjjp21nF0OrsPHx8fZJQC3DEIFAOCW0rp1a0lSWFiYvLy8nFuMof84uwBcl4+Pj0JDQ51dBnDLsFmWxSES5EhKSor8/PyUnJwsX19fZ5cDAACAPGCyj8eF2gAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABghFABAAAAwAihAgAAAIARQgUAAAAAI4QKAAAAAEYIFQAAAACMECoAAAAAGCFUAAAAADBCqAAAAABgxM3ZBQAAsm/v3r1KTU11dhkowHx8fBQaGursMgAUMoQKALhF7N27V1WrVnV2GQVGOW+beke66/34izp21nJ2OQXKnj17CBYAbipCBQDcIjJHKObOnavw8HAnV+N8nmf2KHxNb7UfPkvn/QlbkpSQkKBOnToxmgXgpiNUAMAtJjw8XBEREc4uw/mOuEhrpPCwMCmwprOrAYBCjQu1AQAAABghVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYIRQgQIvLS1NmzdvVlpamrNLAQAAtzj2K/IHoQIFXmJioiIjI5WYmOjsUgAAwC2O/Yr8QagAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwcsuFiri4ONlsNp05c+a609hsNi1ZsuSm1XQjI0eOVM2aNXM171NPPaVx48bl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Hh4eqlq1Kp/bHPTftGnT7L8bgoKC9OKLL+rvv/++SdUWDGvWrFGrVq0UGBiY7f2KuLg4RUREyMPDQ1WqVNGsWbNyvmILQJ5o1qyZdc8991g//fSTtXbtWqtKlSpWhw4dsjXvG2+8YTVv3tySZC1evDh/Cy2Actp327dvt9q0aWN99dVX1r59+6yVK1daoaGh1mOPPXYTq775FixYYLm7u1sff/yxtXPnTqtnz56Wv7+/9eeff15z+vXr11uurq7WxIkTrV27dlmvvvqqVaRIEWv79u03uXLny2nfdezY0XrnnXesLVu2WAkJCVbXrl0tPz8/6/fff7/JlTtfTvsu08GDB6077rjDio6Oth555JGbU2wBk9O+u3DhglW7dm3r4YcfttatW2cdPHjQiouLs7Zu3XqTKy8Yctp/8+bNszw8PKx58+ZZBw8etJYtW2YFBARYL7744k2u3Lm++eYba+jQodaiRYuytV9x4MABy8vLy+rfv7+1a9cua/r06Zarq6v13Xff5Wi9hAogD+zatcuSZG3atMne9u2331o2m836448/bjjvli1brDvuuMM6evRooQwVJn33TwsXLrTc3d2tS5cu5UeZBUKdOnWsvn372h+np6dbgYGB1vjx4685fbt27awWLVo4tNWtW9fq3bt3vtZZEOW07652+fJly8fHx5o9e3Z+lVhg5abvLl++bEVFRVkzZ860unTpUmhDRU77bsaMGVblypWtixcv3qwSC7Sc9l/fvn2tBx54wKGtf//+VoMGDfK1zoIsO/sVL730knXnnXc6tLVv396KiYnJ0bo4/QnIAxs2bJC/v79q165tb2vatKlcXFy0cePG686Xlpamjh076p133lG5cuVuRqkFTm777mrJycny9fWVm5tbfpTpdBcvXlR8fLyaNm1qb3NxcVHTpk21YcOGa86zYcMGh+klKSYm5rrT365y03dXS0tL06VLl1SiRIn8KrNAym3fjR49WmXKlFH37t1vRpkFUm767quvvlL9+vXVt29flS1bVnfddZfGjRun9PT0m1V2gZGb/ouKilJ8fLz9FKkDBw7om2++0cMPP3xTar5V5dXvitvzty9wkx07dkxlypRxaHNzc1OJEiV07Nix68734osvKioqSo888kh+l1hg5bbv/unEiRMaM2aMevXqlR8lFggnTpxQenq6ypYt69BetmxZJSYmXnOeY8eOXXP67Pbr7SI3fXe1wYMHKzAwMMsv3ttdbvpu3bp1+uijj7R169abUGHBlZu+O3DggFatWqUnn3xS33zzjfbt26c+ffro0qVLGjFixM0ou8DITf917NhRJ06c0H333SfLsnT58mU988wzeuWVV25Gybes6/2uSElJ0fnz5+Xp6Zmt5TBSAdzAyy+/LJvNdsN/2d0pudpXX32lVatWadq0aXlbdAGRn333TykpKWrRooWqV6+ukSNHmhcOXGXChAlasGCBFi9erKJFizq7nAItNTVVTz31lD788EOVKlXK2eXccjIyMlSmTBl98MEHioyMVPv27TV06FC99957zi7tlhAXF6dx48bp3Xff1ebNm7Vo0SItXbpUY8aMcXZphQIjFcANDBgwQF27dr3hNJUrV1a5cuV0/Phxh/bLly/r1KlT1z2tadWqVdq/f7/8/f0d2h977DFFR0crLi7OoHLny8++y5SamqpmzZrJx8dHixcvVpEiRUzLLrBKlSolV1dX/fnnnw7tf/7553X7qVy5cjma/naVm77LNHnyZE2YMEErVqzQ3XffnZ9lFkg57bv9+/crKSlJrVq1srdlZGRIujICuXv3boWEhORv0QVEbt53AQEBKlKkiFxdXe1t4eHhOnbsmC5evCh3d/d8rbkgyU3/DRs2TE899ZR69OghSapRo4bOnTunXr16aejQoXJx4Vj6tVzvd4Wvr2+2RykkRiqAGypdurTCwsJu+M/d3V3169fXmTNnFB8fb5931apVysjIUN26da+57Jdfflm//vqrtm7dav8nSVOnTlVsbOzN2Lx8lZ99J10ZoXjooYfk7u6ur7766rY/guzu7q7IyEitXLnS3paRkaGVK1eqfv3615ynfv36DtNL0vfff3/d6W9Xuek7SZo4caLGjBmj7777zuGan8Ikp30XFham7du3O3yv/ec//9H999+vrVu3Kigo6GaW71S5ed81aNBA+/btswcxSdqzZ48CAgIKVaCQctd/aWlpWYJDZkC7cs0yriXPflfk7BpyANfTrFkzq1atWtbGjRutdevWWaGhoQ63Rf3999+tatWqWRs3brzuMlQI7/5kWTnvu+TkZKtu3bpWjRo1rH379llHjx61/7t8+bKzNiPfLViwwPLw8LBmzZpl7dq1y+rVq5fl7+9vHTt2zLIsy3rqqaesl19+2T79+vXrLTc3N2vy5MlWQkKCNWLEiEJ9S9mc9N2ECRMsd3d364svvnB4f6WmpjprE5wmp313tcJ896ec9t3hw4ctHx8fq1+/ftbu3butr7/+2ipTpoz12muvOWsTnCqn/TdixAjLx8fHmj9/vnXgwAFr+fLlVkhIiNWuXTtnbYJTpKamWlu2bLG2bNliSbLeeOMNa8uWLdahQ4csy7Ksl19+2Xrqqafs02feUnbQoEFWQkKC9c4773BLWcCZTp48aXXo0MHy9va2fH19rW7dujnsgBw8eNCSZK1evfq6yyisoSKnfbd69WpL0jX/HTx40DkbcZNMnz7dqlChguXu7m7VqVPH+umnn+zPNWrUyOrSpYvD9AsXLrSqVq1qubu7W3feeae1dOnSm1xxwZGTvqtYseI1318jRoy4+YUXADl93/1TYQ4VlpXzvvvxxx+tunXrWh4eHlblypWtsWPH3tYHS/5NTvrv0qVL1siRI62QkBCraNGiVlBQkNWnTx/r9OnTN79wJ7re78jMvurSpYvVqFGjLPPUrFnTcnd3typXrmzFxsbmeL02y2I8CAAAAEDucU0FAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABghVAAAAAAwQqgAAAAAYIRQAQAAAMAIoQIAAACAEUIFAAAAACOECgAAAABGCBUAAAAAjBAqAAAAABj5/wCwvkZXsljUlwAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"from sklearn.metrics import r2_score"
],
"metadata": {
"id": "wOkdo_DgwbZA"
},
"execution_count": 28,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"https://en.wikipedia.org/wiki/Coefficient_of_determination"
],
"metadata": {
"id": "bJUHmHsA5HWo"
}
},
{
"cell_type": "code",
"source": [
"y_pred = knn.predict(X_test)"
],
"metadata": {
"id": "-CVcFyCSwIbb"
},
"execution_count": 29,
"outputs": []
},
{
"cell_type": "code",
"source": [
"diff = pd.DataFrame()\n",
"for col in X_test.columns:\n",
" diff_col = []\n",
" for n in range(100):\n",
" X_aux = X_test.copy()\n",
" X_aux[col] = np.random.permutation(X_aux[col])\n",
" y_pred_aux = knn.predict(X_aux)\n",
" diff_col.append(r2_score(y_test, y_pred) - r2_score(y_test, y_pred_aux))\n",
" diff[col] = diff_col"
],
"metadata": {
"id": "D9R4ZZu1vtx6"
},
"execution_count": 30,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import seaborn as sns\n",
"\n",
"sorted_idx = diff.median().sort_values(ascending=False).index\n",
"sns.boxplot(diff[sorted_idx], orient=\"h\");"
],
"metadata": {
"id": "ndQy-OQTwuNa",
"outputId": "11112a40-863f-4e08-bdef-0f1a0f9f8e3f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 430
}
},
"execution_count": 31,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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9+51um2324vsZNFWrVrpyJEjTstatGihbdu26dq1a0XSx28dPny4xM5jAACgtHJ3d9fQoUO1c+dOjRs3TocPH1ZaWpoOHz6scePGaefOnRoyZEi+Jr5KY5+3k+eZw927d2vTpk166KGHVLNmTe3evVu//vqrCXZTp07VCy+8IH9/f3Xt2lXp6en65ptvdOHCBadDkkuWLFGjRo3UtGlTLViwQBcuXNCzzz4rSWrUqJHeeecdffbZZ6pXr55WrVqlvXv35nocPi8mTZqkRx99VHXq1NETTzwhNzc3HThwQIcPH87zYZLnnntOr732msaMGaOBAwdq//79WrlypaTrgVm6/mXXly5d0qZNm3T33XerUqVKZkY1vyIiIjR27FhduHBBVatWlXT9XM3FixfrySef1NixY+Xv769du3apXbt2hfofalpamvbt26dZs2YVeB8AAJQXnTp10rRp07RkyRJzvYAkBQUFadq0acXynYOu6PNW8hwO/fz8tHXrVi1cuFApKSkKDQ3V/Pnz9fDDD0uSBg0apEqVKmnevHkaNWqUKleurObNm+ull15y2s+cOXM0Z84c7d+/Xw0bNtT69esVEBAg6XoIi4uLU69evWSz2dS7d28NGTJEn376aYEHGBERoY8//ljTpk3T//3f/8nT01NNmjTRoEGD8ryPevXq6cMPP9SIESO0aNEihYeHa/z48frb3/5mDrd26NBBzz//vHr16qVz585p8uTJTl9nkx/NmzdX69attWbNGj333HOSrp9rsHnzZo0aNUqdOnWSu7u7WrZsqfvuu69AfeT417/+pTp16qhjx46F2g8AAOVFp06ddP/99+vgwYM6d+6cqlevrhYtWhTr7J0r+syNzcr5LppiduLECdWrV09xcXGFusCktJg5c6b+/ve/68cffyyW/X/yyScaNWqUDh8+nOfD3wVx77336oUXXlCfPn3yvE1KSor8/f118eJF+fn5FVttqJji4+MVGRmpZcuWcd5WKZHzmFy5q7uyKwe4pAa3y2flc3idS2u4nZwaee6WLRXpPSevn9/8+bw8evPNN3XPPfeoevXq2rFjh+bNm6dhw4YVW3+PPPKIfvjhB/3888/FdmXw2bNn1aNHD/MVPgAAAITDPPrhhx80Y8YMnT9/XnXq1NGIESM0duzYYu3z94fki1pAQIBGjx5drH0AAICy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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"diff.median().sort_values(ascending=False)"
],
"metadata": {
"id": "EAbyIN4wwQSh",
"outputId": "b5aa9973-40fd-477b-9e9e-a91b1641d1f1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 209
}
},
"execution_count": 32,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"sepal length (cm) 0.414775\n",
"class 0.343732\n",
"petal width (cm) 0.137062\n",
"petal length (cm) 0.086112\n",
"dtype: float64"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>sepal length (cm)</th>\n",
" <td>0.414775</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>0.343732</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal width (cm)</th>\n",
" <td>0.137062</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal length (cm)</th>\n",
" <td>0.086112</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div><br><label><b>dtype:</b> float64</label>"
]
},
"metadata": {},
"execution_count": 32
}
]
},
{
"cell_type": "markdown",
"source": [
"## LinearRegression"
],
"metadata": {
"id": "AMh5g6oW34-x"
}
},
{
"cell_type": "code",
"metadata": {
"id": "dzk8LAsaNRBR"
},
"source": [
"from sklearn.linear_model import LinearRegression\n",
"\n",
"lm = Pipeline([\n",
" ('preprocess', preprocessing),\n",
" ('regressor', LinearRegression())\n",
"])"
],
"execution_count": 33,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"scrolled": true,
"id": "UMRyr788NRBc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 245
},
"outputId": "e02df69a-792a-43cf-90eb-2342d9ad1d47"
},
"source": [
"from sklearn import set_config\n",
"\n",
"set_config(display='diagram')\n",
"\n",
"lm.fit(X_train, y_train)"
],
"execution_count": 34,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Pipeline(steps=[('preprocess',\n",
" ColumnTransformer(transformers=[('cat',\n",
" Pipeline(steps=[('onehot',\n",
" OneHotEncoder())]),\n",
" ['class']),\n",
" ('num',\n",
" Pipeline(steps=[('scaler',\n",
" StandardScaler())]),\n",
" ['sepal length (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)'])])),\n",
" ('regressor', LinearRegression())])"
],
"text/html": [
"<style>#sk-container-id-2 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-2 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-2 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-2 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-2 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-2 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-2 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-2 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-2 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-2 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-2 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-2 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-2 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-2 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-2 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-2 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;, LinearRegression())])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" ><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>Pipeline</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.pipeline.Pipeline.html\">?<span>Documentation for Pipeline</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;, LinearRegression())])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-9\" type=\"checkbox\" ><label for=\"sk-estimator-id-9\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>preprocess: ColumnTransformer</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocess: ColumnTransformer</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;, OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;, StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-10\" type=\"checkbox\" ><label for=\"sk-estimator-id-10\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>cat</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;class&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>OneHotEncoder</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OneHotEncoder.html\">?<span>Documentation for OneHotEncoder</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>OneHotEncoder()</pre></div> </div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>num</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" ><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LinearRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 34
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "o9rVdLtCNRBv",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "f3c3fc0e-4abb-4831-9ab4-fae1c62671d0"
},
"source": [
"from sklearn.metrics import median_absolute_error\n",
"\n",
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, lm.predict(X_train)),\n",
" median_absolute_error(y_test, lm.predict(X_test))))"
],
"execution_count": 35,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.163, test error: 0.193\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "53e0p0D8NRBz",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
},
"outputId": "c970d5c0-bf42-4114-e7fe-efe05eda9baf"
},
"source": [
"scatter_predictions(lm.predict(X_test), y_test)"
],
"execution_count": 36,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
],
"image/png": "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X25urkd727Zt6tatm8exk0OLJG3cuFGff/65XnzxxcpjLpdLTqdTO3bsUMeOHYOqFUBoCCEA/Kpfv75HOykpSS6Xy+PYsWPHKv986NAhSdLbb7+tFi1aePRLSUkJ6mc//PDDmj59uh577DF17txZ9evX1/jx46sMPvWuMRCHDh3SyJEjdfPNN1f53llnnRX0+QCEhhACJLi6devK4XAE1LdJkybavHmzx7ENGzaoTp06kqTMzEylpKSosLDQ56OXYGr48MMPNXjwYA0bNkzSiQGvX331lTIzM6s9V/v27fXOO+94HFu7dq1HOycnR1u3blXbtm2DqgmAtRiYCiS4Vq1a6eOPP9Z3332nn376SU6n02/fSy+9VJ9++qleeOEFff3115o4caJHKGnYsKFuu+023XLLLZozZ462b9+u9evX61//+pfmzJlTbQ0rV67U7t279dNPP0k6MU5j+fLlWr16tb744guNHDlSe/bsqfHvM3LkSH355Ze644479NVXX+mVV17R7NmzJalylssdd9yh1atXa8yYMdqwYYO+/vprLVq0qHJgqr+aAFiLEAIkuNtuu03JycnKzMxUkyZNVFhY6Ldv3759dc899+hvf/ubunXrpoMHD2r48OEefaZMmaJ77rlHBQUF6tixo/r166e3335brVu39nveyZMn67vvvlObNm3UpEkTSdLdd9+tnJwc9e3bV7169VJ6enqV6cG+tG7dWgsWLNDrr7+u7OxszZw5s3J2TMUjoezsbK1YsUJfffWVLrzwQnXp0kX33nuvzjzzzGprAmAtm8v7AS8AxJkHHnhATz75pHbt2mW6FAAnYUwIgLjzxBNPqFu3bjr99NP14Ycf6uGHH/Z41AIgOhBCAMSdr7/+Wvfff7/279+vs846S3/96181YcIE02UB8MLjGAAAYAQDUwEAgBGEEAAAYAQhBAAAGEEIAQAARhBCAACAEYQQAABgBCEEAAAYQQgBAABG/H/yN6JCN9RcmAAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"boxplot_pi(lm, X_test, y_test)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"id": "X8bwlzZDcu2G",
"outputId": "d0b2b71e-3aa7-44bf-a6e0-6a44345f331c"
},
"execution_count": 37,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
],
"image/png": "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Yfnly5f122+/5ep2enh42H9OTk7WmTNn1KxZM6WkpCg2NjbH/Z08eVJ79uxR7969VbJkSfvy++67Tw899JC++eabTOs89dRTDq+bNWums2fPKikpKcfjS1LNmjXVpEkT++uMffrggw+qcuXKmZYfOXIkUx9Dhgyx/5xxKdPly5e1bt06SdI333wjV1dXPfvssw7rDRs2TJZlafXq1Q7LW7RooZo1a2Z7G679vfz11186c+aMGjduLEn2S3uu9U/7cOXKlUpPT9fo0aMdZmcytk+6Okvy559/qlu3bg7Htaurqxo1amQ/rj08POTm5qbIyEidP38+29skXZ29K1GiRLbb79mzR/Hx8erevbvOnj1rr+nixYtq1aqVNm/erPT0dElS8eLFtWPHDp04cSJHNd1Ixqzjl19+aR/jep9//rmCg4MVFBTksM8yLp3MyT0TJUqU0KVLl+6qe7CArHApFIAC55133lH16tVVqFAhlStXTjVq1LCfkMXHx8uyLAUGBma5buHChR1e33PPPXJzc8uy7bUnupLsIaNSpUpZLs/pidw/OXDggF577TVt2LAh04l8YmJijvs7duyYJKlGjRqZ3gsODtaaNWt08eJFFS1a1L78+n2QceJ5/vx5eXt757gG033q4uKiqlWrOiyrXr26JNnvITh27Jh8fX3l5eXl0C7jErOM/ZDB398/R9tw7tw5jRs3TkuXLtXp06cd3svq9/JP+/Dw4cNycXG5abiJj4+X9L/7ia6X8btwd3fXm2++qWHDhqlcuXJq3Lix2rVrp549e6p8+fL/uG1WDp58lFFTr169btgmMTFRJUqU0JQpU9SrVy9VqlRJoaGhevTRR9WzZ89Mv8vseuKJJzRv3jz1799fL7/8slq1aqVOnTqpc+fODv8WxMTE2O+Xud71v7ubydgv11/mBtxtCBYACpyGDRuqfv36Wb6Xnp4um82m1atXZ/k0pOuv27720+fr3ehpSjdanp2TsmtvvL6ZP//8Uy1atJC3t7fGjx+vgIAAFSlSRNHR0XrppZdu+CltbjPZ1pz0l9vj5MTNjoGsdOnSRd9//71GjBihunXrqlixYkpPT9cjjzyS5e8lN7Yto9+FCxdmGRCunUF7/vnn1b59e61cuVJr1qzRqFGjNGnSJG3YsMHh/onrlSpVKkfhOKOmqVOnqm7dulm2yfh769Kli5o1a6YVK1Zo7dq1mjp1qt58800tX75cbdq0yfaYGTw8PLR582Zt3LhRX3/9tb799lt99tlnevDBB7V27Vq5uroqPT1dtWvX1ltvvZVlH9eH2Zs5f/68PD09c3ysAHcaggUAXCMgIECWZcnf39/+SbYzlChRQn/++afDssuXL+vkyZMOy270CWhkZKTOnj2r5cuXq3nz5vbl1z756p/6uF6VKlUkSYcOHcr0XmxsrEqXLu0wW5Efpaen68iRIw6/27i4OEmy35hcpUoVrVu3TsnJyQ6zFhmXj2Xsh5u50T49f/681q9fr3Hjxmn06NH25Rmf3t+KgIAApaen6+DBgzc8Qc+4mbhs2bIOT226WZ/Dhg3TsGHDFB8fr7p162r69OlatGjRDdcJCgrS4sWLlZiY6HAJ4I32RUZN3t7e2aqpQoUKevrpp/X000/r9OnTCgkJ0YQJE+zBIqezAS4uLmrVqpVatWqlt956SxMnTtSrr76qjRs3qnXr1goICNDevXvVqlWrf+z7n94/evSofcYLuJtxjwUAXKNTp05ydXXVuHHjMn0ibFlWpkeC5pWAgABt3rzZYdkHH3yQacYi40T++hCS8Sn3tdtw+fJlvfvuu5nGKlq0aLYujapQoYLq1q2rBQsWOIy3f/9+rV27Vo8++ug/9pEfzJkzx/6zZVmaM2eOChcurFatWkmSHn30UaWlpTm0k6QZM2bIZrNl6xNyT09PSdn7vUgy+mK3jh07ysXFRePHj88045ExTnh4uLy9vTVx4kRduXIlUx9//PGHpKvfw3L993AEBATIy8vL4RGrWWnSpIksy1JUVJTD8hsdo6GhoQoICNC0adN04cKFG9aUlpaW6fgsW7asfH19HWrK7nEsKdPjnSXZQ1lGn126dNFvv/2mDz/8MFPbS5cu6eLFiw5jX79914qOjrY/CQu4mzFjAQDXCAgI0BtvvKGRI0cqISFBHTt2lJeXl44ePaoVK1Zo4MCBGj58eJ7X0b9/fz311FP697//rYceekh79+7VmjVrVLp0aYd2devWlaurq958800lJibK3d1dDz74oMLCwlSiRAn16tVLzz77rGw2mxYuXJjl5TOhoaH67LPPNHToUDVo0EDFihVT+/bts6xr6tSpatOmjZo0aaJ+/frZHzfr4+OT5fdu5DdFihTRt99+q169eqlRo0ZavXq1vv76a73yyiv2a+nbt2+vBx54QK+++qoSEhJUp04drV27Vl9++aWef/75TI8SzYqHh4dq1qypzz77TNWrV1fJkiV177336t5771Xz5s01ZcoUXblyRffcc4/Wrl2b5UxSdlWrVk2vvvqqXn/9dTVr1kydOnWSu7u7du3aJV9fX02aNEne3t6aO3eu/vOf/ygkJERdu3ZVmTJldPz4cX399ddq2rSp5syZo7i4OLVq1UpdunRRzZo1VahQIa1YsUK///67unbtetM67r//fpUqVUrr1q1zuJcjICBAxYsX13vvvScvLy8VLVpUjRo1kr+/v+bNm6c2bdqoVq1a6tOnj+655x799ttv2rhxo7y9vfX//t//U3JysipWrKjOnTurTp06KlasmNatW6ddu3Zp+vTp9nFychyPHz9emzdvVtu2bVWlShWdPn1a7777ripWrKj7779fkvSf//xHy5Yt01NPPaWNGzeqadOmSktLU2xsrJYtW6Y1a9bYL6kMDQ3VunXr9NZbb8nX11f+/v72BwhERUXp3Llz6tChwy3/joE7xm1/DhUAOEnG42Z37dr1j23/+9//Wvfff79VtGhRq2jRolZQUJA1ePBg69ChQ/Y2LVq0sGrVqpVp3YzHtF7/yM6NGzdakqzPP//8H+tKS0uzXnrpJat06dKWp6enFR4ebv3888+ZHjdrWZb14YcfWlWrVrVcXV0dHrG6bds2q3HjxpaHh4fl6+trvfjii/bHs177GNYLFy5Y3bt3t4oXL25Jsj+yM6vHzVqWZa1bt85q2rSp5eHhYXl7e1vt27e3Dh486NAm41Gp1z/OM2Nbjx49mmm/XetGj5tt27ZtpraSMj2KNKvfQUafhw8fth5++GHL09PTKleunDVmzJhMj2lNTk62XnjhBcvX19cqXLiwFRgYaE2dOtXhsag3GjvD999/b4WGhlpubm4Oj5799ddfrccee8wqXry45ePjYz3++OPWiRMnMj2eNqf78OOPP7bq1atnubu7WyVKlLBatGhhfffddw5tNm7caIWHh1s+Pj5WkSJFrICAAKt3797Wjz/+aFmWZZ05c8YaPHiwFRQUZBUtWtTy8fGxGjVqZC1btizLbbzes88+a1WrVi3T8i+//NKqWbOmVahQoUzH1O7du61OnTpZpUqVstzd3a0qVapYXbp0sdavX29ZlmWlpqZa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1K9fP/n7+8vDw0M1atTQrFmzjDfyyy+/VEhIiIoUKaKqVatq3Lhx+vvvv+3v22w2zZs3T4899pg8PT0VGBior776yqGPr776SoGBgSpSpIgeeOABLViwQDabTX/++aciIyPVp08fJSYmymazyWazaezYsfZ1U1JS1LdvX3l5ealy5cr64IMPblrvN998I3d3dzVu3Nhh+YEDB9SuXTt5e3vLy8tLzZo10+HDhyX97xKxiRMnqly5cipevLjGjx+vv//+WyNGjFDJkiVVsWJFRUREOPRZq1Yt+fr6asWKFbeyawEAAABJOQgWJ0+eVLdu3dS3b1/FxMQoMjJSnTp1kmVZkqTFixdr9OjRmjBhgmJiYjRx4kSNGjVKCxYscOhnxIgRGjZsmHbv3q0mTZqoffv2Onv2rCQpPT1dFStW1Oeff66DBw9q9OjReuWVV7Rs2bJb3sAtW7aoZ8+eeu6553Tw4EG9//77mj9/viZMmODQbty4cerSpYt++uknPfroo3ryySftn+IfPXpUnTt3VseOHbV3714NGjRIr776qn3dsLAwzZw5U97e3jp58qROnjyp4cOH29+fPn266tevr927d+vpp5/W//3f/+nQoUM3rTk0NNRh2W+//abmzZvL3d1dGzZsUFRUlPr27esQkDZs2KATJ05o8+bNeuuttzRmzBi1a9dOJUqU0I4dO/TUU09p0KBBme6paNiwobZs2ZLznQsAAAD8/wplt+HJkyf1999/q1OnTqpSpYokqXbt2vb3x4wZo+nTp6tTp06SJH9/f/uJfK9evezthgwZon//+9+SpLlz5+rbb7/VRx99pBdffFGFCxfWuHHj7G39/f21fft2LVu2TF26dLmlDRw3bpxefvllew1Vq1bV66+/rhdffNHh3oLevXurW7dukqSJEyfq7bff1s6dO/XII4/o/fffV40aNTR16lRJUo0aNbR//357OHFzc5OPj49sNpvKly+fqYZHH31UTz/9tCTppZde0owZM7Rx40bVqFEjy5qPHTsmX19fh2XvvPOOfHx8tHTpUhUuXFiSVL16dYc2JUuW1Ntvvy0XFxfVqFFDU6ZMUUpKil555RVJ0siRIzV58mRt3bpVXbt2ta/n6+ur3bt333AfpqamKjU11f46KSnphm3zm0uXLkmSYmJicrReRvuM9Z1Rw43kZm0AAAC5JdvB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HZOrq6vKli1rXxYXF6dly5bpu+++U+vWre3753pvvPGGmjZtKknq16+fRo4cqcOHD9vbdu7cWRs3btRLL71kX8fX11eXL1/WqVOnVKVKlUx9pqamOoSOpKSkLOvOS5cuXZIkxcTE5Ok4Gf1njHcrcqPWG9WxZcsWJSQkaMmSJXJxcfxcwMXFRSNHjlRYWJi2bNmili1b3vL4AAAAOXXLwaJx48b2E3VJatKkiaZPn660tDTt27dPaWlpql69usM6qampKlWq1E37jYqK0tixY7V3716dP39e6enpkqTjx4+rZs2aOa5z7969+vnnn+0n9Rn++usvHT582P66Vq1acnV1tb+uUKGC9u3bJ0k6dOiQChUqpJCQEPv71apVU4kSJbJVg5+fn8P4FSpUuOnlXZcuXZK7u7vD/t2zZ49cXV3VokWLm45133332X8uV66cPD09HQJIuXLltHPnTod1PDw8JCnTJVIZJk2apHHjxt103LyWcelajx49btt4GQHtVtaVcqfW6+s4efKkpKv3xmQlY3lGOwAAgNvlloPFzVy4cEGurq6KiopyOFmXdNNZh4sXLyo8PFzh4eFavHixypQpo+PHjys8PNzhsqWc1hIaGqrFixdnei9jlkGSChcu7PCezWazhxpTOe27dOnSSklJ0eXLl+Xm5ibpfyf/ORnLZrNla+xz585Jctwf1xo5cqSGDh1qf52UlKRKlSplq57cknHPyqJFixQcHJxn48TExKhHjx6Z7pHJidyo9UZ1VKhQQZK0f/9+NW7cONN6+/fvd2gHAABwu9xysNixY4fD6x9++EGBgYFydXVVvXr1lJaWptOnT6tZs2ZZru/m5pbpOvDY2FidPXtWkydPtp+4/vjjj7daoiQpJCREn332mcqWLStvb+9b6qNGjRr6+++/tXv3boWGhkqSfv75Z50/f96hXeHChXPl2vaM7704ePCg/efatWsrPT1dmzZtsl8KlVv279+vihUrqnTp0lm+7+7uLnd391wdM6cyglVwcLDDzFFej2eybm7Uen0dzZo1k5+fnyZOnKiVK1c6XA6Vnp6uSZMmyd/f/4Z/dwAAAHnllm/ePn78uIYOHapDhw5pyZIlmj17tp577jlJUvXq1fXkk0+qZ8+eWr58uY4ePaqdO3dq0qRJ+vrrryVd/VT3woULWr9+vc6cOaOUlBRVrlxZ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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"%pip install --quiet shap"
],
"metadata": {
"id": "aEnZLzSgxgMe"
},
"execution_count": 38,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import shap\n",
"\n",
"masker = shap.maskers.Independent(X_train, max_samples=112)\n",
"\n",
"explainer = shap.Explainer(lm.predict, masker)"
],
"metadata": {
"id": "eM9xA30DxaU8"
},
"execution_count": 42,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap_values = explainer(X_test)"
],
"metadata": {
"id": "vTVBK1MVyH0T"
},
"execution_count": 43,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap.plots.waterfall(shap_values[5])"
],
"metadata": {
"id": "yKkqztX-ydYx",
"outputId": "5cf1e437-6a77-46a7-ac81-253a8f6c2dc1",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 386
}
},
"execution_count": 44,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x350 with 3 Axes>"
],
"image/png": "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sWvXLri5ueHNN9+ESqXCvHnz9OV8fX0xYsQInDp1CkeOHIFWq4WjoyNGjRqF//znP/qWymnTpmHLli3YsGEDNBoNbGxs4OPjg88//xzjx4+v09eBiIiIqElTCEDfDkAza8n+7pQ7Qby/Lx8RUVM15lNg6ympoyAiIqIHJQjAN88CLz8qdSSyxVlbiYiIiIiocRFFYGQPAKjVRIv04JhIEhERERFR49KpNeDhDKB09nyqf0wkiYiIiIio8TBTAONC9E+bNWsmXSwyxkSSiIiIiIgajxIdMKqn/qmLi4uEwcgXE0kiIiIiImo83J2AwNb6p3FxcRIGI19MJImIiIiIqHFQmpV2a+WSH5JjIklERERERI2DtgQY3ctgU+vWrSspTHWJiSQRERERETUOdlZAb3+DTfn5+RIFI29MJImIiIiIqOFTKoBRPUq7t94jLS1NooDkjYkkERERERE1fFodMKZX9eWoXjCRJCIiIiKihs9cCQzuUm5zp06d6j8WYiJJREREREQNnJkCGNQZsFaX2xUTEyNBQMREkoiIiIiIGjZd5d1aCwsL6zkYAphIEhERERFRYzA8qMLNdnZ29RwIAUwkiYiIiIioIRMA9PQFmjercLebm1u9hkOlmEgSEREREVHDJQjA48GV7uYYSWkwkSQiIiIiooZLJwKje0odBd1HKXUARET15rXhQF6R1FEQERFRTTS3B3xaVrrbw8OjHoOhMoIoiqLUQRAREREREdVGamoqWrRoIXUYssOurURERERE1GilpqZKHYIsMZEkIiIiIiKiGmHXViIiIiIiarS0Wi2USk79Ut/YIklERERERI1WfHy81CHIEhNJIiIiIiJqtAoKCqQOQZaYSBIRERERUaNlY2MjdQiyxDGSRERERETUaBUWFsLCwkLqMGSHLZJERERERNRoXbp0SeoQZImJJBEREREREdUIE0kiIiIiImq0WrVqJXUIssQFV4iI/ufDEyXYFs9h40Ry5qQG/u8xMzhbCVKHQkRG4pQv0mAiSUQEQCeKWHZWRFq+1JEQkdSOJIkY68tEkqixSE5Ohqurq9RhyA67thIRATidCiaRREREREZiIklEBGBbvA5mbIAgIiJqdDp06CB1CLLERJKICMDGWBElHGJBRETU6Fy/fl3qEGSJiSQRyV58pojYTKmjICIiotrIzc2VOgRZYiJJRLK3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RI1bx44dpQ5BlphIEpFsjWonQMe+rURERI1aRESE1CHIEhNJIpItr2YC2jtKHQURERE9CK6kIA0mkkQka+N8BZixeysREVGj5eTkJHUIssREkohkbRSXASEiImrU7OzspA5BlphIEpGsdWsOtLCSOgoiIiKqrYSEBKlDkCUmkkQka4IgYKyvACXfDYmIiIiMxj+diEj2RrcToNVJHQURERHVhpeXl9QhyBITSSKSvX4eAmxUUkdBREREtXH37l2pQ5AlJpJEJHvmZgKGewlQcvZWIiKiRicjI0PqEGSJiSQREYDRPgK0nL2ViIio0VEomNJIga86ERGAR9uyRZKIiKgx6tSpk9QhyBITSSIiAHYWAh72lDoKIpKaQgDcbfmtElFjEhUVJXUIsqSUOgAioobil6FmSMuTOgoikpKtOdDOgYkkUWNSUlIidQiyxESSiOh/WtkKaGUrdRRERERUEw4ODlKHIEvs2kpERERERI2Wk5OT1CHIEhNJIiIiIiJqtOLj46UOQZaYSBIREREREVGNMJEkIiIiIqJGq02bNlKHIEtMJImIiIiIqNHSaDRShyBLTCSJiIiIiKjRSk9PlzoEWWIiSURERERERDUiiKIoSh0EERERERERNR5skSQiIiIiokbrwoULUocgS0qpAyAiInpgd3KA45ekjoIai34BgL211FEQkYkUFxdLHYIsMZEkIqLG78kvgD0RUkdBjcWPLwHPDJQ6CiIyEXt7e6lDkCV2bSUiosYvPUfqCKixUCiALX9LHQURmVDz5s2lDkGWmEgSERGRfOh0wN4IILdA6kiIyERiY2OlDkGWmEgSERGRvBRpgT3npY6CiKhRYyJJRERE8qI0A7aekjoKIjIRT09PqUOQJSaSREREJC/aktJEUlsidSREZAIFBeyqLgUmkkRERCQ/2XnA8ctSR0FEJpCWliZ1CLLERJKIiIjkR2kGbOXsrUREtcVEkoiIiORHWwJsPAGIotSRENEDCgwMlDoEWWIiSURERPKUdAeITpQ6CiJ6QFz+QxpMJImIiEiezBTs3krUBBQWFkodgiwxkSQiIiJ5KtEBm05KHQURPSBbW1upQ5AlJpJEREQkXxHXgBvpUkdBRA+gVatWUocgS0wkiYiISL4EAdgeLnUURPQALl/mUj5SYCJJRERE8iUA2MzurURENcVEkoiIiORLJwKH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ogasqbZIajQa9OzZE6dOnYKNjY3U4RB4TxoiU9+T1NRU9O/fHwcOHECLFi1MEKG88Hek4eE9aVh4P+TXIslEkojqXXZ2Nuzt7ZGVlQU7OzupwyHwnjREpr4nSUlJ8PDwwI0bN+Du7m6CCOWFvyMND+9Jw8L7IT+cbIeIiIiIiIhqhIkkERERERER1QgTSSKqdxYWFnjvvfcaxAxrVIr3pOEx9T2xs7NDv3792OWslvg70vDwnjQsvB/ywzGSREREREREVCNskSQiIiIiIqIaYSJJRERERERENcJEkoiIiIiIiGqEiSQRERERERHVCBNJInpgsbGxWLBgAYKDg+Hi4gJbW1t06dIFH3/8MXJzc40+j1arxddff41u3brB2toa9vb26NatG1asWFGH0TdNprgnoihizZo1CA0NhbOzM2xtbREQEIAPPvgA2dnZdXwFTU9MTAwmT56M9u3bw97eHlZWVvD398frr7+OlJQUo8/z559/IjQ0FNbW1nB0dMT48eORkJBQh5E3TQ96PzIzM/HVV19h8ODB8PDwgKWlJfz8/PD888/jxo0b9XAFTY+pfkfuNXHiRAiCgI4dO5o42qbPVPeDn+1NF2dtJaIHNnfuXHz77bcYOXIkgoODoVKpcPDgQfz+++/o1KkTTp48CUtLyyrPUVRUhJEjR+LgwYOYPHkygoODodVqERcXB0tLS3zyySf1dDVNgynuyfz58/HJJ5+gf//+GD16NFQqFQ4dOoT169ejV69eOHHiBARBqKcravz279+Pjz/+GMHBwXB3d4dSqURUVBRWrlwJOzs7nD9/Hq6urlWeY/PmzRg3bhw6d+6M5557DllZWVi6dCnMzMxw+vRptGzZsp6upvF70Puxe/duDB8+HAMGDED//v3h7OyM6OhorFixAubm5vjrr7/QoUOHeryixs8UvyP32rFjB0aNGgULCwt4eXkhOjq6DqNvekxxP/jZ3sSJREQPKDw8XLx792657fPnzxcBiN98802153jnnXdEMzMz8cCBA3URouw86D0pLi4WraysxG7duoklJSUG+yZPniwCEM+dO2fKkGXr999/FwGIixYtqrJcUVGR2LJlS9HT01PMycnRbz937pyoUCjE5557rq5DlQVj70dCQoIYHx9fbvvevXtFAOLjjz9eVyHKjrH35F45OTmih4eH+Morr4itW7cW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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"X_test.iloc[5]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 209
},
"id": "LnqyOi0TptRT",
"outputId": "5602029e-4fc4-4a7d-cef9-e82ff2bc3a40"
},
"execution_count": 59,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"sepal length (cm) 5.4\n",
"petal length (cm) 1.5\n",
"petal width (cm) 0.4\n",
"class 0.0\n",
"Name: 31, dtype: float64"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>31</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>sepal length (cm)</th>\n",
" <td>5.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal length (cm)</th>\n",
" <td>1.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal width (cm)</th>\n",
" <td>0.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div><br><label><b>dtype:</b> float64</label>"
]
},
"metadata": {},
"execution_count": 59
}
]
},
{
"cell_type": "code",
"source": [
"y_test.iloc[5].item()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Mr1LjyQr61Es",
"outputId": "3bfbf461-0148-40f9-e491-99ba28407c8e"
},
"execution_count": 50,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"3.4"
]
},
"metadata": {},
"execution_count": 50
}
]
},
{
"cell_type": "code",
"source": [
"y_test[:10].tolist()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bRdknk72qviM",
"outputId": "8dc32596-1e25-4cd5-9b6e-6d82141d535f"
},
"execution_count": 46,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[2.8, 3.8, 2.6, 2.9, 2.8, 3.4, 2.9, 3.1, 2.2, 2.7]"
]
},
"metadata": {},
"execution_count": 46
}
]
},
{
"cell_type": "code",
"source": [
"lm.predict(X_test)[:10]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "G47VzGtk5Tzw",
"outputId": "8ea02431-ba0b-4715-eee8-b7003165ac72"
},
"execution_count": 51,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2.68882271, 3.67002562, 3.38976912, 2.87491372, 3.0414682 ,\n",
" 3.65914168, 2.72435311, 3.34795138, 2.94223694, 2.68893794])"
]
},
"metadata": {},
"execution_count": 51
}
]
},
{
"cell_type": "code",
"source": [
"X_test.mean()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 209
},
"id": "cX70r-wm3er7",
"outputId": "fc119976-a850-4390-ee11-8b445f5f3f39"
},
"execution_count": 52,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"sepal length (cm) 5.881579\n",
"petal length (cm) 3.613158\n",
"petal width (cm) 1.155263\n",
"class 0.921053\n",
"dtype: float64"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>sepal length (cm)</th>\n",
" <td>5.881579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal length (cm)</th>\n",
" <td>3.613158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>petal width (cm)</th>\n",
" <td>1.155263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>class</th>\n",
" <td>0.921053</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div><br><label><b>dtype:</b> float64</label>"
]
},
"metadata": {},
"execution_count": 52
}
]
},
{
"cell_type": "code",
"source": [
"y_train.mean().item()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bP7drKft7Tjr",
"outputId": "4764f3ce-b33b-40b2-d26a-7900eaa33b67"
},
"execution_count": 55,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"3.0401785714285716"
]
},
"metadata": {},
"execution_count": 55
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.waterfall(shap_values[0])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 386
},
"id": "2TTNLtkDH8rt",
"outputId": "ac9dc0a6-e105-4547-bee1-2b6acdbfbee7"
},
"execution_count": 57,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x350 with 3 Axes>"
],
"image/png": "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rT/QpknZ7RjKppPAG9KOFjJ6Yjns3r1bXLp0qfj777+LW7duFSMjI8Xr16+L69evF5cuXSpev369PIcTRVEUd+7cKS5durTc+61Zs0ZcunSpXl9lxRUWFiYCECdNmlRqvT/++EMEIL711lta5YWFhaK/v7/o4OAgpqWliaIoijExMSIAURAE8c8//9TUVavVYvfu3UUA4u+//64pT09PF1UqldZxVSqV2KpVK9HMzExMSEjQlP/4448iAPGnn34q/U0SRXH69OkiAHHfvn2asokTJ4pyuVzcvHmzVt2bN2+K5ubmYpcuXUS1Wq3VVuPGjcXU1FRN3fj4eNHU1FQMDQ3VlIWHh4sAxObNm4s5OTma8nPnzomCIOjEMXToUBGAePv2bZ24i7f17dtXVCqVmvKVK1eWeA1K8vbbb4sAxI0bN+pse/bZZ0UA4ttvv60512KPtvekOKZMmSICEOvXry/euHFDU37+/HkRgDh8+HCdNuPj40UAYr9+/cqM/VH37t0T8/LyNK8zMzPFjIwMzev8/HytayOKopiYmFjq66SkJK3zNtY24uLijOI82AbbYBtsw+jbWHtYFDGs6r+6fizqzeOlon0yc0Tx1726x+o/p6hen9lPbq/1O0V1xn+ru+2r/+7D6o16WPb6z0XtFYu8LYrvrCj6/5vLqv79afKqcX1fVXMb+ihXz1dhYVGGLpfLMWjQIE1vkqenJ/744w+cPn0afn5+1TKksEePHnoPx7O3L6U7GICtrS0A4Ny5c4iIiIC/v3+J9ZYtWwYzMzNMnDgRCQkJWtsGDhyIb775BsePH9daVa9p06YYOXKk5rUgCPj888/RuXNnbNmyBc899xwAwMbm4bMecnJykJaWBrVajd69e+P8+fM4deoUhg8frtf5lkYURWzevBl+fn5o06aN1nnI5XIEBwcjLCwM6enpsLOz02wbNWoUHBwednc3atQI7u7uSExMRGFhIeRyOdavXw8AmDRpktYwv1atWqFjx444duxYueN98803tXotBwwYAAC4efNmmfveuXMHAODsrD12Wa1WY/v27XB1dcXcuXN1vl9L6iV9PI4+ffpg2bJl6NWrF7y9Hz7no2XLlrCwsND0Ej+q+P27f/9+mbE/6vHvXysrK63X9erV07o2AHRWHX38dYMGDepEG2ZmZloradbW82AbbINtsA3jbyMa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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## The Waterfall Plot\n",
"\n",
"- The plot is dubbed “waterfall” because each step resembles flowing\n",
"water. Water can flow in either direction, just as SHAP values can be\n",
"positive or negative. Positive SHAP values point to the right.\n",
"- The y-axis exhibits the individual features, along with the values for\n",
"the selected data instance.\n",
"- The feature values are ordered by the magnitudes of their SHAP values.\n",
"- The x-axis is on the scale of SHAP values.\n",
"- Each bar signifies the SHAP value for that specific feature value.\n",
"- The x-axis also shows the estimated expected prediction $\\mathbb{E}(𝑓(𝑋))$ and\n",
"the actual prediction of the instance $𝑓(𝑥^{(𝑖)})$.\n",
"- The bars start at the bottom from the expected prediction and add up\n",
"to the actual prediction."
],
"metadata": {
"id": "nx0JDAUVQn9O"
}
},
{
"cell_type": "code",
"source": [
"shap.plots.beeswarm(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 329
},
"id": "uy26MdaIHqVk",
"outputId": "d674bab3-9212-44bf-ac65-d98d02ed8c83"
},
"execution_count": 58,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x310 with 2 Axes>"
],
"image/png": "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SE72wc2bN03mqVGjBvPnzzdI++uvv5g2bRrnz5/H09OT3r17M2jQIBRFseRm5FpO9sM///zDihUr+PPPP7l79y4+Pj60adOGV199FUdHR32+wnYshIaGMmXKFP7++2+cnZ3p1KkTb7zxBra2to99n6qqLFiwgOXLlxMZGUmlSpUYM2YMNWvWNMh39+5dpkyZwuHDh7GxsaF169a8/fbbheoeADnZB/fu3WPJkiUcPnyYGzdu4OLiQt26dRk5ciS+vr76fMeOHWPYsGFG72/Xrh2ff/55nmxPTuX0WOjatSu3bt0ySt+/fz/29vb650X1WDD3GQOULVuWlStXPjZfYTsWrl+/zqJFizh9+jSXLl2ibNmy/Pbbb098X1H6ThBZJ8GHEDl08uRJ3nnnHbp3787YsWM5evQo//vf/3BycqJt27Zm39ejRw+aNm1qkHbixAl++OEHo3R7e3t++ukng7TSpUtbbiNyKaf7IMOIESMICgrSP3dycjJ4/fr167z55ps0atSI4cOHc+HCBaZPn45Wq2XgwIEW356cyul+2LZtG9evX+ell17C39+fy5cvExISwunTp40+98JyLERHRzNs2DD8/f356quvuHPnDlOnTiUxMZH33nvvse9dsGABISEhjBw5kooVK7J8+XJGjhzJkiVL8PPzAyA1NZWRI0cC8Mknn5CYmMh3333HxIkTmTZtWl5vXpbkdB/8+++/7Ny5k27dulGzZk0iIyOZPXs2gwYNYtmyZXh6ehrk/+ijjwyWyPTw8MijLcqZ3BwLAG3atGHAgAEGaQ+veFSUj4UqVaowb948g7S4uDhGjRpl9DsAhf9YuHTpEvv376d69erodDp0Ol2W3ldUvhNENqlCiBwZMWKEOnjwYIO0999/X+3du3e2y/roo4/U1q1bq8nJyfq0n376SW3evHmu25mXcroPwsLC1Pr166vbtm17bL5PPvlE7dKli8F+mT59utqqVSs1KSkp5w23sJzuh4iICKO0TZs2qfXr11fPnDmjTytMx8LcuXPV5s2bq5GRkfq0lStXqg0bNlTv3Llj9n2JiYlqcHCwOn36dH1acnKy2qVLF/Xzzz/Xp23atEkNCgpSr1y5ok87ePCgWr9+ffXUqVOW3Zgcyuk+iI6OVlNSUgzSbt++rQYFBamLFi3Spx09elStX7+++s8//1i+8RaU0/2g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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## The Summary (or Beeswarm) Plot\n",
"- The x-axis represents the SHAP values, while the y-axis shows the\n",
"features, and the color indicates the feature's value.\n",
"- Each row corresponds to a feature.\n",
"- The feature order is determined by importance, defined as the average\n",
"of absolute SHAP values: $𝐼_𝑗 =\\frac1n\\sum_{i=1}^n\\phi_j^{(i)}$\n",
"- Each dot represents the SHAP value of a feature for a data point,\n",
"resulting in a total of 𝑝 ⋅ 𝑛 dots."
],
"metadata": {
"id": "Dx2ZAkoiRKBI"
}
},
{
"cell_type": "code",
"source": [
"shap.plots.bar(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 354
},
"id": "OV2zeVLzIp2X",
"outputId": "2f6a0d41-a696-4250-fc16-212620efa009"
},
"execution_count": 60,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x350 with 1 Axes>"
],
"image/png": "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ImJOFuPubZhEspioqCh8fHyILNoV77/CMjscERERkZQpkdc67erfrX0fdVqDIiIiIiIipqEERURERERETEMJioiIiIiImIYSFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqahBEVERERERExDCYqIiIiIiJiGEhQRERERETENJSgiIiIiImIaSlBERERERMQ0nDM7AJF0E+wPTq6ZHYWIiIhIyhTKldkRmIoSFHl4THwNvLwzOwoRERGRlPNwy+wITEMJijw8AnOCtxIUERERkaxMa1BERERERMQ0lKCIiIiIiIhpKEERERERERHTUIIiIiIiIiKmoQRFRERERERMQwmKiIiIiIiYhhIUERERERExDSUoIiIiIiJiGkpQRERERETENJSgiIiIiIiIaShBERERERER01CCIiIiIiIipqEERURERERETEMJioiIiIiImIYSFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGk4Z3YAIunm3GW4eiuzoxARkQfNww18PDI7ChFJJ0pQ5OHRYzKcjsrsKERE5EEqlAumdleCIvIQUYIiD4+T4fBXWGZHISIiIiJpoDUoIiIiIiJiGkpQRERERETENJSgiIiIiIiIaShBERERERER01CCIiIiIiIipqEERURERERETEMJioiIiIiImIYSFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqahBEVEREQkKVeuQdcvIaATeLSF2gNg37GUX+fmLXj8f2B5EUYvTbzOsfPQ7nPI1Qnc20Cx7tBvThqCF8maHtkEpWvXrlgsFg4ePJih7QQEBFCmTJlk1R0xYgQWi4WFCxcmq3563sO2bdtwcnIiNDQ0zddKjejoaPz8/Hj99dczpX0REREH8fHQeBiEboEeDWFUB7gYCbUGwJ9nU3atCSvh7/Ckj+8/ARV6w68noVcTmPB/0LYGnL2cplsQyYqyXIIyYsQI3nvvvcwO44FZuHAhXbt25cKFCxnazltvvUWpUqVo165dhraTFC8vL9544w1mzpzJsWOp+M2UiIhIStX6CDpNSPr4wh2w/SjM6AEDX4LuDWHTEHDKBgPnJ7+di1dgyHfwfrPEj8fHwyvjoGRe2DMK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KCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqahBEVEREREREzDObMDEEk3wf7g5JrZUYiIyINUKFdmRyAi6UwJijw8Jr4GXt6ZHYWIiDxoHm6ZHYGIpCMlKPLwCMwJ3kpQRERERLIyrUERERERERHTUIIiIiIiIiKmoQRFRERERERMQwmKiIiIiIiYhhIUERERERExDSUoIiIiIiJiGkpQRERERETENJSgiIiIiIiIaShBERERERER01CCIiIiIiIipqEERURERERETEMJioiIiIiImIYSFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqbhnNkBiKSbc5fh6q3MjkLEvDzcwMcjs6MQERG5JyUo8vDoMRlOR2V2FCLmVCgXTO2uBEVERExPCYo8PE6Gw19hmR2FiIiIiKSB1qCIiIiIiIhpKEERERERERHTUIIiIiIiIiKmoQRFRERERERMQwmKiIiIiIiYhhIUERERERExDSUoIiIiIiJiGkpQRERERETENJSgiIiIiIiIaShBERERERER01CCIiIiIiIipqEERURERERETEMJioiIiIiImIYSFBERSZsr16DrlxDQCTzaQu0BsO/Y/c+Lj4cZG6DJcMj/mvXc0m/DsAVwPe7e5249DJYXra/wqHS5DRERMYeHNkE5ePAgFouFrl273rfuwoULsVgsjBgx4gFEln5GjBiBxWJh4cKFab7WqVOnyJEjB0OGDEmHyFIuPj6ewoUL07Bhw0xpX0RSKT4eGg+D0C3QoyGM6gAXI6HWAPjz7L3PjbkBr06EsCh4oz6M7QyVisHA+dBwGBhG0m2+NQU8sqf//YiISKZ7aBOUh8XGjRvp2rUrBw8ezNB2evTogbe3Nx988EGGtpOUbNmy0bdvX9asWcPGjRszJQYRSUStj6DThKSPL9wB24/CjB4w8CXo3hA2DQGnbNZE415cnWHbcNgxEvq1hNeeg2k9YGBr2HQQ1v+W+Hnf/Ainw6HLs6m/LxERMS0lKCa3c+dOJk+ezJEjRzKsjaNHj7Jy5Uo6duyIq6trhrVzP6+99hoBAQEMHDgw02IQkRRauANy+8KLVf4rC/CB1tVg2S64cTPpc11doFpJx/Lmla1fD59xPHY5GvqHwpA24OuR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S+nSpVmxYgWRkZE4OTlRsGBB+vfvz//+97/MDk9EREREJNNkeoKSUdvnmlnevHnZsGFDZochIiIiImI6WoMiIiIiIiKmoQRFRERERERMQwmKiIiIiIiYhhIUERERERExDSUoIiIiIiJiGkpQRERERETENJSgiIiIiIiIaShBERERERER01CCIiIiIiIippHpT5IXSTfB/uDkmtlRiJhToVyZHYGIiEiyKEGRh8fE18DLO7OjEDEvD7fMjkBEROS+lKDIwyMwJ3grQRERERHJyrQGRURERERETEMJioiIiIiImIYSFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqahBEVERERERExDCYqIiIiIiJiGEhQRERERETENJSgiIiIiImIaSlBERERERMQ0lKCIiIiIiIhpKEERERERERHTUIIiIiIiIiKmoQRFRERERERMQwmKiIiIiIiYhnNmByCSbs5dhqu3MjsKkZTzcAMfj8yOQkRExBSUoMjDo8dkOB2V2VGIpEyhXDC1uxIUERGRfylBkYfHyXD4KyyzoxARERGRNNAaFBERERERMQ0lKCIiIiIiYhpKUERERERExDSUoIiIiIiIiGkoQREREREREdNQgiIiIiIiIqahBEVERERERExDCYqIiIiIiJiGEhQRERERETENJSgiIiIiImIaSlBERERERMQ0lKCIiIiIiIhpKEERERERERHTcM7sAEREJINcuQbvzYIlP0PMDahUDMZ0hPJF7n1efDzM2gSLd8IvJ+DyVSiUC9rUgN5NIburff0vV8OGA/Dzn3A6HDrWhhlvZdhtiYjIw+2hHUHp2rUrFouFgwcP3rdugwYNsFgsDyCq9FWmTBkCAgLS5VoDBgzA3d2df/75J12ul1IbN24kW7ZsLFq0KFPaF3noxMdD42EQugV6NIRRHeBiJNQaAH+evfe5MTfg1YkQFgVv1Iexna3JzcD50HAYGIZ9/U+WWBOUJ/KDs1PG3ZOIiDwSTDeCMmLECCIiIhg1alRmh2IKD6I/wsLCGDt2LO3btydv3rwZ1s691K5dm2rVqvH+++/TvHlzsmV7aHNnkfRR6yMIzpX0SMXCHbD9KCzoDS2rWctaV4PiPayJRui7SV/b1Rm2DYdqJf8re+05a3sD58H636Buuf+O/TQU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LVrE3r17qV27No0bN051PGvXruX06dP83//9X5J1WrRowaBBg5g6dSoVK1ZMdVuJ6dixI8uXL6dXr174+PjQrFkzu+Pp8f1o27YtH374IV27duXIkSPkzJmT1atXJ/q0+4oVKzJo0CAGDRrEk08+SatWrQgKCuLcuXPs3buXlStXEhcXl6x7W7lyJf7+/tSuXTtZ9UXkwVOCIiIimaZ+/frs3r2bkSNHMnv2bMLCwvDz86NIkSL07NmTsmXLAtbf2K9YsYLevXszc+ZMrl27RunSpZk5cya//vprmhOU1157jWHDhhEaGkqvXr3uW79///4sWLCAzZs3s2bNGi5fvoyHhwelSpVizJgxdO/enWzZUj9JYerUqQC8+OKLSdYpXbo0xYsXZ968eXz++ee4u7unur27Pf/88+TMmZPLly/TpUsXsmfPbnc8Pb4f3t7erFy5kp49ezJ8+HA8PT158cUXmT17tm2zhTsNHDiQkJAQxo8fz9ixY7l27Rq5cuWidOnSST5c8m7Xrl1j8eLFdOvWTU+RFzExi5HSbUtEREQeQm+88QZr167l6NGjtocRgvWJ55s2beLkyZOZF5ykyIwZM3j11Vc5ceIEwcHBtvKEB0r++eefyRopE5HMoTUoIiIiwJAhQ7h06RLTp0/P7FAkA8TGxjJy5Ej69Omj5ETE5DTFS0REBMiVKxeRkZGZHYZkEHd3d86dO5fZYYhIMmgERURERERETENrUERERERExDQ0giIiIiIiIqahBEVERERERExDCYqIiIiIiJiGEhQRERERETENJSgiIiIiImIaSlBERERERMQ0lKCIiIiIiIhpKEERERERERHT+H9cQwKFbjMjGgAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.partial_dependence(\n",
" \"sepal length (cm)\", lm.predict, X_test, ice=False,\n",
" model_expected_value=True, feature_expected_value=True\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 474
},
"id": "F-MSZ5XUHRbr",
"outputId": "d2148809-16be-4bc6-e4d3-2f3c9c304aec"
},
"execution_count": 61,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 4 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAHJCAYAAAABy9S+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgO5JREFUeJzt3XV0FFcbBvBnZpNs3AkETQLFCcGhuGuA4lKkUCg1arSFtmiLFSl1obgUSot8QHB39wBFAhQn7rZzvz8Cu2yTkGSzyUqe3zk5h71j72TJ5sm9M3ckIYQAEREREVkc2dQFEBEREZFhGOSIiIiILBSDHBEREZGFYpAjIiIislAMckREREQWikGOiIiIyEIxyBERERFZKAY5IiIiIgvFIEdERERkoRjkiPJg0qRJkCQpy68ZM2YAAG7duqXXfvfuXRNXnb3FixdDkiSEh4dnu87evXshSRJOnjxZiJXpi46OxqRJkxAaGqrX/ux7/ddffxm87/r16+PHH3/Mb4m5smLFClSpUgUajUav/ZdfftH+f6levXqh1EJE1oFBjiiPHBwccOTIkUxfgwcP1ltv2rRpOHLkCHx8fExUqfWIjo7G5MmTMwW5/Fq3bh1u3bqFYcOGGXW/2enXrx9SUlKwdOlSvfYePXrgyJEj6NSpU6HUQUTWw8bUBRBZGlmW0bBhwxzXe+mll3K1HpnOvHnz0L9/fzg4OBTK8VQqFYYOHYrvvvsOr732mrbdx8cHPj4+KFasGG7fvl0otRCRdWCPHFEhWrhwIapVqwYHBwd4eXmhSZMmOHHihHa5EAKzZ89GxYoVoVarERAQgG+++UZvH5MmTYKzszNOnDiB+vXrw97eHlWqVMGmTZv01tu8eTPatm0LHx8fuLq6okGDBti6datRziMvdV64cAFNmjSBo6Mjqlevjm3btumtl5qaitGjR8PT0xPu7u544403sHLlSkiShFu3buHWrVvw9/cHAPTu3Vs7BHnr1i3tPpKTk/HOO+/Aw8MDvr6+GDNmDNLT0194DmFhYThw4AB69eqVadnmzZvRuHFjODo6wsPDAy1atMCZM2cA6Iaat23bhj59+sDZ2Rlly5bFypUrAQDfffcdypYtC09PT7z++utISUnR23fv3r1x9uxZnDt3LnffbCKiF2CQIzJAenp6pq+c7N+/H8OHD0enTp0QEhKCpUuXonXr1oiOjtau895772HChAkYMmQINm/ejKFDh+LTTz/FL7/8orevtLQ09O3bF0OGDMHatWtRoUIFvPLKK7hw4YJ2nbCwMAQHB2PZsmX4+++/0bhxY3Tq1Al79+7N9/nnpc6BAwdi6NChWLduHXx8fNCzZ09ERERo1xk7dix+/fVXfPrpp1i9ejUURcHYsWO1y319fbF27VoAuuHqI0eOwNfXV7vO559/DlmW8eeff2LUqFGYM2cOfv/99xeew65du2BjY4P69evrta9evRrBwcHw8fHBypUrsWLFCjRu3Bj37t3TW+/NN99E9erVsW7dOjRs2BCDBg3Cp59+im3btuGXX37BlClTsHTpUsyZM0dvuypVqsDDwwM7duzIxXeaiCgHgohybeLEiQJAll8HDhwQQggRFhYmAIg1a9bobTtr1izh6emZ7b6vX78uJEkSv/76q177p59+KkqUKCE0Go1eDQsWLNCuk56eLvz9/UW/fv2y3LdGoxFpaWmiXbt2on///tr2RYsWCQDiyZMn2da1Z88eAUCcOHHCoDo3b96sXefZ92bZsmVCCCEiIiKEvb29mDJlit6+WrduLQCIsLAwve3++z191t67d2+99ubNm4vWrVtne05CCDFy5EhRrVo1vTZFUUTp0qVF+/btc/x+fPLJJ9q26OhooVKpRJkyZURqaqq2vWfPniIoKCjTPpo3by569eqVqX3IkCGZaiIiehH2yBHlkYODA06cOJHpKygo6IXb1a5dG5GRkRg6dCh27NiBxMREveU7d+4EAPTs2VOvp69NmzZ4+PAh/v33X731X3nlFe2/VSoVunfvjmPHjmnb7t69iyFDhqBUqVKwsbGBra0ttm/fjn/++Sdf55+XOmVZRps2bbSv/fz84ODgoL2T98KFC0hOTkbXrl31jtGtW7c81dSuXTu911WrVs3xbuEHDx6gWLFiem1Xr17F3bt3c3XzQ9u2bbX/dnNzg4+PD5o1awZbW1tte8WKFTO9bwDg7e2NBw8e5HgMIqKc8GYHojySZRl169bN83atWrXCsmXL8O2336J9+/awt7dHr169MG/ePHh6eiI8PBxCCHh7e2e5/b///oty5coBAGxtbeHh4aG3vHjx4tpwoCgKunbtipiYGEyZMgUVKlSAk5MTJkyYgDt37uS59uflpU4HBwfY2dnpLbezs0NycjIA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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.scatter(shap_values[:,\"sepal length (cm)\"], color=shap_values)"
],
"metadata": {
"id": "cyPGqs1CgSeO",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 470
},
"outputId": "1b44f4fe-8add-4f16-8910-7c214f4d319f"
},
"execution_count": 62,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 750x500 with 3 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## The Dependence Plot\n",
"- Mathematically, the plot contains these points: $\\{(x_j^{(i)}, \\phi_j^{(i)})\\}_{i=1}^n$.\n",
"- The $x$-axis represents the feature value, and the $y$-axis represents the SHAP value.\n",
"- The grey histogram indicates the distribution of the feature values."
],
"metadata": {
"id": "rf2j3hvLg6DQ"
}
},
{
"cell_type": "code",
"metadata": {
"id": "U-WxMmdxNRB_",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "4273208f-4d6d-412e-8e0d-8e4a68a987d6"
},
"source": [
"print(\"The hyper-parameters for a linear model are:\")\n",
"for param_name in LinearRegression().get_params().keys():\n",
" print(param_name)"
],
"execution_count": 63,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"The hyper-parameters for a linear model are:\n",
"copy_X\n",
"fit_intercept\n",
"n_jobs\n",
"positive\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"%pip install --quiet interpret"
],
"metadata": {
"id": "Z2_s7mrGO3Ro",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "b403472c-78a0-444b-ccab-6c28b9badf5f"
},
"execution_count": 64,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/4.0 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/4.0 MB\u001b[0m \u001b[31m59.5 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m4.0/4.0 MB\u001b[0m \u001b[31m59.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.0/4.0 MB\u001b[0m \u001b[31m44.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m47.2/47.2 kB\u001b[0m \u001b[31m3.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.6/15.6 MB\u001b[0m \u001b[31m44.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m9.8/9.8 MB\u001b[0m \u001b[31m45.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.3/7.3 MB\u001b[0m \u001b[31m65.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m69.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m780.1/780.1 kB\u001b[0m \u001b[31m42.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.9/4.9 MB\u001b[0m \u001b[31m56.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m270.7/270.7 kB\u001b[0m \u001b[31m20.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h Building wheel for dash-cytoscape (setup.py) ... \u001b[?25l\u001b[?25hdone\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"from interpret.glassbox import ExplainableBoostingRegressor\n",
"\n",
"model = ExplainableBoostingRegressor(interactions=0)\n",
"model.fit(X_train, y_train)"
],
"metadata": {
"id": "_rPpM48ZO6K7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 80
},
"outputId": "ffb4a55c-6953-47ab-ff31-9af258bc978e"
},
"execution_count": 65,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"ExplainableBoostingRegressor(interactions=0)"
],
"text/html": [
"<style>#sk-container-id-3 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-3 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-3 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-3 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-3 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-3 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-3 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-3 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-3 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-3 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-3 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-3 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-3 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-3 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>ExplainableBoostingRegressor(interactions=0)</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-15\" type=\"checkbox\" checked><label for=\"sk-estimator-id-15\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>ExplainableBoostingRegressor</div></div><div><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>ExplainableBoostingRegressor(interactions=0)</pre></div> </div></div></div></div>"
]
},
"metadata": {},
"execution_count": 65
}
]
},
{
"cell_type": "code",
"source": [
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, model.predict(X_train)),\n",
" median_absolute_error(y_test, model.predict(X_test))))"
],
"metadata": {
"id": "X4UJo6OQO-qY",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c5329ddf-5af0-4403-be2c-296398e44119"
},
"execution_count": 66,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.128, test error: 0.222\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"explainer = shap.Explainer(model.predict, X_train)\n",
"shap_values = explainer(X_test)"
],
"metadata": {
"id": "bLLMyhyBPLdu",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c2f68dba-4a8c-4ad6-e2a9-ca57aa87a737"
},
"execution_count": 67,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"WARNING:shap:Background dataset has 112 samples but max_samples=100. Subsampling to 100 samples for SHAP value computation. To use all samples, set max_samples=112 when initializing the masker.\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.partial_dependence(\n",
" \"sepal length (cm)\", model.predict, X_test, ice=False,\n",
" model_expected_value=True, feature_expected_value=True\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 474
},
"id": "nfrivdtmuLjL",
"outputId": "98cf0916-14bc-427c-850b-7adfca66e516"
},
"execution_count": 68,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 4 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.scatter(shap_values[:,\"sepal length (cm)\"])"
],
"metadata": {
"id": "In-eiIZjPPqJ",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 470
},
"outputId": "42617d58-deba-4724-c7b9-4a1809b13126"
},
"execution_count": 69,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x500 with 2 Axes>"
],
"image/png": "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u4fc3Nxy20UiEc6dO2eAyohqxtFazDlCRERGymjCUGxsLNatWwcHBwd07doVdnZ2hi6JiIiITIDRhKFdu3bBx8cHK1asKPd4PREREVFt0XoCdWFhIaKjo5GYmKjXQgoKChAYGMggRERERHVK6zBkbW2NI0eOQCaT6bWQ9u3b4+HDh3o9JxEREVF1dHq0vk2bNrh//75eC5k2bRp2796NGzdu6PW8RERERFXRaUzqzTffxKJFizB8+HC0atVKL4X4+Pjg888/R0REBLp06QIXFxc0aqSe1UQiEebOnauX6xEREREBOoahtLQ0tGjRAuPGjcMrr7yCli1bwtLSUm0fkUiESZMmaXzOK1euICoqCgqFAr/99ht+++23cvswDBEREZG+6RSG1q1bp/rnpKSkCvfRNgwtWbIE5ubmWLp0Kbp37w5bW1tdSiMiIiLSik5hKD4+Xt914L///S8mT55c7cKtRERERPqkUxhycXHRdx1wcHCAubm53s9LREREVJUaL9Sak5ODa9eu4dq1a8jJydH5PCNGjMChQ4egUChqWhIRERGRxnR+w+Eff/yBJUuWICUlRa3d29sbs2fPxksvvaTV+by9vXH69GlERERgzJgxcHNzK/c0GQC8/PLLupZMREREVI5IEARB24NSU1MxceJEFBcXo3///mjTpg0A4Pbt2zh16hQsLS2xYcMGtG3bVuNz9ujRQ70wkUjtsyAIEIlEOH/+vLbl1isymQz+/v5ISkpC48aNDV0OERFRg6dTz9DatWthZmaG9evXl+sBSk1NxeTJk7FmzRosXrxY43POmzdPl1KIiIiIakSnMHTx4kWMHTu2wqEwT09PjBkzBrt379bqnMHBwbqUQmQQ0kIlrj9SwKu5GRytxYYuh4iIakCnMFRUVARHR8dKtzs5OaGoqEjnooiM2faUAkQl5kKuBCRiICrQHuHeNoYui4iIdKTT02Rubm74+eefK93+888/w83NTatzrl27Fq+99lql219//XXExsZqdU4ifZMWKlVBCADkSiA6MRfSQqVhCyMiIp3pFIaGDx+OX375BZ999hlu3boFpVIJpVKJ1NRUzJkzB2fPntV62OvEiRPo1atXpdv9/Pxw/PhxXcol0pvrjxSqIFSmWAncyOIrIYiI6iudhsneeOMN3Lx5E0eOHMHRo0dVT34JggBBEBAYGIgJEyZo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KUREREQaq1EYkslkOHLkCBISEnD58mUIgoCXXnoJM2fOxLBhw7Q6l4uLS01KISIiItKJTmHo9OnTSEhIwOnTpyGXy+Hg4IBx48YhODgY7dq1q3FR9+7dg1QqhaenJ4eKiIiIqFbpFIY++OADSCQS9OvXD8HBwejdu7faqvK6On36NJYsWYL79+8DAP71r3+hR48eePLkCSZOnIjp06cjMDCwxtchIiIiKqNTGProo4/w6quvwtbWVm+FJCcn48MPP0T79u0RHByMdevWqbY5ODjA3d0dR44cYRgiIiIivdLppYtjxozRaxACgNjYWLRr1w6bNm3C2LFjy23v0qULbt68qddrEhEREekUhmrDtWvXMHTo0HLvFirTokULvqGaiIiI9M5owlBpaSkkEkml23NycmBubl6HFREREZEpMJow5OHhgd9++63S7adPn9bLk2pEREREzzOaMBQaGopjx45h3759KHsptkgkQlFRERYvXozLly9j5MiRBq6SiIiIGhq9LsdRU59//jkOHz4MGxsbFBYWomnTpsjJyUFpaSlCQkIwd+5cQ5dY67gcBxERUd3S6tF6hUKBkydP4t69e2jSpAn8/f3RpEkTvRWzYMECDBo0CAcPHsTdu3chCAI6deqEoKAgBAQE6O06RERERGU07hnKy8vDlClTcOvWLQiCAJFIBFtbW6xcuRJeXl61XafJYM8QERFR3dJ4ztD69euRmpqKvn37Yvbs2XjttddQWFiIL7/8sjbrI9KJtFCJn9OKIS1UGroUIiIychoPk50+fRq9e/fGt99+q2pzcXHBsmXL8PDhQ7Ro0UKrCx84cECr/csEBwfrdByZju0pBYhKzIVcCUjEQFSgPcK9bQxdFhERGSmNw9DDhw/x+uuvq7X1798f3333He7fv691GIqOjoZIJII287dFIhHDEFVJWqhUBSEAkCuB6MRcDG1nCUfrmq+fR0REDY/GYUgul8Pe3l6trWxJjpKSEq0vvGbNGq2PIarO9UcKVRAqU6wEbmQp0LcVwxAREZWn00KtLxKJRFof4+Pjo49LE6nxam4GiRhqgchCDHg108t/6kRE1ABp9Rti27Zt+Omnn1SflUolRCIRVq1aVa7XSCQS4ZtvvtFPlUQacrQWIyrQHtGJuShWPgtC8wLt4cAhMiIiqoRWYejmzZsVrhx/+fLlcm269BYR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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"shap.plots.scatter(shap_values[:,\"sepal length (cm)\"], show=False)\n",
"idx = model.explain_global().data()['names'].index('sepal length (cm)')\n",
"# extract the relevant data from the tree-based GAM\n",
"explain_data = model.explain_global().data(idx)\n",
"x_data = explain_data[\"names\"]\n",
"y_data = explain_data[\"scores\"]\n",
"y_data = np.r_[y_data[np.newaxis, 0], y_data]\n",
"plt.plot(x_data, y_data, color='red')\n",
"plt.show()"
],
"metadata": {
"id": "9b3OIgfjPR-h",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 470
},
"outputId": "bb69b702-4ae4-4243-d65d-eb2ad9503138"
},
"execution_count": 72,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x500 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "2xkjKorMNRCT"
},
"source": [
"from sklearn.ensemble import RandomForestRegressor\n",
"\n",
"rf = Pipeline([\n",
" ('preprocess', preprocessing),\n",
" ('regressor', RandomForestRegressor(n_estimators=100, n_jobs=-1, random_state=42))\n",
"])"
],
"execution_count": 73,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"scrolled": false,
"id": "pAckw-G4NRCf",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 245
},
"outputId": "e2974646-7dca-4412-812c-4e7ae2992a85"
},
"source": [
"rf.fit(X_train, y_train)"
],
"execution_count": 74,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Pipeline(steps=[('preprocess',\n",
" ColumnTransformer(transformers=[('cat',\n",
" Pipeline(steps=[('onehot',\n",
" OneHotEncoder())]),\n",
" ['class']),\n",
" ('num',\n",
" Pipeline(steps=[('scaler',\n",
" StandardScaler())]),\n",
" ['sepal length (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)'])])),\n",
" ('regressor',\n",
" RandomForestRegressor(n_jobs=-1, random_state=42))])"
],
"text/html": [
"<style>#sk-container-id-4 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-4 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-4 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-4 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-4 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-4 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-4 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-4 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-4 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-4 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-4 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-4 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-4 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-4 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-4 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-4 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-4 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-4 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-4 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-4 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-4 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(n_jobs=-1, random_state=42))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-16\" type=\"checkbox\" ><label for=\"sk-estimator-id-16\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>Pipeline</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.pipeline.Pipeline.html\">?<span>Documentation for Pipeline</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(n_jobs=-1, random_state=42))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-17\" type=\"checkbox\" ><label for=\"sk-estimator-id-17\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>preprocess: ColumnTransformer</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocess: ColumnTransformer</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;, OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;, StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-18\" type=\"checkbox\" ><label for=\"sk-estimator-id-18\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>cat</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;class&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-19\" type=\"checkbox\" ><label for=\"sk-estimator-id-19\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>OneHotEncoder</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OneHotEncoder.html\">?<span>Documentation for OneHotEncoder</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>OneHotEncoder()</pre></div> </div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-20\" type=\"checkbox\" ><label for=\"sk-estimator-id-20\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>num</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-21\" type=\"checkbox\" ><label for=\"sk-estimator-id-21\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-22\" type=\"checkbox\" ><label for=\"sk-estimator-id-22\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>RandomForestRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.RandomForestRegressor.html\">?<span>Documentation for RandomForestRegressor</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestRegressor(n_jobs=-1, random_state=42)</pre></div> </div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 74
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "6onlZOMeNRCj",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "1d3f9491-58c9-4617-ea6a-e925917f0ce1"
},
"source": [
"from sklearn.metrics import median_absolute_error\n",
"\n",
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, rf.predict(X_train)),\n",
" median_absolute_error(y_test, rf.predict(X_test))))"
],
"execution_count": 75,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.060, test error: 0.275\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"scrolled": false,
"id": "xLGOVM3TNRCs",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 545
},
"outputId": "aa091b6f-232c-49e9-86d5-1d29568a1a20"
},
"source": [
"scatter_predictions(rf.predict(X_test), y_test)"
],
"execution_count": 76,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x600 with 1 Axes>"
],
"image/png": "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N1dJSUlasWKFrrnmGuXn5/s8x6RJk3w2PnS73SooKFBGRoaOO+44nXnmmVq4cGHAGvr3769t27bppptuqq5Bknbv3q2RI0eqffv2at68uXr06KF//vOfNR57/fXXa9KkSTrppJM0ePBgSdLrr7+uLl26KDk5Weeff76ee+45ORwO7d27t/qxK1as0DnnnKPjjjtO6enpuuGGG3TgwIE6awJgLUIIEMdmzZqlvLw8jR07ViUlJSopKVF6enr152+//XbNmDFDn3/+ubKzsxv0nAUFBXr++ef1+OOPa8OGDbrppps0evRoLV++vNb+r7zyijp06KBp06ZV1yBJFRUVys3N1ZtvvqmioiL97ne/01VXXaWPP/7Y5/HPPfecmjVrpg8++ECPP/64tm7dqssuu0z5+fn69NNPNW7cOP3pT3/yecyWLVs0ZMgQXXrppfrss8/04osvasWKFbr++uvrrAmAtZqYLgCAOU6nU82aNVPz5s2VlpZW4/PTpk2r3s6+ISorK3X//ffrP//5j/Ly8iRJp512mlasWKE5c+bovPPOq/GYVq1aKTExUS1atPCpoX379rr11lur2xMnTtTSpUv10ksvqU+fPtXHu3TpogceeKC6ffvtt6tr166aOXOmJKlr164qKirSfffdV92noKBAo0aNqh4L06VLFz3yyCM677zzNHv27IA1AbAWIQRAQL169WpU/6+++koHDx6sEVwOHTqknj17Nuq5XC6X7r//fr300kvasWOHDh06pMrKSjVv3tynX25urk9706ZN6t27t8+xY0OLJH366af67LPP9MILL1Qf83g8crvd2rp1q7p3796oWgEEhxACIKDjjz/ep52QkCCPx+Nz7PDhw9X/3r9/vyTpzTffVPv27X36JSUlNeq1Z86cqVmzZunhhx9Wjx49dPzxx2vSpEk1Bp/619gQ+/fv17hx43TDDTfU+Nwpp5zS6OcDEBxCCBDnmjVrJpfL1aC+bdq0UVFRkc+xdevWqWnTppKkzMxMJSUlqbi4uNZbL42p4YMPPtCIESM0evRoSUcHvH755ZfKzMys87m6du2qt956y+fYqlWrfNo5OTnauHGjOnfu3KiaAFiLgalAnOvYsaM++ugjffPNN/rhhx/kdrsD9r3gggu0evVqPf/889q8ebOmTJniE0patGihW2+9VTfddJOee+45bdmyRWvXrtXf/vY3Pffcc3XW8P7772vHjh364YcfJB0dp7Fs2TKtXLlSn3/+ucaNG6edO3fW+/WMGzdOX3zxhW677TZ9+eWXeumllzR37lxJqp7lctttt2nlypW6/vrrtW7dOm3evFmLFi2qHpgaqCYA1iKEAHHu1ltvVWJiojIzM9WmTRsVFxcH7Dt48GDddddd+uMf/6jevXtr3759GjNmjE+f6dOn66677lJBQYG6d++uIUOG6M0331RGRkbA5502bZq++eYbderUSW3atJEk3XnnncrJydHgwYPVv39/paWl1ZgeXJuMjAwtXLhQr7zyirKzszV79uzq2TFVt4Sys7O1fPlyffnllzrnnHPUs2dP3X333Tr55JPrrAmAtRwe/xu8ABBj7rvvPj3++OPavn276VIAHIMxIQBizmOPPabevXurdevW+uCDDzRz5kyfWy0A7IEQAiDmbN68Wffee6/27NmjU045RbfccosmT55suiwAfrgdAwAAjGBgKgAAMIIQAgAAjCCEAAAAIwghAADACEIIAAAwghACAACMIIQAAAAjCCEAAMCI/w/Hn+SbppAZLQAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "EqZqJRZmNRC1",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "f23652c0-e0cc-42c7-aaf2-aadb88987433"
},
"source": [
"print(\"The hyper-parameters for a random forest model are:\")\n",
"for param_name in rf.get_params().keys():\n",
" print(param_name)"
],
"execution_count": 77,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"The hyper-parameters for a random forest model are:\n",
"memory\n",
"steps\n",
"transform_input\n",
"verbose\n",
"preprocess\n",
"regressor\n",
"preprocess__force_int_remainder_cols\n",
"preprocess__n_jobs\n",
"preprocess__remainder\n",
"preprocess__sparse_threshold\n",
"preprocess__transformer_weights\n",
"preprocess__transformers\n",
"preprocess__verbose\n",
"preprocess__verbose_feature_names_out\n",
"preprocess__cat\n",
"preprocess__num\n",
"preprocess__cat__memory\n",
"preprocess__cat__steps\n",
"preprocess__cat__transform_input\n",
"preprocess__cat__verbose\n",
"preprocess__cat__onehot\n",
"preprocess__cat__onehot__categories\n",
"preprocess__cat__onehot__drop\n",
"preprocess__cat__onehot__dtype\n",
"preprocess__cat__onehot__feature_name_combiner\n",
"preprocess__cat__onehot__handle_unknown\n",
"preprocess__cat__onehot__max_categories\n",
"preprocess__cat__onehot__min_frequency\n",
"preprocess__cat__onehot__sparse_output\n",
"preprocess__num__memory\n",
"preprocess__num__steps\n",
"preprocess__num__transform_input\n",
"preprocess__num__verbose\n",
"preprocess__num__scaler\n",
"preprocess__num__scaler__copy\n",
"preprocess__num__scaler__with_mean\n",
"preprocess__num__scaler__with_std\n",
"regressor__bootstrap\n",
"regressor__ccp_alpha\n",
"regressor__criterion\n",
"regressor__max_depth\n",
"regressor__max_features\n",
"regressor__max_leaf_nodes\n",
"regressor__max_samples\n",
"regressor__min_impurity_decrease\n",
"regressor__min_samples_leaf\n",
"regressor__min_samples_split\n",
"regressor__min_weight_fraction_leaf\n",
"regressor__monotonic_cst\n",
"regressor__n_estimators\n",
"regressor__n_jobs\n",
"regressor__oob_score\n",
"regressor__random_state\n",
"regressor__verbose\n",
"regressor__warm_start\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Xeklg8zNNRDA",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 277
},
"outputId": "e6cd0013-0a4c-44e4-850d-3cbca0e04f54"
},
"source": [
"from sklearn.model_selection import GridSearchCV\n",
"\n",
"param_grid = {\n",
" 'regressor__max_features': (2, 3, 4),\n",
" 'regressor__max_depth': (2, 3, 5),\n",
" 'regressor__min_samples_leaf': (1, 3, 5),\n",
"}\n",
"\n",
"model_grid_search = GridSearchCV(rf, param_grid=param_grid,\n",
" n_jobs=-1, cv=3)\n",
"model_grid_search.fit(X_train, y_train)"
],
"execution_count": 78,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"GridSearchCV(cv=3,\n",
" estimator=Pipeline(steps=[('preprocess',\n",
" ColumnTransformer(transformers=[('cat',\n",
" Pipeline(steps=[('onehot',\n",
" OneHotEncoder())]),\n",
" ['class']),\n",
" ('num',\n",
" Pipeline(steps=[('scaler',\n",
" StandardScaler())]),\n",
" ['sepal '\n",
" 'length '\n",
" '(cm)',\n",
" 'petal '\n",
" 'length '\n",
" '(cm)',\n",
" 'petal '\n",
" 'width '\n",
" '(cm)'])])),\n",
" ('regressor',\n",
" RandomForestRegressor(n_jobs=-1,\n",
" random_state=42))]),\n",
" n_jobs=-1,\n",
" param_grid={'regressor__max_depth': (2, 3, 5),\n",
" 'regressor__max_features': (2, 3, 4),\n",
" 'regressor__min_samples_leaf': (1, 3, 5)})"
],
"text/html": [
"<style>#sk-container-id-5 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-5 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-5 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-5 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-5 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-5 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-5 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-5 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-5 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-5 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-5 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-5 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-5 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-5 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-5 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-5 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-5 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-5 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-5 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-5 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-5 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=3,\n",
" estimator=Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal &#x27;\n",
" &#x27;length &#x27;\n",
" &#x27;(cm)&#x27;,\n",
" &#x27;petal &#x27;\n",
" &#x27;length &#x27;\n",
" &#x27;(cm)&#x27;,\n",
" &#x27;petal &#x27;\n",
" &#x27;width &#x27;\n",
" &#x27;(cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(n_jobs=-1,\n",
" random_state=42))]),\n",
" n_jobs=-1,\n",
" param_grid={&#x27;regressor__max_depth&#x27;: (2, 3, 5),\n",
" &#x27;regressor__max_features&#x27;: (2, 3, 4),\n",
" &#x27;regressor__min_samples_leaf&#x27;: (1, 3, 5)})</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-23\" type=\"checkbox\" ><label for=\"sk-estimator-id-23\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>GridSearchCV</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.GridSearchCV.html\">?<span>Documentation for GridSearchCV</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>GridSearchCV(cv=3,\n",
" estimator=Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal &#x27;\n",
" &#x27;length &#x27;\n",
" &#x27;(cm)&#x27;,\n",
" &#x27;petal &#x27;\n",
" &#x27;length &#x27;\n",
" &#x27;(cm)&#x27;,\n",
" &#x27;petal &#x27;\n",
" &#x27;width &#x27;\n",
" &#x27;(cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(n_jobs=-1,\n",
" random_state=42))]),\n",
" n_jobs=-1,\n",
" param_grid={&#x27;regressor__max_depth&#x27;: (2, 3, 5),\n",
" &#x27;regressor__max_features&#x27;: (2, 3, 4),\n",
" &#x27;regressor__min_samples_leaf&#x27;: (1, 3, 5)})</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-24\" type=\"checkbox\" ><label for=\"sk-estimator-id-24\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>best_estimator_: Pipeline</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(max_depth=5, max_features=3,\n",
" min_samples_leaf=3, n_jobs=-1,\n",
" random_state=42))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-25\" type=\"checkbox\" ><label for=\"sk-estimator-id-25\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>preprocess: ColumnTransformer</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocess: ColumnTransformer</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;, OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;, StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-26\" type=\"checkbox\" ><label for=\"sk-estimator-id-26\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>cat</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;class&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-27\" type=\"checkbox\" ><label for=\"sk-estimator-id-27\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>OneHotEncoder</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OneHotEncoder.html\">?<span>Documentation for OneHotEncoder</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>OneHotEncoder()</pre></div> </div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-28\" type=\"checkbox\" ><label for=\"sk-estimator-id-28\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>num</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-29\" type=\"checkbox\" ><label for=\"sk-estimator-id-29\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-30\" type=\"checkbox\" ><label for=\"sk-estimator-id-30\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>RandomForestRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.RandomForestRegressor.html\">?<span>Documentation for RandomForestRegressor</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestRegressor(max_depth=5, max_features=3, min_samples_leaf=3,\n",
" n_jobs=-1, random_state=42)</pre></div> </div></div></div></div></div></div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 78
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "T_pgWdWVNRDG",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c0913a62-3a10-4fbb-f96c-a3a9a3a911e2"
},
"source": [
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, model_grid_search.predict(X_train)),\n",
" median_absolute_error(y_test, model_grid_search.predict(X_test))))"
],
"execution_count": 79,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.120, test error: 0.201\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Fmxbr-noNRDL",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "e0b4c485-e57e-4bba-bd8b-54f4d603dfe5"
},
"source": [
"print(f\"The best set of hyperparameters is: \"\n",
" f\"{model_grid_search.best_params_}\")"
],
"execution_count": 80,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"The best set of hyperparameters is: {'regressor__max_depth': 5, 'regressor__max_features': 3, 'regressor__min_samples_leaf': 3}\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "28wkVwv2NRDU"
},
"source": [
"rf_best = Pipeline([\n",
" ('preprocess', preprocessing),\n",
" ('regressor', RandomForestRegressor(\n",
" n_estimators=100, max_depth=5, max_features=3, min_samples_leaf=3, n_jobs=-1, random_state=42))\n",
"])"
],
"execution_count": 81,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uvSX8FmHNRDZ",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 245
},
"outputId": "7a3c3af8-d626-49fd-eb76-0df7adaa5c15"
},
"source": [
"rf_best.fit(X_train, y_train)"
],
"execution_count": 82,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Pipeline(steps=[('preprocess',\n",
" ColumnTransformer(transformers=[('cat',\n",
" Pipeline(steps=[('onehot',\n",
" OneHotEncoder())]),\n",
" ['class']),\n",
" ('num',\n",
" Pipeline(steps=[('scaler',\n",
" StandardScaler())]),\n",
" ['sepal length (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)'])])),\n",
" ('regressor',\n",
" RandomForestRegressor(max_depth=5, max_features=3,\n",
" min_samples_leaf=3, n_jobs=-1,\n",
" random_state=42))])"
],
"text/html": [
"<style>#sk-container-id-6 {\n",
" /* Definition of color scheme common for light and dark mode */\n",
" --sklearn-color-text: #000;\n",
" --sklearn-color-text-muted: #666;\n",
" --sklearn-color-line: gray;\n",
" /* Definition of color scheme for unfitted estimators */\n",
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
" --sklearn-color-unfitted-level-3: chocolate;\n",
" /* Definition of color scheme for fitted estimators */\n",
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
" --sklearn-color-fitted-level-1: #d4ebff;\n",
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
"\n",
" /* Specific color for light theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
" --sklearn-color-icon: #696969;\n",
"\n",
" @media (prefers-color-scheme: dark) {\n",
" /* Redefinition of color scheme for dark theme */\n",
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
" --sklearn-color-icon: #878787;\n",
" }\n",
"}\n",
"\n",
"#sk-container-id-6 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-6 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-6 input.sk-hidden--visually {\n",
" border: 0;\n",
" clip: rect(1px 1px 1px 1px);\n",
" clip: rect(1px, 1px, 1px, 1px);\n",
" height: 1px;\n",
" margin: -1px;\n",
" overflow: hidden;\n",
" padding: 0;\n",
" position: absolute;\n",
" width: 1px;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-dashed-wrapped {\n",
" border: 1px dashed var(--sklearn-color-line);\n",
" margin: 0 0.4em 0.5em 0.4em;\n",
" box-sizing: border-box;\n",
" padding-bottom: 0.4em;\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-container {\n",
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
" so we also need the `!important` here to be able to override the\n",
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
" display: inline-block !important;\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-text-repr-fallback {\n",
" display: none;\n",
"}\n",
"\n",
"div.sk-parallel-item,\n",
"div.sk-serial,\n",
"div.sk-item {\n",
" /* draw centered vertical line to link estimators */\n",
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
" background-size: 2px 100%;\n",
" background-repeat: no-repeat;\n",
" background-position: center center;\n",
"}\n",
"\n",
"/* Parallel-specific style estimator block */\n",
"\n",
"#sk-container-id-6 div.sk-parallel-item::after {\n",
" content: \"\";\n",
" width: 100%;\n",
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
" flex-grow: 1;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-parallel {\n",
" display: flex;\n",
" align-items: stretch;\n",
" justify-content: center;\n",
" background-color: var(--sklearn-color-background);\n",
" position: relative;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-6 div.sk-serial {\n",
" display: flex;\n",
" flex-direction: column;\n",
" align-items: center;\n",
" background-color: var(--sklearn-color-background);\n",
" padding-right: 1em;\n",
" padding-left: 1em;\n",
"}\n",
"\n",
"\n",
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
"clickable and can be expanded/collapsed.\n",
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
"*/\n",
"\n",
"/* Pipeline and ColumnTransformer style (default) */\n",
"\n",
"#sk-container-id-6 div.sk-toggleable {\n",
" /* Default theme specific background. It is overwritten whether we have a\n",
" specific estimator or a Pipeline/ColumnTransformer */\n",
" background-color: var(--sklearn-color-background);\n",
"}\n",
"\n",
"/* Toggleable label */\n",
"#sk-container-id-6 label.sk-toggleable__label {\n",
" cursor: pointer;\n",
" display: flex;\n",
" width: 100%;\n",
" margin-bottom: 0;\n",
" padding: 0.5em;\n",
" box-sizing: border-box;\n",
" text-align: center;\n",
" align-items: start;\n",
" justify-content: space-between;\n",
" gap: 0.5em;\n",
"}\n",
"\n",
"#sk-container-id-6 label.sk-toggleable__label .caption {\n",
" font-size: 0.6rem;\n",
" font-weight: lighter;\n",
" color: var(--sklearn-color-text-muted);\n",
"}\n",
"\n",
"#sk-container-id-6 label.sk-toggleable__label-arrow:before {\n",
" /* Arrow on the left of the label */\n",
" content: \"▸\";\n",
" float: left;\n",
" margin-right: 0.25em;\n",
" color: var(--sklearn-color-icon);\n",
"}\n",
"\n",
"#sk-container-id-6 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-6 div.sk-toggleable__content {\n",
" max-height: 0;\n",
" max-width: 0;\n",
" overflow: hidden;\n",
" text-align: left;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-toggleable__content pre {\n",
" margin: 0.2em;\n",
" border-radius: 0.25em;\n",
" color: var(--sklearn-color-text);\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-6 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
" /* Expand drop-down */\n",
" max-height: 200px;\n",
" max-width: 100%;\n",
" overflow: auto;\n",
"}\n",
"\n",
"#sk-container-id-6 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
" content: \"▾\";\n",
"}\n",
"\n",
"/* Pipeline/ColumnTransformer-specific style */\n",
"\n",
"#sk-container-id-6 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator-specific style */\n",
"\n",
"/* Colorize estimator box */\n",
"#sk-container-id-6 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-6 div.sk-label label {\n",
" /* The background is the default theme color */\n",
" color: var(--sklearn-color-text-on-default-background);\n",
"}\n",
"\n",
"/* On hover, darken the color of the background */\n",
"#sk-container-id-6 div.sk-label:hover label.sk-toggleable__label {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"/* Label box, darken color on hover, fitted */\n",
"#sk-container-id-6 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
" color: var(--sklearn-color-text);\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Estimator label */\n",
"\n",
"#sk-container-id-6 div.sk-label label {\n",
" font-family: monospace;\n",
" font-weight: bold;\n",
" display: inline-block;\n",
" line-height: 1.2em;\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-6 div.sk-estimator {\n",
" font-family: monospace;\n",
" border: 1px dotted var(--sklearn-color-border-box);\n",
" border-radius: 0.25em;\n",
" box-sizing: border-box;\n",
" margin-bottom: 0.5em;\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-6 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-6 div.sk-estimator.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-2);\n",
"}\n",
"\n",
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
"\n",
"/* Common style for \"i\" and \"?\" */\n",
"\n",
".sk-estimator-doc-link,\n",
"a:link.sk-estimator-doc-link,\n",
"a:visited.sk-estimator-doc-link {\n",
" float: right;\n",
" font-size: smaller;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1em;\n",
" height: 1em;\n",
" width: 1em;\n",
" text-decoration: none !important;\n",
" margin-left: 0.5em;\n",
" text-align: center;\n",
" /* unfitted */\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted,\n",
"a:link.sk-estimator-doc-link.fitted,\n",
"a:visited.sk-estimator-doc-link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
".sk-estimator-doc-link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover,\n",
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
".sk-estimator-doc-link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"/* Span, style for the box shown on hovering the info icon */\n",
".sk-estimator-doc-link span {\n",
" display: none;\n",
" z-index: 9999;\n",
" position: relative;\n",
" font-weight: normal;\n",
" right: .2ex;\n",
" padding: .5ex;\n",
" margin: .5ex;\n",
" width: min-content;\n",
" min-width: 20ex;\n",
" max-width: 50ex;\n",
" color: var(--sklearn-color-text);\n",
" box-shadow: 2pt 2pt 4pt #999;\n",
" /* unfitted */\n",
" background: var(--sklearn-color-unfitted-level-0);\n",
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link.fitted span {\n",
" /* fitted */\n",
" background: var(--sklearn-color-fitted-level-0);\n",
" border: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"\n",
".sk-estimator-doc-link:hover span {\n",
" display: block;\n",
"}\n",
"\n",
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
"\n",
"#sk-container-id-6 a.estimator_doc_link {\n",
" float: right;\n",
" font-size: 1rem;\n",
" line-height: 1em;\n",
" font-family: monospace;\n",
" background-color: var(--sklearn-color-background);\n",
" border-radius: 1rem;\n",
" height: 1rem;\n",
" width: 1rem;\n",
" text-decoration: none;\n",
" /* unfitted */\n",
" color: var(--sklearn-color-unfitted-level-1);\n",
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
"}\n",
"\n",
"#sk-container-id-6 a.estimator_doc_link.fitted {\n",
" /* fitted */\n",
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
" color: var(--sklearn-color-fitted-level-1);\n",
"}\n",
"\n",
"/* On hover */\n",
"#sk-container-id-6 a.estimator_doc_link:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-3);\n",
" color: var(--sklearn-color-background);\n",
" text-decoration: none;\n",
"}\n",
"\n",
"#sk-container-id-6 a.estimator_doc_link.fitted:hover {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-3);\n",
"}\n",
"</style><div id=\"sk-container-id-6\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(max_depth=5, max_features=3,\n",
" min_samples_leaf=3, n_jobs=-1,\n",
" random_state=42))])</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-31\" type=\"checkbox\" ><label for=\"sk-estimator-id-31\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>Pipeline</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.pipeline.Pipeline.html\">?<span>Documentation for Pipeline</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>Pipeline(steps=[(&#x27;preprocess&#x27;,\n",
" ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;,\n",
" OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;,\n",
" StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;,\n",
" &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])),\n",
" (&#x27;regressor&#x27;,\n",
" RandomForestRegressor(max_depth=5, max_features=3,\n",
" min_samples_leaf=3, n_jobs=-1,\n",
" random_state=42))])</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-32\" type=\"checkbox\" ><label for=\"sk-estimator-id-32\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>preprocess: ColumnTransformer</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html\">?<span>Documentation for preprocess: ColumnTransformer</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>ColumnTransformer(transformers=[(&#x27;cat&#x27;,\n",
" Pipeline(steps=[(&#x27;onehot&#x27;, OneHotEncoder())]),\n",
" [&#x27;class&#x27;]),\n",
" (&#x27;num&#x27;,\n",
" Pipeline(steps=[(&#x27;scaler&#x27;, StandardScaler())]),\n",
" [&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;,\n",
" &#x27;petal width (cm)&#x27;])])</pre></div> </div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-33\" type=\"checkbox\" ><label for=\"sk-estimator-id-33\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>cat</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;class&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-34\" type=\"checkbox\" ><label for=\"sk-estimator-id-34\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>OneHotEncoder</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OneHotEncoder.html\">?<span>Documentation for OneHotEncoder</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>OneHotEncoder()</pre></div> </div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-35\" type=\"checkbox\" ><label for=\"sk-estimator-id-35\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>num</div></div></label><div class=\"sk-toggleable__content fitted\"><pre>[&#x27;sepal length (cm)&#x27;, &#x27;petal length (cm)&#x27;, &#x27;petal width (cm)&#x27;]</pre></div> </div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-36\" type=\"checkbox\" ><label for=\"sk-estimator-id-36\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-37\" type=\"checkbox\" ><label for=\"sk-estimator-id-37\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>RandomForestRegressor</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.RandomForestRegressor.html\">?<span>Documentation for RandomForestRegressor</span></a></div></label><div class=\"sk-toggleable__content fitted\"><pre>RandomForestRegressor(max_depth=5, max_features=3, min_samples_leaf=3,\n",
" n_jobs=-1, random_state=42)</pre></div> </div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 82
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5Xryqy6lNRDh",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "be9e494e-7797-44d0-aa7e-ec777180deb6"
},
"source": [
"print(\"train error: %0.3f, test error: %0.3f\" %\n",
" (median_absolute_error(y_train, rf_best.predict(X_train)),\n",
" median_absolute_error(y_test, rf_best.predict(X_test))))"
],
"execution_count": 83,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"train error: 0.120, test error: 0.201\n"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qNNb1Y20NRDp",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"outputId": "1c2af2c8-845e-42d8-c08b-b2b8afb3dab8"
},
"source": [
"boxplot_pi(rf_best, X_test, y_test)"
],
"execution_count": 84,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAJOCAYAAAAqFJGJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAU2pJREFUeJzt3XlYVeXe//HPBmSSScWJRFFEwbIUzDGH0sJSj+YxUzOHnHrKUx2HzMyx45BDVlZWWmhqmfWo9ctMcyC1TA2HHEDNRCs1cwTFUGH9/vBhH7eAATewQd6v6+LSvfa91/1d9157sT57Ddgsy7IEAAAAAAZcnF0AAAAAgOKPYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGCMYAEAyFJiYqJsNpvmzZvn7FJQjDz11FO6//77nV1GkfDOO++oatWqSk1NdXYpQKEgWAAoMebNmyebzWb/8fT0VK1atTR48GD98ccfzi4vT/bt26dx48YpMTExz/P46KOP9Nprr+VbTfmhT58+8vHxcXYZeZaSkqJx48YpNjbW2aUUqsOHD2vu3Ll68cUX7dOOHTumcePGaefOnQXatzPX40mTJmn58uWZpvfp00eXL1/Wu+++W/hFAU5AsABQ4kyYMEELFizQm2++qaZNm2r27Nlq0qSJUlJSnF1aru3bt0/jx48vkGBRrVo1Xbp0SY8//njeCyyhUlJSNH78+BIXLF5//XVVr15d9957r33asWPHNH78+BIZLDw9PdW7d2+9+uqrsiyr8AsDChnBAkCJ8+CDD6pnz57q37+/5s2bp+eee06HDx/W559/bjzv4hhOspNxVMfV1dXZpRQb6enp+uuvv5xdhlNcuXJFixYtUteuXZ1dSpHStWtXHTlyROvXr3d2KUCBI1gAKPHuu+8+SddO48iwcOFCRUVFycvLS2XLllW3bt3066+/OryuVatWuuOOOxQXF6cWLVrI29tbL774ov3ahOnTp+utt95SjRo15O3trQceeEC//vqrLMvSyy+/rCpVqsjLy0sdO3bUmTNnHOZts9k0bty4TLWGhISoT58+kq6d2vXII49Iku699177KV4Z35J//vnnateunYKCguTh4aHQ0FC9/PLLSktLc1iGFStW6MiRI/bXh4SESMr+Got169apefPmKl26tAICAtSxY0fFx8c7tBk3bpxsNpt+/vln9enTRwEBAfL391ffvn3zHL5CQkLUvn17xcbGqkGDBvLy8lLdunXty7t06VLVrVtXnp6eioqK0o4dOxxen3F61S+//KLo6GiVLl1aQUFBmjBhQqZvky9evKihQ4cqODhYHh4eql27tqZPn56pnc1m0+DBg7Vo0SLdfvvt8vDw0DvvvKPy5ctLksaPH28f14z386efflKfPn1Uo0YNeXp6qlKlSnriiSd0+vRpozFcuHChGjZsKG9vb5UpU0YtWrTQ6tWrHdqsXLnS/t75+vqqXbt22rt3r0ObEydOqG/fvqpSpYo8PDxUuXJldezY8W+Pim3atEmnTp1SmzZt7NNiY2N19913S5L69u1rH4vr16ktW7aobdu28vf3l7e3t1q2bKnvvvvOYd7Jycl67rnnFBISIg8PD1WoUEH333+/tm/fLunm63F2vvnmG91zzz0KCAiQj4+Pateu7XAKlySlpqZq7Nixqlmzpjw8PBQcHKznn3/e4ZoJm82mixcvav78+fa+Mz6jkhQVFaWyZcvmyxcXQFHn5uwCAMDZDh06JEkqV66cJGnixIkaPXq0unbtqv79++vPP//UrFmz1KJFC+3YsUMBAQH2154+fVoPPvigunXrpp49e6pixYr25xYtWqTLly/rX//6l86cOaOpU6eqa9euuu+++xQbG6sRI0bo559/1qxZszRs2DB98MEHuaq7RYsWeuaZZ/TGG2/oxRdfVEREhCTZ/503b558fHw0ZMgQ+fj4aN26dRozZoySkpI0bdo0SdKoUaN0/vx5/fbbb5o5c6Yk3fTahjVr1ujBBx9UjRo1NG7cOF26dEmzZs1Ss2bNtH379kw7c127dlX16tU1efJkbd++XXPnzlWFChX0yiuv5GpZM/z888/q0aOHBg0apJ49e2r69Onq0KGD3nnnHb344ot66qmnJEmTJ09W165dtX//frm4/Pc7tLS0NLVt21aNGzfW1KlT9fXXX2vs2LG6evWqJkyYIEmyLEv/+Mc/tH79evXr10/16tXTqlWrNHz4cP3+++/2ccqwbt06LVmyRIMHD1ZgYKDuuusuzZ49W//zP/+jhx9+WJ07d5Yk3XnnnZKu7dD+8ssv6tu3rypVqqS9e/fqvffe0969e/XDDz/IZrPlegzHjx+vcePG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ihUr9OKLL9rPpe/QoYPuvfdejRo1SomJibrrrru0evVqff7553ruuecy3Uo0K15eXqpTp44++eQT1apVS2XLltUdd9yhO+64Qy1atNDUqVN15coV3XbbbVq9enWWR5JyqmbNmho1apRefvllNW/eXJ07d5aHh4e2bdumoKAgTZ48WX5+fpo9e7Yef/xxRUZGqlu3bipfvryOHj2qFStWqFmzZnrzzTd14MABtW7dWl27dlWdOnXk5uamZcuW6Y8//lC3bt1uWsc999yjcuXKac2aNQ7XcoSGhiogIEDvvPOOfH19Vbp0aTVq1EjVq1fX3Llz9eCDD+r2229X3759ddttt+n333/X+vXr5efnp//3//6fkpOTVaVKFXXp0kV33XWXfHx8tGbNGm3btk0zZsyw95Ob9XjChAnasGGD2rVrp2rVqunkyZN6++23VaVKFd1zzz2SpMcff1xLlizRk08+qfXr16tZs2ZKS0tTQkKClixZolWrVtlPqYyKitKaNWv06quvKigoSNWrV7ffQCAuLk5nzpxRx44d8/weA8VGod+HCgCcJON2s9u2bfvbtv/7v/9r3XPPPVbp0qWt0qVLW+Hh4dbTTz9t7d+/396mZcuW1u23357ptRm3ab3xlp3r16+3JFmffvrp39aVlpZmjRgxwgoMDLS8vb2t6Oho6+eff850u1nLsqw5c+ZYNWrUsFxdXR1usfrdd99ZjRs3try8vKygoCDr+eeft9+e9frbsF64cMHq0aOHFRAQYEmy37Izq9vNWpZlrVmzxmrWrJnl5eVl+fn5WR06dLD27dvn0CbjVqk33s4zY1kPHz6cadyul93tZtu1a5epraRMtyLN6j3ImOehQ4esBx54wPL29rYqVqxojR07NtNtWpOTk61///vfVlBQkFWqVCkrLCzMmjZtmsNtUbPrO8P3339vRUVFWe7u7g63nv3tt9+shx9+2AoICLD8/f2tRx55xDp27Fim29Pmdgw/+OADq379+paHh4dVpkwZq2XLltY333zj0Gb9+vVWdHS05e/vb3l6elqhoaFWnz59rB9//NGyLMs6deqU9fTTT1vh4eFW6dKlLX9/f6tRo0bWkiVLslzGGz3zzDNWzZo1M03//PPPrTp16lhubm6Z1qkdO3ZYnTt3tsqVK2d5eHhY1apVs7p27WqtXbvWsizLSk1NtYYPH27dddddlq+vr1W6dGnrrrvust5++22HPrJbj7Oydu1aq2PHjlZQUJDl7u5uBQUFWd27d7cOHDjg0O7y5cvWK6+8Yt1+++32cY2KirLGjx9vnT9/3t4uISHBatGiheXl5WVJcviMjhgxwqpatWqmdQe4FdksqxCubAMAwMn69Omjzz77LMvTbpA/fvnlF4WHh2vlypX2U8tKstTUVIWEhOiFF17Qs88+6+xygALHNRYAACBf1KhRQ/369dOUKVOcXUqREBMTo1KlSmX6WyTArYojFgCAEoEjFgBQsDhiAQAAAMAYRywAAAAAGOOIBQAAAABjBAsAAAAAxvgDeci19PR0HTt2TL6+vrLZbM4uBwAAAAXEsiwlJycrKChILi43PyZBsECuHTt2TMHBwc4uAwAAAIXk119/VZUqVW7ahmCBXPP19ZV0bQXz8/NzcjUAAAAoKElJSQoODrbv/90MwQK5lnH6k5+fH8ECAACgBMjJ6e9cvA0AAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGCMYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGCMYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGCMYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGDMzdkFAABQkhw8eFDJycnOLgM38PX1VVhYmLPLAIo1ggUAAIXk4MGDqlWrlrPLyLVKPjYNinLXu3GXdeKC5exyCsyBAwcIF4ABggUAAIUk40jFwoULFRER4eRqcs7r3AFFbBikR8fM06WA4heM/k58fLx69uzJkSTAEMECAIBCFhERocjISGeXkXPHXKQNUkR4uBRUz9nVACiiuHgbAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYI1gAAAAAMEawAAAAAGCMYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAHCDlJQUbd++XSkpKc4uBQBQjJT03x8ECwC4QUJCgqKiopSQkODsUgAAxUhJ//1BsAAAAABgjGABAAAAwBjBAgAAAIAxggUAAAAAYwQLAAAAAMYIFgAAAACMESwAAAAAGCNYAAAAADBW7IJFnz591KlTp2yfnzdvngICAgqtnr8TEhKi1157LdevO336tCpUqKDExMR8rynDqVOnVKFCBf32228F1gcAAABKhmIXLIqq/A40EydOVMeOHRUSEpJv87xRYGCgevXqpbFjxxZYHwAAACgZCBZFUEpKit5//33169evwPvq27evFi1apDNnzhR4XwAAALh15SpYfPbZZ6pbt668vLxUrlw5tWnTRhcvXrQ/P3fuXEVERMjT01Ph4eF6++237c8lJibKZrNp8eLFatq0qTw9PXXHHXfo22+/tbdJS0tTv379VL16dXl5eal27dp6/fXXjRfy888/V2RkpDw9PVWjRg2NHz9eV69etT9vs9k0d+5cPfzww/L29lZYWJi++OILh3l88cUXCgsLk6enp+69917Nnz9fNptN586dU2xsrPr27avz58/LZrPJZrNp3Lhx9tempKToiSeekK+vr6pWrar33nvvpvV+9dVX8vDwUOPGjR2m7927V+3bt5efn598fX3VvHlzHTp0SNJ/TxGbNGmSKlasqICAAE2YMEFXr17V8OHDVbZsWVWpUkUxMTEO87z99tsVFBSkZcuW5WVoAQAAAEm5CBbHjx9X9+7d9cQTTyg+Pl6xsbHq3LmzLMuSJC1atEhjxozRxIkTFR8fr0mTJmn06NGaP3++w3yGDx+uoUOHaseOHWrSpIk6dOig06dPS5LS09NVpUoVffrpp9q3b5/GjBmjF198UUuWLMnzAm7cuFG9evXSs88+q3379undd9/VvHnzNHHiRId248ePV9euXfXTTz/poYce0mOPPWb/Fv/w4cPq0qWLOnXqpF27dmnQoEEaNWqU/bVNmzbVa6+9Jj8/Px0/flzHjx/XsGHD7M/PmDFDDRo00I4dO/TUU0/pf/7nf7R///6b1hwVFeUw7ffff1eLFi3k4eGhdevWKS4uTk888YRDQFq3bp2OHTumDRs26NVXX9XYsWPVvn17lSlTRlu2bNGTTz6pQYMGZbqmomHDhtq4cWPuBxcAAAD4P245bXj8+HFdvXpVnTt3VrVq1SRJdevWtT8/duxYzZgxQ507d5YkVa9e3b4j37t3b3u7wYMH65///Kckafbs2fr666/1/vvv6/nnn1epUqU0fvx4e9vq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AAAAADBGsAAAAABgjGABAAAAwBjBAgAAAIAxggUAAAAAYwQLAAAAAMYIFgAAAACMESwAAAAAGCNYAAAAADBGsAAAAABgjGABAAAAwBjBAgAAAIAxggUAAAAAYwQLAAAAAMbcnF0AAOTUwYMHlZyc7OwynMbX11dhYWHOLgMAgCwRLAAUCwcPHlStWrUKvd9KPjYNinLXu3GXdeKCVej93+jAgQOECwBAkUSwAFAsZBypWLhwoSIiIgqtX69zBxSxYZAeHTNPlwIKP9hkiI+PV8+ePUv0ERsAQNFGsABQrERERCgyMrLwOjzmIm2QIsLDpaB6hdcvAADFDBdvAwAAADBGsAAAAABgjGABAAAAwBjBAgAAAIAxggUAAAAAYwQLAAAAAMYIFgAAAACMESwAAAAAGCNYAAAAADBGsAAAAABgjGABAAAAwBjBAjCQkpKi7du3KyUlxdmlADDE5xkAzBAsAAMJCQmKiopSQkKCs0sBYIjPMwCYIVgAAAAAMEawAAAAAGCMYAEAAADAGMECAAAAgDGCBQAAAABjBAsAAAAAxggWAAAAAIwRLAAAAAAYK3bBIjY2VjabTefOncu2jc1m0/LlywutppsZN26c6tWrl6fXPv7445o0aVL+FnSDbt26acaMGQXaBwAAAG59TgsW8+bNU0BAgLO6LxD5GWh27dqlr776Ss8880y+zC87L730kiZOnKjz588XaD8m0tLSFBsbq48//lixsbFKS0tzdkkASrjstktsrwCUZG7OLgBZmzVrlh555BH5+PgUaD933HGHQkNDtXDhQj399NMF2ldeLF26VEOHDlViYqJ9WkhIiGbMmKHOnTs7rzAAJVZ226VHHnlEn376KdsrACVWno5YtGrVSoMHD9bgwYPl7++vwMBAjR49WpZl2dukpqZq2LBhuu2221S6dGk1atRIsbGxkq6dztS3b1+dP39eNptNNptN48aNkyQtWLBADRo0kK+vrypVqqQePXro5MmTRgv566+/qmvXrgoICFDZsmXVsWNHhw1/nz591KlTJ02fPl2VK1dWuXLl9PTTT+vKlSv2NsePH1e7du3k5eWl6tWr66OPPlJISIhee+01Sdd+eUjSww8/LJvNZn+cYcGCBQoJCZG/v7+6deum5OTkbOtNS0vTZ599pg4dOjhMT01N1YgRIxQcHCwPDw/VrFlT77//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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"masker = shap.maskers.Independent(X_train, max_samples=112)\n",
"\n",
"explainer = shap.Explainer(rf_best.predict, masker)"
],
"metadata": {
"id": "NOux8KgNaFvu"
},
"execution_count": 85,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap_values = explainer(X_test)"
],
"metadata": {
"id": "OSt4Ev24_Als"
},
"execution_count": 86,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap.plots.scatter(shap_values[:,\"sepal length (cm)\"])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 470
},
"id": "JmIB7LBc_Hyi",
"outputId": "e43813d7-8566-4dea-8ce9-557e04af92b4"
},
"execution_count": 87,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 600x500 with 2 Axes>"
],
"image/png": "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tuTkZFhYWMDf37/G83r27Ak7OzskJyertymVShw5cgQDBgwwas1ERESkP7N4msycjBs3Dt999x3mzJmDKVOm4M6dO1i+fDnGjh2rMcfQzJkzcevWLezcuRMAYG1tjYiICMTGxsLJyQne3t6Ij49HQUEBJk2aZKK7ISIiorqYVRjat28ftm3bhps3b6KgoKDKfolEghMnThi1BgcHB6xatQpLly7FnDlzYGdnh9GjRyMqKkrjOJVKBZVKpbFt8uTJEAQBmzdvxv3799GpUyd8+eWX8PLyMmrNREREpD+JIAiCqYsAgDVr1iA2NhbOzs7o3r17jYOVFy5c2MCVNSy5XI6AgACkpKSgefPmpi6HiIioyTOblqHt27fD19cXX375ZZXH64mIiIiMRecB1CUlJYiOjtYYKGwIlUtZMAgRERFRQ9I5DNna2uLAgQPVzsVTH507d0ZOTo5Br0lERERUF70ere/QoQNu3bpl0EJmzpyJHTt24PLlywa9LhEREVFt9OqT+tvf/oYlS5ZgxIgRaNu2rUEK8fX1xbvvvouIiAj06NED7u7usLDQzGoSiQQLFiwwyPsRERERAXqGoYyMDLi6umLixIl49tln0aZNmyozLEskEkydOlXra54/fx6LFi2CUqnE2bNncfbs2SrHMAwRERGRoekVhmJjY9X/nZKSUu0xuoahZcuWwcrKCp988gn69OlT41peRERERIakVxhKTEw0dB34888/MX369DoXbiUiIiIyJL3CkLu7u6HrgLOzM6ysrAx+XSIiIqLa1Huh1vz8fFy8eBEXL15Efn6+3tcZNWoU9u7dC6VSWd+SiIiIiLSm9wyHf/zxB5YtW4a0tDSN7b1798bcuXPx5JNP6nS93r17IzU1FRERERg/fjw8PT2rPE0GAE899ZS+JRMRERFVodfaZOnp6ZgyZQrKysowaNAgdOjQAQBw7do1HDt2DDY2Nli3bh06duyo9TX79u2rWZhEovFaEARIJBKcPHlS13IbFa5NRkRE1LD0ahmKiYmBpaUl1q5dW6UFKD09HdOnT8fq1auxdOlSra/Z1BdgJSIiIvOkVxg6c+YMJkyYUG1XmLe3N8aPH48dO3bodM3Q0FB9SiEiIiKqF70GUJeWlqJly5Y17ndxcUFpaaneRRERERE1FL3CkKenJ3788cca9//444/w9PTU6ZoxMTF4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+5XL5fjzzz8N1gVHREREhtfkW4Z0NXXqVMyYMQNLlixBUFAQfv31V+zbtw8ffvihxnH9+vVDSEgIFixYAACIiYmBXC5Hr1694OTkhFu3buHbb7+FQqHASy+9ZIpbISIiIi0wDD2md+/e+Pjjj7Fq1SokJCTAzc0N8+fPrzL3kEqlQkXF/ybZ6dKlC7Zs2YI9e/bgwYMHaNWqFZ566iksWbIEXl5eDX0bREREpCXOQG1mGtMM1EREVDs+Wt84cMwQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYkawxARERGJGsMQERERiRrDEBEREYmapakLIOO790CF9LtKeLtYwrmZ1NTlEBGJRnZ2tqlLEB0PDw+dz2EYauK+P1+CT1ILoagAZBbAnIEOGOtja+qyiIiIzAa7yZqwew9U6iAEAIoK4NPUQtx7oDJtYURERGaEYagJS7+rVAehSmUVwNU8pWkKIiIiMkMMQ02Yt4slZI99wtYWgHdL9o4SERFVYhhqwpybSTFnoAOs//spW1sAbw50gBMHURMREamxiaCJG+tji4CO1riap0THlnyajIiI6HEMQyLg3EwKZy+GICIiouqwm4yIiIhEjWGIiIiIRI1hiIiIiESNYYiIiIhEjWGIiIiIRI1hiIiIiESNYYiIiIhEjWGIiIiIRI1hiIiIiESNYYiIiIhEjWGIiIiIRI1hiIiIiESNC7WaGUEQAAAlJSUmroSIiKjxkcvlsLOzg0Qi0fociVD505fMQk5ODkJCQkxdBhERUaOVkpKC5s2ba308w5CZqaioQG5uLmxtbXVKtYZUXFyMkJAQJCUlwc7OziQ1NDSx3TPvt+kT2z2L7X4B8d2zLvera8sQu8nMjIWFBVxdXU1dBoCHf5h0SdZNgdjumffb9IntnsV2v4D47tkY98sB1ERERCRqDENEREQkagxDVIVMJsO0adMgk8lMXUqDEds9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\n"
},
"metadata": {}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment