Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save alonsosilvaallende/e4d47ab493085095c592a59e6cd1d6ac to your computer and use it in GitHub Desktop.
Save alonsosilvaallende/e4d47ab493085095c592a59e6cd1d6ac to your computer and use it in GitHub Desktop.
Regression-for-Iris-dataset-colab.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": {
"name": "Regression-for-Iris-dataset-colab.ipynb",
"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/e4d47ab493085095c592a59e6cd1d6ac/regression-for-iris-dataset-colab.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\"\n",
"# %pip install -q -U scikit-learn>=1.0.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": "f00f2211-dd8f-4fd5-f4d8-a7bd8aba7eee"
},
"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%[email protected])\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",
".. topic:: 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"
]
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SAFiuZC9NQ_J",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "13884748-4411-45ae-9ba7-bc73da1c4807"
},
"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-a041a1d1-37f3-429d-9b04-b40a47577768\">\n",
" <div 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",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a041a1d1-37f3-429d-9b04-b40a47577768')\"\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 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\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",
" [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-a041a1d1-37f3-429d-9b04-b40a47577768 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-a041a1d1-37f3-429d-9b04-b40a47577768');\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",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "e0HkoLYYNQ_f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "9df149dd-35ca-4ead-dce1-378e52e28282"
},
"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-4442656f-9a33-42d0-a96e-987549d8856b\">\n",
" <div 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",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4442656f-9a33-42d0-a96e-987549d8856b')\"\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 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\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",
" [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-4442656f-9a33-42d0-a96e-987549d8856b 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-4442656f-9a33-42d0-a96e-987549d8856b');\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",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ZAthwy2MNQ_3",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "3790b96f-baeb-46f3-99f8-cd80547c1519"
},
"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": [
"list(iris.target_names)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "NJfKYx5u-kss",
"outputId": "3f927eef-1e60-4984-93dd-ccd2361deab8"
},
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['setosa', 'versicolor', 'virginica']"
]
},
"metadata": {},
"execution_count": 8
}
]
},
{
"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",
" df_raw.drop(columns='sepal width (cm)'), df_raw['sepal width (cm)'], random_state=42)"
],
"execution_count": 9,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "nY28r0Z6NRAK",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "01e7d1ce-0218-4e14-e4da-3e33ce43e630"
},
"source": [
"X_train.columns"
],
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Index(['sepal length (cm)', 'petal length (cm)', 'petal width (cm)', 'class'], dtype='object')"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "TSYfiyqPNRAT",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"outputId": "7ebb8878-b810-476c-d21d-6b21d4721fb8"
},
"source": [
"y_train.name"
],
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"'sepal width (cm)'"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
}
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "_Nn9wkJINRAj"
},
"source": [
"categorical_columns = ['class']\n",
"numerical_columns = ['sepal length (cm)', 'petal length (cm)', 'petal width (cm)']"
],
"execution_count": 12,
"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": 13,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(X_train['class']).head(5).style.hide_index()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "Svs5Vu0IClPD",
"outputId": "af440504-d3b0-4c8a-d988-1334a35e8c71"
},
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<pandas.io.formats.style.Styler at 0x7fe19b53dca0>"
],
"text/html": [
"<style type=\"text/css\">\n",
"</style>\n",
"<table id=\"T_7bec9_\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"col_heading level0 col0\" >class</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td id=\"T_7bec9_row0_col0\" class=\"data row0 col0\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_7bec9_row1_col0\" class=\"data row1 col0\" >0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_7bec9_row2_col0\" class=\"data row2 col0\" >2</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_7bec9_row3_col0\" class=\"data row3 col0\" >1</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_7bec9_row4_col0\" class=\"data row4 col0\" >1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"encoder = OneHotEncoder(sparse=False)\n",
"X = encoder.fit_transform(pd.DataFrame(X_train['class']))"
],
"metadata": {
"id": "RHVVQuInDJ9H"
},
"execution_count": 15,
"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_"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "qbJssFuqDQ6b",
"outputId": "0286cd9a-08fb-48d3-c7a8-0132de18967b"
},
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array(['class'], dtype=object)"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "code",
"source": [
"encoder.get_feature_names_out()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "y-MD3HyjDYqW",
"outputId": "53eaae53-761a-44f3-e3b3-628d1bb3cd7c"
},
"execution_count": 17,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array(['class_0', 'class_1', 'class_2'], dtype=object)"
]
},
"metadata": {},
"execution_count": 17
}
]
},
{
"cell_type": "code",
"source": [
"X_train_df = pd.DataFrame(X, columns=encoder.get_feature_names_out(), index=X_train.index)\n",
"formatdict = {col: '{:.1f}' for col in X_train_df.columns.values}\n",
"X_train_df[:5].style.hide_index().format(formatdict)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"id": "XrVNezgkUavU",
"outputId": "c1fdbd98-4421-49ff-ea3d-52ccc7d2aaa3"
},
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<pandas.io.formats.style.Styler at 0x7fe19b1f6eb0>"
],
"text/html": [
"<style type=\"text/css\">\n",
"</style>\n",
"<table id=\"T_dba80_\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"col_heading level0 col0\" >class_0</th>\n",
" <th class=\"col_heading level0 col1\" >class_1</th>\n",
" <th class=\"col_heading level0 col2\" >class_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td id=\"T_dba80_row0_col0\" class=\"data row0 col0\" >1.0</td>\n",
" <td id=\"T_dba80_row0_col1\" class=\"data row0 col1\" >0.0</td>\n",
" <td id=\"T_dba80_row0_col2\" class=\"data row0 col2\" >0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_dba80_row1_col0\" class=\"data row1 col0\" >1.0</td>\n",
" <td id=\"T_dba80_row1_col1\" class=\"data row1 col1\" >0.0</td>\n",
" <td id=\"T_dba80_row1_col2\" class=\"data row1 col2\" >0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_dba80_row2_col0\" class=\"data row2 col0\" >0.0</td>\n",
" <td id=\"T_dba80_row2_col1\" class=\"data row2 col1\" >0.0</td>\n",
" <td id=\"T_dba80_row2_col2\" class=\"data row2 col2\" >1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_dba80_row3_col0\" class=\"data row3 col0\" >0.0</td>\n",
" <td id=\"T_dba80_row3_col1\" class=\"data row3 col1\" >1.0</td>\n",
" <td id=\"T_dba80_row3_col2\" class=\"data row3 col2\" >0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td id=\"T_dba80_row4_col0\" class=\"data row4 col0\" >0.0</td>\n",
" <td id=\"T_dba80_row4_col1\" class=\"data row4 col1\" >1.0</td>\n",
" <td id=\"T_dba80_row4_col2\" class=\"data row4 col2\" >0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "DZIhlDdKNRA8"
},
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"\n",
"numerical_pipe = Pipeline([\n",
" ('scaler', StandardScaler())\n",
"])"
],
"execution_count": 19,
"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)])"
],
"execution_count": 20,
"outputs": []
},
{
"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": 21,
"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": "9f4cedd6-2347-439d-c7b9-306edc9ea425",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 261
}
},
"execution_count": 22,
"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-e6d53bc6-ba51-4a44-a876-44a57819e814 {color: black;background-color: white;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 pre{padding: 0;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-toggleable {background-color: white;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-estimator:hover {background-color: #d4ebff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-item {z-index: 1;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel-item {display: flex;flex-direction: column;position: relative;background-color: white;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-parallel-item:only-child::after {width: 0;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;position: relative;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-label label {font-family: monospace;font-weight: bold;background-color: white;display: inline-block;line-height: 1.2em;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-label-container {position: relative;z-index: 2;text-align: center;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-e6d53bc6-ba51-4a44-a876-44a57819e814 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-e6d53bc6-ba51-4a44-a876-44a57819e814\" 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>Please rerun this cell to show the HTML repr or trust the notebook.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"0548015a-5773-4d12-98d3-d00ba2a44cdf\" type=\"checkbox\" ><label for=\"0548015a-5773-4d12-98d3-d00ba2a44cdf\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"97beaa35-693b-4908-a01b-6132c356a060\" type=\"checkbox\" ><label for=\"97beaa35-693b-4908-a01b-6132c356a060\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">preprocess: ColumnTransformer</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"11b8924b-71d4-48e3-b416-c35463e6b16b\" type=\"checkbox\" ><label for=\"11b8924b-71d4-48e3-b416-c35463e6b16b\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">cat</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"fbdce16f-197a-43d1-b402-2a31dccfa0c8\" type=\"checkbox\" ><label for=\"fbdce16f-197a-43d1-b402-2a31dccfa0c8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"7eee2c88-1eb1-4334-bebf-c134b48f5e24\" type=\"checkbox\" ><label for=\"7eee2c88-1eb1-4334-bebf-c134b48f5e24\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">num</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"20ecf4f3-ee4d-4837-8175-617a3247786b\" type=\"checkbox\" ><label for=\"20ecf4f3-ee4d-4837-8175-617a3247786b\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"7a1d7f36-b986-4dbf-81f4-2c4b44018b3b\" type=\"checkbox\" ><label for=\"7a1d7f36-b986-4dbf-81f4-2c4b44018b3b\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">KNeighborsRegressor</label><div class=\"sk-toggleable__content\"><pre>KNeighborsRegressor(n_neighbors=1)</pre></div></div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 22
}
]
},
{
"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": "329dfd99-7aab-4a62-8c13-e834f277f0c3",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 23,
"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": "85dead20-8579-4c3e-ab84-db2aef3396e5",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 391
}
},
"execution_count": 24,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"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=10,\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, 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": "6b7d8c27-4eff-4c42-9637-e275b69fe402",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 441
}
},
"execution_count": 25,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"!pip install -q shap"
],
"metadata": {
"id": "GQ_CIt4pEKSK",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c59b8464-c8e8-45b2-9901-8e93b4946848"
},
"execution_count": 26,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/575.9 KB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m \u001b[32m573.4/575.9 KB\u001b[0m \u001b[31m22.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m575.9/575.9 KB\u001b[0m \u001b[31m15.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25h"
]
}
]
},
{
"cell_type": "code",
"source": [
"import shap"
],
"metadata": {
"id": "48_o0D-fEIEz"
},
"execution_count": 27,
"outputs": []
},
{
"cell_type": "code",
"source": [
"X_train.shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "tcUndYYWZU1l",
"outputId": "04654909-a7fb-4da0-c473-a981ca2ad5bc"
},
"execution_count": 42,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(112, 4)"
]
},
"metadata": {},
"execution_count": 42
}
]
},
{
"cell_type": "code",
"source": [
"X100 = shap.utils.sample(X_train, 100)"
],
"metadata": {
"id": "o4s6zh4xEzye"
},
"execution_count": 28,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap.plots.partial_dependence(\n",
" \"sepal length (cm)\", knn.predict, X_train, ice=False,\n",
" model_expected_value=True, feature_expected_value=True\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
},
"id": "T3-Mbq-gEZTG",
"outputId": "76cc6b8d-854d-4123-a5f2-4f82ee28448d"
},
"execution_count": 43,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"# compute the SHAP values for the linear model\n",
"explainer = shap.Explainer(knn.predict, X_train)\n",
"shap_values = explainer(X_train)"
],
"metadata": {
"id": "ksgts-UgFlLL"
},
"execution_count": 44,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap.plots.beeswarm(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 237
},
"id": "281B69ZbGYbJ",
"outputId": "ac605aa0-0caf-402d-efc1-8c0f797bb598"
},
"execution_count": 45,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x223.2 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.bar(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 255
},
"id": "HdRqxDO2ntoe",
"outputId": "553a4fe6-2ffe-469e-a28b-4401d3478193"
},
"execution_count": 32,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x252 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.waterfall(shap_values[5])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "JVJpQANrFz56",
"outputId": "161c76f2-c31f-4017-f027-91412f22e836"
},
"execution_count": 35,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x252 with 3 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"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": 36,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"scrolled": true,
"id": "UMRyr788NRBc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 192
},
"outputId": "84b114e3-9036-49b8-b048-4a5fecd19e63"
},
"source": [
"from sklearn import set_config\n",
"\n",
"set_config(display='diagram')\n",
"\n",
"lm.fit(X_train, y_train)"
],
"execution_count": 37,
"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-8c1da84b-8067-4061-b970-08641a70323b {color: black;background-color: white;}#sk-8c1da84b-8067-4061-b970-08641a70323b pre{padding: 0;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-toggleable {background-color: white;}#sk-8c1da84b-8067-4061-b970-08641a70323b label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-8c1da84b-8067-4061-b970-08641a70323b label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-8c1da84b-8067-4061-b970-08641a70323b label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-8c1da84b-8067-4061-b970-08641a70323b input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-8c1da84b-8067-4061-b970-08641a70323b input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-8c1da84b-8067-4061-b970-08641a70323b input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-estimator:hover {background-color: #d4ebff;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-item {z-index: 1;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel-item {display: flex;flex-direction: column;position: relative;background-color: white;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-parallel-item:only-child::after {width: 0;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;position: relative;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-label label {font-family: monospace;font-weight: bold;background-color: white;display: inline-block;line-height: 1.2em;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-label-container {position: relative;z-index: 2;text-align: center;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-8c1da84b-8067-4061-b970-08641a70323b div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-8c1da84b-8067-4061-b970-08641a70323b\" 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>Please rerun this cell to show the HTML repr or trust the notebook.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"7495ca34-529d-4781-96cc-2a92ab40161d\" type=\"checkbox\" ><label for=\"7495ca34-529d-4781-96cc-2a92ab40161d\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"c20bda8f-679d-424c-aa0b-ad650a36f2f0\" type=\"checkbox\" ><label for=\"c20bda8f-679d-424c-aa0b-ad650a36f2f0\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">preprocess: ColumnTransformer</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"810baced-6e81-495e-992d-145e70170230\" type=\"checkbox\" ><label for=\"810baced-6e81-495e-992d-145e70170230\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">cat</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"69f16397-5f69-4a1b-a8a7-16b135988dd7\" type=\"checkbox\" ><label for=\"69f16397-5f69-4a1b-a8a7-16b135988dd7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"d3597d33-b224-4cb1-b128-0fd06c652d2c\" type=\"checkbox\" ><label for=\"d3597d33-b224-4cb1-b128-0fd06c652d2c\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">num</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"555dba84-138f-4416-8a2b-74645686fd93\" type=\"checkbox\" ><label for=\"555dba84-138f-4416-8a2b-74645686fd93\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"3703f3a4-edf6-44b0-a80b-f29fb455eedd\" type=\"checkbox\" ><label for=\"3703f3a4-edf6-44b0-a80b-f29fb455eedd\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearRegression</label><div class=\"sk-toggleable__content\"><pre>LinearRegression()</pre></div></div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 37
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.partial_dependence(\n",
" \"sepal length (cm)\", lm.predict, X100, ice=False,\n",
" model_expected_value=True, feature_expected_value=True\n",
")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 296
},
"id": "F-MSZ5XUHRbr",
"outputId": "6695eac2-9b73-4271-a34b-9cc95574c8dc"
},
"execution_count": 38,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"# compute the SHAP values for the linear model\n",
"explainer = shap.Explainer(lm.predict, X100)\n",
"shap_values = explainer(X_train)"
],
"metadata": {
"id": "yUni0poMHhXz"
},
"execution_count": 39,
"outputs": []
},
{
"cell_type": "code",
"source": [
"shap.plots.waterfall(shap_values[5])"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 281
},
"id": "2TTNLtkDH8rt",
"outputId": "210bb8d7-cca1-46ec-c27c-7095ca271519"
},
"execution_count": 41,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x252 with 3 Axes>"
],
"image/png": "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jo6eC+D8ml5TeS+99NLwuXPnzrDZbLOcTuf4G264YeD333//fXR09BwAI0rb/fXXX+fabLaejz32mGXBggWbk5KS5gI4VUoZsXz58iUHDhw4HBERcerNN9980rJly5b6fP5TcjNmzLg2MzOzwinvcePGPaaUEmvXrvUJISLuu+++a2fOnPlhZGTk/wF4tJKoJycnJwe7XK51pTOklPaEhISNmzZt8kVGRp535513bjh8+PCly5YtSy1tc/jw4f4mk2nspEmTvtq8efNvS5YseWvJkiW7vV7vKZMmTWo9d+7cdV6v9z0AV5QuEx0dvdvlcp1S131JVNaPSQq51QzhuOIGM4ZUcbRxdbLC/QleOMt1h3JagdzCut8Q/LKTBBwW4Iu/6r5scXEAX6JO1MIUFdWzj00zVpuC8i0A/waQCqAHgI8A/A/AjZU1llJ2BPAUgLNrG0LTtNNq27acQrPZrMLCwga3b99+zcGDB3cB2AUA27dvn5yYmAiv13u5UsoDIPO55557efLkyc8JIeJmzJgBALBarR8cOHDgJwB4991379iwYcOyoqKiywF8+tVXX/1fmW19NWbMmHVffPHFWfUJunXr1udcLld2amrq2JJZy91u91fvvffedUIIc2me7OzsB9PT0/cAwP79+9dv3779TAAoKiq6fOPGjVafz3eHz+c7BODQo48++uHmzZvvrc32U1JSblJK5QL46Pfff39ny5Yt51bRNLKgoAAFBQXHikWfz3fZmjVrnEqpK7OystaWzD7uYiSn07kpMTHxEwCYNm3auwsWLHj98OHDT3u93v0A9v/xxx8HEhISzii7jNVqzSksLKzx0tbc3Fw4HA5Oc7rS6cFxoZhdTR/K8+d6K3+ihD3YfxFN1whgT8nttPu0Ethej6vGh3YS6B8rcPge/yHTcAvgVcCprUy46pvqr40rfU2AcfYtpznN6cqn4+LiGn1bgabGglLTtN/KPNwupXwQwEop5VhN0yobKv59AFM0TTt4okJWJTw8/MNrr7223++//35HZmbmQ7GxsVkhISHPJSYm/jczM7Orz+czh4SEuO32f3rGBwUFqeLi4mNHQ3NycraUTpvN5sSoqCgUFxd3A4DbbrvtldWrV9995MiR0MLCQgHUf3T8nJycOJfLFWm32487dCGE8AFoU/rY6/Ue22/BwcH5xcXFFgA4evRo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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.beeswarm(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 237
},
"id": "uy26MdaIHqVk",
"outputId": "028b0d3e-4492-4902-bf71-d42c16024666"
},
"execution_count": 46,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x223.2 with 2 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"shap.plots.bar(shap_values)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 255
},
"id": "OV2zeVLzIp2X",
"outputId": "44d810d0-4d0b-4d79-8572-61f4e1c6b96d"
},
"execution_count": 47,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x252 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "o9rVdLtCNRBv",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "4953305e-751a-4d32-b1da-efc4ef2f0c35"
},
"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": 48,
"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": 391
},
"outputId": "7324f019-9ab4-4b2e-9cd7-672bc445f643"
},
"source": [
"scatter_predictions(lm.predict(X_test), y_test)"
],
"execution_count": 49,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"boxplot_pi(lm, X_test, y_test)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 441
},
"id": "X8bwlzZDcu2G",
"outputId": "70181b44-e26a-499c-c5ff-c08c45cc042d"
},
"execution_count": 50,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "U-WxMmdxNRB_",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "b5fc0af6-4ae5-4054-c4df-e83aa7227fbf"
},
"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": null,
"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",
"normalize\n",
"positive\n"
]
}
]
},
{
"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": 51,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"scrolled": false,
"id": "pAckw-G4NRCf",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 192
},
"outputId": "89a37b81-709d-4c1c-9f78-0a05de5131c9"
},
"source": [
"rf.fit(X_train, y_train)"
],
"execution_count": 52,
"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-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 {color: black;background-color: white;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 pre{padding: 0;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-toggleable {background-color: white;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-estimator:hover {background-color: #d4ebff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-item {z-index: 1;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel-item {display: flex;flex-direction: column;position: relative;background-color: white;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-parallel-item:only-child::after {width: 0;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;position: relative;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-label label {font-family: monospace;font-weight: bold;background-color: white;display: inline-block;line-height: 1.2em;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-label-container {position: relative;z-index: 2;text-align: center;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-6e6a82bc-5b2a-459b-87c1-a4ea86d8a213\" 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>Please rerun this cell to show the HTML repr or trust the notebook.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"c633e83b-a0b1-4563-8ca9-0b9db2cf05aa\" type=\"checkbox\" ><label for=\"c633e83b-a0b1-4563-8ca9-0b9db2cf05aa\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"4ae69dd9-1ed8-41ca-b2e8-418b94941707\" type=\"checkbox\" ><label for=\"4ae69dd9-1ed8-41ca-b2e8-418b94941707\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">preprocess: ColumnTransformer</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"a8318421-2b62-411d-a869-9883341f5277\" type=\"checkbox\" ><label for=\"a8318421-2b62-411d-a869-9883341f5277\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">cat</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"8438c20c-e881-4905-a358-e34e71257049\" type=\"checkbox\" ><label for=\"8438c20c-e881-4905-a358-e34e71257049\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"dd0a9c83-cce7-4a85-93e4-e6e1b0403009\" type=\"checkbox\" ><label for=\"dd0a9c83-cce7-4a85-93e4-e6e1b0403009\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">num</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"09a1dbce-f69b-4922-868f-261ab19aa8c8\" type=\"checkbox\" ><label for=\"09a1dbce-f69b-4922-868f-261ab19aa8c8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"2b0db141-667a-4c1a-8ea9-18f72d14e5b3\" type=\"checkbox\" ><label for=\"2b0db141-667a-4c1a-8ea9-18f72d14e5b3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestRegressor</label><div class=\"sk-toggleable__content\"><pre>RandomForestRegressor(n_jobs=-1, random_state=42)</pre></div></div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 52
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "6onlZOMeNRCj",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "ee3d5a1c-7797-428f-a76c-74e9b909b5e6"
},
"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": 53,
"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": 391
},
"outputId": "d25268a9-2662-46aa-f44c-19d6ba541e82"
},
"source": [
"scatter_predictions(rf.predict(X_test), y_test)"
],
"execution_count": 54,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAF2CAYAAAB02w9PAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZwU1bn/8c/jiIJLxAU3BCFqUCOJXMcVc68hiXijInG5rrmamBj1+tMYxYASRdSAS4xxizFoQtyCcSGIUYPBuEVNBkFR0WgQ1HEBQVAiIgzP74/qsXuGnpnuma461dXf9+s1L87pru5+0mn721Xn1Clzd0RERFpbK3QBIiKSTgoIEREpSgEhIiJFKSBERKQoBYSIiBSlgBARkaJiDwgzqzOzmWY2tch9J5jZQjOblfv7Xtz1iIhIadZO4DXOAOYAn2vj/knufloCdYiISBli3YMws22AA4EJcb6OiIhUXtx7EFcB5wAbtrPNYWb2n8A/gTPd/c32nnCzzTbzfv36Va5CEZEaMGPGjPfdvVc5j4ktIMzsIGCBu88ws/3a2Ow+4A53X2FmPwAmAkOKPNdJwEkAffv2paGhIaaqRUSyyczml/uYOA8xDQaGmdk84PfAEDO7tXADd1/k7ity3QnAbsWeyN1vdPd6d6/v1ausABQRkU6KLSDcfZS7b+Pu/YCjgOnuflzhNma2VUF3GNFgtoiIpEASs5haMLOxQIO7TwFON7NhwCpgMXBC0vWIiEhxVm3LfdfX17vGIEREymNmM9y9vpzH6ExqEREpSgEhIiJFKSBERKQoBYSIiBSlgBARkaIUECIiUpQCQkREilJAiIhUg9cfg0+WJvqSCggRkbS7/UiYeDD87pBEXzbxpTZERKQMvz0I5j0etY+elOhLKyBERNLq10OgcUbUHjEX1t800ZdXQIiIpNF1e8LCl6P2j+dDj56Jl6CAEBFJm5/vAktzF9cc9Ras295FOeOjgBARSZPxffOzlc59B9ZZL1gpCggRkbQYuymsXhW1z3sPunUPWo4CQkQkNHe4sGCMYfRCWHudcPXkKCBEREJqHQ4/WQR16fhqTkcVIiK1aPVqGLtxvn/+YlirLlw9rehMahGREJpWtQqHD1IVDqA9CBGR5DWthIs2y/cvWAJm4eppg/YgRESStGpFVYQDKCBERJKzcjlcvHnU7rY+jFma2nAABYSISDJWLINLtozaG2wB570dtp4SKCBEROL2yVIY1ztqb/J5OPufYespkQJCRCROHy+Ols8A2PJLcPrMsPWUQQEhIhKXZQvhsv5Ru+8+cPLjYespkwJCRCQOH74DV2wftbf/Onz3gbD1dIICQkSk0pa8AVfuGLV3GgbH3R22nk5SQIiIVNLiuXDVwKj95aPhyFvC1tMFCggRkUpZ+E+4elDUrv8ufOuGsPV0kQJCRKQS3n0Brts9au99Ghz087D1VIDWYhIR6arGZ+HXX43a/zkChowOW0+FKCBERLrijWfg5v2j9tfOh6+cFbaeClJAiIh01uuPw8SDovbQn8Le/xe2ngpTQIiIdMZrD8Oth0XtA6+E3U8MW08MFBAiIuV6+X74/TFRe/gvYddjwtYTEwWEiEg5Xrgb7vpu1D78ZtjlsLD1xEgBISJSqll3wOSTo/aRt8FOB4WtJ2YKCBGRUjT8Bqb+MGofexfs8I2w9SRAASEi0pGnfwkPjozax98H/f8zbD0JUUCIiLTn8SvhLxdG7e8+BH33CltPghQQIiJteeSn8OilUfv706H3bmHrSZgCQkSkmD//BP52ddQ++QnYcmDYegJQQIiItHb/2fCPX0ftU5+BzXcMW08gCggRkUKTT4VZt0Xt//csbLpd2HoCUkCIiDS783h4aXLU/uFs6Nk3bD2BKSBERABuOwJe/XPU/tEc+NzWYetJAQWEiMhvDoT5T0Tts1+FDTYPW09KKCBEpLb96r/gnVlR+5zXYb1NwtaTIgoIEald19TDolej9o/nQ4+eYetJGQWEiNSmn+0IH70TtUe9BetuGLaeFFJAiEjt+ek28OlHUfvcd2Cd9cLWk1IKCBGpHe5wYcFhpNELYO11w9WTcgoIEakNrcPhJ+9DXbdw9VQBBYSIZN8a4bAI6vT11xG9QyKSbatXw9iN8/3zP4C11gpXTxVRQIhIdjWtgos2zfcvWAJm4eqpMopREcmmVZ8qHLpIexAiVWbyzEYuf+gV3l6ynK179mDE0AEMH9Q7dFnpsvITuGSLqG1rwfmLFQ6dEPsehJnVmdlMM5ta5L51zWySmb1mZs+YWb+46xGpZpNnNjLqntk0LlmOA41LljPqntlMntkYurT0+PTjfDis+zm44AOFQyclcYjpDGBOG/edCHzg7tsDPwcuTaAekap1+UOvsHxlU4vblq9s4vKHXglUUcqs+Ah+ulXU3nBrGPVm2HoqZPLMRgaPn07/kfczePz0xH4QxBoQZrYNcCAwoY1NDgEm5tp3AV8zU9SLtOXtJcvLur2mLF8C47aJ2pt9Ac5q63dpdQm51xj3HsRVwDnA6jbu7w28CeDuq4ClwKatNzKzk8yswcwaFi5cGFetIqm3dc8eZd1eMz5eDJduG7W3HgSn/SNsPRUUcq8xtoAws4OABe4+o6vP5e43unu9u9f36tWrAtWJVKcRQwfQo1tdi9t6dKtjxNABgSpKgWUL4LL+UbvfV+Ckv4aspuJC7jXGuQcxGBhmZvOA3wNDzOzWVts0An0AzGxtYCNgUYw1iVS14YN6M+7QgfTu2QMDevfswbhDB9buLKYP34YrdojaOwyFE9aYC1P1Qu41xjbN1d1HAaMAzGw/4Gx3P67VZlOA44GngMOB6e7ucdUkkgXDB/Wu3UAo9MF8+MWXovYXvwVH/DZoOXEZMXQAo+6Z3eIwU1J7jYmfB2FmY4EGd58C3ATcYmavAYuBo5KuR0TiEev5Gov+Bdf8R9Te9TgYfl1lnjeFmt+zEOe+WLX9YK+vr/eGhobQZYhIO5pn3rT+1VuRw2ELXobr94zau38fDryia89XI8xshrvXl/MYLbUhIhUX28ybd57Ph8M+pyscYqalNkSk4mKZedM4A349JGr/10j46qjOP5eURHsQIlJxFZ95M/+pfDh8fYzCISEKCBGpuIqerzH3UfjNAVH7gEth3zMrUKGUQoeYRKTiKjbz5tVpcNvhUfvgX8BuJ1S2UGmXAkJEYtHl8zXmTIVJx0btb/0KvqxZ8ElTQIhI+sy+C+4+MWof8dvoRDhJnAJCRNJl5m3wx1Oj9lF3wI7fDFtPDVNAiEh6/OMmuP9HUfu4u2H7r4etp8YpIEQkHZ66Dh46N2ofPxX6fyVsPaKAEJEUeOwKmH5R1D5xGvTZI2w9AiggRCS0v1wEj+eWzDjpr9EFfyQVFBAiEs5D58FT10btk5+ELXcJW4+0oIAQkTCmngkNN0ft//sH9PpC2HpkDQoIkUBivV5C2t3zA3j+91H79JmwyefD1iNFKSBEAmh9vYTGJcsZdc9sgOyHxKTjYM59UfuHL0DPPmHrkTZpsT6RAGK7XkLa3XJoPhx+9LLCIeW0ByESQCzXS0i7mw+AN56K2me/Bhv0CluPdEh7ECIBVPx6CWl3w775cDjndYVDlVBAiARQ0eslpN3Vg+DdaHyFkW/AepuErUdKpkNMIgFU7HoJaTdmo3x7VCOsu0G4WqRsCgiRQLp8vYS0KwyH896Fbhk9fJZhOsQkIpXl3jIcfvSywqFKaQ9CRCpn9WoYu3G+f87rGnOoYgoIEamMppVw0Wb5vsYcqp4CQkS67tOP4adb5fujF8Da64arRypCASEiXbN8CVy6bb5//mJYq67t7aVqaJBaRDpv2YKW4XDBEoVDhiggRKRzlrwBV+yQ749ZCmbh6pGKU0CISPkWvAxXDcz3xywNV4vERgEhIuV5awZcv2e+r3DILAWEiJRu7qMwYUi+r3DINAWEiJRmzlT43bB8X+GQeQoIEenYrNth0rH5vsKhJiggRKR9T10Hk0/J9xUONUMnyolI26ZfDI9dnu8rHGqKAkJEipt6JjTcnO8rHGqOAkJE1jTp2zBnSr6vcKhJCggRaenmA/LXjwaFQw1TQIhI3tWDYPHcfF/hUNMUECISuWQrWPlxvq9wqHkKCBFpeYlQUDgIoPMgREThIG3QHoRIlZk8s5HLH3qFt5csZ+uePRgxdADDB/Xu3JMpHKQdCgiRKjJ5ZiOj7pnN8pVNADQuWc6oe2YDlB8SCgfpgA4xiVSRyx965bNwaLZ8ZROXP/RKeU+kcJASKCBEqsjbS5aXdXtRCgcpkQJCpIps3bNHWbevoTAc1u6hcJB2KSBEqsiIoQPo0a2uxW09utUxYuiAjh9cGA4b94fR71a4OskaDVKLVJHmgeiyZzEVhkOfveDEh2KsUrJCASFSZYYP6l3ejKXCcNjxIDjqtsoXJZmkgBDJssJw2O07cPBVib10Rc/XkCAUECJZVRgOXzkbvvaTxF66oudrSDAapBbJosJw2P+SRMMBKni+hgSlPQiRrCkMh0Oug0HHJV5CRc7XkOC0ByGSJYXh8D+3BAkHqMD5GpIKCgiRrCgMh//9I+w8LFgpXTpfQ1JDh5hEsqAwHL43HbbZLVwtdOF8DUmV2ALCzLoDjwHr5l7nLne/oNU2JwCXA425m6519wlx1SSSSYXhcOozsPmO4WopUPb5GpI6ce5BrACGuPsyM+sGPGFmD7j70622m+Tup8VYh0h2FYbDGc/DxtuGq0UyJ7aAcHcHluW63XJ/HtfridQUd7iwZ75/9quwwebh6pFMinWQ2szqzGwWsACY5u7PFNnsMDN73szuMrM+cdYjkglNq1qGw4/nKxwkFrEGhLs3ufuuwDbAHma2S6tN7gP6ufuXgGnAxGLPY2YnmVmDmTUsXLgwzpJF0m3lcrho03x/VCP06Nn29iJdkMg0V3dfAjwCHNDq9kXuviLXnQAUnXrh7je6e7271/fq1SveYkXS6pOlcMmW+f5578G6G4SrRzIvtoAws15m1jPX7gF8A3i51TZbFXSHAXPiqkekqn30Hozvm++fvxi6dQ9Xj9SEOGcxbQVMNLM6oiC6092nmtlYoMHdpwCnm9kwYBWwGDghxnqkCmlFUGDx63D1rvn+BUvALFw9UjMsmmxUwoZmvYFtKQgVd38sprraVF9f7w0NDUm/rATQekVQiM7GHXfowNoJiXdfgBsG5/u6RKh0kpnNcPf6ch5T0h6EmV0KHAm8BDT/1+pEJ8KJxKK9FUFrIiDmPwW/KRi2UzhIwko9xDQcGFAwoCwSu5peEfSVB+COo/J9hYMEUOog9VyiE91EElOzK4LOul3hIKlQ6h7Ex8AsM/sL0RIaALj76bFUJWXJ6kDuiKEDio5BZHpF0CevhmkFF/dROEhApQbElNyfpEyWL+1YcyuCTjsfnvxFvq9wkMDKmcW0DvCFXPcVd18ZW1Xt0CymlgaPn05jkWPyvXv24MmRQwJUJJ1y78nw3B35vsJBKizOWUz7ES2DMQ8woI+ZHR9imqu0VNMDuVnxu+Ew95F8X+EgKVHqIaafAfu7+ysAZvYF4A7aWBpDkrN1zx5F9yAyP5DbgaoZlylcrhsUDpIqpc5i6tYcDgDu/k80qykVdGnHNTWPyzQuWY6TH5eZPLOxw8cmSuEgKVdqQDSY2QQz2y/392tAAwEpMHxQb8YdOpDePXtgRGMPNXWmcRHtnWCXGgoHqQKlHmI6Bfg/oHla6+PA9bFUJGXTpR1bSv24jMJBqkRJAZE7g/rK3J9IqqV6XEbhIFWk3UNMZnZn7t/Zuau+tfhLpkSR8qR2XEbhIFWmoz2IM3L/HhR3ISKVksoT7BQOUoXaDQh3fyfXPNXdf1x4X26F1x+v+SiR8FI1LtNGOFTNVFypWaXOYvpGkdv+u5KFiGRSO+FQFVNxpaZ1NAZxipnNBnZsNf7wOjA7mRJFqlQ7h5WqYiqu1LyOxiBuBx4AxgEjC27/yN0Xx1aVSLXrYMwh9VNxRehgD8Ldl7r7POAXwGJ3n+/u84FVZrZnEgWKVJ0SBqRr9loXUlVKHYP4JbCsoL8sd5uIFCpxtlJqp+KKFCj1TGrzgnXB3X21mZX6WJHaUMZU1lROxRVppdQv+blmdjr5vYZTiS5DKhKr0ZNnc8czb9LkTp0ZR+/Zh4uHDwxd1po6cZ5DqqbiihRR6iGmk4F9gEbgLWBP4KS4ihKBKBxuffoNmnI7r03u3Pr0G4yenLIJdDoJTjKq1LWYFgBHdbihZF6SJ3fd8cybbd6emr0IhYNkWLsBYWbnuPtlZnYNsMa1Sd399CIPk4xK+vrXTW1cDret2xNXGA7r94IRr4WrRSQGHe1BzMn9q2s/SLsnd8UREHVmRcOgzqzir1W2wnDosyec+OdwtYjEpKO1mO7L/TsxmXIkzZI+uevoPftw69NvFL09qMJwGHgEHDYhXC0iMeroENN9FDm01Mzdh1W8IkmtpK+z0DzOkKpZTIXhsO+Z8PUxoSoRiV1Hh5iuyP17KLAlcGuufzTwXlxFSTqNGDqgxRgExH9y18XDB6ZzQPq/L4c9NZFPsq2jQ0yPApjZz9y9vuCu+8xM4xI1pqZP7ioMhyMmwheHh6tFJCGlnii3vpl93t3nAphZf2D9+MqStKq5k7vc4cKe+f4J90O/fcPVI5KgUgPiTOCvZjYXMGBb4AexVSWSBqtXw9iN8/1T/gZbfDFcPSIJK/VEuQfNbAdgx9xNL7v7ivjKEgls1Qq4ePN8/4ezoWffcPWIBFDSUhtmth4wAjjN3Z8D+pqZrlMt2fTJ0pbhcM7rCgepSaWuxfQb4FNg71y/Ebg4lopEQlo8F8YXhMG578B6m4SrRySgUgNiO3e/DFgJ4O4fE41FiGTHWw1w9aB8/yeLYJ31wtUjElipAfGpmfUgd9KcmW0HaAxCsuOVB2HC1z7r9v/kNgZf/hiTZzYGLEokrFJnMV0APAj0MbPbgMHACXEVJZKohpth6pmfdft9cjsQ/2KESUtyJV7Jhg4DwszWAjYmOpt6L6JDS2e4+/sx1yYplLkvmb+Mhcd/9lm3ORyaxbkYYZKSXolXsqHDQ0zuvho4x90Xufv97j5V4VCbmr9kGpcsx8l/yVTtYZg/nNAiHPq3CodmcS1GmKT2VuIVaUupYxAPm9nZZtbHzDZp/ou1MkmdTH3J/HIwvHhvvj9maZuLDsa1GGGSkl6JV7Kh1IA4kug61I8SXRui+U9qSGa+ZMZuCu+9kO/nrgI3YugAenSra7Fp3IsRJiXL4SfxKTUgdgauA54DZgHXAFpzoMZk4ktmzEawelVBP3+J0OGDejPu0IH07tkDA3r37MG4Qwdm4hh9lsNP4lPqLKaJwIfA1bn+Mbnb/ieOoiSdQiz33VlFB9P/uHPLjYpcPzrJxQiTHPCv6ZV4pdNKDYhd3L3wv65HzOylOAqS9Bo+qDcN8xe3uIDPYbulb3XXYjN2SgmHJIWYVVRzK/FKl5V6iOlZM9uruWNme6IxiJozeWYjd89o/Ow60U3u3D2jMXWzmFoPps/rfkzLDQKHA2RswF8yq9SA2A34m5nNM7N5wFPA7mY228yej606SZVq+VIrHDRPYzhAhgb8JdNKPcR0QKxVSFUI8aXWmeP0zdfObh0Og7vfy5MxvF5nJH19b5HOKGkPwt3nt/cXd5GSDknPYursiXkjhg5YIxx2WHlHh4PpSZ4IqFlFUg1KPcQkCZg8s5HB46fTf+T9DB4/PXXH9pP+UuvsIa3WA9L9Prk9t8xkPK/XGVmeUivZUeohJolZNayVk/RUyU4d0hqzUYtu89pKK1d7h2sqJX0ITbOKJO0UECnR3q/XNH2JJPmlVvZx+jbCoVlHX/QaFxBpSYeYUkKzWtZU1iGtDsIBOv6i17iASEsKiJTIxDIWFVbycfpW4TD5kJc69UWvcQGRlsy9hNG7FKmvr/eGhuydo9d6DAKiLzV9QXWgVTg0n+eQuetWiHSRmc1w9/pyHqMxiJTQWjmd0EY4gAaARSpBAZEi+lIrQzvhANqDEKkEBYRUnxLCIe1ThkWqQWyD1GbW3cz+bmbPmdmLZnZhkW3WNbNJZvaamT1jZv3iqkcyooNwgOpZM0ok7eKcxbQCGOLuXwZ2BQ4oXBE250TgA3ffHvg5cGmM9Ui1KyEcQFOGRSoltkNMHk2PWpbrdsv9tZ4ydQgwJte+C7jWzMyrbWqVdKjLYwIlhgPohDeRSon1PAgzqzOzWcACYJq7P9Nqk97AmwDuvgpYCmwaZ02SvC4vgldGOIBOeBOplFgDwt2b3H1XYBtgDzPbpTPPY2YnmVmDmTUsXLiwskVK7Lo0JlBmOIBOeBOplERmMbn7EjN7hOi6Ei8U3NUI9AHeMrO1gY2ARUUefyNwI0QnysVfsVRSp8cECsNhl8Pg8JtLfk1NGRbpujhnMfUys565dg/gG8DLrTabAhyfax8OTNf4Q/Z0ahmRwnDY+7SywkFEKiPOPYitgIlmVkcURHe6+1QzGws0uPsU4CbgFjN7DVgMHBVjPRLIiKEDii4j0uaYQGE47H8J7HNazBXmjZ48mzueeZMmd+rMOHrPPlw8fGBiry+SJnHOYnoeGFTk9vML2p8AR8RVg6RDWcuIFIbDoRPgS8l9PEZPns2tT7/xWb/J/bO+QkJqkRbrk/QoDIdv3wvbDUn05bcb9Seaivz3UGfGv8Z9M9FaRCpNi/VJdXKHC3vm+99/BHr/R+JlFAuH9m4XyToFhIS1ugnGbpLvnzYDNts+SCl1Zm3uQYjUopoICK3smVIrP4FLtsj3z3oFNtwyWDlH79mnxRhE4e0itSjzAaGVPVNq+RK4dNt8f+Sb0P1z4eohPxCtWUwikcwPUg8eP73oujy9e/bgyZHJDoJKzofvwJU75vujF8Da64arR6QGdGaQOvPXpNbKninz/qstw+H8xQoHkZTK/CEmreyZIm/NgAkFe20XLAENAGeWxv6qX+b3ILSyZ0q8+nDLcBizVOGQYV1ewVdSIfN7EGWdxSvxeO73cO8P8v0SVmStNvq13FJ7K/jW8vtSbTIfEKCVPYN68hcw7fx8P6PhoJlyLWnsLxsyf4hJKmvyzEYGj59O/5H3M3j89PYPGTw4KvPhALoGdjGdWsFXUkcBISUr67jyncfD09fn+xkNB9Cv5WI09pcNCggpWcm/lH89BF6anO9nOBxAv5aL0VX9sqEmxiCkMkr6pXxpf1i+ON/PeDhAJ653USM09lf9FBBSsg7PKenE9aPTpjOzkTRTTrJKASEla/eXckbCobOzkfRrWbJIYxBSsuGDenPYbr0/W/66zozDduvN8D/u3HLDKgwH0GwkkdYUEFKyyTMbuXtG42fXTGhy5+JZ+7bcqErDATQbSaQ1BYSUrPUv7Hndj2m5QRWHA2g2kkhrCggpWeEv6ayFA2juvkhrCggpWfMv6dbhMLj7vSHKqTjN3RdpSbOYpGQjhg5YY0B6p6ZJjMvQL2zNRhLJU0BIyVqHw+Du9zJO8/1FMksBIaUpcp7Dk2EqEZGEaAxCOpaBk+BEpHwKCGmfwkGkZikgpG0KB5GapoCQ4grDwdZSOIjUIA1Sy5oKw2GjPnDmC8FK0bWeRcJRQEhLheGwzR7wvWnBStG1nkXC0iEmySsMh50ODhoOoNVVRUJTQEikMBx2/z4ceWu4WnK0uqpIWAoIaRkO+42CA68IV0sBra4qEpYCotYVhsM3r4D9RoarpRWtrioSlgapUyTxGTuF4XDYTTDw8PheqxN0rWeRsBQQKZH4jJ3CcDj2btjh65V/jQrQ6qoi4egQU0okOmOnMBxOfDi14SAiYWkPIiUSm7FTGA6nPg2b71TZ5xeRzNAeRErEPmPHvWU4nPG8wkFE2qWASIlYZ+ysboILe+b7Z78KG2/b9ecVkUzTIaaUiG3GzqoVcPHm+f7IN6D7Rm1vLyKSo4BIkYrP2FmxDMYVPN9570G37pV7fhHJNAVEVn28GC7rn+//ZBHU6f9uESmdvjGyaGkj/HznfP+CJWAWrh4RqUoapM6a919tGQ5jliocRKRTFBBZ0vgsXFuf7+sqcCLSBTrElBVzH4XfDcv3SwiHJNd+0pXhRKqPAiILXn+sU+GQ1NpPujKcSHXSIaZqN2cqTDw43y/xsFKSaz/pynAi1UkBUc1m3Q6Tjs33yxhzSPJqbboynEh1UkBUq6eug8mn5PtlDkgnebU2XRlOpDopIKrR9EvgoXPz/U7MVkryam26MpxIddIgdbWZ+iNouCnf7+RU1iSv1qYrw4lUJ3P30DWUpb6+3hsaGkKXEcakb8OcKfm+znMQkRKZ2Qx3r+94yzztQVSLmw+AN57K9xUOIhIzBUQ1uHoQLJ6b7yscRCQBCogUKXq28Z92h5X/zm+kcBCRhCggUqLY2cbD/7hzy40UDiKSoNimuZpZHzN7xMxeMrMXzeyMItvsZ2ZLzWxW7u/8uOpJu9ZnG8/rfkzLDRQOIpKwOPcgVgFnufuzZrYhMMPMprn7S622e9zdD4qxjqpQeFaxwkFE0iC2PQh3f8fdn821PwLmAJr43obms4pbh8Pg7veGKEdEJJkzqc2sHzAIeKbI3Xub2XNm9oCZfTGJetJoxNABHLvOYy1u26lpks42FpFgYh+kNrMNgLuBH7r7h63ufhbY1t2Xmdk3gcnADkWe4yTgJIC+ffvGXHEYw1f+ieFr3QDA9auGcdsG32GczjYWkYBiPZPazLoBU4GH3P3KErafB9S7+/ttbZPJM6n/dg38eXTUPuFP0G9w2HpEJHM6cyZ1nLOYDLgJmNNWOJjZlrntMLM9cvUsiqumVHr0snw4nPiwwkFEUiPOQ0yDgW8Ds81sVu62c4G+AO5+A3A4cIqZrQKWA0d5tS0O1RUPXwhP5LLzB4/BVl8OW4+ISIHYAsLdnwCsg22uBa6Nq4ZUe3AUPH191D7lKdhi5/a3FxFJmM6kDmHK6fDsxKh92gzYbPuw9YiIFKGASNrd34PZf4jap8+CTfqHrUdEpA0KiCTdcQy8cn/UPvNF2GibsPWIiLRDAZGU3x0Cc/8atc96BTbcMmg5IiIdUUAkYcAsgkoAAAjNSURBVMI34K2/R+0R/4L1Nwtbj4hICRQQcbt+H1jwYtT+8TzosXHQckRESqWAiNNVA2HJG1F75JvQ/XNh6xERKYMCIi6XfR4+zp0Ufu7bsM76YesRESmTAiIOF/WCpk+j9nnvQbfuYesREekEBUQlucOFPfP90Qth7XXC1SMi0gUKiEppHQ4/WQR1entFpHrpG6wSVq+GsQWzk85fDGvVhatHRKQCErmiXKatbmoVDh8oHEQkE7QH0RVNK+GigpPeLlgC1u4CtiIiVUN7EJ21aoXCQUQyTQHRGSuXw8WbR+21u8OYpQoHEckcBUS5Pv03XJJbaG+9zWD0e2HrERGJiQKiHJ98CD/dOmpv3A/O+VfQckRE4qSAKNXHi2F8n6i9xUA447mw9YiIxEwBUYp/vw+X5a781mcvOOWJsPWIiCRAAdGRj96Fy7eL2p//Kpz4UNh6REQSooBoz9K34GcDovaOB8H/Tg5bj4hIghQQbVn8Ovz8i1H7S0fCUbeFrUdEJGEKiGIW/hOu3jVq73YCHHpj0HJEREJQQLT23otw3e5Re69T4eBfhK1HRCQQBUSht2fBL/eJ2l85Cw4YF7YeEZGAtFhfszf/ATd9PWp/dTT814iw9YiIBKaAAJj3BPz2wKi9/yWwz2lh6xERSQEFxGt/gVsPjdrfvAL2+H7YekREUqK2A+KVB+COo6L2IdfBoOPC1iMikiK1GxAvToY/HB+1D7sJBh4eth4RkZSpzYB4bhLce1LUPvJW2OngsPWIiKRQ7QXEjIlw3+lR+5g/wBf2D1uPiEhK1VZAPPMreOCcqP3tybDdV8PWIyKSYrUTEEveyIfDdx6AbfcJW4+ISMrVzpnUdevAtvvC96YrHERESlA7exAbbgnfuT90FSIiVaN29iBERKQsCggRESlKASEiIkUpIEREpCgFhIiIFKWAEBGRohQQIiJSlAJCRESKUkCIiEhRCggRESlKASEiIkUpIEREpCgFhIiIFGXuHrqGspjZQmB+6DpithnwfugiUkbvyZr0nqxJ70lxmwHru3uvch5UdQFRC8yswd3rQ9eRJnpP1qT3ZE16T4rr7PuiQ0wiIlKUAkJERIpSQKTTjaELSCG9J2vSe7ImvSfFdep90RiEiIgUpT0IEREpSgERiJn1MbNHzOwlM3vRzM4oss1+ZrbUzGbl/s4PUWtSzKy7mf3dzJ7LvScXFtlmXTObZGavmdkzZtYv+UqTU+J7coKZLSz4nHwvRK1JM7M6M5tpZlOL3FdTn5NmHbwnZX9O1o6nTCnBKuAsd3/WzDYEZpjZNHd/qdV2j7v7QQHqC2EFMMTdl5lZN+AJM3vA3Z8u2OZE4AN3397MjgIuBY4MUWxCSnlPACa5+2kB6gvpDGAO8Lki99Xa56RZe+8JlPk50R5EIO7+jrs/m2t/RPR/au+wVYXlkWW5brfcX+tBskOAibn2XcDXzMwSKjFxJb4nNcfMtgEOBCa0sUlNfU6gpPekbAqIFMjt/g4Cnily9965wwsPmNkXEy0sgNwu8ixgATDN3Vu/J72BNwHcfRWwFNg02SqTVcJ7AnCYmT1vZneZWZ+ESwzhKuAcYHUb99fc54SO3xMo83OigAjMzDYA7gZ+6O4ftrr7WWBbd/8ycA0wOen6kubuTe6+K7ANsIeZ7RK6ptBKeE/uA/q5+5eAaeR/OWeSmR0ELHD3GaFrSYsS35OyPycKiIByx5TvBm5z93ta3+/uHzYfXnD3PwHdzGyzhMsMwt2XAI8AB7S6qxHoA2BmawMbAYuSrS6Mtt4Td1/k7ity3QnAbknXlrDBwDAzmwf8HhhiZre22qbWPicdvied+ZwoIALJHQ+9CZjj7le2sc2WzcdNzWwPov+/MvshN7NeZtYz1+4BfAN4udVmU4Djc+3Dgeme4ZN5SnlPzGyrgu4wovGszHL3Ue6+jbv3A44i+gwc12qzmvqclPKedOZzollM4QwGvg3Mzh1fBjgX6Avg7jcQfbBPMbNVwHLgqCx/yIGtgIlmVkcUhne6+1QzGws0uPsUolC9xcxeAxYT/ceQZaW8J6eb2TCimXGLgROCVRtQjX9Oiurq50RnUouISFE6xCQiIkUpIEREpCgFhIiIFKWAEBGRohQQIiJSlAJCMs/MeprZqTE+/35mtk9cz9/qtc5N4nVEQAEhtaEnUDQgcmfZdtV+QFkB0YXXVUBIYhQQUgvGA9vl1sC/PPeL/3EzmwK8ZGb9zOyF5o3N7GwzG5Nrb2dmD5rZjNxjdix84txCiycDZ+ae/ytmdnDuGgQzzexhM9sit+0YM7vFzJ4kOomrl5lNy13nYYKZzW9eSsXMjrPoOhCzzOxXuQX7xgM9crfdlsD7JjVOZ1JLLRgJ7JJb8A4z2w/4j9xtr3dwMZkbgZPd/VUz2xO4HhjSfKe7zzOzG4Bl7n5F7vk3BvZyd89dlOUc4KzcQ3YG9nX35WZ2LdGSCOPM7ACiaxhgZjsRXbtgsLuvNLPrgWPdfaSZndb8v0MkbgoIqVV/d/fX29sgt9LuPsAfCi4lsG4Jz70NMCm39s06QOHrTHH35bn2vsC3ANz9QTP7IHf714gWUvtH7nV7EC31LZIoBYTUqn8XtFfR8nBr99y/awFLOvGL/RrgSnefkttbGdPG67bFgInuPqrM1xWpKI1BSC34CNiwnfvfAzY3s03NbF3gIIiWWwdeN7MjIFqB18y+XMLzb0S03DTkVxQt5kngf3LPvT+wce72vwCHm9nmufs2MbNtc/etzC0TLxI7BYRknrsvAp40sxfM7PIi968ExgJ/J7qQSuFy2scCJ5rZc8CLRJeybO0+4FvNg9REewx/MLMZwPvtlHYhsH9ugPwI4F3go9x1yUcDfzaz53M1NS/VfCPwvAapJQlazVUkkNzeSpO7rzKzvYFfagBa0kRjECLh9AXuNLO1gE+B7weuR6QF7UGIiEhRGoMQEZGiFBAiIlKUAkJERIpSQIiISFEKCBERKUoBISIiRf1/NbD3gLGPZisAAAAASUVORK5CYII=\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "EqZqJRZmNRC1",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "63b466ef-65e5-46ee-b1c9-e6cf4d41d1a9"
},
"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": 55,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"The hyper-parameters for a random forest model are:\n",
"memory\n",
"steps\n",
"verbose\n",
"preprocess\n",
"regressor\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__verbose\n",
"preprocess__cat__onehot\n",
"preprocess__cat__onehot__categories\n",
"preprocess__cat__onehot__drop\n",
"preprocess__cat__onehot__dtype\n",
"preprocess__cat__onehot__handle_unknown\n",
"preprocess__cat__onehot__sparse\n",
"preprocess__num__memory\n",
"preprocess__num__steps\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__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": 193
},
"outputId": "8f27e800-8030-4525-8553-5e8aae37c8c8"
},
"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": 56,
"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-dccfe0c3-2ebb-4508-a6b6-a1741249642d {color: black;background-color: white;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d pre{padding: 0;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-toggleable {background-color: white;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-estimator:hover {background-color: #d4ebff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-item {z-index: 1;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel-item {display: flex;flex-direction: column;position: relative;background-color: white;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-parallel-item:only-child::after {width: 0;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;position: relative;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-label label {font-family: monospace;font-weight: bold;background-color: white;display: inline-block;line-height: 1.2em;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-label-container {position: relative;z-index: 2;text-align: center;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-dccfe0c3-2ebb-4508-a6b6-a1741249642d\" 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>Please rerun this cell to show the HTML repr or trust the notebook.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"6c075c67-d6dc-40c4-8bf7-de8a9d2c220f\" type=\"checkbox\" ><label for=\"6c075c67-d6dc-40c4-8bf7-de8a9d2c220f\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><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-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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"816267fb-1988-467c-afb4-f45ae0b73c1b\" type=\"checkbox\" ><label for=\"816267fb-1988-467c-afb4-f45ae0b73c1b\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">preprocess: ColumnTransformer</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"54d01f43-9062-456c-a7a9-02b45b6fad6d\" type=\"checkbox\" ><label for=\"54d01f43-9062-456c-a7a9-02b45b6fad6d\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">cat</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"d21a9f13-e085-4de0-ba2c-b6eb1b2f6012\" type=\"checkbox\" ><label for=\"d21a9f13-e085-4de0-ba2c-b6eb1b2f6012\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"92f07b94-ae84-4f3d-8b98-b02fd3e76dcc\" type=\"checkbox\" ><label for=\"92f07b94-ae84-4f3d-8b98-b02fd3e76dcc\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">num</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"f3be7a87-9255-43b8-99e8-ba325b6b5f98\" type=\"checkbox\" ><label for=\"f3be7a87-9255-43b8-99e8-ba325b6b5f98\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"59b1b5d8-d034-4453-b2c0-d01db98b9f88\" type=\"checkbox\" ><label for=\"59b1b5d8-d034-4453-b2c0-d01db98b9f88\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestRegressor</label><div class=\"sk-toggleable__content\"><pre>RandomForestRegressor(n_jobs=-1, random_state=42)</pre></div></div></div></div></div></div></div></div></div></div></div></div>"
]
},
"metadata": {},
"execution_count": 56
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "T_pgWdWVNRDG",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "3c8eff42-1db3-49e5-f438-3a0d51e4369f"
},
"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": 57,
"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": "085498bf-40b1-49a9-8249-27c759c90e7b"
},
"source": [
"print(f\"The best set of hyperparameters is: \"\n",
" f\"{model_grid_search.best_params_}\")"
],
"execution_count": 58,
"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": 59,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "uvSX8FmHNRDZ",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 192
},
"outputId": "13ded2fb-db7f-45cc-fbdc-d305a2a587a6"
},
"source": [
"rf_best.fit(X_train, y_train)"
],
"execution_count": 60,
"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-28126540-c632-420e-a8f5-7a3690bd7822 {color: black;background-color: white;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 pre{padding: 0;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-toggleable {background-color: white;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-estimator:hover {background-color: #d4ebff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-item {z-index: 1;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 2em;bottom: 0;left: 50%;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel-item {display: flex;flex-direction: column;position: relative;background-color: white;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-parallel-item:only-child::after {width: 0;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;position: relative;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-label label {font-family: monospace;font-weight: bold;background-color: white;display: inline-block;line-height: 1.2em;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-label-container {position: relative;z-index: 2;text-align: center;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-28126540-c632-420e-a8f5-7a3690bd7822 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-28126540-c632-420e-a8f5-7a3690bd7822\" 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>Please rerun this cell to show the HTML repr or trust the notebook.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"47a0de4f-104f-43c2-b2e3-2fc40484c8cf\" type=\"checkbox\" ><label for=\"47a0de4f-104f-43c2-b2e3-2fc40484c8cf\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">Pipeline</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"68debd82-1f1a-4c5e-b30d-b0697be4f2ed\" type=\"checkbox\" ><label for=\"68debd82-1f1a-4c5e-b30d-b0697be4f2ed\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">preprocess: ColumnTransformer</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"73cfdbb8-8855-4068-9878-1e164f3cfc4e\" type=\"checkbox\" ><label for=\"73cfdbb8-8855-4068-9878-1e164f3cfc4e\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">cat</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"4ce30119-fcc1-409f-b3dc-2478709da57e\" type=\"checkbox\" ><label for=\"4ce30119-fcc1-409f-b3dc-2478709da57e\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">OneHotEncoder</label><div class=\"sk-toggleable__content\"><pre>OneHotEncoder()</pre></div></div></div></div></div></div></div></div><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"e74a3cc8-c602-4c9e-8126-ede33edfd876\" type=\"checkbox\" ><label for=\"e74a3cc8-c602-4c9e-8126-ede33edfd876\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">num</label><div class=\"sk-toggleable__content\"><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 sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"6a932f69-dc77-49cb-8cdc-8322919f761b\" type=\"checkbox\" ><label for=\"6a932f69-dc77-49cb-8cdc-8322919f761b\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">StandardScaler</label><div class=\"sk-toggleable__content\"><pre>StandardScaler()</pre></div></div></div></div></div></div></div></div></div></div><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"a8fca666-57a5-464a-ab01-ae535f2719b5\" type=\"checkbox\" ><label for=\"a8fca666-57a5-464a-ab01-ae535f2719b5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">RandomForestRegressor</label><div class=\"sk-toggleable__content\"><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": 60
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5Xryqy6lNRDh",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "75870e34-e3dd-4dd1-f57e-ceea9c4fd52d"
},
"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": 61,
"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": 441
},
"outputId": "679e4a78-d7d5-4d2b-8636-23e306b180e0"
},
"source": [
"boxplot_pi(rf_best, X_test, y_test)"
],
"execution_count": 62,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "NOux8KgNaFvu"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment