ium_452487/dane.ipynb
2024-04-14 16:17:38 +02:00

1703 lines
327 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"source": [
"## 1. Pobieranie zbioru danych"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 97,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: kaggle in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (1.6.6)\n",
"Requirement already satisfied: bleach in c:\\users\\adrian\\miniconda3\\lib\\site-packages (from kaggle) (4.1.0)\n",
"Requirement already satisfied: python-slugify in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (8.0.4)\n",
"Requirement already satisfied: python-dateutil in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (2.8.2)\n",
"Requirement already satisfied: tqdm in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (4.64.1)\n",
"Requirement already satisfied: requests in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (2.28.1)\n",
"Requirement already satisfied: certifi in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (2022.6.15)\n",
"Requirement already satisfied: six>=1.10 in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (1.16.0)\n",
"Requirement already satisfied: urllib3 in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from kaggle) (1.26.11)\n",
"Requirement already satisfied: webencodings in c:\\users\\adrian\\miniconda3\\lib\\site-packages (from bleach->kaggle) (0.5.1)\n",
"Requirement already satisfied: packaging in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from bleach->kaggle) (22.0)\n",
"Requirement already satisfied: text-unidecode>=1.3 in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from python-slugify->kaggle) (1.3)\n",
"Requirement already satisfied: idna<4,>=2.5 in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from requests->kaggle) (2.10)\n",
"Requirement already satisfied: charset-normalizer<3,>=2 in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from requests->kaggle) (2.1.0)\n",
"Requirement already satisfied: colorama in c:\\users\\adrian\\appdata\\roaming\\python\\python39\\site-packages (from tqdm->kaggle) (0.4.5)\n"
]
}
],
"source": [
"!pip install --user kaggle"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 98,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"personal-key-indicators-of-heart-disease.zip: Skipping, found more recently modified local copy (use --force to force download)\n"
]
}
],
"source": [
"!kaggle datasets download -d kamilpytlak/personal-key-indicators-of-heart-disease/"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 99,
"outputs": [],
"source": [
"#!unzip -o personal-key-indicators-of-heart-disease.zip #nie działa na Windowsie więc korzystam z modułu zipfile"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 100,
"outputs": [],
"source": [
"import zipfile\n",
"with zipfile.ZipFile(\"personal-key-indicators-of-heart-disease.zip\", 'r') as zip_ref:\n",
" zip_ref.extractall(\"dataset_extracted\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 50,
"outputs": [],
"source": [
"import pandas as pd\n",
"# W pobranym zbiorze danych jest kilka podzbiorów więc celowo otwieram ten z NaN, żeby manualnie go oczyścić dla praktyki\n",
"df = pd.read_csv(\"dataset_extracted/2022/heart_2022_with_nans.csv\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## Przeglądanie nieoczyszczonego datasetu"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 51,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 445132 entries, 0 to 445131\n",
"Data columns (total 40 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 State 445132 non-null object \n",
" 1 Sex 445132 non-null object \n",
" 2 GeneralHealth 443934 non-null object \n",
" 3 PhysicalHealthDays 434205 non-null float64\n",
" 4 MentalHealthDays 436065 non-null float64\n",
" 5 LastCheckupTime 436824 non-null object \n",
" 6 PhysicalActivities 444039 non-null object \n",
" 7 SleepHours 439679 non-null float64\n",
" 8 RemovedTeeth 433772 non-null object \n",
" 9 HadHeartAttack 442067 non-null object \n",
" 10 HadAngina 440727 non-null object \n",
" 11 HadStroke 443575 non-null object \n",
" 12 HadAsthma 443359 non-null object \n",
" 13 HadSkinCancer 441989 non-null object \n",
" 14 HadCOPD 442913 non-null object \n",
" 15 HadDepressiveDisorder 442320 non-null object \n",
" 16 HadKidneyDisease 443206 non-null object \n",
" 17 HadArthritis 442499 non-null object \n",
" 18 HadDiabetes 444045 non-null object \n",
" 19 DeafOrHardOfHearing 424485 non-null object \n",
" 20 BlindOrVisionDifficulty 423568 non-null object \n",
" 21 DifficultyConcentrating 420892 non-null object \n",
" 22 DifficultyWalking 421120 non-null object \n",
" 23 DifficultyDressingBathing 421217 non-null object \n",
" 24 DifficultyErrands 419476 non-null object \n",
" 25 SmokerStatus 409670 non-null object \n",
" 26 ECigaretteUsage 409472 non-null object \n",
" 27 ChestScan 389086 non-null object \n",
" 28 RaceEthnicityCategory 431075 non-null object \n",
" 29 AgeCategory 436053 non-null object \n",
" 30 HeightInMeters 416480 non-null float64\n",
" 31 WeightInKilograms 403054 non-null float64\n",
" 32 BMI 396326 non-null float64\n",
" 33 AlcoholDrinkers 398558 non-null object \n",
" 34 HIVTesting 379005 non-null object \n",
" 35 FluVaxLast12 398011 non-null object \n",
" 36 PneumoVaxEver 368092 non-null object \n",
" 37 TetanusLast10Tdap 362616 non-null object \n",
" 38 HighRiskLastYear 394509 non-null object \n",
" 39 CovidPos 394368 non-null object \n",
"dtypes: float64(6), object(34)\n",
"memory usage: 135.8+ MB\n"
]
}
],
"source": [
"df.info()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 52,
"outputs": [
{
"data": {
"text/plain": " State Sex GeneralHealth PhysicalHealthDays MentalHealthDays \\\n0 Alabama Female Very good 0.0 0.0 \n1 Alabama Female Excellent 0.0 0.0 \n2 Alabama Female Very good 2.0 3.0 \n3 Alabama Female Excellent 0.0 0.0 \n4 Alabama Female Fair 2.0 0.0 \n\n LastCheckupTime PhysicalActivities \\\n0 Within past year (anytime less than 12 months ... No \n1 NaN No \n2 Within past year (anytime less than 12 months ... Yes \n3 Within past year (anytime less than 12 months ... Yes \n4 Within past year (anytime less than 12 months ... Yes \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n0 8.0 NaN No ... NaN \n1 6.0 NaN No ... 1.60 \n2 5.0 NaN No ... 1.57 \n3 7.0 NaN No ... 1.65 \n4 9.0 NaN No ... 1.57 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\n0 NaN NaN No No Yes \n1 68.04 26.57 No No No \n2 63.50 25.61 No No No \n3 63.50 23.30 No No Yes \n4 53.98 21.77 Yes No No \n\n PneumoVaxEver TetanusLast10Tdap \\\n0 No Yes, received tetanus shot but not sure what type \n1 No No, did not receive any tetanus shot in the pa... \n2 No NaN \n3 Yes No, did not receive any tetanus shot in the pa... \n4 Yes No, did not receive any tetanus shot in the pa... \n\n HighRiskLastYear CovidPos \n0 No No \n1 No No \n2 No Yes \n3 No No \n4 No No \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Sex</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alabama</td>\n <td>Female</td>\n <td>Very good</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>No</td>\n <td>8.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>No</td>\n <td>No</td>\n <td>Yes</td>\n <td>No</td>\n <td>Yes, received tetanus shot but not sure what type</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Alabama</td>\n <td>Female</td>\n <td>Excellent</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>6.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>...</td>\n <td>1.60</td>\n <td>68.04</td>\n <td>26.57</td>\n <td>No</td>\n <td>No</td>\n <td>No</td>\n <td>No</td>\n <td>No, did not receive any tetanus shot in the pa...</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Alabama</td>\n <td>Female</td>\n <td>Very good</td>\n <td>2.0</td>\n <td>3.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>5.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>...</td>\n <td>1.57</td>\n <td>63.50</td>\n <td>25.61</td>\n <td>No</td>\n <td>No</td>\n <td>No</td>\n <td>No</td>\n <td>NaN</td>\n <td>No</td>\n <td>Yes</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Alabama</td>\n <td>Female</td>\n <td>Excellent</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>7.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>...</td>\n <td>1.65</td>\n <td>63.50</td>\n <td>23.30</td>\n <td>No</td>\n <td>No</td>\n <td>Yes</td>\n <td>Yes</td>\n <td>No, did not receive any tetanus shot in the pa...</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Alabama</td>\n <td>Female</td>\n <td>Fair</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>9.0</td>\n <td>NaN</td>\n <td>No</td>\n <td>...</td>\n <td>1.57</td>\n <td>53.98</td>\n <td>21.77</td>\n <td>Yes</td>\n <td>No</td>\n <td>No</td>\n <td>Yes</td>\n <td>No, did not receive any tetanus shot in the pa...</td>\n <td>No</td>\n <td>No</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 53,
"outputs": [
{
"data": {
"text/plain": " PhysicalHealthDays MentalHealthDays SleepHours HeightInMeters \\\ncount 434205.000000 436065.000000 439679.000000 416480.000000 \nmean 4.347919 4.382649 7.022983 1.702691 \nstd 8.688912 8.387475 1.502425 0.107177 \nmin 0.000000 0.000000 1.000000 0.910000 \n25% 0.000000 0.000000 6.000000 1.630000 \n50% 0.000000 0.000000 7.000000 1.700000 \n75% 3.000000 5.000000 8.000000 1.780000 \nmax 30.000000 30.000000 24.000000 2.410000 \n\n WeightInKilograms BMI \ncount 403054.000000 396326.000000 \nmean 83.074470 28.529842 \nstd 21.448173 6.554889 \nmin 22.680000 12.020000 \n25% 68.040000 24.130000 \n50% 80.740000 27.440000 \n75% 95.250000 31.750000 \nmax 292.570000 99.640000 ",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>SleepHours</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>434205.000000</td>\n <td>436065.000000</td>\n <td>439679.000000</td>\n <td>416480.000000</td>\n <td>403054.000000</td>\n <td>396326.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>4.347919</td>\n <td>4.382649</td>\n <td>7.022983</td>\n <td>1.702691</td>\n <td>83.074470</td>\n <td>28.529842</td>\n </tr>\n <tr>\n <th>std</th>\n <td>8.688912</td>\n <td>8.387475</td>\n <td>1.502425</td>\n <td>0.107177</td>\n <td>21.448173</td>\n <td>6.554889</td>\n </tr>\n <tr>\n <th>min</th>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.910000</td>\n <td>22.680000</td>\n <td>12.020000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>6.000000</td>\n <td>1.630000</td>\n <td>68.040000</td>\n <td>24.130000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>7.000000</td>\n <td>1.700000</td>\n <td>80.740000</td>\n <td>27.440000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>3.000000</td>\n <td>5.000000</td>\n <td>8.000000</td>\n <td>1.780000</td>\n <td>95.250000</td>\n <td>31.750000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>30.000000</td>\n <td>30.000000</td>\n <td>24.000000</td>\n <td>2.410000</td>\n <td>292.570000</td>\n <td>99.640000</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"#### Tylko 6 kolumn jest numeryczne na razie więc wiele statystyk nie zostaje wyświetlonych w tym podsumowaniu"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"#### Zbiór danych jest niezbalansowany, zmienna którą chcemy przewidzieć w znacznej większości przypadków wynosi 0:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 54,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[\"HadHeartAttack\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 55,
"outputs": [
{
"data": {
"text/plain": "HadHeartAttack\nNo 416959\nYes 25108\nName: count, dtype: int64"
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"HadHeartAttack\"].value_counts()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 2. Podział na podzbiory (train / dev / test - 8:1:1)) i oversampling"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 56,
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"#Funkcji z sklearn musimy użyć dwukrotnie, bo dzieli tylko na dwa podzbiory\n",
"train, test_and_valid = train_test_split(df, test_size=0.2) #0.8 train, 0.2 test&valid\n",
"\n",
"test, valid = train_test_split(test_and_valid, test_size=0.5) #0.1 test, 0.1 valid"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 57,
"outputs": [
{
"data": {
"text/plain": "HadHeartAttack\nNo 333640\nYes 20032\nName: count, dtype: int64"
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train[\"HadHeartAttack\"].value_counts()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"Zbiór treningowy jest nadal niezbalansowany więc zrobię prosty oversampling przez kopiowanie mniejszej klasy aż będą prawie równe"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 58,
"outputs": [],
"source": [
"def oversample(dataset):\n",
" num_true = len(dataset[dataset[\"HadHeartAttack\"]==\"Yes\"])\n",
" num_false = len(dataset[dataset[\"HadHeartAttack\"]==\"No\"])\n",
" num_oversampling_steps = num_false//num_true\n",
" oversampled = dataset.copy()\n",
" for x in range(num_oversampling_steps):\n",
" oversampled = pd.concat([oversampled, dataset[dataset[\"HadHeartAttack\"]==\"Yes\"]], ignore_index=True)\n",
" return oversampled"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 59,
"outputs": [],
"source": [
"train = oversample(train)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 60,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAGFCAYAAADEhjUtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAteklEQVR4nO3deXRUVYIG8O++V1u2yg5ZQPa1kUUQZVGR0XZraWVcaWkXup2Zdhkd+7Ta2iPSLij2tNM60+O+22rb7tqujSKC7MgalkAgwSQkZN+r3rvzRyURNIGkUq/uq1ff75wcMIn4VeTcr+59990npJQSREREFtFUByAiImdj0RARkaVYNEREZCkWDRERWYpFQ0RElmLREBGRpVg0RERkKRYNERFZikVDRESWYtEQEZGlWDRERGQpFg0REVmKRUNERJZi0RARkaVYNEREZCkWDRERWYpFQ0RElmLREBGRpVg0RERkKRYNERFZikVDRESWYtEQEZGlWDRERGQpFg0REVmKRUNx5fbbb8f48eOxd+/eH3ytoqICU6dOxa9//WsFyYicS0gppeoQRNFSV1eH8847D4MHD8bzzz8PIUTn12644QZs2rQJ7777Lvx+v8KURM7CGQ3FFb/fj0WLFmH16tV47bXXOj//0Ucf4ZNPPsF9993HkiGKMBYNxZ3TTz8dc+bMwZIlS1BZWYmGhgb8/ve/x7x58zBjxgwUFhbil7/8JSZNmoSZM2filltuQUVFRee/X1RUhAULFmDy5MmYNGkSFixYgB07dih8RUT2xqUziku1tbU477zzMGPGDPj9fixbtgxvvfUW6urqMGfOHJx//vm4/PLL0dzcjEceeQS7du3Ce++9h8TERMydOxejR4/Gtddei2AwiAceeABFRUX45JNPVL8sIltyqQ5ApEJqaioWLlyI66+/Hm63Gy+++CISEhLw2GOPIScnB3feeWfn9z788MM4+eST8eGHH2Lu3LnYv38/pk+fjvz8fLjdbtx3333Ys2cPTNOEpnGRgOj7WDQUt8444wyMGzcO+fn5mDBhAgBg27Zt2LVrFyZNmnTE97a2tqKwsBAAcPPNN+O+++7Dyy+/jKlTp+KUU07BT37yE5YMUTe4dEZxbf78+cjPz8fixYsBAL/4xS9gmibuuuuuH3xvSkoKMjIyAACHDh3CF198gZUrV2LZsmVwu9146623kJWVFdX8RLGAb8GIDjNixAgUFhYiNzcXgwYNwqBBg5Camor77rsPO3fuxKFDh7Bo0SIEAgHMnTsXS5YswTvvvIOKigqsXr1adXwiW2LREB1m3rx5qK+vx69//WsUFBSgoKAAN998MzZv3oyRI0ciNTUVn3/+Oe68805s374dxcXFeOWVV+B2uzFu3DjV8YlsiUVDdJiBAwfixRdfRGNjIy6//HJcccUVcLvdeP7555GRkQGXy4UnnngCmqbhqquuwnnnnYcVK1bg8ccfx3HHHac6PpEt8RoNERFZijMaIiKyFIuGiIgsxaIhIiJLsWiIiMhSLBoiIrIUi4aIiCzFoiEiIkuxaIiIyFIsGiIishQfE0DUA6YpYZoSQhPQNRHxPxcC0DQBTUTuzyayCxYNxT0pJQwzdBKTSz9ykl/f1IbKmmaUHWrEwepmVNY0o7K2Gc0tQbQFTLQFDLQFjdDvgwYCAROGaXb733LpGvxJHqSmeJGa5EVqsgepyV6kJoV+zfD7kJbiRUqiB0kJ7iP+XVOGSun7GYnsjmedUVwJGmbnQN0WMHCotgVlVY04WNWEyppmVNQ0o6I69Ouhmma0BbsvDavpmkBKkidUQile5GclY0ieH8MHpGFQrh8et975mjQhoEVwpkUUSSwacizDNCEQGoAN08S+0jps3VuFnfuqsWNfNUoPNaqOGDZNADmZSRiSl4oheX4MzU/FsAFpyPD7ALQvyUnOfsgeWDTkCB3LXx0Da1VdC7btPYSComrs3F+NwpIapbOTaElOcHeWz5C8VAwfmIqB/VKg69oRszmiaGLRUMzqGDjbAgZ2l9Rg294q7Nwfmq1U1bWojmcbCV4XJozIwuTR/XHSuBykp/hgmBJCgJsPKCpYNBRTDMOErmuoqm3Bl98cwIpN36JgX3Vo5xb1yOBcP6aM6Y+pY/tj1KAMaJrgbIcsxaIhW5PtO610XcPBqiYs2xgql13FNaqjOUJSghuTRma3F08OUpI8MAwTglutKYJYNGQ7ppSQMrTr6sDBBny58QC+2vQtikrrVEdzNCGAYflpmDKmH6b+KAfDB6TBlKGNB4KlQ33AoiFbMKUEZOimxaJva/Hlxm+xYvO3KDnYoDpa3MpK82H2lONw1smD0C89kctrFDYWDSnVMXiVHKzHx6v2YcWmUpRXNamORYcRAvjRkEycMfU4nDIxH26XBtn+poCoJ1g0pIRhSggAKzeX4r2v9mBL4SHVkagHErwuzJyQh/NmDMGwAWmc5VCPsGgoagzThK5pqG1oxQcr9uLDlfu4DTmGjRiYhvNmDMFpkwZA0wQEr+VQN1g0ZLmOd72FJTX429LdWLn5WwQN/rVzCn+SB2dOPQ4/mTkUWWkJnW8oiDqwaMgyHfe8rNtejteX7uLymMNpAjhxbA7mnTUaQ/NTWTjUiUVDEWeYJiCBz9eX4I2lu7G/vF51JIqyacfn4ufnjsGAfikwTcmNA3GORUMRYxihs8Te+2ov3li6m9df4pwmgNNOGIArzhmD7LQESPDIm3jFoqE+61giWbm5FM+8uzWmT0WmyNM1gTOnHod5Z41GWooXADcNxBsWDYWtY0lkz4FaPP7WZmzdw2sw1D2PS8M50wfjsjNHIdHn5nJaHGHRUFhMU6K2oRXPvLcVn68vAf8WUU8leF04/5ShuGj2CHjcekQfjU32xKKhXjEME4Yp8dqnO/HWF4VoDRiqI1GMSk5w48JZw3HBacOgawI6b/x0LBYN9UjQMKFrAp+u3o8XPyzghX6KmPQUL/517nhMH5/HHWoOxaKho+q40L+lsBKPv7UZe7/lCcpkjenjc3HdRRORlODi/TcOw6Khbhmmieq6Vvzv377Bmm3lquNQHEhJdOOXFxyP0ycP5OzGQVg09AOmlNCEwD/W7sdjb25GU0tQdSSKM5NH98ONl05CarKHsxsHYNHQEQzDREvAwJ9e3YAVm0pVx6E4luB14erzx+KcaUNgmJK702IYi4aOsHFnBf74l/W82E+2cfywLNx0+SRkpSZwKS1GsWgIhmFCSuDpd7fiva/28J4Ysh2vR8cVZ4/GT08dBtOU3AodY1g0cc40JfaX12PJC2t5+CXZ3qhB6bj58hOQm5nE2U0MYdHEKcOU0ATwt6W78dKH2/l8GIoZbpeGf5s7HmeeNEh1FOohFk0cMkyJmvoWLHlxHc8no5h1zrTB+Je5xwMAd6bZHIsmDi1dV4z/e2MTty1TzBs7JAN3XH0SknwuXrexMRZNnDDN0P/mx97ajA++2qs4DVHkZKX58LtrTsbgXD+v29gUiyYOGIaJoCmx+Lk1WLudd/iT83hcGq6/ZCJOnzxQdRTqAovG4QzDRH1TG/7z8ZU8p4wcb84pQ7FgzjgA4OzGRlg0DmaYEsXl9Vj4xEocquUNmBQfxo/Iwm+vnAqvR4eL121sgUXjUFJKrC84iAdeWIvmVl70p/jSPyMRv1twEgb0S+HRNTbAonGo97/ag8ff2tK5CYAo3ng9Om66dBJmTsxXHSXusWgcxJQSAsATb2/Bu1/uUR2HyBbmnTUKl/94tOoYcY1F4xCGacIwJB58YS1WbS1THYfIVi6cNQzXnD9OdYy4xaJxAMMw0dAcwF1PrERhSa3qOES2dM60wfjVRRMgpYQQvG4TTSyaGBc0TFRUN+OOP3+Fippm1XGIbO30yQNx02WTAHD7czSxaGKYYZioqGnGrY8u5/NjiHpo+vG5+M38KRBCsGyihEUTo4KGiaq6FvzmkS95jwxRL00Z0x93XD0VmiagcRnNcrybKQYFDRPV9a247dHlLBmiMKzdXo77nl0NKSVvAYgCFk2MMQwTtQ2tuO3RL3lNhqgP1mwrx+Ln1gII3RpA1mHRxBDDMFHX2IZbH12Og9UsGaK++npLKR58YS0gWTZWYtHECMM00dxm4Ld//grlVU2q4xA5xlebvsVDL60DZOjoJoo8Fk0MME2JoCHxn4+tQMnBBtVxiBzny40H8PArG3h/jUVYNDZnSgkpJX7/1CrsKq5RHYfIsZauK8Yrn+zgrMYCLBobk+1nlz344lp8s6tCdRwix3v5owKs3FwKgzvRIopFY2NCCPzP699gxaZS1VGI4oKUwH/9ZT32l9XBMEzVcRyDRWNTUkr8bekufPT1PtVRiOJKa5uBRU99jYbmAAyTZRMJLBobMgwTW/ccwvMfbFcdhSguVda0YNFTqyBNbnuOBBaNzRhm6F6ZB55fyzuWiRTaub8aD7+ynkfURACLxm4kcO+zq1HT0Ko6CVHc+2LDAbzKnWh9xqKxmcff3oId+6pVxyCidi99VIBVW8q4E60PWDQ2YZoSn68vwQdf7VUdhYgOIyXw0MvrUFxez51oYWLR2IBhmCg52IBH/7pRdRQi6kJrm4G7n1yJxhbuRAsHi0YxU0q0BU3c8/QqtLYZquMQUTcqa1qw6MlVAFfQeo1Fo5gmBB56aR1KDzWqjkJEx7BjfzVe/LCAmwN6iUWjkJQSr326E6u3lqmOQkQ99Mbnu7G7pIbXa3qBRaOIYZjYtLsSL33ImzKJYolpSvzhpfXgJrSeY9EoYJoS9c0BPPjCWv5lJYpBByoa8Nz7W1XHiBksGgU0TeB/X/8GdY1tqqMQUZje+XIPtu09xCW0HmDRRJlhmFi1pQwrN/NEZqJYJiXwXy+vR9CU3BxwDCyaKJJSImiY+L83v1EdhYgioLyqCU+9vYVP5jwGFk2UPfv+NlTWtKiOQUQR8veVRfhmVwWX0I6CRRMlhmGisKSWR8wQOdDDr6xHW9DkElo3WDRRIoTAf7+6gbvMiByosqYFj725mUto3WDRRIFpSrzx+W4UldapjkJEFvlszX6s2VbGJbQusGgsZpgmDtU245WPd6iOQkQWe+S1jWgNGFxC+x4WjcV0TcMjfw395SMiZ6uub8XLHxWojmE7LBoLGYaJL9aXYMOOCtVRiChK3v+qCJW1LXwU+2FYNBYxpURLwMATb29WHYWIoihomHju/W3QNG4M6MCisYgmBJ58ewtqG3jMDFG8WbahBEWldXxIWjsWjQUM00RxeT0+W7NfdRQiUkBK4Ol3tkDXOMQCLBpL6JqGFz/cDm48IYpfG3ZWYNNunhgAsGgirmM2w0Mziejpd7dC1znM8icQYZzNEFGHwpJaLNtQEvezGhZNBBmmif2czRDRYZ7/gE/RZdFEkK5peOnvnM0Q0XfKq5rwwYqiuN6BxqKJEMM0sb+sHiu3cDZDREd65ZMdCARZNNRHuqbhJV6bIaIu1DW24fXPdsXtaQEsmgjgbIaIjuWtZYVoaA6ojqEEiyYCOJshomNpbTPw7peFMOJwVsOi6SPOZoiop/6+sgiSRUO9xdkMEfVUbUMblq4rRjDO7qth0fSBYUrOZoioV975cg9ccXZaQHy92gjTBPDG57s5myGiHisqrcPm3ZVxdVoAi6YPWtoMLN94QHUMIooxb36+O67OQIufVxphQcPEZ2v28xHNRNRrawvKUV7VBBknyyEsmjC5dA0frixSHYOIYpCUwN9X7I2bZXcWTRhMU2Ln/mrsK6tXHYWIYtRna4ohER9Nw6IJg6YJfLBir+oYRBTDahpa8fXmsrjY6syiCUNzaxDLN36rOgYRxbgPvy6Ki63Ozn+FERY0THyxvoSbAIioz77ZVYGD1c7fFMCi6SWXrmHpumLVMYjIAUKbAoocvymARdNLlTXN2F5UpToGETnE0nXF0DShOoalWDS9YJihe2ec/u6DiKLnUG0L9hyodfTyGYumF3RNw9J1JapjEJHDrNz8LUwWDZlSorCkBgcqGlRHISKH+XpLGXTNucOxc1+ZBT5by00ARBR5RaV1OFTbrDqGZVg0PaQJgbXby1XHICKHWrG51LE3b7JoeqiyphmllY2qYxCRQ63aUubYmzed+aoiLGiYnM0QkaW27qlEc2tQdQxLsGh6wKVr2LDzoOoYRORgQUNizbYyRz4QjUXTA1JKbNpVqToGETncqq1ljnwgmvNeUYRJKVFYUouG5oDqKETkcOu2l8MwOaOJO6Ypsa6A12eIyHqNLUFs3XMIpumsmzdZNMeg6xo27KxQHYOI4sTKzaWAw44+Y9EcQ2vAwI59PESTiKJj1dYyaMJZTcOiOQrDNLFpVwWChrOmsURkXxXVzThY1aQ6RkSxaI5CQGDDDi6bEVF0FeyrctSmABbNUWia4P0zRBR1u0tqIRx0oYZFcxTVdS0oOcjTmokounYX1zjqYWgsmm4EDRPrCjibIaLoKzxQozpCRLFouqEJ4bj/2UQUG5pagiivcs4hviyabmiawP6yetUxiChO7dhX7Zhzz1g0R7G/nEVDRGrsKq4BHHI/DYumG43NAdTUt6qOQURxandJDXSHbAhg0XRjX1md6ghEFMcKS2pVR4gYFk0XgoaJolIWDRGp09waRNkhZ2wIYNF0gRsBiMgOCvZVOWJDAIumC5pg0RCReruLayEcsCGARdON/eVcOiMitQpLnHFCAIumCw1NbahtaFMdg4ji3N5vnbEhgEXzPVJK7OOyGRHZQGNLEG0BQ3WMPmPRfI9hSO44IyLbqGmI/fv5WDTfo+kC+3kPDRHZxKGaZtUR+iysolmzZg0aG7ve311XV4f333+/T6FU4o4zIrKTytqWmH8IWlhF8/Of/xyFhYVdfm3btm24/fbb+xRKtYPVznqMKhHFrqraFsR4z8DV02+89dZbUVpaCiB0wXzhwoVITk7+wfcVFRUhKysrcgkVqG8KqI5ARAQAqKpvQazvcO7xjOass86ClBJSys7Pdfxzx4emaZg4cSLuv/9+S8JGg2lKNLcGVccgIgIQmtHoemxfTu/xjGb27NmYPXs2AGD+/PlYuHAhhg0bZlkwVVgyRGQnVfUtqiP0WY+L5nAvvPBCpHPYRkMzl82IyD6qauO0aFpaWvDnP/8ZS5cuRXNzM8zvXakSQuDTTz+NSMBoa2jiiQBEZB/VdXFaNPfeey9ef/11TJ06FWPGjIGmxfb64eFqG1k0RGQfHacDeNy66ihhC6toPv74Y9x888249tprI51HKcM0Uc8ZDRHZTG1DK7LTE1XHCFtYU5FAIIDx48dHOoty0gQauLWZiGzmUIxfpwmraGbOnIlly5ZFOost8BoNEdlNZU0zTFMe+xttKqyls3PPPRd33XUXqqqqMGHCBCQkJPzgey644IK+Zos6oXHXGRHZT1NrEKaU0BCbd24KefgdmD00evToo/+hQmD79u1hh1Lpv1/dgE9X71cdg4io03UXTcAZU4+DK0Zv3AxrRvPZZ59FOodt8BoNEdmNYUr0fkpgH2EVTX5+fqRz2Aav0RCR3QSN2D5VM6yiefTRR4/5Pddff304f7RyjS2c0RCRvcTyRgDAgqJJTk5Gv379YrZoYnl6SkTOZMRj0RQUFPzgc01NTVi7di0WLlyI3/3ud30Opoqux+auDrKGx6UhOdGDpAQXEr1uJPhcSPS6kOhzI8Grw+d1wedxwefV4fPo8Lhd8Lo1eNw63K7YvHBL9tM/IzFG95uFhFU0XUlMTMSpp56K6667Dg8++CDefPPNSP3RUaU76Dgdp/B5NCT6QoN9UoI7NOB7dSR43Ujw6UjwuOHz6vB6QoO9t32wd7t1eNw6PG4Nbj008Lt0DW6XBl0XcAlA1wR0LfRkVaGFdkx2fEBooV97QZompBGANIKAEURsvw8lu9DcOiBMhHnro3IRK5oOeXl53T59Mxbosf6EIYv4PBqSEjxI8rmR2PnuXkei1w2f14WEjnf1Xhe8br39Q4PH44LHpcHdPth7XBpc7QO+rgu4tPbBXlgx2Acgg0HIYBtksCn0a3MbzGAbZKAFMhiAEWxDMBho/57Qr2bnP3/3OWkEIAPt/2yEfjUDbd99LdgGGWgLHS9BFGHps+Yh7eSfqo4RtogVjZQSZWVlePLJJ2N6V5qdi8bncYXe1fvcoaUcnxsJXtcRHz6PC15vxzv7jnf0oQG+YznHrX832Lv00Dv6zsFeExDi8MFeAzoG/V6QpgFpBNsH5kD7gB0a7M2m1vZBO/SrEQwgaHQM6gGYwdbO3/9gwD/sc2bn9xz5/RzsyWmEpgMxPD8Oq2hGjx7d7cAjpcSDDz7Yp1AqHetJdj6PC8kJLiQlujvX6jvW6zuWcELr9qGlnI53951LOK72wb5zoO8Y7EPv7rXOwV6EHt/al8HeMDqXcULvvNsH6kDHYN8x4LcP9ocP4EbbYe/gv3vH3vn7YCA0M+iyBAIc7IkiSYvdk5uBMIvmuuuu63LQS05OxqxZszB48OC+5lJCmiZ+d/UUQMrOd/baYcs3IozrN9IItn98/913G8zWtvbBPvS5YLcDeBu6eodvfm/Z5vAS4GBP5BzhjD12ElbR3HDDDZHOYQtC02CW7kDboQPdLNt8/937MZZ5jCAHeyLqM6G5gBjedxb2NZqqqio8/fTTWL16Nerq6pCeno4pU6bgqquuQmZmZiQzRlX9N0vRsOUL1TGIiL4T4zOasNKXlZXhwgsvxHPPPQev14uxY8fC5XLhmWeewQUXXIDy8vJI54wKKSWEx6c6BhHREYTLA/TyGq2dhDWjWbJkCVwuFz744AMMHDiw8/PFxcW45ppr8Mc//hGLFy+OWMiokSY0Fg0R2YwrOb1951lsCmtGs3z5ctx4441HlAwADBw4ENddd13sPhRNSmieHz5bh4hIJd0fu5cjgDCLxjAMpKend/m1jIwMNDQ09CmUSlw6IyK70ZPSVEfok7CKZtSoUXj33Xe7/Nrbb7+NkSNH9imUSlw6IyJb0V3QfUmqU/RJWNdofvWrX2HBggWora3Fueeei+zsbFRUVOD999/H8uXL8ac//SnSOaND06AnpqpOQUTUyZXU9epRLAmraGbMmIHFixfjoYceOuJ6THZ2Nu6//36ceeaZEQsYTUJocGfkqo5BRNRJT05THaHPwr6P5uDBgxg7dixuvfVW1NbWoqCgAI888khMX58BAFdqtuoIRESd9JQ4ndE8/fTTePjhh3HFFVdg2LBhAIDc3Fzs2bMHixcvhtfrxcUXXxzRoNGieXzQEpJhNsd2YRKRM7iS0yGlGTrzMEaFVTSvvPIKbrrpJlx77bWdn8vNzcWdd96JrKwsPPvsszFbNADgTuuPVhYNEdmAnpwBmCZwjAN/7Sys5OXl5Tj++OO7/NqECRNQUlLSp1CqudL6q45ARAQA0JNjf+ksrKLJz8/HypUru/zamjVrkJOT06dQKknTYNEQkW24UtLj8zEBl1xyCZYsWYJAIIAzzjgDmZmZqKqqwtKlS/HMM8/glltuiXTO6JES7rR+qlMQEQEAXP6sXj+Lym7CKpqrrroK5eXleOGFF/Dss892fl7XdVx55ZW4+uqrI5Uv+jSdW5yJyDZ0B9xHI6SUYT8ftL6+Hhs3bkRNTQ38fj/Gjx/f7dE0sSRQW4HiR/9VdQwiineajiG3vRqfM5oOKSkpOOWUUyKVxTZcKRmA0PjQMiJSypM1IOZLBghzM4DTCU2HKyW2T0slotjnyRmKPiw62QaLphuudO48IyK1vLnDANNQHaPPWDRdkNx5RkQ24M0bAaH36QqHLbBoumIacGfkqU5BRPFMaPD2G6Q6RUSwaLqi6fANHKM6BRHFMXdWPoTLrTpGRLBouiCECK2NOmDKSkSxyZszTHWEiGHRdEO43PDmDFUdg4jilDdnKKQRVB0jIlg03ZCmCd+A0apjEFGc8uYNj/kzzjqwaLoleZ2GiNQQGjz9BzviZk2ARdMtoenwHTdWdQwiikPujFxobq/qGBHDojkKPSGZB2wSUdR5c52zEQBg0RyVlBJeXqchoijzOGgjAMCiOTrTgG8gi4aIosuXN8IxGwEAFs1RCd2FhEHjVMcgojgiPAmho2ccshEAYNEckzs9B1pCiuoYRBQnEodOhNCdM5sBWDQ94hswSnUEIooTiSNOdNT1GYBFc0zSCPJ+GiKKDqEhceQUR5zYfDgWzbFoOhKGTFCdgojigDd/JHRfkuoYEceiOQYhBLw5Q+BK5fNpiMhaSSOmOG7ZDGDR9Ig0TSSNmaY6BhE5XOLokxy3bAawaHpGCCSPO0V1CiJyMFdaf3gc+sBFFk0PCCHg7T8ErrT+qqMQkUMljpgCaZqqY1iCRdND0jSQNGa66hhE5FBJo6aqjmAZFk1PCYHkH3H5jIgiT3gT4Rs4BkJz5pDszFdlASE0ePsPgiudpzkTUWQlDp0I4aCzzb6PRdML0jSQPJbLZ0QUWU48DeBwLJreEBqXz4goooTLg6SRJzpyW3MHFk0vCCHgyR4Id2a+6ihE5BBJY6ZD8yaojmEpFk0vhXaf8eZNIooM/5RzHLutuQOLpre4fEZEEeLpPxi+vOGO3W3WwdmvzgJCCHiyBsCdNUB1FCKKcf4TznL0JoAOLJowSNOAf/LZqmMQUQwTngQkH3+aozcBdGDRhEFoOlIm/hM0X7LqKEQUo1KOPw3C5VEdIypYNGESmgv+E85UHYOIYpR/yjkApOoYUcGiCZcQSJ16PqA5f9pLRJHlHTAanqwBECI+huD4eJUWEEJAT0pF8o9mqI5CRDHGP/nsuNgE0IFF0wfSNJE27ULVMYgohmiJfiSPmRYXmwA6sGj6QGgaPNkD4Rt8vOooRBQjUibMBuJkyaxDfL1aC0jDQNrJP1Udg4higkDq5HMAIVQHiSoWTR8JXUfisEm8gZOIjilx+AlwpWZBsGiot6RhhHagERF1SyD99J9BmobqIFHHookAoetIGT8LelKq6ihEZFNJY6bB22+Qox9w1h0WTaQIDf4TzlKdgojsSGjIOP0Kx5/S3B0WTYQITYP/xPPi5kgJIuq5lAmnw53e3/GnNHcnPl+1RTRfIlJP4rUaIvqO0N1IP+1ySBmfsxmARRNRQmhIm3kR9OR01VGIyCb8k8+GnpQWN8fNdCV+X7lFhKYj4/QrVMcgIhsQngSknXKx6hjKsWgiTGihHWienKGqoxCRYmknnQ/NkxB39818H4vGAtIwkHXWL1THICKFtEQ/UqddELcbAA7Hn4AFhK7DN2AUkkZPUx2FiBRJmz43rg7OPBoWjUWkaSLzzKsgdLfqKEQUZXpKJlKnnBOXN2d2hUVjEaFp0FMy4J/6E9VRiCjK0k+9JO4OzjwaFo2FhNCQfsrF0JPSVEchoijx5g5DyoTZnM0chkVjMaG7kH7a5apjEFE06C5kz/l3QErVSWyFRWMxoelImfhP8PQfrDoKEVksfcZFcGfmcjbzPSyaaDBNZP54geoURGQhT//BSJsxN65PAOgOfyJRIHQdCceNRfLxs1RHISIraDqy59yoOoVtsWiiREoTWWf/Eq7UfqqjEFGEpU27AJ7s47hk1g0WTZQIoUHobvS74CaAU2six3BnDUT6qZfG/TEzR8MRL4qErsObPxJp0y9UHYWIIkFo6DfnRoCbzI6KRRNlQgikn3opvLnDVEchoj5KPel8eHKGQOhcMjsaFo0i/S68BcLtVR2DiMLkzshDxqx5XDLrARaNAkLT4UrNRuYZV6mOQkThEBqy59wAgCXTEywaRYSmwX/Cj5E4YorqKETUS/4p58CXP5JLZj3EolFIShPZ59/As9CIYognZygyZ89XHSOmsGgUEkKD5k1A9vnXq45CRD2gJ6Ui59LfAnyYWa/wp6WY0HQkDpsE/+SzVUchoqPRXOh/0a3QE/28MbOXWDQ2IKVE5hlXwZ01UHUUIupG5o+vhjd/BEsmDCwaGxBCAEJDzmV3QEv0q45DRN+TMvEMpE4+mwdmhok/NZsQug5XSgZyLvktH/9MZCPeAaOQdc61kHzGTNhYNDYiNB3e3GHtp8Byfz6RanpKBnIuvg0AeGNmH7BobEZoGpLGTEP6rHmqoxDFNaG7kXPx7dC8Sbwu00csGhsSQiB9xlykTDxDdRSiuJV17r/C038wb8qMABaNTUkpkXXOvyBhyATVUYjijv/E85AyfhYE75eJCP4UbapjPbj/Rb+BO5vbnomixTdoHM8hjDAWjY0JTYNwuZF7+X9CT05THYfI8dzZA9H/ot+ojuE4LBqbE5oOPTEVOZfeyccKEFnIlZ6LvJ/dDc3j45JZhPGnGQOErsPT7zj0u/A/+BhoIgu4/NnIm78Imi+ZO8wswFErRghNR+Lwycg882rVUYgcRU9OQ+78u6EnpXKHmUVYNDFECIHUE89FBi9UEkWElpCC3J8tgsufxZmMhVg0MSjtpPOR+eNrVMcgimmaLxm5P1sId0YOS8ZiQvIAn5hVu+5DHPrwSQD8X0jUG1pCMnKvWARP1gCWTBRwRhPD/CechaxzrgXPRSPqOS3Rj7z5v2fJRBFnNDFOSon6b5ai8oM/A9JUHYfI1vSkVORe8Xsul0UZi8YBpJRoLPgaB99+GDCCquMQ2ZKenIa8+ffAldqPu8uijEXjENI00bJvC8r++gBkoEV1HCJbcaX2Q+7P7oLLn82SUYBF4yDSNNBWXoTSvyyC2dygOg6RLfgGjkH/i2+D5klgySjConEYaRoIVJej9KW7YNRXqY5DpFTy+NORfd6/AQCvySjEonEgaRgwmmpQ+vIiBCpLVMchij6hIeP0K5A27aeQUvLpmIqxaBxKGgakGUTFO4+gsWCl6jhEUSM8PvS/8D+QMOwEFoxNsGgcTEoTQmio+fptVP3jRW5/JsdzpWYj57I74c7I5VKZjbBo4oCUEi3F23HwjYdgNNaqjkNkCe+AUci55HZonkRe9LcZFk2ckKYBo7ke5X99EK0HdqiOQxRRycfPCl30F4IzGRti0cQRaRoAgEOfPIO6tX9XnIYoEgQyTv8Z0qZfyIv+NsaiiVP1W5ah8oP/gwy0qo5CFBbNm4jsOTciccQUFozNsWjilDRNBA4dQNlfFyNYXaY6DlGvJAwZj+w5N0JP9HOpLAawaOKYNAxIow0H33oYTbvWqo5DdEzC7UPGP81H6uSzIU0TQuMB9LGARRPnOrdAr3gT1ctehTQCqiMRdck7YDT6/fTf25+GyYKJJSwaAhBaSgvWVqDi/f9Fy74tquMQdRK6G+mnXY7Uk+cA0uRSWQxi0VAnaRoQmo66jf9A1WfPwWzhwZyklidnKPpdcBPc6bmcxcQwFg39gDQNmC1NqPzoCTRu+0p1HIpHmo60GXORPvNiADwQM9axaKhLHddumgo3oPKDxxCsq1AdieKEO2sA+v30Jnj6D+a2ZYdg0dBRSdOANA1UL30JtWs+4HlpZB1NR+rUnyBj1jwAgsfIOAiLhnpESom28r2oeO9/0FZepDoOOUzSqJORccbPQ49Z5izGcVg01GPSMAAhUPv126j+8jXIYJvqSBTjvANGIfPMq+HLG8H7YhyMRUO9Jk0TRmM1qpe9ivpNnwPtZ6gR9ZQ7Iw8Zs+cjadTUzt2O5FwsGgpLx2aBQG0Fqpe9iobNX/D6DR2TnpSKtFMugX/SjwEpeR0mTrBoqE86C6emHNVfvIKGrctZOPQDwu1F6klzkDb9QgjdxRlMnGHRUER0rK8HqkpR9cUraNy+goVDgNCQMmE2MmbNg5aQwmswcYpFQxHVUThthw6g+vO/oLHgawD8KxZ3NB1Jo05C+mmXwZOZ3znzpfjEoiFLdBZORTGqvvgLmnasBgvH+bREP/wTz4D/xHPhSk7nhX4CwKIhi3UUTuvBfaj56m9o3LEKMIKqY1GEefoPQeqJ5yJ53KmA0EKPVOb9MNSORUNR0fHO1mhpRMM3/0Ddxs8QqCxWHYv6QtORNHIqUk86H74BoyCNIITuUp2KbIhFQ1EnDQNC19Hy7S7Ur/8YDdtWQAZaVMeiHuLyGPUWi4aUkaYJCAEZbEPDlmWo3/gpWr/drToWdYPLYxQuFg3ZQseyS1tFMerWf4yGLcv4PBwbcGfkIXHUSUgeOx3enKFcHqOwsGjIVkJ/HSVgmmgs+Br13/wDzfu3cgNBFHlyhiBp1MlIGjMdnsy8zpknZy8ULhYN2VbHtRwz0Ibmok1oLlyPpt0bEKw9qDqaswgNvgGjkTRqKpLGTIfLnwlpGoDQWC4UESwaigmhgU+EjrupLkPTrrVoKtyAlv3beIp0OHQXEgYfj6RRJyFp9DToCclcFiPLsGgoJnUMijIYQPO+LWjavR5NhRsQrC5VHc2ehAZPv+PgzRuBhEHjkDhiCjSPj+VCUcGioZgnzdCZakILnSbdtGstWvZvQ1t5EQLVZXF55pqekglf/gh480bCN2AUPLlDobk8oWtgpslTkymqWDTkOIe/S5fBANoqi9Fatgdt5UVoO7gPbQf3wWxpVJwycoTHB2/ucHjzRsCXHyoWPSkVQOhnAU3ntRZSikVDcSE04GqdBzsGG6q/K5/2AgpUldp39qPpcCVnwJWaBd2fCZc/C+6MXPgGjIE7MxdCaKHrWABvniTbYdFQ3JLSbF9G+m72E6itgNFYA6OhBkZTLcymOhhHfHR8rj6CpSSgJ6XC5c+E7s+C6/CPtH5wp2ZDS/QfMSuRptH+4DBeXyH7Y9EQdUGa5ndFcthMqPPrUkK2NsNoroPRWAujsfboxaO7oLm9EG4vhMsL4XZDc3kgdA80X+IRhdH53xYan99CjsCiIYqAzhtNu8SbHSm+sWiIiMhSnJcTEZGlWDRERGQpFg0REVmKRUNERJZi0RARkaVYNEREZCkWDVGUzJ49G7Nnz0ZDww+fHHrbbbdh/vz5ClIRWY9FQxRFBw4cwIMPPqg6BlFUsWiIomjgwIF49dVXsWLFCtVRiKKGRUMURXPmzMG0adNwxx13dLmEBgA1NTW4++67cdppp2H8+PG47LLLsGrVqignJYocFg1RFAkhcO+996K2thYPPPDAD75uGAauueYarF27FkuWLMEbb7yBkSNHYsGCBdi0aZOCxER9x6IhirL8/HzceuuteO2117B8+fIjvrZ8+XJs3boVf/jDHzB16lQMHz4cd999N0aMGIGnnnpKUWKivmHREClw6aWXYsaMGbjzzjuPWELbuXMnUlJSMHLkyM7PCSEwZcoU7Ny5U0VUoj5j0RApcs8996C+vh73339/5+e6O0xdSgmXiw85o9jEoiFSJC8vD7fddhtef/11rF27FgAwatQo1NfXHzF7kVJi3bp1GD58uKqoRH3CoiFS6OKLL8bMmTNRXFwMAJg5cybGjBmDW265BatXr0ZhYSEWLVqEnTt34sorr1Sclig8LBoixe655x6kpKQAAHRdx9NPP42xY8fi+uuvxz//8z9j165dePbZZzFx4kS1QYnCxCdsEhGRpTijISIiS7FoiIjIUiwaIiKyFIuGiIgsxaIhIiJLsWiIiMhSLBoiIrIUi4aIiCzFoiEiIkuxaIiIyFIsGiIishSLhoiILMWiISIiS7FoiIjIUiwaIiKyFIuGiIgsxaIhIiJLsWiIiMhSLBoiIrIUi4aIiCzFoiEiIkuxaIiIyFIsGiIishSLhoiILMWiISIiS7FoiIjIUiwaIiKy1P8D9fLrZk6Aa/IAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"train[\"HadHeartAttack\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 61,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAGFCAYAAADEhjUtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxTUlEQVR4nO3dd3xUVcI+8OfeO+m9AwlJpCQhlACGAIKNLlh4UUCUpq7uq+K76w/b6q5tRVG2+Mru2taK7L4iq7hYQECUThJKKEkgJAQSIAVSZtIz997fHzGs9GQyd+7cO8/38/HjkrAzz0SYZ849554jqKqqgoiISCOi3gGIiMjcWDRERKQpFg0REWmKRUNERJpi0RARkaZYNEREpCkWDRERaYpFQ0REmmLREBGRplg0RESkKRYNERFpikVDRESaYtEQEZGmWDRERKQpFg0REWmKRUNERJpi0RARkaZYNEREpCkWDRERaYpFQ0REmmLREBGRplg0RESkKRYNERFpikVDRESaYtEQEZGmWDRERKQpFg0REWmKRUNERJpi0RARkaZYNEREpCkWDRERaYpFQ0REmmLREBGRplg0RESkKRYNERFpikVDRESaYtEQEZGmWDRERKQpFg0REWmKRUNERJpi0RARkaZYNEREpCkWDRERaYpFQ0REmmLREBGRpix6ByAyCllWoKiAKAqQRMFpj6uoKhRFhaoCoghIIj//kbmwaMjjKYoKRVVhkcQLvl7X2IIaWzNO1zah2tqEalszqq1NqKlrRrW1GbX1zVAUtdPP6WURERTgjeAAbwQH+CDY36vt34HeiAj2RVSYH8KCfOHtJZ39/6iqCllWIUkCBMF5RUekNRYNeRS7rEAUBIg/jUiqrE04UlKDopO1OFlZj5q6JlRbm1Fja4a1vhkOdIhTBfh5ITLEFxEhfogK80PPmCD0iQtFr9gQ+Pm0/fU9/zURuRtBVVWd/yoROd/5n/5lRcGJinoUlFTj6MlaHD1pxdGTtbA1tOod1WHRYX7oFRuCxB4h6B0bgj5xoYgM9QNw6VEakR5YNGQK6k/zHJIkoqnFjqITtT+NVNoK5XiZDXZZ0Tum5gJ8LbiqR0jbP7HB6NszFPExwRBFAXZZYfGQLlg0ZFjtb5yyouDQsWrszq/A3sOVKCitcWjexKz8fS1I6xuFq1OikdG/G8KCfCErKgSAl9vIJVg0ZBjt5SGKAsrO1GPnwTLsPVyJA4Wn0dQi65zOOBK6BeHqfjEY1i8G/a4KhySKHO2Qplg05Nba3wAVRUX+sSps338KmQfLcPJ0vd7RTMHPx4K0vpG4OiUGGf27ITzY95xCJ3IGFg25HVVtu6dEUVVkHizDtv2nsCuvHHWNxp24N4r4mCAMTYnGtYNjkRQfBllWIHGkQ13EoiG30T56KSm34dvtxfhhV4mhV4UZXXxMEMZlxGN8RjwC/b1ZOuQwFg3pSlba7gFpbpXxw65SfLfzGApKavSORT9jkQRk9O+GiSMSMSQpqm13BAG8aZQ6jEVDumj/dJxXXIW1O4qxJeckmjmh7/YiQ30xNj0ek0YmIjLUj4sIqENYNOQy7eVirW/BusxjWJ95HKUVdXrHIgcIAjCwTyQmZCRg1KAeECUBULmAgC6ORUOaay+YA4Wn8eWmQmTllkPmfS6mEejnhRuujsN/3dAH0WH+UBSVhUPnYNGQZtoLZv+R01i+Nh8Hi87oHYk0JIoCrk3rgTsnJCMuOgiyonAnagLAoiENtBfMviOVWL4mH7lHq/SORC4kCEBGajfcOSEZfeJCuVqNWDTkPO1vKDkFlfjHWhYMAYOTojB7UgqSE8I5wvFgLBrqsp8XzPI1+cgrZsHQua5Oica8yam4KjaEheOBWDTksPaC2Xu4AsvX5iO/uFrvSOTmRg7sjrmT+yEuOoiLBjwIi4Y6rf0N4mDRGXzw1UEcOsaCoY4TBeDaIXG49+b+CA3yYdl4ABYNdYqsKGhosuPdVfuxcVep3nHIwHy9Jdw1MQW3XdcbqqpywYCJsWioQ9ovk63dUYwPv8rlBpfkNIndg/HIjMFIig+Dqqrc2saEWDR0RaqqorSiDktX7OVEP2lCEICJwxNwzy394eMlcXRjMiwauiRZViArKpavzceXPxbybn7SXGigD35x2wBcPzQOsqJC4vyNKbBo6ALtk/1ZuWV46/N9qKhu1DsSeZi0vlFYMD0N0WH+XCxgAiwaOoesqLDWNePNz/dh+/5TeschD+ZlEXHHmL6YMS4JAsDLaQbGoiEA/zkX5t+bi7B8TT4am+16RyICAPSIDMAjMwajf68ILhQwKBYNQZYV2BpbsWRZNvYdOa13HKILiAIwfWwS7p6UAkVVubOAwbBoCLvyyvGnf+6Gtb5F7yhElzWoTySenJuOAF8vXkozEBaNh5JlBQDwwVcH8e/NReCfAjKK0CAfPDknnZfSDIRF44FkRcHpmia88lEmCktr9Y5D1GmiAMyakIKZ45Og8mRPt8ei8UA7D5ThT//chYYmTviTsQ1JisLjc9Lh72PhpTQ3xqLxEMpPN1su+zYP/9pYwEtlZBrhwb54cm46+iWG81Kam2LReABZVtDYbMfij7ORU1CpdxwipxNFAbMnpWD62CQeP+CGWDQmpygqik7W4uUPMlFZwzv8ydyuTonG47PT4evN/dLcCYvGxFRVxc6DZXhtWTZa7YrecYhcontkABY9OArhQT4sGzfBojGxdTuP4S8rc87OzxB5ivBgX/z+l9cgNjqAN3e6ARaNSa1YfxjLvs3TOwaRbgJ8LXj2FyOQkhDOORudsWhMpP3QqHdW7cfqzUV6xyHSnbdFxBNzhiGjfwxXpOmIRWMSiqJChYo//3MPftzNI5aJ2omigAV3pGH88AS9o3gsFo0JyIoCWVax6INM7D5UoXccIrc056Z+mDEuSe8YHolFY3CyrKCpRcaz72zH4ePVeschcmu3XtsL908dePYyM7kGi8bAZFlBbX0LnnlzK0or6vSOQ2QI1w+Nw6OzhkCAwEUCLsKiMShZVlBW1YDfvrUVp2ua9I5DZChDk6PxzD0ZkCSBy59dgEVjQLKsoLy6AY+/sZlnyBA5qH+vCPz+lyMhiSJHNhpjlRuMLCuw1rfgt29uY8kQdcHBojNY9EEmVKhQ+HlbUywaA5EVFU2tMp55axv3LSNygl35FfjDJ7sAte0+NNIGi8YgFEWFLCt47p3tKCm36R2HyDS25JzEXz7by1VoGmLRGED7J61XPsrCoWNcwkzkbOsyj+PvX+7XO4ZpsWgMQBAEvP5/e5CdV653FCLT+nJTET7bcFjvGKbEojGA91cfwMZdJXrHIDK9j7/Jw8ZdJdzx3MlYNG7uXxsL8MUPhXrHIPIYb3y6BweKTkNWeIaTs7Bo3JSiqtiQdRwffpWrdxQij2L/ad/A0oo6yDLLxhlYNG5IVlTszq/A0hV79Y5C5JEamux49u3tqK1vYdk4AYvGzdhlBScqbFj8URZkXicm0k2VtQnPvbMdCu+x6TIWjRtR1LZ7ZV7+MAvNrbLecYg8XvEpK976fB/vsekiFo0bEQUBb6zYixOV3ImZyF18t/MYfthdyisMXcCicROKouLbbUexac8JvaMQ0Xn++tlelJ+p53yNg1g0bsAuKzhWZsW7Xx7QOwoRXURTi4xFH2ZCVlTO1ziARaMzRVFhlxW88mEWWu38tETkro6X2fC3f+VwvsYBLBqdiaKAP/9zN06dqdc7ChFdwYasEmzIOs6dAzqJRaMjRVGxenMRtu07pXcUIuqgN/+1DycqeTNnZ7BodCLLCopO1uL91Qf1jkJEndDcKuPlDzNhV3hgWkexaHSgKCqaW2Us/igLdn4qIjKc0oo6LF2xFyLnazqERaMDURTwp3/sRnlVg95RiMhBP+4uxdodxZyv6QAWjYvJioq1O4qx82CZ3lGIqIveXXUAZ6xNLJsrYNG4kKKoqGtowQeclyEyheZWGX9bmQNR5CW0y2HRuJAoCvjryhzUN9n1jkJETpKdV45t+05yFdplsGhcRJYV7Nh/Ctv3cykzkdm8/cV+2GWFuwZcAovGBVRVRYtdwZuf79M7ChFpoMrahI++ydM7htti0biAIAh4/98HUGVt0jsKEWnk661HUXzSyktoF8Gi0ZgsKzhSUoO1O4/pHYWINKQoKpZ+tpcLAy6CRaOx9gUAvHRLZH4FJTX4autRnl1zHhaNhmRFwdodx3CktEbvKETkIp98mwdbfQvvrfkZFo1GVFVFU7OMj7/J1TsKEblQQ5Mdb3+xj5fQfoZFoxFBEPDhVwdha2jVOwoRudiWnJPYfaiCexn+hEWjAVlRcPRkLb7jAgAij/W3lTngmKYNi0YDkiji42/ywEu0RJ6rvKoBa3ce43JnsGicTlYUFJbWIDuvXO8oRKSzlRsK9I7gFlg0TiaJIpavzdc7BhG5gcqaRnyXyVENi8aJZEXF0RO1yMrlaIaI2nzGUQ2LxpkkUcAnHM0Q0c9UVjdiXeZxjx7VsGicpH2lWSYPNCOi83y24TA8eQkai8ZJJFHEPziaIaKLqKhuxHoPHtWwaJxAVhQUn7JixwGOZojo4las99xRDYvGCSRRxPI1HM0Q0aV58qiGRdNFsqLgWJkVOw/y5EwiurzPNhR45KiGRdNF7aMZHgNARFdSXtWADVklHjeqYdF0gaKoKCm3YccBjmaIqGNWrD8MQfCsYQ2LpgsEAfj35iKOZoiow8qrGpCZW+ZRoxoWTRe02hVs2lOqdwwiMphvtxVDkjzn7ddzXqmT2WUFW3JOoKHJrncUIjKYPYcrUFnTCNVDLoewaBxkkUR8t/O43jGIyIBUFfhm61GPuezOonGAqqooO1OPg0Vn9I5CRAa1PvM4RzR0aaoKrN3B0zOJyHE1dc3Yvv+URxz3zKJx0IYsXjYjoq5Zu/MYLB6wKMD8r9DJ7LKC7PxyVNua9Y5CRAa3r6AS1bYmvWNojkXTSRZJxHe8bEZETqCo8IidAlg0nWStb0Z2Hk/QJCLn+D67xPT31Jj71TmZLCv4budxyIpnrBQhIu2VlNtQWFoDxcTvKyyaTpAkEeszuQiAiJxrXeZxU+/qzKLpIFVVcfh4NU5U1ukdhYhMZvPeE4B5BzQsmo5SVBU7eYImEWnAWt+CI6U1pr2Bk0XTQZIoYlc+FwEQkTaycsugsGg8m7W+BUUna/WOQUQmtSu/ApJozrdkc74qJ7PLCrJyyzxmAzwicr0jpTWwNbToHUMTLJoOsEgiduVX6B2DiExMVYHsvHJT7n3GoukARVGx5xCLhoi0tSuv3JR7n5nvFTmZqqo4UlqDusZWvaMQkcntOVxpypVnLJorUFQVWblc1kxE2mtf5my21WcsmitoW9bMy2ZE5BpZueVQTbYdDYvmCmwNbZ8wiIhcYVd+hek22XTLVzNmzBiMGTMGdXUXbvfy1FNPYc6cOS7JYZcVZOeVc1kzEbnMkZJq080Ju2XRAMCJEyfw2muv6ZrBIonYxSMBiMiFFBXIzisz1Rk1bls0PXv2xKeffopt27bpmmPP4Updn5+IPM+eQ5Wmunzmtq/k1ltvxciRI/HMM89c9BIaANTU1OCFF17A9ddfj0GDBuHOO+/Ezp07nZahoroB1npz3qlLRO7LbPPCbls0giBg0aJFqK2txauvvnrB92VZxr333ovs7GwsWbIEn3/+OZKSknDfffdh3759XX5+WVFw6Fh1lx+HiKizTlTUodXOS2cuERsbiyeffBIrVqzAli1bzvneli1bcPDgQfzxj39ERkYG+vTpgxdeeAF9+/bFe++954RnF1BQUuOExyEi6hxZUVFSbtM7htO4ddEAwMyZMzFq1Cj89re/PecS2uHDhxEUFISkpKSzXxMEAenp6Th8+HCXn1cSBRxh0RCRTo6U1phm3zO3LxoAeOmll2Cz2fDKK6+c/dqltmlQVRUWi8Upz1t4osYpj0NE1FlFJ2ohCuY439kQRdOjRw889dRTWLlyJbKzswEAycnJsNls54xeVFXFrl270KdPny4/Z9mZejQ02bv8OEREjjh6shaiyKJxqenTp2P06NEoKSkBAIwePRr9+vXDwoULkZmZicLCQrz44os4fPgw5s2b16XnkhWF8zNEpKviU1a9IziNYYoGaLuEFhQUBACQJAnvv/8+UlNTsWDBAtx+++0oKCjAhx9+iMGDB3fpeVTVXP+Rich4GprsqKxu0DuGUwiqGfekdoJFH+zEjgPctZmI9PObecMwfEA3wx/xbOz0GjpWZp6lhURkTEUnak2x1yKL5iJa7TLKz9TrHYOIPFzRyVpTnLhp/FeggdKKOpjsOAgiMqCjJ2v1juAULJrzyLKCoye5EICI9He6pgn1JjgygEVzHlUFyqt42YyI3IMZVp6xaM4jSQJqbM16xyAiAgCcqW265E4oRuFQ0WRlZaG+/uKf+q1WK77++usuhdKTIAioZtEQkZuosjVBNviksUNFM3fuXBQWFl70e7m5ufjNb37TpVB644iGiNxFtbUZMHbPoMO7Tz755JM4deoUgLY9xZ5//nkEBgZe8PuKi4sRGRnpvIQ6qLY16R2BiAhA2wdfo+951uERzcSJE6Gq6jnXCtt/3f6PKIoYPHjwObssGxFHNETkLqrrmgxfNB0e0YwZMwZjxowBAMyZMwfPP/88evfurVkwvTS3ymhqkfWOQUQEAKixGv+Dr0MHtyxbtszZOdyGtc74/1GJyDzMsDjJoaJpamrCm2++iY0bN6KxsRGKcu4pcIIgYP369U4J6GpVVs7PEJH7qDHBnLFDRbNo0SKsXLkSGRkZ6NevH0SD7yzaTlFUnKk1/n9UIjKP+iY7Wu0KvCzGfZ91qGi+++47PProo3jggQecnUdXiqJyIQARuR1rfTMiQvz0juEwhyqytbUVgwYNcnYW/Qlc2kxE7qfa4AsCHCqa0aNHY9OmTc7OojtJ5PYzROR+ztQ2GnobGocunU2ePBnPPfccqqqqkJaWBj+/C4d0U6dO7Wo2lxMEAdb6Fr1jEBGdo7a+BbKiwiIZ834ah45yTklJufyDCgLy8vIcDqUnHuFMRO7mwdsHYcLwBMMegubQiGbDhg3OzkFERJcgK6qhj3R2qGhiY2OdnYOIiC5BkQ3cMnCwaP7yl79c8fcsWLDAkYcmIqLzyOfdFG80Ti+awMBAREdHs2iIiJzE6OfROFQ0+fn5F3ytoaEB2dnZeP755/G73/2uy8GIjO7+qQOQ2D1Y7xhkAjHh/jDmerM2DhXNxfj7++O6667Dww8/jNdeew1ffPGFsx6ayJAmZvSEj4/32V/LjXVQFe4MTp0nekmAoMDBWx9157SiadejR49Lnr5J5Enuf+V7zJ3cD6MGdoOfnw8gCKg/sAnWnA1orSzROx4ZSNgNdyF0xG16x3CY04pGVVWUlZXh73//O1elEaFte/f//XQv/vdTYFhqDGZNSEbv9JsQMvwWNJ8qhHXPOtQd3AK1pVHvqOTmBEGEkc9zdqhoUlJSIAgXv2Koqipee+21LoUiMpus3HJk5ZbD11vEneNTMG5YHCJv+iUiJtyL+oNbYcv5Hk0luXrHJHclSoCBZ2kcKpqHH374okUTGBiIG264AYmJiV3NRWRKTS0KPvw6Fx9+nYvesSGYOyUVg1JHIyjtRrRWl7eNcvZvhFxXo3dUciOCKOkdoUsc2oLGzLgFDbmaKAJTRvXCrddehZgwfwBAQ+Fu2PauR8OR3QAXEHi8iIm/QPCQ8RAkp0+ru4TDqauqqvD+++8jMzMTVqsVYWFhSE9Px/z58xEREeHMjESmpijA6s1FWL25CFGhvpg3pT9GpA5Ct77pkBussO3dAFvO92itOql3VNKJR45oysrKMHPmTFRVVWHw4MGIiopCZWUl9uzZg7CwMKxcuRIxMTFa5NXcH5fvwg+7S/WOQYRRg7pjxrhkJHYLhChJaCo9BOuedajP2wa1lcdZeJLoqY8ioN9IwxaOQyOaJUuWwGKx4JtvvkHPnj3Pfr2kpAT33nsv/vznP2Px4sVOC+kqsqIgNMhH7xhEAICt+05h675T8Pe14O5JKbhxSAKibn4YkZPuR92BTbDt3YDmkwV6xyQXkILCDVsygINFs2XLFjz99NPnlAwA9OzZ8+wNm0akKEAYi4bcTEOTHe+uOoB3Vx1Av8QwzLkpFakDb0TwkPFoOXMCtt3rYDvwI5QGq95RSSOWwDC9I3SJQ0UjyzLCwi7+wsPDw1FXV9elUHoRBSAsyFfvGESXlFdcjaff3AqLCEy9oQ8mX3MVIsfORfjYOag/nAXb3vVoLMoBVGNvwkjnkgJC9I7QJQ4VTXJyMlavXo3rrrvugu99+eWXSEpK6nIwPUiSiPAQFg25P7sCrPz+CFZ+fwTdI/wx/+b+SE8Ziu4pI2Cvq4Zt73rYcjbCXlOud1TqKskC0cdf7xRd4lDRPPTQQ7jvvvtQW1uLyZMnn10M8PXXX2PLli144403nJ3TZcKDWTRkLKfONOCVj7IAAGPSe+L2G/ug5zXTEDZ6OhqPHYRtzzrUH9oJ1c5jyo1I8jf2aAbown00q1atwh/+8AecPn367NeioqKwcOFCTJ061Vn5XK6uoQWzfvet3jGIuiTI3wtzJqfiurTuCPD3gdLcCNv+H2DL2YCWsqN6x6NO8OneG7H3GnPeu53D99FUVFQgNTUVTz75JGpra5Gfn4+lS5cadn6mXYCfFyRRMPz5D+TZbA2t+NvKHPxtZQ7S+kbi7okpSB48HiHpN6G54hhse9ah7sAmKE31ekelK5AMvhAAcLBo3n//fbz++uuYPXs2evfuDQDo3r07ioqKsHjxYvj4+GD69OlODeoqgiAgJNAHVdYmvaMQOUVOwWnkFGyBxSJixpi+mDgiARET7kXEuPmoz98B6971aCo+ACNv2mhmUkAIVFW95P6SRuDQpbMJEybgjjvuwAMPPHDB99566y2sXr0aX3/9tVMC6uHXf/oBhSdq9Y5BpJn4mCDMuzkVQ/pGwMvLC3braVj3rIct53vItjN6x6OfCR11O8KunWHY7WcAB0c05eXlGDhw4EW/l5aWhjfffLNLofTGmzbJ7I6X2/D793YCACaNTMTU63qhx7XTEXbdTDQe3de2gKAgC5DtOiclj710Fhsbi+3bt2PkyJEXfC8rKwvdunXrcjA9hXHlGXmQNduLsWZ7McKCfDBvSiquGZCCmF5pkJvqUZfzPQ9q05kUEAIIxjxZs51DRTNjxgwsWbIEra2tGDduHCIiIlBVVYWNGzfigw8+wMKFC52d02XssoLQQI5oyPNU25rx+v/twevgQW3uxBIUAUE0dtE4vLz51VdfxbJlyyDL/9nCXJIkzJs3D48//rjTArqa3a7g2x3FeOeL/XpHIdLdzw9qCw70hSq38qA2F4t/5G1YgiP1jtElXTqPxmazYe/evaipqUFwcDAGDRp0ya1pjEJVVew7chq/fWub3lGI3EqfuBDMnZyKgb3CYPHy4kFtLiBYvJH4xD8MveIM4MFnF1Vb34zZz67ROwaRWxJF4JZRvXHLtYmI5kFtmvLudhXi7vuD3jG6zLjr5TQUEuCD4ABvWOu5ZQfR+RQF+HJzIb7cXMiD2jTmHRWvdwSnMPYMk4biY4L0jkDk9iprmvCH5btwxzPfYvFHmThWrSJ4+K3o+eBS9Jj3MgIH3QjBi4trHOUdFQ/VwSXmv/nNbzBo0CAcPXrhlkOVlZXIyMjAY4891tWIHcJLZxehqCre/mI/vtnKPaGIOus/B7XFIijQF0prMw9qc1C3mc/Ar/dgCA4sb7ZarZgyZQoSExPx8ccfnzPP88gjj2Dfvn1YvXo1goODnRn5ojiiuQhFVpHQjSMaIke0H9R213Nr8cTSTTh43IaAgTci9p7FiPvlGwjJuAWiv/ZvbmbgHZPoUMkAQHBwMF588UVkZmZixYoVZ7++du1arFu3Di+//LJLSgbgiOaSDh2rwmNvbNY7BpEpWETgv27si5tGJiIyxBdQVdQX8KC2yxF9A5C48OMuP87jjz+OjRs3Ys2aNfD19cWkSZMwYcIEPPvssygsLMTixYuRnZ2NgIAADB8+HE899RSioqIAAMXFxfj973+PvXv3QlEUDB06FE888QSSk5M7lYFFcwktrTKmP/01FO7iTORUPaICMG9yKtJTIuHt7c2D2i7BN3Egetz9fJcfp7a2FlOmTMGoUaMQHByMTZs2YdWqVbBarbj11ltxyy23YNasWWhsbMTSpUtRUFCAr776Cv7+/pg2bRpSUlLwwAMPwG6349VXX0VxcTHWrVvXqQwsmst4eMn3OF5m0zsGkWmdPagtOgCCKKHx2AHY9qznQW0AQkZORfgNd0EQpS4/1vr167FgwQJ4eXnhk08+QVpaGl5//XVs3LgRX3755dnf19jYiBEjRuC5557DtGnTkJ6ejjvvvBO/+tWv4OXlhcrKShQVFWHYsGEQO7FbAZc3X4KqqujbM5RFQ6Sh77NL8H12yc8OauuL6KkDeFAbAJ/ufZz2WOPGjcOAAQMQGxuLtLQ0AEBubi4KCgowZMiQc35vc3MzCgsLAQCPPvooXn75ZfzjH/9ARkYGrr32Wtx8882dKhmAI5pLstsVrNlRjLe5FQ2RS6X1jcTdk/ohOS4YosXisQe1OXvrmTlz5iA2NhaLFy8GAPziF7+Aoih47rnnLvi9QUFBCA8PBwCcOXMGP/74I7Zv345NmzbBy8sLq1atQmRkx7Nx1dklWCwiUhLC9Y5B5HFyCk7jiaWbcfsz3+L/vstHvU80Iibch4Rfv4/oqY/CN3EgAGNvyXIlol+g5vub9e3bF4WFhejevTsSEhKQkJCAkJAQvPzyyzh8+DDOnDmDF198Ea2trZg2bRqWLFmCf//736isrERmZmannouXzi4joXswLJIAu8xBH5Gr2e0Klq89hOVrDyGhWxDmTknFkKTh6NF/NOy1p2Hduw62nI2mPKjNmZfNLuWuu+7Cp59+isceewwPPfQQgLbNkg8dOoSkpCQEBwfjhx9+wPHjx7Fw4UIEBgbi888/h5eXFwYMGNCp5+KI5jK8LCKS4o29SSiRGRwrazuobdpT3+CvK3NQ0eyDsGtnIP6Rt9Ft1rMISBkJGPgEyvP5JQyAKmu7Z1zPnj3xySefoL6+HrNmzcLs2bPh5eWFjz/+GOHh4bBYLHj33XchiiLmz5+PKVOmYNu2bXjnnXcQH9+5rXE4R3MZsqzgXxuPYNm3eXpHIaLznD2obWA3+Pl6Q26sQ92+jaY4qC3ugdfhHdVT7xhOw6K5DFVVceyUFY/88Qe9oxDRZZw9qK1HEETJYuiD2qSgcCT8z7t6x3AqFk0HzHl+DWpszXrHIKIruPRBbRvQVGKMKxNBaWMQOeUhw59B83MsmitQVRX/++kebMgy9lCcyNNceFBb2U8Htf3g1ge1RU97DAHJGU65UdNdsGiuQJYVbN9/Cq8uy9Y7ChE5wFAHtQkiEh/7GKK3n95JnIpF0wENTa2Y9btvue8ZkcFFhfpi/s39MTw1Gj4+3pAbamHb+73bHNTmE5eC2HmL9I7hdCyaDnpi6WbkFVfpHYOInGR0Wg/MGJeEhJhAiJKEptJDsO5Zh/q8bVBb9ZmTDbvhLoSOmApBMs9lM4BF0yGyrGDl9wX4ZE2+3lGIyMkuOKitpQl1BzfrclBb7P1/gndUvKkWAgAsmg5RVRXFp6z4Hy5zJjK1folhmDM5FakJoZAsFrScPgHbnnWwHfgRSoNV0+eWAkKR8Ov3NH0OvbBoOoHLnIk8Q/tBbZNHJiAi1A9QtD+oLXDgDYi6ZYHpRjMAi6ZT/vzP3fg+m8uciTxJj6gAzJ+SiquTtT2oLfq//h8CkkeYbn4GYNF0mCwr2LbvJF77ZJfeUYhIJ2PTe2LajX3QMyoAgtR2UJt1zzo0HMrs2kFtgojEhR9B9PF3Xlg3wqLphKYWO2Y/twbNLW607p6IXO4/B7V1R4C/T5cPavPrNRjdZ/3O+UHdBIumE7hLABGdr/2gtqS4YEgOHtQWdduvEdhvJAQT7UD9cyyaTpAVBYeP1+CJpZv1jkJEbsZiETFzbF9MGJ6AsGBfQJFRn78D1r3r0VR8AMDF32oFbz8kPvoBBIuXawO7EIvGAQ++ugGlFXV6xyAiN5XQPQjzpqRiSJ+Itn3Wak/DdomD2sy4ieb5WDSdJMsKVm0qxIdf5eodhYgM4KaRiZh6fS90j/AHBBGNR3Ng27MO9YezAcWO7nNfgm9sMgTRvOdQsmgcYK1vwdzn10Dm3mdE1EEXO6itPncrgq+eqHc0zbFoHLTog53YcaBM7xhEZEDDU7th5oQk9O4RDECFaNJFAO3MO1bTkCwrmDgiUe8YRGRQO3PL8Ngbm1Hb0Gr6kgFYNA6RJBFDk6MRHuyrdxQiMqhh/WIQFuQZ7yEsmi4YO6yn3hGIyKAmX5MIWXb+nmnuiEXjIEEAJo1MhIlXJBKRRqLD/DAkORqS5BlvwZ7xKjUgCAKiw/wxoFek3lGIyGAmjkiE4kHrsFg0XWCXFUwckaB3DCIyEC+LiEkjEyCZ+L6Z83nOK9WARRJx7eBYxISbc8dVInK+8cMTEOTvrXcMl2LRdJGiqpg5LknvGERkABZJxMxxSZfY9cy8WDRdZJFEjB0Wz1ENEV3R+Ix4hAX5QPSwVUQsGidQVRUzOKohosuwSCLunJDscaMZgEXjFJIkYuywnhzVENEljfPQ0QzAonEeFZg+tq/eKYjIDVkkAXeO97y5mXYsGieRJBHjMjhXQ0QXGjssHuHBvh45mgFYNM7FUQ0RnadtNJMMD7o/8wIsGidqH9VEh/npHYWI3MSY9HhEhPhCFD1zNAOwaJxPBVegEREAQBIFzJrg2aMZgEXjdO2jmiiOaog83pj0nogM9fPo0QzAotGGCu4WQOThLFLbaMaTNs+8FBaNBiRJxPiMBCR0C9I7ChHpZOr1fdpGMx660uznWDQaUVQVD92RpncMItJBTLg/7pqYAoElA4BFoxmLJCL1qghcPzRO7yhE5GIP3T4IHj4tcw4WjYYURcX9tw2An49F7yhE5CLXDOqOoSkxHnN6ZkfwJ6EhURQQ5O+NuyYm6x2FiFzAz8eCB6cNgqJwAcDPsWg0JooCbr22NxcGEHmAuyelIDjAx+OXM5+PReMCqqriVzOH8JotkYn1jg3BLaN7sWQugkXjApIkom98GCaPukrvKESkAVEAHpkxGCrvmbkoFo2LqKqK+Tf3R1QodwwgMptJ11yF3nGhXABwCfypuIggCLCIAhZM5701RGYSFuSD+VNSOZq5DBaNC0mSiKEpMbh+SKzeUYjISe6fOhDeFpE3Z14Gi8bFFEXFf08bhNAgH72jEFEXDe/fDdcOjuUlsyvgT8fFRFGAn48FT85J5yo0IgOLCffH/7trKO+Z6QAWjQ4kSUT/XhGYNSFF7yhE5ACLJOCpecPg4yVxOXMHsGh0IggCZo5PwpDkKL2jEFEn3XNzf/TqEcJLZh3En5KOVBV4YnY6IkJ89Y5CRB10zcDuuPW63hzJdAKLRkdn52vmDoPEP7REbq9bhD9+PWsoDzPrJBaNziRJREpCGGbf1E/vKER0GRZJxNPzMuBlEXmYWSexaNyAIAi4Y0xfDOsXo3cUIrqEX9zWHwndg2HhvEyn8SfmJhRFxcLZVyMqjFvUELmb0Wk9MGUUN8x0FIvGTYiiAF8vCU/Py4BF4h9mInfRPTIAv7pzCO+X6QIWjRuRJBG9YkMwf0p/vaMQEQAvi4in52fASxI5mukCFo2bEUUBt13fGzcMjdM7CpHHe2TGYMTHBPF+mS7iT88NqaqKX88agqHJ0XpHIfJYc27qhxuv7smRjBOwaNyQIAgQIOCZezKQFB+mdxwijzNpZCJmjEvSO4ZpsGjclCgKkCQBLz4wEnHRgXrHIfIYw1Jj8OC0QXrHMBUWjRuTRBG+3hIWPTgKkaHcpoZIa317huKpucMAXi1zKhaNm5MkEcEB3njpv0chyN9L7zhEphUXHYgXHhgJSRJ457+TsWgMwCKJ6BbujxfuHwkfb0nvOESmExXmh0UPjoK/jwWSyLdFZ+NP1CAkSUSvuFA8PT+DG3ASOVFooA9eeXAUQgK8uYxZI/ypGogkChjcNwq/njUUHNkTdV2AnxdeevAaRIb6sWQ0xJ+swYiigOuHxOK+WwboHYXI0Hy9pbZVnVGBLBmN8adrQILQtnvA3ZN4FDSRI/x9LXj+/pHoHcdTMl1BUFWe4GNk3247irc+3wfu90fUMaFBPnjpl9cgLiaQE/8uwqIxOFVVsX3/KSz5ZBfssqJ3HCK31i3CH4seHIWIYF+OZFyIRWMCiqIi9+gZvPjeTjQ22/WOQ+SWruoRjJf++xoE+HqxZFyMRWMSsqzgeLkNz769HTV1zXrHIXIrA3pH4Nn7RsDbIrJkdMCiMRG7rOBMbROeeXMryqsa9I5D5BZGDOiOJ+ekQxDBORmdsGhMxi4rqG9sxe/e3oajJ616xyHS1YTh8Xj4jsEAwO3+dcSiMSFZVtBiV/DieztwoPCM3nGIdDF9bF/MnZwKVVUh8A5nXbFoTEpWFKgK8Non2di+/5TecYhcRhCA+24dgNuu6613FPoJi8bElJ9urnln1X58vfWozmmItOfrLeFXM4dgVFoPjmLcCIvG5NovG2zcVYK/fpaD5lZZ70hEmkjoFoSn78lATLg/J/3dDIvGQ8iKitIKG156fyfKznBFGpnL2GHxeOj2QZBEgcuX3RCLxoO0LxJY8kk2snLL9Y5D1GU+XhIevH0Qxg6L56S/G2PReBhFUSGKAlasP4zla/PPzuMQGU1cdCCeuScD3SMDeUaTm2PReChVVZF/rBqvLcvC6ZomveMQdcr1Q+PwyIzBsPBSmSGwaDyYXVbQ3Crj9X/uwY4DXAJN7s/LIuKBqQMxaWQiFFWFyEtlhsCi8XDtf1m/2XYU7315AC127gBN7ql7RACevicD8TFBvMvfYFg0BKBt7qa0og6vLcvCsTKb3nGIznH90DgsmJ4GL4mbYhoRi4bOkmUFEIAvfijE/607hOYW3nND+uoeEYCH7kjD4KSoswtZyHhYNHQBRVFRZW3C31bmICuPy6DJ9SySiNtv7IM7xycDQtuvybhYNHRR7Z8ed+w/hbe+2IcztVyZRq4xoHcEHpkxGN0iAjjZbxIsGrosWVZglxUs+zYPq7cc5X03pJngAG/ce0t/jB0WD1lRuI2MibBoqENUVcXxMhveWLEXh49X6x2HTEQQgHHD4nHfrQPg6y1xst+EWDTUYbKiQBQErNlejI++yUN9Y6vekcjg4mOCsGDGYPRLDOd9MSbGoqFOkxUF9Y12vLNqPzbtKQX/BFFn+flYcMeYvrh9TB9ABUcxJseiIYe0LxY4VmbF8jX52HHgFAuHrsjbIuKma67CneOT4O/rxeXKHoJFQ13SPml7vMyG5WvzsH0/C4cuZJEEjMtIwN0TkxES6AMA3GnZg7BoyCnaC6ek3Ibla/Kxbf9JFg5BFAXcMDQOsyelIDLUDyrAeRgPxKIhp2q/pFZa0VY4W/excDyRRRIxJr0nZoxLQky4P+/q93AsGtJE+xvLiQoblq89hK05J8BbcMzPx1vCxOEJuGNMX4QG+XAEQwBYNKSxs4VTWYd/rs3H5pyTvOnThAL8vDD5mkRMu6EPAvy8AHAOhv6DRUMu0V44NbZmfLfzGNZnHsepM/V6x6IuEARgYO9ITBgej2sGxUISBV4eo4ti0ZDLtS8cOFh0Bmt3FGPbvlNobuVO0UYRHuyLccPiMXFkAqLD/GGXFW56SZfFoiHdtBdOY7MdG3eVYN3O4zhSWqN3LLoISRQwLLUbJo5IwNDk6J/mXnh5jDqGRUNuof1T8fEyK9ZsP4YfdpfA1sAtbvQWGxWI8cPjMT4jAcEB3pBlhXfxU6exaMitKD/9cVQUFTv2n8J3mcewr+A0ZC4gcJkgfy9k9O+GiSMS0S8xnOVCXcaiIbfVPsppbLYjO7cMO3PLsSuvHHXczNOpBAHoExeKq1OiMSy1G/rEhUIUBW7VT07DoiFDaC8dRVGRf6wKOw6cQnZeBUrKbXpHM6Qgfy8MSY5Ger8YpPeLQZC/99nduTnvQs7GoiHDab8Pp3259K78cuw9XImcgkpU25p1TueeLjVq4YoxcgUWDRnez98sSyts2JVfgYLj1Th60orSyjqPvEHU11tCYo9g9OoRgpTE8P+MWmQFoshRC7kWi4ZM5+fF02qXUVJuw5HSWhSdqMXRk7U4etKKxma7zimdJzzYF1f1CEav2BD0ig1B356hiA7zhyAIUFQViqJy1EK6YtGQR7D/9Em+fd+tyuoGHCmtQdGJWhSdtOLoyVpUVjfqnPLyRFFAbFQgevUIxlWxIegdG4recSEI8vcGAMiyAgjgBD65HRYNeSxZUc453bHVrsBa34waWzNO1zSi2tb2v6ttTT/9+z+/bmpx3k4GFklAkL83ggO8ERzgg7BgH0SE+CIixA+RIX6ICfdHZKgfggO8z27xYpcVSLwERgbBoiG6CFVVz967c7E39OZWGda6FtTUNcEun/tX6IK3/ot0gZdFRLC/D4L8veDrY7ng+7KsQFHB/cPIFFg0RESkKV7MJSIiTbFoiIhIUywaIiLSFIuGiIg0xaIhIiJNsWiIiEhTLBoiItIUi4aIiDTFoiEiIk2xaIiISFMsGiIi0hSLhoiINMWiISIiTbFoiIhIUywaIiLSFIuGiIg0xaIhIiJNsWiIiEhTLBoiItIUi4aIiDTFoiEiIk2xaIiISFMsGiIi0hSLhoiINMWiISIiTbFoiIhIUywaIiLSFIuGiIg0xaIhIiJNsWiIiEhTLBoiItIUi4aIiDTFoiEiIk2xaIiISFMsGiIi0hSLhoiINMWiISIiTbFoiIhIUywaIiLSFIuGiIg0xaIhIiJNsWiIiEhTLBoiItIUi4aIiDTFoiEiIk2xaIiISFP/HxHLEwHdotihAAAAAElFTkSuQmCC\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"test[\"HadHeartAttack\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 62,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"valid[\"HadHeartAttack\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"Proporcje osób palących / niepalących w pierwotnym zbiorze danych:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 63,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAp0AAAGFCAYAAAC/uEhVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAABt5UlEQVR4nO3dd1hTZ8MG8DsJe4gIiMhSUXAiw4HixLpwVGnr1k9Rq9W66l5Vq1artm5rHa1WtK1aRK31tbXuPepeIAoCorL3SHLO9wcllYqKQDiM+3ddvV6bnCR3wtt48zzneY5MFEURRERERERaJJc6ABERERGVfyydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ1EREREpHUsnURERESkdSydRERERKR1LJ0v8fHxgY+PD1JTU1+5b8aMGRg8eLAEqUqXyMhIuLi44OLFi8X6vC4uLggMDCzW5yQiIqLSg6XzP6KiorBs2TKpYxARERGVKyyd/2Fvb49ffvkF586dkzoKERERUbnB0vkfPXv2RIsWLTB79ux8p9lzpaSkYO7cufDy8oKnpyeGDBmCW7duAQAiIiJQt25dnDx5Ms9jZs6cif79+wMAsrOzsXz5crRu3Rru7u7o06cPzpw5ozk2MDAQHTt2xKJFi+Dp6YkxY8bkm+PkyZPw8/ND48aN0aJFC8yYMQNJSUkAgIsXL6J+/fr4888/0blzZ7i6umLIkCGIjo7GokWL0KRJE7Ro0QLffvttnucMCgpCz5494erqCh8fH2zYsAFqtTrf1w8NDYW3tzemTZumOeb48ePw8/ODq6srOnbsiFWrViE7O1vzmGfPnuGTTz6Bu7s72rRpg4MHD772cyYiIqLygaXzP2QyGRYvXoykpCR89dVX+R4jiiJGjhyJiIgIfPfdd9i9ezfc3NzQv39/3L17F/b29mjatCl+++03zWOysrLwxx9/wM/PD0BOAT179ixWrFiBffv2oWvXrhg9ejROnDihecyTJ0/w4sULBAUFYdKkSa/kiI+Px6effooPPvgAv//+O9atW4fLly/nOT1ArVbj22+/xYoVK7B9+3bcv38f77//PnR1dbFnzx7069cPq1atwoMHDwAA27Ztw9y5c9G3b18cOHAAEyZMwNatW7F06dJXXj88PBxDhw5FmzZtsHTpUigUCpw6dQoTJ05Enz598Ntvv2HevHk4fPgwpk6dCgBQqVQYMWIEEhISEBAQgNWrV2Pr1q3v/oMiIiKiskUkjfbt24tr1qwRRVEUf/75Z9HZ2Vk8ffq0KIqiOH36dHHQoEGiKIriuXPnRBcXFzEhISHP4wcOHChOnz5dFEVRDAwMFN3c3MT09HRRFEXx999/Fxs3biympKSIYWFhorOzs3j37t08j582bZrmNX799VfR2dlZvHfv3mvz3r17V3R2dhaPHTumuS04OFjzmAsXLojOzs7iiRMnNPePGzdObNOmjSgIgiiKopiRkSE6OzuLBw8eFAVBEFu2bCkuXbo0z+ts27ZNbNCggZicnCxGRESIzs7O4t69e8U2bdqIs2fP1jyXKIpi//79xUWLFuV5/Pnz50VnZ2cxIiJCPHXqlOjs7CyGh4e/8j5+/fXX175XIiIiKtt0pC69pVXfvn1x5MgRzJkzJ8+IJQDcuXMHoiiiffv2eW7Pzs5GVlYWAKBz58744osv8Ndff6F79+44cOAA3nvvPZiYmOD06dMAgAEDBuR5vFKpRKVKlfLcVqNGjddmrFevHrp3747Ro0fDysoK3t7eaNeuHTp27JjnOEdHR82fjYyMYGdnB5lMBgAwMDDQZI+Pj0dsbCw8PT3zPL5Zs2ZQKpV49OgRLCwsAADz58+HUqmEjY2N5rkA4O7du7h58yb27t2ruU0URQA5U/EPHz6EmZkZHBwc8ryP3BxERERUPrF0vsGiRYvQo0cPLFmyJM/tgiDAxMQk3y1+9PT0AOSUuy5duuDgwYNo1aoVTp8+jU2bNgH4t4Tt3LkTxsbGeR4vl+c94+FtZezrr7/G2LFjcerUKZw7dw5Tp06Fp6cntm/frjlGRyfvj/m/r5ErN9d/CYLwyvP07t0bzs7OWLp0KTp27AhnZ2fNsSNGjEDv3r1feR4rKyuEhoZqnu9l/81IRERE5QvP6XyD6tWrY8aMGdi7dy+uXLmiud3Z2RmpqalQKpVwdHTU/LN582b89ddfmuM++OADnD17FkFBQbC0tISXlxcAoE6dOgCAmJiYPI8PDAx8p70qb9y4gS+//BK1atXC0KFDsWnTJnz55Ze4cOEC4uLi3vn9WlpawtLSElevXs1z+5UrV6Crq5tndLJbt24YMGAAGjZsiJkzZ2oWEdWpUwePHz/O876ePXuGZcuWIS0tDfXq1UNKSgpCQkI0zxUWFvbGRVtERERU9rF0vsVHH32EVq1aISIiQnNb69atUa9ePUyaNAkXLlxAeHg4lixZgsDAQDg5OWmOa9KkCWxsbLBmzRq8//77mhHGOnXqoH379pg3bx6OHTuGiIgIbN68Gd99912eYvc2JiYm2LVrF5YvX47w8HAEBwfj999/R40aNWBubl6o9zt8+HAEBARg165dCA8Px8GDB7Fu3Tr07dsXpqameY6Vy+VYuHAhHjx4gC1btgAARo4ciSNHjmDdunV4/Pgxzp8/j5kzZyIlJQVWVlZo3rw5GjdujGnTpuH69eu4desWpk2b9trRVyIiIiofOKdZALnT7LkUCgW+//57LF++HBMnTkRGRgacnJywbt06tGjRIs9je/fujdWrV2tWredauXIlVq5cic8//xxJSUlwcHDA4sWL852Wfh0nJyesXbsW69atw65duyCXy+Hl5YXNmzcXusT5+/tDT08P27dvx5dffolq1aph5MiRGD58eL7H16lTByNHjsS6devQoUMHdOnSBStXrsR3332HjRs3onLlyvDx8cGUKVMA5BTV7777DosWLYK/vz8MDAwwatQoREVFFSovERERlQ0y8XUn8hERERERFRPOaRIRERGR1nF6nagA1IIAQQBkMkAul0H+0jZRRSWKItSCCIiAXFG8z01ERFRasHRShSeKItRqMadMyv8tfEmpWUhKzUJiShYSUrOQnJad889Lf87IUkGlFqBSi1CpBaj/82e1IEJHIYe+ngL6ugro6ymg98//5v67kb4uzE31UaWSAcwrGcCqsiHMK+nDzEQfOop/JyMEQYQgiFAoZHn2RiUiIioLeE4nVRi55VJHJ6fICYKI2KQMRL5IRXRsGqJjU/E0Ng3P4tLxPC4N2apX9xMtaSaGuqhSyQBVqxjB1soY1S1NYFfVBA7VTFHZNGcP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\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[\"SmokerStatus\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 64,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAGFCAYAAAAVe47pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAA9hAAAPYQGoP6dpAABpwUlEQVR4nO3dd1xV9f8H8Nc557L3UhEREhFwgDhxK9rXNPfW1NLyl5WZliWm5q5cOSszNS0bprkzzazMPXJriKKyFET2Hvec3x/IDQIVEDgX7uv5ePRI7jj3DVzgdT/3fd4fQVEUBUREREREBkxUuwAiIiIiIrUxFBMRERGRwWMoJiIiIiKDx1BMRERERAaPoZiIiIiIDB5DMREREREZPIZiIiIiIjJ4DMVEREREZPAYiomIiIjI4DEUExEREZHBYygmIiIiIoPHUExEREREBo+hmIiIiIgMHkMxERERERk8hmIiIiIiMngMxURERERk8BiKiYiIiMjgMRQTERERkcFjKCYiIiIig8dQTEREREQGj6GYiIiIiAweQzERERERGTyGYiIiIiIyeAzFRERERGTwGIqJiIiIyOAxFBMRERGRwWMoJiIiIiKDx1BMRERERAaPoZiIiIiIDB5DMREREREZPIZiIiIiIjJ4DMVEREREZPAYiomIiIjI4DEUExEREZHBYygmIiIiIoPHUExEREREBo+hmIiIiIgMHkMxERERERk8hmIiIiIiMngMxURERERk8BiKiYiIiMjgMRQTERERkcFjKCYiIiIig8dQTEREREQGj6GYiIiIiAyeRu0CiIhIPbKsQFYUKAogioAklt9aiawokOWKOTYRUXljKCYiqsZytTIEQYAkCgDyQnBKejZS0rORmJqFpJS8fyenZesuT07L+y81PQfZudoSPY4AwNhIgoWZESzNjGBhZgQLUyNYmRvDxtIYNlYmsLc2hb2VKWwsjWFpbvyfGhmaiUhdDMVERFVc/mqvRvo3VCalZSHqfirCo1Nw90EqIu+nIup+KmLi06GVFRWrzWNmokFtJwu4OFnq/qtbywq1HS1gYpz3p0lRFGi1CiRJgCAIKldMRNWdoCiK+r8diYioRBRFgVb+NwAnpWYh+E48bt9NRmRsXvC9+yAV6Zm5KldadvbWpg+DsgXq1LCCl5sdPOrYwkgjPgz0CleViajcMRQTEekxWVGgyAokSYRWKyM0KglXb8UhJDwB18MTEJuQoXaJlUIjifCoYwMfd3s0fMYBjes5wMoirwUjVysXWiUnIioLhmIiIj2TH/Kyc7QIDovH5ZsPcOVWHELCEpCdK6tdnt6o5WAOH3d7eLvbo4mHI+rUsIQgCNBqZUgMyURUSgzFREQqUx5OaZAkEfFJmTh2+S5OX43GldAHyNXyV3RJWZkboYVPTQQ0dkZzn5owMZK4ikxEJcZQTESkAvnhyW6iKODOvWQcv3QXp65G41ZUksqVVQ9GGhG+9R0R0NgZbZo4w8bSBFqtDFHkSXtEVDyGYiKiSqKVZUiiCK0s4+qtOJy4fA+nr0bjvoH0BatFEABPVzu0blQL7Xxrw6WGJbSyAlEAAzIR6TAUExFVsPwe13/uxOPAyTs4eSUaaRk5apdlsJwdLdCxqQv+F+CGGnbmbLEgIgAMxUREFSI/CKemZ+Pg6XD8eioMkfdT1S6L/qNRPQd0a+mKDv51YKwRH+6+x9VjIkPEUExEVI60sgxREHDxRiz2nwjDqav3eLJcFWBqLKFDUxc83+4ZeNSx5eoxkQFiKCYiekr5q8IJKZk4cCIMv50JR0x8utplURnVr2OLHm3d0blZHWg0IgSw95jIEDAUExGVUX4YDglLwJZDITj7T4xuqgRVfRamGjzb2g0DAz1hY2HM1gqiao6hmIiolPLD8OWbD/D9r9dxOfSB2iVRBTLSiOjWsi6GdGsAR1szyLLCcExUDTEUExGVUH6f6Zlr0dhyMATXwxPULokqkSQK6NSsDoY96wVnRwvdiD0iqh4YiomIniBXK0MSBRy/dBdbfgvB7bvJapdEKhIFoK1vbQz7nxfcalkzHBNVEwzFRESPkKvNmyTxx98R2Pb7DY5UoyJa+tTE8O5e8HS1YzgmquIYiomI/iO/Z/jE5bv4as813ItLU7sk0nMtG9bEq/2aoIa9OSdVEFVRDMVERA/JigJREBAamYi1Oy/j2u14tUuiKkQjiejd4RmM6O4NI0mExDnHRFUKQzEREQBZVpCUmoUNe67i8PlI8DcjlZWtpQlG9vDG/1q7QZYVhmOiKoKhmIgMWq5WhgDgpz9uYuuhEGRma9UuiaoJDxcbvDrAFz7u9hzjRlQFMBQTkUHKDynnrt/HF9sv4e4D9g1TxWjftDbG9WkCWysTBmMiPcZQTEQGRyvLSErNxmfbLuLU1Wi1yyEDYGIkYUCX+hjarQEAsKWCSA8xFBORwchfHf79bDjW7riMtMxctUsiA/NMbWtMeaE56tSw4qoxkZ5hKCYig6DVykjLzMWqH8/j5BWuDpN6NJKI4f/zwqBATyhQONuYSE8wFBNRtZY/Zu3E5btYvfUiktOy1S6JCADgVdcO77zQHDXtzblqTKQHGIqJqNrK1crIztHis58u4fC5SLXLISrCxEjC6J4+6NPRgzviEamMoZiIqh1FUSAIAs5fv4/lP5xHfHKm2iURPZZvfUe8PaIZbK1MGIyJVMJQTETVilYrQysr+HLnZew/GaZ2OUQlZmaiwf/1a4xurdx0L+yIqPIwFBNRtaHVyohLzsS89adw516y2uUQlUmX5q54c0hTiAJHtxFVplL9tAUGBiIwMBCpqalFrgsKCsKoUaPKrbCq7NSpU/Dy8kJkZOX1MKrxmI/y999/4+zZs7qPb9y4gT///LPCHm/VqlUIDAyssOPri4SEBGzdulX38ahRoxAUFFSuj/Hfr6WXlxe2b98OAMjOzsbEiRPh6+uL9u3bQ5blcn3sp6UoCi7dfIC3lv7JQExV2h9/R+Dt5YcRl5wJrZ79nBFVZ6V+CRoVFYVFixZVRC30FPz9/XH06FE4OzurXQpGjBiB8PBw3cevvvoqLl++XGGPN3bsWGzbtq3Cjq8vFi1ahN27d+s+XrVqFaZPn16hj3n06FH07NkTAHDkyBEcOHAAK1euxNatWyHqSd+jLOe92bX10A3M/vIEUjNyVK6I6OnduZeMiUv/xLng+2qXQmQwSv1XzdXVFVu2bMHx48croh4qI2NjYzg5OUGSJLVLqXQWFhawt7dXu4wK999OJ1tbW1hZWVXoYzo5OcHU1BQAkJyct/raqVMnvXjxBeS1S+RoZXy06TS++eUfyGwGo2okLSMH8zacwrcHggH8+wKQiCpGqUNxnz590KZNG0yfPr3YNop8KSkpmDlzJgICAtC8eXOMHj1at1oYEREBb29vHD58uNB9pk2bhuHDhwPIe6t28eLF6NChA/z9/TFkyBAcPXpUd9vt27fj2Wefxfz589G8eXO8/vrrxdZR8O3f4i7LyMjA9OnT0a5dOzRp0gT9+vXDr7/+qrutoij48ssv0bVrV/j5+aFv376FVusA4OzZsxg8eDB8fX3Rp08fBAcHP+nLiD/++AMDBgyAr68vnn32WSxfvhzZ2Y+fn5qTk4MVK1agS5cu8PPzw4ABA3Ds2DEARdsnMjIyMGvWLLRu3RrNmjXD9OnT8c477xR6u33r1q3o3bs3fH190bRpU4wYMaLQim5gYCAWLlyInj17onXr1jh9+vQTvx5eXl4A8r6XQUFBCAwMRFRUFFavXq1rr3ncc6Mk35P/KviWf2RkJLy8vHDgwAEMHjwYjRs3RmBgILZs2fLI++c/l3744Qd07twZfn5+mDhxImJiYjBlyhT4+/ujY8eOutXo3377Dd7e3oiKiip0nKFDh2LhwoXFPkZJn8/5/2/cuDEGDBiAv//+G0Bee9KOHTtw+vRp3de4YPvEo34eQkNDMW7cOPj7+6N9+/Z45513EBsb+8ivxX/l/6ysWrVK91je3t5YtWoVAODcuXN44YUX4Ovri86dO2POnDmP/b1QnrRaGQ8SM/D28sM4fulepTwmUWVTFOCHX6/jw42nkaOVodWynYKoopQ6FAuCgAULFiApKemRAUBRFIwbNw4RERH44osv8OOPP6Jp06YYPnw4rl27BldXV7Rs2RJ79+7V3ScrKwu//vorBgwYACAvVB07dgxLlizBjh070KNHD4wfP75Qb2p4eDju37+PnTt3YvLkyaX9VAAAK1aswPXr17F27Vrs27cPHTt2xOTJk3XhctmyZfj+++8xc+ZM7NmzB6NHj8bs2bPx7bffAsgL+GPHjoWPjw927NiBN954A5999tljH/Ovv/7CpEmTMGTIEOzduxezZs3CL7/8gnffffex91uwYAF++OEHTJ06FXv27EGHDh0wfvx43Lp1q8htp06dimPHjmHZsmX44YcfkJKSgp9//ll3/cGDBzF37ly88sor+OWXX7Bx40ZkZWVhxowZhY6zefNmzJgxA+vWrUPTpk2f+PXID3rvv/8+pk+fjm3btqFWrVoYO3YsVq1a9cTnRkm+JyXx0UcfYfz48fjll1/QuXNnzJ49GxEREY+8/d27d7F//36sXbsWK1euxKFDh9C7d280atQIP/30Ezp27IjZs2cjISEBnTt3hr29PXbt2qW7/+3bt3HhwgUMHDiw2OOX5Pl87949/PDDD1i8eDF27NgBMzMzBAUFQVEUTJ8+HT169NC1yRTnvz8PMTExGDFiBNzc3LBt2zasWbMGqampGDp0KNLT00v8tQTyWlTef/99AHnf47FjxyI4OBhjxoxBhw4dsHv3bixZsgRXr17F2LFji6xqlzdFUXAhJBZvffInwqNTKvSxiPTBicv3MGXFX4hPyWIwJqogmrLcycXFBVOnTsUHH3yA7t27o3379oWuP3nyJC5cuICTJ0/C1tYWAPD222/j3Llz+Prrr/Hxxx9jwIABmDt3LjIyMmBmZobff/8dWq0WPXr0QFhYGPbu3YudO3fCx8cHADBmzBgEBwdj/fr16Ny5s+6xXn/9dbi6upbts0dekLCwsICrqyusra3x1ltvoWXLlrCxsUF6ejo2btyITz75RPeYdevWRVRUFNavX48XXngBP/74IxwdHTFr1ixIkgQPDw/cu3cPH3300SMfc82aNRgyZAiGDRumO+acOXPw4osvIjIyEnXq1Clyn9TUVGzbtg0zZ87Ec889BwCYPHkyFEUpsjIXERGBAwcOYN26dWjbti0AYPHixTh37pzuNra2tliwYAH69OkDIO97OmjQIMydO7fQsTp16qQ7Rkm+Hk5OTgAAKysr3Vv7kiTB3Nwctra2OHHixBOfG4/7npTUSy+9hK5du+q+Tt9++y0uXrz4yOdKbm4uZs6cCQ8PDzRo0ADe3t4wMjLCmDFjAOQ9/7Zu3Yo7d+7A398fffv2xa5du3Qrsjt37kSTJk1Qv379Iscu6fM5JycHc+bMKXSbN954A7GxsahRowZMTU1hZGSk+xoXp+DPw/Lly1GrVq1CL3SWL1+OgIAA7N+/X/cCtCQsLCx038/8x1+/fj3atWuH8ePHAwDc3d2xdOlSdOvWDadPn0br1q1LfPzS2nroBjbv/wecnUOG5M69ZEz65E9MH9MK3m723AWPqJyVKRQDeW8VHzhwADNmzCi04gsAV69ehaIo6NKlS6HLs7OzkZWVBQDo3r075s6di0OHDqFXr17YvXs3unXrBktLSxw5cgRA3glbBeXk5MDa2rrQZe7u7mX9FAAA48aNw/jx49GmTRv4+vqiXbt26N27N6ysrHDp0iVkZWXhnXfeKXRSUW5uLrKzs5GZmYmQkBA0bNiwUC9vs2bNHvuY165dw6VLlwqdHJa/shYaGoq9e/fiiy++0F3Xu3dvDB48GDk5OfDz8yt0rLfffhtAXvtEweMDeSff5TMxMYGvr6/u45YtWyI0NBSffvopbt26hbCwMFy/fr3IRAE3Nzfdv2/evPnEr0d+/+mjlOS58bjvSUl5eHjo/p1/v5ycx5+AVbduXd2/zc3NC/XNmpiY6OoEgIEDB2LDhg24ePEifH19sXv3bowbN67Y4+Z/P0ryfC5L3QUV/Hm4du0abty4Ueh5AOS9KxMaGlriYz7KtWvXEBYWVuT4QN7zuLxDcf7c1jXbL+HnY7fL9dhEVUVyWjZmrjmOoBdborl3TQZjonJU5lAMAPPnz0fv3r2LrIrKsgxLS8sivbxA3glhQF7oeO6557Bnzx60b98eR44cwdq1awH8GxC//fZbWFhYFLr/f894f1II+6/c3NxCH/v7++Pw4cM4duwYTpw4gZ07d+Lzzz/HunXrYG5uDiBvda1evXrFfi6CIBQJkhrN47+ssizjlVdeQf/+/Ytc5+TkBD8/P/To0UN3maWlZan6QPMD+uNGZu3ZswdBQUHo3bs3mjVrhmHDhiEkJKTISnHBr2/+9+VxX48nKclz43HfkzZt2jzxMR5Vy5Pe0jcyMir08eOmK9SvXx9+fn7YvXs3MjMz8eDBA/Tq1avY25bm+VyWugsq+P2SZRkBAQGYNWtWkduVxwl6siyjd+/eupXigsr7xMf8E4yWfvc3t2smg5edK2PBV6fx1jB/dG5Wh5t8EJWTp5qpVLt2bQQFBWHbtm2F5tI2aNAAqampyMnJgZubm+6/L7/8EocOHdLdbuDAgTh27Bh27twJR0dHBAQEAAA8PT0BALGxsYXuv3379mLD1OMYGRkVai8ICyu8w9XKlSvx999/o2vXrpgxYwYOHDgAV1dXHDhwAPXq1YNGo8Hdu3cL1XH48GGsX78eoijC29sbV65cKXSS3JUrVx5bk6enJ27fvl3omNHR0Vi0aBHS0tJga2tb6DoHBwe4ubnByMioyGizIUOGYOPGjYUu8/LygiAIuHDhgu6y7OxsXL16Vffx2rVrMWjQIHz88cd44YUX0LJlS13P7aNCWEm+Hk9SkufG474n+mTgwIH47bffsH//fnTr1q3Iqm++8no+l/YPn6enJ0JDQ+Hs7Kx7TBsbG3z44YcICQkp1bEedfybN28W+pxyc3Px0Ucf4d698jvxTSvn7VA3f8MpBmKih7SygmXfn8Peo3zXhKi8PPWg0cGDB6N9+/aFTmLq0KEDfHx8MHnyZJw8eRJhYWH46KOPsH379kJvD7do0QLOzs5YuXIl+vbtqwtVnp6e6NKlC2bNmoXff/8dERER+PLLL/HFF18Ueou7JJo2bYqtW7fin3/+wbVr1zB79uxCq3ERERGYNWsWTpw4gaioKBw4cAB3796Fv78/rKysMGzYMKxYsQK7du1CREQEtm3bhsWLF6NGjRoAgOHDhyMjIwPvv/8+QkND8ccff+jOzH+UcePG4cCBA1i9ejVu376NEydOYNq0aUhJSXlkv6iZmRlGjhyJFStW4NChQwgPD8cnn3yCkJAQdOzYsdBtXV1d0aNHD8ybNw8nTpzAzZs3MX36dERHR+uClbOzM86dO4erV68iPDwcGzduxObNmwHgkVMwSvL1APLeBQgNDUVCQgKAvH7UO3fu4MGDByV6bjzue6JPnn/+eSQlJWH79u3FrvrnK6/ns7m5Oe7fv//YEwYLGjFiBFJSUjBlyhQEBwcjODgYkydPxuXLl9GgQYMSP+6jjB07FteuXcOcOXMQGhqK8+fP45133sGdO3eeuq0pn1YrIztHxswvjuPMPzHlckyi6kJRgLU7L+tGthHR03mq9ol8+W0U+SRJwoYNG7B48WJMmjQJGRkZ8PDwwOrVq4u8/d2/f3+sWLGiyEk/y5Ytw7Jly/DBBx8gKSkJdevWxYIFCx4bPooze/ZszJ49G0OGDEGNGjXw1ltvITo6Wnf9rFmzsHDhQrz77rtITEyEi4sLpkyZgr59+wLImxpgZ2eHFStW4P79+3B2dsbEiRPxyiuvAABq1qyJTZs24cMPP0T//v3h7OyM1157DXPmzHlkTc899xyWLVuGL774AmvWrIGtrS0CAwMxZcqUx34ub7/9NiRJwqxZs5CSkgJvb2+sXbsW9erVK9JeMW/ePMyfPx9vvvkmFEVB79694e/vr2sRmDlzJj744AOMHDkSxsbG8Pb2xqJFi3ShqUWLFsXW8KSvB5AXltatW4fQ0FCsWbMGo0aNwsKFC3Hjxg3s3r37ic+NJ31P9IWlpaXupLJ27do99rbl8Xzu168fDh48iF69ej12RF0+V1dXbN68GUuXLsXw4cMhSRKaNWuGr7/+ulzaG5o2bYp169ZhxYoV6N+/P8zNzdGmTRtMnTq1RK00T6LVykjPysWMNcdxKyrpqY9HVF398Ot1pKZn49X+vrreeyIqPUGp6NlJVOmysrJw5MgRBAQEwNLSUnd59+7d0adPH7zxxhsqVle9jBo1Cs2aNSvzSEAqnlYrIzE1C+9/dgx3H6SpXQ5RldC5WR1MHt4MEACRwZio1MplpZj0i7GxMebMmYNWrVrh9ddfhyRJ2LZtG+7evasb50ZP57fffsM///yDCxcucNvzcqbVyoiJT8f0NcfwIDFT7XKIqow/z0UiLTMH015sBYjgZAqiUuJKcTX1zz//YPHixbh06RK0Wi0aNmyISZMmoWXLlmqXVi0MGzYMt2/fxrRp09CvXz+1y6k28gPxe6uPICn18Ts8ElHxmjZwwuxXAiAIAoMxUSkwFBORXtBqZcQnZ2LKyiOIT+YKMdHTaOvrjKmjWkIQSj+5hshQPfX0CSKip6XVykhOy8a0z44xEBOVg+OX7uHTbRcYiIlKgaGYiFSVP2Xi/c+PISY+Xe1yiKqNX0+FY8Oeq0++IREBYCgmIhXJsoIcrYwZa44j8n7qk+9ARKWy48+b2Pb7DbXLIKoSGIqJSBWyokBWFMxbf4pziIkq0Kafr+HAyTul2jKeyBAxFBORKgQASzb/jUs3H6hdClG199m2izh+6S5kmcGY6FEYiolIFWu2X8KxS3fVLoPIIMgKsOTbv3HpZiy0DMZExWIoJqJKpSgKdvx5E/uO31G7FCKDkqtVsOCr04i8nwKtVla7HCK9w1BMRJVGq5VxOfQBNv58Te1SiAxSZrYW89afQmaOlq0URP/BUExElUKrlZGQkoWFX5/lH2MiFcXEp2PhpjNql0GkdxiKiajCyYoCraxg3oZTSE7j9s1EajsfEouv9/EdG6KCGIqJqMKJgoCVW85z9BqRHvnpj5s4dvEutDL7i4kAhmIiqmCyomDn4Zs4fD5K7VKI6D+W/3AO92LTeOIdERiKiagCabUyrt2Kw1d7+TYtkT7KzNZi7vpTyOKJd0QMxURUMbRaGUmp2fho0xn+sSXSY/fi0rDom7MQBLUrIVIXQzERVQhFAeZuOMkT64iqgL+D72PzL8Fql0GkKoZiIip3iqJg48/XEBrJE+uIqoqtv4fgSugD9heTwWIoJqJypdXK+OdOPPYcCVW7FCIqBUUBln73N7JzZbY8kUFiKCaicqMoCnJlBZ98dw78m0pU9TxIzMTqrRcgimwwJsPDUExE5UYQBKzbeRkx8elql0JEZfTX+Sj8dT6S84vJ4DAUE1G50GplnL9+H/tPhqldChE9pc+2XURKWjbbKMigMBQT0VOTFQVZOVos/+G82qUQUTlIy8zFii1soyDDwlBMRE9NFAR8/tMlxCdnql0KEZWTs//E4NCZcLZRkMFgKCaip6LVyjhx+S7+PBepdilEVM6+3HUFKek5bKMgg8BQTERlJssK0rNy8em2i2qXQkQVIC0jByu3nGcbBRkEhmIiKjNRFLB+9xUkpXLXOqLq6sy1GJy6Eo1cbupB1RxDMRGViVYrIzQyEb+fjVC7FCKqYOt3X1G7BKIKx1BMRGUiSSLW7LgEha2GRNXevbg07Dwcyt5iqtYYiomo1LRaGYfPRSL4ToLapRBRJfnxtxCkZmRD5ithqqYYiomo1LSygq/2XlW7DCKqRBlZudiw5xpEgSfdUfXEUExEpSLLCn78LQRxSZxJTGRofj8bjltRSZxdTNUSQzERlZgsK0hIycSOP2+qXQoRqUBRgDXbL0ESGR+o+uGzmohKTBQFfLnzCrJzuUpEZKj+uROPw+cjoeWINqpmGIqJqES0WhnXbsfh2KW7apdCRCrbuPcqtJxEQdUMQzERlYgkiVi787LaZRCRHniQmIntf9zkiDaqVhiKieiJcrUyTl2JRmhkktqlEJGe2PVXKHJytWqXQVRuGIqJ6Ik0kojvfw1Wuwwi0iOpGTnYc/Q2J1FQtcFQTESPlauVcfpaNEKjuEpMRIXtOhwKZmKqLhiKieixNJKI7w5wlZiIikpMzcL+k3c4iYKqBYZiInokrVbG3//EsJeYiB5pxx+cW07VA0MxET2SJIn48VCI2mUQkR6LTczAobMRyOVqMVVxDMVEVCytLON6WDyu3Y5XuxQi0nPbDt2AKAhql0H0VBiKiahYkijix0M31C6DiKqAe3FpOHIhiqvFVKUxFBNREbKsIOp+Cs5ci1a7FCKqIn48FAKNxFhBVRefvURUhCAAP/1xEwo3qyKiEgqPTsHZf2I4iYKqLIZiIioiK0eLIxei1C6DiKqYX07cgcTVYqqi+MwlokJytTL+/DsSmdncvpWISufsPzFITM1SuwyiMmEoJqJCNJKIAyfD1C6DiKogWVbw68kwtlBQlcRQTEQ6sqIg7F4ybkYmql0KEVVRB0+HsYWCqiQ+a4lIRwCw78QdtcsgoiosOi4dl27GQitztZiqFoZiItLJ1So4fC5S7TKIqIrbfyIMksiIQVULn7FEBCDvBLujF6OQlpGjdilEVMWduHyPv0uoymEoJiIAPMGOiMpPrlbGb6fDecIdVSkMxUQERVFwLy4NV2/FqV0KEVUTv57iCXdUtfDZSkRQFOAAT7AjonIUHpOCGxEJkGVujUlVA0MxEUEUBRy/dE/tMoiomjl8jjtjUtXBUExk4BRFQdT9VNyLS1O7FCKqZk5euQdRFNQug6hEGIqJDJwsKzh++a7aZRBRNRQTn47bd5MgK2yhIP3HUExk4CRJxKkr0WqXQUTV1NELd8FMTFUBQzGRgUtKzUJIRILaZRBRNXX88l1IbKGgKoChmMiA5WplnLh8j6s4RFRhIu+nIprnLFAVwFBMZMA0kohTV9k6QUQV6+SVe8jlRh6k5xiKiQxYVo4WF2/Eql0GEVVzZ/6JgYYbeZCe4zOUyEBptTLOBccgJ5erN0RUsa7dikNmdq7aZRA9FkMxkYGSJBEnLrN1gogqXq5Wwbng+9CyhYL0GEMxkQE7H3Jf7RKIyECcv36fG3mQXmMoJjJQsQnpSEzJUrsMIjIQ1+7EQxAYikl/MRQTGaBcrYzLoXFql0FEBiQiJgUZWewrJv3FUExkgCRRwD934tUug4gMiKIAwXfiIcscjE76iaGYyAAJgoB/bnOlmIgq19VbcVC4WxDpKYZiIgOUkZWLiJgUtcsgIgPzT1g8JM4rJj3FZyaRgZFlBdfD4sF3MImosoWEJbB9gvQWQzGRgVEUBVdvsXWCiCpfZrYW4THJapdBVCyGYiIDI0ki/rmToHYZRGSgroTGIZebeJAeYigmMjCyrCAknKGYiNTxz514aNhXTHqIz0oiAxNxn7NCiUg9HAdJ+oqhmMiA5Gpl3AhPVLsMIjJgsQkZyOQLc9JDDMVEBkQQgHCOYiMild19kKZ2CURFMBQTGRBJFDmfmIhUFxadDC1PtiM9w1BMZGAYiolIbXdjU8FpxaRvGIqJDEh2jhb3E9LVLoOIDFxkbConUJDe4TOSyIBEx6VB4fIMEansbix7ikn/MBQTGQhZVhBxP1XtMoiIcDeWv4tI/zAUExkIWVZwj2d8E5EeyMzWIjElU+0yiAphKCYyEJIkIDqOoZiI9ENETCoU9nORHmEoJirgzJkzSEsrPjgmJyfj559/ruSKyo8gCFwpJiK9EXE/BVotQzHpD4ZiogJGjx6N0NDQYq+7du0apk2bVskVlS+uFBORvrgbmwpRFNQug0hHo3YBRGqbOnUq7t27BwBQFAWzZ8+GpaVlkdvduXMHjo6OlV1euUpIyVK7BCIiAHm/jxiKSZ9wpZgMXvfu3aEoSqHetvyP8/8TRRFNmzbFRx99pGKlTyc7R4ucXO4gRUT6ISUtW+0SiArhSjEZvMDAQAQGBgIARo0ahdmzZ8PDw0PlqspfakaO2iUQEekkMxSTnmEoJirgm2++UbuECsNVGSLSJ8np/J1E+oWhmKiAzMxMfP755/jjjz+QkZEBWS7cbiAIAn777TeVqns6iansJyYi/cEX6qRvGIqJCliwYAG2bduGVq1awcfHB6JYPdrutbKMJIZiItIjmdla5GplaKTq8XuWqj6GYqICfv31V0yePBn/93//p3Yp5UqRgZR09hQTkX5JzciBraWJ2mUQAeD0CaJCcnJy4Ovrq3YZFYJvVRKRvuHvJdInDMVEBbRv3x5//fWX2mWUO1EUeKY3EekdtnWRPmH7BFEBPXv2xKxZsxAfHw8/Pz+YmZkVuU2/fv0qv7CnJIoCz/QmIr2TlJoNWVa4iQfpBUEpuGMBkYHz9vZ+7PWCIOCff/6ppGrK1+wvT+Dv4Ptql0FEpPPGID90a1WXJ9uRXuBKMVEBhw4dUruECpOr5etfItIvObkyuDRH+oKhmKgAFxcXtUsgIjIYssxETPqDoZiogNWrVz/xNhMmTKiESoiIqj+Zy8SkRxiKiQp4XCi2tLREjRo1GIqJiMqJlivFpEcYiokKCA4OLnJZeno6zp49i9mzZ2PmzJkqVEWkPwQBWDapE0yMJaRl5CArR6t2SVSF1bK3AOdOkL5gKCZ6AnNzc3Ts2BFvvPEGFi1ahB07dqhdEpFqhj3rhWecrSBK0mNvl5uRATmLYwDp8SQzCYIig9smkD5gKCYqodq1ayM0NFTtMohUlZGVC1GSkPrPSZi6N4JoaglREKDIMhRZhqjJ+7OiMTNDVno60sPCkR4RiYyISKRHRCAjMgq5qakqfxakL9xGj0TtPr3ULoMIAEMx0RMpioLo6GisW7eO0ynI4MUmpAMAkk7uxP3ti6Gxqwm7jsNgWr8ZjEwtAQDx6YlIyEwCoMDBux5qNm4IycgYgpD3RnlOSgrSwyOQHh6BjMhIXWjOjo9X69MilQiiCLCBgvQEQzFRAd7e3ro/3P+lKAoWLVpUyRUR6Zfo+LxQLJpZAQByE2IQu2sFAMC4tifsOgyGtVsj2JvbIj0nA8fDz+JI2BmEJUaicQ0v+Dh5wt2uDmq614KDZz0YaYwfBiNAm5mJjKgopN0JR0Zk5MPAHIXMmBhAltX5hKliiWybIP3BUExUwBtvvFFsKLa0tETnzp3h7u5e+UUR6ZHoB2kAAOlhKC4o++4NxGz5EABg3qAlbAL6obNbALp5dEBCRhKOhJ3Gn3dOIOxCpO4+kijBx7E+GtVogHp2deFcowZs6wTASWOs61uWc3ORGR2N9DtheavKD8Nyxt27UHJyKuGzpooicCc70iMMxUQFvPnmm2qXUGFEvkNJ5SAtMxeKrIVoZvnY26WHnEF6yBkAgJX/s7Bu0QPPe3ZBH+9ncS8lBofvnMLRsDO4n/YAV+5fx5X714sc4xk7VzSp6YP69m6obV0LDi2awi6gFSSNEQBAkWVkPYjL61sOD0dGZBTSI/NaMbQZGeX/yVO5E0SR3ROkNxiKif4jPj4eGzZswOnTp5GcnAw7Ozu0aNECL730EhwcHNQur8zMTPnjTuVD1sqQzK1LfPuU8weRcv4goDGGbUBfOPh2weBGz2NYkz64GXcHh++cxImIc0jOSil0v9sJEbidEFHkeDUsHOBXqyE8HerB1cYZTo09UatpE2iMjHW3yU5MQnp4eF7fckSkLiznJCWV/ROncieamICpmPSFoCjcToYoX3R0NIYOHYr4+Hg0bdoUTk5OiI2Nxfnz52FnZ4dt27ahZs2aapdZaoqi4LNtF7H/ZJjapVA1sO3D55B15U882L+2zMcQza1h134wzH3aQLKwBaDgcsx1/HXnJM5EXURmblapj2ltbIkmtbzh7eiBurZ1UMPCAdYac2g0Rrq+5dz09LyQHP5wKkZkFNIjIpAV+wDgn8NK5/3+VNi3avnIczmeZNSoUXBxccHHH39c5LqgoCBERUXhm2++edoyi6UoCnbu3ImOHTvCwcEB27dvx7Rp03D9etF3PahkAgMD0b9/f9XeteXSEVEBixcvhkajwb59++Dq6qq7PCIiAmPHjsWyZcuK/eWr77SyAisL4yffkKgEsnMU3Yl2ZSWnJyPu1/WI+3W9boJFw/rN4BfggxxtDs5EXcSRsDO4EH0VWrlkG4QkZ6fiWPhZHAs/W+hyY1GDRjW80bCGJ9ztXOHs4gRbd1fUMDLRhWU5OxsZd+8hPSzs37AcGYnMe9FQcnOf6nOlRzOyti5zIFbbmTNnEBQUhEOHDqldCpUThmKiAo4ePYr333+/UCAGAFdXV93mHVWRogBW5gzFVD4ycmRYWZS8feJJCk6wMKndALYdBqOVW2O0rdsC6TkZOBZ+FkfDziA49iYUlH41N1vOxfnoKzgffaXQ5SJE1HdwR+OaXvCwc0Nt+5qwq9UcDu3a6uYtK1otMu/H/huW81sxIqMgZ5V+NZsK01g9vjddn/GN9uqHoZioAK1WCzs7u2Kvs7e3R2oV3XRAFABrrhRTOUnPzIWtuU2FHDvrbghitiwA8O8Eiy5uAXj24QSLv+6cwtHwvBFvT0uGjJC4WwiJu1XkOherWvCt5QNPB3fUsa4Nh6YNYdu8GSQjo39rjY//dyKGLixHIjelav6eUIPGovJC8eHDh7FixQqEhobC3NwcnTp1wrRp02Bjk/dcDg0Nxccff4yzZ8/CwsICrVu3RlBQEJycnIoc69SpUxg9ejQAoGvXrvjoo490123fvh2fffYZYmJi4OnpiVmzZsHPzw8AkJ2djRUrVmD37t1ITU2Fp6cnJk6ciPbt2+vu+/nnn+Pll1/GmjVrkJCQgE6dOmH69OlYvHgxDh06BCsrK0ycOBGDBg165Of6xx9/YNWqVbh58yZq1qyJ559/Hq+//jqMjY0RFBSE0NBQbN26VXf7qKgodO3aFRs2bEDbtm1x7tw5LF26FJcvX4a9vT26dOmCd955B5aWed+vwMBAdO/eHYcPH0ZcXBxGjRqF1atX49ChQ4Xm+Q8dOhTNmjXD1KlTi9SYkpKC+fPn49ChQ9BoNHj11VeL3Gbr1q34+uuvERYWBlEU0bBhQ0ybNg1NmjTBpk2bsHz5chw/fhxmZmYAAFmW0blzZ7z66qt44YUXHvn1eRTOQiEqwMvLC3v27Cn2ul27dqFBgwaVXFH5EEWBoZjKTWp69lO3T5REesgZ3Pt6OsIXDkfsvjUwT0lErwaBWNx9Opb3nI3+Ps+hhoVjhTx2VEo0frnxB1ae/Arv/boAL+96D8O3T8Sru4Lw6alNOBR6FGFyEuBTDzV7/A8eb4yH78cL0HrzJrTavAlNPpoPj9f+D869esLGzxfGDvYVUmdVJ5mbVcrjxMfHY8KECRg4cCD27duH1atX48yZM7p3/2JiYjBixAi4ublh27ZtWLNmDVJTUzF06FCkp6cXOZ6/vz9WrVoFIC+49ezZU3fdjz/+iE8++QQ//fQTjI2NMWnSJN1106ZNw7Fjx7BkyRLs2LEDPXr0wPjx4/Hnn3/qbnP37l3s378fa9euxcqVK3Ho0CH07t0bjRo1wk8//YSOHTti9uzZSEhIKPZz/euvvzBp0iQMGTIEe/fuxaxZs/DLL7/g3XffBQAMGDAAly5dQnh4uO4+e/bsQa1atRAQEIDg4GCMGTMGHTp0wO7du7FkyRJcvXoVY8eOLbQ6vnnzZsyYMQPr1q3D//3f/8He3h67du3SXX/79m1cuHABAwcOLLbOSZMm4dKlS1izZg2++uor/Pnnn4iKitJdf/DgQcydOxevvPIKfvnlF2zcuBFZWVmYMWMGAKB3797IycnBr7/+qrvP8ePHkZCQgF69yrZLIleKiQp4/fXX8fLLLyMpKQk9e/bUnWj3888/4+jRo1i5cqXaJZaJIAiwtTJRuwyqJpLSsiGZVsxKcfGUIhMsHH27YEjjXhju2xc3427j8J1TxU6wKG8JmUk4fOckDt85Wehyc40pGtX0RkOn+nCzrYNabjVhX/8Z1CyyOcndvFaMyChkREQY9OYkorExJJPK+b0UExOD7Oxs1K5dGy4uLnBxccGaNWug1eb1q3///feoVauWLnABwPLlyxEQEID9+/djwIABhY5nbGysW2G2t7eHqamp7roFCxbAw8MDAPDyyy9jwoQJiIuLQ2pqKvbu3YudO3fCx8cHADBmzBgEBwdj/fr16Ny5MwAgNzcXM2fOhIeHBxo0aABvb28YGRlhzJgxuvts3boVd+7cKfadzTVr1mDIkCEYNmwYAKBu3bqYM2cOXnzxRURGRqJly5ZwdXXF7t27MWHCBAB5obhv374QRRHr169Hu3btMH78eACAu7s7li5dim7duuH06dNo3bo1AKBTp05o27at7nH79u2LXbt24fXXXwcA7Ny5E02aNEH9+vWL1Hjr1i0cPXoUGzduRIsWLQAAS5cuRZcuXXS3sbW1xYIFC9CnTx8AgIuLCwYNGoS5c+fqvu6BgYHYvXs3+vbtCwDYsWMHAgMDdd+b0mIoJiqgXbt2+Pjjj7FkyRL89ddfusudnJzw0Ucf4dlnn1WxuqdjbcFQTOUjMSULgsYIgsYYSm525T54bjYSj25F4tGtugkWbj5tMKbZUIxpNgSXo4PxV9ipMk+wKKv03EycibqAM1EXCl0uiiJ8HD3RqIbnw81JasK2Tms4akz+szlJTIGT/B5ufR1VvTcnMbJ9+hdWGo0G8iNeUMiyDM3D3nAfHx/06tUL48ePh5OTE9q1a4fOnTvrfqdfu3YNN27cgL+/f6FjZGVlITQ0tFQ1Fdzkydo6r/c+MzMT165dAwCMGDGi0O1zcnJ0t8tXt25d3b/Nzc3h7Oys+9jk4QuJ7Ozif/auXbuGS5cuYdu2bbrL8ld4Q0NDUadOHfTr1w979uzBhAkTcO3aNdy8eROfffaZ7v5hYWFFvhb5988PxW5uboWuGzhwIDZs2ICLFy/C19cXu3fvxrhx44qtMSQkBADQpEkT3WWOjo6Fzudp2bIlQkND8emnn+LWrVsICwvD9evXC32/Bw4ciNdeew3379+Hubk5fvvtt6davGIoJvqP+/fvo2HDhpg6dSqSkpIQHByMVatWVdl+4nyWZkZPvhFRCcQnZQLI2+pZmxKnWh2FJ1g4w67jkLwJFs4NyzzBotxrlGVcvX8dV4vbnMTWFU1qecPD3h0u1jXh0NwPdq1bFr85SUTEv2E5MgraYt7Sr2qMbG2f+hjW1tZITk4u9rqkpKRCK4ZLly7FG2+8gb/++gvHjx/Hu+++i+bNm2PTpk2QZRkBAQGYNWtWkeNYWZWuVUh6+GKnIEVRdMH022+/hYWFRaHrxf9sd21kZPTY6x9HlmW88sor6N+/f5Hr8vuj+/fvj9WrV+Py5cvYt28fmjVrpgu5siyjd+/eupXiguzt/20DKrg6DgD169eHn58fdu/ejczMTDx48OCRbQz5E0f++4Im/0UMkLd6HRQUhN69e6NZs2YYNmwYQkJCdCvFANC+fXs4Ojpi7969sLW1hbW1ta4/uywYiokK2LBhA5YvX46RI0fq3v5ydnbGrVu38PHHH8PExASDBw9WucqyMTfVQBQAmSdM01N6kJS3W5xkbq1qKC4oN+HevxMsXLxg234QWtYtvwkWFeF2YgRuJxazOYm5A3xrNUQDx2fgalMbjk/anCQyf95yJHISEyvxM3g6xo84qbk0GjVqhK+//hrZ2dkwNi7w9cnOxqVLl/DKK68AAC5evIiff/4Z77//PurVq4eXXnoJu3fvxrvvvou4uDh4enpi3759cHZ21h0nMTERU6dOxZgxYxAQEFDksUs7Ss7T0xMAEBsbi4YNG+ouX7ZsGURRxFtvvVXqz/9Rj3P79u1CK7mnTp3C119/jdmzZ8Pc3BwuLi5o3bo1Dhw4gF9++QVvvPFGofvfvHmz0P1DQ0OxePFivP322499kTBw4EB89tlnkGUZ3bp1K7ICni+/feTcuXO6tpHk5ORCfc5r167FoEGDMGfOHN1l+ePvFEWBIAiQJAn9+vXDwYMHYW1tjb59+xb7oqSkGIqJCvjhhx8wadIk/N///Z/uMmdnZ8yYMQOOjo7YuHFjlQ3FgiDA0twYyWmV/HY3VTsx8XmrlFIlnGxXFllR1wtMsGiVN8HCvWImWFSE++lx+O3WEfx260ihyy2NzeFb0wfeD/uWa9SvAyfvBv/ZnCQjb0W54LzliEhkxcbq3eYkxna2unBTVoMGDcLGjRsxYcIEvPbaa6hRowaioqKwdu1aaDQa3YQGS0tLfPfddzAyMsKQIUOQlZWFffv2wd3dHXZ2dhgxYgS2bNmCKVOm6HpiFy5ciOvXrz/yBGtzc3MAQHBw8COnFhXk6emJLl26YNasWfjggw/g6emJ/fv344svvig0veJpjRs3DpMmTcLq1avx/PPPIzo6GtOnT0edOnUKTdLo378/5s6dC1mW0aNHD93lY8eOxQsvvIA5c+Zg5MiRSE5Oxpw5c5CZmVmoNaQ4zz//PD766CNs375ddyJicerWrYvnnnsOc+fOhbGxMRwdHfHJJ58UaglxdnbGuXPncPXqVVhZWeH333/H5s2bAeS96MlvIxkwYADWrVsHSZLw3nvvleVLpsNQTFRATExMoR6ngvz8/PD5559XckXly8nOjKGYntq9B2kAANFM/2fMpoecRnrIaQAirPy7wrpFD/TyCkRfn//hbnIMDt85iaPhZxCbph8r3o+Tmp2O4xF/43jE34UuNxY1aFjDCw1r1Mczdm6oVdsJtm51UENjDCG/bzk7Bxn37uWNkIv8d4ScmpuTGNnaQtFqIWjKHkXs7e2xZcsWrFixAm+++SYSExNha2uL9u3bY968ebr2CQ8PD6xatQqrV6/Gd999B1EUERAQgC+//BKiKMLV1RWbN2/G0qVLMXz4cEiShGbNmuHrr78u1DJQUIMGDdCpUydMmjQJb7/9NmxL0A6ybNkyLFu2DB988AGSkpJQt25dLFiwoNhWh7J67rnnsGzZMnzxxRdYs2YNbG1tERgYiClTphS6Xffu3TF37lx069ZNN2oNAJo2bYp169ZhxYoV6N+/P8zNzdGmTRtMnTq10Gp8cSwtLXUn5LVr1+6xt124cCEWLlyIyZMnQ5Zl3W6y+WbOnIkPPvgAI0eOhLGxMby9vbFo0SJMnjwZly9f1p2g5+7uDj8/P8iyrHuHt6y4zTNRAT179kS3bt3w9ttvF7lu5cqV+Pnnn3HgwAEVKisfC785g6MX7qpdBlUDu5f0QdyBL5H8dxX8eXg4wcLSLxAaa0eIolipEywqS/7mJI1qNEB9ezfUtq4JO2NrmGpM/t2cRJaRef8+0u/k9y1H6f5f0ZuTeE56E04dO+iCO1UPo0aNQrNmzTB58uRKeTxFUdCtWzeMHz/+qd/J5UoxUQFDhgzB4sWLkZOTg27dusHBwQHx8fH4448/8NVXX+Gdd95Ru8Qy02plODtYPPmGRCWgaLWVMqu4QhQ7waKt6hMsytvjNiepbVUzr2/ZwR0u1s5wbOoD2+b+RTcnCQvXjY7LP9EvN6V8XjSYu7oyEFcjv/32G/755x9cuHChUnZ/zcnJwe+//46TJ08iPT0dzz///FMfk6GYqICXXnoJMTEx+Oabb7Bx40bd5ZIk4cUXX9TNiayKFADOjgzFVD60sgzJrPy2elZL0QkWQ/VugkVFuJsSg7spMdh/o/DltqbW8KvVEF6OHqhrUxtO3s/AqZEPNEbGut7fnNRUZIRH5J3olx+WIyOR/aB0LSimtZ2ffCOqMtatW4fbt29j3rx5hUbIVRQjIyPMnz8fALB48WJdj/fTYPsEUTFSUlJw4cIFJCYmwtraGr6+viU6kULfXbsdh6mrj6pdBlUDP8zrDjn0FGJ3V80NbZ4kf4KFSd2G0BibFphgcRrBsaF6M8GisphpTNG4pjd8HOvD3a4Oalo6wUZjDiOjApuTZGXltV/oNid52LccXXRzEo2VJVpv3qTGp0L0SAzFRAYkKS0LIz/Yr3YZVA1s/OB/MHsQjOgf5qtdSoUzb9AaNm36wsi5HjSSUYEJFqcRlhj15ANUY6IowsfBA41qeOEZ+7qobVUTtsaWMPnv5iQxMQX6liMhaIzQYNKbKldPVBhDMZGBGTZjH9Iyqu8uWVQ5Pn8vEE5KLKLWv6t2KZUof4JFT2gca0MSNVVugkVlcretgyY18zYnqWNdCw6mNjDVmBTanEQoxaYURBWNoZjIwLy76i8E30lQuwyq4hZP7ID6djLCV72qdinq0BjDtk0/WPp2qdYTLCqCk7kDxrUYjsY1vaAReWoT6Q8+G4kMiKIoqFvTiqGYnlpyWjZEZ1u1y1BPbjYSj/yIxCM/5k2w6DAYbt7Vb4JFRYhNj8vbjUzg5AnSLwzFRAZEq1XgWrOKjtEivZKYkgXR2BQQJaAaTWUoCzk9GXEH1iPuwMMJFp2GoqHHfydYnMaF6GvVaoLF03jG1vWpdrIjqggMxUQGRJIEuDvbqF0GVQMJyZkAAMnMEtq0JJWr0R+5CfcQu3M5AMCkjhds2w9Gq7qN0bZuC4OfYJHP0tgC1qZ8cU76h6GYyIAIggAvNzsIAsCzCehpPEjKC8WimRVD8SNkRV5HzMPpHPkTLLq4B+BZjw5IyEh8OMHijMFNsKhrU1vtEoiKxVBMZGDMTDRwrWmF8GieCERlF5uQDgCQzKzBWSZPlh5yCukhpwCIsGr2LKybP4deXl3R16e7wU2wqGvrAlmRIQqcPEH6haGYyMAoigIfd3uGYnoq9+LSAACiuaXKlVQ1MlLOHUDKuQO6CRaOvl0wtHFvDPftixtxt/FXNZ9g4WHnBkVRALYUk55hKCYyMFo5LxQfOBmmdilUhd2PT4eiKJDM2BtaZoUmWNjArsMguHu3hUc1n2DRqGYDSCInT5D+YSgmMjAaSURjD0e1y6AqLlerQJG1EBmKy4WcnvTvBAsHF9h1GFxogsXpqIs4Wg0mWNiZ2cDR3F7tMoiKxVBMZIBq2pvD1tIEianVZ/WJKp+slSGZWatdRrWTGxdVYIKFN2zbD0Lruo3Rrm4LpGdn4Fj4GRwNP1MlJ1j4OHqqXQLRI7HLnchAebvbqV0CVXG5WgUSe4orVFZkMGJ+mI/wRS8geusiCPfD0eWZNpgT+A7W9PkQL/j2g5uti9pllpiPU33kyrllvv+oUaMQFBRU7HVBQUEYNWpUmY/9JIqiYMeOHYiLyzsZcvv27fDy8qqwxzMEgYGBWLVqldpl6HClmMgA5WpleLvb4+SVaLVLoSosM1eBEVeKK83jJlhEJUfrRrzp8wSLqry185kzZxAUFIRDhw6pXQpVkKr5zCSipyKJAhrXc1C7DKriMrJyYWrBzWAqX8EJFiawbdMXNXy7YMh/Jlgcj/gbKVmpaherY2FsDhfrWmqXUWYKh7tXe2yfIDJAgiDAo44tNBJ/BVDZpWXmQjLnSrGqcrOQeORHRHz6GiJWvIKks/vgbmKHsc2G4su+C/F+xwno4NYKJhoTtStFkxrelfp4hw8fxoABA+Dn54c2bdogKCgISUn/bjQTGhqKcePGwd/fH+3bt8c777yD2NjYYo916tQpjB49GgDQtWtXbN++XXfd9u3b0a1bNzRp0gQDBgzAxYsXdddlZ2dj8eLF6NChA/z9/TFkyBAcPXq00H2fffZZ/PDDD+jcuTP8/PwwceJExMTEYMqUKfD390fHjh2xbdu2R36eGRkZmD59Otq1a4cmTZqgX79++PXXX3XXa7VabNy4Ed27d0eTJk3QvXt3fP/994U+t4YNG+LgwYPo3r07fH19MXr0aNy7dw/z589HixYt0KZNG3z++eeFHvenn35Cjx494Ovrix49emDTpk2QZfmRdaakpGDq1Klo0aIFAgIC8NVXXxW5zdatW9G7d2/4+vqiadOmGDFiBC5fvgwA2LRpE/z9/ZGRkaG7vSzL6NixI7799lsAwPr169GtWzc0btwYgYGB+PTTT0v1YoZ/EYkMlEYS4e3GvmIqu5S0bIhm7CnWF/kTLCJWvIyIL95C+rVjaGTnjjcDxmBDv8V4q81YNK/dRLVxaL61vJFbSZMz4uPjMWHCBAwcOBD79u3D6tWrcebMGSxatAgAEBMTgxEjRsDNzQ3btm3DmjVrkJqaiqFDhyI9Pb3I8fz9/XW9r1u3bkXPnj111/3444/45JNP8NNPP8HY2BiTJk3SXTdt2jQcO3YMS5YswY4dO9CjRw+MHz8ef/75p+42d+/exf79+7F27VqsXLkShw4dQu/evdGoUSP89NNP6NixI2bPno2EhIRiP9cVK1bg+vXrWLt2Lfbt24eOHTti8uTJiIyMBAB8/PHH+OyzzzBhwgTs2bMHL7zwAhYsWICNGzfqjqHVavH5559jyZIl2LRpE4KDg9G3b18YGRlh69atGDZsGJYvX47r168DALZs2YJFixZhwoQJ+PnnnzFp0iR8+eWXWLJkySO/J5MmTcKlS5ewZs0afPXVV/jzzz8RFfXvbo4HDx7E3Llz8corr+CXX37Bxo0bkZWVhRkzZgAAevfujZycnEKB//jx40hISECvXr3w+++/44svvsCcOXPw66+/YsqUKfj888+xe/fuR9b0X2yfIDJQuVoZrRrVwpVb+tt/SPotKTULorEj8nZh4FvL+iQ3Lgr3C0ywsGs/CK3r+qJd3Za6CRZHws7g+oPKm2Dh79wYmkoK5DExMcjOzkbt2rXh4uICFxcXrFmzBlptXij//vvvUatWLV3gAoDly5cjICAA+/fvx4ABAwodz9jYGDY2ea1C9vb2MDU11V23YMECeHh4AABefvllTJgwAXFxcUhNTcXevXuxc+dO+Pj4AADGjBmD4OBgrF+/Hp07dwYA5ObmYubMmfDw8ECDBg3g7e0NIyMjjBkzRnefrVu34s6dO7CzK7qQER4eDgsLC7i6usLa2hpvvfUWWrZsCRsbG6SmpuL7779HUFAQevfuDQBwd3dHZGQk1q5dixdffFF3nLfeegtNmjQBAAQEBODixYt47733IAgCXn31VXz22We4ceMGvLy88Nlnn+G1117D888/DwBwdXVFamoq5syZg7feegsmJoXfmbh16xaOHj2KjRs3okWLFgCApUuXokuXLrrb2NraYsGCBejTpw8AwMXFBYMGDcLcuXN1X/fAwEDs3r0bffv2BQDs2LEDgYGBsLGxQXh4OIyNjeHi4oLatWujdu3aqFGjBmrXLvm24gzFRAZKI4lo51sbG/ZcVbsUqqLiUzIhiCJEU3PImWlql0OPkBUZjOgf5gMAzBu0hm2bfujyTBs8W78jEjIS8dedUzgSdgbhSVFPOFLZ1bR0goP5078zpdFoHvkWvSzL0GjyYo2Pjw969eqF8ePHw8nJCe3atUPnzp3x7LPPAgCuXbuGGzduwN/fv9AxsrKyEBoaWqqa3N3ddf+2ts5rJ8rMzMS1a9cAACNGjCh0+5ycHN3t8tWtW1f3b3Nzczg7O+s+zg+Y2dnZxT7+uHHjMH78eLRp0wa+vr5o164devfuDSsrK1y6dAk5OTlo3rx5ofu0atUKmzZt0k3SAAA3N7dCNdSpUweCkLftYP6LgOzsbMTHxyM6OhqffPIJVqxYobuPLMvIyspCZGSk7kVCvpCQEADQhW4AcHR0hKurq+7jli1bIjQ0FJ9++ilu3bqFsLAwXL9+vdD3e+DAgXjttddw//59mJub47fffsPKlSsBAH369MFPP/2E7t27o379+mjbti26d+/OUExEJVPD3hx1a1ohPKZ6bidLFSs+MW/OtWhmxVBcRfx3goVNi+fQy6tb4QkWYacRmx5fro/rV8sHsqJAFJ5ub2dra2skJycXe11SUpJuNRfIW4l844038Ndff+H48eN499130bx5c13va0BAAGbNmlXkOFZWpduQRpKKrn4riqLrZf32229hYWFR6HpRLNy9amRk9NjrH8ff3x+HDx/GsWPHcOLECezcuROff/451q1bB3Nz82Lvkx80819E/Pffj6sh/77Tpk1D27Zti1xfMNDnyw/X/31BU/Ax9+zZo1vRbtasGYYNG4aQkBDdSjEAtG/fHo6Ojti7dy9sbW1hbW2N9u3bA8hbSd61axfOnz+PY8eO4ejRo/j666/x5ptvYsKECcV+Lv/FnmIiA6aVFbRuXHXPBid1xSbm9V5yq+eqKG+CReTayQhbPAoJf/2IGrKIIY1749PeC7Cg23voXr8TrEzKp2fcr6YPFOXRJ2GVVKNGjXDlypUiq6bZ2dm4dOmSbiXy4sWL+PDDD1GvXj289NJLWLt2LT788EOcPHkScXFx8PT0RGhoKJydneHm5gY3NzfY2Njgww8/1K1q/pdQykDv6Zm3UUlsbKzuMdzc3LB9+/ZCJ+o9rZUrV+Lvv/9G165dMWPGDBw4cACurq44cOAAPDw8YGRkhL///rvQfc6ePQsnJ6dCLyJKysHBAfb29oiIiCj0eV29ehXLly8v9j757SPnzp3TXZacnIzw8HDdx2vXrsWgQYPw8ccf44UXXkDLli0REREB4N/JH5IkoV+/fjh48CAOHDiAvn376l6U7N69G99//z2aN2+OiRMn4scff8TgwYOxb9++En9uDMVEBkwUgLZNSv7WElFBMfF5oVg0Zyiu0nKzkHBkS4EJFr8UmWDR3q1lmSdYGEtG8HNuVC4n+A0aNAiyLGPChAk4f/48oqKicPr0abz++uvQaDQYNGgQAMDS0hLfffcdFi9ejLCwMISEhGDfvn1wd3eHnZ0dRowYgZSUFEyZMgXBwcEIDg7G5MmTcfnyZTRo0KDYx85fdQ0ODkZa2pPfGfH09ESXLl0wa9Ys/P7774iIiMCXX36JL774olC7xNOKiIjArFmzcOLECURFReHAgQO4e/cu/P39YWlpiaFDh2LlypXYu3cvwsLC8O233+K7777D2LFjSx30gbwXB+PGjcM333yDzZs3Izw8HAcPHsTs2bNhamoKY2PjIvepW7cunnvuOcydOxfHjx9HSEgI3nvvvUIvbpydnXHu3DlcvXoV4eHh2LhxIzZv3gygcOtI/oSP48ePo3///rrLs7KysHDhQuzcuRORkZE4e/Yszpw5U6RF5nHYPkFkwARBQH1XW9hbmyI+OVPtcqiKuReXFwy4Ulx95E2wWIe4A+ugcXCBfYchaOThj6bOjZCjzcHpqAs4cuc0Lsb8A20JJ0n4OzeGsWT05BuWgL29PbZs2YIVK1bgzTffRGJiImxtbdG+fXvMmzdPt/Lp4eGBVatWYfXq1fjuu+8giiICAgLw5ZdfQhRFuLq6YvPmzVi6dCmGDx8OSZLQrFkzfP3117C3ty/2sRs0aIBOnTph0qRJePvtt2Fra/vEepctW4Zly5bhgw8+QFJSEurWrYsFCxYUCnNPa9asWVi4cCHeffddJCYmwsXFBVOmTNGdjDZt2jTY2dlhyZIlePDgAdzd3fHBBx9gyJAhZX7MsWPHwsTEBN988w0+/vhjODo6YsiQIZg4ceIj77Nw4UIsXLgQkydPhizLGDp0KOLj/23TmTlzJj744AOMHDkSxsbG8Pb2xqJFi3QvVvJP0HN3d4efnx9kWS7Uuzx48GAkJibis88+w71792BjY4Pu3btjypQpJf68BIXTqIkMmqIo+GzbRew/GaZ2KVQF7V7cC/GHvkbS6b1ql0IVKH+ChXHdhtAYmSAtOwPHSzjBYnLbcWjl4qfaKDiqXhRFQbdu3TB+/HgMHjy4XI/NlWIiAycrCto0cWYopjKRtTJErhRXewUnWFh4B8Cmdd8STbAwkYzRQsXZyFR95OTk4Pfff8fJkyeRnp6uGwdXnhiKiQycJIrw9XSCmYkGGVm5apdDVUyuVobEnmKDkhZ8EmnBJwGIsG7+P1g3715ogsXhOydxLOwMYtPj0ax2YxiVU+sEGTYjIyPMn5/3wmzx4sWPnKzxNNg+QUQAgI83ncGxS3fVLoOqmO/mdocQfg73ty9VuxRSk8YEdm36wdK3MyRrR4iiiBtxt6ERJdS1ceFKMVUJXCkmImi1MgJbujIUU6llZMuwMi/9WCeqZh5OsEg4sgWiuQ3sOgyGe8O2kMysIAocdEVVA5+pRARJEtHCuybsrU2ffGOiAtIzciBZWD/5hmQw8idYJP7+LQQ83WYdRJWJoZiIAAAKgG4ty292JhmGlIwciGYMxVSUpV8XgB2aVIUwFBMRgLyNPJ5r44an3IWVDExyajYkU4sn35AMisamBsxcfSCUYrtiIrXx2UpEAPI28nCyM4dvfSe1S6EqJCE1E4KkgWBUtt3OqHqybNIRSgk39yDSFwzFRKSTq5XRPcBN7TKoColPytsJkbOKSUcQYd30WYAn2FEVw2csEeloJBFtmjjD2qLo3vVExXmQmAGAWz3Tv8w9W0Bj4wiBvVhUxTAUE1EhoiCgS/M6apdBVcT9+HQA4AYepGPTug9bJ6hKYigmosIEoEebZ9SugqqIuw/SALB9gvIY13SHWV0fCNysg6oghmIiKkQUBLjUsIS3u53apVAVkJCSBUWR2T5BAACblr2gaLldPFVNDMVEVESuVkbv9vXULoOqCEUrc6WYIFnYwLJxBwgSN8ulqomhmIiK0Egi2vu5oKa9udqlUBWg1crsKSZYNfsfJ05QlcZnLxEVS1EU9O9cX+0yqArI1ipcKTZ0kgY2LZ7nZh1UpfHZS0TFkiQR/2vtBhtLjmejx8vMkSGZc6tnQ2bZsD3fLaAqj6GYiB5JFMHeYnqi9MxcSOY2apdBKrIJ6ANFltUug+ipMBQT0SNJoog+HT1gYcoTZ+jRUjNyuEpowMzqN4NJDTe2TlCVx2cwET2WiZGE3h24WkyPlpKWBdHUUu0ySBUCHLqM4mYdVC0wFBPRY4migP6d68Ocq8X0CImp2RCNTQGRzxFDY9GwLYxr1OVmHVQtMBQT0ROZGmvYW0yPFJ+UAQCQzLhabFBECfZdXmAvMVUbDMVE9ESiKGBAF64WU/EeJGUC4FbPhsbKLxBGtjXZS0zVBp/JRFQipsYaDOziqXYZpIdiEx6uFPNkO4MhaIxh13EoFIWrxFR9MBQTUYnkrxZzlzv6r+i4NABcKTYk1s27Q7KwhcAd7Kga4bOZiEpMAPBKn8Zql0F65n58GhRFgcRQbBAEYzPYth+sdhlE5Y6hmIhKTJJEBDRxhm99R7VLIT2SKwOKrOVKsYGwbd0borEZBEFQuxSicsVQTESlopVlvNrfF6LIP4j0L1krc6XYAEiWtrBp048n11G1xGc1EZWKJIqoW8sK3Vu7qV0K6ZEcrcIT7QyAw7MvQ5A4hYaqJ4ZiIio1RVEw+vmGsDQzUrsU0hNZuQpEM2u1y6AKZObhD8uGbblRB1VbDMVEVGqCIMDMRIPh//NSuxTSE+lZuZAsbNQugyqIoDGGU8/x3KiDqjWGYiIqE0kU0Kt9PbjW5FvmBKRl5LB9ohqzbT8YkqU9e4mpWuOzm4jKTFEUvNq/idplkB5ISc/h9IlqysjJFbZt+jIQU7XHZzgRlZkkifDzdEL3AJ50Z+iSUrIgGpshb5o1VR8CnJ5/HVDUroOo4jEUE9FTURQF4/o14U53Bi4hJROCKEI0tVC7FCpHVk27wtSlAQSJJ9dR9cdQTERPRRAEaEQBb49oBo4uNlwPkjIBcKvn6kSysIFDtxehKFwmJsPAUExET02SRPi426N3Bw+1SyGVPEhIBwBIZpYqV0LlxeF/r0AwMuHOdWQwGIqJqFwIgoCXnm/IaRQGKiY+AwAgmXNWcXVg6duFM4nJ4DAUE1G5EQRgygvNIbGPwuDcfZAGgO0T1YGRfW04PjeObRNkcBiKiajcSJKIZ2pbY3BXT7VLoUqWmZ0LRdZCYiiu2iQNagx4B4KoYdsEGRyGYiIqV4IgYNj/vOBRh7ubGRpZK0PkBh5Vmn2XkTB2qstpE2SQGIqJqPwpeW0UJkb8w2pIcrUyV4qrMDOPZrBt3ZubdJDB4jOfiMqdJIlwdrTEhCFN1S6FKlFWrsKe4ipKsrRFjb4Tociy2qUQqYahmIgqhCQK6NysDvp0qKd2KVRJMrJlSBZsm6l6BNToOwmiiTlXicmg8dlPRBXq5T6N0cTDUe0yqBKkZ+ZwJFsVZBPQB6ZujTl+jQweQzERVSgFCt5/qSWc7MzULoUqWGp6DtsnqhizZ3xh32UkJ00QgaGYiCqYJIowNdFg5pjWMNbwV051lpSWBcnUQu0yqISMHFxQc9B7apdBpDf4F4qIKpxGEuHmbI03BjdVuxSqQIkpWRAkDQQjU7VLoScQzaxQa/hMCJIx+4iJHuJPAhFVClEUENjCFb3aP6N2KVRB4pIebvXMFgr9JmlQa3AQNFb2nEdMVABDMRFVqnF9m6BxPQe1y6AKEJuYF4pFc0uVK6HHcer5GkxcGvDEOqL/YCgmokqlQMH0Ma3g7Mje0+rmfnw6AEAy4wQKfWXTpj+sfDuzZYKoGPypIKJKlX/i3YLxbWFrZaJ2OVSO7sXlhWJOoNBP5l6t4RA4Uu0yiPQWQzERVTqNJMLe2hTzX20Lc1ON2uVQOUlMyYKiyJDMGYr1jXGteqjZbzIUhTvWET0KQzERqUKSRNSpaYmZY1vDiKPaqg1Fq4Voxp5ifWJkXxvOw2cCoghB4M8a0aPwp4OIVCOJIho+44B3RzaHKHLzgOogV6uwp1iPaOxqwXn0PIgmFjyxjugJGIqJSFWiKCCgsTMmDfMHN9Wq+nK0Ckey6QmNTQ3UHjUPkpkVR68RlQBDMRGpThAEdG5WB68N8FW7FHpKmdkyRHOuFKtNsnZE7dHzIFnYcIWYqIQYiolILwiCgB5tn8GYXg3VLoWeQnpWLiQLG7XLMGiSlX3eCrGFHQMxUSkwFBORXhnQxROje/qoXQaVUWp6NtsnVCRZ2KL2yLnQWDmwZYKolBiKiUjvDO7aAK8P8gXPvat6ktOzOX1CJaK5NZxHzoXGpgYDMVEZMBQTkV56LsAdU0a2gEZiMq5KElOyIBqZACLnT1cm0cwKtV+YAyP7WgzERGXEUExEekkQBLTzrY2ZLwfAxIh/5KuK+ORMAIBkztXiyqKxrQmXMQth5OjCHmKip8BQTER6SxQF+Hk6YcFrbWFhZqR2OVQCDxIzAHCr58pi7OwBlzELobF2ZCAmekoMxUSk1yRRQP06tlg4oT1srUzULoee4H5CXijmBh4Vz8zDH7VHzYNoas6WCaJywFBMRHpPkkTUcbLEkokdUdPeXO1y6DFi4tIAgBMoKpiVXyBqDXkfgmTEFWKicsJQTERVgiSJcLAxxZKJHeFWi4FLX8UmpENRFIjm/B5VFNsOg+HU6w1AECCI/DNOVF7400REVYZGEmFlboSlb3VEmybOapdDxciVAUXWQuJYtvIniHDs+RrsOw7L+5D7ohOVK4ZiIqpSJEmEkUbC+y+1wqgePpxlrIdkrcwT7cqZYGSKWkOmwappoNqlEFVbDMVEVOWID5Pw4K6emDWuDSdT6JkcrcIT7cqRkX1tuLy8GGb1/CAI/LNNVFH400VEVZYgCPCr74gVb3dGXfYZ643MHPYUlxdzr1ZweXkxjGxr8oQ6ogrGUExEVZokiXC0McWySZ3Q3q+22uUQgIysXEgWNmqXUbUJIuw6j0CtQVMhGBlz5BpRJWAoJqIqT5JEaCQRU0e3xIvPN2SfscrSMnMgmbN9oqwkC1s4vzALtm0HAABbJogqCTenJ6JqIb/PeGCX+qhfxxZLvj2LpNRslasyTMlp2RCd2D5RFmbuvqjR/+28DTk4XYKoUvHlJxFVK4IgoImHA9ZM7cqxbSpJTs2GaGIGcIWz5AQRdh2HodaIDyCaWrB/mEgF/I1FRNWOJIkwNzXC+y+1wjsvNOd0ikoWn5wJQRAgmnL3wZLQ2Dmj9qh5sG0/CAI35CBSDdsniKhaym+n6NC0Npp6OmLZ9+dx7vp9lasyDHHJGQDytnqWM1JVrkaPCSJsWj0P+84vAILIdgkilfHlKBFVa5IowtrCBHP+rw1eH+QLMxOuBVS0+wl5oZgbeDyakaMrXF76CPZdX4SgMeJ0CSI9wFBMRNVe/qrx/1q749N3u6BRPQeVK6reYuLSAYATKIojSrBtNxB1XlkC45rPlMvqcGBgIAIDA5GaWnRVPigoCKNGjSrxsRRFwY4dOxAXF1fmenJycrBx48Yy3x8ARo0ahaCgIADAqVOn4OXlhcjIyMfe57fffsNrr732yOu3b98OLy+vEtewatUqBAY+fgfBu3fv4ueffy7xMSvapk2bMH/+fLXLqLIYionIYEiiAHsbU3z0ejuM7d0IJkZcnasI0XF54YwrxYUZ13SHy8uLYddpOARJU66rw1FRUVi0aNFTH+fMmTMICgpCRkZGmY+xd+9efPTRR09dS2kkJSVh3rx5uiBdnJ49e+Lo0aPl+rhTp07FkSNHyvWYT+OFF17AkSNHcPbsWbVLqZIYionIoEhiXu9m344eWBPUFQGNOaGivGVmy1BkLSQzS7VL0Q+SBnadhsNl7CIYO9SpkN5hV1dXbNmyBcePH3+q4yiK8tS1lMcxSmvTpk3w8/ODm5vbI29jamoKJyenSqyq8mk0GowaNQrLli1Tu5QqiaGYiAySKAqwtzbF9DGtMO/VNnBxYoArT7JW5koxAPMGLeH66grYthsAQZQqrHe4T58+aNOmDaZPn15sG0W+xMREzJkzB506dYKvry+GDRuGU6dOAchrUxg9ejQAoGvXrti+fXuxxzh79ixGjx6NZs2aoXHjxujRowd27doFIK9FYdq0aQAALy8v3bH/67fffsPgwYPRtGlTNGnSBAMGDCjzimtWVha+/fZb9OjRQ3fZqlWrMHLkSEyePBnNmjXDvHnzirRPxMfHY/LkyWjRogVat26NJUuWYPTo0Vi1alWh469duxYdO3aEr68vRo0ahTt37gDIa/E4ffo0duzY8cg2i6CgIAQFBWHhwoVo06YN/Pz88OqrryImJkZ3m3v37mHKlClo164dmjZtipdffhnBwcEAgG+++QYtW7aEVqsFAMiyjNatW+PVV1/V3f/69evw8vLCvXv3AADPPfcczp8/j0uXLpXp62nIGIqJyGDl9xo39nDEp+92wYvPN+SJeOUkVysbdE+xsbMHnEfNQ63BQdDY1KjwXekEQcCCBQuQlJSEhQsXFnsbrVaLsWPH4uzZs1i8eDG2b9+OBg0a4OWXX8alS5fg7++vC4Rbt25Fz549ixwjJiYGL7/8Mpo0aYIdO3Zg586d8PX1xfTp0/HgwQP07NkT77//PgDg6NGj8Pf3L3KMK1eu4M0338Tzzz+PPXv24Mcff4S9vT3ee+89ZGeXfsOds2fPIjk5GR07dix0+ZkzZ+Do6Ihdu3YV6auWZRmvvvoqwsLCsG7dOmzYsAEXLlzA6dOnC90uKioK586dw9q1a7F582bExsZi+vTpAPKCt7+/P3r06IFt27Y9sr69e/ciMTERmzdvxpdffomrV69i+fLlAIDU1FQMHz4cMTEx+Pzzz/HDDz/A1NQUI0eORFRUFLp06YLk5GRcuXIFAHD16lUkJSXh7NmzuqB8+PBhNGrUCM7Oee96OTo6onHjxjh06FCpv5aGjqGYiAyeRhIhSSIGdK6PddOfRfcAN11gprLJylUgGeBKsWTlAKc+b6HO2EUwdclblaysucMuLi6YOnUqfvzxx2J7Z48ePYqrV69i6dKlaNWqFerXr485c+bA09MT69evh7GxMWxsbAAA9vb2MDU1LXKMrKwsvPnmm5gyZQrc3NxQv359/N///R9ycnJw584dmJqawsoq7/vu5OQEY2PjIseQJAkzZ87ESy+9BFdXV/j4+GD06NGIj48v0wl+Fy5cgIuLCywsLIpcN3HiRLi6usLd3b3Q5adPn8alS5ewZMkSNG3aFI0aNcLy5cuL1GtkZIQlS5bA29tbt7KeH1BtbW1hZGQEU1NT2NvbP7I+KysrzJ07Fx4eHmjVqhV69uyJc+fOAQB2796NhIQErFixAr6+vvD29sbSpUthamqKb7/9FnXq1EGDBg1038/jx4+jU6dOyMrKwtWrVwEAf/75Z5GVak9PT1y4cKFUX0finGIiIh1RFGBpboQJg5uiXycPrN15Geevx6pdVpWUkS3D2oBWigVjM9i27Q/b1n2AhyFYjTFrQ4cOxYEDBzBjxgzs3bu30HUhISGwsrJCgwYNdJcJgoAWLVqU+AS0unXrYsCAAfj6668REhKC8PBw3Vv9+SuXT+Lj4wMbGxusXbsWt27dQlhYWKmPUdCDBw/g4FB0ooyDg4MuoP/XtWvXYGNjg3r16ukuc3R0xDPPPFPkGJaW/7ZWWVtbIzMzs1T11a1bF0ZG/24gZGVlhZycHAB53xN3d/dCodrU1BS+vr4ICQkBkDdd5Pjx43jjjTdw7Ngx9OjRAwkJCTh58iTc3Nxw4cIFfPDBB4Ue097enqG4DLhSTERUgPjwJChnR0vM/b+2mPdqG/i4P3oViIqXlpkDycJG7TIqniDCqtn/UPeNz2Hbpn/ezGGVt2ieP38+UlJSikyAeNQJcIqiQKMp2RrZzZs38dxzz+HPP/+Eu7s7XnnlFaxfv75U9Z0+fRrdu3fH5cuX4e3tjQkTJmDx4sWlOkZBoigWG6aLW+nOJ0kSZFl+4rGlcnhhU9xqeb5HfU9kWdZ9TwIDA3Hx4kU8ePAA58+fR5s2bdCmTRucOnUKR44cQa1ateDt7V3o/lqtFiJ3Riw1rhQTERVDetg+0cTDEYverIErtx7gh19DcPEGV45LIjU9G5JNNT55UZRg2ag97NoPhsauFgDozY50tWvXRlBQEGbMmAFXV1ddr6mXlxdSUlIQEhKiWy1WFAV///036tevD+DJn8MPP/wABwcHfPXVV7rLfv/9d92xSnKMDRs2oHXr1oVOaPvmm28KHaM0nJycEB8fX6r7eHt7IyUlBaGhofDw8AAAJCQkICwsrNSP/zS8vLywc+dOxMXF6Va7s7KycOXKFfTr1w8A4OvrCxsbG6xZswYODg5wd3dHmzZtsGnTJlhYWBR7kl98fDxq1KhRmZ9KtcCXEUREjyFJeb8mfdzsMX98Wyyb1AmtGtVSuSr9l5SaDdG0+oViwcgE1i2fR90Ja1Cjz0RobGtCEAS9CcT5Bg8ejPbt2yMiIkJ3Wfv27eHj44N33nkHp0+fRmhoKObOnYuQkBC8+OKLAABzc3MAQHBwMNLS0ooct1atWoiOjsbhw4cRFRWFX3/9FbNnzwYA3Uly+ce4cuVKsa0Gzs7OuH79Os6ePYvIyEj89NNPWLFiRaFjlIafnx/u3r2LxMTEEt+ndevW8PPzw3vvvYcLFy4gODgYU6ZMQUZGRqm+lxYWFoiKikJ0dHSp6waA3r17w9bWFpMmTcKlS5d0daSnp2Po0KEA8l5kdO7cGVu2bEGbNm0AAM2aNYOiKDh48CC6du1a5LhXr16Fr69vmWoyZAzFREQlkB+On3GxxsyxrfHpu4Ho0NQFPB+veIkpmRAkCYLxo9/CrkpEMyvYdRiCuhO/hMOzYyBZ2gGovJPoymL+/PmFemolScKGDRvQsGFDTJgwAQMHDsSNGzewceNGNG3aFADQoEEDdOrUCZMmTcKWLVuKHHP06NHo0aMH3nvvPfTq1Quff/453n77bbi4uODy5csAgICAAPj5+WHYsGH4448/ihxj4sSJaNq0KcaPH49+/fph69at+PDDD2Fqaqo7Rmm0bNkS1tbWjxz/9iirVq1CrVq18NJLL+HFF1+Er68vateuXaj/90mGDRuGkJAQ9OnTp0z90FZWVti8eTOsra3x0ksvYcSIEcjMzMT3338PV1dX3e26dOmC7OxstG7dGkBeS0bz5s1hZWWFli1bFjpmfHw8bt68WWxYpscTFDWmbBMRVXGyrEAUBdyLS8OWgyH48+8IaGX+Os03qEt9vNirEcJXj0duUtVtOdFYO8EmoDes/f8HiJJeh2BDtmzZMgQHB+OLL74o0e3j4+Nx8eJFtG/fXheC80PnrFmzdK0LVdH69etx6NAhfPfdd2qXUuWwp5iIqAzyR7bVtDPHpGH+eLGnD/afvIODp8MRm1D2LXKri9jEvK+BaGYFVMFQbFzTHTat+8KyUXsAiuonz9HjjRkzBj179izUI/w4Go0GkydPxrBhwzB8+HDk5OToxtL9d95xVZKdnY3vv/8eCxYsULuUKokrxURE5UQryxAFARdvxOKXE3dw+mo0crWG+SvW290Oi9/siHvfz0PGrQtql1MiopklLBt1gFXTZ2FS0w2KVqvKWDUqm19++QW7du3CmjVrSnT7kydPYvny5bh+/TpEUUSzZs0wZcqUQrveVTUbN25EeHh4kRFtVDIMxURE5UyrlSFJIlLSs3HwVBh+PRWOqNhHb71bHdlaGuObOT0Qs3MZ0q6WbAauKgQRZs/4wsqvKyy8Wv07Y7iCd6AjIv3D9gkionKWf1Kelbkx+nb0wIAunrh2Ow77T4Th+KW7yMop/Qk5VU1iajYUWdbbXe00drVg5RcIK79AaCztuCpMRAzFREQVKT8ge7nZoeEzDnh9oC9OXb2Hk1ei8XfwfWRk5apcYcVRZK1ehWLJ0g7mni1g2aQTzFx9oMhaXa8wAzERMRQTEVUC6eHb8qYmGrTzc0GnZq7QamVcDn2AE5fv4dTVaMQllW77WH2Xq1XyTrRTkXGtZ2Du2QIWXq1hUvOZvM0h8jeZ4MlzRFQAQzERUSXTPFw9liQRTeo7wtfTCa8N9MOtqCQcv3QXp65G4869ZJWrfHrZWhmSuXWlPqagMYape2NYeLaAeYPW0FjaQpG1gJDfKywAerbRBhHpB4ZiIiIVSQXm3rrXtoabsxVG9vDBg8QMnLoajSuhD3D1VhwSUrJUrLJsMrMVmFd0KBZEGDnWgWkdL5jXbw6zen4QNcZQtLkQJM3Dm3BFmIiejKGYiEhPiAVWMR1tzdA9wA3Pt3sGABATn46LN2Jx7XYcroclICo2Ffo+Oyg9MxdW5jblekzRxBwmLg1gWscLpnW8YeLSAKKx6cO2CLlAjzD/vBFR6fC3BhGRnspvswCAmvbmCGzhiv+1dgMApGfmICQ8EcFh8QgJS8Dte0l4kKhfPcmpGdmo7fgUPcWCCCOH2jB18YJJnQYwq9sIRvbOAABFqwVEQTc6La8tgivCRFR2DMVERFVEwZBsbmoEX09HNPZw0F2enaPFvQdpCI9JQdT9VETF/vtfemblT7lITsuGWMf+ibeTLO1gZF8bRg61YWTvDCMHFxg71oHGxgmCKOWtAsvaQqu/nBZBROWNoZiIqIoSBQGi9O9JY8ZGEtycrVGnphUURSkUopPTshF5PwURMSmIS8pESno2UtKykZyejZS0HCSnZSElPadcR8QlpWZBNDKBcc1nIJpaQLKwgWRuA8nSFka2NWHk5Aoju1oQjUwAQBd+IYqFNs8QBAFgOwQRVTDuaEdEZEBytTKAh4FaLDqFIVcrIz0zBylpOUhKyyrxRiMCBJiaSLAyM4aFmRHMTDUwMSq6mqvIMqDIgCDwBDgi0isMxURERERk8Li5OxEREREZPIZiIiIiIjJ4DMVEREREZPAYiomIiIjI4DEUExEREZHBYygmIiIiIoPHUExEREREBo+hmIiIiIgMHkMxERERERk8hmIiIiIiMngMxURERERk8BiKiYiIiMjgMRQTERERkcFjKCYiIiIig8dQTEREREQGj6GYiIiIiAweQzERERERGTyGYiIiIiIyeAzFRERERGTwGIqJiIiIyOAxFBMRERGRwWMoJiIiIiKDx1BMRERERAaPoZiIiIiIDB5DMREREREZPIZiIiIiIjJ4DMVEREREZPAYiomIiIjI4DEUExEREZHBYygmIiIiIoPHUExEREREBo+hmIiIiIgMHkMxERERERk8hmIiIiIiMngMxURERERk8BiKiYiIiMjgMRQTERERkcFjKCYiIiIig8dQTEREREQGj6GYiIiIiAweQzERERERGTyGYiIiIiIyeAzFRERERGTwGIqJiIiIyOAxFBMRERGRwWMoJiIiIiKD9/+hkX5HXRIjqwAAAABJRU5ErkJggg==\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[\"ECigaretteUsage\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Statystyki covidowe"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 65,
"outputs": [
{
"data": {
"text/plain": "<AxesSubplot:ylabel='count'>"
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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7VqNHDlS7dq1U6dOnXTnnXdq3759kk6cXvXqq6/qtdde0969ez1TOQqnEbjdbvXr10/PPffcCbc9d+5cxcfHe54Dv/jiCw0aNEht2rTRoEGD9P7778uyrDN+f4VTbor6mMvl0nPPPadevXqpVatWGjhwoD766CPP5x4/zWHp0qVq0aKFfvrpJw0dOtTz+YsXL/Z8vsvl0ksvvaQePXooPj5ed911l5566qmzTpXYsWOHZ8rIhRdeqLfeeuuEy3/88UddffXVateunXr06KHJkycrO/uvDSmaNm2qTz75RCNHjlTr1q01aNAgrVq1Sp988ol69+6t9u3b65577jnha1atWqXrrrtObdq0Ue/evTVx4sTTvtaYPXu2JkyY4LmtwulypX0fP96dd96p2267zfPvTZs2qWnTpnrvvfc8H5sxY4bnDdnC3+vSpUt1ww03SJL69et3wtS12bNnq3///mrdurWGDx+uNWvWeC7Lzs7W1KlT1a9fP7Vu3VqXXXaZFi1adMLXnjxF6/iPjR8/XnPmzNGyZctOO5XLsiy99dZbGjBggFq1aqX27dvrpptu0q5du4r8/EIZGRmaMGGCOnbsqA4dOmj8+PHKzMz0XL5t2zbdfPPNnvvH/fffr6SkJM/lKSkpevTRR3XhhReqZcuW6tq1qx599FFlZWWdcltF/Z1KBdPrpkyZoi5duig+Pl633367Dh8+/RtfZ3tsmT17ti666CL961//UocOHXT77bd7vpfbbrtNnTt3VocOHXTXXXdp7969np/xq6++qn379p0wLbEk90NJeu+999S/f3+1atVKffv21euvv+4pXidPr9q/f78eeOABde/eXfHx8Ro7dqw2bdrkuXz8+PEaP368pkyZoq5du6pt27a69dZbdfDgQc/nrFixQjfccIPat2+vVq1aadCgQZo3b95pf5ZnU6zSMX36dE2dOlX16tVTw4YN1b59e/Xp00dDhgzRM888U+rzBMtSRFgwZ3XgnNSuFqG4KuFKWbZAspjWULhI/dDsF7T7jdu1e8q12vXGOB396WM5DiSqTcU6urrVUP2z9936z7AXNXXQE7qt0/Xq16C7akfXKNG7+f6sUmhFr17/zz//rHvuuUdXX321vvrqKz3++OP673//qwcffFBSwUGw48aN0xVXXKGFCxfqtdde0/Llyz27FC5ZUnAuzT/+8Q898sgjyszM9LxwnTlzpmbMmKFKlSrp6quv9jyZvf3223r33Xf10EMPafbs2YqKitLChQuLSHeiN954Q+3atdPcuXN13XXX6bHHHvN83dq1azVq1Cg1btxYn376qV5++WWtWbNGY8eOlcvlksvl0q233qpOnTpp/vz5+s9//qN9+/bpH//4xym3M2bMGI0ZM0bVq1fXkiVLFBcX57nMMAwNGzZMCxcuPOFd1vnz56t///6KiIjQJ598omeffVbjxo3TggULdM899+idd97R888/X5xfkSRp1qxZ+vrrr/XSSy9p0aJFuv766/XEE0+cdp1BYUl55JFH9NVXX6lJkyZ6+OGHlZGRIUl6/vnn9cknn+jxxx/XF198odjYWM2YMeOsOWbOnKnLL79cCxcu1LXXXqsXX3xRv/32myTp22+/1d///nf17t1bs2fP1sSJE7Vw4ULdd999J1zHSy+9pJtuuknz5s1TZGSkbrvtNi1atEhvv/22Jk+erMWLF3teR2zatEk33nijLrzwQs2fP1/PP/+8NmzYoDFjxhT5LvfgwYM9v9MlS5aoXbt2pX4fP1mfPn20bNky5ecXTCv95ZdfZBiGp/BIBWWsX79+J3xdu3btPKXys88+O2HK46effqoXX3xRX3zxhYKDg3XPPfd4Lrvvvvs0d+5c/fOf//Tc7+6+++4TSuWZPPLIIxo0aJDatWvn+d5O9sEHH+i9997T+PHjtWjRIr3++utKTEw863EI33zzjapWrarZs2fr2Wef1cKFC/XOO+9IKngzYuTIkapbt64+//xzTZs2Tenp6RoxYoSnmIwfP14bN27Ua6+9pkWLFmnChAmaO3euPvnkk1Nu63R/p6tXr1ZqaqpmzZqlt956S3/88cdZd1U902OLJO3atUuHDh3S3Llzde+992rv3r0aMWKEgoOD9f7772v69OlKSkrS9ddfr/T0dD3yyCMnZBs8eHCJ74fff/+93nrrLU2cOFHffPONHnjgAb355puaP//UA4nT09N17bXX6uDBg3rzzTf18ccfKyQkRNdff72nGEkFUxGTk5M1c+ZMvfPOO9qwYYOmTp3q+X2NHTtWrVu31pw5czR37ly1adNGjzzyyBlL3JkUa3rVxx9/rHvuuUe33HKL52NxcXF69NFHVaVKFf3nP//x6XmC0REVdCSFrUJxZrde3kZuy6W0P761O0q5xUnqJRcTWlFut9trpWzatGm6+uqrdc0110iS6tSpo4kTJ+pvf/ub9uzZo7S0NOXm5qpGjRqqWbOmatasqWnTpnnWDxROSSqcxvXZZ58pNTXVc56TJD311FNaunSpPv30U40bN04zZszQDTfcoKFDh0oqeAf5+Bdop9OjRw+NGzdOktSgQQOtWbNG77//vgYPHqzp06eradOm+uc//ylJatiwoV588UVddtllWrJkieLj43Xs2DFVrVpVNWvWVO3atTV16lTPAt7jhYeHKyws7JQpV4Uuv/xyvfbaa1qxYoU6deqkpKQk/f7773r33XclFbyA+fvf/64hQ4ZIKthOPj09XRMnTtTdd9/tmc9/Pnbt2qWwsDDVqlVLVatW1fXXX68GDRqofv36p/2ae+65R127dpVUsBZz0aJFSkhIULNmzTRr1ixNmDDB8+77o48+qtWrV581x8iRI3X55Zd7rnP69Olav369unbtqrffflsXXXSR553g+vXry+1264477tDWrVvVqFEjSdIVV1zheUf2sssu05NPPqnHHntM9erVU5MmTfTuu+9qy5aCrb7fe+89de/e3TOSUK9ePb3wwgvq37+/li1bps6dO5+QLyQkxDPVrPB3V9r38ZP17t1bjzzyiP744w917NhRv/76q/r166fffvtN+fn5ys3N1bJly04YDZGk4OBgzxqimJgYhYT8NQL81FNPqWHDhpKksWPHaty4cTpy5IiSk5P13Xffadq0aerdu7ekgpGWTZs2adq0aerfv/9Zf4eRkZEKCQlRUFDQaadZ1qlTR1OmTFGfPgVbqtesWVMDBw7U11+feVv4Nm3a6N577/VcR/fu3bV+/XpJ0kcffaTq1avr0Ucf9Xz+1KlT1aVLF3399dcaPny4unfvrk6dOnlGYGrVqqWZM2cqISHhlNs63d9pbGysJk2aJNM01aBBAw0ePFi//vrrGXOf6bGl0O233+45KuK5555TWFiYnn/+eQUHF2xA9Morr6hfv36aN2+errvuulOylfR+uGvXLgUHB6tmzZqqUaOGatSooapVq6pGjRqnfD/z58/XsWPHNHv2bM90vsK/mw8//FAPPfSQpIL7wpNPPqmgoCA1bNhQgwcP1k8/FexumZOTozvvvFNjx471PP/ccsstmjt3rhITE1WlSpUz/kyLUqzScfDgQbVu3brIy9q2bas333yzOFdbbsREhVA6cEYhwaZaN6ik9LXfy8ry7SmFZYtF6uerSlgludwuOY1iPVyf1caNG7V27Vp9/vnnno8VvoO8bds29erVS0OHDtVtt92m2NhYde/eXb179z7t2r2NGzcqJSVFnTp1OuHjOTk52rZtm44dO6akpKRTnkPi4+O1bduZN2M4+QVmu3bt9OOPP0qSEhIS1L179xMub9asmSIjI7V582b16tVLN910kyZNmqRXXnlFXbp0Ua9evTRo0KAz3mZRatWqpQsuuEBffvmlOnXqpAULFqhq1arq0qWLjh49qgMHDujFF1/Uyy+/7Pkay7KUk5OjPXv2eF5Mno/rrrtOixcvVq9evdS8eXN1795dQ4YMUeXKlU/7NQ0aNPD8f0REhKSCqSfbtm1Tdna24uPjPZcbhqEOHTqcMP2iKPXq1Tvh31FRUZ6pcQkJCZ6iVeiCCy7wXFZYOurWreu5PDS0YDvoOnXqeD4WEhLimXKyceNG7dy5U+3atTsly7Zt2065TxSltO/jJ4uJiVHbtm31yy+/qE2bNlqxYoVmzJihH3/8UevXr9eRI0cUFham9u3bn9P1SSf+nKOiCnYJzM7O1ubNmyVJHTp0OOHzO3XqpBdffPGcr/9s+vbtqzVr1ujll1/Wjh07tGPHDm3duvWsC6JPvn9ER0d73lnfuHGjtmzZcsrvsvCxQSootd9//73mzJmjxMREbd26VXv27Dnhvnw2derUkWn+NZEnOjr6hOl6RTnTY0tR31tCQoJatWrlKRxSQdmpX79+kQVJKvn98NJLL9UXX3yhAQMGqFGjRurWrZsGDBhQZOlISEhQvXr1Tlg/FBISojZt2pyQr06dOgoK+ut8usjISOXl5XkuGz58uD744AMlJCRo165dnseH4m5aUaxnsZo1a+q3337zvINyvOXLl6t69erFClNe1KgSri27k+2OgXJs9NBWMp1OpSw/+5QQnBmL1M+sSniMjOIvvzsry7J00003adiwYadcVvgO3QsvvKA77rhDP//8s3799Vc9+OCD6tChg95///0ir69+/fpFvvkUFhbmecfs5KkxhaMiZ3Ly51iW5XlxcboFpW632/Ok+sADD2jkyJH66aef9Ntvv2nSpEl69913NXfu3LPe9smGDx+up59+Wo8++qjmz5+vyy67TKZpetZtTJgwQd26dTvl646fqnU2hdN1pIIXPN98842WLVumX375RT/++KPeeecdTZ48ucjfnaQTXhAVcrvdnp9jcRbhOhyOIq/zdNdX+PM4/ndX1O/6+BeJJ3/9JZdccsoogXTiguwzKe37eFH69u2rxYsX64ILLlBUVJTatGmj1q1ba+nSpdq7d6/69OlT5M/udM70cy7K8b/Xopzvi8S3335br7/+uoYNG6auXbtq9OjR+u6777RgwYIzft2ZvkfLstSlSxc9/vjjp1wWGRkpy7J06623asuWLRo6dKgGDx6sli1bekYvz9X5/JwLnemxpdDxI1Gn+11YlnXCi/iTLyvJ/TAmJkbz5s3T6tWr9csvv2jJkiX64IMPdOedd3pGac4l3/Hfa1GPEYW2bt2qkSNHqmXLlurWrZsuvvhiVapUqUQzmYr1THb11Vfrvffe05QpU7Ry5UolJiZq1apVeuGFF/T22297ho58Ub7LUs2qEXbHQDnXr0NNZSWuU97h3XZH8UssUv9L1fAqcpzmBVlpaNy4sXbs2KG6det6/jtw4ICeffZZZWRkaM2aNXr66afVoEEDjR49Wm+//baefvpp/f7770VOTWrSpIn27dunyMhIz/XVqFFDL7zwgpYvX65KlSopLi5OK1euPOHrCqdgnMm6detO+PeqVavUokULSQWLfU++zk2bNik9PV0NGzbU9u3b9fjjj6ty5cq69tpr9corr+jdd9/Vtm3binx3/2zT2QYMGKD8/Hx99tln2rBhg4YPHy5Jqly5smJiYrR79+4TfqbHz5UuSlBQ0AmLo9PT00/4+X7wwQf65ptv1L17dz300EP68ssv1bVr13NaC3OyunXrKiQkRH/88ccJHz9+sXJxNG3aVKtWrTrhY4VrToozuiMV3D+3bt16ws8yPz9fkydP1v79+4v8mpN/d6V9Hy9K3759tX79en377beeN2S7deum33//vcj1HKfLejaF045Ovq+vWLHCM5JU+KL3+PvT8Rs5nMvtTps2TXfccYeeeOIJjRgxQvHx8UpMTCzRblGNGzfWtm3bFBcX5/k9REdH6+mnn1ZCQoL+/PNP/fzzz3r55Zf1wAMP6NJLL1WdOnW0a9eu095uaU07PdNjS1GaNm2qdevWnbAI/PDhw9q5c+dp7+slvR/Onz9fH330kWfR+qeffqqrrrqqyMeApk2bKjEx8YT7b05OjtavX++5n5zNxx9/rMqVK+vf//63br75ZvXq1cuzlqO494NijXSMHj1aBw8e1IwZM044gMfhcOhvf/ubbrzxxmKFKQ8Mw1Ctqmw9iNMb0KWOQkKCdWCpf2+TW66c9ST1un57knqNSO/u737zzTfrnnvu0WuvvaYhQ4bowIEDeuSRR1SrVi3FxsZ6FmQGBQXp6quvVk5OjhYuXKh69eqpUqVKkgpGMAqnTl166aV6++23ddddd+nBBx9URESE3njjDf3888+6++67Pbc5ZcoUNWjQQB07dtS8efO0du3aU6aMnGzBggVq27atunfvrsWLF+vbb7/VtGnTJEk33nijRo4cqUmTJmnkyJE6fPiwJk2apBYtWqhr165KT0/XggULlJ2drVtuuUWmaWrOnDmKjo5WgwYNlJycfMJthYWFKSUlRTt27FCtWrVOyRIaGqqBAwfqhRdeUPv27T1ThgzD0M0336yXXnpJNWrUUM+ePbV582Y98cQT6tev32nfWYyPj9fChQs1YMAARUVF6ZVXXjnhHdujR4/q9ddfV0hIiJo1a6bt27frzz//9Ox+dD5CQ0M1atQovfLKK4qNjVXDhg316aefas2aNZ7pUMVx00036e6779Ybb7yhQYMGKTExUZMmTVKfPn2KXToKzx6YOHGirr/+eqWmpmrixInKzs4+ZSpPobCwMEnyvMAq7ft44ceO16hRI9WsWVOfffaZnnzySUlS165d9eabbyooKOiUqX8nZ920aVOR13uyhg0bqk+fPpo4caIMw1DdunW1YMECfffdd55SGx8fL8Mw9Oqrr2rUqFFat26d5syZc8rtHjp0SLt37/asUzheXFycfvnlF/Xt21emaWrevHn65ptvijWPv9DIkSP1ySef6IEHHvCs+5kyZYo2b96sJk2aKC8vT06nU//9738VExOj5ORkTZs2TUlJSSe8uD/5+zjT3+m5OtNjS1GuvfZaffTRR3rwwQf197//Xbm5uZoyZYoqVap0yhTDQiW9H+bk5GjKlCkKDw9Xx44ddeDAAS1fvrzIs2MuueQSvfXWW7rnnnv04IMPKjg4WK+//royMzM1YsSIc/qZVK9eXQcOHNBPP/2kRo0aacOGDfrXv/4lSaf9fZxNsScJP/zww7r99tv1xx9/KDk52TOceC5/NOWZwzRUtzqlA6c3on8T5SUfVObWVWf/ZHjNaRepN+uiKjWb+MUi9fDgMEVW8O6+6wMHDtRLL72kt956S9OmTVPFihXVt29fPfDAA5IKXuQUbk05a9YsmaapLl266J133vFMPxgzZoxn1GDatGmaOXOmnn32Wc/OUS1bttT06dM9Lzyvu+46WZalN998U4cPH9aFF16oK6+8Ujt27Dhj1mHDhunbb7/VM888o3r16mnq1Knq1auXpIL1hO+++66mTp2qyy+/XBEREerfv7/uv/9+BQUFqVKlSnrnnXf0wgsv6Oqrr5bL5VJ8fLz+/e9/KyIi4pTScfHFF+vTTz/VpZdeqpkzZxaZZ/jw4friiy88oxyFxowZowoVKmjGjBl65plnVKVKFV199dW66667Tvu93XfffUpOTtaNN96oyMhIjRkzRqmpf91Hx40bp7y8PP3rX/9SUlKSYmNjde211+rWW28948/sdO6++27l5eV5tiPt06eP+vXrd9ati89kwIABevHFF/Xmm2/qjTfeUExMjIYOHXrG7/ts4uPj9e677+rll1/WsGHDFBYWpq5du+rhhx8+bYHr0qWL2rZtq2uuuUbPPfecBg0aVOr38aL06dNH77//vrp06eLJHhISos6dO3vKxcmaNGmiXr166Z577tF9992nihUrnvVn8uKLL+rFF1/UI488otTUVDVp0kSvvvqqZ+5/7dq1NXHiRL311luaNWuWOnTooIceekgPP/yw5zouv/xyffvttxo6dKi++eabU9ZqPPvss3ryySd1xRVXKDw8XG3bttXEiRP1xBNPaN++fUWuIzib2rVra+bMmXrhhRd07bXXyuFwqH379vrggw88U+WeeeYZvfrqq/rwww8VGxur3r17a/To0fr++++LvM5z+Ts9F2d6bClK4QL35557zrOLVffu3fXcc8951uCcrKSPtVdddZWSk5P1xhtvaP/+/YqOjtaAAQM8X3+8yMhIzZw5U88884znkMwOHTroo48+KrJkFuWGG27Q9u3b9dBDDyk3N1f16tXTfffdp1deeUXr1q1Tz549z+l6jme4ffXtPy/KzXPpyglfiZ8MTtakTkU9f1dPHfnmPaWu+K/dcXAWxy9SD65WV0ZYtE8tUm9apYEm9XvQ7hjlQt++fTVs2DDdeeeddkfxC99++606dOhwwrqIwi0+n376aRuTAWWLx5ay453tUHxccJBD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7IDykw/JnZdtV+yzMkMjFRQT99d/leIUXLWugirX+KtgWNYJW9oahimVj5lT56x///5q1aqVatasqbZt20qSNm7cqC1btqhdu3YnfG5OTo62bdsmSbr33nv19NNPa9asWbrgggt04YUXaujQoRQOAADKAUY6ELDcrvyC9QzHvSh1ZaYpL/mA8o7sU37yQeWnJ8vKTJUrK02uzBRZmWlyZaVJlqv0gphOOcKj5AiPliMsWo7wigX/Hx4tZ0SMgqrUUlBMdZnBoSdlN3xqBON8jBo1SjVr1tQzzzwjSbrppptkWZYef/zxUz43MjJSMTExkqQjR47op59+0m+//aaff/5ZQUFBmjt3rqpUqVKm+QEAwIkY6UDAKuqQO0dYpBxhkapQvYHkdnvWipzMys2SKytN7twcuV15crvy5c7PK/j//IJ/q7AYOJwF1+MMkuGsIDM4REZwBZlBFWQGh8msEHrK9bst11/nYxRRLALtgL7GjRtr4cKFiouLU3BwsCQpOTlZDz/8sG688UY1btxYr7/+um655RYNHz5cw4cP18GDB9WzZ08tW7ZMgwcPtvk7AAAgsAXWKxfgHJ1tBMEMDj1h5OFkhWspCq7MKJjmdN6375+jGMUxcuRIffLJJ3rggQd0++23S5KmTJmizZs3q0mTJoqKitKPP/6oXbt26f7771dERIRmz56toKAgtWrVyub0AACAyc6AFxj/G6EwTMd5Fw6cqnbt2po5c6YyMjJ07bXX6vrrr1dQUJA++OADxcTEyOl06p133pFpmho9erSGDBmiX3/9VW+//bbq1Kljd3wAAAIeazoAAAAAeBVvwQIAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK+idAAAAADwKkoHAAAAAK/6f78cvTczqzyEAAAAAElFTkSuQmCC\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[\"CovidPos\"].value_counts().plot(kind=\"pie\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## Normalizacja część 1 - zamiana na kolumny liczbowe i kategoryczne"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"Kolumny zawierające stan zdrowia i podobne cechy opisane w sposób \"poor/fair/good/excellent\" etc. starałem się zamienić na liczbowe w sposób sensowny, rosnący względem pozytywnego aspektu tego czynnika zdrowotnego. Podobnie z tym jak często dana osoba paliła.\n",
"Część kolumn zamieniłem na kategoryczne\n",
"Kolumnę płci zamieniłem na numeryczną w celu późniejszego wykorzystania przez model, choć mialem wątpliwości co do robienia tego pod względem poprawności politycznej\n"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 66,
"outputs": [
{
"data": {
"text/plain": "array(['Female', 'Male'], dtype=object)"
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"Sex\"].unique()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 67,
"outputs": [
{
"data": {
"text/plain": "array(['Very good', 'Excellent', 'Fair', 'Poor', 'Good', nan],\n dtype=object)"
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"GeneralHealth\"].unique()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 68,
"outputs": [],
"source": [
"health_map = {\n",
" \"Excellent\": 5,\n",
" \"Very good\": 4,\n",
" \"Good\": 3,\n",
" \"Fair\": 2,\n",
" \"Poor\": 1\n",
"}"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 69,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"State:\n",
"['Alabama' 'Alaska' 'Arizona' 'Arkansas' 'California' 'Colorado'\n",
" 'Connecticut' 'Delaware' 'District of Columbia' 'Florida' 'Georgia'\n",
" 'Hawaii' 'Idaho' 'Illinois' 'Indiana' 'Iowa' 'Kansas' 'Kentucky'\n",
" 'Louisiana' 'Maine' 'Maryland' 'Massachusetts' 'Michigan' 'Minnesota'\n",
" 'Mississippi' 'Missouri' 'Montana' 'Nebraska' 'Nevada' 'New Hampshire'\n",
" 'New Jersey' 'New Mexico' 'New York' 'North Carolina' 'North Dakota'\n",
" 'Ohio' 'Oklahoma' 'Oregon' 'Pennsylvania' 'Rhode Island' 'South Carolina'\n",
" 'South Dakota' 'Tennessee' 'Texas' 'Utah' 'Vermont' 'Virginia'\n",
" 'Washington' 'West Virginia' 'Wisconsin' 'Wyoming' 'Guam' 'Puerto Rico'\n",
" 'Virgin Islands']\n",
"Sex:\n",
"['Female' 'Male']\n",
"GeneralHealth:\n",
"['Very good' 'Excellent' 'Fair' 'Poor' 'Good' nan]\n",
"PhysicalHealthDays:\n",
"[ 0. 2. 1. 8. 5. 30. 4. 23. 14. nan 15. 3. 10. 7. 25. 6. 21. 20.\n",
" 29. 16. 9. 27. 28. 12. 13. 11. 26. 17. 24. 19. 18. 22.]\n",
"MentalHealthDays:\n",
"[ 0. 3. 9. 5. 15. 20. 14. 10. 18. 1. nan 2. 30. 4. 6. 7. 25. 8.\n",
" 22. 29. 27. 21. 12. 28. 16. 13. 26. 17. 11. 23. 19. 24.]\n",
"LastCheckupTime:\n",
"['Within past year (anytime less than 12 months ago)' nan\n",
" 'Within past 2 years (1 year but less than 2 years ago)'\n",
" 'Within past 5 years (2 years but less than 5 years ago)'\n",
" '5 or more years ago']\n",
"PhysicalActivities:\n",
"['No' 'Yes' nan]\n",
"SleepHours:\n",
"[ 8. 6. 5. 7. 9. 4. 10. 1. 12. nan 18. 3. 2. 11. 16. 15. 13. 14.\n",
" 20. 23. 17. 24. 22. 19. 21.]\n",
"RemovedTeeth:\n",
"[nan 'None of them' '1 to 5' '6 or more, but not all' 'All']\n",
"HadHeartAttack:\n",
"['No' 'Yes' nan]\n",
"HadAngina:\n",
"['No' 'Yes' nan]\n",
"HadStroke:\n",
"['No' 'Yes' nan]\n",
"HadAsthma:\n",
"['No' 'Yes' nan]\n",
"HadSkinCancer:\n",
"['No' 'Yes' nan]\n",
"HadCOPD:\n",
"['No' 'Yes' nan]\n",
"HadDepressiveDisorder:\n",
"['No' 'Yes' nan]\n",
"HadKidneyDisease:\n",
"['No' 'Yes' nan]\n",
"HadArthritis:\n",
"['No' 'Yes' nan]\n",
"HadDiabetes:\n",
"['Yes' 'No' 'No, pre-diabetes or borderline diabetes' nan\n",
" 'Yes, but only during pregnancy (female)']\n",
"DeafOrHardOfHearing:\n",
"['No' nan 'Yes']\n",
"BlindOrVisionDifficulty:\n",
"['No' 'Yes' nan]\n",
"DifficultyConcentrating:\n",
"['No' nan 'Yes']\n",
"DifficultyWalking:\n",
"['No' 'Yes' nan]\n",
"DifficultyDressingBathing:\n",
"['No' nan 'Yes']\n",
"DifficultyErrands:\n",
"['No' 'Yes' nan]\n",
"SmokerStatus:\n",
"['Never smoked' 'Current smoker - now smokes some days' 'Former smoker'\n",
" nan 'Current smoker - now smokes every day']\n",
"ECigaretteUsage:\n",
"['Not at all (right now)' 'Never used e-cigarettes in my entire life' nan\n",
" 'Use them every day' 'Use them some days']\n",
"ChestScan:\n",
"['No' 'Yes' nan]\n",
"RaceEthnicityCategory:\n",
"['White only, Non-Hispanic' 'Black only, Non-Hispanic'\n",
" 'Other race only, Non-Hispanic' 'Multiracial, Non-Hispanic' nan\n",
" 'Hispanic']\n",
"AgeCategory:\n",
"['Age 80 or older' 'Age 55 to 59' nan 'Age 40 to 44' 'Age 75 to 79'\n",
" 'Age 70 to 74' 'Age 65 to 69' 'Age 60 to 64' 'Age 50 to 54'\n",
" 'Age 45 to 49' 'Age 35 to 39' 'Age 25 to 29' 'Age 30 to 34'\n",
" 'Age 18 to 24']\n",
"HeightInMeters:\n",
"[ nan 1.6 1.57 1.65 1.8 1.63 1.7 1.68 1.73 1.55 1.93 1.88 1.78 1.85\n",
" 1.75 1.52 1.83 1.91 1.96 1.5 1.45 1.42 1.24 1.47 1.22 1.98 2.03 2.01\n",
" 1.3 1.4 1.35 1.82 1.67 1.76 2.11 1.37 1.64 1.71 2.16 2.26 0.91 2.06\n",
" 1.14 1.74 1.51 1.53 1.69 1.56 1.84 1.9 1.54 1.72 1.87 1.61 1.49 1.59\n",
" 1.58 1.62 1.79 1.46 1.89 2.13 0.99 2.08 2.21 1.32 2.18 1.77 2.36 1.25\n",
" 1.66 1.86 1.95 1.19 1.05 1.48 1.03 1.18 1.81 1.38 1.44 1.07 1.27 1.2\n",
" 1.17 1.04 2.24 1.1 1.43 1.92 2.05 1.12 2.41 2.34 0.97 1.06 1.15 2.29\n",
" 1.16 1.09 0.92 2.07 1. 1.08 1.02 1.33 2. 2.02 1.94 0.95]\n",
"WeightInKilograms:\n",
"[ nan 68.04 63.5 53.98 84.82 62.6 73.48 81.65 74.84 59.42\n",
" 85.28 106.59 71.21 64.41 61.23 90.72 65.77 66.22 80.29 86.18\n",
" 47.63 107.05 57.15 105.23 77.11 56.7 79.38 113.4 102.06 59.87\n",
" 104.33 53.52 61.69 136.08 34.47 99.79 127.01 78.93 95.25 58.97\n",
" 92.08 72.57 83.91 49.9 117.93 71.67 102.97 62.14 83.46 54.43\n",
" 94.35 60.78 117.03 65.32 76.66 88.45 89.81 74.39 68.95 79.83\n",
" 108.41 90.26 55.79 91.63 47.17 78.02 50.8 91.17 84.37 145.15\n",
" 93.89 122.47 48.99 73.94 88.9 80.74 81.19 158.76 97.52 51.71\n",
" 82.55 76.2 68.49 75.3 70.31 63.05 60.33 115.67 86.64 108.86\n",
" 92.53 124.74 43.09 58.51 63.96 92.99 44.45 128.82 98.88 45.36\n",
" 110.68 46.72 58.06 73.03 95.71 131.09 78.47 69.4 85.73 67.59\n",
" 103.87 120.2 88. 54.88 111.58 52.16 77.56 126.55 94.8 123.83\n",
" 89.36 75.75 69.85 112.49 82.1 106.14 57.61 70.76 148.78 96.16\n",
" 67.13 48.08 163.29 109.77 100.7 142.88 64.86 111.13 121.11 55.34\n",
" 101.6 93.44 117.48 120.66 66.68 44.91 132. 107.5 107.95 36.29\n",
" 103.42 87.09 83.01 56.25 96.62 134.26 97.07 34.93 99.34 72.12\n",
" 49.44 122.02 98.43 129.73 181.44 52.62 121.56 110.22 48.53 140.61\n",
" 156.49 116.57 87.54 44. 114.31 31.75 97.98 101.15 112.04 100.24\n",
" 113.85 154.22 118.39 133.81 149.69 41.73 119.75 138.35 151.95 129.27\n",
" 131.54 104.78 132.45 102.51 116.12 40.37 105.69 136.98 195.04 53.07\n",
" 132.9 124.28 112.94 114.76 45.81 119.29 167.83 51.26 172.37 162.39\n",
" 46.27 127.91 123.38 38.56 130.63 143.34 115.21 166.92 135.17 109.32\n",
" 135.62 204.12 127.46 118.84 139.25 126.1 122.92 151.5 133.36 42.64\n",
" 50.35 80. 190.51 37.19 147.87 35.38 144.24 149.23 37.65 86.\n",
" 147.42 281. 165.56 162.84 155.58 70. 137.89 189.6 206.38 148.32\n",
" 42.18 153.77 38.1 90. 176.9 191.87 249.48 67. 95. 82.\n",
" 170.1 62. 40.82 53. 139.71 130.18 100. 165.11 64. 43.54\n",
" 24. 134.72 141.52 125.19 75. 60. 34.02 164.65 30.84 250.\n",
" 58. 76. 73. 112. 74. 55. 200. 54. 66. 72.\n",
" 152.41 39.46 220. 41.28 168.28 188.24 59. 46. 265. 238.14\n",
" 168.74 145. 190. 93. 159.66 78. 50. 185.07 91. 104.\n",
" 165. 183.7 33.57 161.93 68. 125.65 134. 130. 32.21 143.79\n",
" 69. 179.17 63. 105. 210.92 65. 32. 292.57 280. 85.\n",
" 174.63 56. 128.37 87. 39.92 83. 169.64 156.04 177. 121.\n",
" 151.05 89. 146.96 146.06 98. 166.47 36.74 171.46 227.25 29.48\n",
" 190.06 161.03 35.83 226.8 175.09 138.8 240.4 158.3 170.55 61.\n",
" 137.44 145.6 141.07 155.13 52. 120. 57. 77. 27.22 25.4\n",
" 240. 96. 47. 115. 41. 45. 170. 150.59 272.16 26.31\n",
" 48. 39.01 236. 92. 197.31 156. 84. 94. 29.03 49.\n",
" 79. 157.85 192.78 255. 108. 185. 222.26 229.97 180. 81.\n",
" 24.95 71. 26. 107. 101. 208.65 140. 175. 111. 110.\n",
" 141.97 22.68 284.86 136.53 210. 103. 185.97 140.16 146.51 24.49\n",
" 25.85 150. 102. 229.52 23.59 125. 163. 38. 135. 176.45\n",
" 185.52 152.86 232.69 124. 192.32 186.88 118. 160.12 160. 193.68\n",
" 201.85 144.7 184.16 142.43 169. 166.01 32.66 180.53 196.41 51.\n",
" 40. 171.91 195.95 33.11 153.31 159.21 164.2 219.99 215.46 182.34\n",
" 30. 160.57 173.27 158. 213.19 276.24 199.58 175.99 235.87 217.72\n",
" 200.03 230.88 146. 24.04 178.72 150.14 157.4 163.75 191.42 174.18\n",
" 28.58 97. 256.28 205.48 161.48 178.26 179.62 205.02 254.01 154.68\n",
" 209.56 201.4 234.96 177.81 200.49 231.79 227.7 273.52 189.15 173.73\n",
" 183.25 167.38 211.83 223.62 228.61 30.39 197.77 184.61 250.38 181.89\n",
" 31.3 290.3 285. 113. 242.67 231.33 180.08 202.76 176. 188.69\n",
" 206.84 164. 156.94 114. 122. 222. 137. 166. 180.98 272.\n",
" 172.82 274.42 234.51 199.13 244.94 203.21 23.13 265.35 198.22 263.08\n",
" 216.82 154. 169.19 239.04 177.35 210.47 224.98 117. 37. 126.\n",
" 273.06 203.66 252.2 238.59 194.59 187.33 221.35 162. 224.53 23.\n",
" 223.17 187.79 212.73 152. 233.6 193.23 205. 229.06 230. 247.21\n",
" 99. 28.12 230.42 175.54 205.93 171. 26.76 212.28 217. 280.32\n",
" 281.68 248.57 195. 42. 258.55 215. 116. 28. 123. 186.43\n",
" 228.16 119. 219.09 214.55 278.96 182.8 138. 217.27 246.3 189. ]\n",
"BMI:\n",
"[ nan 26.57 25.61 ... 13.51 28.39 48.63]\n",
"AlcoholDrinkers:\n",
"['No' 'Yes' nan]\n",
"HIVTesting:\n",
"['No' 'Yes' nan]\n",
"FluVaxLast12:\n",
"['Yes' 'No' nan]\n",
"PneumoVaxEver:\n",
"['No' 'Yes' nan]\n",
"TetanusLast10Tdap:\n",
"['Yes, received tetanus shot but not sure what type'\n",
" 'No, did not receive any tetanus shot in the past 10 years' nan\n",
" 'Yes, received Tdap' 'Yes, received tetanus shot, but not Tdap']\n",
"HighRiskLastYear:\n",
"['No' nan 'Yes']\n",
"CovidPos:\n",
"['No' 'Yes' nan\n",
" 'Tested positive using home test without a health professional']\n"
]
}
],
"source": [
"for col in df:\n",
" print(f\"{col}:\")\n",
" print(df[col].unique())"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 70,
"outputs": [],
"source": [
"from collections import defaultdict\n",
"def normalize_dataset(dataset):\n",
" dataset[\"GeneralHealth\"] = dataset[\"GeneralHealth\"].map(defaultdict(lambda: float('NaN'), health_map), na_action='ignore')\n",
" dataset[\"Sex\"] = dataset[\"Sex\"].map({\"Female\":0,\"Male\":1}).astype(float) #Zamiana z kolumn tekstowych na numeryczne\n",
" dataset.rename(columns ={\"Sex\":\"Male\"},inplace=True)\n",
" dataset[\"State\"] = dataset[\"State\"].astype('category')\n",
" dataset[\"PhysicalHealthDays\"].astype(float)\n",
" dataset[\"MentalHealthDays\"].astype(float)\n",
" dataset[\"LastCheckupTime\"] = dataset[\"LastCheckupTime\"].fillna(\"Unknown\").astype('category') # Potem korzystam z fillna-->median ale nie działa to na kolumnach kategorycznych więc wykonuję to przed konwersją\n",
" dataset[\"PhysicalActivities\"]= dataset[\"PhysicalActivities\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"SleepHours\"].astype(float)\n",
" dataset[\"RemovedTeeth\"] = dataset[\"RemovedTeeth\"].map(defaultdict(lambda: float('NaN'), {\"None of them\":0,\"1 to 5\":1, \"6 or more, but not all\":2, \"All\":3}), na_action='ignore')\n",
" dataset[\"HadHeartAttack\"]= dataset[\"HadHeartAttack\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadAngina\"]= dataset[\"HadAngina\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadStroke\"]= dataset[\"HadStroke\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadAsthma\"]= dataset[\"HadAsthma\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadSkinCancer\"]= dataset[\"HadSkinCancer\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadCOPD\"]= dataset[\"HadCOPD\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadDepressiveDisorder\"]= dataset[\"HadDepressiveDisorder\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadKidneyDisease\"]= dataset[\"HadKidneyDisease\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadArthritis\"]= dataset[\"HadArthritis\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HadDiabetes\"]= dataset[\"HadDiabetes\"].map({\"No\":0,\"Yes, but only during pregnancy (female)\":1,\"No, pre-diabetes or borderline diabetes\":2,\"Yes\":3})\n",
"\n",
" dataset[\"DeafOrHardOfHearing\"]= dataset[\"DeafOrHardOfHearing\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"BlindOrVisionDifficulty\"]= dataset[\"BlindOrVisionDifficulty\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"DifficultyConcentrating\"]= dataset[\"DifficultyConcentrating\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"DifficultyWalking\"]= dataset[\"DifficultyWalking\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"DifficultyDressingBathing\"]= dataset[\"DifficultyDressingBathing\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"DifficultyErrands\"]= dataset[\"DifficultyErrands\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"SmokerStatus\"]= dataset[\"SmokerStatus\"].map({\"Never smoked\":0,\"Current smoker - now smokes some days\":1,\"Former smoker\":2,\"Current smoker - now smokes every day\":3})\n",
" dataset[\"ECigaretteUsage\"]= dataset[\"ECigaretteUsage\"].map({\"Never used e-cigarettes in my entire life\":0,\"Not at all (right now)\":1,\"Use them some days\":2,\"Use them every day\":3})\n",
" dataset[\"ChestScan\"]= dataset[\"ChestScan\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"RaceEthnicityCategory\"] = dataset[\"RaceEthnicityCategory\"].fillna(\"Unknown\").astype('category')\n",
" dataset[\"AgeCategory\"] = dataset[\"AgeCategory\"].fillna(\"Unknown\").astype('category')\n",
" dataset[\"HeightInMeters\"] = dataset[\"HeightInMeters\"].astype(float)\n",
" dataset[\"WeightInKilograms\"] = dataset[\"WeightInKilograms\"].astype(float)\n",
" dataset[\"BMI\"] = dataset[\"BMI\"].astype(float)\n",
" dataset[\"AlcoholDrinkers\"]= dataset[\"AlcoholDrinkers\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"HIVTesting\"]= dataset[\"HIVTesting\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"FluVaxLast12\"]= dataset[\"FluVaxLast12\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"PneumoVaxEver\"]= dataset[\"PneumoVaxEver\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"TetanusLast10Tdap\"]= dataset[\"TetanusLast10Tdap\"].apply(lambda x: float('NaN') if type(x)!=str else 1.0 if 'Yes,' in x else 1.0 if 'No,' in x else float('NaN'))\n",
" dataset[\"HighRiskLastYear\"]= dataset[\"HighRiskLastYear\"].map({\"No\":0,\"Yes\":1})\n",
" dataset[\"CovidPos\"]= dataset[\"CovidPos\"].map({\"No\":0,\"Yes\":1})"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Zbiór test przed zmianą typu danych"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 71,
"outputs": [
{
"data": {
"text/plain": " State Sex GeneralHealth PhysicalHealthDays \\\n276058 New York Male Good 2.0 \n189605 Michigan Female Fair 20.0 \n59234 Delaware Female Very good 0.0 \n255322 New Mexico Male Good 0.0 \n226504 Montana Female Very good 6.0 \n\n MentalHealthDays LastCheckupTime \\\n276058 0.0 Within past 2 years (1 year but less than 2 ye... \n189605 15.0 Within past year (anytime less than 12 months ... \n59234 0.0 Within past year (anytime less than 12 months ... \n255322 0.0 5 or more years ago \n226504 0.0 Within past year (anytime less than 12 months ... \n\n PhysicalActivities SleepHours RemovedTeeth HadHeartAttack ... \\\n276058 NaN 7.0 None of them No ... \n189605 Yes 5.0 All No ... \n59234 Yes 6.0 None of them No ... \n255322 Yes 6.0 None of them No ... \n226504 Yes 8.0 None of them No ... \n\n HeightInMeters WeightInKilograms BMI AlcoholDrinkers HIVTesting \\\n276058 1.55 NaN NaN No No \n189605 1.68 70.31 25.02 No NaN \n59234 1.50 64.41 28.68 No No \n255322 NaN NaN NaN NaN NaN \n226504 1.73 90.72 30.41 Yes No \n\n FluVaxLast12 PneumoVaxEver \\\n276058 No NaN \n189605 Yes Yes \n59234 Yes NaN \n255322 NaN NaN \n226504 No Yes \n\n TetanusLast10Tdap HighRiskLastYear \\\n276058 No, did not receive any tetanus shot in the pa... No \n189605 NaN No \n59234 No, did not receive any tetanus shot in the pa... No \n255322 NaN NaN \n226504 NaN No \n\n CovidPos \n276058 No \n189605 No \n59234 No \n255322 NaN \n226504 Yes \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Sex</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>Male</td>\n <td>Good</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>NaN</td>\n <td>7.0</td>\n <td>None of them</td>\n <td>No</td>\n <td>...</td>\n <td>1.55</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>No</td>\n <td>No</td>\n <td>No</td>\n <td>NaN</td>\n <td>No, did not receive any tetanus shot in the pa...</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>Female</td>\n <td>Fair</td>\n <td>20.0</td>\n <td>15.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>5.0</td>\n <td>All</td>\n <td>No</td>\n <td>...</td>\n <td>1.68</td>\n <td>70.31</td>\n <td>25.02</td>\n <td>No</td>\n <td>NaN</td>\n <td>Yes</td>\n <td>Yes</td>\n <td>NaN</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>Female</td>\n <td>Very good</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>6.0</td>\n <td>None of them</td>\n <td>No</td>\n <td>...</td>\n <td>1.50</td>\n <td>64.41</td>\n <td>28.68</td>\n <td>No</td>\n <td>No</td>\n <td>Yes</td>\n <td>NaN</td>\n <td>No, did not receive any tetanus shot in the pa...</td>\n <td>No</td>\n <td>No</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>Male</td>\n <td>Good</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>Yes</td>\n <td>6.0</td>\n <td>None of them</td>\n <td>No</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>Female</td>\n <td>Very good</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>Yes</td>\n <td>8.0</td>\n <td>None of them</td>\n <td>No</td>\n <td>...</td>\n <td>1.73</td>\n <td>90.72</td>\n <td>30.41</td>\n <td>Yes</td>\n <td>No</td>\n <td>No</td>\n <td>Yes</td>\n <td>NaN</td>\n <td>No</td>\n <td>Yes</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## Zbiór test po zmianie typu danych"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 72,
"outputs": [
{
"data": {
"text/plain": " State Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\n276058 New York 1.0 3.0 2.0 0.0 \n189605 Michigan 0.0 2.0 20.0 15.0 \n59234 Delaware 0.0 4.0 0.0 0.0 \n255322 New Mexico 1.0 3.0 0.0 0.0 \n226504 Montana 0.0 4.0 6.0 0.0 \n\n LastCheckupTime PhysicalActivities \\\n276058 Within past 2 years (1 year but less than 2 ye... NaN \n189605 Within past year (anytime less than 12 months ... 1.0 \n59234 Within past year (anytime less than 12 months ... 1.0 \n255322 5 or more years ago 1.0 \n226504 Within past year (anytime less than 12 months ... 1.0 \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n276058 7.0 0.0 0.0 ... 1.55 \n189605 5.0 3.0 0.0 ... 1.68 \n59234 6.0 0.0 0.0 ... 1.50 \n255322 6.0 0.0 0.0 ... NaN \n226504 8.0 0.0 0.0 ... 1.73 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\n276058 NaN NaN 0.0 0.0 0.0 \n189605 70.31 25.02 0.0 NaN 1.0 \n59234 64.41 28.68 0.0 0.0 1.0 \n255322 NaN NaN NaN NaN NaN \n226504 90.72 30.41 1.0 0.0 0.0 \n\n PneumoVaxEver TetanusLast10Tdap HighRiskLastYear CovidPos \n276058 NaN 1.0 0.0 0.0 \n189605 1.0 NaN 0.0 0.0 \n59234 NaN 1.0 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 1.0 NaN 0.0 1.0 \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>NaN</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.55</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>0.0</td>\n <td>2.0</td>\n <td>20.0</td>\n <td>15.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>5.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.68</td>\n <td>70.31</td>\n <td>25.02</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>0.0</td>\n <td>4.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.50</td>\n <td>64.41</td>\n <td>28.68</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>1.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>0.0</td>\n <td>4.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>8.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.73</td>\n <td>90.72</td>\n <td>30.41</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"normalize_dataset(test)\n",
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 73,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 44513 entries, 276058 to 196692\n",
"Data columns (total 40 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 State 44513 non-null category\n",
" 1 Male 44513 non-null float64 \n",
" 2 GeneralHealth 44380 non-null float64 \n",
" 3 PhysicalHealthDays 43374 non-null float64 \n",
" 4 MentalHealthDays 43620 non-null float64 \n",
" 5 LastCheckupTime 44513 non-null category\n",
" 6 PhysicalActivities 44383 non-null float64 \n",
" 7 SleepHours 43982 non-null float64 \n",
" 8 RemovedTeeth 43364 non-null float64 \n",
" 9 HadHeartAttack 44220 non-null float64 \n",
" 10 HadAngina 44117 non-null float64 \n",
" 11 HadStroke 44352 non-null float64 \n",
" 12 HadAsthma 44348 non-null float64 \n",
" 13 HadSkinCancer 44192 non-null float64 \n",
" 14 HadCOPD 44283 non-null float64 \n",
" 15 HadDepressiveDisorder 44197 non-null float64 \n",
" 16 HadKidneyDisease 44342 non-null float64 \n",
" 17 HadArthritis 44231 non-null float64 \n",
" 18 HadDiabetes 44377 non-null float64 \n",
" 19 DeafOrHardOfHearing 42456 non-null float64 \n",
" 20 BlindOrVisionDifficulty 42338 non-null float64 \n",
" 21 DifficultyConcentrating 42066 non-null float64 \n",
" 22 DifficultyWalking 42090 non-null float64 \n",
" 23 DifficultyDressingBathing 42111 non-null float64 \n",
" 24 DifficultyErrands 41923 non-null float64 \n",
" 25 SmokerStatus 40967 non-null float64 \n",
" 26 ECigaretteUsage 40964 non-null float64 \n",
" 27 ChestScan 38930 non-null float64 \n",
" 28 RaceEthnicityCategory 44513 non-null category\n",
" 29 AgeCategory 44513 non-null category\n",
" 30 HeightInMeters 41634 non-null float64 \n",
" 31 WeightInKilograms 40303 non-null float64 \n",
" 32 BMI 39648 non-null float64 \n",
" 33 AlcoholDrinkers 39882 non-null float64 \n",
" 34 HIVTesting 37870 non-null float64 \n",
" 35 FluVaxLast12 39814 non-null float64 \n",
" 36 PneumoVaxEver 36760 non-null float64 \n",
" 37 TetanusLast10Tdap 36287 non-null float64 \n",
" 38 HighRiskLastYear 39445 non-null float64 \n",
" 39 CovidPos 38063 non-null float64 \n",
"dtypes: category(4), float64(36)\n",
"memory usage: 12.7 MB\n"
]
}
],
"source": [
"test.info()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 74,
"outputs": [],
"source": [
"normalize_dataset(train)\n",
"normalize_dataset(valid)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## Statystyki dla zbiorów po zamianie na kolumny numeryczne\n",
"\n",
"*50. centyl to mediana*"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 75,
"outputs": [
{
"data": {
"text/plain": " Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\ncount 676617.000000 674189.000000 655653.000000 660103.000000 \nmean 0.539397 3.056503 6.720248 4.819231 \nstd 0.498446 1.138185 10.708463 9.058480 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 0.000000 2.000000 0.000000 0.000000 \n50% 1.000000 3.000000 0.000000 0.000000 \n75% 1.000000 4.000000 10.000000 5.000000 \nmax 1.000000 5.000000 30.000000 30.000000 \n\n PhysicalActivities SleepHours RemovedTeeth HadHeartAttack \\\ncount 674547.000000 665806.000000 654146.000000 674184.000000 \nmean 0.689765 7.039463 0.978094 0.505120 \nstd 0.462590 1.726591 1.017700 0.499974 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 0.000000 6.000000 0.000000 0.000000 \n50% 1.000000 7.000000 1.000000 1.000000 \n75% 1.000000 8.000000 2.000000 1.000000 \nmax 1.000000 24.000000 3.000000 1.000000 \n\n HadAngina HadStroke ... HeightInMeters WeightInKilograms \\\ncount 657382.000000 672884.000000 ... 637479.000000 620141.000000 \nmean 0.264342 0.116472 ... 1.707316 84.660193 \nstd 0.440983 0.320790 ... 0.108041 21.748490 \nmin 0.000000 0.000000 ... 0.910000 22.680000 \n25% 0.000000 0.000000 ... 1.630000 69.400000 \n50% 0.000000 0.000000 ... 1.700000 81.650000 \n75% 1.000000 0.000000 ... 1.780000 96.160000 \nmax 1.000000 1.000000 ... 2.410000 292.570000 \n\n BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\ncount 611530.000000 607591.000000 573999.000000 606624.000000 \nmean 28.918429 0.455838 0.326018 0.571211 \nstd 6.631906 0.498046 0.468754 0.494903 \nmin 12.020000 0.000000 0.000000 0.000000 \n25% 24.410000 0.000000 0.000000 0.000000 \n50% 27.890000 0.000000 0.000000 1.000000 \n75% 32.220000 1.000000 1.000000 1.000000 \nmax 99.640000 1.000000 1.000000 1.000000 \n\n PneumoVaxEver TetanusLast10Tdap HighRiskLastYear CovidPos \ncount 571259.000000 554407.0 601115.000000 585931.000000 \nmean 0.527326 1.0 0.034534 0.273136 \nstd 0.499253 0.0 0.182597 0.445571 \nmin 0.000000 1.0 0.000000 0.000000 \n25% 0.000000 1.0 0.000000 0.000000 \n50% 1.000000 1.0 0.000000 0.000000 \n75% 1.000000 1.0 0.000000 1.000000 \nmax 1.000000 1.0 1.000000 1.000000 \n\n[8 rows x 36 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>HadAngina</th>\n <th>HadStroke</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>676617.000000</td>\n <td>674189.000000</td>\n <td>655653.000000</td>\n <td>660103.000000</td>\n <td>674547.000000</td>\n <td>665806.000000</td>\n <td>654146.000000</td>\n <td>674184.000000</td>\n <td>657382.000000</td>\n <td>672884.000000</td>\n <td>...</td>\n <td>637479.000000</td>\n <td>620141.000000</td>\n <td>611530.000000</td>\n <td>607591.000000</td>\n <td>573999.000000</td>\n <td>606624.000000</td>\n <td>571259.000000</td>\n <td>554407.0</td>\n <td>601115.000000</td>\n <td>585931.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>0.539397</td>\n <td>3.056503</td>\n <td>6.720248</td>\n <td>4.819231</td>\n <td>0.689765</td>\n <td>7.039463</td>\n <td>0.978094</td>\n <td>0.505120</td>\n <td>0.264342</td>\n <td>0.116472</td>\n <td>...</td>\n <td>1.707316</td>\n <td>84.660193</td>\n <td>28.918429</td>\n <td>0.455838</td>\n <td>0.326018</td>\n <td>0.571211</td>\n <td>0.527326</td>\n <td>1.0</td>\n <td>0.034534</td>\n <td>0.273136</td>\n </tr>\n <tr>\n <th>std</th>\n <td>0.498446</td>\n <td>1.138185</td>\n <td>10.708463</td>\n <td>9.058480</td>\n <td>0.462590</td>\n <td>1.726591</td>\n <td>1.017700</td>\n <td>0.499974</td>\n <td>0.440983</td>\n <td>0.320790</td>\n <td>...</td>\n <td>0.108041</td>\n <td>21.748490</td>\n <td>6.631906</td>\n <td>0.498046</td>\n <td>0.468754</td>\n <td>0.494903</td>\n <td>0.499253</td>\n <td>0.0</td>\n <td>0.182597</td>\n <td>0.445571</td>\n </tr>\n <tr>\n <th>min</th>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>0.910000</td>\n <td>22.680000</td>\n <td>12.020000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>0.000000</td>\n <td>2.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>6.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.630000</td>\n <td>69.400000</td>\n <td>24.410000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>1.000000</td>\n <td>3.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>7.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.700000</td>\n <td>81.650000</td>\n <td>27.890000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>1.000000</td>\n <td>4.000000</td>\n <td>10.000000</td>\n <td>5.000000</td>\n <td>1.000000</td>\n <td>8.000000</td>\n <td>2.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.780000</td>\n <td>96.160000</td>\n <td>32.220000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>1.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>1.000000</td>\n <td>5.000000</td>\n <td>30.000000</td>\n <td>30.000000</td>\n <td>1.000000</td>\n <td>24.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>...</td>\n <td>2.410000</td>\n <td>292.570000</td>\n <td>99.640000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.0</td>\n <td>1.000000</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n<p>8 rows × 36 columns</p>\n</div>"
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train.describe()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 76,
"outputs": [
{
"data": {
"text/plain": " Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\ncount 44513.000000 44380.000000 43374.000000 43620.000000 \nmean 0.467347 3.433551 4.304353 4.470839 \nstd 0.498938 1.049691 8.629763 8.472884 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 0.000000 3.000000 0.000000 0.000000 \n50% 0.000000 3.000000 0.000000 0.000000 \n75% 1.000000 4.000000 3.000000 5.000000 \nmax 1.000000 5.000000 30.000000 30.000000 \n\n PhysicalActivities SleepHours RemovedTeeth HadHeartAttack \\\ncount 44383.000000 43982.000000 43364.000000 44220.000000 \nmean 0.759119 7.012414 0.687644 0.058684 \nstd 0.427623 1.493726 0.883372 0.235035 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 1.000000 6.000000 0.000000 0.000000 \n50% 1.000000 7.000000 0.000000 0.000000 \n75% 1.000000 8.000000 1.000000 0.000000 \nmax 1.000000 24.000000 3.000000 1.000000 \n\n HadAngina HadStroke ... HeightInMeters WeightInKilograms \\\ncount 44117.000000 44352.000000 ... 41634.000000 40303.000000 \nmean 0.060816 0.043155 ... 1.701734 82.990520 \nstd 0.238994 0.203208 ... 0.106604 21.462338 \nmin 0.000000 0.000000 ... 0.910000 22.680000 \n25% 0.000000 0.000000 ... 1.630000 68.040000 \n50% 0.000000 0.000000 ... 1.700000 80.740000 \n75% 0.000000 0.000000 ... 1.780000 95.250000 \nmax 1.000000 1.000000 ... 2.260000 276.240000 \n\n BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\ncount 39648.000000 39882.000000 37870.000000 39814.000000 \nmean 28.545288 0.532621 0.342382 0.526348 \nstd 6.574508 0.498941 0.474513 0.499312 \nmin 12.690000 0.000000 0.000000 0.000000 \n25% 24.130000 0.000000 0.000000 0.000000 \n50% 27.440000 1.000000 0.000000 1.000000 \n75% 31.750000 1.000000 1.000000 1.000000 \nmax 97.650000 1.000000 1.000000 1.000000 \n\n PneumoVaxEver TetanusLast10Tdap HighRiskLastYear CovidPos \ncount 36760.00000 36287.0 39445.000000 38063.000000 \nmean 0.41420 1.0 0.043174 0.293461 \nstd 0.49259 0.0 0.203251 0.455354 \nmin 0.00000 1.0 0.000000 0.000000 \n25% 0.00000 1.0 0.000000 0.000000 \n50% 0.00000 1.0 0.000000 0.000000 \n75% 1.00000 1.0 0.000000 1.000000 \nmax 1.00000 1.0 1.000000 1.000000 \n\n[8 rows x 36 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>HadAngina</th>\n <th>HadStroke</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>44513.000000</td>\n <td>44380.000000</td>\n <td>43374.000000</td>\n <td>43620.000000</td>\n <td>44383.000000</td>\n <td>43982.000000</td>\n <td>43364.000000</td>\n <td>44220.000000</td>\n <td>44117.000000</td>\n <td>44352.000000</td>\n <td>...</td>\n <td>41634.000000</td>\n <td>40303.000000</td>\n <td>39648.000000</td>\n <td>39882.000000</td>\n <td>37870.000000</td>\n <td>39814.000000</td>\n <td>36760.00000</td>\n <td>36287.0</td>\n <td>39445.000000</td>\n <td>38063.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>0.467347</td>\n <td>3.433551</td>\n <td>4.304353</td>\n <td>4.470839</td>\n <td>0.759119</td>\n <td>7.012414</td>\n <td>0.687644</td>\n <td>0.058684</td>\n <td>0.060816</td>\n <td>0.043155</td>\n <td>...</td>\n <td>1.701734</td>\n <td>82.990520</td>\n <td>28.545288</td>\n <td>0.532621</td>\n <td>0.342382</td>\n <td>0.526348</td>\n <td>0.41420</td>\n <td>1.0</td>\n <td>0.043174</td>\n <td>0.293461</td>\n </tr>\n <tr>\n <th>std</th>\n <td>0.498938</td>\n <td>1.049691</td>\n <td>8.629763</td>\n <td>8.472884</td>\n <td>0.427623</td>\n <td>1.493726</td>\n <td>0.883372</td>\n <td>0.235035</td>\n <td>0.238994</td>\n <td>0.203208</td>\n <td>...</td>\n <td>0.106604</td>\n <td>21.462338</td>\n <td>6.574508</td>\n <td>0.498941</td>\n <td>0.474513</td>\n <td>0.499312</td>\n <td>0.49259</td>\n <td>0.0</td>\n <td>0.203251</td>\n <td>0.455354</td>\n </tr>\n <tr>\n <th>min</th>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>0.910000</td>\n <td>22.680000</td>\n <td>12.690000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.00000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>0.000000</td>\n <td>3.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>6.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.630000</td>\n <td>68.040000</td>\n <td>24.130000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.00000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>0.000000</td>\n <td>3.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>7.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.700000</td>\n <td>80.740000</td>\n <td>27.440000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.00000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>1.000000</td>\n <td>4.000000</td>\n <td>3.000000</td>\n <td>5.000000</td>\n <td>1.000000</td>\n <td>8.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.780000</td>\n <td>95.250000</td>\n <td>31.750000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.00000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>1.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>1.000000</td>\n <td>5.000000</td>\n <td>30.000000</td>\n <td>30.000000</td>\n <td>1.000000</td>\n <td>24.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>...</td>\n <td>2.260000</td>\n <td>276.240000</td>\n <td>97.650000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.00000</td>\n <td>1.0</td>\n <td>1.000000</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n<p>8 rows × 36 columns</p>\n</div>"
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.describe()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 77,
"outputs": [
{
"data": {
"text/plain": " Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\ncount 44514.000000 44405.000000 43450.000000 43622.000000 \nmean 0.466887 3.427835 4.354799 4.398171 \nstd 0.498908 1.056506 8.691768 8.406697 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 0.000000 3.000000 0.000000 0.000000 \n50% 0.000000 3.000000 0.000000 0.000000 \n75% 1.000000 4.000000 3.000000 5.000000 \nmax 1.000000 5.000000 30.000000 30.000000 \n\n PhysicalActivities SleepHours RemovedTeeth HadHeartAttack \\\ncount 44421.000000 43955.000000 43350.000000 44175.000000 \nmean 0.760271 7.031760 0.684060 0.056163 \nstd 0.426923 1.513703 0.881616 0.230239 \nmin 0.000000 1.000000 0.000000 0.000000 \n25% 1.000000 6.000000 0.000000 0.000000 \n50% 1.000000 7.000000 0.000000 0.000000 \n75% 1.000000 8.000000 1.000000 0.000000 \nmax 1.000000 24.000000 3.000000 1.000000 \n\n HadAngina HadStroke ... HeightInMeters WeightInKilograms \\\ncount 44060.000000 44339.000000 ... 41591.000000 40226.000000 \nmean 0.060236 0.043506 ... 1.702198 83.013436 \nstd 0.237926 0.203995 ... 0.107066 21.464497 \nmin 0.000000 0.000000 ... 0.910000 22.680000 \n25% 0.000000 0.000000 ... 1.630000 68.040000 \n50% 0.000000 0.000000 ... 1.700000 80.740000 \n75% 0.000000 0.000000 ... 1.780000 95.250000 \nmax 1.000000 1.000000 ... 2.360000 284.860000 \n\n BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\ncount 39516.000000 39789.000000 37856.000000 39749.000000 \nmean 28.522226 0.529945 0.340501 0.522831 \nstd 6.564679 0.499109 0.473884 0.499485 \nmin 12.190000 0.000000 0.000000 0.000000 \n25% 24.130000 0.000000 0.000000 0.000000 \n50% 27.440000 1.000000 0.000000 1.000000 \n75% 31.750000 1.000000 1.000000 1.000000 \nmax 96.200000 1.000000 1.000000 1.000000 \n\n PneumoVaxEver TetanusLast10Tdap HighRiskLastYear CovidPos \ncount 36681.000000 36210.0 39453.000000 38058.000000 \nmean 0.414983 1.0 0.045903 0.290609 \nstd 0.492726 0.0 0.209277 0.454049 \nmin 0.000000 1.0 0.000000 0.000000 \n25% 0.000000 1.0 0.000000 0.000000 \n50% 0.000000 1.0 0.000000 0.000000 \n75% 1.000000 1.0 0.000000 1.000000 \nmax 1.000000 1.0 1.000000 1.000000 \n\n[8 rows x 36 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>HadAngina</th>\n <th>HadStroke</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>count</th>\n <td>44514.000000</td>\n <td>44405.000000</td>\n <td>43450.000000</td>\n <td>43622.000000</td>\n <td>44421.000000</td>\n <td>43955.000000</td>\n <td>43350.000000</td>\n <td>44175.000000</td>\n <td>44060.000000</td>\n <td>44339.000000</td>\n <td>...</td>\n <td>41591.000000</td>\n <td>40226.000000</td>\n <td>39516.000000</td>\n <td>39789.000000</td>\n <td>37856.000000</td>\n <td>39749.000000</td>\n <td>36681.000000</td>\n <td>36210.0</td>\n <td>39453.000000</td>\n <td>38058.000000</td>\n </tr>\n <tr>\n <th>mean</th>\n <td>0.466887</td>\n <td>3.427835</td>\n <td>4.354799</td>\n <td>4.398171</td>\n <td>0.760271</td>\n <td>7.031760</td>\n <td>0.684060</td>\n <td>0.056163</td>\n <td>0.060236</td>\n <td>0.043506</td>\n <td>...</td>\n <td>1.702198</td>\n <td>83.013436</td>\n <td>28.522226</td>\n <td>0.529945</td>\n <td>0.340501</td>\n <td>0.522831</td>\n <td>0.414983</td>\n <td>1.0</td>\n <td>0.045903</td>\n <td>0.290609</td>\n </tr>\n <tr>\n <th>std</th>\n <td>0.498908</td>\n <td>1.056506</td>\n <td>8.691768</td>\n <td>8.406697</td>\n <td>0.426923</td>\n <td>1.513703</td>\n <td>0.881616</td>\n <td>0.230239</td>\n <td>0.237926</td>\n <td>0.203995</td>\n <td>...</td>\n <td>0.107066</td>\n <td>21.464497</td>\n <td>6.564679</td>\n <td>0.499109</td>\n <td>0.473884</td>\n <td>0.499485</td>\n <td>0.492726</td>\n <td>0.0</td>\n <td>0.209277</td>\n <td>0.454049</td>\n </tr>\n <tr>\n <th>min</th>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>0.910000</td>\n <td>22.680000</td>\n <td>12.190000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>25%</th>\n <td>0.000000</td>\n <td>3.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>6.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.630000</td>\n <td>68.040000</td>\n <td>24.130000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>50%</th>\n <td>0.000000</td>\n <td>3.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>7.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.700000</td>\n <td>80.740000</td>\n <td>27.440000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>75%</th>\n <td>1.000000</td>\n <td>4.000000</td>\n <td>3.000000</td>\n <td>5.000000</td>\n <td>1.000000</td>\n <td>8.000000</td>\n <td>1.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>...</td>\n <td>1.780000</td>\n <td>95.250000</td>\n <td>31.750000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.0</td>\n <td>0.000000</td>\n <td>1.000000</td>\n </tr>\n <tr>\n <th>max</th>\n <td>1.000000</td>\n <td>5.000000</td>\n <td>30.000000</td>\n <td>30.000000</td>\n <td>1.000000</td>\n <td>24.000000</td>\n <td>3.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>...</td>\n <td>2.360000</td>\n <td>284.860000</td>\n <td>96.200000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.000000</td>\n <td>1.0</td>\n <td>1.000000</td>\n <td>1.000000</td>\n </tr>\n </tbody>\n</table>\n<p>8 rows × 36 columns</p>\n</div>"
},
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid.describe()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"#### Wydaje się być korelacja między masą ciała i zawałem:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 78,
"outputs": [
{
"data": {
"text/plain": "<Figure size 729.847x600 with 1 Axes>",
"image/png": "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RYx7PsOTjRs3TpGRkTfdHxkZqXHjxuX7OKdOnVKtWrW0YcOGPNdSGNLT0zVz5kxt3rw5333t379fzz77rNO2BQsWFMjS2Vq1aumNN95waZ+5DsMzZ87Uhx9+qGrVqsnLy0uBgYGqX7++MjIylJCQoOnTp7u0QACAe+Cez0DxERsbq+XLlyszMzPffa1bt06//vqr07Z58+YpJSUl330XhlyH4V27dmno0KF666239MQTTygsLExz587VP//5T9WqVUvHjh0riDq1adMmtW/fXvXr11eHDh302WefOfadOnVKAwYMUOPGjdWiRQvNnTtXWVlZBVIHAJgV93wGUBzlOgwnJCSoUaNGkqQaNWrohx9+kCSVLFlSzzzzjL766iuXFihJH330kSZMmKCnn35an376qTp27KiRI0fq4MGDysjIUN++fSVJa9as0dSpU/X+++/rzTffdHkdAADAHFJTU/Xqq6+qbdu2qlevnho3bqw+ffroyJEjTu22bdumRx55RA0aNFDnzp119OjRHB9jw4YNateunerXr69HHnlEO3fudNp/5swZjRw5UhEREQoPD1evXr10+PBhpzanTp3SmDFj1KJFC9WtW1fNmzfXmDFjdOXKFUebyMhIzZw5U7169VKDBg3Uu3dvtW7dWpI0fvz4Wy7ZuHz5sqZNm6YHH3xQ9erVU0REhAYPHqxTp05JurbkY+PGjTp9+rRjeUitWrUkSVFRUY7XkrR9+3Y99dRTatSokerVq6eHH35Yq1atcjpebGysxo4dq+bNm6tRo0bq3r27Dh48eNP65s+frzp16mjjxo23eqtvKdcX0AUFBenq1auSpOrVq+vSpUuKi4tTmTJlFBoaqvPnz+e5mBux2+2aN2+eevbsqaefflqSNHDgQEVHR2vv3r06ffq0zpw5ow8++EClS5dWzZo1denSJf3jH//Qc889J6vV6tJ6AACA58rpsoAxY8YoOjpaI0eOVNWqVXXixAnNmzdPL7zwgj799FMZhqEdO3Zo2LBh6tSpk0aPHq0jR45o9OjROer/7NmzWrx4sZ5//nmVKFFCr7/+uoYNG6YdO3YoJCREly9fVrdu3eTv769JkybJ399fy5cv19NPP60PP/xQNWrUUEpKinr27KmgoCBNmTJFgYGBOnjwoKKiouTn5+e0dHXVqlXq06eP+vfvL6vVqqefflpD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tVlsi8UiiyX7zcn+vG3//v164okndN99/7tH+ddff+3oR5KaNGmibdu26ZdfftHdd197emFaWpqGDh2qRx55RGPHjpV0bbmLYRiaOnWqunbtqldffVVTpky57fncTK7D8Jw5c7RkyRIFBARkW54gKUczqrlRt25dlSxZUocOHXJMp0vSzz//rKpVq6pp06batGmTEhMTHf+z7N692/Erjbyw2eyy2W79IbNYDNntdtn++5UfVr/SykxPdLzOb3+SZLPbZZdddlv+6ysI1943SVm2277XOeHK8SgIjId7cefxYCzcizuPB393FFx9devWlbe3t1555RU988wzSk9P14YNGxy3j01OTpYkjRw5Ur169dKQIUP0xBNPKCYmRgsXLnRJDb1799ZHH32k3r1765lnnlFQUJC2bNmiDz74QOPHj5ckNWjQQO+//75mz56tBx98ULGxsVq6dKkuXrzodGOBG7kebr/99lvVqFHjhtdYNWjQQJI0ffp0de3aVfHx8Vq1apXj9nHJycmOPHjx4kXt3LlTderUUfny5VWqVCkdOHBA+/btU5MmTdSgQQNt3rxZdevWVVhYmA4cOKDFixfLMAzHwzm6dOmi9957TwMHDtSwYcMUFBSkFStWKCMjQ0899VS2+mrXrq1evXrpnXfeUadOndS4ceM8vde5vs/wxo0b9dRTTyk6Olo7duzI9vXFF1/kqZCb8fPzU79+/fTmm2/qk08+0e+//6633npL33zzjfr06aM2bdqoXLlyGj58uI4ePart27frtdde0zPPPOMxt1XjqU4AgNzi746CU61aNb366qs6f/68Bg4cqMmTJ0uS3nvvPRmGoejoaEnXZjLffvttnT9/XkOGDNHatWtd9tvx0NBQrVmzRpUqVdLUqVP13HPP6fvvv9eMGTPUu3dvSVLnzp01ePBgffbZZ+rfv7/mz5+vJk2aaPr06YqLi8v2VLg/CggIUJ8+fbR9+3b1799fGRnZfxNw3333afLkyTp48KD69++v2bNnq2LFioqKipIkx1KJLl26qFKlSho8eLA2bdokSXruuef0ww8/qH///jp79qxmz56t8PBwvfjiixo8eLC++OILTZs2TS1atHC8nwEBAVq5cqWj3fDhw2Wz2bRixQrH3TL+bOjQoapYsaImTpyY64v6rjPsufy9T5MmTRQVFaVmzZrl6YB59e6772rlypU6f/68atSooaFDh6pNmzaSpBMnTmjatGmKjo5W6dKl9dhjj2no0KE3nLbPiQsXrt62jcViKC4hWUtW/0tX4pLzdJyCVL1qiPp0qqVfPluj1KtXbv8Dhcw3sIzu6dhdKhHistkWxiPvGA/3wVi4F8bDveRmPMqVCyykquDpcr1Mom3bttq+fXuhh+E+ffqoT58+N9xXrVo1vfPOO4VaDwAAADxfrsPw3//+dz3++OPq0aOHGjRoIH9/f6f9hmG4/F7DAAAAQEHIdRh+7733FBMTo5iYGO3bty/bfsIwAAAAPEWuw/DKlSvVqVMnjRs3Lkc3RgYAAADcVa6vMEtOTtZjjz1GEAYAAIDHy3UY/stf/qI9e/YURC0AAABAocr1MolHHnlEkyZN0okTJ9SoUaMbPv7u0UcfdUVtAAAAQIHKdRh+/vnnJUmffvqpPv3002z7DcMgDAMAAMAj5DoMu/oJcwAAAEBRyXUYrlSpUkHUAQAAABS6XIdhAAAA3F5cfLISElML/bilAvxUpnSJXP+czWZTVFSU1q1bp6tXr6pp06aaPHmyqlSpcsP2V65c0UsvvaSvv/5ahmGoQ4cOGjNmTLYHsrk7wjAAAEABSEhM1fpP9iv+auEF4tKBfura8d48heEFCxZo9erVmj17tsLCwvTKK6+oX79+2rx5s6xWa7b2w4YNU0pKipYtW6aEhARNmDBBycnJevnll11xKoWGMAwAAFBA4q+mKi4+uajLuK309HS98847GjVqlFq1aiVJev3113X//fdr27Zt6tixo1P7gwcPau/evdqyZYtq1KghSZo+fbr69eunkSNHKjQ0tLBPIc9yfZ9hAAAAFC9Hjx5VUlKSmjdv7thWqlQp3XPPPdq3b1+29tHR0SpXrpwjCEtSRESEDMPQ/v37C6VmV8l1GO7bt6+2bNmi9PT0gqgHAAAAhezcuXOSpAoVKjhtL1++vGPfH50/fz5bW6vVqjJlyujs2bMFV2gByPUyiaysLI0aNUoBAQFq3769unTpogYNGhREbQAAACgEKSkpkpRtbbCvr6/i4+Nv2P5G64h9fX2VlpZWMEUWkFyH4WXLluncuXPatGmTNm3apDVr1qhGjRrq3Lmz/vrXv6pcuXIFUScAAAAKiJ+fn6Rra4evv5aktLS0G94dws/P74arBNLS0lSiRO4v3itKeVozHBYWpueee07//Oc/9f7776tFixZau3atHnzwQT333HP68ssvXV0nAAAACsj1JQ+xsbFO22NjY294MVxYWFi2tunp6YqLi1P58uULrtACkO8L6Ox2u2w2mzIzM2W32xUbG6shQ4aoU6dO+vnnn11RIwAAAApQ7dq1FRAQoD179ji2JSQk6PDhw2ratGm29k2bNtW5c+d04sQJx7a9e/dKku69996CL9iF8nRrtZMnT+qjjz7Sxx9/rJMnT6pKlSp64okn1LlzZ4WGhur8+fPq37+/XnjhBW3evNnVNQMAAHiE0oF+t2/kBsezWq3q3r275syZo+DgYFWqVEmvvPKKwsLC1LZtW2VlZeny5csKDAyUn5+fwsPD1bhxY40YMUJTp05VcnKyJk+erEcffdSjbqsm5SEMd+vWTYcOHZKvr6/atm2rl156SREREU5tQkND1bZtWy1btsxVdQIAAHiUUgHXHoBRFMfNi2HDhikzM1MTJ05UamqqmjZtqqVLl8rHx0enTp1S69atNWvWLHXp0kWGYSgqKkrTpk1Tr1695Ovrq4cffljjx4938dkUvFyH4czMTE2ZMkUdO3ZUQEDATdu1adNG999/f76KAwAA8FRlSpfI05PgioqXl5dGjx6t0aNHZ9tXuXJl/fTTT07bQkJCNH/+/MIqr8DkOgx/+OGHOWpXu3btXBcDAAAAFKYcheGoqKhcdTpkyJA8FQMAAAAUpjyFYcMwZLfb5eXlpaCgIMXHxysjI0M+Pj4qXbo0YRgAAAAeIUdh+OjRo47X3377rUaOHKlJkyapXbt28vLykiR9/fXXmjBhgsaNG1cwlQIAAAAuluv7DE+fPl3Dhg1T+/btHUFYklq2bKnnn39er7/+uksLBAAAAApKrsPw2bNnValSpRvuCwkJ0aVLl/JdFAAAAFAYch2Ga9eurVWrVikrK8tpe1pampYsWaIGDRq4rDgAAACgIOX61mojR45U3759HfcRDgoK0sWLF7Vz506lpKRo5cqVBVEnAAAA4HK5DsMRERFas2aNFi1apB07diguLk5BQUH6y1/+osGDB6tatWoFUScAAADgcrkOw5JUt27dYvHEEQAAgIKSlhiv9KTEQj+utWSAfANK56uPRYsW6V//+pfee++9m7a5cuWKXnrpJX399dcyDEMdOnTQmDFj5O/vn69jF7Y8heH0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vmn7U6dOacCAAWrcuLFatGihuXPnKisrqxArLt4uXbqk0aNHq1mzZmrUqJGeffZZ/frrrzdtz+ejcMTExKhRo0basGHDTdswFgXr/PnzqlWrVravm40J4wEzKBZPoDOzVatWae7cuWrSpMkt2w0bNkwpKSlatmyZEhISNGHCBCUnJ+vll18upEqLt5EjR+rChQt67bXXFBISovfee099+/bVxo0bdeeddzq1zcjIUN++fVW9enWtWbNGv//+uyZMmCCLxaJhw4YV0RkUL4MHD5bNZtPixYtVsmRJzZs3T71799a2bdvk7++frT2fj4KXkZGhUaNGKTk5+ZbtGIuCdfToUfn6+mr79u0yDMOxPTAw8IbtGQ+Ygh0e6dy5c/YBAwbYGzZsaH/44Yft3bt3v2nbAwcO2GvWrGk/duyYY9uuXbvstWrVsp87d64wyi3WfvvtN3vNmjXt0dHRjm02m83epk0b+9y5c7O137x5s71evXr2uLg4x7Y1a9bYGzdubE9LSyuUmouzuLg4+8iRI+0//fSTY9uRI0fsNWvWtB86dChbez4fhePVV1+19+zZ016zZk37+vXrb9iGsSh4ixcvtnfq1ClHbRkPmAXLJDzUjz/+KB8fH3388ccKDw+/Zdvo6GiVK1dONWrUcGyLiIiQYRjav39/QZda7AUFBWnx4sWqX7++Y5thGDIMQwkJCdnaR0dHq27duipdurRjW7NmzZSYmKgjR44USs3FWenSpfXqq6+qZs2akqTLly9r2bJlCgsL01133ZWtPZ+Pgrdv3z6tXbtWs2fPvmU7xqLg/fTTT07v760wHjALlkl4qMjISEVGRuao7fnz51WhQgWnbVarVWXKlNHZs2cLojxTKVWqlB544AGnbVu3btWJEyf097//PVv7c+fOKSwszGlb+fLlJUlnz5697T9ukHOTJk3SBx98IKvVqrfeekslSpTI1obPR8FKSEjQmDFjNHHixGzv858xFgXv559/VlBQkJ5++mnFxMSoWrVqGjhwoFq2bJmtLeMBs2Bm2ARSUlJktVqzbff19VVaWloRVFS8HThwQOPHj1fbtm3VqlWrbPtTU1OzjYevr68kMR4u1qtXL61fv14dO3bU4MGD9eOPP2Zrw+ejYE2dOlWNGjVSp06dbtuWsShYmZmZOn78uOLj4zV06FAtXrxYDRs21LPPPqtvv/02W3vGA2bBzLAJ+Pn5KT09Pdv2tLS0G86UIe+2b9+uUaNGqXHjxpozZ84N29xoPK7/xcJ4uNb1ZREzZszQoUOHtHLlSs2aNcupDZ+PgrNp0yZFR0dr8+bNOWrPWBQsb29v7dmzR15eXvLz85Mk1atXT7/88ouWLl2q5s2bO7VnPGAWzAybQFhYmGJjY522paenKy4uzvHreeTfypUrNXToUD344INauHChY7b3z240Hte/Dw0NLfA6i7vLly/r008/VWZmpmObxWLRXXfdle19l/h8FKT169fr0qVLatWqlRo1aqRGjRpJkqZMmaJ+/fpla89YFLySJUs6gvB1d999t86fP5+tLeMBsyAMm0DTpk117tw5nThxwrFt7969kqR77723qMoqVlavXq0XX3xRTz/9tF577bUb/mrxuqZNm+rw4cNKTEx0bNu9e7dKliyp2rVrF0a5xdrFixc1cuRIp1/7ZmRk6PDhwze8cIjPR8GZM2eOtmzZok2bNjm+pGu365oxY0a29oxFwfrll1/UuHFj7dmzx2n7Dz/8cMOLSxkPmAVhuBjKysrShQsXlJqaKkkKDw9X48aNNWLECH3//ffavXu3Jk+erEcffZSZSBeIiYnRzJkz9dBDD2nAgAG6ePGiLly4oAsXLujq1atKT0/XhQsXHL9ubNOmjcqVK6fhw4fr6NGj2r59u1577TU988wztwzRyJmaNWuqZcuWeumll7Rv3z79/PPPGjdunBISEtS7d28+H4UoNDRU1apVc/qSpJCQEIWGhjIWhaxGjRq68847NX36dEVHR+vXX3/VrFmz9N1332ngwIGMB0yLMFwMnT17Vi1atNCWLVskXbvNV1RUlCpXrqxevXpp+PDhatmypaZOnVq0hRYTW7duVUZGhj7//HO1aNHC6WvGjBk6ePCgWrRooYMHD0q6dvHJkiVLZLPZ9Le//U3Tpk3TU089pUGDBhXxmRQfr732mpo3b64RI0bo8ccfV1xcnFatWqWKFSvy+XAjjEXhslgsWrhwoRo0aKDhw4erc+fOOnTokN59913VrFmT8YBpGXa73V7URQAAAABFgZlhAAAAmBZhGAAAAKZFGAYAAIBpEYYBAABgWoRhAAAAmBZhGAAAAKZFGAYAF+AulQDgmQjDQDHz66+/6sUXX1S7du0UHh6ue++9V926ddPq1auVmZlZ1OXlyRtvvKFatWrddP+pU6dUq1YtbdiwoUjq2b9/v5599tl817Nnzx7VqlUr2+Ny86JHjx7q0aNHvvsBgOLOu6gLAOA6W7Zs0fjx41WjRg316dNHd9xxh1JTU7Vz507NnDlTu3bt0oIFC2QYRlGXWqysW7dOv/76a777qVu3rtauXau77rrLBVUBAHKCMAwUE7/++qvGjx+v+++/X3PnzpW39/8+3g888IDuu+8+DRs2TJ999pnat29fhJXiZgICAtSwYcOiLgMATIVlEkAxsWTJElksFk2bNs0pCF/Xrl07Pfroo07bbDabFi9erIceekj16tVTu3bt9N577zm16dGjhyZMmKDFixerVatWql+/vrp166bvv//eqd3PP/+sAQMGqHHjxmrcuLEGDx6skydPOvZfXwKwZs0aPfjgg2rcuLG++eYbSddmVrt06aKGDRuqQYMG+utf/6rPPvss1+/BhQsXNGzYMDVq1EgRERGaNGmSkpKSnNqsW7dOHTp0UL169dSqVSu98cYbysrKytYmp/WMGzdOGzdu1OnTp7MtjchJPX/052USb7zxhh566CF99dVX6tSpk2OMNm3a5PRzZ86c0ZAhQ3Tvvffq//2//6d33333hv3f6tzPnj2re++912lpRVpamtq3b68OHTooLS3tpnUDgCcjDAPFxBdffKFmzZopJCTkpm1efvllp1nhqVOnav78+XrkkUe0cOFCPfzww5o5c6befPNNp5/bunWrvvjiC02cOFGvvfaaLl68qKFDhzqCVExMjLp166ZLly7p5Zdf1owZM3Ty5Ek9+eSTunTpklNfUVFRGjt2rCZPnqxGjRpp1apVmjx5stq0aaNFixZpzpw5slqtGjVqlM6dO5er92DevHmqUKGCFixYoF69eumDDz5QVFSUY/+iRYs0adIkNW/eXAsXLtTTTz+tt99+W5MmTXK0yW09gwYN0gMPPKBy5cpp7dq1atWqVY7ryYkLFy5o+vTp6tmzpxYvXqzKlStr7NixjmUZycnJ6t69u37++We9+OKLmjRpktatW6eDBw869XO7c69QoYLGjRunvXv3av369ZKkV199Vb///rteffVV+fr65qpuAPAULJMAioH4+HjFx8erevXq2fb9+aI5wzDk5eWlmJgYffDBBxo5cqTj4q8WLVrIMAwtWrRITz31lIKCghx9LF26VAEBAZKkpKQkjR07VkeOHFG9evUUFRUlf39/LVu2zNGmefPmatOmjZYsWaKxY8c6jv/UU0/p4Ycfdnx/8uRJ9e3bV4MGDXJsq1Spkrp06aL9+/erQ4cOOX4f2rVrp/HjxzuO/80332j37t2SpKtXr2rBggV64oknNHHiRMf5lilTRhMnTlSfPn10991357qeqlWrKjg4WFar1bHEITk5+bb15FRKSopmzJih5s2bS5KqV6+uBx98UDt37lSNGjW0ceNGnTlzRp988oljrXF4eLgeeughRx85PffHH39c27Zt0z/+8Q+VKVNGK1as0OjRo1W7du1c1QwAnoQwDBQDNpvthttPnDihtm3bOm2rVKmSduzYod27d8tutysyMtIpMEdGRuqtt97S/v371aZNG0nSXXfd5Qi5khQaGirpWlCTpN27dysiIkJ+fn6OvgICAtSkSRP9+9//djp+nTp1nL4fN26cJCkhIUHHjx/XiRMnHMsE0tPTc/U+NGnSxOn7ypUra//+/ZKkgwcPKjU19YbnK0nffPON7r777kKrJzf+uI44LCxM0v8Cd3R0tKpWrep00V2FChWcfian5y5JL730kjp27KghQ4YoIiJCzzzzTK7rBQBPQhgGioGgoCCVKFFCp0+fdtpeoUIFffjhh47v33zzTf3888+SpLi4OEm66czr+fPnHa/9/f2d9lks11ZYXQ/hcXFx2rJli7Zs2ZKtn+DgYKfvS5Qo4fT977//rsmTJ+vbb7+Vj4+P7rzzTsdMZG7v3XujOq/3cf18/3gLtD+KjY0t1Hry2s/19/56P/Hx8Y4Z/D8qV66cLl68KCnn5y5d+4dO8+bNtXXrVrVq1Yo7jwAo9gjDQDERGRmpL7/8UomJiY5ZXKvVqvr16zvalClTxvG6VKlSkqTly5erZMmS2fqrWLFijo8dGBiov/zlL+rTp0+2fTe6mO86m82mZ599Vj4+Pvrwww9Vp04deXt769ixY/roo49yfPycuH6+c+bMueFykrJlyxZqPa4SFBSkEydOZNt+PQBLOTv36/71r39p69atqlOnjuMCvipVqri8bgBwF1xABxQTzz77rDIzMzVx4sQb/jo/NTXV6e4O13+Ff+XKFdWvX9/xdfnyZc2bN88pTN1ORESEjh07pjp16jj6qVevnpYtW6bPP//8pj935coVxcTE6LHHHlP9+vUdwfnrr7+WdPPlH3kRHh4uHx8fnT9/3ul8vb299dprr+nUqVN5ruf6bG1RaNasmU6dOqX//Oc/jm2XL1/Wd9995/g+J+cuXVtbPHHiRP3lL3/RypUrVapUKf3973/n6XoAijVmhoFiolatWnrllVc0fvx4denSRY899phq1aqlzMxMHTx4UB9++KEuXryofv36Odo/8sgjmjRpkk6fPq169eopJiZGr7/+uipXrnzDGcSbGTRokLp166YBAwboySeflK+vr9auXavt27dr/vz5N/25kJAQVapUSatWrVJYWJhKlSqlXbt2acWKFZL+tybZFYKCgtSvXz/NmzdPiYmJuu+++3T+/HnNmzdPhmGodu3aCgwMzFM9pUqV0sWLF7Vz585sa6IL2l//+letWLFCQ4YM0YgRIxQQEKC33nrLKbjn5NwlaebMmbpy5YpWrFihgIAATZo0SYMHD9bKlSt5mh2AYoswDBQj7dq1U7169fT+++/rww8/1OnTp2W321WlShW1b99e3bp1cwq5s2bN0qJFi7RmzRqdO3dOISEhat++vYYPHy4vL68cH7d27dpatWqVXn/9dY0ZM0Z2u101a9bUm2++qdatW9/yZxcsWKAZM2Zo3Lhxslqtuuuuu/TWW29p5syZio6OdmkIGz58uMqVK6fVq1dryZIlKl26tJo3b66RI0cqMDAwz/V06dJFO3fu1ODBgzVs2LBCfaiJ1WrV8uXLNXPmTM2YMUOGYehvf/ubqlSp4nRbu9ud+86dO7VhwwaNHj1aVatWlSS1adNGbdu21auvvqqWLVuqWrVqhXZeAFBYDDu//wIAAIBJsWYYAAAApkUYBgAAgGkRhgEAAGBahGEAAACYFmEYAAAApkUYBgAAgGkRhgEAAGBahGEAAACYFmEYAAAApkUYBgAAgGkRhgEAAGBahGEAAACY1v8HB34ucVtxgLoAAAAASUVORK5CYII=\n"
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"sns.set_theme()\n",
"g = sns.catplot(\n",
" data=train, kind=\"bar\",\n",
" x=\"GeneralHealth\", y=\"WeightInKilograms\", hue=\"HadHeartAttack\",\n",
" errorbar=\"sd\", palette=\"dark\", alpha=.6, height=6\n",
")\n",
"g.despine(left=True)\n",
"g.set_axis_labels(\"General health index\", \"Body mass (kg)\")\n",
"g.legend.set_title(\"Had heart attack\")"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Osoby palące częsciej miały zawał:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 79,
"outputs": [
{
"data": {
"text/plain": " SmokerStatus HadHeartAttack\n0 0.0 0.037162\n1 1.0 0.069817\n2 2.0 0.082760\n3 3.0 0.093980",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>SmokerStatus</th>\n <th>HadHeartAttack</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>0.0</td>\n <td>0.037162</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1.0</td>\n <td>0.069817</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2.0</td>\n <td>0.082760</td>\n </tr>\n <tr>\n <th>3</th>\n <td>3.0</td>\n <td>0.093980</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid.groupby('SmokerStatus', as_index=False)['HadHeartAttack'].mean()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Osoby z gorszym wskaźnikiem \"GeneralHealth\" w tym zbiorze danych częściej miały zawał:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 80,
"outputs": [
{
"data": {
"text/plain": " GeneralHealth HadHeartAttack\n0 1.0 0.219401\n1 2.0 0.118330\n2 3.0 0.056664\n3 4.0 0.028686\n4 5.0 0.014112",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>GeneralHealth</th>\n <th>HadHeartAttack</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1.0</td>\n <td>0.219401</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2.0</td>\n <td>0.118330</td>\n </tr>\n <tr>\n <th>2</th>\n <td>3.0</td>\n <td>0.056664</td>\n </tr>\n <tr>\n <th>3</th>\n <td>4.0</td>\n <td>0.028686</td>\n </tr>\n <tr>\n <th>4</th>\n <td>5.0</td>\n <td>0.014112</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid.groupby('GeneralHealth', as_index=False)['HadHeartAttack'].mean()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 81,
"outputs": [
{
"data": {
"text/plain": "SmokerStatus 0.0 1.0 2.0 3.0\nGeneralHealth \n1.0 0.163180 0.242991 0.259740 0.250000\n2.0 0.085862 0.120438 0.158195 0.146465\n3.0 0.038882 0.059574 0.083070 0.076079\n4.0 0.023638 0.022901 0.039315 0.032688\n5.0 0.011113 0.017544 0.020365 0.025316",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th>SmokerStatus</th>\n <th>0.0</th>\n <th>1.0</th>\n <th>2.0</th>\n <th>3.0</th>\n </tr>\n <tr>\n <th>GeneralHealth</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>1.0</th>\n <td>0.163180</td>\n <td>0.242991</td>\n <td>0.259740</td>\n <td>0.250000</td>\n </tr>\n <tr>\n <th>2.0</th>\n <td>0.085862</td>\n <td>0.120438</td>\n <td>0.158195</td>\n <td>0.146465</td>\n </tr>\n <tr>\n <th>3.0</th>\n <td>0.038882</td>\n <td>0.059574</td>\n <td>0.083070</td>\n <td>0.076079</td>\n </tr>\n <tr>\n <th>4.0</th>\n <td>0.023638</td>\n <td>0.022901</td>\n <td>0.039315</td>\n <td>0.032688</td>\n </tr>\n <tr>\n <th>5.0</th>\n <td>0.011113</td>\n <td>0.017544</td>\n <td>0.020365</td>\n <td>0.025316</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"valid.pivot_table('HadHeartAttack',index='GeneralHealth', columns='SmokerStatus')"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## Normalizacja część 2 - Skalowanie kolumn numerycznych do 0-1"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 82,
"outputs": [],
"source": [
"from sklearn.preprocessing import MinMaxScaler\n",
"scaler = MinMaxScaler()\n",
"def scale_float_columns(dataset):\n",
" numerical_columns = list(dataset.select_dtypes(include=['float64']).columns)\n",
" dataset[numerical_columns] = scaler.fit_transform(dataset[numerical_columns])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 83,
"outputs": [
{
"data": {
"text/plain": " State Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\n276058 New York 1.0 3.0 2.0 0.0 \n189605 Michigan 0.0 2.0 20.0 15.0 \n59234 Delaware 0.0 4.0 0.0 0.0 \n255322 New Mexico 1.0 3.0 0.0 0.0 \n226504 Montana 0.0 4.0 6.0 0.0 \n\n LastCheckupTime PhysicalActivities \\\n276058 Within past 2 years (1 year but less than 2 ye... NaN \n189605 Within past year (anytime less than 12 months ... 1.0 \n59234 Within past year (anytime less than 12 months ... 1.0 \n255322 5 or more years ago 1.0 \n226504 Within past year (anytime less than 12 months ... 1.0 \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n276058 7.0 0.0 0.0 ... 1.55 \n189605 5.0 3.0 0.0 ... 1.68 \n59234 6.0 0.0 0.0 ... 1.50 \n255322 6.0 0.0 0.0 ... NaN \n226504 8.0 0.0 0.0 ... 1.73 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting FluVaxLast12 \\\n276058 NaN NaN 0.0 0.0 0.0 \n189605 70.31 25.02 0.0 NaN 1.0 \n59234 64.41 28.68 0.0 0.0 1.0 \n255322 NaN NaN NaN NaN NaN \n226504 90.72 30.41 1.0 0.0 0.0 \n\n PneumoVaxEver TetanusLast10Tdap HighRiskLastYear CovidPos \n276058 NaN 1.0 0.0 0.0 \n189605 1.0 NaN 0.0 0.0 \n59234 NaN 1.0 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 1.0 NaN 0.0 1.0 \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>2.0</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>NaN</td>\n <td>7.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.55</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>0.0</td>\n <td>2.0</td>\n <td>20.0</td>\n <td>15.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>5.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.68</td>\n <td>70.31</td>\n <td>25.02</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>0.0</td>\n <td>4.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.50</td>\n <td>64.41</td>\n <td>28.68</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>1.0</td>\n <td>3.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>1.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>0.0</td>\n <td>4.0</td>\n <td>6.0</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>8.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>1.73</td>\n <td>90.72</td>\n <td>30.41</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 84,
"outputs": [
{
"data": {
"text/plain": " State Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\n276058 New York 1.0 0.50 0.066667 0.0 \n189605 Michigan 0.0 0.25 0.666667 0.5 \n59234 Delaware 0.0 0.75 0.000000 0.0 \n255322 New Mexico 1.0 0.50 0.000000 0.0 \n226504 Montana 0.0 0.75 0.200000 0.0 \n\n LastCheckupTime PhysicalActivities \\\n276058 Within past 2 years (1 year but less than 2 ye... NaN \n189605 Within past year (anytime less than 12 months ... 1.0 \n59234 Within past year (anytime less than 12 months ... 1.0 \n255322 5 or more years ago 1.0 \n226504 Within past year (anytime less than 12 months ... 1.0 \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n276058 0.260870 0.0 0.0 ... 0.474074 \n189605 0.173913 1.0 0.0 ... 0.570370 \n59234 0.217391 0.0 0.0 ... 0.437037 \n255322 0.217391 0.0 0.0 ... NaN \n226504 0.304348 0.0 0.0 ... 0.607407 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting \\\n276058 NaN NaN 0.0 0.0 \n189605 0.187845 0.145127 0.0 NaN \n59234 0.164576 0.188206 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 0.268339 0.208569 1.0 0.0 \n\n FluVaxLast12 PneumoVaxEver TetanusLast10Tdap HighRiskLastYear \\\n276058 0.0 NaN 0.0 0.0 \n189605 1.0 1.0 NaN 0.0 \n59234 1.0 NaN 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 0.0 1.0 NaN 0.0 \n\n CovidPos \n276058 0.0 \n189605 0.0 \n59234 0.0 \n255322 NaN \n226504 1.0 \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.066667</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>NaN</td>\n <td>0.260870</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.474074</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>0.0</td>\n <td>0.25</td>\n <td>0.666667</td>\n <td>0.5</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.173913</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.570370</td>\n <td>0.187845</td>\n <td>0.145127</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.437037</td>\n <td>0.164576</td>\n <td>0.188206</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.200000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.304348</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.607407</td>\n <td>0.268339</td>\n <td>0.208569</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"scale_float_columns(test)\n",
"scale_float_columns(train)\n",
"scale_float_columns(valid)\n",
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"## 5. Czyszczenie brakujących pól\n",
"\n",
"Nie możemy użyć .dropna() gdyż większość wierszy ma brakujące wartości:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 85,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"445132\n",
"199110\n"
]
}
],
"source": [
"print(df.shape[0])\n",
"print(df.shape[0] - df.dropna().shape[0])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 86,
"outputs": [
{
"data": {
"text/plain": " State Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\n276058 New York 1.0 0.50 0.066667 0.0 \n189605 Michigan 0.0 0.25 0.666667 0.5 \n59234 Delaware 0.0 0.75 0.000000 0.0 \n255322 New Mexico 1.0 0.50 0.000000 0.0 \n226504 Montana 0.0 0.75 0.200000 0.0 \n\n LastCheckupTime PhysicalActivities \\\n276058 Within past 2 years (1 year but less than 2 ye... NaN \n189605 Within past year (anytime less than 12 months ... 1.0 \n59234 Within past year (anytime less than 12 months ... 1.0 \n255322 5 or more years ago 1.0 \n226504 Within past year (anytime less than 12 months ... 1.0 \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n276058 0.260870 0.0 0.0 ... 0.474074 \n189605 0.173913 1.0 0.0 ... 0.570370 \n59234 0.217391 0.0 0.0 ... 0.437037 \n255322 0.217391 0.0 0.0 ... NaN \n226504 0.304348 0.0 0.0 ... 0.607407 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting \\\n276058 NaN NaN 0.0 0.0 \n189605 0.187845 0.145127 0.0 NaN \n59234 0.164576 0.188206 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 0.268339 0.208569 1.0 0.0 \n\n FluVaxLast12 PneumoVaxEver TetanusLast10Tdap HighRiskLastYear \\\n276058 0.0 NaN 0.0 0.0 \n189605 1.0 1.0 NaN 0.0 \n59234 1.0 NaN 0.0 0.0 \n255322 NaN NaN NaN NaN \n226504 0.0 1.0 NaN 0.0 \n\n CovidPos \n276058 0.0 \n189605 0.0 \n59234 0.0 \n255322 NaN \n226504 1.0 \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.066667</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>NaN</td>\n <td>0.260870</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.474074</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>0.0</td>\n <td>0.25</td>\n <td>0.666667</td>\n <td>0.5</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.173913</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.570370</td>\n <td>0.187845</td>\n <td>0.145127</td>\n <td>0.0</td>\n <td>NaN</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.437037</td>\n <td>0.164576</td>\n <td>0.188206</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.200000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.304348</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.607407</td>\n <td>0.268339</td>\n <td>0.208569</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>NaN</td>\n <td>0.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"Uzupełniam brakujące wartości medianą:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 87,
"outputs": [],
"source": [
"numeric_columns = train.select_dtypes(include=['number']).columns\n",
"test[numeric_columns] = test[numeric_columns].fillna(test[numeric_columns].median().iloc[0])\n",
"train[numeric_columns] = train[numeric_columns].fillna(train[numeric_columns].median().iloc[0])\n",
"valid[numeric_columns] = valid[numeric_columns].fillna(valid[numeric_columns].iloc[0])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 88,
"outputs": [
{
"data": {
"text/plain": " State Male GeneralHealth PhysicalHealthDays MentalHealthDays \\\n276058 New York 1.0 0.50 0.066667 0.0 \n189605 Michigan 0.0 0.25 0.666667 0.5 \n59234 Delaware 0.0 0.75 0.000000 0.0 \n255322 New Mexico 1.0 0.50 0.000000 0.0 \n226504 Montana 0.0 0.75 0.200000 0.0 \n\n LastCheckupTime PhysicalActivities \\\n276058 Within past 2 years (1 year but less than 2 ye... 0.0 \n189605 Within past year (anytime less than 12 months ... 1.0 \n59234 Within past year (anytime less than 12 months ... 1.0 \n255322 5 or more years ago 1.0 \n226504 Within past year (anytime less than 12 months ... 1.0 \n\n SleepHours RemovedTeeth HadHeartAttack ... HeightInMeters \\\n276058 0.260870 0.0 0.0 ... 0.474074 \n189605 0.173913 1.0 0.0 ... 0.570370 \n59234 0.217391 0.0 0.0 ... 0.437037 \n255322 0.217391 0.0 0.0 ... 0.000000 \n226504 0.304348 0.0 0.0 ... 0.607407 \n\n WeightInKilograms BMI AlcoholDrinkers HIVTesting \\\n276058 0.000000 0.000000 0.0 0.0 \n189605 0.187845 0.145127 0.0 0.0 \n59234 0.164576 0.188206 0.0 0.0 \n255322 0.000000 0.000000 0.0 0.0 \n226504 0.268339 0.208569 1.0 0.0 \n\n FluVaxLast12 PneumoVaxEver TetanusLast10Tdap HighRiskLastYear \\\n276058 0.0 0.0 0.0 0.0 \n189605 1.0 1.0 0.0 0.0 \n59234 1.0 0.0 0.0 0.0 \n255322 0.0 0.0 0.0 0.0 \n226504 0.0 1.0 0.0 0.0 \n\n CovidPos \n276058 0.0 \n189605 0.0 \n59234 0.0 \n255322 0.0 \n226504 1.0 \n\n[5 rows x 40 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>State</th>\n <th>Male</th>\n <th>GeneralHealth</th>\n <th>PhysicalHealthDays</th>\n <th>MentalHealthDays</th>\n <th>LastCheckupTime</th>\n <th>PhysicalActivities</th>\n <th>SleepHours</th>\n <th>RemovedTeeth</th>\n <th>HadHeartAttack</th>\n <th>...</th>\n <th>HeightInMeters</th>\n <th>WeightInKilograms</th>\n <th>BMI</th>\n <th>AlcoholDrinkers</th>\n <th>HIVTesting</th>\n <th>FluVaxLast12</th>\n <th>PneumoVaxEver</th>\n <th>TetanusLast10Tdap</th>\n <th>HighRiskLastYear</th>\n <th>CovidPos</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>276058</th>\n <td>New York</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.066667</td>\n <td>0.0</td>\n <td>Within past 2 years (1 year but less than 2 ye...</td>\n <td>0.0</td>\n <td>0.260870</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.474074</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>189605</th>\n <td>Michigan</td>\n <td>0.0</td>\n <td>0.25</td>\n <td>0.666667</td>\n <td>0.5</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.173913</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.570370</td>\n <td>0.187845</td>\n <td>0.145127</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>59234</th>\n <td>Delaware</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.437037</td>\n <td>0.164576</td>\n <td>0.188206</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>255322</th>\n <td>New Mexico</td>\n <td>1.0</td>\n <td>0.50</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>5 or more years ago</td>\n <td>1.0</td>\n <td>0.217391</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.000000</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>0.0</td>\n </tr>\n <tr>\n <th>226504</th>\n <td>Montana</td>\n <td>0.0</td>\n <td>0.75</td>\n <td>0.200000</td>\n <td>0.0</td>\n <td>Within past year (anytime less than 12 months ...</td>\n <td>1.0</td>\n <td>0.304348</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>...</td>\n <td>0.607407</td>\n <td>0.268339</td>\n <td>0.208569</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n <td>0.0</td>\n <td>0.0</td>\n <td>1.0</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 40 columns</p>\n</div>"
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test.head()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"Kolumny kategoryczne wypełniłem w czasie normalizacji wartościami \"Unknown\" ponieważ fillna-->median nie działa dla tego typu danych\n",
"(https://stackoverflow.com/questions/49127897/python-pandas-fillna-median-not-working)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 89,
"outputs": [
{
"data": {
"text/plain": "HighRiskLastYear\n0.0 42810\n1.0 1703\nName: count, dtype: int64"
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test[\"HighRiskLastYear\"].value_counts()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 90,
"outputs": [
{
"data": {
"text/plain": "0"
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test[\"HighRiskLastYear\"].isna().sum()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Brak wartości non-null:"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 91,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 44513 entries, 276058 to 196692\n",
"Data columns (total 40 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 State 44513 non-null category\n",
" 1 Male 44513 non-null float64 \n",
" 2 GeneralHealth 44513 non-null float64 \n",
" 3 PhysicalHealthDays 44513 non-null float64 \n",
" 4 MentalHealthDays 44513 non-null float64 \n",
" 5 LastCheckupTime 44513 non-null category\n",
" 6 PhysicalActivities 44513 non-null float64 \n",
" 7 SleepHours 44513 non-null float64 \n",
" 8 RemovedTeeth 44513 non-null float64 \n",
" 9 HadHeartAttack 44513 non-null float64 \n",
" 10 HadAngina 44513 non-null float64 \n",
" 11 HadStroke 44513 non-null float64 \n",
" 12 HadAsthma 44513 non-null float64 \n",
" 13 HadSkinCancer 44513 non-null float64 \n",
" 14 HadCOPD 44513 non-null float64 \n",
" 15 HadDepressiveDisorder 44513 non-null float64 \n",
" 16 HadKidneyDisease 44513 non-null float64 \n",
" 17 HadArthritis 44513 non-null float64 \n",
" 18 HadDiabetes 44513 non-null float64 \n",
" 19 DeafOrHardOfHearing 44513 non-null float64 \n",
" 20 BlindOrVisionDifficulty 44513 non-null float64 \n",
" 21 DifficultyConcentrating 44513 non-null float64 \n",
" 22 DifficultyWalking 44513 non-null float64 \n",
" 23 DifficultyDressingBathing 44513 non-null float64 \n",
" 24 DifficultyErrands 44513 non-null float64 \n",
" 25 SmokerStatus 44513 non-null float64 \n",
" 26 ECigaretteUsage 44513 non-null float64 \n",
" 27 ChestScan 44513 non-null float64 \n",
" 28 RaceEthnicityCategory 44513 non-null category\n",
" 29 AgeCategory 44513 non-null category\n",
" 30 HeightInMeters 44513 non-null float64 \n",
" 31 WeightInKilograms 44513 non-null float64 \n",
" 32 BMI 44513 non-null float64 \n",
" 33 AlcoholDrinkers 44513 non-null float64 \n",
" 34 HIVTesting 44513 non-null float64 \n",
" 35 FluVaxLast12 44513 non-null float64 \n",
" 36 PneumoVaxEver 44513 non-null float64 \n",
" 37 TetanusLast10Tdap 44513 non-null float64 \n",
" 38 HighRiskLastYear 44513 non-null float64 \n",
" 39 CovidPos 44513 non-null float64 \n",
"dtypes: category(4), float64(36)\n",
"memory usage: 12.7 MB\n"
]
}
],
"source": [
"test.info()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 92,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 676617 entries, 0 to 676616\n",
"Data columns (total 40 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 State 676617 non-null category\n",
" 1 Male 676617 non-null float64 \n",
" 2 GeneralHealth 676617 non-null float64 \n",
" 3 PhysicalHealthDays 676617 non-null float64 \n",
" 4 MentalHealthDays 676617 non-null float64 \n",
" 5 LastCheckupTime 676617 non-null category\n",
" 6 PhysicalActivities 676617 non-null float64 \n",
" 7 SleepHours 676617 non-null float64 \n",
" 8 RemovedTeeth 676617 non-null float64 \n",
" 9 HadHeartAttack 676617 non-null float64 \n",
" 10 HadAngina 676617 non-null float64 \n",
" 11 HadStroke 676617 non-null float64 \n",
" 12 HadAsthma 676617 non-null float64 \n",
" 13 HadSkinCancer 676617 non-null float64 \n",
" 14 HadCOPD 676617 non-null float64 \n",
" 15 HadDepressiveDisorder 676617 non-null float64 \n",
" 16 HadKidneyDisease 676617 non-null float64 \n",
" 17 HadArthritis 676617 non-null float64 \n",
" 18 HadDiabetes 676617 non-null float64 \n",
" 19 DeafOrHardOfHearing 676617 non-null float64 \n",
" 20 BlindOrVisionDifficulty 676617 non-null float64 \n",
" 21 DifficultyConcentrating 676617 non-null float64 \n",
" 22 DifficultyWalking 676617 non-null float64 \n",
" 23 DifficultyDressingBathing 676617 non-null float64 \n",
" 24 DifficultyErrands 676617 non-null float64 \n",
" 25 SmokerStatus 676617 non-null float64 \n",
" 26 ECigaretteUsage 676617 non-null float64 \n",
" 27 ChestScan 676617 non-null float64 \n",
" 28 RaceEthnicityCategory 676617 non-null category\n",
" 29 AgeCategory 676617 non-null category\n",
" 30 HeightInMeters 676617 non-null float64 \n",
" 31 WeightInKilograms 676617 non-null float64 \n",
" 32 BMI 676617 non-null float64 \n",
" 33 AlcoholDrinkers 676617 non-null float64 \n",
" 34 HIVTesting 676617 non-null float64 \n",
" 35 FluVaxLast12 676617 non-null float64 \n",
" 36 PneumoVaxEver 676617 non-null float64 \n",
" 37 TetanusLast10Tdap 676617 non-null float64 \n",
" 38 HighRiskLastYear 676617 non-null float64 \n",
" 39 CovidPos 676617 non-null float64 \n",
"dtypes: category(4), float64(36)\n",
"memory usage: 188.4 MB\n"
]
}
],
"source": [
"train.info()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 93,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"Index: 44514 entries, 127295 to 418173\n",
"Data columns (total 40 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 State 44514 non-null category\n",
" 1 Male 44514 non-null float64 \n",
" 2 GeneralHealth 44514 non-null float64 \n",
" 3 PhysicalHealthDays 44514 non-null float64 \n",
" 4 MentalHealthDays 44514 non-null float64 \n",
" 5 LastCheckupTime 44514 non-null category\n",
" 6 PhysicalActivities 44514 non-null float64 \n",
" 7 SleepHours 44514 non-null float64 \n",
" 8 RemovedTeeth 44514 non-null float64 \n",
" 9 HadHeartAttack 44514 non-null float64 \n",
" 10 HadAngina 44514 non-null float64 \n",
" 11 HadStroke 44514 non-null float64 \n",
" 12 HadAsthma 44514 non-null float64 \n",
" 13 HadSkinCancer 44514 non-null float64 \n",
" 14 HadCOPD 44514 non-null float64 \n",
" 15 HadDepressiveDisorder 44514 non-null float64 \n",
" 16 HadKidneyDisease 44514 non-null float64 \n",
" 17 HadArthritis 44514 non-null float64 \n",
" 18 HadDiabetes 44514 non-null float64 \n",
" 19 DeafOrHardOfHearing 44514 non-null float64 \n",
" 20 BlindOrVisionDifficulty 44514 non-null float64 \n",
" 21 DifficultyConcentrating 44514 non-null float64 \n",
" 22 DifficultyWalking 44514 non-null float64 \n",
" 23 DifficultyDressingBathing 44514 non-null float64 \n",
" 24 DifficultyErrands 44514 non-null float64 \n",
" 25 SmokerStatus 44514 non-null float64 \n",
" 26 ECigaretteUsage 44514 non-null float64 \n",
" 27 ChestScan 44514 non-null float64 \n",
" 28 RaceEthnicityCategory 44514 non-null category\n",
" 29 AgeCategory 44514 non-null category\n",
" 30 HeightInMeters 44514 non-null float64 \n",
" 31 WeightInKilograms 44514 non-null float64 \n",
" 32 BMI 44514 non-null float64 \n",
" 33 AlcoholDrinkers 44514 non-null float64 \n",
" 34 HIVTesting 44514 non-null float64 \n",
" 35 FluVaxLast12 44514 non-null float64 \n",
" 36 PneumoVaxEver 44514 non-null float64 \n",
" 37 TetanusLast10Tdap 44514 non-null float64 \n",
" 38 HighRiskLastYear 44514 non-null float64 \n",
" 39 CovidPos 44514 non-null float64 \n",
"dtypes: category(4), float64(36)\n",
"memory usage: 12.7 MB\n"
]
}
],
"source": [
"valid.info()"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "markdown",
"source": [
"### Zapisywanie do csv"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 94,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['State', 'LastCheckupTime', 'RaceEthnicityCategory', 'AgeCategory'], dtype='object')\n"
]
}
],
"source": [
"cat_columns = test.select_dtypes(['category']).columns\n",
"print(cat_columns)"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 95,
"outputs": [],
"source": [
"#test[cat_columns] = test[cat_columns].apply(lambda x: pd.factorize(x)[0])\n",
"#train[cat_columns] = train[cat_columns].apply(lambda x: pd.factorize(x)[0])\n",
"#valid[cat_columns] = valid[cat_columns].apply(lambda x: pd.factorize(x)[0])"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 96,
"outputs": [],
"source": [
"test.to_csv(\"test.csv\")\n",
"train.to_csv(\"train.csv\")\n",
"valid.to_csv(\"valid.csv\")"
],
"metadata": {
"collapsed": false
}
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}