{ "cells": [ { "cell_type": "markdown", "id": "ef2f4ce2-b7ec-4644-9dcf-29cf240d5608", "metadata": {}, "source": [ "# A Data Science Classification Case Study Project" ] }, { "cell_type": "markdown", "id": "353d3742-c2a7-4f9d-8cc5-e4dc1cf0950d", "metadata": {}, "source": [ "A comprehensive roadmap towards approaching a data science classifiation project, covering all major steps - from exploratory data analysis and data preprocessing to hyperparameter tuning - to create the most effective predictive model. More specifically, the following steps are demonstrated:\n", "* Exploratory Data Analysis (EDA)\n", "* dataset splitting early on to avoid data leakage\n", "* missing values imputation\n", "* encoding (categorical -> numerical data)\n", "* feature scaling, encoding, unskewing\n", "* feature extraction\n", "* automated hyperparameter tuning using GridSearchCV with pipelines and parameter grids\n", "\n", "We'll use the Titanic classification dataset since it has various preprocessing needs." ] }, { "cell_type": "code", "execution_count": 1, "id": "d120c477-487e-481a-9f01-cf4d3613f3ba", "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split, GridSearchCV\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.preprocessing import StandardScaler, RobustScaler, PowerTransformer\n", "from scipy.stats import boxcox, yeojohnson\n", "from scipy.special import inv_boxcox\n", "from category_encoders import OrdinalEncoder, OneHotEncoder\n", "from sklearn.decomposition import PCA\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\n", "from xgboost import XGBClassifier\n", "from catboost import CatBoostClassifier\n", "from sklearn.svm import SVC\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.tree import DecisionTreeClassifier\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.model_selection import cross_val_score\n", "from sklearn.metrics import accuracy_score, classification_report, make_scorer, f1_score" ] }, { "cell_type": "code", "execution_count": 2, "id": "4a7305f2-1091-4978-888e-fb442c66cf5c", "metadata": {}, "outputs": [], "source": [ "# Load dataset\n", "url = \"titanic.csv\"\n", "df = pd.read_csv(url)" ] }, { "cell_type": "markdown", "id": "57af63fa-4886-419c-ac75-744f1e66486c", "metadata": {}, "source": [ "## Exploratory Data Analysis" ] }, { "cell_type": "code", "execution_count": 3, "id": "9bcedd15-7b3b-4fa5-a182-c17d59f19fee", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
\n", "
" ], "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 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print 5 first observations to start getting familiar with the dataset\n", "df.head()" ] }, { "cell_type": "markdown", "id": "4c2e5bd5-5f65-44b7-9f58-4c5fb6111af7", "metadata": {}, "source": [ "Variable | Definition | Key\n", "\n", "survival Survival 0 = No, 1 = Yes\n", "\n", "pclass Ticket class 1 = 1st, 2 = 2nd, 3 = 3rd\n", "\n", "sex Gender\n", "\n", "Age Age in years\n", "\n", "sibsp # of siblings / spouses aboard the Titanic\n", "\n", "parch # of parents / children aboard the Titanic\n", "\n", "ticket Ticket number\n", "\n", "fare Passenger fare\n", "\n", "cabin Cabin number \n", "\n", "embarked Port of Embarkation C = Cherbourg, Q = Queenstown, S = Southampton" ] }, { "cell_type": "code", "execution_count": 4, "id": "21915c23-0f3b-420b-a65d-1bf4bbc4ed5d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PassengerId int64\n", "Survived int64\n", "Pclass int64\n", "Name object\n", "Sex object\n", "Age float64\n", "SibSp int64\n", "Parch int64\n", "Ticket object\n", "Fare float64\n", "Cabin object\n", "Embarked object\n", "dtype: object" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print column types\n", "df.dtypes" ] }, { "cell_type": "code", "execution_count": 5, "id": "2a4290bb-d212-4368-a264-74bc5d57302a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Missing Values per Column:\n" ] }, { "data": { "text/plain": [ "PassengerId 0\n", "Survived 0\n", "Pclass 0\n", "Name 0\n", "Sex 0\n", "Age 177\n", "SibSp 0\n", "Parch 0\n", "Ticket 0\n", "Fare 0\n", "Cabin 687\n", "Embarked 2\n", "dtype: int64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Missing values\n", "missing_values = df.isnull().sum()\n", "print(\"Missing Values per Column:\")\n", "missing_values" ] }, { "cell_type": "code", "execution_count": 6, "id": "f768622a-713e-4495-aec5-f209e0f777c6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Summary Statistics:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
PassengerIdSurvivedPclassAgeSibSpParchFare
count891.000000891.000000891.000000714.000000891.000000891.000000891.000000
mean446.0000000.3838382.30864229.6991180.5230080.38159432.204208
std257.3538420.4865920.83607114.5264971.1027430.80605749.693429
min1.0000000.0000001.0000000.4200000.0000000.0000000.000000
25%223.5000000.0000002.00000020.1250000.0000000.0000007.910400
50%446.0000000.0000003.00000028.0000000.0000000.00000014.454200
75%668.5000001.0000003.00000038.0000001.0000000.00000031.000000
max891.0000001.0000003.00000080.0000008.0000006.000000512.329200
\n", "
" ], "text/plain": [ " PassengerId Survived Pclass Age SibSp \\\n", "count 891.000000 891.000000 891.000000 714.000000 891.000000 \n", "mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n", "std 257.353842 0.486592 0.836071 14.526497 1.102743 \n", "min 1.000000 0.000000 1.000000 0.420000 0.000000 \n", "25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n", "50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n", "75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n", "max 891.000000 1.000000 3.000000 80.000000 8.000000 \n", "\n", " Parch Fare \n", "count 891.000000 891.000000 \n", "mean 0.381594 32.204208 \n", "std 0.806057 49.693429 \n", "min 0.000000 0.000000 \n", "25% 0.000000 7.910400 \n", "50% 0.000000 14.454200 \n", "75% 0.000000 31.000000 \n", "max 6.000000 512.329200 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Summary statistics for numerical features\n", "print(\"Summary Statistics:\")\n", "df.describe()" ] }, { "cell_type": "code", "execution_count": 7, "id": "425083d2-3b95-416b-94c3-bba9c1bc7281", "metadata": {}, "outputs": [], "source": [ "# drop unnecessary columns such as PassengerId, Name, Ticket and cabin which is a column with high number of missing values\n", "df = df.drop(columns=['PassengerId', 'Name', 'Ticket', 'Cabin'])" ] }, { "cell_type": "markdown", "id": "26a9596d-613f-4ecf-9ddf-bdf90f8a808e", "metadata": {}, "source": [ "#### Check if dataset is balanced / unbalanced\n", "\n", "Knowing the class distribution helps understand the overall dataset's structure and potential biases in the data.\n", "\n", "Some key considerations:\n", "* If one class is significantly underrepresented, machine learning models may become biased toward the majority class. This can lead to poor generalization and inaccurate predictions, particularly for the minority class.\n", "* In unbalanced datasets, traditional metrics like accuracy can be misleading. For example, a model that always predicts the majority class can achieve high accuracy but fail to predict the minority class effectively. Therefore F1-score (with weighted average), precision and recall metrics will be more appropriate.\n", "* If the dataset is unbalanced, we might consider oversampling the minority class, undersampling the majority class, or using techniques like SMOTE (Synthetic Minority Over-sampling Technique) to balance the dataset before training." ] }, { "cell_type": "code", "execution_count": 8, "id": "2713091a-b7fe-44a7-83bd-99cf07456b0d", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "sns.countplot(data=df, x='Survived')\n", "plt.title('Survival Count')\n", "plt.xlabel('Gender')\n", "plt.ylabel('Count')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "c402f561-7f07-4eae-82bb-cd8221590695", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Percentage of each class in the target variable:\n", " Survived\n", "0 61.616162\n", "1 38.383838\n", "Name: proportion, dtype: float64\n" ] } ], "source": [ "# Calculate the percentage of each class in the target variable\n", "class_percentages = df['Survived'].value_counts(normalize=True) * 100\n", "\n", "print(\"Percentage of each class in the target variable:\\n\", class_percentages)" ] }, { "cell_type": "markdown", "id": "07b03ad4-c818-4edf-ab23-ec8d01d50b25", "metadata": {}, "source": [ "A target variable with class distribution of 62% for one class and 38% for the other is moderately imbalanced.\n", "\n", "While this level of imbalance is not as extreme as, say, 90%-10%, it can still impact the performance of certain classifiers, especially if the minority class is the one you are most interested in predicting accurately. Generally, a dataset is considered \"balanced\" if the classes are close to a 50-50 distribution. However, many algorithms like ensemble algorithms can handle moderate imbalances, like this one, without significant issues." ] }, { "cell_type": "markdown", "id": "2406a43f-b3a1-4223-a729-a214c54f9324", "metadata": {}, "source": [ "#### Countplot for survival by gender\n", "\n", "Reasoning: This count plot helps visualize the relationship between gender and survival rates. Since the Titanic disaster was notorious for differences in survival based on gender, this graph can reveal whether there was a significant disparity in survival rates between males and females.\n", "\n", "What to Look For: We want to see if females had a higher survival rate compared to males, which is expected based on historical accounts. A clear difference in counts will highlight the impact of gender on survival (feature importance)." ] }, { "cell_type": "code", "execution_count": 10, "id": "df894613-c520-4d90-9c0a-e0b75eb2e26e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAHUCAYAAAAgFQAeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/CUlEQVR4nO3dd3QV5f7+/WuT3oEgKRASkCJI6BykGRBCFAUEjiggXUVAOsJBpOpJKIf2A5GDCqGIiArYqVJEkBLlUBWJoWliFDAFUiCZ5w+f7C/bhJKQZIfh/Vprr+Xcc8/MZwbXeHkzc4/FMAxDAAAAgAmUsncBAAAAQGEh3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIokH379qlz586qVKmSXFxc5Ofnp6ZNm2r06NF2q2nKlCmyWCxFeoy+ffsqJCTktvt/+umn6tChg/z8/OTs7KyyZcuqTZs2evfdd3X16tWiKzQfIiMjtWHDhtvqe/r0aVksFv3nP/8p2qL+f3FxcRo2bJhq1qwpDw8Pubq6KiQkRM8++6y2b98ue31ks1WrVmrVqpVdjg3g5gi3APLt888/V7NmzZScnKyZM2dq8+bNmj9/vpo3b67333/fbnU999xz2rt3r92Ofz3DMNSvXz917NhR2dnZmjNnjrZu3arly5erbt26Gjx4sBYtWmTvMiXlL9wWp08++UShoaH65JNP1KdPH61fv16bNm3SxIkTdeHCBT3yyCP66quv7F0mgBLG0d4FALj7zJw5U5UrV9amTZvk6Ph/t5FnnnlGM2fOLLTjpKWlydXV9bZHYytWrKiKFSsW2vHvxKxZsxQdHa2pU6dq0qRJNus6dOigsWPH6tSpU3aqruSLjY1V9+7d9eCDD2rr1q3y9va2rgsLC9OAAQO0Y8cOlSlTxo5VFg7DMJSeni43Nzd7lwKYAiO3APLtwoULKleunE2wzVGqlO1txWKxaMqUKbn6hYSEqG/fvtbl6OhoWSwWbd68Wf3799d9990nd3d3vf/++7JYLNq2bVuufbz55puyWCw6fPiwpNyPJTz55JMKDg5WdnZ2rm2bNGmiBg0aWJffeOMNPfzwwypfvrw8PDwUGhqqmTNnFujRgatXr2rGjBl64IEHNHHixDz7+Pv7q0WLFtblixcvavDgwapQoYKcnZ1VpUoVTZgwQRkZGdY+OY8EREdH59rf369zzrU4duyYunfvLh8fH/n5+al///5KSkqy2e7y5ctavny5LBaLLBbLbf11e3Z2tv7973+rUqVKcnV1VaNGjWz+jL7++mtZLBa99957ubZdsWKFLBaLDhw4cMP9z5kzR1euXNGiRYtsgu31WrVqpbp169q0/fTTT+rRo4fKly8vFxcX1axZU2+88YZNnx07dlhrmzBhggIDA+Xt7a22bdvqxx9/tOlrGIZmzpyp4OBgubq6qkGDBvryyy/zrCc5OVljxoxR5cqV5ezsrAoVKmjEiBG6fPmyTT+LxaKXXnpJixcvVs2aNeXi4qLly5ff8FoAyB/CLYB8a9q0qfbt26dhw4Zp3759hfrsaP/+/eXk5KSVK1fqww8/VOfOnVW+fHktW7YsV9/o6Gg1aNBAderUueG+zp49m+uvrn/44Qft379f/fr1s7bFxsaqR48eWrlypT777DMNGDBAs2bN0sCBA/N9DgcPHtTFixfVqVOn2xp1Tk9PV+vWrbVixQqNGjVKn3/+uZ599lnNnDlTXbp0yffxr9e1a1dVr15dH330kf71r39p9erVGjlypHX93r175ebmpvbt22vv3r3au3fvbT0usXDhQm3cuFHz5s3TqlWrVKpUKT322GPWx0Jatmyp+vXr5wqWOds2btxYjRs3vuH+t2zZooCAADVq1Oi2z/X48eNq3Lixjh49qtmzZ+uzzz7T448/rmHDhmnq1Km5+r/yyis6c+aM3n77bS1ZskQ//fSTOnTooKysLGufqVOnaty4cQoPD9eGDRs0aNAgPf/887lC8JUrVxQWFqbly5dr2LBh+vLLLzVu3DhFR0erY8eOuZ4N3rBhg958801NmjRJmzZtUsuWLW/7PAHcggEA+fTHH38YLVq0MCQZkgwnJyejWbNmRlRUlJGSkmLTV5IxefLkXPsIDg42+vTpY11etmyZIcno3bt3rr6jRo0y3NzcjD///NPadvz4cUOSsWDBAmvb5MmTjetva1evXjX8/PyMHj162Oxv7NixhrOzs/HHH3/keX5ZWVnG1atXjRUrVhgODg7GxYsXrev69OljBAcH57ldjjVr1hiSjMWLF9+0X47Fixcbkoy1a9fatM+YMcOQZGzevNkwDMOIi4szJBnLli3LtY+/X+ecazFz5kybfoMHDzZcXV2N7Oxsa5uHh4fNn8XN5NQQGBhopKWlWduTk5ONsmXLGm3btrW25fyZfv/999a2/fv3G5KM5cuX3/Q4rq6uxkMPPZSrPefPJueXlZVlXRcREWFUrFjRSEpKstnmpZdeMlxdXa1/jtu3bzckGe3bt7fpt3btWkOSsXfvXsMwDOPSpUuGq6ur0blzZ5t+33zzjSHJCAsLs7ZFRUUZpUqVMg4cOGDT98MPPzQkGV988YW1TZLh4+Nj8+8VgMLDyC2AfPP19dXXX3+tAwcOaPr06erUqZNOnjyp8ePHKzQ0VH/88UeB9921a9dcbf3791daWprNy2rLli2Ti4uLevToccN9OTo66tlnn9W6deusfxWflZWllStXqlOnTvL19bX2/f7779WxY0f5+vrKwcFBTk5O6t27t7KysnTy5MkCn8/t+Oqrr+Th4aF//vOfNu05j23k9UjG7erYsaPNcp06dZSenq7ExMQC71OSunTpIldXV+uyl5eXOnTooF27dllHPrt3767y5cvbjN4uWLBA9913n55++ukCH9fJycn6GzZsmKS/Rr+3bdumzp07y93dXdeuXbP+2rdvr/T0dH377bc2+8rr2kjSmTNnJP01qp2enq6ePXva9GvWrJmCg4Nt2j777DPVrl1b9erVszl2RESELBaLduzYYdP/kUceMcXzwkBJRLgFUGCNGjXSuHHj9MEHH+jXX3/VyJEjdfr06Tt6qSwgICBX24MPPqjGjRtbH03IysrSqlWr1KlTJ5UtW/am++vfv7/S09O1Zs0aSdKmTZsUHx9v80jC2bNn1bJlS/3yyy+aP3++NbjnhLK0tLR8nUOlSpUk/TWN1e24cOGC/P39cz3CUL58eTk6OurChQv5Ov71rg/wkuTi4iIp/+f0d/7+/nm2ZWZmKjU11XqsgQMHavXq1frzzz/1+++/a+3atXruueesddxIpUqVrCHzerNnz9aBAwdyPa974cIFXbt2TQsWLLAJv05OTmrfvr0k5fqfrltdm5zrfqNzvd5vv/2mw4cP5zq2l5eXDMPIdey8/j0HUDiYLQFAoXByctLkyZM1d+5cHT161Nru4uJi81JUjhsFths9o9qvXz8NHjxYJ06c0M8//5wroN5IrVq19I9//EPLli3TwIEDtWzZMgUGBqpdu3bWPhs2bNDly5e1bt06mxG5Q4cO3XL/eWnUqJHKli2rjz/+WFFRUbd87tbX11f79u2TYRg2fRMTE3Xt2jWVK1dOkqwjpX+/nncSfgsqISEhzzZnZ2d5enpa2wYNGqTp06dr6dKlSk9P17Vr1/Tiiy/ecv/h4eF64403dPDgQZvnbu+///48+5cpU0YODg7q1auXhgwZkmefypUr3/K418sJvzc61+vnOy5Xrpzc3Ny0dOnSPPeV82eYo6jnYwbuZYzcAsi3+Pj4PNtPnDghSQoMDLS2hYSEWGczyPHVV19ZR/duV/fu3eXq6qro6GhFR0erQoUKNgH1Zvr166d9+/Zp9+7d+vTTT9WnTx85ODhY1+cEjetHEw3D0FtvvZWvGnM4OTlp3Lhx+uGHH/Taa6/l2ScxMVHffPONJKlNmzZKTU3NNdfsihUrrOslyc/PT66urrmu58cff1ygOnO4uLjkeyR33bp1Sk9Pty6npKTo008/VcuWLW2ubUBAgJ566iktWrRIixcvVocOHawj2zczcuRIubu7a8iQIUpJSbllf3d3d7Vu3Vrff/+96tSpo0aNGuX6/X2k9lYeeughubq66t1337Vp37NnT65R5SeeeEKxsbHy9fXN89j5+fAHgDvDyC2AfIuIiFDFihXVoUMHPfDAA8rOztahQ4c0e/ZseXp6avjw4da+vXr10sSJEzVp0iSFhYXp+PHjWrhwoXx8fPJ1zNKlS6tz586Kjo7Wn3/+qTFjxuSaduxGunfvrlGjRql79+7KyMiwmYJM+muU0NnZWd27d9fYsWOVnp6uN998U5cuXcpXjdd7+eWXdeLECU2ePFn79+9Xjx49FBQUpKSkJO3atUtLlizR1KlT1bx5c/Xu3VtvvPGG+vTpo9OnTys0NFS7d+9WZGSk2rdvr7Zt20r6K4Q/++yzWrp0qe6//37VrVtX+/fv1+rVqwtcpySFhoZqx44d+vTTTxUQECAvLy/VqFHjpts4ODgoPDxco0aNUnZ2tmbMmKHk5OQ8ZyUYPny4mjRpIkl5znqRl/vvv1/vvfeeunfvrtDQUA0aNEgNGjSQi4uLEhMTtXnzZkmymSZs/vz5atGihVq2bKlBgwYpJCREKSkpOnXqlD799NN8f/ChTJkyGjNmjF5//XU999xzeuqpp3Tu3DlNmTIl12MJI0aM0EcffaSHH35YI0eOVJ06dZSdna2zZ89q8+bNGj16tPUaAChidn6hDcBd6P333zd69OhhVKtWzfD09DScnJyMSpUqGb169TKOHz9u0zcjI8MYO3asERQUZLi5uRlhYWHGoUOHbjhbwt/fNr/e5s2brTM0nDx5Mtf6v8+WcL0ePXoYkozmzZvnuf7TTz816tata7i6uhoVKlQwXn75ZePLL780JBnbt2+39rud2RKu9/HHHxuPP/64cd999xmOjo5GmTJljNatWxuLFy82MjIyrP0uXLhgvPjii0ZAQIDh6OhoBAcHG+PHjzfS09Nt9peUlGQ899xzhp+fn+Hh4WF06NDBOH369A1nS/j9999tts+5znFxcda2Q4cOGc2bNzfc3d1zzQLwdzmzJcyYMcOYOnWqUbFiRcPZ2dmoX7++sWnTphtuFxISYtSsWfP2Ltp1YmNjjaFDhxo1atQw3NzcDBcXFyM4ONh46qmnjPXr19vM+pBTX//+/Y0KFSoYTk5Oxn333Wc0a9bMeP311619cmZL+OCDD/I8t+tno8jOzjaioqKMoKAgw9nZ2ahTp47x6aefGmFhYbmuU2pqqvHqq68aNWrUMJydnQ0fHx8jNDTUGDlypJGQkGDtJ8kYMmRIvq8FgNtjMQw7fZgbAHBPOHz4sOrWras33nhDgwcPtnc5AEyOcAsAKBKxsbE6c+aMXnnlFZ09e1anTp2Su7u7vcsCYHK8UAYAKBKvvfaawsPDlZqaqg8++IBgC6BYMHILAAAA02DkFgAAAKZBuAUAAIBpEG4BAABgGnzEQVJ2drZ+/fVXeXl58UlEAACAEsgwDKWkpCgwMPCmH/Eh3Er69ddfFRQUZO8yAAAAcAvnzp1TxYoVb7iecCvJy8tL0l8X6/pPOQIAAKBkSE5OVlBQkDW33QjhVrI+iuDt7U24BQAAKMFu9QgpL5QBAADANAi3AAAAMA3CLQAAAEyDZ24BAACKmWEYunbtmrKysuxdSonh4OAgR0fHO56WlXALAABQjDIzMxUfH68rV67Yu5QSx93dXQEBAXJ2di7wPgi3AAAAxSQ7O1txcXFycHBQYGCgnJ2d+YCU/hrJzszM1O+//664uDhVq1btph9quBnCLQAAQDHJzMxUdna2goKC5O7ubu9yShQ3Nzc5OTnpzJkzyszMlKura4H2wwtlAAAAxaygo5JmVxjXhSsLAAAA0yDcAgAAwDQItwAAAPe4HTt2yGKx6M8//yzS4/Tt21dPPvlkkR6DcAsAAFBCJCYmauDAgapUqZJcXFzk7++viIgI7d27t0iP26xZM8XHx8vHx6dIj1McmC0BAACghOjatauuXr2q5cuXq0qVKvrtt9+0bds2Xbx4sUD7MwxDWVlZcnS8eeRzdnaWv79/gY5R0jByCwAAUAL8+eef2r17t2bMmKHWrVsrODhY//jHPzR+/Hg9/vjjOn36tCwWiw4dOmSzjcVi0Y4dOyT93+MFmzZtUqNGjeTi4qJ33nlHFotFP/zwg83x5syZo5CQEBmGYfNYQlJSktzc3LRx40ab/uvWrZOHh4dSU1MlSb/88ouefvpplSlTRr6+vurUqZNOnz5t7Z+VlaVRo0apdOnS8vX11dixY2UYRpFcu+sRbgEAAEoAT09PeXp6asOGDcrIyLijfY0dO1ZRUVE6ceKE/vnPf6phw4Z69913bfqsXr1aPXr0yPURCR8fHz3++ON59u/UqZM8PT115coVtW7dWp6entq1a5d2794tT09PPfroo8rMzJQkzZ49W0uXLtU777yj3bt36+LFi1q/fv0dndft4LGEEqDhyyvsXQKKUcys3vYuAQBQAjk6Oio6OlrPP/+8Fi9erAYNGigsLEzPPPOM6tSpk699TZs2TeHh4dblnj17auHChXrttdckSSdPnlRMTIxWrMg7g/Ts2VO9e/fWlStX5O7uruTkZH3++ef66KOPJElr1qxRqVKl9Pbbb1vD8bJly1S6dGnt2LFD7dq107x58zR+/Hh17dpVkrR48WJt2rQp39clvxi5BQAAKCG6du2qX3/9VZ988okiIiK0Y8cONWjQQNHR0fnaT6NGjWyWn3nmGZ05c0bffvutJOndd99VvXr1VKtWrTy3f/zxx+Xo6KhPPvlEkvTRRx/Jy8tL7dq1kyTFxMTo1KlT8vLyso44ly1bVunp6YqNjVVSUpLi4+PVtGlT6z4dHR1z1VUUCLcAAAAliKurq8LDwzVp0iTt2bNHffv21eTJk61f77r+udWrV6/muQ8PDw+b5YCAALVu3VqrV6+WJL333nt69tlnb1iDs7Oz/vnPf1r7r169Wk8//bT1xbTs7Gw1bNhQhw4dsvmdPHlSPXr0KPjJFwLCLQAAQAlWq1YtXb58Wffdd58kKT4+3rru+pfLbqVnz556//33tXfvXsXGxuqZZ565Zf+NGzfq2LFj2r59u3r27Gld16BBA/30008qX768qlatavPz8fGRj4+PAgICrCPFknTt2jXFxMTcdr0FRbgFAAAoAS5cuKBHHnlEq1at0uHDhxUXF6cPPvhAM2fOVKdOneTm5qaHHnpI06dP1/Hjx7Vr1y69+uqrt73/Ll26KDk5WYMGDVLr1q1VoUKFm/YPCwuTn5+fevbsqZCQED300EPWdT179lS5cuXUqVMnff3114qLi9POnTs1fPhwnT9/XpI0fPhwTZ8+XevXr9cPP/ygwYMHF/lHIiTCLQAAQIng6empJk2aaO7cuXr44YdVu3ZtTZw4Uc8//7wWLlwoSVq6dKmuXr2qRo0aafjw4Xr99ddve//e3t7q0KGD/ve//9mMwt6IxWJR9+7d8+zv7u6uXbt2qVKlSurSpYtq1qyp/v37Ky0tTd7e3pKk0aNHq3fv3urbt6+aNm0qLy8vde7cOR9XpGAsRnFMOFbCJScny8fHR0lJSdY/kOLEbAn3FmZLAIB7V3p6uuLi4lS5cmW5urrau5wS52bX53bzGiO3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA1HexcAAABwryvur5Wa+WuZjNwCAADglvr27SuLxaLp06fbtG/YsEEWi8VOVeVGuAUAAMBtcXV11YwZM3Tp0iV7l3JDhFsAAADclrZt28rf319RUVE37PPRRx/pwQcflIuLi0JCQjR79uxirJBwCwAAgNvk4OCgyMhILViwQOfPn8+1PiYmRt26ddMzzzyjI0eOaMqUKZo4caKio6OLrUbCLQAAAG5b586dVa9ePU2ePDnXujlz5qhNmzaaOHGiqlevrr59++qll17SrFmziq0+wi0AAADyZcaMGVq+fLmOHz9u037ixAk1b97cpq158+b66aeflJWVVSy1EW4BAACQLw8//LAiIiL0yiuv2LQbhpFr5gTDMIqzNOa5BQAAQP5Nnz5d9erVU/Xq1a1ttWrV0u7du2367dmzR9WrV5eDg0Ox1EW4BQAAQL6FhoaqZ8+eWrBggbVt9OjRaty4sV577TU9/fTT2rt3rxYuXKhFixYVW12EWwAAADu7W78Y9tprr2nt2rXW5QYNGmjt2rWaNGmSXnvtNQUEBGjatGnq27dvsdVEuAUAAMAt5TWdV3BwsNLT023aunbtqq5duxZTVbnxQhkAAABMg3ALAAAA0yDcAgAAwDQItwAAADANwi0AAABMg3ALAAAA0yDcAgAAwDQItwAAADANwi0AAABMgy+UAQAA2NnZaaHFerxKk44U6/GKEyO3AAAAuCHDMNS2bVtFRETkWrdo0SL5+Pjo7Nmzdqgsb4RbAAAA3JDFYtGyZcu0b98+/fe//7W2x8XFady4cZo/f74qVapkxwptEW4BAABwU0FBQZo/f77GjBmjuLg4GYahAQMGqE2bNvrHP/6h9u3by9PTU35+furVq5f++OMP67YffvihQkND5ebmJl9fX7Vt21aXL18usloJtwAAALilPn36qE2bNurXr58WLlyoo0ePav78+QoLC1O9evV08OBBbdy4Ub/99pu6desmSYqPj1f37t3Vv39/nThxQjt27FCXLl1kGEaR1ckLZQAAALgtS5YsUe3atfX111/rww8/1DvvvKMGDRooMjLS2mfp0qUKCgrSyZMnlZqaqmvXrqlLly4KDg6WJIWGFu3Lc4zcAgAA4LaUL19eL7zwgmrWrKnOnTsrJiZG27dvl6enp/X3wAMPSJJiY2NVt25dtWnTRqGhoXrqqaf01ltv6dKlS0VaI+EWAAAAt83R0VGOjn/95X92drY6dOigQ4cO2fx++uknPfzww3JwcNCWLVv05ZdfqlatWlqwYIFq1KihuLi4IquPcAsAAIACadCggY4dO6aQkBBVrVrV5ufh4SHpr9kWmjdvrqlTp+r777+Xs7Oz1q9fX2Q1EW4BAABQIEOGDNHFixfVvXt37d+/Xz///LM2b96s/v37KysrS/v27VNkZKQOHjyos2fPat26dfr9999Vs2bNIquJF8oAAADs7G79YlhgYKC++eYbjRs3ThEREcrIyFBwcLAeffRRlSpVSt7e3tq1a5fmzZun5ORkBQcHa/bs2XrssceKrCaLUZRzMdwlkpOT5ePjo6SkJHl7exf78Ru+vKLYjwn7iZnV294lAADsJD09XXFxcapcubJcXV3tXU6Jc7Prc7t5rcQ8lhAVFSWLxaIRI0ZY2wzD0JQpUxQYGCg3Nze1atVKx44ds9kuIyNDQ4cOVbly5eTh4aGOHTvq/PnzxVw9AAAASoISEW4PHDigJUuWqE6dOjbtM2fO1Jw5c7Rw4UIdOHBA/v7+Cg8PV0pKirXPiBEjtH79eq1Zs0a7d+9WamqqnnjiCWVlZRX3aQAAAMDO7B5uU1NT1bNnT7311lsqU6aMtd0wDM2bN08TJkxQly5dVLt2bS1fvlxXrlzR6tWrJUlJSUl65513NHv2bLVt21b169fXqlWrdOTIEW3dutVepwQAAAA7sXu4HTJkiB5//HG1bdvWpj0uLk4JCQlq166dtc3FxUVhYWHas2ePJCkmJkZXr1616RMYGKjatWtb++QlIyNDycnJNj8AAADc/ew6W8KaNWv03Xff6cCBA7nWJSQkSJL8/Pxs2v38/HTmzBlrH2dnZ5sR35w+OdvnJSoqSlOnTr3T8gEAAAqE9/nzVhjXxW4jt+fOndPw4cO1atWqm74taLFYbJYNw8jV9ne36jN+/HglJSVZf+fOnctf8QAAAAXg5OQkSbpy5YqdKymZcq5LznUqCLuN3MbExCgxMVENGza0tmVlZWnXrl1auHChfvzxR0l/jc4GBARY+yQmJlpHc/39/ZWZmalLly7ZjN4mJiaqWbNmNzy2i4uLXFxcCvuUAAAAbsrBwUGlS5dWYmKiJMnd3f2Wg3b3AsMwdOXKFSUmJqp06dJycHAo8L7sFm7btGmjI0dsJyzu16+fHnjgAY0bN05VqlSRv7+/tmzZovr160uSMjMztXPnTs2YMUOS1LBhQzk5OWnLli3q1q2bJCk+Pl5Hjx7VzJkzi/eEAAAAboO/v78kWQMu/k/p0qWt16eg7BZuvby8VLt2bZs2Dw8P+fr6WttHjBihyMhIVatWTdWqVVNkZKTc3d3Vo0cPSZKPj48GDBig0aNHy9fXV2XLltWYMWMUGhqa6wU1AACAksBisSggIEDly5fX1atX7V1OieHk5HRHI7Y5SvTnd8eOHau0tDQNHjxYly5dUpMmTbR582Z5eXlZ+8ydO1eOjo7q1q2b0tLS1KZNG0VHRxfKxQEAACgqDg4O5JUiwOd3xed3Ubz4/C4AAPl3131+FwAAALhThFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGnYNdy++eabqlOnjry9veXt7a2mTZvqyy+/tK43DENTpkxRYGCg3Nzc1KpVKx07dsxmHxkZGRo6dKjKlSsnDw8PdezYUefPny/uUwEAAEAJYNdwW7FiRU2fPl0HDx7UwYMH9cgjj6hTp07WADtz5kzNmTNHCxcu1IEDB+Tv76/w8HClpKRY9zFixAitX79ea9as0e7du5WamqonnnhCWVlZ9jotAAAA2InFMAzD3kVcr2zZspo1a5b69++vwMBAjRgxQuPGjZP01yitn5+fZsyYoYEDByopKUn33XefVq5cqaefflqS9OuvvyooKEhffPGFIiIibuuYycnJ8vHxUVJSkry9vYvs3G6k4csriv2YsJ+YWb3tXQIAAHed281rJeaZ26ysLK1Zs0aXL19W06ZNFRcXp4SEBLVr187ax8XFRWFhYdqzZ48kKSYmRlevXrXpExgYqNq1a1v75CUjI0PJyck2PwAAANz97B5ujxw5Ik9PT7m4uOjFF1/U+vXrVatWLSUkJEiS/Pz8bPr7+flZ1yUkJMjZ2VllypS5YZ+8REVFycfHx/oLCgoq5LMCAACAPdg93NaoUUOHDh3St99+q0GDBqlPnz46fvy4db3FYrHpbxhGrra/u1Wf8ePHKykpyfo7d+7cnZ0EAAAASgS7h1tnZ2dVrVpVjRo1UlRUlOrWrav58+fL399fknKNwCYmJlpHc/39/ZWZmalLly7dsE9eXFxcrDM05PwAAABw97N7uP07wzCUkZGhypUry9/fX1u2bLGuy8zM1M6dO9WsWTNJUsOGDeXk5GTTJz4+XkePHrX2AQAAwL3D0Z4Hf+WVV/TYY48pKChIKSkpWrNmjXbs2KGNGzfKYrFoxIgRioyMVLVq1VStWjVFRkbK3d1dPXr0kCT5+PhowIABGj16tHx9fVW2bFmNGTNGoaGhatu2rT1PDQAAAHZg13D722+/qVevXoqPj5ePj4/q1KmjjRs3Kjw8XJI0duxYpaWlafDgwbp06ZKaNGmizZs3y8vLy7qPuXPnytHRUd26dVNaWpratGmj6OhoOTg42Ou0AAAAYCclbp5be2CeWxQn5rkFACD/7rp5bgEAAIA7RbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmUaBwW6VKFV24cCFX+59//qkqVarccVEAAABAQRQo3J4+fVpZWVm52jMyMvTLL7/ccVEAAABAQTjmp/Mnn3xi/edNmzbJx8fHupyVlaVt27YpJCSk0IoDAAAA8iNf4fbJJ5+UJFksFvXp08dmnZOTk0JCQjR79uxCKw4AAADIj3yF2+zsbElS5cqVdeDAAZUrV65IigIAAAAKIl/hNkdcXFxh1wEAAADcsQKFW0natm2btm3bpsTEROuIbo6lS5fecWEAAABAfhUo3E6dOlXTpk1To0aNFBAQIIvFUth1AQAAAPlWoHC7ePFiRUdHq1evXoVdDwAAAFBgBZrnNjMzU82aNSvsWgAAAIA7UqBw+9xzz2n16tWFXQsAAABwRwr0WEJ6erqWLFmirVu3qk6dOnJycrJZP2fOnEIpDgAAAMiPAoXbw4cPq169epKko0eP2qzj5TIAAADYS4HC7fbt2wu7DgAAAOCOFeiZWwAAAKAkKtDIbevWrW/6+MFXX31V4IIAAACAgipQuM153jbH1atXdejQIR09elR9+vQpjLoAAACAfCtQuJ07d26e7VOmTFFqauodFQQAAAAUVKE+c/vss89q6dKlhblLAAAA4LYVarjdu3evXF1dC3OXAAAAwG0r0GMJXbp0sVk2DEPx8fE6ePCgJk6cWCiFAQAAAPlVoHDr4+Njs1yqVCnVqFFD06ZNU7t27QqlMAAAACC/ChRuly1bVth1AAAAAHesQOE2R0xMjE6cOCGLxaJatWqpfv36hVUXAAAAkG8FCreJiYl65plntGPHDpUuXVqGYSgpKUmtW7fWmjVrdN999xV2nQAAAMAtFWi2hKFDhyo5OVnHjh3TxYsXdenSJR09elTJyckaNmxYYdcIAAAA3JYCjdxu3LhRW7duVc2aNa1ttWrV0htvvMELZQAAALCbAo3cZmdny8nJKVe7k5OTsrOz77goAAAAoCAKNHL7yCOPaPjw4XrvvfcUGBgoSfrll180cuRItWnTplALBAAAJdvZaaH2LgHFqNKkI/Yu4aYKNHK7cOFCpaSkKCQkRPfff7+qVq2qypUrKyUlRQsWLCjsGgEAAIDbUqCR26CgIH333XfasmWLfvjhBxmGoVq1aqlt27aFXR8AAABw2/I1cvvVV1+pVq1aSk5OliSFh4dr6NChGjZsmBo3bqwHH3xQX3/9dZEUCgAAANxKvsLtvHnz9Pzzz8vb2zvXOh8fHw0cOFBz5swptOIAAACA/MhXuP3f//6nRx999Ibr27Vrp5iYmDsuCgAAACiIfIXb3377Lc8pwHI4Ojrq999/v+OiAAAAgILIV7itUKGCjhy58fQPhw8fVkBAwB0XBQAAABREvsJt+/btNWnSJKWnp+dal5aWpsmTJ+uJJ54otOIAAACA/MjXVGCvvvqq1q1bp+rVq+ull15SjRo1ZLFYdOLECb3xxhvKysrShAkTiqpWAAAA4KbyFW79/Py0Z88eDRo0SOPHj5dhGJIki8WiiIgILVq0SH5+fkVSKAAAAHAr+f6IQ3BwsL744gtdunRJp06dkmEYqlatmsqUKVMU9QEAAAC3rUBfKJOkMmXKqHHjxoVZCwAAAHBH8vVCGQAAAFCSEW4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBp2DXcRkVFqXHjxvLy8lL58uX15JNP6scff7TpYxiGpkyZosDAQLm5ualVq1Y6duyYTZ+MjAwNHTpU5cqVk4eHhzp27Kjz588X56kAAACgBLBruN25c6eGDBmib7/9Vlu2bNG1a9fUrl07Xb582dpn5syZmjNnjhYuXKgDBw7I399f4eHhSklJsfYZMWKE1q9frzVr1mj37t1KTU3VE088oaysLHucFgAAAOzE0Z4H37hxo83ysmXLVL58ecXExOjhhx+WYRiaN2+eJkyYoC5dukiSli9fLj8/P61evVoDBw5UUlKS3nnnHa1cuVJt27aVJK1atUpBQUHaunWrIiIiiv28AAAAYB8l6pnbpKQkSVLZsmUlSXFxcUpISFC7du2sfVxcXBQWFqY9e/ZIkmJiYnT16lWbPoGBgapdu7a1z99lZGQoOTnZ5gcAAIC7X4kJt4ZhaNSoUWrRooVq164tSUpISJAk+fn52fT18/OzrktISJCzs7PKlClzwz5/FxUVJR8fH+svKCiosE8HAAAAdlBiwu1LL72kw4cP67333su1zmKx2CwbhpGr7e9u1mf8+PFKSkqy/s6dO1fwwgEAAFBilIhwO3ToUH3yySfavn27KlasaG339/eXpFwjsImJidbRXH9/f2VmZurSpUs37PN3Li4u8vb2tvkBAADg7mfXcGsYhl566SWtW7dOX331lSpXrmyzvnLlyvL399eWLVusbZmZmdq5c6eaNWsmSWrYsKGcnJxs+sTHx+vo0aPWPgAAALg32HW2hCFDhmj16tX6+OOP5eXlZR2h9fHxkZubmywWi0aMGKHIyEhVq1ZN1apVU2RkpNzd3dWjRw9r3wEDBmj06NHy9fVV2bJlNWbMGIWGhlpnTwAAAMC9wa7h9s0335QktWrVyqZ92bJl6tu3ryRp7NixSktL0+DBg3Xp0iU1adJEmzdvlpeXl7X/3Llz5ejoqG7duiktLU1t2rRRdHS0HBwciutUAAAAUAJYDMMw7F2EvSUnJ8vHx0dJSUl2ef624csriv2YsJ+YWb3tXQIAFKqz00LtXQKKUaVJR+xy3NvNayXihTIAAACgMBBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACm4WjvAoB7zdlpofYuAcWo0qQj9i4BAO4pjNwCAADANAi3AAAAMA27httdu3apQ4cOCgwMlMVi0YYNG2zWG4ahKVOmKDAwUG5ubmrVqpWOHTtm0ycjI0NDhw5VuXLl5OHhoY4dO+r8+fPFeBYAAAAoKewabi9fvqy6detq4cKFea6fOXOm5syZo4ULF+rAgQPy9/dXeHi4UlJSrH1GjBih9evXa82aNdq9e7dSU1P1xBNPKCsrq7hOAwAAACWEXV8oe+yxx/TYY4/luc4wDM2bN08TJkxQly5dJEnLly+Xn5+fVq9erYEDByopKUnvvPOOVq5cqbZt20qSVq1apaCgIG3dulURERHFdi4AAACwvxL7zG1cXJwSEhLUrl07a5uLi4vCwsK0Z88eSVJMTIyuXr1q0ycwMFC1a9e29slLRkaGkpOTbX4AAAC4+5XYcJuQkCBJ8vPzs2n38/OzrktISJCzs7PKlClzwz55iYqKko+Pj/UXFBRUyNUDAADAHkpsuM1hsVhslg3DyNX2d7fqM378eCUlJVl/586dK5RaAQAAYF8lNtz6+/tLUq4R2MTEROtorr+/vzIzM3Xp0qUb9smLi4uLvL29bX4AAAC4+5XYcFu5cmX5+/try5Yt1rbMzEzt3LlTzZo1kyQ1bNhQTk5ONn3i4+N19OhRax8AAADcO+w6W0JqaqpOnTplXY6Li9OhQ4dUtmxZVapUSSNGjFBkZKSqVaumatWqKTIyUu7u7urRo4ckycfHRwMGDNDo0aPl6+ursmXLasyYMQoNDbXOngAAAIB7h13D7cGDB9W6dWvr8qhRoyRJffr0UXR0tMaOHau0tDQNHjxYly5dUpMmTbR582Z5eXlZt5k7d64cHR3VrVs3paWlqU2bNoqOjpaDg0Oxnw8AAADsy2IYhmHvIuwtOTlZPj4+SkpKssvztw1fXlHsx4T9rPeaZe8SUIwqTTpi7xKAInd2Wqi9S0Axstd97XbzWol95hYAAADIL8ItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA07PqFMgCAOfFxmnvLeq9b9wGKCyO3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTME24XbRokSpXrixXV1c1bNhQX3/9tb1LAgAAQDEzRbh9//33NWLECE2YMEHff/+9WrZsqccee0xnz561d2kAAAAoRqYIt3PmzNGAAQP03HPPqWbNmpo3b56CgoL05ptv2rs0AAAAFCNHexdwpzIzMxUTE6N//etfNu3t2rXTnj178twmIyNDGRkZ1uWkpCRJUnJyctEVehNZGWl2OS7sI8Upy94loBjZ675ib9zX7i3c1+4t9rqv5RzXMIyb9rvrw+0ff/yhrKws+fn52bT7+fkpISEhz22ioqI0derUXO1BQUFFUiNwvdr2LgDFK8rH3hUARY772j3Gzve1lJQU+fjcuIa7PtzmsFgsNsuGYeRqyzF+/HiNGjXKupydna2LFy/K19f3htsAhSE5OVlBQUE6d+6cvL297V0OANwx7msoLoZhKCUlRYGBgTftd9eH23LlysnBwSHXKG1iYmKu0dwcLi4ucnFxsWkrXbp0UZUI5OLt7c1/BACYCvc1FIebjdjmuOtfKHN2dlbDhg21ZcsWm/YtW7aoWbNmdqoKAAAA9nDXj9xK0qhR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RWfOnCm6CwQABUC4BQA7uHDhgjZv3qwhQ4bIw8Mjzz4Wi0WGYejxxx9XQkKCvvjiC8XExKhBgwZq06aNLl68aO0bGxurDRs26LPPPtNnn32mnTt3avr06db1L7/8srZv367169dr8+bN2rFjh2JiYmyO169fP33zzTdas2aNDh8+rKeeekqPPvqofvrpJ2ufK1euKCoqSm+//baOHTum8uXLF/KVAYA7w2MJAGAHp06dkmEYqlGjhk17uXLllJ6eLkkaMmSIIiIidOTIESUmJsrFxUWS9J///EcbNmzQhx9+qBdeeEGSlJ2drejoaHl5eUmSevXqpW3btunf//63UlNT9c4772jFihUKDw+XJC1fvlwVK1a0Hjc2Nlbvvfeezp8/r8DAQEnSmDFjtHHjRi1btkyRkZGSpKtXr2rRokWqW7duEV4dACg4wi0A2JHFYrFZ3r9/v7Kzs9WzZ09lZGQoJiZGqamp8vX1temXlpam2NhY63JISIg12EpSQECAEhMTJf0VXDMzM9W0aVPr+rJly9oE6++++06GYah69eo2x8nIyLA5trOzs+rUqXMHZwwARYtwCwB2ULVqVVksFv3www827VWqVJEkubm5SfprRDYgIMDm2dccpUuXtv6zk5OTzTqLxaLs7GxJkmEYt6wnOztbDg4OiomJkYODg806T09P6z+7ubnlCuQAUJIQbgHADnx9fRUeHq6FCxdq6NChN3zutkGDBkpISJCjo6NCQkIKdKyqVavKyclJ3377rSpVqiRJunTpkk6ePKmwsDBJUv369ZWVlaXExES1bNmyQMcBgJKAF8oAwE4WLVqka9euqVGjRnr//fd14sQJ/fjjj1q1apV++OEHOTg4qG3btmratKmefPJJbdq0SadPn9aePXv06quv6uDBg7d1HE9PTw0YMEAvv/yytm3bpqNHj6pv3742U3hVr15dPXv2VO/evbVu3TrFxcXpwIEDmjFjhr744ouiugQAUOgYuQUAO7n//vv1/fffKzIyUuPHj9f58+fl4uKiWrVqacyYMRo8eLAsFou++OILTZgwQf3799fvv/8uf39/Pfzww/Lz87vtY82aNUupqanq2LGjvLy8NHr0aCUlJdn0WbZsmV5//XWNHj1av/zyi3x9fdW0aVO1b9++sE8dAIqMxbidh7EAAACAuwCPJQAAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATOP/A8Lo1+A4EQ6JAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 5))\n", "sns.countplot(data=df, x='Sex', hue='Survived')\n", "ax.set_title('Survival Count by Gender')\n", "ax.set_xlabel('Gender')\n", "ax.set_ylabel('Count')\n", "ax.legend(title='Survived', loc='upper right', labels=['No', 'Yes'])" ] }, { "cell_type": "markdown", "id": "0750d35b-b41d-4059-b903-e2e315afda72", "metadata": {}, "source": [ "#### Countplot for survival by embarked\n", "\n", "Reasoning: This count plot helps visualize the relationship between embarked and survival rates.\n", "\n", "What to Look For: We want to see if the embarkation port plays important role on survival." ] }, { "cell_type": "code", "execution_count": 11, "id": "b3f36331-b425-49bd-b9fc-54cd795b1b81", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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rgIDA7V+/Xp7W15enrZs2aJWrVpJkpo1ayY3NzeHPqmpqTpw4IC9DwAAAP4YynxZQnkYPny4li1bpn/961/y9fW1z9DabDZ5enrKYrEoNjZW8fHxql+/vurXr6/4+Hh5eXlp4MCB9r5DhgzR6NGjVa1aNfn7+2vMmDEKDw9Xhw4dnHl6AAAAqGBODbfz5s2TJLVt29ahfcGCBYqJiZEkjR07Vjk5ORo2bJgyMjLUokULrVu3Tr6+vvb+M2fOlKurq/r166ecnBxFRkYqISFBLi4uFXUqAAAAqARu6j63ZsV9bis37nNbfrjPLQDgTlXavFYpvlAGAAAAlAfCLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQAAAEyDcAsAAADTINwCAADANJwabrdu3aoePXooODhYFotFK1eudNgeExMji8XisDz88MMOfXJzczVy5EhVr15d3t7e6tmzp06dOlWBZwEAAIDKwqnh9uLFi2rcuLHmzJlTYp/OnTsrNTXVvnz55ZcO22NjY7VixQolJiZq+/btys7OVvfu3VVQUHC7ywcAAEAl4+rMg3fp0kVdunS5bh+r1arAwMBit2VmZmr+/PlavHixOnToIElasmSJQkJCtGHDBnXq1KncawYAAEDlVemvuU1KSlLNmjV177336vnnn1d6erp9W3JysvLz8xUVFWVvCw4OVlhYmHbs2FHimLm5ucrKynJYAAAAcOer1OG2S5cuWrp0qTZt2qTp06dr9+7dat++vXJzcyVJaWlpcnd3V9WqVR32CwgIUFpaWonjTp48WTabzb6EhITc1vMAAABAxXDqZQk30r9/f/ufw8LCFBERodDQUH3xxRfq06dPifsZhiGLxVLi9nHjxmnUqFH29aysLAIuAACACVTqmdtrBQUFKTQ0VEePHpUkBQYGKi8vTxkZGQ790tPTFRAQUOI4VqtVfn5+DgsAAADufHdUuD179qxOnjypoKAgSVKzZs3k5uam9evX2/ukpqbqwIEDatWqlbPKBAAAgJM49bKE7OxsHTt2zL6ekpKivXv3yt/fX/7+/oqLi1Pfvn0VFBSk48eP67XXXlP16tXVu3dvSZLNZtOQIUM0evRoVatWTf7+/hozZozCw8Ptd08AAADAH4dTw+2ePXvUrl07+/rV62Cjo6M1b9487d+/X4sWLdL58+cVFBSkdu3aafny5fL19bXvM3PmTLm6uqpfv37KyclRZGSkEhIS5OLiUuHnAwAAAOeyGIZhOLsIZ8vKypLNZlNmZma5Xn/b7JVF5TbWH9kK33ecXYJp1J6w39klAABQJqXNa3fUNbcAAADA9RBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACmQbgFAACAaRBuAQAAYBqEWwAAAJgG4RYAAACm4dRwu3XrVvXo0UPBwcGyWCxauXKlw3bDMBQXF6fg4GB5enqqbdu2OnjwoEOf3NxcjRw5UtWrV5e3t7d69uypU6dOVeBZAAAAoLJwari9ePGiGjdurDlz5hS7fdq0aZoxY4bmzJmj3bt3KzAwUB07dtSFCxfsfWJjY7VixQolJiZq+/btys7OVvfu3VVQUFBRpwEAAIBKwtWZB+/SpYu6dOlS7DbDMDRr1iyNHz9effr0kSQtXLhQAQEBWrZsmYYOHarMzEzNnz9fixcvVocOHSRJS5YsUUhIiDZs2KBOnTpV2LkAAADA+SrtNbcpKSlKS0tTVFSUvc1qtapNmzbasWOHJCk5OVn5+fkOfYKDgxUWFmbvU5zc3FxlZWU5LAAAALjzVdpwm5aWJkkKCAhwaA8ICLBvS0tLk7u7u6pWrVpin+JMnjxZNpvNvoSEhJRz9QAAAHCGShtur7JYLA7rhmEUabvWjfqMGzdOmZmZ9uXkyZPlUisAAACcq9KG28DAQEkqMgObnp5un80NDAxUXl6eMjIySuxTHKvVKj8/P4cFAAAAd75KG27r1q2rwMBArV+/3t6Wl5enLVu2qFWrVpKkZs2ayc3NzaFPamqqDhw4YO8DAACAPw6n3i0hOztbx44ds6+npKRo79698vf3V+3atRUbG6v4+HjVr19f9evXV3x8vLy8vDRw4EBJks1m05AhQzR69GhVq1ZN/v7+GjNmjMLDw+13TwAAAMAfh1PD7Z49e9SuXTv7+qhRoyRJ0dHRSkhI0NixY5WTk6Nhw4YpIyNDLVq00Lp16+Tr62vfZ+bMmXJ1dVW/fv2Uk5OjyMhIJSQkyMXFpcLPBwAAAM5lMQzDcHYRzpaVlSWbzabMzMxyvf622SuLym2sP7IVvu84uwTTqD1hv7NLQAU68Wa4s0swDT47gPOVNq9V2mtuAQAAgJtFuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpuDq7AAD4vWavLHJ2CaaxwtfZFQBAxWPmFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZRqcNtXFycLBaLwxIYGGjfbhiG4uLiFBwcLE9PT7Vt21YHDx50YsUAAABwpkodbiXpgQceUGpqqn3Zv3+/fdu0adM0Y8YMzZkzR7t371ZgYKA6duyoCxcuOLFiAAAAOEulD7eurq4KDAy0LzVq1JD026ztrFmzNH78ePXp00dhYWFauHChLl26pGXLljm5agAAADhDpQ+3R48eVXBwsOrWrasnn3xSP/74oyQpJSVFaWlpioqKsve1Wq1q06aNduzYcd0xc3NzlZWV5bAAAADgzlepw22LFi20aNEirV27Vh999JHS0tLUqlUrnT17VmlpaZKkgIAAh30CAgLs20oyefJk2Ww2+xISEnLbzgEAAAAVp1KH2y5duqhv374KDw9Xhw4d9MUXX0iSFi5caO9jsVgc9jEMo0jbtcaNG6fMzEz7cvLkyfIvHgAAABXO1dkF3Axvb2+Fh4fr6NGjeuyxxyRJaWlpCgoKsvdJT08vMpt7LavVKqvVejtLBQCgQjV7ZZGzSzCN5HeecXYJuAWVeub2Wrm5uTp8+LCCgoJUt25dBQYGav369fbteXl52rJli1q1auXEKgEAAOAslXrmdsyYMerRo4dq166t9PR0vfXWW8rKylJ0dLQsFotiY2MVHx+v+vXrq379+oqPj5eXl5cGDhzo7NIBAADgBJU63J46dUoDBgzQr7/+qho1aujhhx/Wrl27FBoaKkkaO3ascnJyNGzYMGVkZKhFixZat26dfH19nVw5AAAAnKFSh9vExMTrbrdYLIqLi1NcXFzFFAQAAIBK7Y665hYAAAC4HsItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAANMg3AIAAMA0CLcAAAAwDcItAAAATKNSP34XAACgop14M9zZJZhC7Qn7nXJcZm4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGqYJt3PnzlXdunXl4eGhZs2aadu2bc4uCQAAABXMFOF2+fLlio2N1fjx4/Xtt9/qz3/+s7p06aITJ044uzQAAABUIFOE2xkzZmjIkCF67rnn1KBBA82aNUshISGaN2+es0sDAABABXJ1dgG3Ki8vT8nJyfqf//kfh/aoqCjt2LGj2H1yc3OVm5trX8/MzJQkZWVllWttBbk55TreH9UFtwJnl2Aa5f0evx343JQfPjvlh8/OHwufnfJR3p+bq+MZhnHdfnd8uP31119VUFCggIAAh/aAgAClpaUVu8/kyZP1xhtvFGkPCQm5LTXi1oQ5uwAzmWxzdgWoQHx2yhGfnT8UPjvl5DZ9bi5cuCCbreSx7/hwe5XFYnFYNwyjSNtV48aN06hRo+zrhYWFOnfunKpVq1biPnCOrKwshYSE6OTJk/Lz83N2OcAdg88OUDZ8diovwzB04cIFBQcHX7ffHR9uq1evLhcXlyKztOnp6UVmc6+yWq2yWq0ObVWqVLldJaIc+Pn58ZcMUAZ8doCy4bNTOV1vxvaqO/4LZe7u7mrWrJnWr1/v0L5+/Xq1atXKSVUBAADAGe74mVtJGjVqlJ5++mlFRESoZcuW+vDDD3XixAm98MILzi4NAAAAFcgU4bZ///46e/as3nzzTaWmpiosLExffvmlQkNDnV0abpHVatXEiROLXEYC4Pr47ABlw2fnzmcxbnQ/BQAAAOAOccdfcwsAAABcRbgFAACAaRBuAQAAYBqEWwAAAJgG4RaVVnp6uoYOHaratWvLarUqMDBQnTp10s6dO51dGlCppaWlaeTIkbrnnntktVoVEhKiHj16aOPGjc4uDQBuO8ItKq2+ffvqu+++08KFC3XkyBGtWrVKbdu21blz55xdGlBpHT9+XM2aNdOmTZs0bdo07d+/X2vWrFG7du00fPhwZ5cHVFonT57UkCFDFBwcLHd3d4WGhurll1/W2bNnnV0abhK3AkOldP78eVWtWlVJSUlq06aNs8sB7hhdu3bVvn379N///lfe3t4O286fP8+jxoFi/Pjjj2rZsqXuvfdevfXWW6pbt64OHjyoV155RXl5edq1a5f8/f2dXSZKiZlbVEo+Pj7y8fHRypUrlZub6+xygDvCuXPntGbNGg0fPrxIsJVEsAVKMHz4cLm7u2vdunVq06aNateurS5dumjDhg36+eefNX78eGeXiJtAuEWl5OrqqoSEBC1cuFBVqlRR69at9dprr2nfvn3OLg2otI4dOybDMHT//fc7uxTgjnHu3DmtXbtWw4YNk6enp8O2wMBADRo0SMuXLxe/6L5zEG5RafXt21enT5/WqlWr1KlTJyUlJalp06ZKSEhwdmlApXT1f74Wi8XJlQB3jqNHj8owDDVo0KDY7Q0aNFBGRobOnDlTwZWhrAi3qNQ8PDzUsWNHTZgwQTt27FBMTIwmTpzo7LKASql+/fqyWCw6fPiws0sBTOPqPxrd3d2dXAlKi3CLO0rDhg118eJFZ5cBVEr+/v7q1KmT3nvvvWI/J+fPn6/4ooBKrl69erJYLDp06FCx27///nvVqFGDa9bvIIRbVEpnz55V+/bttWTJEu3bt08pKSn69NNPNW3aNPXq1cvZ5QGV1ty5c1VQUKCHHnpIn332mY4eParDhw/rf//3f9WyZUtnlwdUOtWqVVPHjh01d+5c5eTkOGxLS0vT0qVLFRMT45ziUCbcCgyVUm5uruLi4rRu3Tr98MMPys/PV0hIiJ544gm99tprRS76B/D/pKam6u2339a///1vpaamqkaNGmrWrJn+8pe/qG3bts4uD6h0jh49qlatWqlBgwZFbgXm6uqqbdu2ycfHx9llopQItwAA4A/v+PHjiouL05o1a5Seni7DMNSnTx8tXrxYXl5ezi4PN4FwCwAAcI2JEydqxowZWrduHZf03GEItwAAAMVYsGCBMjMz9dJLL+muu/ia0p2CcAsAAADT4J8hAAAAMA3CLQAAAEyDcAsAAADTINwCAADANAi3AAAAMA3CLQDcAeLi4vTggw/elrGTkpJksVh0/vz5chvz+PHjslgs2rt3b7mNCQClQbgFgHIWExMji8VSZOncubOzSwMA03N1dgEAYEadO3fWggULHNqsVquTqilZfn6+s0sAgHLFzC0A3AZWq1WBgYEOS9WqVSVJFotFH3zwgbp37y4vLy81aNBAO3fu1LFjx9S2bVt5e3urZcuW+uGHH4qM+8EHHygkJEReXl564oknHC4l2L17tzp27Kjq1avLZrOpTZs2+s9//uOwv8Vi0fvvv69evXrJ29tbb731VpFj5OTkqFu3bnr44Yd17tw5Sb89qalBgwby8PDQ/fffr7lz5zrs880336hJkyby8PBQRESEvv3221t9CQGgTAi3AOAEkyZN0jPPPKO9e/fq/vvv18CBAzV06FCNGzdOe/bskSSNGDHCYZ9jx47pk08+0erVq7VmzRrt3btXw4cPt2+/cOGCoqOjtW3bNu3atUv169dX165ddeHCBYdxJk6cqF69emn//v0aPHiww7bMzExFRUUpLy9PGzdulL+/vz766CONHz9eb7/9tg4fPqz4+Hi9/vrrWrhwoSTp4sWL6t69u+677z4lJycrLi5OY8aMuR0vGwDcmAEAKFfR0dGGi4uL4e3t7bC8+eabhmEYhiTjr3/9q73/zp07DUnG/Pnz7W3/+Mc/DA8PD/v6xIkTDRcXF+PkyZP2tq+++sq46667jNTU1GLruHLliuHr62usXr3a3ibJiI2Ndei3efNmQ5Lx/fffG40bNzb69Olj5Obm2reHhIQYy5Ytc9hn0qRJRsuWLQ3DMIwPPvjA8Pf3Ny5evGjfPm/ePEOS8e23397w9QKA8sQ1twBwG7Rr107z5s1zaPP397f/uVGjRvY/BwQESJLCw8Md2i5fvqysrCz5+flJkmrXrq1atWrZ+7Rs2VKFhYX673//q8DAQKWnp2vChAnatGmTfvnlFxUUFOjSpUs6ceKEQx0RERHF1tyhQwc1b95cn3zyiVxcXCRJZ86c0cmTJzVkyBA9//zz9r5XrlyRzWaTJB0+fFiNGzeWl5eXQ20A4AyEWwC4Dby9vVWvXr0St7u5udn/bLFYSmwrLCwscYyrfa7+NyYmRmfOnNGsWbMUGhoqq9Wqli1bKi8vr0htxenWrZs+++wzHTp0yB60rx7/o48+UosWLRz6Xw3AhmGUWCMAVDTCLQDcIU6cOKHTp08rODhYkrRz507ddddduvfeeyVJ27Zt09y5c9W1a1dJ0smTJ/Xrr7+WevwpU6bIx8dHkZGRSkpKUsOGDRUQEKC7775bP/74owYNGlTsfg0bNtTixYuVk5MjT09PSdKuXbtu5VQBoMwItwBwG+Tm5iotLc2hzdXVVdWrVy/zmB4eHoqOjtbf/vY3ZWVl6aWXXlK/fv0UGBgoSapXr54WL16siIgIZWVl6ZVXXrGHzdL629/+poKCArVv315JSUm6//77FRcXp5deekl+fn7q0qWLcnNztWfPHmVkZGjUqFEaOHCgxo8fryFDhuivf/2rjh8/rr/97W9lPk8AuBXcLQEAboM1a9YoKCjIYXnkkUduacx69eqpT58+6tq1q6KiohQWFuZwS66PP/5YGRkZatKkiZ5++mm99NJLqlmz5k0fZ+bMmerXr5/at2+vI0eO6LnnntPf//53JSQkKDw8XG3atFFCQoLq1q0rSfLx8dHq1at16NAhNWnSROPHj9fUqVNv6VwBoKwsBhdLAQAAwCSYuQUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmAbhFgAAAKZBuAUAAIBpEG4BAABgGoRbAAAAmMb/D8qPNojPdpTRAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 5))\n", "sns.countplot(data=df, x='Embarked', hue='Survived')\n", "ax.set_title('Survival Count by Embarked')\n", "ax.set_xlabel('Embarked')\n", "ax.set_ylabel('Count')\n", "ax.legend(title='Survived', loc='upper right', labels=['No', 'Yes'])" ] }, { "cell_type": "markdown", "id": "a32cb429-3c3d-49d4-a068-b376704ac90d", "metadata": {}, "source": [ "#### Countplot for survival by Pclass\n", "\n", "Reasoning: The Pclass variable categorizes passengers into three classes based on the ticket they purchased. Analyzing survival rates by passenger class can provide insights into how socioeconomic status affected survival chances during the Titanic disaster.\n", "\n", "What to Look For: We want to observe the survival counts across the three classes. Generally, it is expected that 1st-class passengers would have a significantly higher survival rate compared to those in 2nd and 3rd class. This can provide a stark visual representation of the impact of class on survival rates." ] }, { "cell_type": "code", "execution_count": 12, "id": "b9d36831-8f59-4a60-b195-b2a3125b7084", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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dVJ6erpsNluV3qc6sFsCAABADTFs2DAVFRVp9erVatq0qX7++Wdt3rxZZ86cqdB4hmGouLhYrq6Xj3zu7u4KCgqq0D1qGmZuAQAAaoCzZ89qx44dWrBggaKjoxUWFqb27dtr1qxZ6tevn44dOyaLxaLU1FSH11gsFiUnJ0v6v+UFn376qaKiomS1WrVy5UpZLBYdPnzY4X6LFy9WkyZNZBiGw7KE7OxseXp6auPGjQ7933vvPXl5eSk3N1eS9OOPP2rEiBGqX7++/P39NWjQIB07dszev7i4WFOnTlW9evXk7++vGTNmyDCMKnnvfo9wCwAAUAN4e3vL29tbGzZsUEFBwTWNNWPGDMXFxenQoUO688471bZtW7355psOfdatW6dRo0aV+BIJm82mfv36ldp/0KBB8vb21q+//qro6Gh5e3tr27Zt2rFjh7y9vXX77bersLBQkrRo0SK9/vrrWrlypXbs2KEzZ84oMTHxmp7rarAsAQAAE2j7+Bpnl2AaKc/f55T7urq6Kj4+XhMmTNArr7yiNm3aqFu3brr77rvVqlWrco01b9489erVy34+evRoLVu2TM8884wk6ciRI0pJSdGaNaX/vRk9erTuu+8+/frrr6pbt65ycnL00Ucf6d1335UkJSQkqE6dOvrXv/5lD8erVq1SvXr1lJycrN69e+uFF17QrFmzNGzYMEnSK6+8ok8//bTc70t5MXMLAABQQwwbNkw//fSTPvjgA/Xp00fJyclq06aN4uPjyzVOVFSUw/ndd9+tH374Qbt27ZIkvfnmm7r55pvVsmXLUl/fr18/ubq66oMPPpAkvfvuu/Lx8VHv3r0lSSkpKfruu+/k4+Njn3H28/PT+fPn9f333ys7O1vp6enq2LGjfUxXV9cSdVUFwi0AAEAN4uHhoV69eunpp5/Wzp07NXbsWM2ZM8f+7V2/X7daVFRU6hheXl4O58HBwYqOjta6deskSf/+9791zz33lFmDu7u77rzzTnv/devWacSIEfYPpl28eFFt27ZVamqqw3HkyBGNGjWq4g9fCQi3AAAANVjLli2Vl5enhg0bSpLS09Pt137/4bIrGT16tNavX68vvvhC33//ve6+++4r9t+4caMOHDigzz//XKNHj7Zfa9OmjY4ePaqAgABdf/31DofNZpPNZlNwcLB9pliSLly4oJSUlKuut6IItwAAADXA6dOn1aNHD73xxhvau3ev0tLS9Pbbb2vhwoUaNGiQPD09deutt+q5557TwYMHtW3bNv3tb3+76vGHDh2qnJwcPfzww4qOjtZ111132f7dunVTYGCgRo8erSZNmujWW2+1Xxs9erQaNGigQYMGafv27UpLS9PWrVv12GOP6eTJk5Kkxx57TM8995wSExN1+PBhTZw4scq/JEIi3AIAANQI3t7e6tChg5YsWaKuXbsqIiJCTz31lCZMmKBly5ZJkl5//XUVFRUpKipKjz32mJ599tmrHt/X11cDBgzQN9984zALWxaLxaKRI0eW2r9u3bratm2bGjdurKFDh+rGG2/UuHHjlJ+fL19fX0nStGnTdN9992ns2LHq2LGjfHx8NGTIkHK8IxVjMapjw7EaLicnRzabTdnZ2fY/EAAAahN2S6g8Vblbwvnz55WWlqbw8HB5eHhU2X1qq8u9P1eb15i5BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGkQbgEAAGAahFsAAACYBuEWAAAApkG4BQAAgGm4OrsAAACAP7vq/oa5qvwWNmdj5hYAAABXNHbsWFksFj333HMO7Rs2bJDFYnFSVSU5NdyuWLFCrVq1kq+vr3x9fdWxY0d98skn9uuX3sTfH7feeqvDGAUFBZo8ebIaNGggLy8vDRw4UCdPnqzuRwEAADA9Dw8PLViwQFlZWc4upUxODbeNGjXSc889pz179mjPnj3q0aOHBg0apAMHDtj73H777UpPT7cfH3/8scMYU6ZMUWJiohISErRjxw7l5uaqf//+Ki4uru7HAQAAMLWePXsqKChIcXFxZfZ59913ddNNN8lqtapJkyZatGhRNVbo5HA7YMAA3XHHHWrevLmaN2+uv//97/L29tauXbvsfaxWq4KCguyHn5+f/Vp2drZWrlypRYsWqWfPnrrlllv0xhtvaN++ffrss8+c8UgAAACm5eLiovnz52vp0qWl/qY8JSVFw4cP19133619+/YpNjZWTz31lOLj46utxhqz5ra4uFgJCQnKy8tTx44d7e3JyckKCAhQ8+bNNWHCBGVmZtqvpaSkqKioSL1797a3hYSEKCIiQjt37izzXgUFBcrJyXE4AAAAcGVDhgzRzTffrDlz5pS4tnjxYsXExOipp55S8+bNNXbsWE2aNEnPP/98tdXn9HC7b98+eXt7y2q16qGHHlJiYqJatmwpSerbt6/efPNNbdmyRYsWLdLu3bvVo0cPFRQUSJIyMjLk7u6u+vXrO4wZGBiojIyMMu8ZFxcnm81mP0JDQ6vuAQEAAExmwYIFWr16tQ4ePOjQfujQIXXu3NmhrXPnzjp69Gi1LRl1erht0aKFUlNTtWvXLj388MMaM2aM/Y0aMWKE+vXrp4iICA0YMECffPKJjhw5oo8++uiyYxqGcdlP7c2aNUvZ2dn248SJE5X6TAAAAGbWtWtX9enTR7Nnz3ZoLy2DGYZRnaU5f59bd3d3XX/99ZKkqKgo7d69Wy+++KL++c9/lugbHByssLAwHT16VJIUFBSkwsJCZWVlOczeZmZmqlOnTmXe02q1ymq1VvKTAAAA/Hk899xzuvnmm9W8eXN7W8uWLbVjxw6Hfjt37lTz5s3l4uJSLXU5feb2jwzDsC87+KPTp0/rxIkTCg4OliS1bdtWbm5uSkpKsvdJT0/X/v37LxtuAQAAcG0iIyM1evRoLV261N42bdo0bd68Wc8884yOHDmi1atXa9myZZo+fXq11eXUmdvZs2erb9++Cg0N1blz55SQkKDk5GRt3LhRubm5io2N1bBhwxQcHKxjx45p9uzZatCggYYMGSJJstlsGj9+vKZNmyZ/f3/5+flp+vTpioyMVM+ePZ35aAAAAFettn5j2DPPPKO33nrLft6mTRu99dZbevrpp/XMM88oODhY8+bN09ixY6utJqeG259//ln33nuv0tPTZbPZ1KpVK23cuFG9evVSfn6+9u3bpzVr1ujs2bMKDg5WdHS01q9fLx8fH/sYS5Yskaurq4YPH678/HzFxMQoPj6+2qa+AQAA/gxK284rLCxM58+fd2gbNmyYhg0bVk1VleTUcLty5coyr3l6eurTTz+94hgeHh5aunSpw5Q4AAAA/pxq3JpbAAAAoKIItwAAADANwi0AAABMg3ALAAAA0yDcAgAAwDQItwAAADANwi0AAABMg3ALAAAA03DqlzgAAABAOj4vslrv1/jpfdV6v+rEzC0AAADKZBiGevbsqT59+pS49vLLL8tms+n48eNOqKx0hFsAAACUyWKxaNWqVfryyy/1z3/+096elpammTNn6sUXX1Tjxo2dWKEjwi0AAAAuKzQ0VC+++KKmT5+utLQ0GYah8ePHKyYmRu3bt9cdd9whb29vBQYG6t5779Uvv/xif+0777yjyMhIeXp6yt/fXz179lReXl6V1Uq4BQAAwBWNGTNGMTExuv/++7Vs2TLt379fL774orp166abb75Ze/bs0caNG/Xzzz9r+PDhkqT09HSNHDlS48aN06FDh5ScnKyhQ4fKMIwqq5MPlAEAAOCqvPrqq4qIiND27dv1zjvvaOXKlWrTpo3mz59v7/P6668rNDRUR44cUW5uri5cuKChQ4cqLCxMkhQZWbUfnmPmFgAAAFclICBA/+///T/deOONGjJkiFJSUvT555/L29vbftxwww2SpO+//16tW7dWTEyMIiMjddddd+m1115TVlZWldZIuAUAAMBVc3V1lavrb7/8v3jxogYMGKDU1FSH4+jRo+ratatcXFyUlJSkTz75RC1bttTSpUvVokULpaWlVVl9hFsAAABUSJs2bXTgwAE1adJE119/vcPh5eUl6bfdFjp37qy5c+fq66+/lru7uxITE6usJsItAAAAKuSRRx7RmTNnNHLkSH311Vf673//q02bNmncuHEqLi7Wl19+qfnz52vPnj06fvy43nvvPZ06dUo33nhjldXEB8oAAACcrLZ+Y1hISIj+85//aObMmerTp48KCgoUFham22+/XXXq1JGvr6+2bdumF154QTk5OQoLC9OiRYvUt2/fKqvJYlTlXgy1RE5Ojmw2m7Kzs+Xr6+vscgAAKLe2j69xdgmmkfL8fVU29vnz55WWlqbw8HB5eHhU2X1qq8u9P1eb11iWAAAAANMg3AIAAMA0CLcAAAAwDcItAAAATINwCwAAUM34PH/pKuN9IdwCAABUEzc3N0nSr7/+6uRKaqZL78ul96ki2OcWAACgmri4uKhevXrKzMyUJNWtW1cWi8XJVTmfYRj69ddflZmZqXr16snFxaXCYxFuAQAAqlFQUJAk2QMu/k+9evXs709FEW4BAACqkcViUXBwsAICAlRUVOTscmoMNze3a5qxvYRwCwAA4AQuLi6VEubgiA+UAQAAwDQItwAAADANwi0AAABMg3ALAAAA0yDcAgAAwDQItwAAADANwi0AAABMg3ALAAAA03BquF2xYoVatWolX19f+fr6qmPHjvrkk0/s1w3DUGxsrEJCQuTp6anu3bvrwIEDDmMUFBRo8uTJatCggby8vDRw4ECdPHmyuh8FAAAA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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(8, 5))\n", "sns.countplot(data=df, x='Pclass', hue='Survived')\n", "ax.set_title('Survival Count by Pclass')\n", "ax.set_xlabel('Pclass')\n", "ax.set_ylabel('Count')\n", "ax.legend(title='Survived', loc='upper right', labels=['No', 'Yes'])" ] }, { "cell_type": "markdown", "id": "5d38347a-6c72-423b-9a97-6be0af7ee378", "metadata": {}, "source": [ "#### Age Distribution of Passengers\n", "\n", "Reasoning: The age distribution histogram allows us to understand the demographics of the passengers aboard the Titanic. Knowing the age distribution can help us assess how age factors into survival, particularly whether younger or older passengers had different survival rates.\n", "\n", "What to Look For: We look for the shape of the distribution (normal, skewed, bimodal, etc.) and any age groups that are overrepresented or underrepresented. This can indicate trends in who was traveling on the Titanic." ] }, { "cell_type": "code", "execution_count": 13, "id": "59d86ad5-f7a1-4374-8483-1c3d099ee97a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Frequency')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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6xYsWCDCw8OFWq0WgYGB4rHHHhOFhYV19gsPDxdjxoxp8LoGDx4sBg8e3GB9ffn5+eLRRx8VgYGBQqVSifDwcLFw4UJRUVHRoL0bHfXuagoLC8XDDz8s/P39hV6vF7feeqv45ZdfGuR+/fXXxYABA4Svr6/QaDQiLCxMPPzww+LixYtCiOt/bwghxM6dO8WYMWOEt7e3UKvVIjg4WIwZM0Z8/vnn9n0u/dvn5eXVee7q1asFAJGcnGxfV1BQIB566CHh6ekp9Hq9GD58uNi7d68AIN544406z09OThYzZ84UwcHBQq1WCz8/PzFgwACxePFi+z6XRr37fZ5LnnvuOREXFye8vLyEVqsV7du3F08++aQwmUxX7WciosuRhLiOYZSIiKiOJUuW4C9/+QtSU1Oves8QETW0fv16TJkyBb/++isGDBggdxwiosvipXdERNewYsUKAECnTp1QXV2Nn376CW+++SamTp3KIonoGj755BNkZGSga9euUCgU2Lt3L1577TUMGjSIRRIRNWsslIiIrkGv1+Of//wnLl68iMrKSoSFhWHBggX4y1/+Inc0ombPYDBgw4YNWLx4McrKyhAYGIgZM2Zg8eLFckcjIroqXnpHRERERERUD4cHJyIiIiIiqoeFEhERERERUT0slIiIiIiIiOpp9YM52Gw2ZGZmwmAwQJIkueMQEREREZFMxG8TugcFBdWZ9PpyWn2hlJmZidDQULljEBERERFRM5GWlnbNKT5afaFkMBgA1HaGu7u7zGmIiIiIiEguZrMZoaGh9hrhalp9oXTpcjt3d3cWSkREREREdF235HAwByIiIiIionpYKBEREREREdXDQomIiIiIiKgeFkpERERERET1sFAiIiIiIiKqh4USERERERFRPSyUiIiIiIiI6mGhREREREREVA8LJSIiIiIionpYKBEREREREdXDQomIiIiIiKgeFkpERERERET1sFAiIiIiIiKqh4USERERERFRPSq5AxBR65WamgqTyeS09n19fREWFua09omIiKjtYqFERE6RmpqKTp07w1Je7rRj6PR6nE5MZLFEREREDsdCiYicwmQywVJejikLXoMxLNLh7eekJuHjV56ByWRioUREREQOx0KJiJzKGBaJkKgYuWMQERER3RAO5kBERERERFQPCyUiIiIiIqJ6WCgRERERERHVw0KJiIiIiIioHhZKRERERERE9bBQIiIiIiIiqoeFEhERERERUT0slIiIiIiIiOqRtVBq164dJElqsMyZMwcAIIRAfHw8goKCoNPpMGTIECQkJMgZmYiIiIiI2gBZC6UDBw4gKyvLvmzduhUAMHHiRADAq6++imXLlmHFihU4cOAAAgICMHz4cJSUlMgZm4iIiIiIWjlZCyU/Pz8EBATYl2+//RaRkZEYPHgwhBBYvnw5Fi1ahPHjxyM2NhZr1qxBeXk51q9fL2dsIiIiIiJq5ZrNPUpVVVVYt24dZs6cCUmSkJycjOzsbIwYMcK+j1arxeDBg7F79+4rtlNZWQmz2VxnISIiIiIiuhHNplD6+uuvUVRUhBkzZgAAsrOzAQBGo7HOfkaj0b7tcpYuXQoPDw/7Ehoa6rTMRERERETUOjWbQumDDz7AqFGjEBQUVGe9JEl1HgshGqz7vYULF6K4uNi+pKWlOSUvERERERG1Xiq5AwBASkoKtm3bho0bN9rXBQQEAKg9sxQYGGhfn5ub2+As0+9ptVpotVrnhSUiIiIiolavWZxRWr16Nfz9/TFmzBj7uoiICAQEBNhHwgNq72PauXMnBgwYIEdMIiIiIiJqI2Q/o2Sz2bB69WpMnz4dKtX/4kiShHnz5mHJkiWIiopCVFQUlixZAr1ejwceeEDGxERERERE1NrJXiht27YNqampmDlzZoNtzz77LCwWC2bPno3CwkL069cPP/zwAwwGgwxJiYiIiIiorZC9UBoxYgSEEJfdJkkS4uPjER8ff3NDERERERFRm9Ys7lEiIiIiIiJqTlgoERERERER1cNCiYiIiIiIqB4WSkRERERERPWwUCIiIiIiIqqHhRIREREREVE9LJSIiIiIiIjqYaFERERERERUDwslIiIiIiKielgoERERERER1cNCiYiIiIiIqB4WSkRERERERPWwUCIiIiIiIqqHhRIREREREVE9LJSIiIiIiIjqYaFERERERERUDwslIiIiIiKielRyByAieaWmpsJkMjm83cTERIe3eTM5q18u8fX1RVhYmNPaJyIioqZhoUTUhqWmpqJT586wlJc77RilpaVOa9tZbka/6PR6nE5MZLFERETUTLFQImrDTCYTLOXlmLLgNRjDIh3aduL+ndi05g1UVFQ4tN2bwZn9AgA5qUn4+JVnYDKZWCgRERE1UyyUiAjGsEiERMU4tM2c1CSHticHZ/QLERERtQwczIGIiIiIiKgeFkpERERERET1sFAiIiIiIiKqh4USERERERFRPSyUiIiIiIiI6mGhREREREREVA8LJSIiIiIionpYKBEREREREdXDQomIiIiIiKgeFkpERERERET1sFAiIiIiIiKqRyV3ACKitioxMdEp7fr6+iIsLMwpbRMREbUVLJSIiG4yc0EeAGDq1KlOaV+n1+N0YiKLJSIioiZgoUREdJNZSs0AgDGzFiG6W2+Htp2TmoSPX3kGJpOJhRIREVETsFAiIpKJT1A4QqJi5I5BREREl8HBHIiIiIiIiOphoURERERERFQPCyUiIiIiIqJ6ZC+UMjIyMHXqVPj4+ECv16NHjx44dOiQfbsQAvHx8QgKCoJOp8OQIUOQkJAgY2IiIiIiImrtZC2UCgsLMXDgQKjVamzatAmnTp3C66+/Dk9PT/s+r776KpYtW4YVK1bgwIEDCAgIwPDhw1FSUiJfcCIiIiIiatVkHfXulVdeQWhoKFavXm1f165dO/v/CyGwfPlyLFq0COPHjwcArFmzBkajEevXr8esWbNudmQiIiIiImoDZD2j9M033yAuLg4TJ06Ev78/evbsiffee8++PTk5GdnZ2RgxYoR9nVarxeDBg7F79+7LtllZWQmz2VxnISIiIiIiuhGyFkoXLlzAypUrERUVhS1btuDRRx/FE088gbVr1wIAsrOzAQBGo7HO84xGo31bfUuXLoWHh4d9CQ0Nde6LICIiIiKiVkfWQslms6FXr15YsmQJevbsiVmzZuGRRx7BypUr6+wnSVKdx0KIBusuWbhwIYqLi+1LWlqa0/ITEREREVHrJGuhFBgYiC5dutRZ17lzZ6SmpgIAAgICAKDB2aPc3NwGZ5ku0Wq1cHd3r7MQERERERHdCFkLpYEDB+LMmTN11p09exbh4eEAgIiICAQEBGDr1q327VVVVdi5cycGDBhwU7MSEREREVHbIeuod08++SQGDBiAJUuW4L777sP+/fuxatUqrFq1CkDtJXfz5s3DkiVLEBUVhaioKCxZsgR6vR4PPPCAnNGJiIiIiKgVk7VQ6tOnD7766issXLgQf/vb3xAREYHly5djypQp9n2effZZWCwWzJ49G4WFhejXrx9++OEHGAwGGZMTEREREVFrJmuhBABjx47F2LFj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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(10, 5))\n", "sns.histplot(data=df, x='Age', bins=30, kde=True)\n", "ax.set_title('Age Distribution of Passengers')\n", "ax.set_xlabel('Age')\n", "ax.set_ylabel('Frequency')" ] }, { "cell_type": "markdown", "id": "445cf85f-5d17-4132-b191-b3c48371e438", "metadata": {}, "source": [ "#### Fare Distribution of Passengers\n", "\n", "Reasoning: This graphs allows us to understand the underlying fare distribution as a function of the survival status.\n", "\n", "What to Look For: We look for the shape of the distribution (normal, skewed, bimodal, etc.)." ] }, { "cell_type": "code", "execution_count": 14, "id": "e63c58a3-e243-49d1-8a67-8ba2756bfdbb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Frequency')" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAHUCAYAAAAwUBnrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0xElEQVR4nO3deXxU1f3/8dedNfsOWVgCIqCsVXABF0AWBXe04lZBsV/3SoFaqfUnthZUvqIt1qUVAVfUVqzfumIRLKUoi8giIGAgLAkhhOzJZJb7+2OSgSEBkjDJJOT9fDzuY3LvPXPvZya3NG/PuecapmmaiIiIiIiISL1Zwl2AiIiIiIhIa6MgJSIiIiIi0kAKUiIiIiIiIg2kICUiIiIiItJAClIiIiIiIiINpCAlIiIiIiLSQApSIiIiIiIiDaQgJSIiIiIi0kAKUiIiIiIiIg2kICUicoT58+djGEady9SpU8NdHjt37gyqyW63k5yczDnnnMMvf/lLNm3aVOs9S5cuxTAMli5d2qBzvfDCC8yfP79B76nrXBMmTCAmJqZBxzmRFStWMH36dAoLC2vtGzp0KEOHDg3p+UJt586dXH755SQlJWEYBpMmTTpm2y5dugT9zmNiYjjvvPN47bXXmq9gERGpxRbuAkREWqJ58+ZxxhlnBG3LyMgIUzW1PfDAA9x88834fD4KCwv59ttvefXVV5kzZw4zZ87kV7/6VaDt2WefzX//+1969erVoHO88MILpKSkMGHChHq/p7HnaqgVK1bw+OOPM2HCBBISEoL2vfDCC0167lD45S9/yddff82rr75KWloa6enpx21/wQUX8L//+78A7Nmzh//93/9l/PjxlJWVcc899zRHySIichQFKRGROvTp04eBAweG9JhutxvDMLDZTv6f3s6dO3P++ecH1seMGcPkyZMZO3YsDz30EH369GH06NEAxMXFBbVtCjWfrTnOdSJNHeJCYePGjZx77rlcc8019WqfkJAQ9L2OGDGCzMxMZs+erSDVABUVFURERGAYRrhLEZFTgIb2iYg0wPbt27n99tvp3r07UVFRdOjQgSuvvJINGzYEtasZ4vb6668zZcoUOnTogNPpZPv27QB88cUXDB8+nLi4OKKiorjgggv417/+dVK1RUZGMnfuXOx2O7NmzapVy5HD7X788UduvPFGMjIycDqdpKamMnz4cNatWwf4h5Nt2rSJZcuWBYaUdenS5YSf7XjDCDdt2sTw4cOJjo6mXbt23H///ZSXlwf21wxbrGs4oWEYTJ8+HYDp06cHety6du0aqK/mnHUN7SsoKODee++lQ4cOOBwOTjvtNB555BFcLlet89x///28/vrrnHnmmURFRdG/f3/++c9/nvgXAGRnZ3PrrbfSvn17nE4nZ555Js888ww+ny/ou9u+fTuffPJJoPadO3fW6/g1EhIS6NmzJ7t27QJg9erV3HjjjXTp0oXIyEi6dOnCTTfdFNhfo7y8nKlTp9K1a1ciIiJISkpi4MCBvP3224E2J7o2arzzzjsMGjSI6OhoYmJiuPTSS/n222+D2tQM69y+fTtjxowhJiaGTp06MWXKlFrf/Z49e7j++uuJjY0lISGBW265hVWrVtV5TaxevZqrrrqKpKQkIiIiOOuss3j33XeD2tQM0/3888+54447aNeuHVFRUbhcLg4cOMD//M//0KlTJ5xOJ+3ateOCCy7giy++aNDvQUTaNvVIiYjUwev14vF4grbZbDb27dtHcnIyTz75JO3ataOgoIAFCxZw3nnn8e2339KzZ8+g90ybNo1Bgwbx0ksvYbFYaN++PW+88Qa33XYbV199NQsWLMBut/Pyyy9z6aWX8tlnnzF8+PBG152RkcGAAQNYsWIFHo/nmL1fY8aMwev18vTTT9O5c2fy8/NZsWJF4J6jRYsWcf311xMfHx8YKud0Ok/42XJzc+s8n9vtZsyYMdx11108/PDDrFixgieeeIJdu3bxf//3fw36jHfeeScFBQXMmTOH999/PzAs7lg9UZWVlQwbNowdO3bw+OOP069fP/79738zc+ZM1q1bx0cffRTU/qOPPmLVqlX87ne/IyYmhqeffpprr72WrVu3ctpppx2zrgMHDjB48GCqqqr4/e9/T5cuXfjnP//J1KlT2bFjBy+88EJg6OO1115Lt27dAsP1TjS072hut5tdu3bRrl07wB9Ce/bsyY033khSUhI5OTm8+OKLnHPOOXz//fekpKQAMHnyZF5//XWeeOIJzjrrLMrKyti4cSMHDx4MHPtE1wbAjBkz+O1vf8vtt9/Ob3/7W6qqqpg1axYXXXQR33zzTdDvwu12c9VVVzFx4kSmTJnCV199xe9//3vi4+P5f//v/wFQVlbGsGHDKCgo4KmnnuL000/n008/Zdy4cbU++5dffslll13Geeedx0svvUR8fDwLFy5k3LhxlJeX1xqKescdd3D55Zfz+uuvU1ZWht1u52c/+xlr167lD3/4Az169KCwsJC1a9cGfQ8iIidkiohIwLx580ygzsXtdtdq7/F4zKqqKrN79+7mL3/5y8D2L7/80gTMiy++OKh9WVmZmZSUZF555ZVB271er9m/f3/z3HPPPW59WVlZJmDOmjXrmG3GjRtnAub+/fuDavnyyy9N0zTN/Px8EzCfe+65456rd+/e5pAhQ2ptP9Znq+tcpmma48ePNwHzj3/8Y1DbP/zhDyZgLl++POizzZs3r9ZxAfOxxx4LrM+aNcsEzKysrFpthwwZElT3Sy+9ZALmu+++G9TuqaeeMgHz888/DzpPamqqWVxcHNiWm5trWiwWc+bMmbXOdaSHH37YBMyvv/46aPs999xjGoZhbt26NbAtMzPTvPzyy497vCPbjhkzxnS73abb7TazsrIC3+mvfvWrOt/j8XjM0tJSMzo6Ouh779Onj3nNNdcc81z1uTays7NNm81mPvDAA0HbS0pKzLS0NPOGG24IbKup8+jvfsyYMWbPnj0D63/+859NwPzkk0+C2t111121rokzzjjDPOuss2r97/GKK64w09PTTa/Xa5rm4f8t33bbbbU+Q0xMjDlp0qRjfkYRkfrQ0D4RkTq89tprrFq1Kmix2Wx4PB5mzJhBr169cDgc2Gw2HA4H27ZtY/PmzbWOc9111wWtr1ixgoKCAsaPH4/H4wksPp+Pyy67jFWrVlFWVnZStZumedz9SUlJdOvWjVmzZjF79my+/fbbwNCzhjj6s53ILbfcErR+8803A/4ehqa0ZMkSoqOjuf7664O21/RcHD2kctiwYcTGxgbWU1NTad++fa1hcnWdp1evXpx77rm1zmOaJkuWLGn0Z/j444+x2+3Y7Xa6du3Ku+++ywMPPMATTzwBQGlpKb/+9a85/fTTsdls2Gw2YmJiKCsrC7ouzz33XD755BMefvhhli5dSkVFRdB56nNtfPbZZ3g8Hm677bagazgiIoIhQ4bUGtZpGAZXXnll0LZ+/foFfZ/Lli0jNjaWyy67LKjdTTfdFLS+fft2tmzZEriWjjz/mDFjyMnJYevWrUHvqes6Pffcc5k/fz5PPPEEK1euxO1212ojInIiClIiInU488wzGThwYNAC/qFRjz76KNdccw3/93//x9dff82qVavo379/rT9KofaQrf379wNw/fXXB/4wrlmeeuopTNOkoKDgpGrftWsXTqeTpKSkOvcbhsG//vUvLr30Up5++mnOPvts2rVrxy9+8QtKSkrqfZ6GDEez2WwkJycHbUtLSwNo8uFUBw8eJC0trdYEA+3bt8dms9U6/9F1gn9YY12/36PPU9d3UjPb48l8zgsvvJBVq1axevVqvv/+ewoLC/nTn/6Ew+EA/KH0+eef58477+Szzz7jm2++YdWqVbRr1y6o7j/96U/8+te/5oMPPmDYsGEkJSVxzTXXsG3bNqB+10bNNXzOOefUuobfeecd8vPzg2qPiooiIiIiaJvT6aSysjLou0tNTa31uY/eVnPuqVOn1jr3vffeC1Dr/HX9Tt555x3Gjx/PK6+8wqBBg0hKSuK222475tBUEZG66B4pEZEGqLm/acaMGUHb8/Pza03DDdT6473mXpU5c+Ycc3a7uv6grK+9e/eyZs0ahgwZctzZATMzM5k7dy4AP/zwA++++y7Tp0+nqqqKl156qV7nasjMZx6Ph4MHDwaFlJo/Wmu21fyxffQkBCcbtJKTk/n6668xTTOo5ry8PDweT+B3crKSk5PJycmptX3fvn0AJ3We+Pj4Y84iWVRUxD//+U8ee+wxHn744cB2l8tVK5RHR0fz+OOP8/jjj7N///5A79SVV17Jli1bgBNfGzWf429/+xuZmZmN/kxHSk5O5ptvvqm1/ehgU3PuadOmMXbs2DqPdfR9inVdpykpKTz33HM899xzZGdn8+GHH/Lwww+Tl5fHp59+2tiPISJtjHqkREQawDCMWpMufPTRR+zdu7de77/gggtISEjg+++/r9XjVbPU9DI0VEVFBXfeeScej4eHHnqo3u/r0aMHv/3tb+nbty9r164NbK9PL0xDvPnmm0Hrb731FkBghr3U1FQiIiJYv359ULt//OMftY5V8zuoT33Dhw+ntLSUDz74IGh7zQNtT2Zyj6PP8/333wd9hzXnMQyDYcOGheQ8RzMMA9M0a12Xr7zyCl6v95jvS01NZcKECdx0001s3bo1aAbFGnVdG5deeik2m40dO3Yc8xpuqCFDhlBSUsInn3wStH3hwoVB6z179qR79+589913xzz3kcMy66Nz587cf//9jBw5stbvTkTkeNQjJSLSAFdccQXz58/njDPOoF+/fqxZs4ZZs2bRsWPHer0/JiaGOXPmMH78eAoKCrj++utp3749Bw4c4LvvvuPAgQO8+OKLJzxOdnY2K1euxOfzUVRUFHgg765du3jmmWcYNWrUMd+7fv167r//fn7605/SvXt3HA4HS5YsYf369UE9Gn379mXhwoW88847nHbaaURERNC3b996fc6jORwOnnnmGUpLSznnnHMCs/aNHj2aCy+8EPAHgltvvZVXX32Vbt260b9/f7755ptA4DpSTR1//OMfGT9+PHa7nZ49e9b5R/Rtt93Gn//8Z8aPH8/OnTvp27cvy5cvZ8aMGYwZM4YRI0Y06jMd7Ze//CWvvfYal19+Ob/73e/IzMzko48+4oUXXuCee+6hR48eITnP0eLi4rj44ouZNWsWKSkpdOnShWXLljF37txavaTnnXceV1xxBf369SMxMZHNmzfz+uuvM2jQIKKioup1bXTp0oXf/e53PPLII/z4449cdtllJCYmsn//fr755ptAr1dDjB8/nmeffZZbb72VJ554gtNPP51PPvmEzz77DACL5fB/93355ZcZPXo0l156KRMmTKBDhw4UFBSwefNm1q5dy3vvvXfccxUVFTFs2DBuvvlmzjjjDGJjY1m1ahWffvrpMXu5RETqFNapLkREWpiamb5WrVpV5/5Dhw6ZEydONNu3b29GRUWZF154ofnvf/+71kxxNbPXvffee3UeZ9myZebll19uJiUlmXa73ezQoYN5+eWXH7N9jZqZ7WoWq9VqJiYmmgMGDDAnTZpkbtq0qdZ7jp5Jb//+/eaECRPMM844w4yOjjZjYmLMfv36mc8++6zp8XgC79u5c6c5atQoMzY21gTMzMzME362Y83aFx0dba5fv94cOnSoGRkZaSYlJZn33HOPWVpaGvT+oqIi88477zRTU1PN6Oho88orrzR37txZa9Y+0zTNadOmmRkZGabFYgk659G/C9M0zYMHD5p33323mZ6ebtpsNjMzM9OcNm2aWVlZGdQOMO+7775anyszM9McP358re1H27Vrl3nzzTebycnJpt1uN3v27GnOmjUrMJPckcdryKx9J2q7Z88e87rrrjMTExPN2NhY87LLLjM3btxYq+6HH37YHDhwoJmYmGg6nU7ztNNOM3/5y1+a+fn5pmnW/9owTdP84IMPzGHDhplxcXGm0+k0MzMzzeuvv9784osvAm1qfvdHe+yxx8yj/wTJzs42x44da8bExJixsbHmddddZ3788ccmYP7jH/8Iavvdd9+ZN9xwg9m+fXvTbrebaWlp5iWXXGK+9NJLgTbH+t9yZWWleffdd5v9+vUz4+LizMjISLNnz57mY489ZpaVlR33exYROZJhmieY3klEREQkDGqeV5WdnV3vXl8RkeaioX0iIiISds8//zwAZ5xxBm63myVLlvCnP/2JW2+9VSFKRFokBSkREREJu6ioKJ599ll27tyJy+Wic+fO/PrXv+a3v/1tuEsTEamThvaJiIiIiIg0kKY/FxERERERaSAFKRERERERkQZSkBIREREREWkgTTYB+Hw+9u3bR2xsLIZhhLscEREREREJE9M0KSkpISMjI+iB4EdTkAL27dtHp06dwl2GiIiIiIi0ELt37z7u4xcUpIDY2FjA/2XFxcWFuRoREREREQmX4uJiOnXqFMgIx6IgBYHhfHFxcQpSIiIiIiJywlt+NNmEiIiIiIhIAylIiYiIiIiINJCClIiIiIiISAPpHikRERERkVOUaZp4PB68Xm+4S2kxrFYrNpvtpB97pCAlIiIiInIKqqqqIicnh/Ly8nCX0uJERUWRnp6Ow+Fo9DEUpERERERETjE+n4+srCysVisZGRk4HI6T7oE5FZimSVVVFQcOHCArK4vu3bsf96G7x6MgJSIiIiJyiqmqqsLn89GpUyeioqLCXU6LEhkZid1uZ9euXVRVVREREdGo42iyCRERERGRU1Rje1tOdaH4XvTNioiIiIiINJCClIiIiIiISAMpSImIiIiISLNYunQphmFQWFjYpOeZMGEC11xzTZOeQ0FKRERERKSNycvL46677qJz5844nU7S0tK49NJL+e9//9uk5x08eDA5OTnEx8c36Xmag2btExERERFpY6677jrcbjcLFizgtNNOY//+/fzrX/+ioKCgUcczTROv14vNdvx44XA4SEtLa9Q5Whr1SImIiIiItCGFhYUsX76cp556imHDhpGZmcm5557LtGnTuPzyy9m5cyeGYbBu3bqg9xiGwdKlS4HDQ/Q+++wzBg4ciNPpZO7cuRiGwZYtW4LON3v2bLp06YJpmkFD+4qKioiMjOTTTz8Nav/+++8THR1NaWkpAHv37mXcuHEkJiaSnJzM1Vdfzc6dOwPtvV4vkydPJiEhgeTkZB566CFM02yS7+5I6pFqgbKzs8nPz2+y46ekpNC5c+cmO76IiIiItFwxMTHExMTwwQcfcP755+N0Oht9rIceeoj//d//5bTTTiMhIYG//vWvvPnmm/z+978PtHnrrbe4+eabaz0QOD4+nssvv5w333yTyy67LKj91VdfTUxMDOXl5QwbNoyLLrqIr776CpvNxhNPPMFll13G+vXrcTgcPPPMM7z66qvMnTuXXr168cwzz7Bo0SIuueSSRn+u+lCQamGys7M548wzqSgvb7JzREZFsWXzZoUpERERkTbIZrMxf/58fv7zn/PSSy9x9tlnM2TIEG688Ub69evXoGP97ne/Y+TIkYH1W265heeffz4QpH744QfWrFnDa6+9Vuf7b7nlFm677TbKy8uJioqiuLiYjz76iL///e8ALFy4EIvFwiuvvBIIYvPmzSMhIYGlS5cyatQonnvuOaZNm8Z1110HwEsvvcRnn33W4O+loRSkWpj8/Hwqysu55dezSO3cLeTH35+9gzef+hX5+fkKUiIiIiJt1HXXXcfll1/Ov//9b/773//y6aef8vTTT/PKK68wdOjQeh9n4MCBQes33ngjv/rVr1i5ciXnn38+b775Jj/5yU/o1atXne+//PLLsdlsfPjhh9x44438/e9/JzY2llGjRgGwZs0atm/fTmxsbND7Kisr2bFjB0VFReTk5DBo0KDAPpvNxsCBA5t8eJ+CVAuV2rkbHbv3DncZIiIiInKKioiIYOTIkYwcOZL/9//+H3feeSePPfYY//73vwGCgojb7a7zGNHR0UHr6enpDBs2jLfeeovzzz+ft99+m7vuuuuYNTgcDq6//nreeustbrzxRt566y3GjRsXmLTC5/MxYMAA3nzzzVrvbdeuXYM/cyhpsgkREREREaFXr16UlZUFAkpOTk5g35ETT5zILbfcwjvvvMN///tfduzYwY033njC9p9++imbNm3iyy+/5JZbbgnsO/vss9m2bRvt27fn9NNPD1ri4+OJj48nPT2dlStXBt7j8XhYs2ZNvettLAUpEREREZE25ODBg1xyySW88cYbrF+/nqysLN577z2efvpprr76aiIjIzn//PN58skn+f777/nqq6/47W9/W+/jjx07luLiYu655x6GDRtGhw4djtt+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ixYt4pprrmnaQo9DQUpERERERAA4s3M7zu7RIdxl1KmsrIz+/ftz++23c91114W7HAUpERERERFp+UaPHs3o0aPDXUaAZu0TERERERFpIAUpERERERGRBlKQEhERERERaSAFKRERERERkQZSkBIREREREWkgzdonIiIiIiKA//lOLfU8paWlbN++PbCelZXFunXrSEpKCstDfRWkRERERETauJSUFKKiIrl1xrvNds6oqEhSUlLq3X716tUMGzYssD558mQAxo8fz/z580Nd3gkpSImIiIiItHGdO3dm8+Yt5OfnN9s5U1JSGtSTNHToUEzTbMKKGkZBSkRERERE6Ny5c1iGyLVWmmxCRERERESkgRSkREREREREGkhBSkREREREpIEUpERERERETlEtaXKGliQU34uClIiIiIjIKcZutwNQXl4e5kpapprvpeZ7agzN2iciIiIicoqxWq0kJCSQl5cHQFRUFIZhhLmq8DNNk/LycvLy8khISMBqtTb6WApSIiIiIiKnoLS0NIBAmJLDEhISAt9PYylIiYiIiIicggzDID09nfbt2+N2u8NdTotht9tPqieqhoKUiIiIiMgpzGq1hiQ4SDBNNiEiIiIiItJAClIiIiIiIiINFNYg9eKLL9KvXz/i4uKIi4tj0KBBfPLJJ4H9pmkyffp0MjIyiIyMZOjQoWzatCnoGC6XiwceeICUlBSio6O56qqr2LNnT3N/FBERERERaUPCGqQ6duzIk08+yerVq1m9ejWXXHIJV199dSAsPf3008yePZvnn3+eVatWkZaWxsiRIykpKQkcY9KkSSxatIiFCxeyfPlySktLueKKK/B6veH6WCIiIiIicooLa5C68sorGTNmDD169KBHjx784Q9/ICYmhpUrV2KaJs899xyPPPIIY8eOpU+fPixYsIDy8nLeeustAIqKipg7dy7PPPMMI0aM4KyzzuKNN95gw4YNfPHFF+H8aCIiIiIicgprMfdIeb1eFi5cSFlZGYMGDSIrK4vc3FxGjRoVaON0OhkyZAgrVqwAYM2aNbjd7qA2GRkZ9OnTJ9CmLi6Xi+Li4qBFRERERESkvsIepDZs2EBMTAxOp5O7776bRYsW0atXL3JzcwFITU0Nap+amhrYl5ubi8PhIDEx8Zht6jJz5kzi4+MDS6dOnUL8qURERERE5FQW9iDVs2dP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2muBdcMw8Pl8zJo1i2HDhoWsuLYowmbBW3wAi9G8562ZbOJAiYtKt7d5Ty4iIiIi0so0qt9j1qxZDB06lNWrV1NVVcVDDz3Epk2bKCgo4D//+U+oa5RmkBhlJ9JupcLtJaeokq4pmspeRERERORYGtUj1atXL9avX8+5557LyJEjKSsrY+zYsXz77bd069Yt1DVKMzAM4/AU6LpPSkRERETkuBrcI+V2uxk1ahQvv/wyjz/+eFPUJGHSISGS7Xml7DlUHu5SRERERERatAb3SNntdjZu3IhhNPNNPNLk9FBeEREREZH6adTQvttuu425c+eGuhYJMz2UV0RERESkfho12URVVRWvvPIKixcvZuDAgURHB09MMHv27JAUJ81LD+UVEREREamfBgWpH3/8kS5durBx40bOPvtsAH744YegNhry13rpobwiIiIiIvXToCDVvXt3cnJy+PLLLwEYN24cf/rTn0hNTW2S4qR51TyUN7e4Eo/Xh83aqJGfIiIiIiKnvAb9pWyaZtD6J598QllZWUgLkvBpH+vEYbPg9ZnsK6wMdzkiIiIiIi3WSXU5HB2spHWzWAwyk/y9UjsPKiCLiIiIiBxLg4KUYRi17oHSPVGnlsxk/8QhuxSkRERERESOqUH3SJmmyYQJE3A6nQBUVlZy991315q17/333w9dhdKsuiTX9EjpobwiIiIiIsfSoCA1fvz4oPVbb701pMVI+GWmqEdKREREROREGhSk5s2bF9KTf/XVV8yaNYs1a9aQk5PDokWLuOaaawL7J0yYwIIFC4Lec95557Fy5crAusvlYurUqbz99ttUVFQwfPhwXnjhBTp27BjSWtuKrtVD+7LyFaRERERERI4lrPNbl5WV0b9/f55//vljtrnsssvIyckJLB9//HHQ/kmTJrFo0SIWLlzI8uXLKS0t5YorrsDr9TZ1+aekzOqhfbsLKvD6NJmIiIiIiEhdGtQjFWqjR49m9OjRx23jdDpJS0urc19RURFz587l9ddfZ8SIEQC88cYbdOrUiS+++IJLL7005DWf6jISIrFbDaq8PnKKKuiYGBXukkREREREWpwW/8TVpUuX0r59e3r06MHPf/5z8vLyAvvWrFmD2+1m1KhRgW0ZGRn06dOHFStWHPOYLpeL4uLioEX8rBaDTtVToO/ShBMiIiIiInVq0UFq9OjRvPnmmyxZsoRnnnmGVatWcckll+ByuQDIzc3F4XCQmJgY9L7U1FRyc3OPedyZM2cSHx8fWDp16tSkn6O16VJ9n5SeJSUiIiIiUrewDu07kXHjxgV+7tOnDwMHDiQzM5OPPvqIsWPHHvN9pmke9/lW06ZNY/LkyYH14uJihakjdAk8S0o9UiIiIiIidWnRPVJHS09PJzMzk23btgGQlpZGVVUVhw4dCmqXl5dHamrqMY/jdDqJi4sLWuSwLin+oX2auU9EREREpG6tKkgdPHiQ3bt3k56eDsCAAQOw2+0sXrw40CYnJ4eNGzcyePDgcJXZ6mUm61lSIiIiIiLHE9ahfaWlpWzfvj2wnpWVxbp160hKSiIpKYnp06dz3XXXkZ6ezs6dO/nNb35DSkoK1157LQDx8fFMnDiRKVOmkJycTFJSElOnTqVv376BWfyk4bokH55swuczsViOPUxSRERERKQtCmuQWr16NcOGDQus19y3NH78eF588UU2bNjAa6+9RmFhIenp6QwbNox33nmH2NjYwHueffZZbDYbN9xwQ+CBvPPnz8dqtTb75zlVdEiIxGYxcHl87C+pJD0+MtwliYiIiIi0KGENUkOHDsU0j/3Q188+++yEx4iIiGDOnDnMmTMnlKW1aTarhY6Jkew8WM7O/HIFKRERERGRo7Sqe6Sk+XRJ0RToIiIiIiLHoiAlddKzpEREREREjk1BSuqUWTPhRL6eJSUiIiIicjQFKamTeqRERERERI5NQUrqlHnEFOjHmxBERERERKQtUpCSOnVMjMJqMahwezlQ4gp3OSIiIiIiLYqClNTJYbPQIcE/7XlWvob3iYiIiIgcSUFKjunI4X0iIiIiInKYgpQcU82EE1macEJEREREJIiClBzTae38QWp7XmmYKxERERERaVls4S5A6pafn481JqdJjltfPVJjAdi2vyTkdYiIiIiItGYKUi1MTo4/PL3//vtYY5JCfnxvaUHQeY6nJkjtKiin0u0lwm4NeT0iIiIiIq2RglQLU1hYCMCws07jjJ7dQ378LVu38X/fHT7P8aTEOEiMsnOo3M32vFL6dIgPeT0iIiIiIq2RglQLlRgTQXpyXMiPuz8mot5tDcOge2os32QV8MP+EgUpEREREZFqmmxCjqtHagwAP+zXhBMiIiIiIjUUpOS4emrCCRERERGRWhSk5Li6VwepH/IUpEREREREaihIyXHVzNy3u6CCMpcnzNWIiIiIiLQMClJyXEnRDlJinIAezCsiIiIiUkNBSk7o8IQTGt4nIiIiIgIKUlIPNcP7FKRERERERPwUpOSEDgcpDe0TEREREQEFKamHmqF9mgJdRERERMRPQUpOqGYK9H1FlZRUusNcjYiIiIhI+ClIyQnFR9pJjfPP3KfhfSIiIiIiClJSTzX3SWl4n4iIiIiIgpTUkyacEBERERE5TEFK6iUw4USeeqRERERERBSkpF5qeqS25ipIiYiIiIgoSEm91Mzcl1fiorC8KszViIiIiIiEl4KU1EuM00anpEgANu0rDnM1IiIiIiLhpSAl9davQwIAG/YWhbcQEREREZEwU5CSeuvTIR5QkBIRERERUZCSeutbHaQ2KkiJiIiISBunICX11qdDHAC7DpZTVOEOczUiIiIiIuGjICX1lhDlODzhhHqlRERERKQNU5CSBqkZ3rdeQUpERERE2jAFKWmQvpq5T0REREQEW7gLkPDIyspi7dq1DX5fRIULgDU/5tX5/pSUFDp37nzS9YmIiIiItGRhDVJfffUVs2bNYs2aNeTk5LBo0SKuueaawH7TNHn88cf5y1/+wqFDhzjvvPP485//TO/evQNtXC4XU6dO5e2336aiooLhw4fzwgsv0LFjxzB8opavtMT/MN1HH32URx99tMHvt0TE0OnBheSWehk4+GJMV1nQ/sioKLZs3qwwJSIiIiKntLAGqbKyMvr378/tt9/OddddV2v/008/zezZs5k/fz49evTgiSeeYOTIkWzdupXY2FgAJk2axP/93/+xcOFCkpOTmTJlCldccQVr1qzBarU290dq8VwVFQBcfPMvGHjB0EYd45O9JuVeg1tmvEH7CDOwfX/2Dt586lfk5+crSImIiIjIKS2sQWr06NGMHj26zn2mafLcc8/xyCOPMHbsWAAWLFhAamoqb731FnfddRdFRUXMnTuX119/nREjRgDwxhtv0KlTJ7744gsuvfTSZvssrU18akc6du994oZ1yKjMYXteKWZcOh0zE0NcmYiIiIhIy9diJ5vIysoiNzeXUaNGBbY5nU6GDBnCihUrAFizZg1utzuoTUZGBn369Am0qYvL5aK4uDhokfprH+sEYH9xZZgrEREREREJjxYbpHJzcwFITU0N2p6amhrYl5ubi8Ph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rxvTUxXomTO9Hv+15q3e562+9jz+dqa3qrpNVfXipnOPXnRMS67+fF4sPh/mEcMMTcPiX/C/YrFisdr9AcZmx7Q48Fnt+KwOPIYTj9WB24ig0rBTZUTiszpwAXk4yCMJSArDtRAuh4dySlvTkH/R1cPaVnW0fke/0tKw/01ec37zBOHYME/UooXbt28fHTp04D//+Q+DBw8ObJ8xYwYLFixg69attd4zffp0Hn/88eYsU0REREREWpHdu3fTsWPHY+5v9T1SNYyjuv1N06y1rca0adOYPHlyYN3n81FQUEBycvIx39NciouL6dSpE7t37/bfTC1SB10nciK6RqQ+dJ3Iiegakfo41a4T0zQpKSkhIyPjuO1afZBKSUnBarWSm5sbtD0vL4/U1NQ63+N0OnE6nUHbEhISmqrERomLizslLkRpWrpO5ER0jUh96DqRE9E1IvVxKl0n8fHxJ2xjOWGLFs7hcDBgwAAWL14ctH3x4sVBQ/1ERERERERCpdX3SAFMnjyZn/3sZwwcOJBBgwbxl7/8hezsbO6+++5wlyYiIiIiIqegUyJIjRs3joMHD/K73/2OnJwc+vTpw8cff0xmZma4S2swp9PJY489VmvoociRdJ3IiegakfrQdSInomtE6qOtXietftY+ERERERGR5tbq75ESERERERFpbgpSIiIiIiIiDaQgJSIiIiIi0kAKUiIiIiIiIg2kINXCvPDCC3Tt2pWIiAgGDBjAv//973CXJM3kq6++4sorryQjIwPDMPjggw+C9pumyfTp08nIyCAyMpKhQ4eyadOmoDYul4sHHniAlJQUoqOjueqqq9izZ08zfgppSjNnzuScc84hNjaW9u3bc80117B169agNrpO2rYXX3yRfv36BR6KOWjQID755JPAfl0fUpeZM2diGAaTJk0KbNO10rZNnz4dwzCClrS0tMB+XR9+ClItyDvvvMOkSZN45JFH+Pbbb7nooosYPXo02dnZ4S5NmkFZWRn9+/fn+eefr3P/008/zezZs3n++edZtWoVaWlpjBw5kpKSkkCbSZMmsWjRIhYuXMjy5cspLS3liiuuwOv1NtfHkCa0bNky7rvvPlauXMnixYvxeDyMGjWKsrKyQBtdJ21bx44defLJJ1m9ejWrV6/mkksu4eqrrw78gaPrQ462atUq/vKXv9CvX7+g7bpWpHfv3uTk5ASWDRs2BPbp+qhmSotx7rnnmnfffXfQtjPOOMN8+OGHw1SRhAtgLlq0KLDu8/nMtLQ088knnwxsq6ysNOPj482XXnrJNE3TLCwsNO12u7lw4cJAm71795oWi8X89NNPm612aT55eXkmYC5btsw0TV0nUrfExETzlVde0fUhtZSUlJjdu3c3Fy9ebA4ZMsR88MEHTdPUvyVimo899pjZv3//Ovfp+jhMPVItRFVVFWvWrGHUqFFB20eNGsWKFSvCVJW0FFlZWeTm5gZdH06nkyFDhgSujzVr1uB2u4PaZGRk0KdPH11Dp6iioiIAkpKSAF0nEszr9bJw4ULKysoYNGiQrg+p5b777uPyyy9nxIgRQdt1rQjAtm3byMjIoGvXrtx44438+OOPgK6PI9nCXYD45efn4/V6SU1NDdqemppKbm5umKqSlqLmGqjr+ti1a1egjcPhIDExsVYbXUOnHtM0mTx5MhdeeCF9+vQBdJ2I34YNGxg0aBCVlZXExMSwaNEievXqFfjjRdeHACxcuJC1a9eyatWqWvv0b4mcd955vPbaa/To0YP9+/fzxBNPMHjwYDZt2qTr4wgKUi2MYRhB66Zp1tombVdjrg9dQ6em+++/n/Xr17N8+fJa+3SdtG09e/Zk3bp1FBYW8ve//53x48ezbNmywH5dH7J7924efPBBPv/8cyIiIo7ZTtdK2zV69OjAz3379mXQoEF069aNBQsWcP755wO6PkCTTbQYKSkpWK3WWik9Ly+vVuKXtqdmppzjXR9paWlUVVVx6NChY7aRU8MDDzzAhx9+yJdffknHjh0D23WdCIDD4eD0009n4MCBzJw5k/79+/PHP/5R14cErFmzhry8PAYMGIDNZsNms7Fs2TL+9Kc/YbPZAr9rXStSIzo6mr59+7Jt2zb9W3IEBakWwuFwMGDAABYvXhy0ffHixQwePDhMVUlL0bVrV9LS0oKuj6qqKpYtWxa4PgYMGIDdbg9qk5OTw8aNG3UNnSJM0+T+++/n/fffZ8mSJXTt2jVov64TqYtpmrhcLl0fEjB8+HA2bNjAunXrAsvAgQO55ZZbWLduHaeddpquFQnicrnYvHkz6enp+rfkSOGY4ULqtnDhQtNut5tz5841v//+e3PSpElmdHS0uXPnznCXJs2gpKTE/Pbbb81vv/3WBMzZs2eb3377rblr1y7TNE3zySefNOPj483333/f3LBhg3nTTTeZ6enpZnFxceAYd999t9mxY0fziy++MNeuXWtecsklZv/+/U2PxxOujyUhdM8995jx8fHm0qVLzZycnMBSXl4eaKPrpG2bNm2a+dVXX5lZWVnm+vXrzd/85jemxWIxP//8c9M0dX3IsR05a59p6lpp66ZMmWIuXbrU/PHHH82VK1eaV1xxhRkbGxv4m1TXh5+CVAvz5z//2czMzDQdDod59tlnB6Y1llPfl19+aQK1lvHjx5um6Z9u9LHHHjPT0tJMp9NpXnzxxeaGDRuCjlFRUWHef//9ZlJSkhkZGWleccUVZnZ2dhg+jTSFuq4PwJw3b16gja6Ttu2OO+4I/H9Iu3btzOHDhwdClGnq+pBjOzpI6Vpp28aNG2emp6ebdrvdzMjIMMeOHWtu2rQpsF/Xh59hmqYZnr4wERERERGR1kn3SImIiIiIiDSQgpSIiIiIiEgDKUiJiIiIiIg0kIKUiIiIiIhIAylIiYiIiIiINJCClIiIiIiISAMpSImIiIiIiDSQgpSIiIiIiEgDKUiJiIiIiIg0kIKUiIickiZMmIBhGLWW7du3h7s0ERE5BdjCXYCIiEhTueyyy5g3b17Qtnbt2jXoGF6vF8MwsFj03x5FROQw/b+CiIicspxOJ2lpaUHLH//4R/r27Ut0dDSdOnXi3nvvpbS0NPCe+fPnk5CQwD//+U969eqF0+lk165dVFVV8dBDD9GhQweio6M577zzWLp0afg+nIiIhJWClIiItCkWi4U//elPbNy4kQULFrBkyRIeeuihoDbl5eXMnDmTV155hU2bNtG+fXtuv/12/vOf/7Bw4ULWr1/PT3/6Uy677DK2bdsWpk8iIiLhZJimaYa7CBERkVCbMGECb7zxBhEREYFto0eP5r333gtq995773HPPfeQn58P+Hukbr/9dtatW0f//v0B2LFjB927d2fPnj1kZGQE3jtixAjOPfdcZsyY0QyfSEREWhLdIyUiIqesYcOG8eKLLwbWo6Oj+fLLL5kxYwbff/89xcXFeDweKisrKSsrIzo6GgCHw0G/fv0C71u7di2madKjR4+g47tcLpKTk5vnw4iISIuiICUiIqes6OhoTj/99MD6rl27GDNmDHfffTe///3vSUpKYvny5UycOBG32x1oFxkZiWEYgXWfz4fVamXNmjVYrdagc8TExDT9BxERkRZHQUpERNqM1atX4/F4eOaZZwKz8L377rsnfN9ZZ52F1+slLy+Piy66qKnLFBGRVkCTTYiISJvRrVs3PB4Pc+bM4ccff+T111/npZdeOuH7evTowS233MJtt93G+++/T1ZWFqtWreKpp57i448/bobKRUSkpVGQEhGRNuMnP/kJs2fP5qmnnqJPnz68+eabzJw5s17vnTdvHrfddhtTpkyhZ8+eXHXVVXz99dd06tSpiasWEZGWSLP2iYiIiIiINJB6pERERERERBpIQUpERERERKSBFKREREREREQaSEFKRERERESkgRSkREREREREGkhBSkREREREpIEUpERERERERBpIQUpERERERKSBFKREREREREQaSEFKRERERESkgRSkREREREREGuj/A+ziGNRnY1m4AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(10, 5))\n", "sns.histplot(data=df, x='Fare', hue='Survived', bins=30, kde=True)\n", "ax.set_title('Fare Distribution of Passengers')\n", "ax.set_xlabel('Fare')\n", "ax.set_ylabel('Frequency')" ] }, { "cell_type": "markdown", "id": "26bf8c74-c1f2-4a86-acec-5f51a8881bf8", "metadata": {}, "source": [ "#### Split dataset" ] }, { "cell_type": "code", "execution_count": 15, "id": "3014e871-30c7-4bbc-9b3d-fd454ff092d8", "metadata": {}, "outputs": [], "source": [ "# Split features and target\n", "X = df.drop('Survived', axis=1)\n", "y = df['Survived']" ] }, { "cell_type": "code", "execution_count": 16, "id": "10f33f6d-9517-4c56-889d-61f28ee9c118", "metadata": {}, "outputs": [], "source": [ "# Split the data into training and test sets before scaling, encoding to avoid data leakage\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)" ] }, { "cell_type": "markdown", "id": "a2753222-5bb8-4108-8c17-278b5b3a99c6", "metadata": {}, "source": [ "## Data Preprocessing and hyperparameter tuning" ] }, { "cell_type": "markdown", "id": "f7ac46fe-8c9a-48b1-a927-2fff5dc24ca1", "metadata": {}, "source": [ "In a data science project, particularly after completing exploratory data analysis (EDA) and data splitting, there are basically 2 approaches to follow:\n", "\n", "#### Approach A: Create Different Dataset Versions (based on different pre-processing strategies) and Evaluate Multiple Estimators\n", "\n", "Process: \n", "* Perform imputation, scaling, encoding and transformations on the original dataset to create multiple versions of the dataset. \n", "* Apply various estimators (regressors or classifiers depending on the target variable) with default hyperparameters on each version of the dataset. \n", "* Use cross-validation to evaluate performance and identify the best-performing models.\n", "\n", "Advantages:\n", "* Model Diversity: This approach allows you to explore how different preprocessing strategies (scaling and encoding) impact model performance across various estimators.\n", "* Insightful Results: By evaluating multiple estimators on different dataset versions, you gain insights into which preprocessing methods work best with specific models.\n", "* Initial Benchmarking: It helps identify a few strong candidates for further hyperparameter tuning without getting bogged down in complex grid searches early on.\n", "\n", "Disadvantages:\n", "* Time-Consuming: This approach can be computationally expensive and time-consuming, especially with a large number of dataset versions and models.\n", "* Overhead: Managing and comparing multiple datasets can become cumbersome.\n", "\n", "#### Approach B: Use Pipelines (to apply different pre-processing strategies) and GridSearchCV for Hyperparameter Tuning\n", "\n", "Process:\n", "* Define a pipeline that incorporates preprocessing steps (imputation, scaling, encoding, transformations) and estimators.\n", "* Perform GridSearchCV to tune hyperparameters (use a grid of different combination of hyperparameters) while evaluating different preprocessing techniques in the pipeline.\n", "\n", "Advantages:\n", "* Efficiency: This approach is more streamlined and efficient, allowing you to optimize hyperparameters and preprocessing steps in a single step.\n", "* Integrated Approach: By using pipelines, you ensure that the same preprocessing steps are applied consistently during both training and evaluation, reducing the risk of data leakage.\n", "\n", "Disadvantages:\n", "* Limited Exploration: You may miss out on valuable insights that come from exploring a wider range of models and preprocessing strategies manually (intermediate results are not apparent).\n", "* Complexity: Setting up pipelines and managing the hyperparameter search space can become complex, particularly if there are many preprocessing options to consider.\n", "\n", "#### Recommended Approach\n", "\n", "In practice, a hybrid approach often works best:\n", "\n", "* Start with Approach A: Conduct initial experiments with different preprocessing strategies and a larger variety of models using default hyperparameters to understand which combinations yield the best performance.\n", "* Narrow Down: Based on the initial findings, narrow down to the top 2-3 models and their best-performing preprocessing methods.\n", "* Then Move to Approach B: Utilize GridSearchCV with pipelines for these selected models and preprocessors to fine-tune hyperparameters.\n", "\n", "This combined strategy allows you to benefit from both broad exploration and focused optimization, leading to more robust model development and potentially better performance." ] }, { "cell_type": "markdown", "id": "0f9b3200-2e3a-47f6-a9fd-8ae2874791e3", "metadata": {}, "source": [ "#### APPROACH A\n", "\n", "##### *Dataset V1*\n", "1. Apply simple imputer with mean strategy on numerical features\n", "2. Apply robust scaler on age and fare\n", "3. Apply simple imputer with most frequent strategy and ordinal encoding on categorical features" ] }, { "cell_type": "code", "execution_count": 17, "id": "99db1ecd-8a4e-42fb-b0cf-51bd011373dc", "metadata": {}, "outputs": [], "source": [ "X_train_V_1 = X_train.copy()\n", "X_test_V_1 = X_test.copy()\n", "\n", "# Identify numerical and categorical features\n", "num_features = X.select_dtypes(include=['int64', 'float64']).columns\n", "cat_features = X.select_dtypes(include=['object']).columns\n", "\n", "# Apply simple imputer with mean strategy on numerical features\n", "si1 = SimpleImputer(strategy='mean')\n", "# fit (train) imputer on the training dataset\n", "si1.fit(X_train_V_1[num_features])\n", "# apply imputation on both training and test datasets\n", "X_train_V_1[num_features] = si1.transform(X_train_V_1[num_features])\n", "X_test_V_1[num_features] = si1.transform(X_test_V_1[num_features])\n", "\n", "# ALTERNATIVELY: you could fit and transform training data at the same time and then transform test data separately\n", "#X_train_V_1[num_features] = si1.fit_transform(X_train_V_1[num_features])\n", "#X_test_V_1[num_features] = si1.transform(X_test_V_1[num_features])\n", "\n", "# Apply robust scaling on Age and Fare\n", "rs = RobustScaler()\n", "features_to_scale = ['Age', 'Fare']\n", "rs.fit(X_train_V_1[features_to_scale])\n", "X_train_V_1[features_to_scale] = rs.transform(X_train_V_1[features_to_scale])\n", "X_test_V_1[features_to_scale] = rs.transform(X_test_V_1[features_to_scale])\n", "\n", "# Apply simple imputer with most_frequent strategy on categorical features\n", "si2 = SimpleImputer(strategy='most_frequent')\n", "si2.fit(X_train_V_1[cat_features])\n", "X_train_V_1[cat_features] = si2.transform(X_train_V_1[cat_features])\n", "X_test_V_1[cat_features] = si2.transform(X_test_V_1[cat_features])\n", "\n", "# Apply ordinal encoding on categorical features\n", "ordinal_encoder = OrdinalEncoder(return_df=True,\n", " handle_unknown='value', # Handle unknown categories in the test set (at transform time) --> Encode unseen categories with -1\n", " )\n", "X_train_V_1[cat_features] = ordinal_encoder.fit_transform(X_train_V_1[cat_features])\n", "X_test_V_1[cat_features] = ordinal_encoder.transform(X_test_V_1[cat_features])\n", "\n", "#print(X_train_V_1)\n", "#print(X_test_V_1)" ] }, { "cell_type": "markdown", "id": "3ad3bc20-4f2f-4ec8-98ec-aebc5587dbb4", "metadata": {}, "source": [ "##### *Dataset V2*\n", "\n", "1. Apply simple imputer with mean strategy on numerical features\n", "2. Apply yeo johnson (unskewing) on age and fare\n", "3. Apply simple imputer with most frequent strategy and ordinal encoding on categorical features" ] }, { "cell_type": "code", "execution_count": 18, "id": "e5e97d62-263b-4fbe-94d2-9af84ab14e7c", "metadata": {}, "outputs": [], "source": [ "X_train_V_2 = X_train.copy()\n", "X_test_V_2 = X_test.copy()\n", "\n", "# Apply simple imputer with mean strategy on numerical features\n", "si1 = SimpleImputer(strategy='mean')\n", "# train imputer on the training dataset\n", "si1.fit(X_train_V_2[num_features])\n", "# apply imputation on both training and test datasets\n", "X_train_V_2[num_features] = si1.transform(X_train_V_2[num_features])\n", "X_test_V_2[num_features] = si1.transform(X_test_V_2[num_features])\n", "\n", "# Initialize the PowerTransformer with Yeo-Johnson method\n", "# We could apply Box-Cox if all data were positive; Fare column contains zero values\n", "transformer = PowerTransformer(method='yeo-johnson')\n", "\n", "X_train_V_2[features_to_scale] = transformer.fit_transform(X_train_V_2[features_to_scale]) # Fit and transform training data (Age and Fare columns only)\n", "X_test_V_2[features_to_scale] = transformer.transform(X_test_V_2[features_to_scale]) # Transform test data\n", "\n", "# Copy the transformations on categorical data from the first dataset as they are the same\n", "X_train_V_2[cat_features] = X_train_V_1[cat_features].copy()\n", "X_test_V_2[cat_features] = X_test_V_1[cat_features].copy()\n", " \n", "#print(X_train_V_2)\n", "#print(X_test_V_2)" ] }, { "cell_type": "markdown", "id": "2f214c24-c1fe-4eb2-9512-3f66f3ce461d", "metadata": {}, "source": [ "##### *Dataset V3* (the same as V2 but one hot on categorical)\n", "1. Apply simple imputer with mean strategy on numerical features\n", "2. Apply yeo johnson (unskewing) on age and fare\n", "3. Apply simple imputer with most frequent strategy and one hot encoding on categorical features" ] }, { "cell_type": "code", "execution_count": 19, "id": "a144dc00-cb0c-4193-884c-122b05f2f074", "metadata": {}, "outputs": [], "source": [ "X_train_V_3 = X_train_V_2.copy()\n", "X_test_V_3 = X_test_V_2.copy()\n", "\n", "# Apply one hot encoding on categorical features\n", "onehot_encoder = OneHotEncoder(return_df=True,\n", " handle_unknown='value', # Handle unknown categories in the test set (at transform time) --> Encode a new value as 0 in every dummy column\n", " )\n", "new_cols_train = onehot_encoder.fit_transform(X_train[cat_features])\n", "# Concatenate the original DataFrame with the encoded DataFrame\n", "X_train_V_3 = pd.concat([X_train_V_3, new_cols_train], axis=1)\n", "# Drop the original categorical column if you no longer need it\n", "X_train_V_3 = X_train_V_3.drop(columns=cat_features)\n", "\n", "new_cols_test = onehot_encoder.transform(X_test[cat_features])\n", "X_test_V_3 = pd.concat([X_test_V_3, new_cols_test], axis=1)\n", "X_test_V_3 = X_test_V_3.drop(columns=cat_features)\n", "\n", "#print(X_train_V_3)\n", "#print(X_test_V_3)" ] }, { "cell_type": "markdown", "id": "63a17809-2bff-429d-8ae4-33712b9ecbda", "metadata": {}, "source": [ "##### *Dataset V4* (the same as V3 but with PCA)\n", "1. Apply simple imputer with mean strategy on numerical features\n", "2. Apply yeo johnson (unskewing) on age and fare\n", "3. Apply simple imputer with most frequent strategy and one hot encoding on categorical features\n", "4. PCA for feature extraction (dimensionality reduction) - even though PCA is not appropriate for datasets involving discrete numerical features, here is used for educational purposes. " ] }, { "cell_type": "code", "execution_count": 20, "id": "71be2361-47ea-47e6-a2c5-b50f385587a1", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_train_V_4 = X_train_V_3.copy()\n", "X_test_V_4 = X_test_V_3.copy()\n", "\n", "# function that plots the variance explained by each new feature\n", "def print_variance_explained_plot(obj, n_components):\n", " cum_var_exp = np.cumsum(obj.explained_variance_ratio_)\n", " fig, ax = plt.subplots(figsize=(6, 4))\n", " bars = ax.bar(range(n_components), obj.explained_variance_ratio_, alpha=0.5, align='center',\n", " label='individual explained variance')\n", " # show percentage of explained variance on top of each bar\n", " for bar in bars:\n", " height = bar.get_height()\n", " ax.text(bar.get_x() + bar.get_width()/2., 1.05*height, '%.2f%%' % (height*100), \n", " ha='center', va='bottom')\n", " plt.step(range(n_components), cum_var_exp, where='mid',\n", " label='cumulative explained variance')\n", " plt.ylabel('Explained variance ratio')\n", " plt.xlabel('Principal components')\n", " plt.xticks( range(n_components) )\n", " plt.grid(True)\n", " plt.legend(loc='best')\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "pca = PCA(n_components=10)\n", "pca.fit(X_train_V_4)\n", "print_variance_explained_plot(pca, 10)" ] }, { "cell_type": "code", "execution_count": 21, "id": "18de68d0-41a7-48fc-92d1-f13d43818e3e", "metadata": {}, "outputs": [ { "data": { "image/png": "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e47/fq38V8OGDREbG4u//voLO3fuRK9evdCxY0f89ttvz3iHRFSecGSWiMqd6dOnY/PmzTh8+LBOu6urKxITE3VCiiHXhn1yPmheXh5OnjypHX1t2LAhzp8/Dz8/P1SrVk3nT0kDLADY29vDy8sLBw8e1Gk/fPgwatWqVeLzODk5oXPnzvjpp5+QmZlZaPvDhw8B5I/CxsfH68wPvnDhAtLS0vS63tP8dw7t0aNHtZ9ZUFAQTp8+rVPfoUOHIJfLUaNGjRKdv0GDBlCr1UhKSir0uXt4eJS4TnNzc6jV6kLt9vb26N27N3755ResWbMG69evR2pqaonPS0TSY5glonKnTp066NevH3788Ued9nbt2uH+/fuYOXMmrl+/jp9++gl//fWXwa77008/4ffff8elS5fw7rvv4sGDBxgyZAgA4N1330Vqair69OmD6Oho3LhxAzt27MCQIUOKDEnF+eCDDzBjxgysWbMGly9fxsSJE3H69Gm8//77ep1n7ty5UKvVaNKkCdavX4+rV6/i4sWL+OGHH7S//u/YsSPq1q2Lfv36ISYmBtHR0Rg4cCDatm37zCkRJbFu3TosXrwYV65cweTJkxEdHa29watfv36wtLTEoEGDcO7cOezZswfvvfceBgwYAHd39xKdv0aNGujXrx8GDhyIDRs2IDY2FsePH8eMGTOwdevWEtfp5+eHs2fP4vLly0hOToZKpcJ3332H1atX49KlS7hy5QrWrVsHDw8P7c1zRGQcGGaJqFz64osvCv2auFatWpg7dy5++ukn1KtXD9HR0UXe6f+8pk+fjhkzZqBevXo4cOAA/vjjD7i4uAAAvLy8cOjQIajVanTu3BnBwcF4//334eDgoDOvtCRGjx6N8ePHY/z48ahTpw62bduGTZs2oXr16nqdx9/fHzExMWjfvj3Gjx+P4OBgdOrUCbt27cK8efMA5P+6fePGjahUqRLatGmDjh07IiAgAGvWrNHrWk8THh6O1atXo27duli6dCl+/fVXBAUFAcifx7p9+3akpqaicePGePPNN/HSSy9hzpw5el1jyZIlGDhwIMaPH4/AwED06NEDx44d05kH/Cxvv/02AgMDERISAldXVxw6dAi2traYMWMGQkJC0LhxY8TFxWHr1q169ycRSUsmnjWpiIiIqAgymQy///47n6xFRJLi/34SERERkdFimCUiIiIio8WluYiI6LlwlhoRlQccmSUiIiIio8UwS0RERERGi2GWiIiIiIwWwywRERERGS2GWSIiIiIyWgyzRERERGS0GGaJiIiIyGgxzBIRERGR0fp/eTPtXhlndCQAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 5))\n", "plt.plot(range(1, len(pca.explained_variance_ratio_) + 1), pca.explained_variance_ratio_.cumsum(), marker='o')\n", "plt.xlabel('Number of Components')\n", "plt.ylabel('Cumulative Explained Variance')\n", "plt.title('Explained Variance by Components')\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "id": "6d0dbe4d-3a18-4656-828a-6238fd3fd989", "metadata": {}, "outputs": [], "source": [ "# Choose an adequate number of components to achieve cumulative variance ~ 90-95%\n", "# 80%-90%: Often sufficient in many real-world cases, balancing dimensionality reduction and retaining meaningful information.\n", "# >95%: For datasets where preserving most information is critical, such as scientific or engineering applications.\n", "# <80%: In cases where some loss of information is acceptable, such as when working with very large datasets and prioritizing computational efficiency.\n", "\n", "pca = PCA(n_components=6)\n", "X_train_V_4 = pca.fit_transform(X_train_V_4)\n", "X_test_V_4 = pca.transform(X_test_V_4)\n", "\n", "#print(X_train_V_4)\n", "#print(X_test_V_4)" ] }, { "cell_type": "markdown", "id": "8c755dca-c9ad-483f-a434-73eb24726d39", "metadata": {}, "source": [ "#### Model Selection" ] }, { "cell_type": "markdown", "id": "7549b494-ea8d-4a24-8cee-c11afa335467", "metadata": {}, "source": [ "Train 9 classifiers using training datasets: RandomForestClassifier, AdaBoostClassifier, XGBoostClassifier, CatBoostClassifier, SVC, KNeighborsClassifier, LogisticRegressor, DecisionTreeClassfier and GaussianNB using 10-fold CV.\n", "\n", "Make predictions using test datasets and choose the top 2 best performing models." ] }, { "cell_type": "code", "execution_count": 23, "id": "979342a4-0e90-4e29-b9b5-245daea771c3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "v1: ... RandomForest ... AdaBoost ... XGBoost ... CatBoost ... SVC ... KNeighbors ... LogisticRegression ... DecisionTree ... GaussianNB ... \n", "v2: ... RandomForest ... AdaBoost ... XGBoost ... CatBoost ... SVC ... KNeighbors ... LogisticRegression ... DecisionTree ... GaussianNB ... \n", "v3: ... RandomForest ... AdaBoost ... XGBoost ... CatBoost ... SVC ... KNeighbors ... LogisticRegression ... DecisionTree ... GaussianNB ... \n", "v4: ... RandomForest ... AdaBoost ... XGBoost ... CatBoost ... SVC ... KNeighbors ... LogisticRegression ... DecisionTree ... GaussianNB ... \n" ] } ], "source": [ "featuresets = {\n", " 'v1': X_train_V_1,\n", " 'v2': X_train_V_2, \n", " 'v3': X_train_V_3,\n", " 'v4': X_train_V_4 \n", "}\n", "\n", "# Define classifiers\n", "classifiers = {\n", " \"RandomForest\": RandomForestClassifier(),\n", " \"AdaBoost\": AdaBoostClassifier(algorithm='SAMME'),\n", " \"XGBoost\": XGBClassifier(),\n", " \"CatBoost\": CatBoostClassifier(silent=True),\n", " \"SVC\": SVC(),\n", " \"KNeighbors\": KNeighborsClassifier(),\n", " \"LogisticRegression\": LogisticRegression(),\n", " \"DecisionTree\": DecisionTreeClassifier(),\n", " \"GaussianNB\": GaussianNB()\n", "}\n", "\n", "# Dictionary to store results\n", "results = []\n", "\n", "f1_score_weighted = make_scorer(f1_score, average='weighted')\n", "\n", "# Loop over each featureset version\n", "for featureset, X_data in featuresets.items():\n", " # Loop over each classifier\n", " print(featureset+\":\", end=' ... ')\n", " for clf_name, clf in classifiers.items():\n", " print(clf_name, end=' ... ')\n", " # Perform 10-fold cross-validation\n", " scores = cross_val_score(clf, X_data, y_train, cv=10, scoring=f1_score_weighted, n_jobs=-1)\n", " # Store the average score for this classifier and dataset version\n", " avg_score = scores.mean()\n", " results.append({\n", " 'featureset': featureset,\n", " 'classifier': clf_name,\n", " 'score': avg_score\n", " })\n", " print()" ] }, { "cell_type": "code", "execution_count": 24, "id": "8aeb69e9-86ac-41ea-8dee-c96380cec049", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
featuresetclassifierscore
0v1RandomForest0.786370
1v1AdaBoost0.816304
2v1XGBoost0.790727
3v1CatBoost0.818617
4v1SVC0.813544
5v1KNeighbors0.772192
6v1LogisticRegression0.793273
7v1DecisionTree0.742608
8v1GaussianNB0.791100
9v2RandomForest0.793826
10v2AdaBoost0.816304
11v2XGBoost0.790727
12v2CatBoost0.818617
13v2SVC0.826768
14v2KNeighbors0.778595
15v2LogisticRegression0.789679
16v2DecisionTree0.747933
17v2GaussianNB0.771745
18v3RandomForest0.791664
19v3AdaBoost0.812311
20v3XGBoost0.789224
21v3CatBoost0.824217
22v3SVC0.826913
23v3KNeighbors0.792189
24v3LogisticRegression0.795191
25v3DecisionTree0.753843
26v3GaussianNB0.571107
27v4RandomForest0.766177
28v4AdaBoost0.782880
29v4XGBoost0.770875
30v4CatBoost0.788726
31v4SVC0.823813
32v4KNeighbors0.786396
33v4LogisticRegression0.795599
34v4DecisionTree0.704351
35v4GaussianNB0.785231
\n", "
" ], "text/plain": [ " featureset classifier score\n", "0 v1 RandomForest 0.786370\n", "1 v1 AdaBoost 0.816304\n", "2 v1 XGBoost 0.790727\n", "3 v1 CatBoost 0.818617\n", "4 v1 SVC 0.813544\n", "5 v1 KNeighbors 0.772192\n", "6 v1 LogisticRegression 0.793273\n", "7 v1 DecisionTree 0.742608\n", "8 v1 GaussianNB 0.791100\n", "9 v2 RandomForest 0.793826\n", "10 v2 AdaBoost 0.816304\n", "11 v2 XGBoost 0.790727\n", "12 v2 CatBoost 0.818617\n", "13 v2 SVC 0.826768\n", "14 v2 KNeighbors 0.778595\n", "15 v2 LogisticRegression 0.789679\n", "16 v2 DecisionTree 0.747933\n", "17 v2 GaussianNB 0.771745\n", "18 v3 RandomForest 0.791664\n", "19 v3 AdaBoost 0.812311\n", "20 v3 XGBoost 0.789224\n", "21 v3 CatBoost 0.824217\n", "22 v3 SVC 0.826913\n", "23 v3 KNeighbors 0.792189\n", "24 v3 LogisticRegression 0.795191\n", "25 v3 DecisionTree 0.753843\n", "26 v3 GaussianNB 0.571107\n", "27 v4 RandomForest 0.766177\n", "28 v4 AdaBoost 0.782880\n", "29 v4 XGBoost 0.770875\n", "30 v4 CatBoost 0.788726\n", "31 v4 SVC 0.823813\n", "32 v4 KNeighbors 0.786396\n", "33 v4 LogisticRegression 0.795599\n", "34 v4 DecisionTree 0.704351\n", "35 v4 GaussianNB 0.785231" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convert results to DataFrame for easier analysis\n", "results_df = pd.DataFrame(results)\n", "results_df" ] }, { "cell_type": "code", "execution_count": 25, "id": "588e0114-ca59-419a-a391-50ef2a99abde", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mean
classifier
SVC0.822760
CatBoost0.812544
AdaBoost0.806950
LogisticRegression0.793435
XGBoost0.785388
RandomForest0.784509
KNeighbors0.782343
DecisionTree0.737184
GaussianNB0.729796
\n", "
" ], "text/plain": [ " mean\n", "classifier \n", "SVC 0.822760\n", "CatBoost 0.812544\n", "AdaBoost 0.806950\n", "LogisticRegression 0.793435\n", "XGBoost 0.785388\n", "RandomForest 0.784509\n", "KNeighbors 0.782343\n", "DecisionTree 0.737184\n", "GaussianNB 0.729796" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Best performing classifiers: SVC, AdaBoostClssifier\n", "results_df.groupby(['classifier'])['score'].agg(['mean']).sort_values(by='mean', ascending=False)" ] }, { "cell_type": "code", "execution_count": 26, "id": "824de2b9-01f7-470f-9636-32ba7556631a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mean
featureset
v20.792688
v10.791637
v40.778227
v30.772962
\n", "
" ], "text/plain": [ " mean\n", "featureset \n", "v2 0.792688\n", "v1 0.791637\n", "v4 0.778227\n", "v3 0.772962" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Best performing featureset versions: v1, v2\n", "results_df.groupby(['featureset'])['score'].agg(['mean']).sort_values(by='mean', ascending=False)" ] }, { "cell_type": "markdown", "id": "8a3478fe-f8f1-4504-a86e-4760872d79d0", "metadata": {}, "source": [ "#### APPROACH B\n", "\n", "Use pipelines and GridSearchCV to fine tune the hyperparameters of the top 2 best performing models. Pipelines should involve the best performing featureset versions." ] }, { "cell_type": "code", "execution_count": 27, "id": "349fd075-ac7a-4729-be5d-1023f18d8f62", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running GridSearchCV for svc_v1_pipeline...\n", "Best Parameters for svc_v1_pipeline: {'classifier__C': 10, 'classifier__gamma': 'scale', 'classifier__kernel': 'rbf'}\n", "Best Cross-Validated Score for svc_v1_pipeline: 0.8210361553389683\n", "Performance on the test dataset: 0.8134622171398872\n", "\n", "Running GridSearchCV for ada_v1_pipeline...\n", "Best Parameters for ada_v1_pipeline: {'classifier__algorithm': 'SAMME', 'classifier__learning_rate': 1.0, 'classifier__n_estimators': 200}\n", "Best Cross-Validated Score for ada_v1_pipeline: 0.8061583336386026\n", "Performance on the test dataset: 0.8091929317716401\n", "\n", "Running GridSearchCV for svc_v2_pipeline...\n", "Best Parameters for svc_v2_pipeline: {'classifier__C': 1, 'classifier__gamma': 'scale', 'classifier__kernel': 'rbf'}\n", "Best Cross-Validated Score for svc_v2_pipeline: 0.8202521000881422\n", "Performance on the test dataset: 0.8140397158008151\n", "\n", "Running GridSearchCV for ada_v2_pipeline...\n", "Best Parameters for ada_v2_pipeline: {'classifier__algorithm': 'SAMME', 'classifier__learning_rate': 1.0, 'classifier__n_estimators': 200}\n", "Best Cross-Validated Score for ada_v2_pipeline: 0.8061583336386026\n", "Performance on the test dataset: 0.8091929317716401\n", "\n" ] } ], "source": [ "# Preprocessing pipeline for numerical features that need only imputing (not scaling, nor unskewing)\n", "num_pipeline1 = Pipeline([\n", " ('imputer', SimpleImputer(strategy='mean')),\n", "])\n", "# Preprocessing pipeline for numerical features that need imputing + scaling\n", "num_pipeline2 = Pipeline([\n", " ('imputer', SimpleImputer(strategy='mean')),\n", " ('scaler', RobustScaler())\n", "])\n", "# Preprocessing pipeline for numerical features that need imputing + unskewing\n", "num_pipeline3 = Pipeline([\n", " ('imputer', SimpleImputer(strategy='mean')),\n", " ('unskewer', PowerTransformer(method='yeo-johnson'))\n", "])\n", "# Preprocessing pipeline for cateorical features\n", "cat_pipeline = Pipeline([\n", " ('imputer', SimpleImputer(strategy='most_frequent')),\n", " ('ordinal', OrdinalEncoder(handle_unknown='value'))\n", "])\n", "\n", "# preprocessing pipeline for creating featureset v1\n", "preprocessor1 = ColumnTransformer(\n", " transformers=[\n", " ('num1', num_pipeline1, list(set(num_features) - set(features_to_scale))), # all numerical features minus features to be scaled\n", " ('num2', num_pipeline2, features_to_scale), # numerical features to be scaled \n", " ('cat', cat_pipeline, cat_features)\n", " ],\n", " remainder='passthrough'\n", ")\n", "# preprocessing pipeline for creating featureset v2\n", "preprocessor2 = ColumnTransformer(\n", " transformers=[\n", " ('num1', num_pipeline1, list(set(num_features) - set(features_to_scale))), # all numerical features minus features to be unskewed\n", " ('num2', num_pipeline3, features_to_scale), # numerical features to be unskewed\n", " ('cat', cat_pipeline, cat_features)\n", " ],\n", " remainder='passthrough'\n", ")\n", "# IMPORTANT NOTICE: avoid using multiple consecutive column transformers since they alter column order\n", "\n", "#X_transformed = preprocessor1.fit_transform(X_train)\n", "#f = pd.DataFrame(X_transformed, columns = X_train.columns)\n", "#print(f.head(3))\n", "\n", "# Create 4 pipelines with different preprocessing steps\n", "pipeline1 = Pipeline([\n", " ('preprocessor', preprocessor1),\n", " ('classifier', SVC())\n", "])\n", "pipeline2 = Pipeline([\n", " ('preprocessor', preprocessor1),\n", " ('classifier', AdaBoostClassifier())\n", "])\n", "pipeline3 = Pipeline([\n", " ('preprocessor', preprocessor2),\n", " ('classifier', SVC())\n", "])\n", "pipeline4 = Pipeline([\n", " ('preprocessor', preprocessor2),\n", " ('classifier', AdaBoostClassifier())\n", "])\n", "\n", "# Define different pipelines with different classifiers and preprocessing steps\n", "pipelines = {\n", " 'svc_v1_pipeline': pipeline1,\n", " 'ada_v1_pipeline': pipeline2,\n", " 'svc_v2_pipeline': pipeline3,\n", " 'ada_v2_pipeline': pipeline4\n", "}\n", "\n", "# Set up parameter grid for GridSearchCV to explore both pipelines\n", "param_grid1 = [\n", " {'classifier__C': [0.01, 0.1, 1, 10, 100], 'classifier__kernel': ['linear', 'rbf', 'poly'], 'classifier__gamma': ['scale', 'auto']}\n", "]\n", "param_grid2 = [\n", " {'classifier__n_estimators': [50, 100, 200, 500], 'classifier__learning_rate': [0.01, 0.1, 1.0, 10], 'classifier__algorithm': ['SAMME'] }\n", "]\n", "\n", "param_grids = {\n", " 'svc_v1_pipeline': param_grid1,\n", " 'ada_v1_pipeline': param_grid2,\n", " 'svc_v2_pipeline': param_grid1,\n", " 'ada_v2_pipeline': param_grid2\n", "}\n", "\n", "# Loop through each pipeline and perform GridSearchCV\n", "best_estimators = {}\n", "for pipeline_name, pipeline in pipelines.items():\n", " print(f\"Running GridSearchCV for {pipeline_name}...\")\n", " grid_search = GridSearchCV(estimator=pipeline, param_grid=param_grids[pipeline_name], cv=5, scoring=f1_score_weighted, n_jobs=-1)\n", " grid_search.fit(X_train, y_train)\n", " \n", " # Store the best estimator and results for each pipeline\n", " best_estimators[pipeline_name] = grid_search.best_estimator_\n", " print(f\"Best Parameters for {pipeline_name}: {grid_search.best_params_}\")\n", " print(f\"Best Cross-Validated Score for {pipeline_name}: {grid_search.best_score_}\")\n", " \n", " # Make predictions using the best estimator\n", " y_pred = grid_search.best_estimator_.predict(X_test) # Use X_test for evaluation\n", " print(f\"Performance on the test dataset: {f1_score(y_test, y_pred, average='weighted')}\") # Evaluate on the test dataset\n", " print(\"\")" ] }, { "cell_type": "markdown", "id": "ed992181-4f9d-417f-96b1-46dc49fbd96f", "metadata": {}, "source": [ "### Μeasure the performance of the best model" ] }, { "cell_type": "code", "execution_count": 28, "id": "9bb14951-2aad-4ee3-8f0a-cb5d8a4f0b16", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F1 score on training dataset: 0.8466357729290455\n", "F1 score on training dataset: 0.8134622171398872\n" ] } ], "source": [ "# Create the best model (using the best hyper-parameter values obtained frm the previous step)\n", "best_model = SVC(C=10, gamma='scale', kernel='rbf')\n", "# train the model on the dataset that achieves the highest score\n", "best_model.fit(X_train_V_1, y_train)\n", "# make prediction on the train dataset in order to check for overfitting \n", "# (overfitting arises when high performance on training dataset and low performance on test dataset => model does not generalize\n", "y_train_pred = best_model.predict(X_train_V_1)\n", "print(\"F1 score on training dataset:\", f1_score(y_train, y_train_pred, average='weighted'))\n", "\n", "# make prediction on the test dataset\n", "y_test_pred = best_model.predict(X_test_V_1)\n", "print(\"F1 score on training dataset:\", f1_score(y_test, y_test_pred, average='weighted'))" ] }, { "cell_type": "markdown", "id": "8d38d75d-9626-4815-bf78-8bf41ddf8436", "metadata": {}, "source": [ "Determining if a model is overfitting based on the difference in f1 scores between the training and test datasets involves some judgment. Here are general guidelines:\n", "\n", "Key Considerations:\n", "\n", "* Small Gap: A small difference between f1 scores on training and test datasets (e.g., within 5-10%) suggests the model generalizes well.\n", " * Example: Training f1: 0.85, Test f1: 0.80. This is acceptable.\n", "* Large Gap: A large difference between training and test f1 scores indicates overfitting. If the training f1 is high, but the test f1 is significantly lower, your model is likely memorizing the training data instead of learning the underlying patterns.\n", " * Example: Training f1: 0.95, Test f1: 0.60. This is a sign of overfitting.\n", "* Low f1 on both: If both the training and test f1 scores are low, it suggests underfitting. The model may be too simple, or the features provided are insufficient for the task.\n", "* Class Imbalance Impact: f1 scores are particularly sensitive to class imbalance. Overfitting may result in high training f1 for the majority class but poor generalization to minority classes in the test set.\n", "\n", "In our case, the difference in f1 scores between training and test datasets is relatively low and thus acceptable suggesting no overfitting." ] }, { "cell_type": "code", "execution_count": null, "id": "43ea8ee2-24dd-4d74-b1b6-37f80d509e46", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }