Last active
March 9, 2023 15:51
-
-
Save sachith-gunasekara/4346b6c7f11e5b65cd80f0845b4dc399 to your computer and use it in GitHub Desktop.
02 com.towardsdatascience ML with Python - Classification.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/sachith-gunasekara/4346b6c7f11e5b65cd80f0845b4dc399/02-com-towardsdatascience-ml-with-python-classification.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "utClWfDgjmpw", | |
"outputId": "e4e968cd-8e77-4066-b44c-de5f3e6e45d2" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", | |
"Collecting lime\n", | |
" Downloading lime-0.2.0.1.tar.gz (275 kB)\n", | |
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m275.7/275.7 KB\u001b[0m \u001b[31m6.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", | |
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", | |
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.8/dist-packages (from lime) (3.5.3)\n", | |
"Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from lime) (1.22.4)\n", | |
"Requirement already satisfied: scipy in /usr/local/lib/python3.8/dist-packages (from lime) (1.7.3)\n", | |
"Requirement already satisfied: tqdm in /usr/local/lib/python3.8/dist-packages (from lime) (4.64.1)\n", | |
"Requirement already satisfied: scikit-learn>=0.18 in /usr/local/lib/python3.8/dist-packages (from lime) (1.0.2)\n", | |
"Requirement already satisfied: scikit-image>=0.12 in /usr/local/lib/python3.8/dist-packages (from lime) (0.18.3)\n", | |
"Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.8/dist-packages (from scikit-image>=0.12->lime) (3.0)\n", | |
"Requirement already satisfied: imageio>=2.3.0 in /usr/local/lib/python3.8/dist-packages (from scikit-image>=0.12->lime) (2.9.0)\n", | |
"Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.8/dist-packages (from scikit-image>=0.12->lime) (1.4.1)\n", | |
"Requirement already satisfied: pillow!=7.1.0,!=7.1.1,>=4.3.0 in /usr/local/lib/python3.8/dist-packages (from scikit-image>=0.12->lime) (8.4.0)\n", | |
"Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.8/dist-packages (from scikit-image>=0.12->lime) (2023.2.3)\n", | |
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (23.0)\n", | |
"Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (3.0.9)\n", | |
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (4.38.0)\n", | |
"Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (2.8.2)\n", | |
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (0.11.0)\n", | |
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.8/dist-packages (from matplotlib->lime) (1.4.4)\n", | |
"Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.18->lime) (3.1.0)\n", | |
"Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.8/dist-packages (from scikit-learn>=0.18->lime) (1.2.0)\n", | |
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.8/dist-packages (from python-dateutil>=2.7->matplotlib->lime) (1.15.0)\n", | |
"Building wheels for collected packages: lime\n", | |
" Building wheel for lime (setup.py) ... \u001b[?25l\u001b[?25hdone\n", | |
" Created wheel for lime: filename=lime-0.2.0.1-py3-none-any.whl size=283857 sha256=b229388a9e1c12e023bde86d33bd0b4000b064385cd41863ab60c1b050cf88f0\n", | |
" Stored in directory: /root/.cache/pip/wheels/e6/a6/20/cc1e293fcdb67ede666fed293cb895395e7ecceb4467779546\n", | |
"Successfully built lime\n", | |
"Installing collected packages: lime\n", | |
"Successfully installed lime-0.2.0.1\n" | |
] | |
} | |
], | |
"source": [ | |
"!pip install lime" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "Zqiy-mjEQwzn" | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"import seaborn as sns\n", | |
"\n", | |
"import scipy\n", | |
"import statsmodels.formula.api as smf\n", | |
"import statsmodels.api as sm\n", | |
"\n", | |
"from sklearn import model_selection, preprocessing, feature_selection, ensemble, linear_model, metrics, decomposition\n", | |
"\n", | |
"from lime import lime_tabular" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "OkZXisoFjZJb", | |
"outputId": "60ddda60-05e0-42ba-e754-c1a864f13c59" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"--2023-03-02 06:07:04-- https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv\n", | |
"Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.111.133, ...\n", | |
"Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.\n", | |
"HTTP request sent, awaiting response... 200 OK\n", | |
"Length: 60302 (59K) [text/plain]\n", | |
"Saving to: ‘titanic.csv’\n", | |
"\n", | |
"titanic.csv 100%[===================>] 58.89K --.-KB/s in 0.01s \n", | |
"\n", | |
"2023-03-02 06:07:05 (4.49 MB/s) - ‘titanic.csv’ saved [60302/60302]\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"!wget https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 206 | |
}, | |
"id": "l6AWZ8ozkKGL", | |
"outputId": "ce3e287f-096b-4cbb-8b50-be8e752667fb" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" PassengerId Survived Pclass \\\n", | |
"0 1 0 3 \n", | |
"1 2 1 1 \n", | |
"2 3 1 3 \n", | |
"3 4 1 1 \n", | |
"4 5 0 3 \n", | |
"\n", | |
" Name Sex Age SibSp \\\n", | |
"0 Braund, Mr. Owen Harris male 22.0 1 \n", | |
"1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", | |
"2 Heikkinen, Miss. Laina female 26.0 0 \n", | |
"3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", | |
"4 Allen, Mr. William Henry male 35.0 0 \n", | |
"\n", | |
" Parch Ticket Fare Cabin Embarked \n", | |
"0 0 A/5 21171 7.2500 NaN S \n", | |
"1 0 PC 17599 71.2833 C85 C \n", | |
"2 0 STON/O2. 3101282 7.9250 NaN S \n", | |
"3 0 113803 53.1000 C123 S \n", | |
"4 0 373450 8.0500 NaN S " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-bc7ac25d-f9ee-41c5-a46d-0db2afdf1292\">\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>PassengerId</th>\n", | |
" <th>Survived</th>\n", | |
" <th>Pclass</th>\n", | |
" <th>Name</th>\n", | |
" <th>Sex</th>\n", | |
" <th>Age</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Ticket</th>\n", | |
" <th>Fare</th>\n", | |
" <th>Cabin</th>\n", | |
" <th>Embarked</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Braund, Mr. Owen Harris</td>\n", | |
" <td>male</td>\n", | |
" <td>22.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>A/5 21171</td>\n", | |
" <td>7.2500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n", | |
" <td>female</td>\n", | |
" <td>38.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>PC 17599</td>\n", | |
" <td>71.2833</td>\n", | |
" <td>C85</td>\n", | |
" <td>C</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>3</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>Heikkinen, Miss. Laina</td>\n", | |
" <td>female</td>\n", | |
" <td>26.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>STON/O2. 3101282</td>\n", | |
" <td>7.9250</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>4</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n", | |
" <td>female</td>\n", | |
" <td>35.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>113803</td>\n", | |
" <td>53.1000</td>\n", | |
" <td>C123</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Allen, Mr. William Henry</td>\n", | |
" <td>male</td>\n", | |
" <td>35.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>373450</td>\n", | |
" <td>8.0500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-bc7ac25d-f9ee-41c5-a46d-0db2afdf1292')\"\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-bc7ac25d-f9ee-41c5-a46d-0db2afdf1292 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-bc7ac25d-f9ee-41c5-a46d-0db2afdf1292');\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": 4 | |
} | |
], | |
"source": [ | |
"df = pd.read_csv(\"titanic.csv\")\n", | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "o25Rp8wvkSu3" | |
}, | |
"outputs": [], | |
"source": [ | |
"def utils_recognize_type(df, col, max_cat=20):\n", | |
" '''\n", | |
" Recognize whether a column is numerical or categorical.\n", | |
" :parameter\n", | |
" :param dtf : dataframe - input data\n", | |
" :param col : str - name of the column to analyze\n", | |
" :param max_cat : num - max number of unique values to recognize a column as categorical\n", | |
" :return\n", | |
" \"cat\" if the column is categorical or \"num\" otherwise\n", | |
" '''\n", | |
"\n", | |
" if (df[col].dtype == \"O\") | (df[col].nunique() < max_cat):\n", | |
" return \"cat\"\n", | |
" else:\n", | |
" return \"num\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 332 | |
}, | |
"id": "N8uAspjJlRYw", | |
"outputId": "4ff60a20-a60a-47ee-fdbd-b7ca99aaac55" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"dic_cols = {col: utils_recognize_type(df, col) for col in df.columns}\n", | |
"\n", | |
"heatmap = df.isnull()\n", | |
"\n", | |
"for key, value in dic_cols.items():\n", | |
" if value == \"num\":\n", | |
" heatmap[key] = heatmap[key].apply(lambda x: 0.5 if x is False else 1)\n", | |
" else:\n", | |
" heatmap[key] = heatmap[key].apply(lambda x: 0 if x is False else 1)\n", | |
"\n", | |
"sns.heatmap(heatmap, cbar=False).set_title('Dataset Overview')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "Ce4zE7VzqfZW" | |
}, | |
"outputs": [], | |
"source": [ | |
"df = df.set_index(\"PassengerId\")\n", | |
"df = df.rename(columns={\"Survived\": \"Y\"})" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 294 | |
}, | |
"id": "jdUgOJi73qiz", | |
"outputId": "56a0cbf7-4484-4d65-adb9-12ab5b524cac" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"y = \"Y\"\n", | |
"\n", | |
"ax = df[y].value_counts().sort_values().plot(kind=\"barh\")\n", | |
"\n", | |
"totals= []\n", | |
"\n", | |
"for i in ax.patches:\n", | |
" totals.append(i.get_width())\n", | |
"\n", | |
"total = sum(totals)\n", | |
"\n", | |
"for i in ax.patches:\n", | |
" ax.text(i.get_width() + .3, \n", | |
" i.get_y() + .20,\n", | |
" str(round((i.get_width() / total) * 100, 2)) + '%',\n", | |
" fontsize=10, \n", | |
" color='black')\n", | |
"\n", | |
"ax.grid(axis=\"x\")\n", | |
"\n", | |
"plt.suptitle(y, fontsize=20)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 363 | |
}, | |
"id": "Mz_mBqbf6ZkZ", | |
"outputId": "da71d213-6259-415f-ca11-fe55e7431e75" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", | |
" warnings.warn(msg, FutureWarning)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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oFcv/6+voqKCnTt3cs011wT8HpjIOPs373GyrPGJld763/9uQOlSE2PZ8OvJoVar3bMAYQLWrVs3evRwJtZlZGQwYMAARITMzEwKCwsBZ2mM7du38+mnnwJQVVXFyZMnSUlJYdGiRRw5cgQR4cSJE57r9u7dm9TUVAB69uxJYWEh/fr1a3RfaYA9e/awbt06Zs+e7anT+PHjeeGFF4iNjaVnz56N3ol8+eWX9O3b15qX2oCTZZUBbyMazFbBgQaSjsoChAlYTEyM57GIeJ6LCDU1NZ5zN910E927192pbtmyZXTu3Jnvf//7qCq/+93v/F7X+1r+HDlyhIULF3LrrbfW+QPvPYFu6dKlja7RtHnzZkaOHNlkWcZ0VDbM1bSogQMH8vnnn6OqgLOeEjirwKakpOByudi4caPnfCgKCwt59dVXmT59eoNAVFJS4kmTm5vrt3/h9OnT7N27t9HmK2M6OruDMC3qsssuY/HixcydOxdVpWvXrtx6662MHTuWV199lQ0bNjBo0CBiY2ObvJa/Pojly5dTVlbGu+86zQMul8vTn/Haa69RWlpKTEwM1157rWeXuVWrVgHO0uQAubm5DBw40NOhbYxpyAJElJl72+iQ872x5kDYyunWrRv33nuv5/n06dN9nouNja2zWF+t9PT0OmswTZo0CXB2jfPeOe7aa79uZ/bXBzF16lS/6zfV9kfUVxsYap177rmce+65PtMaYxwWIKJMWufQvtGmdY6jc3zgP85QyzHGdBzWBxFlXl+9n9dX7w8p35qvCsJejjGm47AAEWXmrznA/CCairzzrd0XeIAItRxjTMdhTUymWY4fP87rr7/ueV5QUMDEiRO58MILWbZsGWvXrvUMQ63dYGjfvn288847xMTEcOONN5Kenk5ZWRmvv/46t912Gy5X499bVq1axapVqxAR4uLiuP7668nMzKS6upqFCxdy+PBhampqOPvss7nkkksa5C8oKGD+/PmUlpbSq1cvpk+f7tnO1BjzNfutMM3SvXt37r77bsBZ+O7Pf/5znU16xo0b51n3qNann37KrbfeSmFhIatXr2bKlCmsWLGCSy65pMngADBq1ChPp/O2bdtYsmQJs2bNYsuWLVRVVXHPPfdQUVHBo48+ysiRI+nWrVud/O+//z7jxo1j1KhRvP3226xbt65BJ7YxxpqYTAvavXs3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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"x = \"Age\"\n", | |
"\n", | |
"fig, ax = plt.subplots(nrows=1, ncols=2, sharex=False, sharey=False)\n", | |
"fig.suptitle(x, fontsize=20)\n", | |
"\n", | |
"### distribution\n", | |
"ax[0].title.set_text('distribution')\n", | |
"\n", | |
"variable = df[x].fillna(df[x].mean())\n", | |
"breaks = np.quantile(variable, q=np.linspace(0, 1, 11))\n", | |
"variable = variable[(variable > breaks[0]) & \n", | |
" (variable < breaks[10]) ]\n", | |
"sns.distplot(variable, hist=True, kde=True, kde_kws={\"shade\": True}, ax=ax[0])\n", | |
"des = df[x].describe()\n", | |
"ax[0].axvline(des[\"25%\"], ls='--')\n", | |
"ax[0].axvline(des[\"mean\"], ls='--')\n", | |
"ax[0].axvline(des[\"75%\"], ls='--')\n", | |
"ax[0].grid(True)\n", | |
"des = round(des, 2).apply(lambda x: str(x))\n", | |
"box = '\\n'.join((\"min: \"+des[\"min\"], \"25%: \"+des[\"25%\"], \"mean: \"+des[\"mean\"], \"75%: \"+des[\"75%\"], \"max: \"+des[\"max\"]))\n", | |
"ax[0].text(0.95, 0.95, box, transform=ax[0].transAxes, fontsize=10, va='top', ha=\"right\", bbox=dict(boxstyle='round', facecolor='grey', alpha=1))\n", | |
"\n", | |
"### boxplot \n", | |
"ax[1].title.set_text('outliers (log scale)')\n", | |
"tmp_df = pd.DataFrame(df[x])\n", | |
"tmp_df[x] = np.log(tmp_df[x])\n", | |
"tmp_df.boxplot(column=x, ax=ax[1])\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 833 | |
}, | |
"id": "EJxaKlltfepl", | |
"outputId": "50efcd46-f3ad-40d7-fb79-5f9e41444c48" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `kdeplot` (an axes-level function for kernel density plots).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/lib/python3.8/dist-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `kdeplot` (an axes-level function for kernel density plots).\n", | |
" warnings.warn(msg, FutureWarning)\n", | |
"/usr/local/lib/python3.8/dist-packages/seaborn/categorical.py:3775: UserWarning: catplot is a figure-level function and does not accept target axes. You may wish to try boxplot\n", | |
" warnings.warn(msg, UserWarning)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 3 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 360x360 with 1 Axes>" | |
], | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAFgCAYAAACFYaNMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAURUlEQVR4nO3df6yd9X3Y8feHe0tjnDCCc2PRi5nZDoVliUKyK5o01ZbGEDkhDShJEWgqN5Ml74/VcdpVhUZIaKsVJdW0zLKmSl7JcpnaAKHJQA1z5liJuk4Vy8WwAIGUE3ohvjL2xUAChkFsPvvjPm5d1z+OzX3O55xz3y/Juud5zo/ng4C3vn7OOfeJzESS1H9nVQ8gScuVAZakIgZYkooYYEkqYoAlqch49QC9WL9+fe7YsaN6DEk6U3G8nUOxAn722WerR5CkJTcUAZakUWSAJamIAZakIgZYkooYYEkqYoAlqYgBlqQiBliSihhgST07cOAAn/nMZzhw4ED1KCOh1QBHxG9FxKMR8UhEfDUi3hQRF0fE/RHRjYg7I+LsNmeQtHRmZmZ4+OGHuf3226tHGQmtBTgiJoHPAFOZ+U5gDLge+CLwpczsAM8DG9qaQdLSOXDgADt27CAz2bFjh6vgJdD2KYhxYEVEjAPnAHuBDwF3N/fPANe2PIOkJTAzM8Prr78OwOHDh10FL4HWApyZ88B/AJ5mMbw/AR4AXsjMQ83D9gCTx3t+RGyMiNmImF1YWGhrTEk9+va3v82hQ4v/6x46dIidO3cWTzT82jwF8VbgGuBi4BeAlcD6Xp+fmdszcyozpyYmJlqaUlKvrrzySsbHF3+D7fj4OFdddVXxRMOvzVMQVwJ/nZkLmfkz4OvAB4DzmlMSABcC8y3OIGmJTE9Pc9ZZi8kYGxvjxhtvLJ5o+LUZ4KeB90XEORERwDrgB8B3gE81j5kG7mlxBklLZNWqVaxfv56IYP369axatap6pKHX5jng+1l8s2038HBzrO3ATcBvR0QXWAXc1tYMkpbW9PQ073rXu1z9LpHIzOoZTmlqaipnZ2erx5CkMzW8lySSpFFkgCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqYgBlqQiBnjEeNFEaXgY4BHjRROl4WGAR4gXTZSGiwEeIV40URouBniEeNFEabgY4BHiRROl4WKAR4gXTZSGiwEeIV40URou46d+iIbJ9PQ0c3Nzrn6lIeBFOSWpfV6UU5IGiQEeMd1ul6uvvpput1s9iqRTMMAjZsuWLRw8eJAtW7ZUjyLpFAzwCOl2u8zNzQEwNzfnKlgacAZ4hBy76nUVLA221gIcEZdGxENH/flpRHw2Is6PiJ0R8UTz861tzbDcHFn9nmhb0mBpLcCZ+cPMvDwzLwf+GfAy8A3gZmBXZl4C7Gq2tQRWrFhx0m1Jg6VfpyDWAT/KzKeAa4CZZv8McG2fZhh5r7zyykm3JQ2WfgX4euCrze3Vmbm3uf0MsPp4T4iIjRExGxGzCwsL/ZhRkvqq9QBHxNnAx4GvHXtfLn4N77hfxcvM7Zk5lZlTExMTLU85GtasWXPSbUmDpR8r4I8AuzNzX7O9LyIuAGh+7u/DDMvCrbfeetJtSYOlHwG+gb89/QBwLzDd3J4G7unDDMtCp9P5m1XvmjVr6HQ6xRNJOplWAxwRK4GrgK8ftfsLwFUR8QRwZbOtJXLrrbeycuVKV7/SEPC3oUlS+/xtaJI0SAywJBUxwJJUxABLUhEDLElFDLAkFTHAklTEAEtSkfHqAUbVtm3bSi4JND8/D8Dk5GTfj93pdNi0aVPfjysNKwM8YvwdwNLw8KvII2bz5s0AbN26tXgSSUfxq8iSNEgMsCQVMcCSVMQAS1IRAyypZ91ul6uvvrrkI5ajyABL6tmWLVs4ePAgW7ZsqR5lJBhgST3pdrvMzc0BMDc35yp4CRhgST05dtXrKviNM8CSenJk9XuibZ0+AyypJ2vXrj3ptk6fAZbUkxtvvPHvbE9PTxdNMjoMsKSe3H777X9ne2ZmpmiS0WGAJfXEc8BLzwBL6onngJeeAZbUk1tuueWk2zp9rQY4Is6LiLsj4vGIeCwi3h8R50fEzoh4ovn51jZnkLQ0Op3O36x6165dS6fTqR1oBLS9At4K7MjMy4B3A48BNwO7MvMSYFezLWkI3HLLLaxcudLV7xJp7ZJEEfEPgH8OfBogM18DXouIa4APNg+bAb4L3NTWHJKWTqfT4Zvf/Gb1GCOjzWvCXQwsAP81It4NPABsBlZn5t7mMc8Aq1ucQRpJy/GirzB6F35t8xTEOPBe4A8z8z3AQY453ZCLF6Q77kXpImJjRMxGxOzCwkKLY0rq1SuvvOKFX5dQmyvgPcCezLy/2b6bxQDvi4gLMnNvRFwA7D/ekzNzO7AdFi/K2eKc0tCpWgV60del1doKODOfAX4cEZc2u9YBPwDuBY58h3EauKetGSRpkLW5AgbYBPxxRJwNPAn8Kxajf1dEbACeAq5reQZJGkitBjgzHwKmjnPXujaPK0nDwG/CSVIRAyxJRQywJBUxwJJUxABLUhEDLElFDLAkFTHAklTEAEtSEQMsSUUMsCQVMcCSVMQAS1IRAyxJRQywJBUxwJJUxABLUhEDLElFDLAkFTHAklTEAEtSEQMsSUUMsCQVMcCSVMQAS1IRAyxJRQywJBUZb/PFI2IOeBE4DBzKzKmIOB+4E1gLzAHXZebzbc4hSYOoHyvgX83MyzNzqtm+GdiVmZcAu5ptSVp2Kk5BXAPMNLdngGsLZpCkcm0HOIH/GREPRMTGZt/qzNzb3H4GWH28J0bExoiYjYjZhYWFlseUpP5r9Rww8CuZOR8Rbwd2RsTjR9+ZmRkRebwnZuZ2YDvA1NTUcR8jScOs1RVwZs43P/cD3wCuAPZFxAUAzc/9bc4gSYOqtQBHxMqIeMuR28CHgUeAe4Hp5mHTwD1tzSBJg6zNUxCrgW9ExJHj/Elm7oiI7wF3RcQG4CnguhZnkKSB1VqAM/NJ4N3H2X8AWNfWcSVpWPhNOEkqYoAlqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJanIKQMcEasj4raI+B/N9jsiYkP7o0nSaOtlBfwV4FvALzTbfwV8tqV5JGnZ6CXAb8vMu4DXATLzEHC41akkaRnoJcAHI2IVkAAR8T7gJ61OJUnLwHgPj/lt4F7gH0fE/wYmgE/1eoCIGANmgfnM/FhEXAzcAawCHgB+IzNfO+3JJWnInXIFnJm7gX8B/DLwr4F/mpnfP41jbAYeO2r7i8CXMrMDPA/4hp6kZamXT0F8Avg4cCnwi8CvRcS6iHh7D8+9ELga+KNmO4APAXc3D5kBrj2jySVpyPVyCmID8H7gO832B1k8dXBxRPz7zPxvJ3nufwJ+F3hLs70KeKF5Iw9gDzB5vCdGxEZgI8BFF13Uw5iSNFx6eRNuHPgnmfnJzPwk8A4W35D7JeCmEz0pIj4G7M/MB85ksMzcnplTmTk1MTFxJi8hSQOtlxXwmszcd9T2/mbfcxHxs5M87wPAxyPio8CbgHOBrcB5ETHerIIvBObPcPZT2rZtG91ut62XH0hH/nk3b95cPEl/dTodNm3aVD2GdFp6CfB3I+LPgK81259s9q0EXjjRkzLz94DfA4iIDwK/k5n/MiK+xuKnKO4ApoF7znT4U+l2uzz0yGMcPuf8tg4xcM56LQF44Ml9p3jk6Bh7+bnqEaQz0kuA/w3wCeBXmu1ZYHVmHgR+9QyOeRNwR0RsAR4EbjuD1+jZ4XPO55XLPtrmIVRsxeP3VY8gnZFTBjgzMyKeBN4H/Drw18Cfns5BMvO7wHeb208CV5zuoJI0ak4Y4Ij4ReCG5s+zwJ1AZOaZrHolScc42Qr4ceB/AR/LzC5ARPxWX6aSpGXgZB9D+wSwF/hORPyXiFgHRH/GkqTRd8IAZ+Z/z8zrgctY/BLGZ4G3R8QfRsSH+zSfJI2sXn4XxMHM/JPM/DUWP7f7ICf5AoYkqTendUmizHy++YbaurYGkqTlwmvCSVKRXr6IIek4/Kr78tHWV90NsHSGut0uTzz6IBe9eflcoevsny3+pfnVp2aLJ+mfp18aa+21DbD0Blz05sN87r0/rR5DLfr87nNbe23PAUtSEQMsSUUMsCQVMcCSVMQAS1IRAyxJRQywJBUxwJJUxABLUhEDLElFDLAkFTHAklTEAEtSEQMsSUUMsCQVMcCSVKS1AEfEmyLi/0TE/42IRyPi3zX7L46I+yOiGxF3RsTZbc0gSYOszRXwq8CHMvPdwOXA+oh4H/BF4EuZ2QGeBza0OIMkDazWApyLXmo2f675k8CHgLub/TPAtW3NIEmDrNVzwBExFhEPAfuBncCPgBcy81DzkD3A5AmeuzEiZiNidmFhoc0xJalEqwHOzMOZeTlwIXAFcNlpPHd7Zk5l5tTExERbI0pSmb58CiIzXwC+A7wfOC8ijlyN+UJgvh8zSNKgafNTEBMRcV5zewVwFfAYiyH+VPOwaeCetmaQpEE2fuqHnLELgJmIGGMx9Hdl5p9FxA+AOyJiC/AgcFuLM0jSwGotwJn5feA9x9n/JIvngyVpWWtzBVxufn6esZd/worH76seRS0ae/kA8/OHTv3AJTY/P8/BF8f4/O5z+35s9c9TL46xcr6dt6r8KrIkFRnpFfDk5CTPvDrOK5d9tHoUtWjF4/cxObm678ednJzk1UN7+dx7f9r3Y6t/Pr/7XH5+8rhfV3jDXAFLUhEDLElFDLAkFTHAklTEAEtSEQMsSUUMsCQVMcCSVMQAS1IRAyxJRQywJBUxwJJUxABLUhEDLElFDLAkFTHAklTEAEtSEQMsSUUMsCQVMcCSVMQAS1IRAyxJRUb6svQAYy8/x4rH76seo2/O+n+Ll0h//U3nFk/SP2MvPwf0/7L00hvVWoAjYg1wO4v/ZySwPTO3RsT5wJ3AWmAOuC4zn29jhk6n08bLDrRu90UAOv9oOQVp9bL8d63h1+YK+BDwbzNzd0S8BXggInYCnwZ2ZeYXIuJm4GbgpjYG2LRpUxsvO9A2b94MwNatW4snkXQqrZ0Dzsy9mbm7uf0i8BgwCVwDzDQPmwGubWsGSRpkfXkTLiLWAu8B7gdWZ+be5q5nOMHJu4jYGBGzETG7sLDQjzElqa9aD3BEvBn4U+CzmfnTo+/LzGTx/PDfk5nbM3MqM6cmJibaHlOS+q7VAEfEz7EY3z/OzK83u/dFxAXN/RcA+9ucQZIGVZufggjgNuCxzPyPR911LzANfKH5eU9bM0hte/qlMT6/e/l85G/fy4trttXnvF48Sf88/dIYl7T02m1+CuIDwG8AD0fEQ82+z7EY3rsiYgPwFHBdizNIrVmOH317rdsF4Of/4fL5Z7+E9v5dtxbgzPwLIE5w97q2jiv1ix9z1BvlV5ElqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqYgBlqQirQU4Ir4cEfsj4pGj9p0fETsj4onm51vbOr4kDbo2V8BfAdYfs+9mYFdmXgLsarYlaVlqLcCZ+efAc8fsvgaYaW7PANe2dXxJGnT9Pge8OjP3NrefAVaf6IERsTEiZiNidmFhoT/TSVIflb0Jl5kJ5Enu356ZU5k5NTEx0cfJJKk/+h3gfRFxAUDzc3+fjy9JA6PfAb4XmG5uTwP39Pn4kjQw2vwY2leBvwQujYg9EbEB+AJwVUQ8AVzZbEvSsjTe1gtn5g0nuGtdW8eUpGHiN+EkqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqYgBlqQiBliSihhgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIgZYkooYYEkqYoAlqch49QCjatu2bXS73b4f98gxN2/e3PdjdzodNm3a1PfjSsOqZAUcEesj4ocR0Y2ImytmGFUrVqxgxYoV1WNI6kFkZn8PGDEG/BVwFbAH+B5wQ2b+4ETPmZqaytnZ2T5NKA2+6r9hdTqdvh/7yHGH9G9ZcbydFSvgK4BuZj6Zma8BdwDXFMwh6TT5N6ylVXEOeBL48VHbe4BfOvZBEbER2Ahw0UUX9WcyaUgM6SpQxxjYT0Fk5vbMnMrMqYmJiepxJGnJVQR4Hlhz1PaFzT5JWlYqAvw94JKIuDgizgauB+4tmEOSSvX9HHBmHoqI3wS+BYwBX87MR/s9hyRVK/kiRmbeB9xXcWxJGhQD+yacJI06AyxJRQywJBUxwJJUxABLUhEDLElFDLAkFen7r6M8ExGxADxVPccQeRvwbPUQGln+93X6ns3M9cfuHIoA6/RExGxmTlXPodHkf19Lx1MQklTEAEtSEQM8mrZXD6CR5n9fS8RzwJJUxBWwJBUxwJJUxACPmIhYHxE/jIhuRNxcPY9GR0R8OSL2R8Qj1bOMCgM8QiJiDPjPwEeAdwA3RMQ7aqfSCPkK8Pe+TKAzZ4BHyxVANzOfzMzXgDuAa4pn0ojIzD8HnqueY5QY4NEyCfz4qO09zT5JA8gAS1IRAzxa5oE1R21f2OyTNIAM8Gj5HnBJRFwcEWcD1wP3Fs8k6QQM8AjJzEPAbwLfAh4D7srMR2un0qiIiK8CfwlcGhF7ImJD9UzDzq8iS1IRV8CSVMQAS1IRAyxJRQywJBUxwJJUxABrWYpFfxERHzlq369HxI7KubS8+DE0LVsR8U7ga8B7gHHgQWB9Zv6odDAtGwZYy1pE/AFwEFgJvJiZv188kpYRA6xlLSJWAruB14CpzHy1eCQtI+PVA0iVMvNgRNwJvGR81W++CSfB680fqa8MsCQVMcCSVMQ34SSpiCtgSSpigCWpiAGWpCIGWJKKGGBJKmKAJamIAZakIv8f3nk63S1QdcAAAAAASUVORK5CYII=\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"cat, num = \"Y\", \"Age\"\n", | |
"\n", | |
"fig, ax = plt.subplots(nrows=1, ncols=3, sharex=False, sharey=False)\n", | |
"fig.suptitle(x + \" vs \" + y, fontsize=20)\n", | |
"\n", | |
"# distribution\n", | |
"ax[0].title.set_text(\"density\")\n", | |
"\n", | |
"for i in df[cat].unique():\n", | |
" sns.distplot(df[df[cat] == i][num], hist=False, label=i, ax=ax[0])\n", | |
"\n", | |
"ax[0].grid(True)\n", | |
"\n", | |
"# stacked\n", | |
"ax[1].title.set_text('bins')\n", | |
"\n", | |
"breaks = np.nanquantile(df[num], q=np.linspace(0, 1, 11))\n", | |
"\n", | |
"tmp = df.groupby([cat, \n", | |
" pd.cut(df[num], \n", | |
" breaks, \n", | |
" duplicates=\"drop\")]).size().unstack().T\n", | |
"tmp = tmp[df[cat].unique()]\n", | |
"\n", | |
"tmp[\"tot\"] = tmp.sum(axis=1)\n", | |
"\n", | |
"for col in tmp.drop(\"tot\", axis=1).columns:\n", | |
" tmp[col] = tmp[col] / tmp[\"tot\"]\n", | |
"\n", | |
"tmp.drop(\"tot\", axis=1).plot(kind=\"bar\", \n", | |
" stacked=True, \n", | |
" ax=ax[1], \n", | |
" legend=False, \n", | |
" grid=True)\n", | |
"\n", | |
"### boxplot \n", | |
"ax[2].title.set_text('outliers')\n", | |
"sns.catplot(x=cat, y=num, data=df, kind=\"box\", ax=ax[2])\n", | |
"ax[2].grid(True)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "fK8Y8hfYlS7j", | |
"outputId": "888fcff9-118b-44c2-eef7-0d7fdb23214f" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
" df sum_sq mean_sq F PR(>F)\n", | |
"Y 1.0 897.187582 897.187582 4.271195 0.039125\n", | |
"Residual 712.0 149559.448362 210.055405 NaN NaN\n" | |
] | |
} | |
], | |
"source": [ | |
"cat, num = \"Y\", \"Age\"\n", | |
"\n", | |
"model = smf.ols(f\"{num} ~ {cat}\", data=df).fit()\n", | |
"anova_table = sm.stats.anova_lm(model)\n", | |
"\n", | |
"print(anova_table)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 695 | |
}, | |
"id": "uWxRMedImtxC", | |
"outputId": "36e87285-6f6b-4233-81b9-9bd2338a2235" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"/usr/local/lib/python3.8/dist-packages/seaborn/categorical.py:3775: UserWarning: catplot is a figure-level function and does not accept target axes. You may wish to try countplot\n", | |
" warnings.warn(msg, UserWarning)\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 402.375x360 with 1 Axes>" | |
], | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAFgCAYAAABKY1XKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAR6ElEQVR4nO3de9Dlh3zH8fcnm4S6JchWYze6SoZJ3SIrgppRoZaqqIq6NQkZW1OUKpUydQlVatypTqaJZI0h7sJoTBpB3W2KRIRa12yEbIgIRkz49o/zSzzSZ/M9T3Z/zzlPnvdr5pn93c55vjs5s+/8zuV3UlVIknRt9pj1AJKk+WcsJEktYyFJahkLSVLLWEiSWnvOeoBdsWnTpjr99NNnPYYkdTLrAXbVij6zuOSSS2Y9giStCis6FpKk5WEsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaK/oS5dK8OeTZW2Y9wrI6+xVHzXoELRPPLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKk1uixSLImyReSfHBYv22SzybZluTUJHsP228wrG8b9m8YezZJ0nSW48zi6cD5C9ZfDry6qm4PXAocO2w/Frh02P7q4ThJ0hwYNRZJ1gN/CvzHsB7g/sC7hkNOAR4+LB8xrDPsP3w4XpI0Y2OfWbwG+Afg18P6LYEfV9WVw/p2YN2wvA64AGDYf9lwvCRpxkaLRZKHAhdX1dm7+X43J9maZOuOHTt2511LknZizDOL+wAPS/Jt4O1Mnn56LbBvkj2HY9YDFw7LFwIHAAz79wF+eM07raoTqmpjVW1cu3btiONLkq4yWiyq6h+ran1VbQAeDXykqh4HnAU8cjjsaOD9w/JpwzrD/o9UVY01nyRperP4nMVzgGcm2cbkNYkTh+0nArcctj8TOG4Gs0mSFrFnf8iuq6qPAh8dlr8JHLrIMb8AjlyOeSRJS+MnuCVJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpNZosUhywySfS/KlJOcledGw/bZJPptkW5JTk+w9bL/BsL5t2L9hrNkkSUsz5pnFFcD9q+quwN2ATUkOA14OvLqqbg9cChw7HH8scOmw/dXDcZKkOTBaLGrip8PqXsNPAfcH3jVsPwV4+LB8xLDOsP/wJBlrPknS9EZ9zSLJmiRfBC4GzgC+Afy4qq4cDtkOrBuW1wEXAAz7LwNuuch9bk6yNcnWHTt2jDm+JGkwaiyq6ldVdTdgPXAocMfdcJ8nVNXGqtq4du3aXb07SdIUluXdUFX1Y+As4F7Avkn2HHatBy4cli8EDgAY9u8D/HA55pMkXbsx3w21Nsm+w/LvAA8EzmcSjUcOhx0NvH9YPm1YZ9j/kaqqseaTJE1vz/6Q62x/4JQka5hE6R1V9cEkXwHenuQlwBeAE4fjTwTekmQb8CPg0SPOJklagtFiUVXnAAcvsv2bTF6/uOb2XwBHjjWPJOm68xPckqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKk1lSxSHLmNNskSddP1/q1qkluCNwI2C/JzYEMu24GrBt5NknSnOi+g/uvgWcAtwbO5jex+AnwhvHGkiTNk2uNRVW9FnhtkqdV1euXaSZJ0pzpziwAqKrXJ7k3sGHhbapqy0hzSZLmyFSxSPIW4HbAF4FfDZsLMBaStApMFQtgI3BQVdWYw0iS5tO0n7P4MvB7Yw4iSZpOJj6R5MELth2Z5PSxfue0Zxb7AV9J8jngiqs2VtXDRplKkrRTVVVJngy8M8lZTP4tfymwaazfOW0sXjjWAJKkpauqLyf5APAc4MbAlqr6xli/b9p3Q31srAEkSdfZi4D/AX7J5LXl0Uz7bqjLmbz7CWBvYC/gZ1V1s7EGkyRdu6r6WZJTgZ9W1RXtDXbBtGcWN71qOUmAI4DDxhpKkjS1Xw8/o1ryVWdr4n3Ag3b/OJKkeTTt01CPWLC6B5Pnxn4xykSSpLkz7buh/mzB8pXAt5k8FSVJmqGqeuFy/J5pX7N4wtiDSJLm17RffrQ+yXuTXDz8vDvJ+rGHkyTNh2lf4H4zcBqT77W4NfCBYZskaRWY9jWLtVW1MA4nJ3nGCPNoJN89/s6zHmFZ3eb55856BOl6Zdozix8meXySNcPP44EfjjmYJGl+TBuLJwKPAr4PXAQ8EjhmpJkkSXNm2lgcDxxdVWur6neZxONF440lSRpDkk1JvpZkW5Ljpr3dtK9Z3KWqLr1qpap+lOTgJU8pSbraIc/eslu/UO7sVxyVa9ufZA3wRuCBwHbg80lOq6qvdPc97ZnFHkluvuAX3oLpQyNJmg+HAtuq6ptV9Uvg7Uz5Aetp/8F/JfDpJO8c1o8E/nnJY0qSZmkdcMGC9e3APae54bSf4N6SZCtw/2HTI6Y5bZEkXT9M/VTSEAcDIUkr14XAAQvW1w/bWku+RLkkacX6PHBgktsm2Rt4NJOrc7R8kVqSVomqujLJU4EPA2uAk6rqvGluaywkaUa6t7qOoao+BHxoqbfzaShJUstYSJJaxkKS1DIWkqSWsZAktUaLRZIDkpyV5CtJzkvy9GH7LZKckeTrw583H7YnyeuGKyGek+TuY80mSVqaMc8srgT+vqoOAg4DnpLkIOA44MyqOhA4c1gHeDBw4PCzGXjTiLNJ0qqU5KQkFyf58lJuN9rnLKrqIiZflERVXZ7kfCYXsToCuN9w2CnAR4HnDNu3VFUBn0myb5L9h/uRpOud7x5/5916ifLbPP/caT63cTLwBmDLUu57WV6zSLIBOBj4LHCrBQH4PnCrYXmxqyGuW475JGm1qKqPAz9a6u1Gj0WSmwDvBp5RVT9ZuG84i1hSWZNsTrI1ydYdO3bsxkklSTszaiyS7MUkFG+tqvcMm3+QZP9h//7AxcP2qa6GWFUnVNXGqtq4du3a8YaXJF1tzHdDBTgROL+qXrVg12nA0cPy0cD7F2w/anhX1GHAZb5eIUnzYcwLCd4H+Cvg3CRfHLY9F3gZ8I4kxwLfAR417PsQ8BBgG/Bz4AkjziZJWoIx3w31CWBnr8wfvsjxBTxlrHkkSZDkbUzekbpfku3AC6rqxO52XqJckmZkyre67lZV9Zjrcjsv9yFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWnvOegBJK9d3j7/zrEdYNrd5/rmzHmGmPLOQJLVGi0WSk5JcnOTLC7bdIskZSb4+/HnzYXuSvC7JtiTnJLn7WHNJkpZuzDOLk4FN19h2HHBmVR0InDmsAzwYOHD42Qy8acS5JElLNFosqurjwI+usfkI4JRh+RTg4Qu2b6mJzwD7Jtl/rNkkSUuz3K9Z3KqqLhqWvw/calheB1yw4Ljtw7b/J8nmJFuTbN2xY8d4k0qSrjazF7irqoC6Drc7oao2VtXGtWvXjjCZJOmaljsWP7jq6aXhz4uH7RcCByw4bv2wTZI0B5Y7FqcBRw/LRwPvX7D9qOFdUYcBly14ukqSNGOjfSgvyduA+wH7JdkOvAB4GfCOJMcC3wEeNRz+IeAhwDbg58ATxppLkrR0o8Wiqh6zk12HL3JsAU8ZaxZJ0q7xE9ySpJaxkCS1jIUkqWUsJEktYyFJahkLSVJr1X750SHP3jLrEZbVe2866wkkrWSeWUiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJahkLSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSS1jIUlqGQtJUstYSJJaxkKS1DIWkqSWsZAktYyFJKllLCRJLWMhSWoZC0lSy1hIklrGQpLUMhaSpJaxkCS1jIUkqWUsJEktYyFJas1VLJJsSvK1JNuSHDfreSRJE3MTiyRrgDcCDwYOAh6T5KDZTiVJgjmKBXAosK2qvllVvwTeDhwx45kkScCesx5ggXXABQvWtwP3vOZBSTYDm4fVnyb52jLMtuL9PuwHXDLrOZbNCzLrCVaFVfW42rXH1OlVtWl3jTIL8xSLqVTVCcAJs55jpUmytao2znoOXb/4uFo95ulpqAuBAxasrx+2SZJmbJ5i8XngwCS3TbI38GjgtBnPJElijp6GqqorkzwV+DCwBjipqs6b8VjXJz51pzH4uFolUlWznkGSNOfm6WkoSdKcMhaSpJaxWCGS/G2S85O8daT7f2GSZ41x31odktwvyQdnPYfGMTcvcKv1N8ADqmr7rAeRtPp4ZrECJPl34A+A/0zyvCQnJflcki8kOWI45pgk70tyRpJvJ3lqkmcOx3wmyS2G456U5PNJvpTk3UlutMjvu12S05OcneS/k9xxef/GmpUkG5J8NcnJSf43yVuTPCDJJ5N8Pcmhw8+nh8fWp5LcYZH7ufFij1OtXMZiBaiqJwPfA/4YuDHwkao6dFh/RZIbD4feCXgEcA/gn4GfV9XBwKeBo4Zj3lNV96iquwLnA8cu8itPAJ5WVYcAzwL+bZy/mebU7YFXAnccfh4L/BGTx8Jzga8C9x0eW88HXrrIfTyPnT9OtQL5NNTK8yfAwxa8vnBD4DbD8llVdTlweZLLgA8M288F7jIs3ynJS4B9gZsw+VzL1ZLcBLg38M7k6mvh3GCEv4fm17eq6lyAJOcBZ1ZVJTkX2ADsA5yS5ECggL0WuY+dPU7PH3t4jcNYrDwB/qKqfusCiknuCVyxYNOvF6z/mt/8tz4ZeHhVfSnJMcD9rnH/ewA/rqq77daptZJ0j6MXM/kfkz9PsgH46CL3sejjVCuXT0OtPB8Gnpbhf/uTHLzE298UuCjJXsDjrrmzqn4CfCvJkcP9J8ldd3FmXb/sw2+u23bMTo7Z1cep5oyxWHlezOS0/5zhKYIXL/H2/wR8Fvgkk+eeF/M44NgkXwLOw+8V0W/7V+BfknyBnT87sauPU80ZL/chSWp5ZiFJahkLSVLLWEiSWsZCktQyFpKklrHQqjNcX+u8JOck+eLwgUZJ18JPcGtVSXIv4KHA3avqiiT7AXvPeCxp7nlmodVmf+CSqroCoKouqarvJTkkyceGK+1+OMn+SfZJ8rWrrqqa5G1JnjTT6aUZ8UN5WlWGCyV+ArgR8F/AqcCngI8BR1TVjiR/CTyoqp6Y5IHA8cBrgWOqatOMRpdmyqehtKpU1U+THALcl8mls08FXsLk8u5nDJcyWgNcNBx/xnCdrDcCXiNLq5ZnFlrVkjwSeApww6q61yL792By1rEBeMhVl+6WVhtfs9CqkuQOw/cwXOVuTL5jYe3w4jdJ9kryh8P+vxv2PxZ483C1XmnV8cxCq8rwFNTrmXz505XANmAzsB54HZPLb+8JvAb4OPA+4NCqujzJq4DLq+oFyz64NGPGQpLU8mkoSVLLWEiSWsZCktQyFpKklrGQJLWMhSSpZSwkSa3/A8UW03Qcty0aAAAAAElFTkSuQmCC\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"x, y = \"Sex\", \"Y\"\n", | |
"\n", | |
"fig, ax = plt.subplots(nrows=1, \n", | |
" ncols=2, \n", | |
" sharex=False, \n", | |
" sharey=False)\n", | |
"fig.suptitle(x + \" vs \" + y, fontsize=20)\n", | |
"\n", | |
"### count\n", | |
"ax[0].title.set_text('count')\n", | |
"order = df.groupby(x)[y].count().index.tolist()\n", | |
"sns.catplot(x=x, hue=y, data=df, kind='count', order=order, ax=ax[0])\n", | |
"ax[0].grid(True)\n", | |
"\n", | |
"### percentage\n", | |
"ax[1].title.set_text('percentage')\n", | |
"a = df.groupby(x)[y].count().reset_index()\n", | |
"a = a.rename(columns={y:\"tot\"})\n", | |
"b = pd.DataFrame(df.groupby([x,y])[y].count())\n", | |
"b = b.rename(columns = {y:0}).reset_index()\n", | |
"b = b.merge(a, how=\"left\")\n", | |
"b[\"%\"] = b[0] / b[\"tot\"] *100\n", | |
"sns.barplot(x=x, y=\"%\", hue=y, data=b,\n", | |
" ax=ax[1]).get_legend().remove()\n", | |
"ax[1].grid(True)\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "cQrxfVFqxwXC", | |
"outputId": "f50beda1-817f-47be-e0a8-04b3698f4dd0" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Cramer Correlation: 0.54 Significant (p-value:0.0)\n" | |
] | |
} | |
], | |
"source": [ | |
"x, y = \"Sex\", \"Y\"\n", | |
"\n", | |
"cont_table = pd.crosstab(index=df[x], columns=df[y])\n", | |
"chi2_test = scipy.stats.chi2_contingency(cont_table)\n", | |
"chi2, p = chi2_test[0], chi2_test[1]\n", | |
"n = cont_table.sum().sum()\n", | |
"phi2 = chi2 / n\n", | |
"r, k = cont_table.shape\n", | |
"phi2corr = max(0, phi2 - ((k-1) * (r-1)) / (n-1))\n", | |
"rcorr = r-((r-1)**2)/(n-1)\n", | |
"kcorr = k-((k-1)**2)/(n-1)\n", | |
"coeff = np.sqrt(phi2corr/min((kcorr-1), (rcorr-1)))\n", | |
"coeff, p = round(coeff, 3), round(p, 3)\n", | |
"conclusion = \"Significant\" if p < 0.05 else \"Non-Significant\"\n", | |
"print(\"Cramer Correlation:\", coeff, conclusion, \"(p-value:\"+str(p)+\")\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 312 | |
}, | |
"id": "65sxoycE0DZP", | |
"outputId": "378e1015-0465-4c79-e9e8-71add4cc7f4a" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'Cabin_section vs Pclass (filter:Y')" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 14 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"df[\"Cabin_section\"] = df[\"Cabin\"].apply(lambda x: str(x)[0])\n", | |
"\n", | |
"cont_table = pd.crosstab(index=df[\"Cabin_section\"],\n", | |
" columns=df[\"Pclass\"],\n", | |
" values=df[\"Y\"],\n", | |
" aggfunc=\"sum\")\n", | |
"\n", | |
"sns.heatmap(cont_table,\n", | |
" annot=True,\n", | |
" cmap=\"YlGnBu\",\n", | |
" fmt=\".0f\",\n", | |
" linewidths=.5).set_title(\"Cabin_section vs Pclass (filter:Y\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 237 | |
}, | |
"id": "-1_0piLd2RQs", | |
"outputId": "1d24e5d1-01fb-4906-d7c2-a1d923ae0249" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Y Pclass Name \\\n", | |
"PassengerId \n", | |
"1 0 3 Braund, Mr. Owen Harris \n", | |
"2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... \n", | |
"3 1 3 Heikkinen, Miss. Laina \n", | |
"4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) \n", | |
"5 0 3 Allen, Mr. William Henry \n", | |
"\n", | |
" Sex Age SibSp Parch Ticket Fare Cabin \\\n", | |
"PassengerId \n", | |
"1 male 22.0 1 0 A/5 21171 7.2500 NaN \n", | |
"2 female 38.0 1 0 PC 17599 71.2833 C85 \n", | |
"3 female 26.0 0 0 STON/O2. 3101282 7.9250 NaN \n", | |
"4 female 35.0 1 0 113803 53.1000 C123 \n", | |
"5 male 35.0 0 0 373450 8.0500 NaN \n", | |
"\n", | |
" Embarked Cabin_section \n", | |
"PassengerId \n", | |
"1 S n \n", | |
"2 C C \n", | |
"3 S n \n", | |
"4 S C \n", | |
"5 S n " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-d04122e8-82c2-42f7-8285-aaac2f39bfa3\">\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>Y</th>\n", | |
" <th>Pclass</th>\n", | |
" <th>Name</th>\n", | |
" <th>Sex</th>\n", | |
" <th>Age</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Ticket</th>\n", | |
" <th>Fare</th>\n", | |
" <th>Cabin</th>\n", | |
" <th>Embarked</th>\n", | |
" <th>Cabin_section</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>PassengerId</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Braund, Mr. Owen Harris</td>\n", | |
" <td>male</td>\n", | |
" <td>22.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>A/5 21171</td>\n", | |
" <td>7.2500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" <td>n</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n", | |
" <td>female</td>\n", | |
" <td>38.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>PC 17599</td>\n", | |
" <td>71.2833</td>\n", | |
" <td>C85</td>\n", | |
" <td>C</td>\n", | |
" <td>C</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>Heikkinen, Miss. Laina</td>\n", | |
" <td>female</td>\n", | |
" <td>26.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>STON/O2. 3101282</td>\n", | |
" <td>7.9250</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" <td>n</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n", | |
" <td>female</td>\n", | |
" <td>35.0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>113803</td>\n", | |
" <td>53.1000</td>\n", | |
" <td>C123</td>\n", | |
" <td>S</td>\n", | |
" <td>C</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>Allen, Mr. William Henry</td>\n", | |
" <td>male</td>\n", | |
" <td>35.0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>373450</td>\n", | |
" <td>8.0500</td>\n", | |
" <td>NaN</td>\n", | |
" <td>S</td>\n", | |
" <td>n</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d04122e8-82c2-42f7-8285-aaac2f39bfa3')\"\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-d04122e8-82c2-42f7-8285-aaac2f39bfa3 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-d04122e8-82c2-42f7-8285-aaac2f39bfa3');\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": 15 | |
} | |
], | |
"source": [ | |
"df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "ul802yxZRLl0" | |
}, | |
"outputs": [], | |
"source": [ | |
"columns = [\"Sex\", \"Age\", \"Embarked\", \"Pclass\", \"Fare\", \"Cabin_section\", \"SibSp\", \"Parch\", \"Y\"]\n", | |
"\n", | |
"df = df[columns]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "Jue2R3s_Lb4K", | |
"outputId": "a22abe64-8376-4480-af17-088904c4ae24" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"X_train shape: (623, 8) | X_test shape: (268, 8)\n", | |
"y_train mean: 0.36 | y_test mean: 0.44\n", | |
"9 features: ['Sex', 'Age', 'Embarked', 'Pclass', 'Fare', 'Cabin_section', 'SibSp', 'Parch']\n" | |
] | |
} | |
], | |
"source": [ | |
"df_train, df_test = model_selection.train_test_split(df,\n", | |
" test_size=0.3)\n", | |
"\n", | |
"print(\"X_train shape:\", \n", | |
" df_train.drop(columns=[\"Y\"], axis=1).shape,\n", | |
" \"| X_test shape:\",\n", | |
" df_test.drop(columns=[\"Y\"], axis=1).shape)\n", | |
"\n", | |
"print(\"y_train mean:\", \n", | |
" round(np.mean(df_train[\"Y\"]), 2),\n", | |
" \"| y_test mean:\",\n", | |
" round(np.mean(df_test[\"Y\"]), 2))\n", | |
"\n", | |
"print(df_train.shape[1], \n", | |
" \"features:\",\n", | |
" df_train.drop(columns=[\"Y\"], axis=1).columns.to_list())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "ee6z0lnFSCkd" | |
}, | |
"outputs": [], | |
"source": [ | |
"df_train[\"Age\"] = df_train[\"Age\"].fillna(df_train[\"Age\"].mean())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "o4D5kBhifulF" | |
}, | |
"outputs": [], | |
"source": [ | |
"def one_hot_encoder(df, column):\n", | |
" dummy = pd.get_dummies(df[column],\n", | |
" prefix=column, \n", | |
" drop_first=True)\n", | |
" \n", | |
" df = pd.concat([df, dummy], axis=1)\n", | |
"\n", | |
" print(df.filter(like=column, axis=1).head())\n", | |
"\n", | |
" df = df.drop(column, axis=1)\n", | |
"\n", | |
" return df" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "yi-o9ZzLhwFv", | |
"outputId": "46875dbc-7a9a-4ecb-f275-71855ba59ff8" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
" Sex Sex_male\n", | |
"PassengerId \n", | |
"673 male 1\n", | |
"34 male 1\n", | |
"556 male 1\n", | |
"4 female 0\n", | |
"7 male 1\n", | |
" Pclass Pclass_2 Pclass_3\n", | |
"PassengerId \n", | |
"673 2 1 0\n", | |
"34 2 1 0\n", | |
"556 1 0 0\n", | |
"4 1 0 0\n", | |
"7 1 0 0\n", | |
" Embarked Embarked_Q Embarked_S\n", | |
"PassengerId \n", | |
"673 S 0 1\n", | |
"34 S 0 1\n", | |
"556 S 0 1\n", | |
"4 S 0 1\n", | |
"7 S 0 1\n", | |
" Cabin_section Cabin_section_B Cabin_section_C Cabin_section_D \\\n", | |
"PassengerId \n", | |
"673 n 0 0 0 \n", | |
"34 n 0 0 0 \n", | |
"556 n 0 0 0 \n", | |
"4 C 0 1 0 \n", | |
"7 E 0 0 0 \n", | |
"\n", | |
" Cabin_section_E Cabin_section_F Cabin_section_G \\\n", | |
"PassengerId \n", | |
"673 0 0 0 \n", | |
"34 0 0 0 \n", | |
"556 0 0 0 \n", | |
"4 0 0 0 \n", | |
"7 1 0 0 \n", | |
"\n", | |
" Cabin_section_T Cabin_section_n \n", | |
"PassengerId \n", | |
"673 0 1 \n", | |
"34 0 1 \n", | |
"556 0 1 \n", | |
"4 0 0 \n", | |
"7 0 0 \n" | |
] | |
} | |
], | |
"source": [ | |
"df_train = one_hot_encoder(df_train, \"Sex\")\n", | |
"df_train = one_hot_encoder(df_train, \"Pclass\")\n", | |
"df_train = one_hot_encoder(df_train, \"Embarked\")\n", | |
"df_train = one_hot_encoder(df_train, \"Cabin_section\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "hgkwmsvKhwa-", | |
"outputId": "c81dd1af-ff2a-4f55-dc92-edf23d51fc9a" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
" Sex Sex_male\n", | |
"PassengerId \n", | |
"836 female 0\n", | |
"42 female 0\n", | |
"675 male 1\n", | |
"779 male 1\n", | |
"83 female 0\n", | |
" Pclass Pclass_2 Pclass_3\n", | |
"PassengerId \n", | |
"836 1 0 0\n", | |
"42 2 1 0\n", | |
"675 2 1 0\n", | |
"779 3 0 1\n", | |
"83 3 0 1\n", | |
" Embarked Embarked_Q Embarked_S\n", | |
"PassengerId \n", | |
"836 C 0 0\n", | |
"42 S 0 1\n", | |
"675 S 0 1\n", | |
"779 Q 1 0\n", | |
"83 Q 1 0\n", | |
" Cabin_section Cabin_section_B Cabin_section_C Cabin_section_D \\\n", | |
"PassengerId \n", | |
"836 E 0 0 0 \n", | |
"42 n 0 0 0 \n", | |
"675 n 0 0 0 \n", | |
"779 n 0 0 0 \n", | |
"83 n 0 0 0 \n", | |
"\n", | |
" Cabin_section_E Cabin_section_F Cabin_section_G \\\n", | |
"PassengerId \n", | |
"836 1 0 0 \n", | |
"42 0 0 0 \n", | |
"675 0 0 0 \n", | |
"779 0 0 0 \n", | |
"83 0 0 0 \n", | |
"\n", | |
" Cabin_section_n \n", | |
"PassengerId \n", | |
"836 0 \n", | |
"42 1 \n", | |
"675 1 \n", | |
"779 1 \n", | |
"83 1 \n" | |
] | |
} | |
], | |
"source": [ | |
"df_test = one_hot_encoder(df_test, \"Sex\")\n", | |
"df_test = one_hot_encoder(df_test, \"Pclass\")\n", | |
"df_test = one_hot_encoder(df_test, \"Embarked\")\n", | |
"df_test = one_hot_encoder(df_test, \"Cabin_section\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 301 | |
}, | |
"id": "KN95-fxziAQV", | |
"outputId": "2e7093a7-1743-4400-eb06-7a4cd5fcea62" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Age Fare SibSp Parch Y Sex_male Pclass_2 Pclass_3 \\\n", | |
"PassengerId \n", | |
"673 70.0 10.5000 0 0 0 1 1 0 \n", | |
"34 66.0 10.5000 0 0 0 1 1 0 \n", | |
"556 62.0 26.5500 0 0 0 1 0 0 \n", | |
"4 35.0 53.1000 1 0 1 0 0 0 \n", | |
"7 54.0 51.8625 0 0 0 1 0 0 \n", | |
"\n", | |
" Embarked_Q Embarked_S Cabin_section_B Cabin_section_C \\\n", | |
"PassengerId \n", | |
"673 0 1 0 0 \n", | |
"34 0 1 0 0 \n", | |
"556 0 1 0 0 \n", | |
"4 0 1 0 1 \n", | |
"7 0 1 0 0 \n", | |
"\n", | |
" Cabin_section_D Cabin_section_E Cabin_section_F \\\n", | |
"PassengerId \n", | |
"673 0 0 0 \n", | |
"34 0 0 0 \n", | |
"556 0 0 0 \n", | |
"4 0 0 0 \n", | |
"7 0 1 0 \n", | |
"\n", | |
" Cabin_section_G Cabin_section_T Cabin_section_n \n", | |
"PassengerId \n", | |
"673 0 0 1 \n", | |
"34 0 0 1 \n", | |
"556 0 0 1 \n", | |
"4 0 0 0 \n", | |
"7 0 0 0 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-5b7f190b-5c35-45a6-832d-2b251d3b8544\">\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>Age</th>\n", | |
" <th>Fare</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Y</th>\n", | |
" <th>Sex_male</th>\n", | |
" <th>Pclass_2</th>\n", | |
" <th>Pclass_3</th>\n", | |
" <th>Embarked_Q</th>\n", | |
" <th>Embarked_S</th>\n", | |
" <th>Cabin_section_B</th>\n", | |
" <th>Cabin_section_C</th>\n", | |
" <th>Cabin_section_D</th>\n", | |
" <th>Cabin_section_E</th>\n", | |
" <th>Cabin_section_F</th>\n", | |
" <th>Cabin_section_G</th>\n", | |
" <th>Cabin_section_T</th>\n", | |
" <th>Cabin_section_n</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>PassengerId</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>673</th>\n", | |
" <td>70.0</td>\n", | |
" <td>10.5000</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>34</th>\n", | |
" <td>66.0</td>\n", | |
" <td>10.5000</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>556</th>\n", | |
" <td>62.0</td>\n", | |
" <td>26.5500</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>35.0</td>\n", | |
" <td>53.1000</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>54.0</td>\n", | |
" <td>51.8625</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5b7f190b-5c35-45a6-832d-2b251d3b8544')\"\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-5b7f190b-5c35-45a6-832d-2b251d3b8544 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-5b7f190b-5c35-45a6-832d-2b251d3b8544');\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": 22 | |
} | |
], | |
"source": [ | |
"df_train.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 301 | |
}, | |
"id": "wkvLz7bkiDGA", | |
"outputId": "0b490dc9-4707-4022-ac23-097ea89a4427" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Age Fare SibSp Parch Y Sex_male Pclass_2 Pclass_3 \\\n", | |
"PassengerId \n", | |
"836 39.0 83.1583 1 1 1 0 0 0 \n", | |
"42 27.0 21.0000 1 0 0 0 1 0 \n", | |
"675 NaN 0.0000 0 0 0 1 1 0 \n", | |
"779 NaN 7.7375 0 0 0 1 0 1 \n", | |
"83 NaN 7.7875 0 0 1 0 0 1 \n", | |
"\n", | |
" Embarked_Q Embarked_S Cabin_section_B Cabin_section_C \\\n", | |
"PassengerId \n", | |
"836 0 0 0 0 \n", | |
"42 0 1 0 0 \n", | |
"675 0 1 0 0 \n", | |
"779 1 0 0 0 \n", | |
"83 1 0 0 0 \n", | |
"\n", | |
" Cabin_section_D Cabin_section_E Cabin_section_F \\\n", | |
"PassengerId \n", | |
"836 0 1 0 \n", | |
"42 0 0 0 \n", | |
"675 0 0 0 \n", | |
"779 0 0 0 \n", | |
"83 0 0 0 \n", | |
"\n", | |
" Cabin_section_G Cabin_section_n \n", | |
"PassengerId \n", | |
"836 0 0 \n", | |
"42 0 1 \n", | |
"675 0 1 \n", | |
"779 0 1 \n", | |
"83 0 1 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-835be5ca-b5e5-4668-9703-f75bcc3453c0\">\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>Age</th>\n", | |
" <th>Fare</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Y</th>\n", | |
" <th>Sex_male</th>\n", | |
" <th>Pclass_2</th>\n", | |
" <th>Pclass_3</th>\n", | |
" <th>Embarked_Q</th>\n", | |
" <th>Embarked_S</th>\n", | |
" <th>Cabin_section_B</th>\n", | |
" <th>Cabin_section_C</th>\n", | |
" <th>Cabin_section_D</th>\n", | |
" <th>Cabin_section_E</th>\n", | |
" <th>Cabin_section_F</th>\n", | |
" <th>Cabin_section_G</th>\n", | |
" <th>Cabin_section_n</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>PassengerId</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>836</th>\n", | |
" <td>39.0</td>\n", | |
" <td>83.1583</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>42</th>\n", | |
" <td>27.0</td>\n", | |
" <td>21.0000</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>675</th>\n", | |
" <td>NaN</td>\n", | |
" <td>0.0000</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>779</th>\n", | |
" <td>NaN</td>\n", | |
" <td>7.7375</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>83</th>\n", | |
" <td>NaN</td>\n", | |
" <td>7.7875</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-835be5ca-b5e5-4668-9703-f75bcc3453c0')\"\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-835be5ca-b5e5-4668-9703-f75bcc3453c0 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-835be5ca-b5e5-4668-9703-f75bcc3453c0');\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": 23 | |
} | |
], | |
"source": [ | |
"df_test.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 301 | |
}, | |
"id": "cwkK4mJEVGwb", | |
"outputId": "ce9e8af5-dea4-4a70-81b4-520d8ba2029d" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
" Age Fare SibSp Parch Sex_male Pclass_2 Pclass_3 \\\n", | |
"PassengerId \n", | |
"673 0.873944 0.020495 0.000 0.0 1.0 1.0 0.0 \n", | |
"34 0.823522 0.020495 0.000 0.0 1.0 1.0 0.0 \n", | |
"556 0.773100 0.051822 0.000 0.0 1.0 0.0 0.0 \n", | |
"4 0.432749 0.103644 0.125 0.0 0.0 0.0 0.0 \n", | |
"7 0.672255 0.101229 0.000 0.0 1.0 0.0 0.0 \n", | |
"\n", | |
" Embarked_Q Embarked_S Cabin_section_B Cabin_section_C \\\n", | |
"PassengerId \n", | |
"673 0.0 1.0 0.0 0.0 \n", | |
"34 0.0 1.0 0.0 0.0 \n", | |
"556 0.0 1.0 0.0 0.0 \n", | |
"4 0.0 1.0 0.0 1.0 \n", | |
"7 0.0 1.0 0.0 0.0 \n", | |
"\n", | |
" Cabin_section_D Cabin_section_E Cabin_section_F \\\n", | |
"PassengerId \n", | |
"673 0.0 0.0 0.0 \n", | |
"34 0.0 0.0 0.0 \n", | |
"556 0.0 0.0 0.0 \n", | |
"4 0.0 0.0 0.0 \n", | |
"7 0.0 1.0 0.0 \n", | |
"\n", | |
" Cabin_section_G Cabin_section_T Cabin_section_n Y \n", | |
"PassengerId \n", | |
"673 0.0 0.0 1.0 0 \n", | |
"34 0.0 0.0 1.0 0 \n", | |
"556 0.0 0.0 1.0 0 \n", | |
"4 0.0 0.0 0.0 1 \n", | |
"7 0.0 0.0 0.0 0 " | |
], | |
"text/html": [ | |
"\n", | |
" <div id=\"df-60842eca-c8b1-4e63-a71d-992e111c2312\">\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>Age</th>\n", | |
" <th>Fare</th>\n", | |
" <th>SibSp</th>\n", | |
" <th>Parch</th>\n", | |
" <th>Sex_male</th>\n", | |
" <th>Pclass_2</th>\n", | |
" <th>Pclass_3</th>\n", | |
" <th>Embarked_Q</th>\n", | |
" <th>Embarked_S</th>\n", | |
" <th>Cabin_section_B</th>\n", | |
" <th>Cabin_section_C</th>\n", | |
" <th>Cabin_section_D</th>\n", | |
" <th>Cabin_section_E</th>\n", | |
" <th>Cabin_section_F</th>\n", | |
" <th>Cabin_section_G</th>\n", | |
" <th>Cabin_section_T</th>\n", | |
" <th>Cabin_section_n</th>\n", | |
" <th>Y</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>PassengerId</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>673</th>\n", | |
" <td>0.873944</td>\n", | |
" <td>0.020495</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>34</th>\n", | |
" <td>0.823522</td>\n", | |
" <td>0.020495</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>556</th>\n", | |
" <td>0.773100</td>\n", | |
" <td>0.051822</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>0.432749</td>\n", | |
" <td>0.103644</td>\n", | |
" <td>0.125</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>0.672255</td>\n", | |
" <td>0.101229</td>\n", | |
" <td>0.000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-60842eca-c8b1-4e63-a71d-992e111c2312')\"\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-60842eca-c8b1-4e63-a71d-992e111c2312 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-60842eca-c8b1-4e63-a71d-992e111c2312');\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": 24 | |
} | |
], | |
"source": [ | |
"scaler = preprocessing.MinMaxScaler(feature_range=(0,1))\n", | |
"\n", | |
"X = scaler.fit_transform(df_train.drop(\"Y\", axis=1))\n", | |
"\n", | |
"df_scaled = pd.DataFrame(X, columns=df_train.drop(\"Y\",\n", | |
" axis=1).columns,\n", | |
" index=df_train.index)\n", | |
"df_scaled[\"Y\"] = df_train[\"Y\"]\n", | |
"\n", | |
"df_scaled.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 358 | |
}, | |
"id": "KDJzKhSHWbjE", | |
"outputId": "8c1b1431-439e-4894-b607-ad3b138916cd" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'pearson correlation')" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 25 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"corr_matrix = df.copy()\n", | |
"for col in corr_matrix.columns:\n", | |
" if corr_matrix[col].dtype == \"O\":\n", | |
" corr_matrix[col] = corr_matrix[col].factorize(sort=True)[0]\n", | |
"corr_matrix = corr_matrix.corr(method=\"pearson\")\n", | |
"sns.heatmap(corr_matrix, vmin=-1., vmax=1., annot=True, fmt='.2f', cmap=\"YlGnBu\", cbar=True, linewidths=0.5)\n", | |
"plt.title(\"pearson correlation\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 296 | |
}, | |
"id": "cauM1nLma0FT", | |
"outputId": "558494d3-9c04-4e59-adb9-d0433de4704f" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<AxesSubplot:xlabel='selection', ylabel='features'>" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 26 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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+eSTANx///0MGjSIVq1accQRR/DCCy9QXl5Ot27duOmmm6qtZ6+99mLSpEm8+OKLHHPMMfzud78D4LLLLuOaa65h2rRpPP3002ywwQb87//+L4MGDWLatGmUl5dTVlbGe++9x4gRI5gwYQLTpk3jhRde4J577qn3cSrklOloYDywmaSLya7R1TfwurY2kDQt5/1DEVHwoxfAC8DVZNfsngDGp9knXgRmA29TQAcUEZdL6gDcCgwjm/NwqrJJFecBQ8iO1UCysO63gGdr2O3PgFHAK5I2SPvZPWdaqbxad+7O1hd4EGlmNRs9ejTjx2eT/b799tu8+uqrdOzYkdatW3PooYcC0Lt3bx599FEAnn32We6++24Ajj/+eH76058CMHToUO644w4GDBjA7bffzve//30AZs6cyciRI/noo49YvHgxgwYNqraed955h6FDhzJ37lyWL19O167ZfOh77rknZ599NsOGDeOII45gyy23pG/fvnznO99hxYoVDBkyhLKyMiZMmMC+++5Lp06dABg2bBhPPfUUQ4YMqddxqrZDTCOqN4CfAvuRnSYcEhEv1+tTayki8t5BEhFdcl6PJbuppvK6ieQP8SYihte03/R+35zXv8hZVVUgd8FXjiPiU7Ibls6U9GXgH2ThBzdUu6GZWQEmTpzIY489xrPPPkvbtm3Zd999WbYsm5a1VatWpEnSadmyJZ/VMK3TYYcdxnnnnceHH37IlClTGDgwC/MePnw499xzD7169WLs2LFMnDix2v2cccYZnH322Rx22GFMnDiRCy+8EIBzzz2XQw45hAcffJA999yThx9+mL333punnnqKBx54gOHDh3P22WfToUOH+h2UKlR7yjQ9B3dNRMyOiGsi4urG7gybk4j4v4jYJSLcGZpZg1i4cCEbb7wxbdu2Zfbs2UyaNKnGbfbYYw9uvz27wX7cuHF8/etfB7Jrjn379uWss87i0EMPpWXLbKyyaNEiOnfuzIoVKxg3blxBNW2xxRYA3HLLLauXv/baa/To0YMRI0bQt29fZs+ezZtvvsnmm2/OqaeeyimnnMLUqVPZbbfdePLJJ5k/fz4rV67ktttuY5999qn1samskFOmj0s6Eri7ptN4VjVJ48nCDXKNiIg6TRY2+4PZ7HnVnvUvzKwOnjnDl7ibigMPPJDrr7+ebt26scMOO9C/f/8a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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"X = df_train.drop(\"Y\", axis=1).values\n", | |
"y = df_train[\"Y\"].values\n", | |
"feature_names = df_train.drop(\"Y\", axis=1).columns\n", | |
"\n", | |
"## Anova\n", | |
"selector = feature_selection \\\n", | |
" .SelectKBest(\n", | |
" score_func=feature_selection.f_classif, \n", | |
" k=10) \\\n", | |
" .fit(X,y)\n", | |
"\n", | |
"anova_selected_features = feature_names[selector.get_support()]\n", | |
"\n", | |
"## Lasso regularization\n", | |
"selector = feature_selection \\\n", | |
" .SelectFromModel(\n", | |
" estimator=linear_model.LogisticRegression(\n", | |
" C=1, \n", | |
" penalty=\"l1\", \n", | |
" solver='liblinear'), \n", | |
" max_features=10) \\\n", | |
" .fit(X,y)\n", | |
" \n", | |
"lasso_selected_features = feature_names[selector.get_support()]\n", | |
" \n", | |
"## Plot\n", | |
"dtf_features = pd.DataFrame({\"features\":feature_names})\n", | |
"dtf_features[\"anova\"] = dtf_features[\"features\"].apply(lambda x: \"anova\" if x in anova_selected_features else \"\")\n", | |
"dtf_features[\"num1\"] = dtf_features[\"features\"].apply(lambda x: 1 if x in anova_selected_features else 0)\n", | |
"dtf_features[\"lasso\"] = dtf_features[\"features\"].apply(lambda x: \"lasso\" if x in lasso_selected_features else \"\")\n", | |
"dtf_features[\"num2\"] = dtf_features[\"features\"].apply(lambda x: 1 if x in lasso_selected_features else 0)\n", | |
"dtf_features[\"method\"] = dtf_features[[\"anova\",\"lasso\"]].apply(lambda x: (x[0]+\" \"+x[1]).strip(), axis=1)\n", | |
"dtf_features[\"selection\"] = dtf_features[\"num1\"] + dtf_features[\"num2\"]\n", | |
"sns.barplot(y=\"features\", x=\"selection\", hue=\"method\", data=dtf_features.sort_values(\"selection\", ascending=False), dodge=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 365 | |
}, | |
"id": "TqioxCqrbgVr", | |
"outputId": "c5547ea0-3cf5-44f7-836a-ffac134236ae" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
], | |
"source": [ | |
"X = df_train.drop(\"Y\", axis=1).values\n", | |
"y = df_train[\"Y\"].values\n", | |
"feature_names = df_train.drop(\"Y\", axis=1).columns.tolist()\n", | |
"## Importance\n", | |
"model = ensemble.RandomForestClassifier(n_estimators=100,\n", | |
" criterion=\"entropy\", random_state=0)\n", | |
"model.fit(X,y)\n", | |
"importances = model.feature_importances_\n", | |
"## Put in a pandas dtf\n", | |
"df_importances = pd.DataFrame({\"IMPORTANCE\":importances, \n", | |
" \"VARIABLE\":feature_names}).sort_values(\"IMPORTANCE\", \n", | |
" ascending=False)\n", | |
"df_importances['cumsum'] = df_importances['IMPORTANCE'].cumsum(axis=0)\n", | |
"df_importances = df_importances.set_index(\"VARIABLE\")\n", | |
" \n", | |
"## Plot\n", | |
"fig, ax = plt.subplots(nrows=1, ncols=2, sharex=False, sharey=False)\n", | |
"fig.suptitle(\"Features Importance\", fontsize=20)\n", | |
"ax[0].title.set_text('variables')\n", | |
"df_importances[[\"IMPORTANCE\"]].sort_values(by=\"IMPORTANCE\").plot(\n", | |
" kind=\"barh\", legend=False, ax=ax[0]).grid(axis=\"x\")\n", | |
"ax[0].set(ylabel=\"\")\n", | |
"ax[1].title.set_text('cumulative')\n", | |
"df_importances[[\"cumsum\"]].plot(kind=\"line\", linewidth=4, \n", | |
" legend=False, ax=ax[1])\n", | |
"ax[1].set(xlabel=\"\", xticks=np.arange(len(df_importances)), \n", | |
" xticklabels=df_importances.index)\n", | |
"plt.xticks(rotation=70)\n", | |
"plt.grid(axis='both')\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "EZqucKgXdAl7" | |
}, | |
"outputs": [], | |
"source": [ | |
"X_names = [\"Age\", \"Fare\", \"Sex_male\", \"SibSp\", \"Pclass_3\", \"Parch\", \"Cabin_section_n\", \"Embarked_S\", \"Pclass_2\", \"Cabin_section_F\", \"Cabin_section_E\", \"Cabin_section_D\"]\n", | |
"\n", | |
"X_train = df_train[X_names].values\n", | |
"y_train = df_train[\"Y\"].values\n", | |
"\n", | |
"X_test = df_test[X_names].values\n", | |
"y_test = df_test[\"Y\"].values" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "CouI15DojDNq" | |
}, | |
"source": [ | |
"#Training the model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "OHnz46IfiUkq", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "7651e210-38fc-4e46-8342-1c3e578b0bc7" | |
}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Best Model Parameters: {'subsample': 0.85, 'n_estimators': 750, 'min_samples_split': 10, 'min_samples_leaf': 1, 'max_features': 6, 'max_depth': 7, 'learning_rate': 0.01}\n", | |
"Best Model mean accuracy: 0.8394580645161291\n" | |
] | |
} | |
], | |
"source": [ | |
"model = ensemble.GradientBoostingClassifier()\n", | |
"\n", | |
"param_dic = {\n", | |
" \"learning_rate\": [0.15, 0.1, 0.05, 0.01, 0.005, 0.001],\n", | |
" \"n_estimators\": [100, 250, 500, 750, 1000, 1250, 1500, 1750],\n", | |
" \"max_depth\": [2, 3, 4, 5, 6, 7],\n", | |
" \"min_samples_split\": [2, 4, 6, 8, 10, 20, 40, 60, 100],\n", | |
" \"min_samples_leaf\": [1, 3, 5, 7, 9],\n", | |
" \"max_features\": [2, 3, 4, 5, 6, 7],\n", | |
" \"subsample\": [0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1]\n", | |
"}\n", | |
"\n", | |
"random_search = model_selection.RandomizedSearchCV(model,\n", | |
" param_distributions=param_dic,\n", | |
" n_iter=1000,\n", | |
" scoring=\"accuracy\").fit(X_train, y_train)\n", | |
"\n", | |
"print(\"Best Model Parameters:\", random_search.best_params_)\n", | |
"print(\"Best Model mean accuracy:\", random_search.best_score_)\n", | |
"\n", | |
"model = random_search.best_estimator_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"cv = model_selection.StratifiedKFold(n_splits=10, shuffle=True)\n", | |
"\n", | |
"tprs, aucs = [], []\n", | |
"\n", | |
"mean_fpr = np.linspace(0,1,100)\n", | |
"\n", | |
"fig = plt.figure()\n", | |
"\n", | |
"i = 1\n", | |
"for train, test in cv.split(X_train, y_train):\n", | |
" prediction = model \\\n", | |
" .fit(\n", | |
" X_train[train],\n", | |
" y_train[train]) \\\n", | |
" .predict_proba(X_train[test])\n", | |
"\n", | |
" fpr, tpr, t = metrics.roc_curve(y_train[test], prediction[:, 1])\n", | |
"\n", | |
" tprs.append(np.interp(mean_fpr, fpr, tpr))\n", | |
"\n", | |
" roc_auc = metrics.auc(fpr, tpr)\n", | |
"\n", | |
" aucs.append(roc_auc)\n", | |
"\n", | |
" plt.plot(fpr, tpr, lw=2, alpha=0.3, label=\"ROC fold %d (AUC = %0.2f)\" % (i, roc_auc))\n", | |
" i = i+1\n", | |
" \n", | |
"plt.plot([0,1], [0,1], linestyle='--', lw=2, color='black')\n", | |
"\n", | |
"mean_tpr = np.mean(tprs, axis=0)\n", | |
"\n", | |
"mean_auc = metrics.auc(mean_fpr, mean_tpr)\n", | |
"\n", | |
"plt.plot(mean_fpr, mean_tpr, color='blue', label=r'Mean ROC (AUC = %0.2f )' % (mean_auc), lw=2, alpha=1)\n", | |
"\n", | |
"plt.xlabel('False Positive Rate')\n", | |
"plt.ylabel('True Positive Rate')\n", | |
"\n", | |
"plt.title('K-Fold Validation')\n", | |
"\n", | |
"plt.legend(loc=\"lower right\")\n", | |
"\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"id": "NrlnWXTKpzvt", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 295 | |
}, | |
"outputId": "d5e7c41c-709d-44a8-92c3-27c0f19ac4d4" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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icljPiClnrHquBum3CvlQ/4iFxpNTpRSODo6WkTibrvttiKvl9AUP9oRlACJsQUP4fzwEzdOnnamUb1onrj/T+AOq/WSTal55vyt5lwFyCk/Udo41cs9n4GmfJOamkpycjLVq1cHjEneunXr2n9RlKbw5LbAoKxuZXJB2ffz5fT383MtP3soQs4eisizjZ07RZ57TuSZZ/5eEObklC7v/GuZrJ7/Qa7nHT9+XI4fP55n29+c+U2+OfNb3jehKRJlYUGZg4ODtGvXTtq0aSP333+/3Lx501IWEhIiffv2lVatWomXl5e8++67WRZsbdy4UTp27CitW7cWf39/mTJlSo72k5KS5J577pF27dpJYGBgjvL09HSJioqSjh07yqpVqyQ1NTVL+bJly6wuKPv666/F19dX2rZtK926dZPg4GCr95eeni59+/aVmJgYy7H169cLIMeOHbMcy7zwLYOnn35a1q5dKyIiKSkpMn36dPHy8pL27dtL165dZePGgi/4zM77778vLVq0kFatWsnmzZut1vnll1+kffv20q5dO+nevbtlgVxYWJj069dPfH19pXfv3nLhwgURMRa7DRgwoMC2FHRBmc19NKWUVpq3E3v2QP/+sHgxLFsGq1cbx2e8nU6LZldK1zhNuSFDYiIkJIS6desyf/58AIsM9auvvsqJEyc4dOgQf/75JwsWLACwyFB//fXXhIaGsm/fPry8vHK0n1mG+rHHHstSlpKSwunTpzl79iwiQpUqVUhPty0vtKenJ7/99htHjhzhrbfeYty4cVbrbdy4kXbt2mUJHQ0ICLDIUNtKZhnqAwcO8P333xMbW7TBz8wy1Js3b+aFF17AZMo5FDt+/HhWrVpFcHAwTzzxBDNnzgTglVdeYdSoURw+fJh///vfvPbaawA0aNCAxo0bs3PnziLZlx/5Dg0ppe4GFgPVAQ+lVDvgeRF5wa6WVRLOnTMWgiUmGklhzNIj1KkDg4cIa3PKwmvKOieKnuTEKgVYkFiSMtTJycm0bNmS6dOn4+rqaskaVqVKFZtkqO+++27L565du3Lx4kWr97Rq1aosTqIiyVCHhobyn//8B4C+ffvy0EMPWc556KGHWLVqFd2720+WzZYewVxgABAFICKHgF52s6gCkp4Ot24poqPJsl28CIMHw/XrRo9g1Sp49lljGzqUSpPrV1O8ZMhQP/DAA4BtMtT5yTdnyFD37NmT4OBgmjZtyujRo/n4449ZsWIFaWlp/PTTT7Rp0wZnZ2eUUhYZ6p07d7Jjxw5CQ0PzvAYY4mv/+Id1h7dz584sdlqToc6PgspQ+/v759g++OCDHHUvXbrE7bf/nX4lPxlqd3d3Vq5caRGva9euHd999x0A69evJzY2lqgoQ+2gU6dO/PHHH/naWxRsmiwWkQvZdD8KH35SAblyK4nEFBPnrCQkSU2BiY/U4uyZ3OWFm96RwLA3Qgg4lPVrFdJxApxcrhMRuc3quYmJlzie5srhswVPhqKxEwWUEikuSkOGunPnzpw9e5bnnnuOlStXUqXK3yq7BZWhDgoKYsmSJezIyJOajYosQ/3xxx8zceJEli9fTq9evWjatKlljUVZkaG+YB4eEqWUMzAZOGZXq8oZiSm5+8X1X1fj7BkXnJyEqq45dZ0aecTz1Lt/klQlkaSUnOc3AKq5WCnIRHS6E/kpJDVyqRxL8iszJSFDbTKZLCuDAWrWrImvr6/l7bWwHD58mOeee45NmzZRr571X3NFlqFu0qSJpUcQFxfHt99+a9FdKhMy1BipI1cB1zBSSH4N1M3vPHttZTFq6OfFH8nPiz/KcfzyZZHq1Y0IoGULrEs5h0SGSFB4kByPOi6XYi/l2MJ+Wiunf/4wVxnp48ePy5Lgo8UuFa0pGGUhasieMtQmk0nWrl0rPXr0kL1790pERESxyVCfP39eWrRoITt37szz/iqyDHVERISYTCYREXn99dflrbfespy3b9++AkcO2UOG2ltEnsx8QCnVHbDvNHYxc/HiReLjc1+Fe+NoJGkpJuSCdc8bG3WF1CTr8fjR1403/d+37M1y/P2PPYmLq0/3rje5447TnDiR8w3k8tG9xN+MxNm1PonO1ldbpjgnEnvxEjeitIqcxjaKU4Y6Li6O8+fPW976GzRoQJ06dYpNhvrdd98lKiqKF14w4k+cnJywpjBckWWot2/fzmuvvYZSil69elkivqCMyFArpQ6ISIf8jpUUhZWhPpGPFOf1fUZ3V+pbdwQ3Lp3N9dzoa+dxdKpCM7+/Z/VDQqszYUprqjin89WiEJrfkUadRjkf9OG7fyU+NZ4GrvVxy8URpNUMw6lRI1xdrctc7xcn6tevX6xS0ZqCURFlqLOLxFWtWpXmzZtnGacvSSqjDDVAr1692LBhA3Xq1LH5nGKToVZKdQPuBhoopaZkKqqJkYO4XOLt7W31eNUzxiRX8wGeVsvP7Ddioq3lHAj+JYDUVAdmL+lMRmDEFXP4/7R/OTBitF+u9qQd30VMcipe9w+iYbWGVutkTBQ3qG/d9vORWkxOU/xcunTJohF022230aRJk1KVh6iMMtQRERFMmTKlQE6gMOQ1NFQFY+2AE5D5FeAW8Ig9jSqP/G9rc9auzXrM0xPM60I0mnJH48aNSUxMxN3dvcyIxFU2GeoGDRpkWVNgL3J1BCLyG/CbUmq5iJzPrZ4GUtMUSwPaAPDJJ4ZCKEDz5oZCqEZTHoiOjiYiIoIWLVrg4OCAs7Nzrj1oTcXClsniBKXUbKANYAmGF5F+drOqnLFpW3MuXa1Oq1YwYQJoiXVNeSI1NZXw8HBLyGVUVJQl9l9TObDFEawC1gD3A/8EngYi7GlUWeTnqDNEpCXjsjtr8hlTmuLz1V0BuG/ccb47fz1rebqJK/FXMKVbX2vg6BgB1eDkhf25ThaDIS+qE8toihMR4caNG1y4cIG0tDQcHBxo2rQp9evXL23TNCWMLY6gnogsUUpNzjRctDffsyoYEWnJVo8f2tqYiMu1adAkhu5DrucoT0lPydUJZOCAI1UcquRZx8kx78kxnTxGUxCSk5MJDw8nJsZ4uahZsybNmjWzqgWkqQTktsAgYwN2mf/dAgwG2gNn8jvPXlthF5TlJ9d87qezcu6ns7mWv/PTUnnnp6UiInLihMiaNSIffyzi6WksGFv63iGr50UlRklQeJAEX7curXtr269ya9uvBbgTTVmkLCwoK4gM9fTp02XPnj1y4MABiYiIkJ9++qnIMtQZZCwoy05uMtTff/+9+Pr6Srt27aRjx47yxx9/WG03ISFBevXqlWWh1ty5c6Vq1aqWxWK5XSezTbGxsTJu3Di54447pEOHDtK7d2/ZtWtXrvdjC+np6fLiiy9KixYtxNfXV/bv32+13urVq6Vt27bi6+srAwYMkIgIQ57+lVdeEW9vb/H19ZWHHnrI8rc7fPiwPP300wW2xx4y1DOVUrWAqcArGEqkL9nDKZUmsVFXuXn5LGf277a6ZRAYCHfeCY89Bq+8YqiHeron8NQD9tUC0WjyIz8Z6mnTpllkqA8dOsTWrVtp06YNV69e5cUXXyySDHVRuOeeezh06BDBwcEsXbqU5557zmq9pUuX8vDDD2fJcxwQEEDnzp0t8gy28Nxzz1G3bl1OnTrF/v37WbZsGZGRtmcPtMamTZs4deoUp06dYtGiRTnUWwHS0tKYPHkyQUFBHD58GD8/Pz7//HMA7r33XkJCQjh8+DCtWrVi1qxZAPj6+nLx4kXCw8OLZF9+5DueICI/mj/GAH3BsrK4QpGWnJBvnavnb+ODqSACAwaAtzfcfjs86LsXZ+e8F+ZpKg/bL2y3S7t9bu9jc93MMtSrVq2iQ4cONG7cmOTk5Cwy1K+//nqRZagzVhYvXLgwx9CSLTLUGZnMAOLj43MVh1u1ahWrM5J1AGfOnCEuLo4FCxbw3nvv8cwzz+T7vZw5c4bdu3ezatUqy5oIT09PPD2trx+ylQ0bNjBq1CiUUnTt2pXo6GiuXLlC48aNLXUy3r7j4+OpV68et27dsjjcDIlwMKS4161bZ9kfMmQIgYGB/Otf/yqSjXmRa49AKeWolHpcKfWKUqqt+dj9Sqk/gc/tZlEp06JjF6tbmvJg9Tt9SEw0ZKI3bTJCRV95BVo2z9+JaDQlRWYZ6oSEBP744w88PDxIS0uzRAYVlwz1mjVrOHLkCGlpaSxcuDDLOQWRoV6/fj133nkngwcPtsguZCYlJYWzZ8/SvHlzy7HAwEBGjBhBz549OXHiRBYxvNw4evQo/v7+WXoVufHYY49ZlaFesWJFjrq2yFA7OzuzcOFCfH19adKkCaGhoYwZMyZHW0uXLs0ixV3aMtRLgNuBPcCnSqnLQCfgVRH53q5WlTFSU+Hr19sTc82Vrl1hwQIooKKtphJRkDf34iS7DLWPjw/Hjh0jLS0NJycnWrZsadHbKSoZMtStWrUC4Omnn2b+/Pm89NJLljoFkaEeOnQoQ4cO5ffff+ett97il19+yVIeGRlpUePMICAggPXr1+Pg4MCwYcNYu3YtEydOLDYZ6jVr1hSofn6kpqaycOFCDh48yB133MGLL77IrFmzePPNNy113nvvPZycnHjyyb/l3UpbhroT4Cci6UopF+Aq0EJEiqY3Ww756is4F1yXmg2S+O47F3RghaYskjFHEBkZyYABA/j0008ZMWIEfn5+hISEZHEChZWhtje9evXi7NmzREZGZgljdXV1JSkpybJ/5MgRTp06Zcm5kJKSgqenJxMnTsxThrp27docOnQIk8mUb6/gscces6pRNmXKFEaNGpXlmC0y1MHBwYDRGwNjlXTmJDfLly/nxx9/ZNu2bVmcVknIUOc1WZwiIukAIpIEnC2oE1BKDVRKnVBKnVZKvZpLneFKqVCl1FGl1GprdUqbL780/h04/gSZhvw0mjKJm5sbU6ZMYfXq1bRo0YJJkyaxc+dOy1t2YmIikyZNsow5T5s2jffff9/ytp6ens5///vfPK/h7e1NWFgYp0+fBmDlypX07t07S50uXbrw22+/ERUVRWpqKmuza7CYOX36dEaEIgcOHCA5OTlHToI6depgMpksziAgIIC3336bsLAwwsLCuHz5MpcvX+b8+fN07tyZnTt3cvXqVQD27dtHcnIyt99+Oy1atKBTp07MmDHDcs2wsDB++umnHHatWbOG4ODgHFt2JwDwwAMPsGLFCkSEXbt2UatWrSzzA2A4i9DQUCIijGVYW7dutQjDbd68mY8++ogffviBatWypoc/efIkbdu2tfrdFRd59QjuVEodNn9WQAvzvgJERHJXUsOYYwDmA/cCF4G9SqkfRCQ0U52WwGtAdxG5qZSyrrpWAuwVIUopth7MqqZx5aQze/Y0wcUthS6d98AJHR2kKXtkllh3dXVlyJAhBAQE8OOPPxZZhtoaLi4uxSZD/e2337JixQqcnZ1xdXVlzZo1Vodx7rvvPnbs2EH//v0JDAxk48aNWcqHDh1KYGAg06dP55NPPmHQoEGkp6dTvXp1AgICLJPDixcvZurUqXh5eeHq6kr9+vWZPXt2vt9xXgwaNIiNGzfi5eVFtWrVWLZsmaXM39+f4OBgmjRpwowZM+jVqxfOzs40a9aM5cuXAzBx4kSSk5MtPZyuXbtanHGpylArpZrldaLkoz9kVi99W0QGmPdfM583K1Odj4CTIrLYVoOLKkOdm3bKrMWGwqdjx6xhcxs+qsOfgTXp+cARJk4JYvhtLa1fwK0BuOdUeL2RdIPDEYep41KHdg1ydr1jfzUyINXo19fme9GUPUpLhjotLY2LFy8SGRnJHXfcQd26dUvchpLiwIEDzJ07l5UrV5a2KSVGcnIyvXv3ZseOHTg52b5otNhkqPN70NtAU+BCpv2LQHYN51ZmA3diSFu/LSKbszeklBoHjAPw8PAooll586/2f/u/xESYZbbm7Sf241srqdTy0Wo02bl58ybh4eGkpqailCItLa20TbIrHTp0oG/fvjaN71cUwsPD+eCDDwrkBApDaesSOAEtgT6AO/C7UspXRKIzVxKRRcAiMHoEhbnQ+ZDTJMTEEXUkt4UZOadLvvsOoqOhUyfw9c4pH6HRlAbZReKqV69Os2bN7J/Xtgzw7LPPlrYJJUrLli1p2TKXUYhixJ6O4BJG+GkG7uZjmbkI7BaRVOCcUuokhmModi2jhJi4fOs4ZAsHypgkzmWho0ZT4sTHx3Py5ElMJhMODg64u7vToEGDAodGajSZsckRKKVcAQ8RKUjS3L1AS6WUJ4YDGAE8ka3O98DjwDKlVH2MoaLcc0IWA3c/cq/V4/t+PkFMlCMTJ0JcHJhM8NtvUK0aPP44JNvVKo3GNlxdXXF2dsbNzU2LxGmKjXwdgVJqCPAxRsYyT6WUP/CuiDyQ13kikqaUmoghVucILBWRo0qpdzHEj34wl92nlAoFTMC00lyn8Oem2mzONg/1xBNQs2Yl1N3WlAlEhMjISOrUqYOTkxMODg54e3vj5OSkewGaYsOWHsHbwF3AdgARCTa/5eeLiGwENmY79u9MnwWYYt5KnajLhu7/c89B9+5QpQoMGVLKRmkqLUlJSYSFhREXF0d8fLxFXsHZ2bl0DdNUOGxRH00VkewZUSqkwtrNCOM/2GOPwejRRm+gRo28z9Foipv09HSuXLnC0aNHiYuLw9nZ2SZpCEdHR/z9/Wnbti1DhgwhOjraUnb06FH69euHt7c3LVu25P/+7//IHDq+adMmOnXqhI+PD+3bt2fq1Kk52k9OTqZ///74+/vnKb/Qp08frIV4L1++3LJ2wRp79+7Fyckpi+BaZhITE+nduzcm09/5PebNm4eLi4slr0Ju18lsU1xcHM8//zwtWrSgY8eO9OnTh927d1MURIRJkybh5eWFn58fBw4csFovICAAX19f/Pz8GDhwoEX1dNq0adx55534+fkxdOhQy9/uyJEjjB49uki22YItjuCoUuoJwFEp1VIp9Rnwp53tKhVuXDM6SM3yXEGh0diPhIQEjh8/zqVLlxAR6tevT5s2bahTp06+5+YnQ/3qq69aZKj//PNPFixYAEBISAgTJ04sNRlqMITypk+fnkWFMztahtp+2DI09CLwBpAMrMYY159pT6NKg3QTREcaPYLbb8+nskaTBxmLBAtKamoK4eHhiAhVnZxp2Kgh1W7Fknj2HFCwRYeZZahXr15N9+7dLQ/ZzDLUEyZMKHUZaoDPPvuMYcOGsXdv7gGDWoa6FGSoM3GniLwhIp3N25tm7aEKRUyUE+kmxW23gYtLaVujqYw4O1ehRo0a1KpVGw8PD6q5Vsv/JCtklqEGY1gou8x0WZKhvnTpEuvXr7f6Fp2BlqEuPRnqDOYopW4D1gFrRCTErhaVEjeuG72B3IaFUi5dx5SQROyNgr3tJafGUiUmDFWlOrE1b+R/gqbcY+ubu8lk4tKlS9StW9eSnKW6SKGjgbLLUGfo1tiD4pShfumll/jwww8tb+jW0DLUpSdDDYCI9DU7guHAF0qpmhgOoUIND928nvf8gCnBfp0gp3oVVx9GY52YmBjOnz9PSkoKsbGx+Pj4oJQqUkhoxhxBQkICAwYMYP78+UyaNAkfHx9+//33LHXLkgz1vn37GDFiBGA88Ddu3IiTkxMPPfSQpY6WobbzqvHckhlb2wBfYCWGRHW5Sl6/fkmgrF+Se8LtwaOvC4hMm2a9/Pw3E+T8NzkTb+dHfsnrNRUDW5PXp6amytmzZ2Xv3r2yd+9eOXr0qMTHxxeLDW5ubpbPBw4cEA8PD0lNTZWEhATx9PSUrVu3ioiRBH7w4MHy6aefiojIoUOHpEWLFnLixAkRETGZTLJw4cIc7QcFBcngwYNFRCQxMVFuv/12OXXqlIiIPP300zJv3jwR+TtR/OXLl8XDw0MiIyMlJSVFevToYTV5fWaefvppWbt2rdUyd3d3SUxMFBGR1157Td5///0s5c2bN5ewsDC5evWqNGvWTK5cuSIiInv37pVWrVqJyWQSEZFHH31U3njjDUlPTxcRkXPnzsmPP/6Yp1358eOPP8rAgQMlPT1d/vrrL+ncuXOOOpcuXZLbbrtNrl+/LiIib775pkyZMkVERDZt2iStW7e2lGVm3bp18vzzzxfInmJPXq+Uaq2UelspdQTIiBhyt6dzKg1u5jM0pNEUlRs3bhASEkJUVBRKKdzd3WndunUO/fnioH379vj5+REQEICrqysbNmxg5syZeHt74+vrS+fOna3KULdu3Zq2bdty9mzeS+kzy1D7+vri4OCQpwx19+7di6zOmiFDDcb8wNChQ7OUZ8hQN2rUyCJD7e/vz0svvZRDhvratWt4eXnRtm1bRo8eTcOGRVPAHzRoEHfccQdeXl6MHTvWEpEFWOS3M8tQ+/n5ERwczOuvvw4YMtSxsbHce++9+Pv7Z/kuS1WG2lJBqb+ANcA3IlLqYvyFlaH+fqkx3vfQs9bD3lp3iuf4fjd++MH6IrLwtcZ/Go9Hc6ZrNqWbiEu1rmUUmxLL6ejTucpQayoG+clQp6WlceTIEUwmE9WrV6d58+a46KiEAqFlqEtBhjoDEelm89XLMTfM4qI1au4mIjJ/gbrMHIk8QnRydPEbpSnXZLxkKaVwcnKiWbNmpKWlaZG4QqJlqO1Hrq0rpb4RkeHmIaHM3QabMpSVJ0Tg5nUjvvn22xNzredssj5hk5hmnOPm7IajyvkDVUrRtHrTHMc1FZfk5GTOnz9PjRo1LLHkFTlpTEmhZajtQ15uZrL537xz1lUAIiMhNdkJF7dUWtzRx2qd2KSD+bbjW98XFyfd3a/MiAjXr1/n0qVLpKenk5iYSKNGjfIMjdRoSptcf50icsX88QUROZ95A14oGfNKhvPmXGx1GyWUriGack1iYiInTpzgwoULpKenU7duXXx8fLQT0JR5bBl4uheYnu3YP6wcK7dYHEGdaGJ/tS4WpdHkRlpaGjExMYSGhiIilsTk2RdAaTRllbzmCMZjvPnfoZQ6nKmoBrDT3oaVJBmOoE79vCeJnWpVLwFrNOUNBwcHEhMTcXJyon79+ri7u9t9ck+jKU7y6rOuBoYAP5j/zdg6ishTJWBbiWHpEdSPo0a/vta3u9rg6q0XGWgMEhMTuX7dCDVzcHCgXr16tGrViubNm5eaEyivMtTbt2+nVq1aFi2fd99912q7IkK/fv24deuW5dj333+PUorjx49nae/++7NObY4ePdoi5Jaamsqrr75Ky5Yt6dChA926dWPTpk253o+tzJo1Cy8vL7y9vdmyZYvVOtu2baNDhw74+/vTo0cPTp8+DRjRQX379rWs/9i40UjjUhZkqEVEwoAJQGymDaVUhQp/sPQIGhQsbFRTOfn9999p164dTz31lOVh6uzsTM2aNUvVrvIsQ50hZhccHMy///1vq3U2btxIu3btsnzPAQEB9OjRg4CAAJuv9dZbb3HlyhVCQkI4cOAA33//PbGxsUWyPzQ0lMDAQI4ePcrmzZt54YUXsuRNyGD8+PGsWrWK4OBgnnjiCWbONJR6Zs6cyfDhwzl48CCBgYG88IIxDVsWZKhXY0QM7ccIH80c+CzAHXa0q9hxkKMoFUNE8PkcZWeOPw00omGtq3Ci6G8GmorJrVu3eO211ywPUGdnZyIjIy2iahmcO1w0bfvc8PSrb3Pd8iZDbQurVq1i3Lhxlv24uDh27NhBUFAQQ4YM4Z133sm3jYSEBL788kvOnTtnsaVRo0YMHz680HaBIUM9YsQIqlatiqenJ15eXuzZs4du3bIuw1JKWXo0MTExNGnSJM/jUMoy1CJyv/lfTxG5w/xvxlaunACAUtmTrP3NxSvGG0b9OvkIy7k1yHHoesJ1kk3JKBSODpVjkUtlZNOmTbRt25YFCxbg5OTEjBkzOHDgQA4nUBYobzLUAH/99Rft2rXjH//4B0ePHrVaZ+fOnVns3LBhAwMHDqRVq1bUq1eP/fv353kPAKdPn8bDw8Om3tvLL79sVYY6s1BcBrbIUIMhbzFo0CDc3d1ZuXIlr776KgBvv/02X3/9Ne7u7gwaNIjPPvvMck6ZkKFWSnUHgkUkXin1FNABmCci9u2r2IkG/lm9amwsRN8CZ2cT1Wo2B+97bG4rOima4zeMsUnPWp44O+hcshUNEWHs2LEsWbIEMP5TLl26FF9f31zPKcibe3FSXmWoO3TowPnz56levTobN27koYce4tSpUznq3bhxgxqZcscGBAQwebKx3GnEiBEEBATQsWPHYpOhnjt3boHq29rmxo0b6dKlC7Nnz2bKlCksXryYgIAARo8ezdSpU/nrr78YOXIkISEhODg4lIgMtS0BzguBBKVUO2AqcAZDgbRCYJkfqJdEQX4n8anxhESFkC7pNKneBI+aHvYxUFOqZIjDubi48PHHH/PXX3/l6QRKk4w5gvPnzyMiljkCHx+fHG/L1mSoS4uaNWta8jEMGjSI1NRUq6kjnZycSE9PBwyn8Ouvv/Lcc8/RvHlzZs+ezTfffIOI5ClD7eXlRXh4eJYJ59woSI/AFhnqiIgIDh06RJcuXQDDMf75p5H1d8mSJZbhqW7dupGUlGT5DkpChtoWR5BmljB9EPhcROZjhJBWCDLmYOrWsz3fQLIpmcMRh0lLT6O+a31a1rb/EnBNyXH58uUsXfHXX3+dkJAQpk6dWi7CQqtVq8ann37KnDlzSEtL48knn2THjh388ssvgNFzmDRpkmXMedq0abz//vuWt/X09HT++9//5nkNb29vwsLCLFEvK1eupHfv3lnqdOnShd9++42oqChSU1NZu3at1bauXr1qmXTfs2cP6enp1KtXz+o1M1RR161bx8iRIzl//jxhYWFcuHABT09P/vjjD1q2bMnly5c5duwYAOfPn+fQoUP4+/tTrVo1xowZw+TJk0lJSQGMB7Q12+bOnWuZwM68ZQznZOaBBx4gMDCQ5ORkzp07x6lTp7jrrruy1KlTpw4xMTGW73nr1q0WYTgPDw+2bdsGGIJxSUlJlp7UyZMnadu2rdXvrriw5Vcdq5R6DRgJ9FRKOQDlbgzkcnh14hOqsuOLrDlRg/5oADS32RGkpadxOOIwyaZkalapSeu6rbWAWAVBRFi6dClTp06lSpUqHDt2jHr16lGlShVLMpHyQmYZ6pEjR7JhwwZefPFFJkyYgMlkYuTIkVZlqBMSElBK5Qi/zE5mGeqMyeK8ZKhr165tkWPOzrp161i4cCFOTk64uroSGBho9f/U4MGD2b59O15eXgQEBDB9etY1rcOGDSMgIIBevXrx9ddf88wzz5CUlISzszOLFy+mVq1agBGh8+abb+Lj44OLiwtubm65hqzaSps2bRg+fDg+Pj44OTkxf/58izDeoEGDWLx4MU2aNOHLL79k2LBhODg4UKdOHZYuXQrAnDlzGDt2LHPnzkUpxfLlyy3fQUnIUNuSjOY2YArQ07zvAYzK7zx7bYVNTNPR55AY8nLWt/uHnpbPA/7Isw1TukkOXjsoQeFBsuvyLklJSymULZqyx5kzZ6Rfv36CEREn999/vyWxiS3YmphGU3guX74s/fv3L20zSpSkpCTp0qWLpKamFui8giamsUWG+qpSahXQWSl1P7BHRHJmby7jNKoXiWfTcGo1yDmWX6sWtBuiMNXNOwLkxI0TRCdHU8WhCn4N/HB2LHcdI002TCYTn376KW+++SYJCQnUr1+fTz/9lBEjRuieXhmjcePGjB07llu3bpX6mo2SotRlqDNQSg0HZgPbMdYSfKaUmiYi6+xqWTEz9hFjwclDk760Wv7pz6l5nn82+izXEq7hoBzwbeCLq5Odc4hqSoRRo0axevVqAJ544gnmzZtXJkNCNQZFjfcvb5QFGeoM3gA6i8h1AKVUA+AXoFw5gqIQlRhFeGw4CkWbem2oUaXCzJVXesaOHcvvv//OggULGGItNZ1GUwmwxRE4ZDgBM1HYFm1UYYhNMZafN6nehHquOaMZNOWHvXv38uuvv1omGvv06cPp06eLtOJVoynv2OIINiultgAZYh6PARvtZ1LZRa8cLr8kJCQwY8YM/vOf/5Cens7dd99Nz549AbQT0FR6bJksnqaUehjoYT60SETW29csjab42L59O8899xxnzpzBwcGBV155JV9JBY2mMpHrEI9SqqVSaoNSKgR4FJgjIlO0E9CUF2JiYnj++efp27cvZ86cwdfXl127djF79myqVatW2uYVO+VVhhoMZ+3v70+bNm1yLEzLQCqwDHUG3377LUopy/dXFmSolwI/AsMwFEg/y6OuVZRSA5VSJ5RSp5VSOZfj/V1vmFJKlFKdCnoNjSY33nrrLRYtWoSzszPvvvsu+/bto3PnzqVtlt0orzLU0dHRvPDCC/zwww8cPXo01xXIFVmGGiA2NpZPPvnEIkEBZUOGuoaIZMRanlBKFSiHo1LKEZiPkeryIrBXKfWDiIRmq1cDmAzsLkj7Go01RMQS///vf/+bc+fO8cEHH9CmTZsSs+HMfvv8lFt07JJ/JTPlSYZ69erVPPzww3h4GGt8GjZsaPWeKrIMNRgOavr06cyePTvLOaUqQw24KKXaK6U6KKU6AK7Z9vPjLuC0iJwVkRQgEEOvKDv/B3wI2C72o9FkQ0RYvXo1/fr1s2jI1K9fn//9738l6gTKAuVNhvrkyZPcvHmTPn360LFjR1assL5etSLLUB84cIALFy5YlZIobRnqK8B/Mu1fzbQvQL982m4KXMi0fxHI8kpjdii3i8hPSqlpuTWklBoHjAMsbw0aTQYXL15k/Pjx/Pjjj4Dx5vjMM8+Umj0FeXMvTsqrDHVaWhr79+9n27ZtJCYm0q1bN7p27WppO4OKKkO9aNEipkyZwvLly62eUxIy1Lk6AhHpa88Lm8Xr/gOMzq+uiCwCFgF06tRJ8qmuqSSkp6fz5ZdfMm3aNGJjY6lVqxZz5swpkcm1skjGHEFCQgIDBgxg/vz5TJo0CR8fH37//fcsda3JULdr165U7HZ3d6devXq4ubnh5uZGr169OHToUA5HkCFD7eDgYJGhPnLkCEopTCYTSilmz55tswx1fr2Cl19+maCgoBzHR4wYkUOBtLAy1AMHDiQ2NpaQkBD69OkDGGqsDzzwAD/88AOdOnUqERlqu4nDAd2ALZn2XwNey7RfC4gEwsxbEnAZ6JRXu4UVnVv/yXOy/pPnci3/ZMtx+WTLcatl56LPSVB4kJyJPlOoa2uKn1OnTkmfPn0sInEPPvigXLp0qdTsKQuic25ubpbPBw4cEA8PD0lNTZWEhATx9PSUrVu3iohIQkKCDB48WD799FMRETl06JC0aNFCTpw4ISIiJpNJFi5cmKP9oKAgGTx4sIiIJCYmyu233y6nTp0SEZGnn35a5s2bJyIivXv3lr1798rly5fFw8NDIiMjJSUlRXr06CETJkzI0W5oaKj069dPUlNTJT4+Xtq0aSNHjhzJUa9Lly6W633xxRcybty4LOW9evWS3377TZKSkqR58+aWv0lYWJh4eHhIdHS0iIhMmzZNRo8eLcnJySIicv36dfnmm29s+o5zIyQkRPz8/CQpKUnOnj0rnp6ekpaWlqVOamqq1KtXz/I9L168WB5++OEcbWV8fxmsW7dOnn/++QLZU1DROXuuEN4LtFRKeSqlqgAjgB8yOaAYEakvIs1FpDmwC3hARHLGnWk02fjjjz/Yvn07DRs25JtvvmH9+vVZJt4qO5llqF1dXdmwYQMzZ87E29sbX19fOnfubFWGunXr1rRt29ai+58bmWWofX19cXBwyFOGunv37hbt/ey0bt2agQMH4ufnx1133cVzzz1nVX8/Q4YajGGhoUOHZinPkKGuWrWqRYba39+fRx55JIcMdYMGDfDx8aFt27bcf//9RRaxyyxDPXDgwBwy1JcvX8bJyckiQ92uXTtWrlyZY2LYGmVChrooGzAIOImR1ewN87F3MR742etuJ5/egOgeQaXm5s2bls/p6eny4YcfSmRkZOkZlImy0COo6GgZatsp9h6BMnhKKfVv876HUuqu/M4zO5mNItJKRFqIyHvmY/8WkR+s1O0jujegsUJycjIzZsygWbNmlly2Sin+9a9/Wc1kpamYZJahriyUGRlqYAGQjhEl9C4QC3wLlKuVOY7pVXDEkcTQqNI2RVMAdu3axZgxYyyhh1u2bCkRWV5N2UTLUNsHW+YIuojIBMxx/iJyE6hiV6vsgCP5C8alV6lUoqplmvj4eKZMmcLdd99NaGgoLVu25Pfff89VokCj0RQeW3oEqeZVwgKWfATpdrXKjrj6WB9KSEqOK2FLNLmxe/dunnjiCc6ePYujoyOvvPIKM2bMsH8InUZTSbHFEXwKrAcaKqXeAx4B3rSrVXbgTLUGxDq54BQZU9qmaPKhdu3aXLp0iXbt2rFkyRKtFKrR2BlbZKhXKaX2A/dgpKp8SESO2d2yYibWySXfOjUd9NBQabFjxw66d++OUgpvb29+/fVXOnfujLOzzgut0dgbW6KGPIAE4H8Y6wDizcfKJffVr2V161DVBS/ncjf1Ue65fv06I0aMoGfPnqxcudJy/O6779ZOoICUVxnq2bNnW3R82rZti6OjIzdu3MhRTyqwDHV4eDh9+/a1rP/YuNHI/VUWZKgz+AlDjvonYBtwFij6t6ap1IgIX3/9Na1bt2bNmjVUq1bNIhanKRzlVYZ62rRpBAcHExwczKxZs+jduzd169bNUa8iy1DPnDmT4cOHc/DgQQIDA3nhhReAsiFDDYCI+GbeNwvFvWA3izQVnvDwcP75z39a3sLuvfdeFi1aRPPmzUvXsGLCXiHKuQU6WKM8yVBnJiAggMcff9xqWUWWoc5Lnrq0ZaitIiIHyKYiqtHYyu7du2nTpg2bNm2idu3aLFu2jC1btlQYJ1AWKG8y1BkkJCSwefNmhg0bZrW8IstQv/3223z99de4u7szaNAgPvvs7zxgpS1DDYBSakqmXQegA4Y4nEZTYPz9/bn99tu58847mT9/Po0bNy5tk4qdgry5FyflVYY6g//97390797d6rAQVFwZ6sWLFxMQEMDo0aOZOnUqf/31FyNHjiQkJAQHB4fSlaHORI1Mn9Mw5gq+tY85mopGWloan3/+OaNGjaJu3bpUrVqVnTt3UqdOndI2rcJRXmWoMwgMDMx1WAgqrgw1wJIlS9i8eTNgDOslJSURGRlJw4YNS1+GGnAEPs6rTklvhRWde2/Jh/J/Sz6Um4k3rW7fHzoh3x86YbXsWNQxLTpXCIKDg6VDhw4CyNNPP13a5tiVsiA6V15lqEVEoqOjpU6dOhIXF5fr/VVkGeqBAwfKsmXLRMT4LTVu3FjS09NFpGRkqHPtESilnEQkTSnV3b6uqGRIE0EkneCIYKvl5+KiAagVkXsXTFGwrmVlJSkpiZkzZ/Lhhx+SlpaGh4dHnm96muInswz1yJEj2bBhAy+++CITJkzAZDIxcuRIqzLUCQkJKKVyhF9mJ7MMdcZkcV4y1LVr18bf3z/X9tavX899992Hm5tbrnUyZKi9vLwICAhg+vTpWcozZKh79eplkaFOSkrC2dk5hwz1m2++iY+PDy4uLri5ufHuu+/meb/5kVmG2snJKYcM9eLFi2nSpIlFhtrBwYE6deqwdOlSAObMmcPYsWOZO3cuSimWL19uGcoqCRlqJWI94ZdS6oCIdFBKLcRIO7kWiM8oF5Hv7GpZLnTq1EmsxSjnx7tLPkBEGHR/f5wdcsan7z1nxC139rQ+PumgHPCq7UU152oFvnZl4s8//2TMmDEcP34cpRQTJkzg/fffzzK2WxE5duxYrnr7muLhypUrjBo1iq1bt5a2KSVGcnIyvXv3ZseOHQVSILX2e1RK7ReRTtbq29KyCxCFoT4qGKuLBSgVR1BUPGt5Ut+1fo7jkZHXAPBv2KikTaownD59mp49e5Keno63tzdLliyhe/cK0aHUlAEyy1AXNZFMeaEsyFA3NEcMhfC3A8hA5w3W5MDLy4tx48ZRt25d3nrrLVxc8pf10GgKgpahtg95OQJHoDpYHRjXjkDDzZs3mTp1Ks888ww9e/YEYMGCBQUO09NoNKVLXo7giogUbQZFU2H57rvvmDBhAlevXmX//v0EBwejlNJOQKMph+S1slj/j9bk4OrVqzzyyCMMGzaMq1ev0qNHD7755hvtADSackxejuCeErNCU+YREb766it8fHz49ttvqV69OvPnz+e3337D29u7tM3TaDRFIFdHICI5dWA1lZbo6GimTp3KzZs3GThwICEhIbzwwgs46BwOZYbyKkMdExPDkCFDaNeuHW3atGHZsmVW201MTKR3795ZVD3nzZuHi4sLMTF/J5yydp3MNsXFxfH888/TokULOnbsSJ8+fdi9e3eu92MLIsKkSZPw8vLCz8+PAwcOWK0XEBCAr68vfn5+DBw4kMjIyCzlc+bMQSllOf7jjz/y73//u0i22YL+X6zJlfT0dNLS0gCoU6cOX3zxBStWrGDjxo00a9aslK3TZKe8ylDPnz8fHx8fDh06xPbt25k6dapVSfKlS5fy8MMPWxZqgfFg7dy5M999Z3s0+3PPPUfdunU5deoU+/fvZ9myZTkeyAVl06ZNnDp1ilOnTrFo0aIc6q1gyK1MnjyZoKAgDh8+jJ+fH59//rml/MKFC/z88894ePyd7mXw4MH873//IyEhoUj25Yd9g1M15Zbjx4/z3HPPMXDgQN5808hMmpsqpCYrJ06csEu7BRmCK08y1EopYmNjERHi4uKoW7eu1bj5VatWsXr1asv+mTNniIuLY8GCBbz33ns888wz+X4vZ86cYffu3axatcrSm/X09MTT0zPfc/Niw4YNjBo1CqUUXbt2JTo6mitXrmQRVcyQc4iPj6devXrcunUri8N9+eWX+eijj3jwwQctx5RS9OnThx9//NGuobO6R6DJQmpqKu+//z7t2rVj586dLFmyhKSkpNI2S1MAypsM9cSJEzl27BhNmjTB19eXTz75JMeQY0pKCmfPns0iVx4YGGjJbnfixAmuXbuW73dz9OhR/P39s/QqcuOxxx6zKkO9YsWKHHVtkaF2dnZm4cKF+Pr60qRJE0JDQxkzZgxgOJKmTZtaFf4rEzLUmsrDwYMHefbZZwkODgZgzJgxzJ49Wy8MKyClNXleXmWot2zZgr+/P7/++itnzpzh3nvvpWfPnllWD0dGRlK7du0s5wUEBLB+/XocHBwYNmwYa9euZeLEicUmQ53XPEhhSE1NZeHChRw8eJA77riDF198kVmzZjFlyhTef/99fv75Z6vnlYQMte4RaEhNTeX111+nc+fOBAcH07x5c7Zu3crixYu1XHQ5ImOO4Pz584iIZY7Ax8cnR9IWazLUpcWyZct4+OGHUUrh5eWFp6dnlhzEYNxb5p7pkSNHOHXqFPfeey/NmzcnMDDQkq4yLxnqNm3acOjQIatpJLNTkB6BLTLUGS9YLVq0QCnF8OHD+fPPPzlz5gznzp2jXbt2NG/enIsXL9KhQweuXr0KUCIy1NoRaHBycmL37t2kp6czefJkjhw5Qv/+/UvbLE0hqVatGp9++ilz5swhLS2NJ598kh07dvDLL78ARs9h0qRJltSH06ZN4/3337e8raenp/Pf//43z2t4e3sTFhZmSb6+cuVKevfunaVOly5d+O2334iKiiI1NZW1a9dabcvDw4Nt27YBcO3aNU6cOMEdd9yRpU6dOnUwmUwWZxAQEMDbb79NWFgYYWFhXL58mcuXL3P+/Hk6d+7Mzp07LQ/Sffv2kZyczO23306LFi3o1KkTM2bMsERNhYWF8dNPP+Wwa82aNZZcypm3UaNG5aj7wAMPsGLFCkSEXbt2UatWrRxJl5o2bUpoaCgREREAbN26ldatW+Pr68v169ct9+Lu7s6BAwe47bbbADh58iRt27bN469RdPTQUCUlNjaW2NhYmjRpglKKxYsXc/Xq1Rw5VjXlk/IkQ/3WW28xevRofH19ERE+/PBD6tfPKQx53333sWPHDvr3709gYCAbN27MUj506FACAwOZPn06n3zyCYMGDSI9PZ3q1asTEBBgmXdYvHgxU6dOxcvLC1dXV+rXr8/s2bNt/WqtMmjQIDZu3IiXlxfVqlXLEgLr7+9PcHAwTZo0YcaMGfTq1QtnZ2eaNWvG8uXL8207KCiIWbNmFcm+/MhVhrqsUlQZ6glPjrWqPvpLqDHR1N+n4quPbtmyhXHjxnHHHXfw66+/6lXBxYCWobY/Bw4cYO7cuaxcubK0TSkxrl27xhNPPGHpMdmKPWSoKwTpAqZ0+ONkJDWc8x8frIhERUUxZcoUyxhngwYNiIqKsvr2pdGUNTp06EDfvn0xmUw2Rf1UBMLDw5kzZ47dr2PXOQKl1ECl1Aml1Gml1KtWyqcopUKVUoeVUtuUUnZbpWRLz6de9Sr2unypIiKsW7cOHx8fVqxYgYuLCx999BG7du3STkBTrnj22WcrjRMA6Ny5c56Z3YoLu/UIlFKOwHzgXuAisFcp9YOIZA4mPgh0EpEEpdR44COg+JYsWqFnq/pWh4YqKiLCk08+aYmo6NWrF19++aUl7E+j0Wjs2SO4CzgtImdFJAUIBB7MXEFEgkQkY+30LsDdjvZUSpRS+Pj4UKNGDRYuXEhQUJB2AhqNJgv2dARNgQuZ9i+aj+XGGGCTtQKl1Dil1D6l1L6M0CtN7pw7dy7L5NL06dMJDQ3ln//8pxaJ02g0OSgTTwWl1FNAJ8BqDJeILBKRTiLSKWOVoiYnJpOJTz75hLZt2/LYY49x/fp1wFja7u6uO1sajcY69nQEl4DbM+27m49lQSnVH3gDeEBEku1oT4UmNDSUnj178tJLL5GQkMC9996r3/4rGeVVhvrmzZsMHToUPz8/7rrrLkJCQqy2KyL069ePW7duWY59//33KKWyrETevn17jnUQo0ePZt26dYCxkv7VV1+lZcuWdOjQgW7durFpk9XBiAIxa9YsvLy88Pb2ZsuWLVbrbNu2jQ4dOuDv70+PHj0sC/LCw8Pp27evZf1HxhqJI0eOMHr06CLblh/2fFLsBVoqpTyVUlWAEcAPmSsopdoDX2A4get2tKXCkpqaysyZM2nfvj1//fUXTZo0YcOGDQQEBOiIoEpGeZWhfv/99/H39+fw4cOsWLGCyZMnW623ceNG2rVrl0WDKCAggB49eliCIWzhrbfe4sqVK4SEhHDgwAG+//57YmNji3QPoaGhBAYGcvToUTZv3swLL7xgVcZi/PjxrFq1iuDgYJ544glmzpwJwMyZMxk+fDgHDx4kMDCQF154AQBfX18uXrxIeHh4kezLD7tFDYlImlJqIrAFcASWishRpdS7wD4R+QFjKKg6sNa8qClcRB6wl00VkSeeeMLypjN27Fhmz55NrVq1Stmqyk1EZMEW/9hKg/q2Jw0sTzLUoaGhvPqqEV1+5513EhYWxrVr12jUKOvizlWrVjFu3DjLflxcHDt27CAoKIghQ4bwzjvv5Pu9JCQk8OWXX3Lu3DmLLY0aNSqyxPOGDRsYMWIEVatWxdPTEy8vL/bs2ZNjpb5SytKjiYmJoUmTJnkeBxgyZAiBgYEWSRB7YNexAxHZKCKtRKSFiLxnPvZvsxNARPqLSCMR8Tdv2gkUkMmTJ+Pl5cW2bdtYtGiRdgKacidD3a5dO0timT179nD+/HkuXryYo97OnTuz2LlhwwYGDhxIq1atqFevnk3CeadPn8bDwyNLryI3Xn75Zauicx988EGOurbIUIMhbzFo0CDc3d1ZuXKlxQG+/fbbfP3117i7uzNo0CA+++wzyzlahlqTg99++43t27czY8YMAHr06MGxY8esJvLQlA4FeXMvTsqrDPWrr77K5MmT8ff3x9fXl/bt21tdNHbjxg1q1Khh2Q8ICLAMI40YMYKAgAA6duxYbDLUc+fOLVB9W9vcuHEjXbp0Yfbs2UyZMoXFixcTEBDA6NGjmTp1Kn/99RcjR44kJCQEBweHEpGh1k+PcsKtW7eYPn26RRWyb9++9OrVC0A7AQ3w9xxBQkICAwYMYP78+UyaNAkfHx9+//33LHWtyVBbS4pSEtSsWdMi0iYieHp65lAfBeN3np6ejoODAzdu3ODXX3/lyJEjKKUwmUwopZg9e3aeMtReXl6Eh4dz69atfHsFL7/8MkFBQTmOjxgxwvImn4EtMtQREREcOnSILl26AIZjHDhwIABLlixh8+bNgDGsl5SURGRkJA0bNtQy1BqDjRs30qZNG/773//i7OzM22+/TdeuXUvbLE0ZpbzJUEdHR1tyFC9evJhevXpZfUh7e3tz9uxZANatW8fIkSM5f/48YWFhXLhwAU9PT/744w9atmzJ5cuXOXbsGADnz5/n0KFD+Pv7U61aNcaMGcPkyZMt14yIiLBq29y5c63KUGd3AmDIUAcGBpKcnMy5c+c4deoUd911V5Y6derUISYmxvI9Z8hQQ1Yp7mPHjpGUlGTpSZWEDLV2BGWYyMhInnrqKQYPHszFixe56667OHDgADNmzKBKlYqpi6QpHjLLULu6urJhwwZmzpyJt7c3vr6+dO7c2aoMdevWrWnbtq3lgZsbmWWofX19cXBwyFOGunv37rmqsx47doy2bdvi7e3Npk2b+OSTT6zWGzx4MNu3bweMYaGhQ4dmKR82bBgBAQFUrVqVr7/+mmeeeQZ/f38eeeQRFi9ebJk/mzlzJg0aNMDHx4e2bdty//332zRnkBdt2rRh+PDh+Pj4MHDgQObPn28Z3ho0aBCXL1/GycmJL7/8kmHDhtGuXTtWrlxpkb+eM2cOX375Je3atePxxx9n+fLllqGsoKAgBg8eXCT78iUjoXJ52Tp27CiF4d+L3pc3v3hfIhIiCnV+afDiiy8KIK6urjJnzhxJS0srbZM0uRAaGlraJlR4Ll++LP379y9tM0qUpKQk6dKli6SmphboPGu/R4xoTavPVT24XMYQEcubwDvvvMO1a9d4//33adGiRSlbptGULo0bN2bs2LE2je9XFMLDw/nggw/sPg+oh4bKCCLCl19+yd13321Jx1enTh3WrFmjnYBGY2b48OGVxgkAtGzZkj59+tj9OtoRlAHOnDnDPffcw7hx49i1axfffPNNaZuk0WgqEdoRlCImk4n//Oc/+Pr6EhQURIMGDQgMDGTkyJGlbZpGo6lE6DmCUuLo0aM8++yz7NmzB4Ann3ySefPmaX0gjUZT4mhHUEocPHiQPXv20LRpU7744gv7h4dpNBpNLuihoRIkc1KdJ598ks8++4yjR49qJ6ApFsqrDPXx48fp1q0bVatW5eOPP85StnnzZry9vfHy8rKq8ZPBSy+9lGX1dGRkJM7OzjkWxlWvXj1Pm1asWEHbtm0tUhfZ7SkMttxDbjLUW7dupWPHjvj6+tKxY0d+/fVXyzn9+/fPsYK6sGhHUAIkJCTwyiuv0Lx5c8tqR6UUEydO1CJxmmKjvMpQ161bl08//ZRXXnkly3GTycSECRPYtGkToaGhBAQEWBWui4qKYteuXRbJFYC1a9fStWvXAslTb9q0iXnz5vHzzz9z5MgRdu3aVeT/n7beQ24y1PXr1+d///sfR44c4auvvsoyfzhy5EjL37Co6KEhOxMUFMTYsWM5c+YMDg4O/P7777musNRUDH6OjLFLu/fVt/2hVJ5kqBs2bEjDhg356aefshzfs2cPXl5eFt2hESNGsGHDBnx8fLLU+/bbby2aPRkEBAQwZ84cnnjiCS5evGhThr5Zs2bx8ccfWySgq1atytixY/M9Ly9svYfcZKjbt29vqdOmTRsSExNJTk6matWqPPDAA/Ts2ZM33nijSDaC7hHYjZiYGJ5//nn69evHmTNn8PX1Zffu3Tz//POlbZqmglPeZKhzw1Zp5+zy1BcuXODKlSvcddddDB8+PM9hrMzY8j2AkRfBmjz1I488Uuh7yEuGOoNvv/2WDh06WJxpnTp1SE5OJioqyqb7ywvdI7ADO3bsYMSIEVy6dAlnZ2feeustpk+frvWBKgkFeXMvTsqrDHVRuXLlCplzma9Zs8aSaGbEiBE8++yzVuc8MiioPPWTTz7Jk08+WThjcyEvGWownPn06dP5+eefs5yXIVFdr169Il1f9wjswG233UZUVBRdu3bl4MGDvPXWW9oJaOxOxhzB+fPnERHLHIGPj0+OpC3WZKjLGrZIO4Nx3xmr8cF4qC5fvpzmzZvzwAMPcPjwYU6dOmWpm6E6Cn/LUwM2fw8F6RHYeg9LliyxOK/MMtQZ5wwdOpQVK1bkUBkoLolq7QiKARHh559/tkRheHl5sWPHDnbs2EGbNm1K2TpNZaO8yVDnRufOnTl16hTnzp0jJSWFwMBAy3BXZlq3bm2x4+TJk8TFxXHp0iXCwsIICwvjtddes0wa9+7dm6+//tryPXzzzTf07dsXgNdee41p06Zx9epVAFJSUli8eHGO6z355JNW5akzUsYW5h5yk6GOjo5m8ODBfPDBB3Tv3j3LOSLC1atXad68ua1faa5oR1BELly4wJAhQxgwYIAluQZAx44drWZZ0mhKgvIkQ3316lXc3d35z3/+w8yZM3F3d+fWrVs4OTnx+eefM2DAAFq3bs3w4cOtvljZKk8N8Mknn/Ddd9/h7+9P165defTRRy3RRoMGDWLixIn079+fNm3a0KFDB8sEbmHJ6x7+/e9/88MPPwC5y1B//vnnnD59mnfffdfS87h+/ToA+/fvp2vXrsUjSJebLGlZ3cqKDLXJZJL//ve/UqNGDQGkVq1a8vXXXxdL25ryh5ahLl26d+8uN2/eLG0zSpRJkybJL7/8YrVMy1CXAKdOnWLs2LH89ttvADz00EPMnz/fEvKl0WhKljlz5hAeHk7t2rVL25QSo23bttxzT/Hkx9aOoID8+eef3HPPPSQlJdGwYUM+//xzHnnkkQJHHmg0muIjIw9wZaKoaxwyox1BAenUqRMtW7akffv2/Oc//yly2JZGo9GUNtoR5ENycjIff/wxzz//PPXr16dKlSrs3LmTGjVqlLZpGo1GUyxoR5AHu3btYsyYMYSGhnLs2DFL2Jl2AhqNpiKhw0etEB8fz8svv8zdd99NaGgorVq10tIQGo2mwqIdQTa2bduGr68v8+bNw8HBgVdffZVDhw7Rs2fP0jZNo8kTpRRPPfWUZT8tLY0GDRpw//332/W6o0ePxtPTE39/f9q1a2dZGAXGoqyXXnoJLy8vWrZsyYMPPsjFixct5VevXmXEiBG0aNGCjh07MmjQIKsyFImJifTu3RuTyWQ5Nm/ePFxcXIiJ+Vvkz5rUdWZZ7Li4OJ5//nnL9fr06cPu3buLdP8iwqRJk/Dy8sLPz48DBw5YrRcQEICvry9+fn4MHDjQsnL47bffpmnTppZ1AhkS1JmJiIjIIaxXnGhHkImTJ09y7733cu7cOfz9/dmzZw+zZs3CxcWltE3TaPLFzc2NkJAQEhMTAUPL3pqcgT2YPXs2wcHBzJs3L8vCstdff53Y2FhOnDjBqVOneOihh3j44Yct8etDhw6lT58+nDlzhv379zNr1iyuXbuWo/2lS5fy8MMPZ1mkGRAQQOfOnfnuu+9stvO5556jbt26nDp1iv3797Ns2TLLA7mwbNq0iVOnTnHq1CkWLVqUQ7kVDKc8efJkgoKCOHz4MH5+fnz++eeW8pdfftmyQnnQoEE5zm/QoAGNGzdm586dRbI1N7QjyESrVq2YPHky7733Hnv27KFDhw6lbZKmHKKUfTZbGDRokEXOOSAggMcff9xSFh8fz7PPPstdd91F+/bt2bBhAwBhYWH07NmTDh060KFDB/78808Atm/fTp8+fXjkkUe48847efLJJ7Mks7FGt27dLOqaCQkJLFu2jLlz51oe4M888wxVq1bl119/JSgoCGdn5yyOo127dlZ736tWreLBBx+07J85c4a4uDhmzpxpc86BM2fOsHv3bmbOnGkRc/P09CxyYqgNGzYwatQolFJ07dqV6Ohorly5kqVOhuOLj49HRLh161aB1x099NBDrFq1qki25kaldgTXrl3jscceIygoyHJs7ty5vP766zg7O5eiZRpN4RgxYgSBgYEkJSVx+PDhLPH17733Hv369WPPnj0EBQUxbdo04uPjadiwIVu3buXAgQOsWbOGSZMmWc45ePAg8+bNIzQ0lLNnz+b7Rrp582YeeughAE6fPo2Hhwc1a9bMUqdTp04cPXrUZtnnlJQUzp49m0VTJzAwkBEjRtCzZ09OnDhhtReRnaNHj+Lv72+T9Mtjjz1mVVhuxYoVOeraIjXt7OzMwoUL8fX1pUmTJoSGhjJmzBhL+eeff46fnx/PPvtsrlnHOnXqxB9//JGv7YWhUjoCEWHlypX4+PjwzTff8PLLL+f7pqPR2IqIfTZb8PPzIywsjICAgBxDDD///DMffPAB/v7+9OnTh6SkJMLDw0lNTWXs2LH4+vry6KOPZskbcNddd+Hu7o6DgwP+/v6EhYVZve60adNo1aoVTzzxBNOnTy/sV2eVyMjIHCuGAwICGDFiBA4ODgwbNswiaJfbws6CLvhcs2aNVWG5UaNGFeoeUlNTWbhwIQcPHuTy5cv4+fkxa9YsAMaPH8+ZM2cIDg6mcePGuUpmZ0hO2wO7ho8qpQYCnwCOwGIR+SBbeVVgBdARiAIeE5Ewe9p08cJFRr00ik2bNgFw33338cUXX+iVwZoKwwMPPMArr7zC9u3bsyQtERG+/fZbvL29s9R/++23adSoEYcOHSI9PT3LnFjmjGKOjo6kpaVZvebs2bN55JFH+Oyzz3j22WfZv38/LVq0IDw8nNjY2Cwh1/v377dMYFtT7MxOdpnpI0eOcOrUKUu+hZSUFDw9PZk4cSL16tXL8UadITVdu3ZtDh06hMlkyrdX8Nhjj3HixIkcx6dMmZLDGdgiNR0cHAxgkZEePny4JX9xo0aNLPXGjh2b6+R+cUlOW8NuPQKllCMwH/gH4AM8rpTyyVZtDHBTRLyAucCH9rJH0tPZt30XPTr2YNOmTdSpU4fly5ezefPmYpFx1WjKCs8++ywzZszA19c3y/EBAwbw2WefWXq/GTmIY2JiaNy4MQ4ODqxcuTJLZE5BmThxIunp6WzZsgU3NzeefvpppkyZYmlzxYoVJCQk0K9fP/r160dycjKLFi2ynH/48OEcwx916tTBZDJZnEFAQABvv/22RWb68uXLXL58mfPnz9O5c2d27txpkZLet28fycnJ3H777bRo0YJOnToxY8YMy3cQFhaWI0UmFKxH8MADD7BixQpExJLnuHHjxlnqNG3alNDQUCIiIgBjIj9DjTXzfML69etp27at1e/25MmTuZYVFXsODd0FnBaRsyKSAgQCD2ar8yDwlfnzOuAeZadX86TEZP74cRvxcfEMGzaM0NBQnn76ad0T0FQ43N3ds4zzZ/DWW2+RmpqKn58fbdq04a233gLghRde4KuvvqJdu3YcP34cNze3Ql9bKcWbb77JRx99BGCJumvVqhUtW7Zk7dq1rF+/HqUUSinWr1/PL7/8QosWLWjTpg2vvfYat912W45277vvPnbs2AEY8wPZpaaHDh1KYGAgjRo14pNPPmHQoEH4+/vz0ksvERAQYJkcXrx4MdeuXcPLy4u2bdsyevRoGjZsWOj7BWOC/o477sDLy4uxY8dmSSjv7+8PQJMmTZgxYwa9evXCz8+P4OBgXn/9dQD+9a9/WcJKg4KCmDt3rtXrBAUFFXliOzeUvcbGlVKPAANF5Dnz/kigi4hMzFQnxFznonn/jLlOZLa2xgHjADw8PDqeP3++wPbM+PIDjgeH8o8e/Rj9+OhC3pVGY51jx47lqrevKToHDhxg7ty5rFy5srRNKTV69erFhg0bqFOnTr51rf0elVL7RaSTtfrlQmJCRBYBiwA6depUKM/1zthXi9UmjUZTcnTo0IG+ffvaNL5fEYmIiGDKlCk2OYHCYM+hoUvA7Zn23c3HrNZRSjkBtTAmjTUajSYLzz77bKV0AmAsKMsIy7UH9nQEe4GWSilPpVQVYATwQ7Y6PwBPmz8/AvwqOo5TU07RP11NWaAwv0O7OQIRSQMmAluAY8A3InJUKfWuUioje/MSoJ5S6jQwBdDjN5pyiYuLC1FRUdoZaEoVESEqKqrAsjh2myy2F506dZIMASmNpqyQmprKxYsXs8S7azSlgYuLC+7u7jnUEcr9ZLFGU9ZxdnbG09OztM3QaApFpZSY0Gg0Gs3faEeg0Wg0lRztCDQajaaSU+4mi5VSEUDBlxYb1AeKloWi/KHvuXKg77lyUJR7biYiDawVlDtHUBSUUvtymzWvqOh7rhzoe64c2Oue9dCQRqPRVHK0I9BoNJpKTmVzBIvyr1Lh0PdcOdD3XDmwyz1XqjkCjUaj0eSksvUINBqNRpMN7Qg0Go2mklMhHYFSaqBS6oRS6rRSKoeiqVKqqlJqjbl8t1KqeSmYWazYcM9TlFKhSqnDSqltSqlmpWFncZLfPWeqN0wpJUqpch9qaMs9K6WGm//WR5VSq0vaxuLGht+2h1IqSCl10Pz7HlQadhYXSqmlSqnr5gyO1sqVUupT8/dxWCnVocgXFZEKtQGOwBngDqAKcAjwyVbnBeC/5s8jgDWlbXcJ3HNfoJr58/jKcM/mejWA34FdQKfStrsE/s4tgYNAHfN+w9K2uwTueREw3vzZBwgrbbuLeM+9gA5ASC7lg4BNgAK6AruLes2K2CO4CzgtImdFJAUIBB7MVudB4Cvz53XAPap8Z7HP955FJEhEEsy7uzAyxpVnbPk7A/wf8CFQEfShbbnnscB8EbkJICLXS9jG4saWexagpvlzLeByCdpX7IjI78CNPKo8CKwQg11AbaVU46JcsyI6gqbAhUz7F83HrNYRI4FODFCvRKyzD7bcc2bGYLxRlGfyvWdzl/l2EfmpJA2zI7b8nVsBrZRSO5VSu5RSA0vMOvtgyz2/DTyllLoIbAReLBnTSo2C/n/PF52PoJKhlHoK6AT0Lm1b7IlSygH4DzC6lE0paZwwhof6YPT6fldK+YpIdGkaZWceB5aLyBylVDdgpVKqrYikl7Zh5YWK2CO4BNyead/dfMxqHaWUE0Z3MqpErLMPttwzSqn+wBvAAyKSXEK22Yv87rkG0BbYrpQKwxhL/aGcTxjb8ne+CPwgIqkicg44ieEYyiu23PMY4BsAEfkLcMEQZ6uo2PT/vSBUREewF2iplPJUSlXBmAz+IVudH4CnzZ8fAX4V8yxMOSXfe1ZKtQe+wHAC5X3cGPK5ZxGJEZH6ItJcRJpjzIs8ICLlOc+pLb/t7zF6Ayil6mMMFZ0tQRuLG1vuORy4B0Ap1RrDEUSUqJUlyw/AKHP0UFcgRkSuFKXBCjc0JCJpSqmJwBaMiIOlInJUKfUusE9EfgCWYHQfT2NMyowoPYuLjo33PBuoDqw1z4uHi8gDpWZ0EbHxnisUNt7zFuA+pVQoYAKmiUi57e3aeM9TgS+VUi9jTByPLs8vdkqpAAxnXt887zEDcAYQkf9izIMMAk4DCcAzRb5mOf6+NBqNRlMMVMShIY1Go9EUAO0INBqNppKjHYFGo9FUcrQj0Gg0mkqOdgQajUZTydGOQFMmUUqZlFLBmbbmedSNK4brLVdKnTNf64B5hWpB21islPIxf349W9mfRbXR3E7G9xKilPqfUqp2PvX9y7sap8b+6PBRTZlEKRUnItWLu24ebSwHfhSRdUqp+4CPRcSvCO0V2ab82lVKfQWcFJH38qg/GkN1dWJx26KpOOgegaZcoJSqbs6jcEApdUQplUNpVCnVWCn1e6Y35p7m4/cppf4yn7tWKZXfA/p3wMt87hRzWyFKqZfMx9yUUj8ppQ6Zjz9mPr5dKdVJKfUB4Gq2Y5W5LM78b6BSanAmm5crpR5RSjkqpWYrpfaaNeaft+Fr+Quz2JhS6i7zPR5USv2plPI2r8R9F3jMbMtjZtuXKqX2mOtaU2zVVDZKW3tbb3qztmGsig02b+sxVsHXNJfVx1hVmdGjjTP/OxV4w/zZEUNvqD7Gg93NfHw68G8r11sOPGL+/CiwG+gIHAHcMFZlHwXaA8OALzOdW8v873bMOQ8ybMpUJ8PGocBX5s9VMFQkXYFxwJvm41WBfYCnFTvjMt3fWmCgeb8m4GT+3B/41vx5NPB5pvPfB54yf66NoUXkVtp/b72V7lbhJCY0FYZEEfHP2FFKOQPvK6V6AekYb8KNgKuZztkLLDXX/V5EgpVSvTGSlew0S2tUwXiTtsZspdSbGDo1YzD0a9aLSLzZhu+AnsBmYI5S6kOM4aQ/CnBfm4BPlFJVgYHA7yKSaB6O8lNKPWKuVwtDLO5ctvNdlVLB5vs/BmzNVP8rpVRLDJkF51yufx/wgFLqFfO+C+BhbktTSdGOQFNeeBJoAHQUkVRlKIq6ZK4gIr+bHcVgYLlS6j/ATWCriDxuwzWmici6jB2l1D3WKonISWXkOhgEzFRKbRORd225CRFJUkptBwYAj2EkWgEj29SLIrIlnyYSRcRfKVUNQ39nAvApRgKeIBEZap5Y357L+QoYJiInbLFXUznQcwSa8kIt4LrZCfQFcuRcVkYe5msi8iWwGCPd3y6gu1IqY8zfTSnVysZr/gE8pJSqppRywxjW+UMp1QRIEJGvMcT8rOWMTTX3TKyxBkMoLKN3AcZDfXzGOUqpVuZrWkWMbHOTgKnqbyn1DCni0ZmqxmIMkWWwBXhRmbtHylCl1VRytCPQlBdWAZ2UUkeAUcBxK3X6AIeUUgcx3rY/EZEIjAdjgFLqMMaw0J22XFBEDmDMHezBmDNYLCIHAV9gj3mIZgYw08rpi4DDGZPF2fgZIzHQL2KkXwTDcYUCB5SRtPwL8umxm205jJGY5SNglvneM58XBPhkTBZj9ByczbYdNe9rKjk6fFSj0WgqObpHoNFoNJUc7Qg0Go2mkqMdgUaj0VRytCPQaDSaSo52BBqNRlPJ0Y5Ao9FoKjnaEWg0Gk0l5/8BGqe1w5JYJKAAAAAASUVORK5CYII=\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# train\n", | |
"model.fit(X_train, y_train)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "aHMZWq68OgBa", | |
"outputId": "28d4d73f-4bd1-4989-fb98-c20c54ff3fea" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"GradientBoostingClassifier(learning_rate=0.01, max_depth=7, max_features=6,\n", | |
" min_samples_split=10, n_estimators=750,\n", | |
" subsample=0.85)" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 33 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"mask = np.isnan(X_test) | ~np.isfinite(X_test)\n", | |
"\n", | |
"X_test[mask] = 0" | |
], | |
"metadata": { | |
"id": "7LHCdGTSZmM9" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"# test\n", | |
"predicted_prob = model.predict_proba(X_test)[:, 1]\n", | |
"predicted = model.predict(X_test)" | |
], | |
"metadata": { | |
"id": "uhsWtNnfYY9u" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"# Evaluation\n" | |
], | |
"metadata": { | |
"id": "DadMrzcucPTl" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"## Accuray e AUC\n", | |
"accuracy = metrics.accuracy_score(y_test, predicted)\n", | |
"auc = metrics.roc_auc_score(y_test, predicted_prob)\n", | |
"print(\"Accuracy (overall correct predictions):\", round(accuracy,2))\n", | |
"print(\"Auc:\", round(auc,2))\n", | |
" \n", | |
"## Precision e Recall\n", | |
"recall = metrics.recall_score(y_test, predicted)\n", | |
"precision = metrics.precision_score(y_test, predicted)\n", | |
"print(\"Recall (all 1s predicted right):\", round(recall,2))\n", | |
"print(\"Precision (confidence when predicting a 1):\", round(precision,2))\n", | |
"print(\"Detail:\")\n", | |
"print(metrics.classification_report(y_test, predicted, target_names=[str(i) for i in np.unique(y_test)]))" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "MbRAn4WoZ4Pv", | |
"outputId": "5f614708-8037-4e82-f284-f7774f0a3cea" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Accuracy (overall correct predictions): 0.75\n", | |
"Auc: 0.83\n", | |
"Recall (all 1s predicted right): 0.75\n", | |
"Precision (confidence when predicting a 1): 0.7\n", | |
"Detail:\n", | |
" precision recall f1-score support\n", | |
"\n", | |
" 0 0.80 0.75 0.78 151\n", | |
" 1 0.70 0.75 0.73 117\n", | |
"\n", | |
" accuracy 0.75 268\n", | |
" macro avg 0.75 0.75 0.75 268\n", | |
"weighted avg 0.76 0.75 0.75 268\n", | |
"\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"classes = np.unique(y_test)\n", | |
"fig, ax = plt.subplots()\n", | |
"cm = metrics.confusion_matrix(y_test, predicted, labels=classes)\n", | |
"sns.heatmap(cm, annot=True, fmt='d', cmap=plt.cm.Blues, cbar=False)\n", | |
"ax.set(xlabel=\"Pred\", ylabel=\"True\", title=\"Confusion matrix\")\n", | |
"ax.set_yticklabels(labels=classes, rotation=0)\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 295 | |
}, | |
"id": "78iJv7fVd8Xz", | |
"outputId": "8530d546-3f12-4296-a913-5260ff36f855" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"classes = np.unique(y_test)\n", | |
"fig, ax = plt.subplots(nrows=1, ncols=2)\n", | |
"## plot ROC curve\n", | |
"fpr, tpr, thresholds = metrics.roc_curve(y_test, predicted_prob)\n", | |
"roc_auc = metrics.auc(fpr, tpr) \n", | |
"ax[0].plot(fpr, tpr, color='darkorange', lw=3, label='area = %0.2f' % roc_auc)\n", | |
"ax[0].plot([0,1], [0,1], color='navy', lw=3, linestyle='--')\n", | |
"ax[0].hlines(y=recall, xmin=0, xmax=1-cm[0,0]/(cm[0,0]+cm[0,1]), color='red', linestyle='--', alpha=0.7, label=\"chosen threshold\")\n", | |
"ax[0].vlines(x=1-cm[0,0]/(cm[0,0]+cm[0,1]), ymin=0, ymax=recall, color='red', linestyle='--', alpha=0.7)\n", | |
"ax[0].set(xlabel='False Positive Rate', ylabel=\"True Positive Rate (Recall)\", title=\"Receiver operating characteristic\") \n", | |
"ax[1].legend(loc=\"lower right\")\n", | |
"ax[1].grid(True)\n", | |
"## annotate ROC thresholds\n", | |
"thres_in_plot = []\n", | |
"for i,t in enumerate(thresholds):\n", | |
" t = np.round(t,1)\n", | |
" if t not in thres_in_plot:\n", | |
" ax[1].annotate(t, xy=(fpr[i],tpr[i]), xytext=(fpr[i],tpr[i]), \n", | |
" textcoords='offset points', ha='left', va='bottom')\n", | |
" thres_in_plot.append(t)\n", | |
" else:\n", | |
" next\n", | |
"## plot P-R curve\n", | |
"precisions, recalls, thresholds = metrics.precision_recall_curve(y_test, predicted_prob)\n", | |
"roc_auc = metrics.auc(recalls, precisions)\n", | |
"ax[1].plot(recalls, precisions, color='darkorange', lw=3, label='area = %0.2f' % roc_auc)\n", | |
"ax[1].plot([0,1], [(cm[1,0]+cm[1,0])/len(y_test), (cm[1,0]+cm[1,0])/len(y_test)], linestyle='--', color='navy', lw=3)\n", | |
"ax[1].hlines(y=precision, xmin=0, xmax=recall, color='red', linestyle='--', alpha=0.7, label=\"chosen threshold\")\n", | |
"ax[1].vlines(x=recall, ymin=0, ymax=precision, color='red', linestyle='--', alpha=0.7)\n", | |
"ax[1].set(xlabel='Recall', ylabel=\"Precision\", title=\"Precision-Recall curve\")\n", | |
"ax[1].legend(loc=\"lower left\")\n", | |
"ax[1].grid(True)\n", | |
"## annotate P-R thresholds\n", | |
"thres_in_plot = []\n", | |
"for i,t in enumerate(thresholds):\n", | |
" t = np.round(t,1)\n", | |
" if t not in thres_in_plot:\n", | |
" ax[1].annotate(np.round(t,1), xy=(recalls[i],precisions[i]), \n", | |
" xytext=(recalls[i],precisions[i]), \n", | |
" textcoords='offset points', ha='left', va='bottom')\n", | |
" thres_in_plot.append(t)\n", | |
" else:\n", | |
" next\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 312 | |
}, | |
"id": "WzzDhr80d_8J", | |
"outputId": "f89765d1-ef6d-443f-cefb-2fad72664647" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stderr", | |
"text": [ | |
"WARNING:matplotlib.legend:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 2 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"## calculate scores for different thresholds\n", | |
"dic_scores = {'accuracy':[], 'precision':[], 'recall':[], 'f1':[]}\n", | |
"XX_train, XX_test, yy_train, yy_test = model_selection.train_test_split(X_train, y_train, test_size=0.2)\n", | |
"predicted_prob = model.fit(XX_train, yy_train).predict_proba(XX_test)[:,1]\n", | |
"thresholds = []\n", | |
"for threshold in np.arange(0.1, 1, step=0.1):\n", | |
" predicted = (predicted_prob > threshold)\n", | |
" thresholds.append(threshold)\n", | |
" \n", | |
" dic_scores[\"accuracy\"].append(metrics.accuracy_score(yy_test,predicted))\n", | |
" dic_scores[\"precision\"].append(metrics.precision_score(yy_test,predicted))\n", | |
" dic_scores[\"recall\"].append(metrics.recall_score(yy_test,predicted))\n", | |
" dic_scores[\"f1\"].append(metrics.f1_score(yy_test,predicted))\n", | |
"\n", | |
"## plot\n", | |
"dtf_scores = pd.DataFrame(dic_scores).set_index(pd.Index(thresholds)) \n", | |
"dtf_scores.plot(ax=ax,title=\"Threshold Selection\")\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 363 | |
}, | |
"id": "IdF7hVVooITS", | |
"outputId": "2b09d58e-bc2b-4d91-92d7-a1d15b12536b" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "error", | |
"ename": "AttributeError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-48-baaf258509ed>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m## plot\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mdtf_scores\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdic_scores\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_index\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIndex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mthresholds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mdtf_scores\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Threshold Selection\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 970\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlabel_name\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 971\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 972\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mplot_backend\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 973\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 974\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m__doc__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/__init__.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(data, kind, **kwargs)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"ax\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"left_ax\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0mplot_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPLOT_CLASSES\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 71\u001b[0;31m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 72\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/core.py\u001b[0m in \u001b[0;36mgenerate\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 285\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_args_adjust\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_compute_plot_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 287\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setup_subplots\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 288\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_make_plot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 289\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_add_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/usr/local/lib/python3.8/dist-packages/pandas/plotting/_matplotlib/core.py\u001b[0m in \u001b[0;36m_setup_subplots\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 346\u001b[0m \u001b[0maxes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_subplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m111\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 348\u001b[0;31m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0max\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 349\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigsize\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_size_inches\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mAttributeError\u001b[0m: 'numpy.ndarray' object has no attribute 'get_figure'" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"print(\"True:\", y_test[4], \"--> Pred:\", predicted[4], \"| Prob:\", np.max(predicted_prob[4]))" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "KMZqf7z3teIU", | |
"outputId": "141c3f35-eacc-46f1-f6d4-d78b88dfc0f4" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"True: 1 --> Pred: False | Prob: 0.0277351855777882\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"explainer = lime_tabular.LimeTabularExplainer(training_data=X_train, feature_names=X_names, class_names=np.unique(y_train), mode=\"classification\")\n", | |
"explained = explainer.explain_instance(X_test[4], model.predict_proba, num_features=10)\n", | |
"explained.as_pyplot_figure()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 545 | |
}, | |
"id": "mKhDrNWetxYW", | |
"outputId": "41bea03f-02e0-4f86-c10b-7774b16f898f" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": {}, | |
"execution_count": 52 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"**The following code takes up all the RAM and crashes.**\n", | |
"\n", | |
"So I did not run the notebook again from the beginning as the **GradientBoostClassifier** takes almost an hour to learn randomly form the param distribution" | |
], | |
"metadata": { | |
"id": "cMuOxUjXvFi6" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"## PCA\n", | |
"pca = decomposition.PCA(n_components=2)\n", | |
"X_train_2d = pca.fit_transform(X_train)\n", | |
"X_test_2d = pca.transform(X_test)\n", | |
"## train 2d model\n", | |
"model_2d = ensemble.GradientBoostingClassifier()\n", | |
"model_2d.fit(X_train_2d, y_train)\n", | |
" \n", | |
"## plot classification regions\n", | |
"from matplotlib.colors import ListedColormap\n", | |
"colors = {np.unique(y_test)[0]:\"black\", np.unique(y_test)[1]:\"green\"}\n", | |
"X1, X2 = np.meshgrid(np.arange(start=X_test[:,0].min()-1, stop=X_test[:,0].max()+1, step=0.01),\n", | |
"np.arange(start=X_test[:,1].min()-1, stop=X_test[:,1].max()+1, step=0.01))\n", | |
"fig, ax = plt.subplots()\n", | |
"Y = model_2d.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape)\n", | |
"ax.contourf(X1, X2, Y, alpha=0.5, cmap=ListedColormap(list(colors.values())))\n", | |
"ax.set(xlim=[X1.min(),X1.max()], ylim=[X2.min(),X2.max()], title=\"Classification regions\")\n", | |
"for i in np.unique(y_test):\n", | |
" ax.scatter(X_test[y_test==i, 0], X_test[y_test==i, 1], \n", | |
" c=colors[i], label=\"true \"+str(i)) \n", | |
"plt.legend()\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 235 | |
}, | |
"id": "tCnN6PhXuPSt", | |
"outputId": "1b5cea8d-40ff-4f08-b9eb-ad699b1387da" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "error", | |
"ename": "NameError", | |
"evalue": "ignored", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-3-3793f7b89e94>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m## PCA\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mpca\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdecomposition\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPCA\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_components\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mX_train_2d\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpca\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mX_test_2d\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpca\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m## train 2d model\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mNameError\u001b[0m: name 'decomposition' is not defined" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [], | |
"metadata": { | |
"id": "ISYkspFfvKfU" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
} | |
], | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"authorship_tag": "ABX9TyN0tLi35P0D5Ec1oLoM1APw", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"name": "python3" | |
}, | |
"language_info": { | |
"name": "python" | |
}, | |
"gpuClass": "standard" | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment