505 lines
145 KiB
Plaintext
Raw 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": "code",
"execution_count": 96,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Количество колонок: 12\n",
"Колонки: Index(['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married',\n",
" 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi',\n",
" 'smoking_status', 'stroke'],\n",
" dtype='object')\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"# Загрузка данных\n",
"data = pd.read_csv('./csv/option4.csv')\n",
"\n",
"# Обзор данных\n",
"print(\"Количество колонок:\", data.columns.size)\n",
"print(\"Колонки:\", data.columns)"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Наличие пропущенных значений:\n",
"id 0\n",
"gender 0\n",
"age 0\n",
"hypertension 0\n",
"heart_disease 0\n",
"ever_married 0\n",
"work_type 0\n",
"Residence_type 0\n",
"avg_glucose_level 0\n",
"bmi 201\n",
"smoking_status 0\n",
"stroke 0\n",
"dtype: int64\n",
"\n",
"\n",
"\n",
"<bound method NDFrame.describe of id gender age hypertension heart_disease ever_married \\\n",
"0 9046 Male 67.0 0 1 Yes \n",
"1 51676 Female 61.0 0 0 Yes \n",
"2 31112 Male 80.0 0 1 Yes \n",
"3 60182 Female 49.0 0 0 Yes \n",
"4 1665 Female 79.0 1 0 Yes \n",
"... ... ... ... ... ... ... \n",
"5105 18234 Female 80.0 1 0 Yes \n",
"5106 44873 Female 81.0 0 0 Yes \n",
"5107 19723 Female 35.0 0 0 Yes \n",
"5108 37544 Male 51.0 0 0 Yes \n",
"5109 44679 Female 44.0 0 0 Yes \n",
"\n",
" work_type Residence_type avg_glucose_level bmi smoking_status \\\n",
"0 Private Urban 228.69 36.6 formerly smoked \n",
"1 Self-employed Rural 202.21 NaN never smoked \n",
"2 Private Rural 105.92 32.5 never smoked \n",
"3 Private Urban 171.23 34.4 smokes \n",
"4 Self-employed Rural 174.12 24.0 never smoked \n",
"... ... ... ... ... ... \n",
"5105 Private Urban 83.75 NaN never smoked \n",
"5106 Self-employed Urban 125.20 40.0 never smoked \n",
"5107 Self-employed Rural 82.99 30.6 never smoked \n",
"5108 Private Rural 166.29 25.6 formerly smoked \n",
"5109 Govt_job Urban 85.28 26.2 Unknown \n",
"\n",
" stroke \n",
"0 1 \n",
"1 1 \n",
"2 1 \n",
"3 1 \n",
"4 1 \n",
"... ... \n",
"5105 0 \n",
"5106 0 \n",
"5107 0 \n",
"5108 0 \n",
"5109 0 \n",
"\n",
"[5110 rows x 12 columns]>\n"
]
}
],
"source": [
"print(\"\\nНаличие пропущенных значений:\")\n",
"print(data.isnull().sum())\n",
"\n",
"print(\"\\n\\n\")\n",
"\n",
"print(data.describe)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Возьмем и заменим нулевые значения в столбце bmi на средние значения по столбцу </p>"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Наличие пропущенных значений:\n",
"id 0\n",
"gender 0\n",
"age 0\n",
"hypertension 0\n",
"heart_disease 0\n",
"ever_married 0\n",
"work_type 0\n",
"Residence_type 0\n",
"avg_glucose_level 0\n",
"bmi 0\n",
"smoking_status 0\n",
"stroke 0\n",
"dtype: int64\n"
]
}
],
"source": [
"data['bmi'] = data['bmi'].fillna(data['bmi'].median())\n",
"print(\"\\nНаличие пропущенных значений:\")\n",
"print(data.isnull().sum())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Взглянем на выбросы: </p>"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABscUlEQVR4nO3de1yUdf7//+cwHD0wiAcGChDPirIeKiOM3GTDU6vlZhaltX7081G0zG0rNw9hGFvblj9bsGz7mBau1ZZmZVpiylZoahoeWtMicdPBCgEPiQjX74++XB9HmRQdGAYe99ttbs28r9dc87rwlm988uZ9WQzDMAQAAAAAAAAAAM7j4+kGAAAAAAAAAABoqAjRAQAAAAAAAABwgRAdAAAAAAAAAAAXCNEBAAAAAAAAAHCBEB0AAAAAAAAAABcI0QEAAAAAAAAAcIEQHQAAAAAAAAAAFwjRAQAAAAAAAABwgRAdAAAAAAAAAAAXCNEBAACAemCxWPTYY495uo16tWHDBlksFm3YsMHTrTSoXgAAjddjjz0mi8WiH374oU4/55577lH79u3r9DMA/B9CdAAAAAAAAAAAXPD1dAMAAAAAAAAALt6LL76oqqoqT7cBNBmE6AAAAAAAAIAX8fPz83QLQJPCdi5AI3TgwAFNnjxZXbt2VVBQkFq3bq3bbrtN33777Xm1+fn5uuGGGxQUFKQrr7xS6enpWrx4sSwWy3n177//vq6//no1b95cLVu21LBhw7R79+76uSgAQJN1MfPa1q1bZbFYtGTJkvPev3btWlksFr377rvm2IYNG3TVVVcpMDBQHTt21AsvvGDuYVpbb7zxhnr06KHAwED17NlTK1asuKh9Sl3VuOrj1Vdf1TXXXKNmzZqpVatWSkxM1AcffOBUk5WVpdjYWAUEBCgiIkKpqakqKSlxqtm3b59GjRolu92uwMBAXXnllRozZoxKS0vP+7x+/fopKChIoaGhGjNmjA4ePHhRX5ML2bx5swYPHiybzaZmzZrphhtu0CeffGIe/+c//ymLxaKNGzee994XXnhBFotFu3btMsf+/e9/63e/+51CQ0MVGBioq666SqtWrXJLrwAAXIoffvhBo0ePVnBwsFq3bq37779fp06dMo9bLBZNmTLF/D4iKChI8fHx2rlzp6Sf57tOnTopMDBQAwcOPO/f5+yJDtQvVqIDjdCWLVv06aefasyYMbryyiv17bffauHChRo4cKD27NmjZs2aSZK+++47/frXv5bFYtGMGTPUvHlz/f3vf1dAQMB553zllVc0btw4JScn68knn9TJkye1cOFCDRgwQNu3b2fyBgDUmYuZ16666ip16NBBr7/+usaNG+f0/tdee02tWrVScnKyJGn79u0aPHiwwsPDlZaWpsrKSs2dO1dt27atdW/vvfeebr/9dvXq1UsZGRk6evSoxo8fryuuuMIt114tLS1Njz32mK677jrNnTtX/v7+2rx5s9avX6+bbrpJ0s/he1pampKSkjRp0iTt3btXCxcu1JYtW/TJJ5/Iz89Pp0+fVnJyssrLyzV16lTZ7XZ99913evfdd1VSUiKbzSZJmjdvnmbNmqXRo0frv/7rv/T999/rueeeU2JiorZv366QkJBLvpb169dryJAh6tevn+bMmSMfHx8tXrxYN954o/71r3/pmmuu0bBhw9SiRQu9/vrruuGGG5ze/9prryk2NlY9e/aUJO3evVsJCQm64oor9Mgjj6h58+Z6/fXXNXLkSL355pu65ZZbLrlXAAAu1ejRo9W+fXtlZGRo06ZNWrBggY4ePaqlS5eaNf/617+0atUqpaamSpIyMjI0fPhwPfTQQ8rKytLkyZN19OhRPfXUU/r973+v9evXe+pyABgAGp2TJ0+eN5aXl2dIMpYuXWqOTZ061bBYLMb27dvNsR9//NEIDQ01JBkFBQWGYRjGsWPHjJCQEGPChAlO53Q4HIbNZjtvHAAAd7rYeW3GjBmGn5+fUVxcbI6Vl5cbISEhxu9//3tz7OabbzaaNWtmfPfdd+bYvn37DF9fX6O23x736tXLuPLKK41jx46ZYxs2bDAkGdHR0U61kow5c+aYr8eNG3dejWEYxpw5c5z62Ldvn+Hj42PccsstRmVlpVNtVVWVYRiGceTIEcPf39+46aabnGr+9re/GZKM//3f/zUMwzC2b99uSDLeeOMNl9f07bffGlar1Zg3b57T+M6dOw1fX9/zxn/JRx99ZEgyPvroI7Pfzp07G8nJyWbvhvHzn3FMTIzxm9/8xhy74447jHbt2hlnzpwxxw4fPmz4+PgYc+fONccGDRpk9OrVyzh16pTT1+W6664zOnfu7LIXAADqQvU8/tvf/tZpfPLkyYYk44svvjAM4+fvCwICAsx/dxuGYbzwwguGJMNutxtlZWXm+IwZM5z+jW4Yrr+PAFA32M4FaISCgoLM5xUVFfrxxx/VqVMnhYSE6PPPPzePrVmzRvHx8erdu7c5FhoaqpSUFKfzffjhhyopKdEdd9yhH374wXxYrVb1799fH330UZ1fEwCg6brYee32229XRUWF3nrrLXPsgw8+UElJiW6//XZJUmVlpdatW6eRI0cqIiLCrOvUqZOGDBlSq74OHTqknTt3auzYsWrRooU5fsMNN6hXr161vk5XVq5cqaqqKs2ePVs+Ps7fvldv+7Ju3TqdPn1a06ZNc6qZMGGCgoOD9d5770mSudJ87dq1OnnyZI2f99Zbb6mqqkqjR492mvftdrs6d+58WfP+jh07tG/fPt1555368ccfzXOfOHFCgwYNUm5urnmTtNtvv11HjhzRhg0bzPf/85//VFVVlfnnWVxcrPXr12v06NE6duyYeb4ff/xRycnJ2rdvn7777rtL7hcAgEtVvbq82tSpUyVJq1evNscGDRrk9Fvd/fv3lySNGjVKLVu2PG/8m2++qat2AVwA27kAjdBPP/2kjIwMLV68WN99950MwzCPnb3f6YEDBxQfH3/e+zt16uT0et++fZKkG2+8scbPCw4OdkfbAADU6GLntV/96lfq1q2bXnvtNY0fP17Sz1t/tGnTxpzDjhw5op9++um8uU46f/67kAMHDrh8X6dOnZwC/svx9ddfy8fHRz169LhgL127dnUa9/f3V4cOHczjMTExmj59up555hllZ2fr+uuv129/+1vdddddZsC+b98+GYahzp071/hZl3Mjs+rvKc7dcudspaWlatWqlbln+muvvaZBgwZJ+vnPs3fv3urSpYskaf/+/TIMQ7NmzdKsWbNqPN+RI0fcvr0OAAAXcu482rFjR/n4+DjtbR4VFeVUUz0XR0ZG1jh+9OjROugUwMUgRAcaoalTp2rx4sWaNm2a4uPjZbPZZLFYNGbMGHN1V21Uv+eVV16R3W4/77ivL3+VAADqTm3mtdtvv13z5s3TDz/8oJYtW2rVqlW64447GuRc5eomppWVlXX6uX/96191zz336O2339YHH3yg++67z9yv9corr1RVVZUsFovef/99Wa3W895/9qr72qr+8/rLX/7i9JtwNZ0/ICBAI0eO1IoVK5SVlaWioiJ98skneuKJJ84734MPPmjueX+u2v5wBACAulDTvF/TPPtL42cvJABQvxrevyYAXLZ//vOfGjdunP7617+aY6dOnVJJSYlTXXR0tPbv33/e+88d69ixoySpXbt2SkpKcn/DAAD8goud16SfQ/S0tDS9+eabCgsLU1lZmcaMGWMeb9eunQIDAy9q/ruQ6Ohol++7mHO1atWqxmuoXjVerWPHjqqqqtKePXtcBs/Vvezdu1cdOnQwx0+fPq2CgoLz5u9evXqpV69emjlzpj799FMlJCTo+eefV3p6ujp27CjDMBQTE2Ou+HaX6u8pgoODL+p7ittvv11LlixRTk6OvvzySxmGYW7lIsm8Vj8/P75HAQA0KPv27VNMTIz5ev/+/aqqqnLavgWA92BPdKARslqt5/2E+rnnnjtvZVtycrLy8vK0Y8cOc6y4uFjZ2dnn1QUHB+uJJ55QRUXFeZ/3/fffu695AADOcbHzmiR1795dvXr10muvvabXXntN4eHhSkxMdDpXUlKSVq5cqUOHDpnj+/fv1/vvv1+rviIiItSzZ08tXbpUx48fN8c3btyonTt3XvD9HTt2VGlpqfLz882xw4cPa8WKFU51I0eOlI+Pj+bOnXveyvvqr0tSUpL8/f21YMECp6/VSy+9pNLSUg0bNkySVFZWpjNnzjido1evXvLx8VF5ebkk6dZbb5XValVaWtp5X3fDMPTjjz9e8Npc6devnzp27Kinn37a6WtW7dzvKZKSkhQaGmr+eV5zzTVOgUS7du00cOBAvfDCCzp8+PAFzwcAQH3JzMx0ev3cc89JUq3vwQKgYWAlOtAIDR8+XK+88opsNpt69OihvLw8rVu3Tq1bt3aqe+ihh/Tqq6/qN7/5jaZOnarmzZvr73//u6KiolRcXGz+ullwcLAWLlyou+++W3379tWYMWPUtm1bFRYW6r333lNCQoL+9re/eeJSAQBNwMXOa9Vuv/12zZ49W4GBgRo/fvx5N+N87LHH9MEHHyghIUGTJk1SZWWl/va3v6lnz55OP1i+GE888YRGjBihhIQE3XvvvTp69Kh5rppC4rONGTNGDz/8sG655Rbdd999OnnypBYuXKguXbo47afeqVMnPfroo3r88cd1/fXX69Zbb1VAQIC2bNmiiIgIZWRkqG3btpoxY4bS0tI0ePBg/fa3v9XevXuVlZWlq6++WnfddZckaf369ZoyZYpuu+02denSRWfOnNErr7wiq9WqUaNGSfo53E9PT9eMGTP07bffauTIkWrZsqUKCgq0YsUKTZw4UQ8++GCtvk7VfHx89Pe//11DhgxRbGys7r33Xl1xxRX67rvv9NFHHyk4OFjvvPOOWe/n56dbb71Vy5cv14kTJ/T000+fd87MzEwNGDBAvXr10oQJE9ShQwcVFRUpLy9P//nPf/TFF19cUq8AAFyOgoIC/fa3v9XgwYOVl5enV199VXfeead+9atfebo1AJfCANDoHD161Lj33nuNNm3aGC1atDCSk5ONf//730Z0dLQxbtw4p9rt27cb119/vREQEGBceeWVRkZGhrFgwQJDkuFwOJxqP/roIyM5Odmw2WxGYGCg0bFjR+Oee+4xtm7dWo9XBwBoamozrxmGYezbt8+QZEgyPv744xrPmZOTY/Tp08fw9/c3OnbsaPz97383/vCHPxiBgYG17m/58uVGt27djICAAKNnz57GqlWrjFGjRhndunVzqpNkzJkzx2nsgw8+MHr27Gn4+/sbXbt2NV599VVjzpw5Rk3fpv/v//6v0adPHyMgIMBo1aqVccMNNxgffvihU83f/vY3o1u3boafn58RFhZmTJo0yTh69Kh5/JtvvjF+//vfGx07djQCAwON0NBQ49e//rWxbt268z7vzTffNAYMGGA0b97caN68udGtWzcjNTXV2Lt370V/bT766CNDkvHRRx85jW/fvt249dZbjdatWxsBAQFGdHS0MXr0aCMnJ+e8c3z44YeGJMNisRgHDx6s8XO+/vprY+zYsYbdbjf8/PyMK664whg+fLjxz3/+84K9AADgTtXz+J49e4zf/e53RsuWLY1WrVoZU6ZMMX766SezTpKRmprq9N6CggJDkvGXv/zFabx6DnvjjTfMsXHjxhnR0dF1ei0A/o/FMLgrAQBn06ZN0wsvvKDjx4+7vKEJAACNzciRI7V7927t27fvss/Vu3dvtW3bVh9++KEbOgMAAADgSeyJDjRxP/30k9PrH3/8Ua+88ooGDBhAgA4AaLTOnf/27dun1atXa+DAgbU6T0VFxXl7jG/YsEFffPFFrc8FAAAAoGFiJTrQxPXu3VsDBw5U9+7dVVRUpJdeekmHDh1STk6O043YAABoTMLDw3XPPfeoQ4cOOnDggBYuXKjy8nJt375dnTt3Vmlp6XlB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UVGRRo8e7aErAgDgwn5p/ktJSdHy5cvNf8RK0muvvaaIiAhdf/31kqSxY8fq0KFD2rBhg958800tWrRIR44cuajPrqys1MiRI9WsWTNt3rxZixYt0qOPPnrZ1/Tee+/plltu0dChQ7V9+3bl5OTommuuMY/fc8892rp1q1atWqW8vDwZhqGhQ4eqoqJCkpSamqry8nLl5uZq586devLJJ9WiRQtJ7p/vp0yZory8PC1fvlz5+fm67bbbNHjwYO3bt0/BwcEaPny4li1b5vSe7Oxs8+tWUVGh5ORktWzZUv/617/0ySefqEWLFho8eLBOnz59iV9BAADq15IlS+Tr66vPPvtM/9//9//pmWee0d///nfz+LPPPquEhARt375dw4YN0913362xY8fqrrvu0ueff66OHTtq7NixTt+zAPAAA0CT8/333xuSjJ07dxoLFy40Wrdubfz000/m8RdffNGQZGzfvt0wDMN4/PHHjZtuusnpHAcPHjQkGXv37q3P1gEAuGRnz39HjhwxfH19jdzcXPN4fHy88fDDDxuGYRhffvmlIcnYsmWLeXzfvn2GJOPZZ5+94Ge9//77hq+vr3H48GFz7MMPPzQkGStWrDAMwzAKCgqc5tvFixcbNpvN6TwrVqwwzv6WPT4+3khJSanxM7/66itDkvHJJ5+YYz/88IMRFBRkvP7664ZhGEavXr2Mxx57rMb3X+58f8MNNxj333+/YRiGceDAAcNqtRrfffedU82gQYOMGTNmmNfWokUL48SJE4ZhGEZpaakRGBhovP/++4ZhGMYrr7xidO3a1aiqqjLfX15ebgQFBRlr1641DMMwxo0bZ4wYMeKCvQEA4Ak33HCD0b17d6e57OGHHza6d+9uGIZhREdHG3fddZd57PDhw4YkY9asWeZYXl6eIcn8nqKm7xcA1D1WogNNwL59+3THHXeoQ4cOCg4OVvv27SVJhYWF2rt3r+Li4hQYGGjWn72iTZK++OILffTRR2rRooX56NatmyQ5bQsDAEBD8kvzX9u2bXXTTTcpOztbklRQUKC8vDylpKRIkvbu3StfX1/17dvXPF+nTp3UqlWri/rsvXv3KjIyUna73Rw7d369FDt27NCgQYNqPPbll1/K19dX/fv3N8dat26trl276ssvv5Qk3XfffUpPT1dCQoLmzJmj/Px8s9ad8/3OnTtV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",
"text/plain": [
"<Figure size 1500x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plot_numeric_boxplots(dataframe, columns):\n",
" # Фильтрация числовых столбцов\n",
" numeric_columns = ['age', 'avg_glucose_level', 'bmi']\n",
" \n",
" # Построение графиков\n",
" if numeric_columns:\n",
" plt.figure(figsize=(15, 5))\n",
" \n",
" for i, col in enumerate(numeric_columns):\n",
" if col != 'id':\n",
" plt.subplot(1, len(numeric_columns), i + 1)\n",
" sns.boxplot(y=dataframe[col])\n",
" plt.title(f'{col}')\n",
" plt.ylabel('')\n",
" plt.xlabel(col)\n",
" \n",
" plt.tight_layout()\n",
" plt.show()\n",
" else:\n",
" print(\"Нет подходящих числовых столбцов для построения графиков.\")\n",
"\n",
"plot_numeric_boxplots(data, data.columns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Видим выбросы в столбцах со средним уровнем глюкозы и в столбце bmi (индекс массы тела). устраним выбросы - поставим верхние и нижние границы</p>"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAHqCAYAAADrpwd3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABcoElEQVR4nO3dfZiVVb0//vcgMIPADIIxAwmI+AAGPhuSZqQk4kOgnJSiNPPIqfCRThpH0SSJ9Fh5NMQ0j2lBmqUezcQUBcpQEUVNjdBQSAVKZUZQRmT2749+7m8j7BIFBobX67ruS/Za6177cw9erJn33HvdZYVCoRAAAAAAAGAtLZq6AAAAAAAA2FwJ0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAYBMoKyvLN7/5zaYuY5OaMWNGysrKMmPGjKYuZbOqBYDm65vf/GbKysryt7/9baO+zxe/+MXsuOOOG/U9gP9HiA4AAAAAACW0bOoCAAAAAID37pprrklDQ0NTlwFbDSE6AAAAAGxBWrVq1dQlwFbFdi7QDL3wwgv56le/mt122y1t2rRJp06d8pnPfCbPP//8WmOfeOKJfOITn0ibNm2yww475KKLLsp1112XsrKytcbfdddd+fjHP562bdumffv2OfLII/PUU09tmosCYKv1Xta1Rx55JGVlZbn++uvXOv/uu+9OWVlZfvWrXxXbZsyYkf322y8VFRXp1atXfvjDHxb3MF1fN998c3bfffdUVFSkb9++ufXWW9/TPqWlxpSq46c//Wk++tGPZtttt812222Xgw8+OL/5zW8ajbnyyivzkY98JOXl5enatWtGjx6d5cuXNxqzYMGCDB8+PDU1NamoqMgOO+yQESNGpLa2dq3323fffdOmTZt07NgxI0aMyOLFi9/T1+Rfeeihh3L44Yenqqoq2267bT7xiU/kgQceKPb/4he/SFlZWWbOnLnWuT/84Q9TVlaWP/zhD8W2P/7xj/m3f/u3dOzYMRUVFdlvv/1y++23b5BaAeD9+Nvf/pbjjjsulZWV6dSpU84444ysWrWq2F9WVpZTTz21+H1EmzZtMmDAgDz55JNJ/r7e7bzzzqmoqMjAgQPX+vncnuiwabkTHZqhOXPm5Pe//31GjBiRHXbYIc8//3wmT56cgQMH5umnn862226bJHnxxRfzyU9+MmVlZRk7dmzatm2bH/3oRykvL19rzp/85Cc58cQTM3jw4Fx88cV54403Mnny5Bx00EF57LHHLN4AbDTvZV3bb7/9stNOO+XnP/95TjzxxEbn33TTTdluu+0yePDgJMljjz2Www8/PF26dMmFF16YNWvWZPz48fnQhz603rXdeeedOf7449OvX79MnDgxr732Wk4++eR8+MMf3iDX/o4LL7ww3/zmN/Oxj30s48ePT+vWrfPQQw/lvvvuy2GHHZbk7+H7hRdemEGDBuUrX/lK5s+fn8mTJ2fOnDl54IEH0qpVq7z11lsZPHhw6uvrc9ppp6WmpiYvvvhifvWrX2X58uWpqqpKkkyYMCHjxo3Lcccdl3//93/PX//611xxxRU5+OCD89hjj6VDhw7v+1ruu+++DBkyJPvuu28uuOCCtGjRItddd10OOeSQ/Pa3v81HP/rRHHnkkWnXrl1+/vOf5xOf+ESj82+66aZ85CMfSd++fZMkTz31VA488MB8+MMfzje+8Y20bds2P//5zzNs2LD88pe/zDHHHPO+awWA9+u4447LjjvumIkTJ+bBBx/M5Zdfntdeey033HBDccxvf/vb3H777Rk9enSSZOLEiTnqqKNy9tln58orr8xXv/rVvPbaa7nkkkvypS99Kffdd19TXQ5QAJqdN954Y6222bNnF5IUbrjhhmLbaaedVigrKys89thjxbZXXnml0LFjx0KSwsKFCwuFQqHw+uuvFzp06FA45ZRTGs25ZMmSQlVV1VrtALAhvdd1bezYsYVWrVoVXn311WJbfX19oUOHDoUvfelLxbajjz66sO222xZefPHFYtuCBQsKLVu2LKzvt8f9+vUr7LDDDoXXX3+92DZjxoxCkkKPHj0ajU1SuOCCC4qvTzzxxLXGFAqFwgUXXNCojgULFhRatGhROOaYYwpr1qxpNLahoaFQKBQKy5YtK7Ru3bpw2GGHNRrzgx/8oJCk8L//+7+FQqFQeOyxxwpJCjfffHPJa3r++ecL22yzTWHChAmN2p988slCy5Yt12r/Z+6///5CksL9999frHeXXXYpDB48uFh7ofD3v+OePXsWPvWpTxXbPvvZzxY6d+5cePvtt4ttL7/8cqFFixaF8ePHF9sOPfTQQr9+/QqrVq1q9HX52Mc+Vthll11K1gIAG8M76/inP/3pRu1f/epXC0kKjz/+eKFQ+Pv3BeXl5cWfuwuFQuGHP/xhIUmhpqamUFdXV2wfO3Zso5/RC4XS30cAG4ftXKAZatOmTfHPq1evziuvvJKdd945HTp0yKOPPlrsmzZtWgYMGJC99tqr2NaxY8eMHDmy0Xz33HNPli9fns9+9rP529/+Vjy22Wab9O/fP/fff/9GvyYAtl7vdV07/vjjs3r16txyyy3Ftt/85jdZvnx5jj/++CTJmjVrcu+992bYsGHp2rVrcdzOO++cIUOGrFddL730Up588smccMIJadeuXbH9E5/4RPr167fe11nKbbfdloaGhpx//vlp0aLxt+/vbPty77335q233sqZZ57ZaMwpp5ySysrK3HnnnUlSvNP87rvvzhtvvLHO97vlllvS0NCQ4447rtG6X1NTk1122eUDrfvz5s3LggUL8rnPfS6vvPJKce6VK1fm0EMPzaxZs4oPSTv++OOzbNmyzJgxo3j+L37xizQ0NBT/Pl999dXcd999Oe644/L6668X53vllVcyePDgLFiwIC+++OL7rhcA3q937i5/x2mnnZYk+fWvf11sO/TQQxt9qrt///5JkuHDh6d9+/Zrtf/5z3/eWOUC/4LtXKAZevPNNzNx4sRcd911efHFF1MoFIp9/7jf6QsvvJABAwasdf7OO+/c6PWCBQuSJIcccsg636+ysnJDlA0A6/Re17U999wzvXv3zk033ZSTTz45yd+3/th+++2La9iyZcvy5ptvrrXWJWuvf//KCy+8UPK8nXfeuVHA/0E899xzadGiRXbfffd/Wctuu+3WqL1169bZaaediv09e/bMmDFj8r3vfS9TpkzJxz/+8Xz605/O5z//+WLAvmDBghQKheyyyy7rfK8P8iCzd76nePeWO/+otrY22223XXHP9JtuuimHHnpokr//fe61117ZddddkyTPPvtsCoVCxo0bl3Hjxq1zvmXLlm3w7XUA4F959zraq1evtGjRotHe5t27d2805p21uFu3butsf+211zZCpcB7IUSHZui0007LddddlzPPPDMDBgxIVVVVysrKMmLEiOLdXevjnXN+8pOfpKamZq3+li39UwLAxrM+69rxxx+fCRMm5G9/+1vat2+f22+/PZ/97Gc3y7Wq1ENM16xZs1Hf97vf/W6++MUv5v/+7//ym9/8Jqeffnpxv9YddtghDQ0NKSsry1133ZVtttlmrfP/8a779fXO39d///d/N/ok3LrmLy8vz7Bhw3LrrbfmyiuvzNKlS/PAAw/k29/+9lrz/ed//mdxz/t3W99fjgDAxrCudX9d6+w/a//HGwmATWvz+2kC+MB+8Ytf5MQTT8x3v/vdYtuqVauyfPnyRuN69OiRZ599dq3z393Wq1evJEnnzp0zaNCgDV8wAPwT73VdS/4eol944YX55S9/merq6tTV1WXEiBHF/s6dO6eiouI9rX//So8ePUqe917m2m677dZ5De/cNf6OXr16paGhIU8//XTJ4PmdWubPn5+ddtqp2P7WW29l4cKFa63f/fr1S79+/XLeeefl97//fQ488MBcddVVueiii9KrV68UCoX07NmzeMf3hvLO9xSVlZXv6XuK448/Ptdff32mT5+eZ555JoVCobiVS5LitbZq1cr3KABsVhYsWJCePXsWXz/77LNpaGhotH0LsOWwJzo0Q9tss81av6G+4oor1rqzbfDgwZk9e3bmzZtXbHv11VczZcqUtcZVVlbm29/+dlavXr3W+/31r3/dcMUDwLu813UtSfr06ZN+/frlpptuyk033ZQuXbrk4IMPbjTXoEGDctttt+Wll14qtj/77LO566671quurl27pm/fvrnhhhuyYsWKYvvMmTPz5JNP/svze/Xqldra2jzxxBPFtpdffjm33npro3HDhg1LixYtMn78+LXuvH/n6zJo0KC0bt06l19+eaOv1bXXXpva2toceeSRSZK6urq8/fbbjebo169fWrRokfr6+iTJsccem2222SYXXnjhWl/3QqGQV1555V9eWyn77rtvevXqlUsvvbTR1+wd7/6eYtCgQenYsWPx7/OjH/1oo0Cic+fOGThwYH74wx/m5Zdf/pfzAcCmMmnSpEavr7jiiiRZ72ewAJsHd6JDM3TUUUflJz/5SaqqqrL77rtn9uzZuffee9OpU6dG484+++z89Kc/zac+9amcdtppadu2bX70ox+le/fuefXVV4sfN6usrMzkyZPzhS98Ifvss09GjBiRD33oQ1m0aFHuvPPOHHjggfnBD37QFJcKwFbgva5r7zj++ONz/vnnp6KiIieffPJaD+P85je/md/85jc58MAD85WvfCVr1qzJD37wg/Tt27fRL5bfi29/+9sZOnRoDjzwwJx00kl57bXXinOtKyT+RyNGjMg555yTY445JqeffnreeOONTJ48Obvuumuj/dR33nnnnHvuufnWt76Vj3/84zn22GNTXl6eOXPmpGvXrpk4cWI+9KEPZezYsbnwwgtz+OGH59Of/nTmz5+fK6+8Mvvvv38+//nPJ0nuu+++nHrqqfnMZz6TXXfdNW+//XZ+8pOfZJtttsnw4cOT/D3cv+iiizJ27Ng8//zzGTZsWNq3b5+FCxfm1ltvzahRo/Kf//mf6/V1ekeLFi3yox/9KEOGDMlHPvKRnHTSSfnwhz+cF198Mffff38qKytzxx13FMe3atUqxx57bG688casXLkyl1566VpzTpo0KQcddFD69euXU045JTvttFOWLl2a2bNn5y9/+Usef/zx91UrAHwQCxcuzKc//ekcfvjhmT17dn7605/mc5/7XPbcc8+mLg14PwpAs/Paa68VTjrppML2229faNeuXWHw4MGFP/7xj4UePXoUTjzxxEZjH3vsscLHP/7xQnl5eWGHHXYoTJw4sXD55ZcXkhSWLFnSaOz9999fGDx4cKGqqqpQUVFR6NWrV+GLX/xi4ZFHHtmEVwfA1mZ91rVCoVBYsGBBIUkhSeF3v/vdOuecPn16Ye+99y60bt260KtXr8KPfvSjwte+9rVCRUXFetd34403Fnr37l0oLy8v9O3bt3D77bcXhg8fXujdu3ejcUkKF1xwQaO23/zmN4W+ffsWWrduXdhtt90KP/3pTwsXXHBBYV3fpv/v//5vYe+99y6Ul5cXtttuu8InPvGJwj333NNozA9+8INC7969C61atSpUV1cXvvKVrxRee+21Yv+f//znwpe+9KVCr169ChUVFYWOHTsWPvnJTxbuvffetd7vl7/8ZeGggw4qtG3bttC2bdtC7969C6NHjy7Mnz//PX9t7r///kKSwv3339+o/bHHHisce+yxhU6dOhXKy8sLPXr0KBx33HGF6dOnrzXHPffcU0hSKCsrKyxevHid7/Pcc88VTjjhhEJNTU2hVatWhQ9/+MOFo446qvCLX/ziX9YCABvSO+v4008/Xfi3f/u3Qvv27Qvbbbdd4dRTTy28+eabxXFJCqNHj2507sKFCwtJCv/93//dqP2dNezmm28utp144omFHj16bNRrAf6fskLBUwmAxs4888z88Ic/zIoVK0o+0AQAmpthw4blqaeeyoIFCz7wXHvttVc+9KEP5Z577tkAlQEAAE3JnuiwlXvzzTcbvX7llVfyk5/8JAcddJAAHYBm693r34IFC/LrX/86AwcOXK95Vq9evdYe4zNmzMjjjz++3nMBAACbJ3eiw1Zur732ysCBA9OnT58sXbo01157bV566aVMnz690YPYAKA56dKlS774xS9mp512ygsvvJDJkyenvr4+jz32WHbZZZfU1tauFbS/W01NTZ5//vkMGjQon//859O1a9f88Y9/zFVXXZWqqqr84Q9/KLlv+5buzTffTG1t7T8d07Fjx7Ru3XoTVQQAABuPB4vCVu6II47IL37xi1x99dUpKyvLPvvsk2uvvVaADkCzdvjhh+dnP/tZlixZkvLy8gwYMCDf/va3s8suuyRJzjjjjFx//fX/dI5CoZDtttsu++67b370ox/lr3/9a9q2bZsjjzwy3/nOd5ptgJ4kN910U0466aR/Oub+++93Nz4AAM2CO9EBAOBdnn766bz00kv/dMygQYM2UTWbn5dffjlPPfXUPx2z7777ZrvttttEFQEAwMYjRAcAAAAAgBI8WBQAAAAAAErY7PZEb2hoyEsvvZT27dunrKysqcsBgI2uUCjk9ddfT9euXdOixZb9+23rOABbG+s4AGy53us6vtmF6C+99FK6devW1GUAwCa3ePHi7LDDDk1dxgdiHQdga2UdB4At179axze7EL19+/ZJ/l54ZWVlE1cDABtfXV1dunXrVlwDt2TWcQC2NtZxANhyvdd1fLML0d/5yFhlZaVFG4CtSnP42LR1HICtlXUcALZc/2od37I3bAMAAAAAgI1IiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKaNnUBcB7sWrVqixatKipy4ANpnv37qmoqGjqMgA2Ces4zY11HNiaWMdpbqzjvB9CdLYIixYtyqhRo5q6DNhgrr766uy6665NXQbAJmEdp7mxjgNbE+s4zY11nPdDiM4WoXv37rn66qubuoxm74UXXsiECRNy7rnnpkePHk1dTrPWvXv3pi4BYJOxjm8a1vFNxzoObE2s45uGdXzTsY7zfgjR2SJUVFT4LeEm1KNHD19vADYY6/imZR0HYEOyjm9a1nHYPHmwKAAAAAAAlCBEBwAAAACAEtYrRF+zZk3GjRuXnj17pk2bNunVq1e+9a1vpVAoFMcUCoWcf/756dKlS9q0aZNBgwZlwYIFG7xwAAAAAADY2NYrRL/44oszefLk/OAHP8gzzzyTiy++OJdcckmuuOKK4phLLrkkl19+ea666qo89NBDadu2bQYPHpxVq1Zt8OIBAAAAAGBjWq8Hi/7+97/P0KFDc+SRRyZJdtxxx/zsZz/Lww8/nOTvd6FfdtllOe+88zJ06NAkyQ033JDq6urcdtttGTFixAYuHwAAAAAANp71uhP9Yx/7WKZPn54//elPSZLHH388v/vd7zJkyJAkycKFC7NkyZIMGjSoeE5VVVX69++f2bNnb8CyAQAAAABg41uvO9G/8Y1vpK6uLr17984222yTNWvWZMKECRk5cmSSZMmSJUmS6urqRudVV1cX+96tvr4+9fX1xdd1dXXrdQEAAAAAALCxrNed6D//+c8zZcqUTJ06NY8++miuv/76XHrppbn++uvfdwETJ05MVVVV8ejWrdv7ngsAAAC2Bt/5zndSVlaWM888s9g2cODAlJWVNTq+/OUvN12RANBMrNed6F//+tfzjW98o7i3eb9+/fLCCy9k4sSJOfHEE1NTU5MkWbp0abp06VI8b+nSpdlrr73WOefYsWMzZsyY4uu6ujpBOgAAAJQwZ86c/PCHP8wee+yxVt8pp5yS8ePHF19vu+22m7I0AGiW1utO9DfeeCMtWjQ+ZZtttklDQ0OSpGfPnqmpqcn06dOL/XV1dXnooYcyYMCAdc5ZXl6eysrKRgcAAACwthUrVmTkyJG55pprst12263Vv+2226ampqZ4+BkbAD649QrRjz766EyYMCF33nlnnn/++dx666353ve+l2OOOSZJih8lu+iii3L77bfnySefzAknnJCuXbtm2LBhG6N+AAAA2GqMHj06Rx55ZAYNGrTO/ilTpmT77bdP3759M3bs2Lzxxhsl56qvr09dXV2jAwBY23pt53LFFVdk3Lhx+epXv5ply5ala9eu+Y//+I+cf/75xTFnn312Vq5cmVGjRmX58uU56KCDMm3atFRUVGzw4gEAAGBrceONN+bRRx/NnDlz1tn/uc99Lj169EjXrl3zxBNP5Jxzzsn8+fNzyy23rHP8xIkTc+GFF27MkgGgWVivEL19+/a57LLLctlll5UcU1ZWlvHjxzfagw0AAAB4/xYvXpwzzjgj99xzT8mb1EaNGlX8c79+/dKlS5cceuihee6559KrV6+1xntGGQC8N+sVogMAAACb3ty5c7Ns2bLss88+xbY1a9Zk1qxZ+cEPfpD6+vpss802jc7p379/kuTZZ59dZ4heXl6e8vLyjVs4ADQDQnQAAADYzB166KF58sknG7WddNJJ6d27d84555y1AvQkmTdvXpKkS5cum6JEAGi2hOgAAACwmWvfvn369u3bqK1t27bp1KlT+vbtm+eeey5Tp07NEUcckU6dOuWJJ57IWWedlYMPPjh77LFHE1UNAM2DEB0AAAC2cK1bt869996byy67LCtXrky3bt0yfPjwnHfeeU1dGgBs8YToAAAAsAWaMWNG8c/dunXLzJkzm64YAGjGWjR1AQAAAAAAsLkSogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHgGZi1qxZOfroo9O1a9eUlZXltttuW2vMM888k09/+tOpqqpK27Zts//++2fRokXF/lWrVmX06NHp1KlT2rVrl+HDh2fp0qWb8CoAAABg8yJEB4BmYuXKldlzzz0zadKkdfY/99xzOeigg9K7d+/MmDEjTzzxRMaNG5eKiorimLPOOit33HFHbr755sycOTMvvfRSjj322E11CQAAALDZadnUBQAAG8aQIUMyZMiQkv3nnntujjjiiFxyySXFtl69ehX/XFtbm2uvvTZTp07NIYcckiS57rrr0qdPnzz44IM54IADNl7xAAAAsJlyJzoAbAUaGhpy5513Ztddd83gwYPTuXPn9O/fv9GWL3Pnzs3q1aszaNCgYlvv3r3TvXv3zJ49e53z1tfXp66urtEBAAAAzYkQHQC2AsuWLcuKFSvyne98J4cffnh+85vf5Jhjjsmxxx6bmTNnJkmWLFmS1q1bp0OHDo3Ora6uzpIlS9Y578SJE1NVVVU8unXrtrEvBQAAADYpIToAbAUaGhqSJEOHDs1ZZ52VvfbaK9/4xjdy1FFH5aqrrnrf844dOza1tbXFY/HixRuqZAAAANgs2BMdALYC22+/fVq2bJndd9+9UXufPn3yu9/9LklSU1OTt956K8uXL290N/rSpUtTU1OzznnLy8tTXl6+0eoGAACApuZOdADYCrRu3Tr7779/5s+f36j9T3/6U3r06JEk2XfffdOqVatMnz692D9//vwsWrQoAwYM2KT1AgAAwObCnegA0EysWLEizz77bPH1woULM2/evHTs2DHdu3fP17/+9Rx//PE5+OCD88lPfjLTpk3LHXfckRkzZiRJqqqqcvLJJ2fMmDHp2LFjKisrc9ppp2XAgAE54IADmuiqAAAAoGkJ0QGgmXjkkUfyyU9+svh6zJgxSZITTzwxP/7xj3PMMcfkqquuysSJE3P66adnt912yy9/+cscdNBBxXO+//3vp0WLFhk+fHjq6+szePDgXHnllZv8WgAAAGBzIUQHgGZi4MCBKRQK/3TMl770pXzpS18q2V9RUZFJkyZl0qRJG7o8AAAA2CLZEx0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAC2MN/5zndSVlaWM888s9i2atWqjB49Op06dUq7du0yfPjwLF26tOmKBIBmQogOAAAAW5A5c+bkhz/8YfbYY49G7WeddVbuuOOO3HzzzZk5c2ZeeumlHHvssU1UJQA0H0J0AAAA2EKsWLEiI0eOzDXXXJPtttuu2F5bW5trr7023/ve93LIIYdk3333zXXXXZff//73efDBB5uwYgDY8gnRAQAAYAsxevToHHnkkRk0aFCj9rlz52b16tWN2nv37p3u3btn9uzZm7pMAGhWWjZ1AQAAAMC/duONN+bRRx/NnDlz1upbsmRJWrdunQ4dOjRqr66uzpIlS9Y5X319ferr64uv6+rqNmi9ANBcuBMdAAAANnOLFy/OGWeckSlTpqSiomKDzDlx4sRUVVUVj27dum2QeQGguRGiAwAAwGZu7ty5WbZsWfbZZ5+0bNkyLVu2zMyZM3P55ZenZcuWqa6uzltvvZXly5c3Om/p0qWpqalZ55xjx45NbW1t8Vi8ePEmuBIA2PLYzgUAAAA2c4ceemiefPLJRm0nnXRSevfunXPOOSfdunVLq1atMn369AwfPjxJMn/+/CxatCgDBgxY55zl5eUpLy/f6LUDwJZOiA4AAACbufbt26dv376N2tq2bZtOnToV208++eSMGTMmHTt2TGVlZU477bQMGDAgBxxwQFOUDADNhhAdAAAAmoHvf//7adGiRYYPH576+voMHjw4V155ZVOXBQBbPCE6AAAAbIFmzJjR6HVFRUUmTZqUSZMmNU1BANBMebAoAAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdABoJmbNmpWjjz46Xbt2TVlZWW677baSY7/85S+nrKwsl112WaP2V199NSNHjkxlZWU6dOiQk08+OStWrNi4hQMAAMBmTIgOAM3EypUrs+eee2bSpEn/dNytt96aBx98MF27dl2rb+TIkXnqqadyzz335Fe/+lVmzZqVUaNGbaySAQAAYLPXsqkLAAA2jCFDhmTIkCH/dMyLL76Y0047LXfffXeOPPLIRn3PPPNMpk2bljlz5mS//fZLklxxxRU54ogjcumll64zdAcAAIDmToi+gSxdujS1tbVNXQZ8IC+88EKj/8KWqqqqKtXV1U1dxmanoaEhX/jCF/L1r389H/nIR9bqnz17djp06FAM0JNk0KBBadGiRR566KEcc8wxa51TX1+f+vr64uu6urqNUzwAAAA0kfUO0V988cWcc845ueuuu/LGG29k5513znXXXVf8gbtQKOSCCy7INddck+XLl+fAAw/M5MmTs8suu2zw4jcXS5cuzee/cEJWv1X/rwfDFmDChAlNXQJ8IK1al+enP7lBkP4uF198cVq2bJnTTz99nf1LlixJ586dG7W1bNkyHTt2zJIlS9Z5zsSJE3PhhRdu8FoBAABgc7FeIfprr72WAw88MJ/85Cdz11135UMf+lAWLFiQ7bbbrjjmkksuyeWXX57rr78+PXv2zLhx4zJ48OA8/fTTqaio2OAXsDmora3N6rfq8+ZOn0hDRVVTlwOwVWuxqjb588zU1tYK0f/B3Llz8z//8z959NFHU1ZWtsHmHTt2bMaMGVN8XVdXl27dum2w+QEAAKCprVeIfvHFF6dbt2657rrrim09e/Ys/rlQKOSyyy7Leeedl6FDhyZJbrjh73cC3nbbbRkxYsQGKnvz1FBRlYa22zd1GQCwlt/+9rdZtmxZunfvXmxbs2ZNvva1r+Wyyy7L888/n5qamixbtqzReW+//XZeffXV1NTUrHPe8vLylJeXb9TaAQAAoCm1WJ/Bt99+e/bbb7985jOfSefOnbP33nvnmmuuKfYvXLgwS5YsyaBBg4ptVVVV6d+/f2bPnr3OOevr61NXV9foAAA2rC984Qt54oknMm/evOLRtWvXfP3rX8/dd9+dJBkwYECWL1+euXPnFs+777770tDQkP79+zdV6QAAANCk1utO9D//+c+ZPHlyxowZk//6r//KnDlzcvrpp6d169Y58cQTi/ulvvvj89XV1fZSBYCNbMWKFXn22WeLrxcuXJh58+alY8eO6d69ezp16tRofKtWrVJTU5PddtstSdKnT58cfvjhOeWUU3LVVVdl9erVOfXUUzNixIh07dp1k14LAAAAbC7W6070hoaG7LPPPvn2t7+dvffeO6NGjSr+oP1+jR07NrW1tcVj8eLF73suANiaPfLII9l7772z9957J0nGjBmTvffeO+eff/57nmPKlCnp3bt3Dj300BxxxBE56KCDcvXVV2+skgEAAGCzt153onfp0iW77757o7Y+ffrkl7/8ZZIU90tdunRpunTpUhyzdOnS7LXXXuuc016qALBhDBw4MIVC4T2Pf/7559dq69ixY6ZOnboBqwIAAIAt23rdiX7ggQdm/vz5jdr+9Kc/pUePHkn+/pDRmpqaTJ8+vdhfV1eXhx56KAMGDNgA5QIAAAAAwKazXnein3XWWfnYxz6Wb3/72znuuOPy8MMP5+qrry5+zLusrCxnnnlmLrroouyyyy7p2bNnxo0bl65du2bYsGEbo34AAAAAANho1itE33///XPrrbdm7NixGT9+fHr27JnLLrssI0eOLI45++yzs3Llyowa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wIABueuuu4r9q1atyujRo9OpU6e0a9cuw4cPz9KlS5uwYgBoPoToANBMPPLII9l7772z9957J0nGjBmTvffeO+eff35efPHF3H777fnLX/6SvfbaK126dCkev//974tzTJkyJb17986hhx6aI444IgcddFCuvvrqprokAOD/t8MOO+Q73/lO5s6dm0ceeSSHHHJIhg4dmqeeeipJctZZZ+WOO+7IzTffnJkzZ+all17Kscce28RVA0DzYDsXAGgmBg4cmEKhULL/n/W9o2PHjpk6deqGLAsA2ACOPvroRq8nTJiQyZMn58EHH8wOO+yQa6+9NlOnTs0hhxySJLnuuuvSp0+fPPjggznggAOaomQAaDaE6BtQizeXN3UJAFs9/xYDAM3dmjVrcvPNN2flypUZMGBA5s6dm9WrV2fQoEHFMb1790737t0ze/ZsIToAfEBC9A2ozcJZTV0CAAAAzdSTTz6ZAQMGZNWqVWnXrl1uvfXW7L777pk3b15at26dDh06NBpfXV2dJUuWlJyvvr4+9fX1xdd1dXUbq3QA2KIJ0TegN3senIY2HZq6DICtWos3l/ulJgDQLO22226ZN29eamtr84tf/CInnnhiZs6c+b7nmzhxYi688MINWCEANE9C9A2ooU2HNLTdvqnLAAAAoBlq3bp1dt555yTJvvvumzlz5uR//ud/cvzxx+ett97K8uXLG92NvnTp0tTU1JScb+zYsRkzZkzxdV1dXbp167bR6geALVWLpi4AAAAAWH8NDQ2pr6/Pvvvum1atWmX69OnFvvnz52fRokUZMGBAyfPLy8tTWVnZ6AAA1uZOdAAAANjMjR07NkOGDEn37t3z+uuvZ+rUqZkxY0buvvvuVFVV5eSTT86YMWPSsWPHVFZW5rTTTsuAAQM8VBQANgAhOgAAAGzmli1blhNOOCEvv/xyqqqqsscee+Tuu+/Opz71qSTJ97///bRo0SLDhw9PfX19Bg8enCuvvLKJqwaA5kGIDgAAAJu5a6+99p/2V1RUZNKkSZk0adImqggAth72RAcAAAAAgBKE6AAAAAAAUIIQHQAAAAAAShCiAwAAAABACR4sCgBs9ZYuXZra2tqmLgM+kBdeeKHRf2FLVVVVlerq6qYuAwCgSIgOAGzVli5dms9/4YSsfqu+qUuBDWLChAlNXQJ8IK1al+enP7lBkA4A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bPTo0SO77rprU5cBAAAAAE3Og0UBAAAAAKAEIToAAAAAAJQgRAcAAAAAgBKE6AAAAAAAUIIQHQAAAAAAShCiAwAAAABACUJ0AAAA2MxNnDgx+++/f9q3b5/OnTtn2LBhmT9/fqMxq1atyujRo9OpU6e0a9cuw4cPz9KlS5uoYgBoPoToAAAAsJmbOXNmRo8enQcffDD33HNPVq9encMOOywrV64sjjnrrLNyxx135Oabb87MmTPz0ksv5dhjj23CqgGgeWjZ1AUAAAAA/9y0adMavf7xj3+czp07Z+7cuTn44INTW1uba6+9NlOnTs0hhxySJLnuuuvSp0+fPPjggznggAOaomwAaBbciQ4AAABbmNra2iRJx44dkyRz587N6tWrM2jQoOKY3r17p3v37pk9e/Y656ivr09dXV2jAwBYmxAdAAAAtiANDQ0588wzc+CBB6Zv375JkiVLlqR169bp0KFDo7HV1dVZsmTJOueZOHFiqqqqike3bt02dukAsEUSogMAAMAWZPTo0fnDH/6QG2+88QPNM3bs2NTW1haPxYsXb6AKAaB5sSc6AAAAbCFOPfXU/OpXv8qsWbOyww47FNtramry1ltvZfny5Y3uRl+6dGlqamrWOVd5eXnKy8s3dskAsMVzJzoAAABs5gqFQk499dTceuutue+++9KzZ89G/fvuu29atWqV6dOnF9vmz5+fRYsWZcCAAZu6XABoVtyJDgAAAJu50aNHZ+rUqfm///u/tG/fvrjPeVVVVdq0aZOqqqqcfPLJGTNmTDp27JjKysqcdtppGTBgQA444IAmrh4AtmxCdAAAANjMTZ48OUkycODARu3XXXddvvjFLyZJvv/976dFixYZPnx46uvrM3jw4Fx55ZWbuFIAaH7WazuXiRMnZv/990/79u3TuXPnDBs2LPPnz280ZtWqVRk9enQ6deqUdu3aZfjw4Vm6dOkGLRoAAAC2JoVCYZ3HOwF6klRUVGTSpEl59dVXs3Llytxyyy0l90MHAN679QrRZ86cmdGjR+fBBx/MPffck9WrV+ewww7LypUri2POOuus3HHHHbn55pszc+bMvPTSSzn22GM3eOEAAAAAALCxrdd2LtOmTWv0+sc//nE6d+6cuXPn5uCDD05tbW2uvfbaTJ06NYccckiSv3+0rE+fPnnwwQftwwYAAAAAwBZlve5Ef7fa2tokSceOHZMkc+fOzerVqzNo0KDimN69e6d79+6ZPXv2Oueor69PXV1dowMAAAAAADYH7ztEb2hoyJlnnpkDDzwwffv2TZIsWbIkrVu3TocOHRqNra6uLj45/N0mTpyYqqqq4tGtW7f3WxIAAAAAAGxQ7ztEHz16dP7whz/kxhtv/EAFjB07NrW1tcVj8eLFH2g+AAAAAADYUNZrT/R3nHrqqfnVr36VWbNmZYcddii219TU5K233sry5csb3Y2+dOnSkk8ELy8vT3l5+fspAwAAAAAANqr1uhO9UCjk1FNPza233pr77rsvPXv2bNS/7777plWrVpk+fXqxbf78+Vm0aFEGDBiwYSoGAAAAAIBNZL3uRB89enSmTp2a//u//0v79u2L+5xXVVWlTZs2qaqqysknn5wxY8akY8eOqayszGmnnZYBAwbkgAMO2CgXAAAAAAAAG8t63Yk+efLk1NbWZuDAgenSpUvxuOmmm4pjvv/97+eoo47K8OHDc/DBB6empia33HLLBi8cAFg/a9asybhx49KzZ8+0adMmvXr1yre+9a0UCoXimEKhkPPPPz9dunRJmzZtMmjQoCxYsKAJqwYAAICmtV53ov/jD9mlVFRUZNKkSZk0adL7LgoA2PAuvvjiTJ48Oddff30+8pGP5JFHHslJJ52UqqqqnH766UmSSy65JJdffnmuv/769OzZM+PGjcvgwYPz9NNPp6KioomvAAAAADa99/VgUQBgy/P73/8+Q4cOzZFHHpkk2XHHHfOzn/0sDz/8cJK//7L8sssuy3nnnZehQ4cmSW644YZUV1fntttuy4gRI5qsdgAAAGgq67WdCwCw5frYxz6W6dOn509/+lOS5PHHH8/vfve7DBkyJEmycOHCLFmyJIMGDSqeU1VVlf79+2f27NlNUjMAAAA0NXeiA8BW4hvf+Ebq6urSu3fvbLPNNlmzZk0mTJiQkSNHJknxgeHV1dWNzquuri72vVt9fX3q6+uLr+vq6jZS9QAAANA03IkOAFuJn//855kyZUqmTp2aRx99NNdff30uvfTSXH/99e97zokTJ6aqqqp4dOvWbQNWDAAAAE1PiA4AW4mvf/3r+cY3vpERI0akX79++cIXvpCzzjorEydOTJLU1NQkSZYuXdrovKVLlxb73m3s2LGpra0tHosXL964FwEAAACbmBAdALYSb7zxRlq0aLz0b7PNNmloaEiS9OzZMzU1NZk+fXqxv66uLg899FAGDBiwzjnLy8tTWVnZ6AAAAIDmxJ7oALCVOProozNhwoR07949H/nIR/LYY4/le9/7Xr70pS8lScrKynLmmWfmoosuyi677JKePXtm3Lhx6dq1a4YNG9a0xQMAAEATEaIDwFbiiiuuyLhx4/LVr341y5YtS9euXfMf//EfOf/884tjzj777KxcuTKjRo3K8uXLc9BBB2XatGmpqKhowsoBAACg6QjRAWAr0b59+1x22WW57LLLSo4pKyvL+PHjM378+E1XGAAAAGzG7IkOAAAAAAAlCNEBAAAAAKAE27kAACRpsaq2qUsA2Or5txgA2BwJ0QGArVpVVVVatS5P/jyzqUsBIEmr1uWpqqpq6jIAAIqE6ADAVq26ujo//ckNqa119yNbthdeeCETJkzIueeemx49ejR1OfC+VVVVpbq6uqnLAAAoEqIDAFu96upqgQ3NRo8ePbLrrrs2dRkAANBseLAoAAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAAACUIEQHAAAAAIAShOgAAAAAAFCCEB0AAAAAAEoQogMAAAAAQAlCdAAAAAAAKEGIDgAAAAAAJQjRAQAAAACgBCE6AAAAbOZmzZqVo48+Ol27dk1ZWVluu+22Rv1f/OIXU1ZW1ug4/PDDm6ZYAGhmhOgAAACwmVu5cmX23HPPTJo0qeSYww8/PC+//HLx+NnPfrYJKwSA5qtlUxcAAAAA/HNDhgzJkCFD/umY8vLy1NTUbKKKAGDr4U50AAAAaAZmzJiRzp07Z7fddstXvvKVvPLKK01dEgA0C+5EBwAAgC3c4YcfnmOPPTY9e/bMc889l//6r//KkCFDMnv27GyzzTbrPKe+vj719fXF13V1dZuqXADYogjRAQAAYAs3YsSI4p/79euXPfbYI7169cqMGTNy6KGHrvOciRMn5sILL9xUJQLAFst2LgAAANDM7LTTTtl+++3z7LPPlhwzduzY1NbWFo/FixdvwgoBYMvhTnQAAABoZv7yl7/klVdeSZcuXUqOKS8vT3l5+SasCgC2TEJ0AAAA2MytWLGi0V3lCxcuzLx589KxY8d07NgxF154YYYPH56ampo899xzOfvss7Pzzjtn8ODBTVg1ADQPQnQAAADYzD3yyCP55Cc/WXw9ZsyYJMmJJ56YyZMn54knnsj111+f5cuXp2vXrjnssMPyrW99y53mALABCNEBAABgMzdw4MAUCoWS/XffffcmrAYAti4eLAoAAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACUI0QEAAAAAoAQhOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQA2Iq8+OKL+fznP59OnTqlTZs26devXx555JFif6FQyPnnn58uXbqkTZs2GTRoUBYsWNCEFQMAAEDTEqIDwFbitddey4EHHphWrVrlrrvuytNPP53vfve72W677YpjLrnkklx++eW56qqr8tBDD6Vt27YZPHhwVq1a1YSVAwAAQNNp2dQFAACbxsUXX5xu3brluuuuK7b17Nmz+OdCoZDLLrss5513XoYOHZokueGGG1JdXZ3bbrstI0aM2OQ1AwAAQFNzJzoAbCVuv/327LfffvnMZz6Tzp07Z++9984111xT7F+4cGGWLFmSQYMGFduqqqrSv3//zJ49e51z1tfXp66urtEBAAAAzYkQHQC2En/+858zefLk7LLLLrn77rvzla98Jaeffnquv/76JMmSJUuSJNXV1Y3Oq66uLva928SJE1NVVVU8unXrtnEvAgAAADYxIToAbCUaGhqyzz775Nvf/nb23nvvjBo1Kqecckquuuqq9z3n2LFjU1tbWzwWL168ASsGAACApidEB4CtRJcuXbL77rs3auvTp08WLVqUJKmpqUmSLF26tNGYpUuXFvverby8PJWVlY0OAAAAaE6E6ACwlTjwwAMzf/78Rm1/+tOf0qNHjyR/f8hoTU1Npk+fXuyvq6vLQw89lAEDBmzSWgEAAGBz0bKpCwAANo2zzjorH/vYx/Ltb387xx13XB5++OFcffXVufrqq5MkZWVlOfPMM3PRRRdll112Sc+ePTNu3Lh07do1w4YNa9riAQAAoIkI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/f/4xz/moIMOSkVFRXbffffce++9KSsry2233bbO8ev6ePY7a/I/uuOOO7L//vunoqIi22+/fY455phi32uvvZYTTjgh2223XbbddtsMGTIkCxYsKPa/8MILOfroo7Pddtulbdu2+chHPpJf//rXxf4Nud7X19fnP//zP/PhD384bdu2Tf/+/TNjxowkSV1dXdq0aZO77rqr0Tm33npr2rdvnzfeeCNJsnjx4hx33HHp0KFDOnbsmKFDh+b5559/X/UAQFN4++23c+qpp6aqqirbb799xo0bl0KhkCTZcccdc9FFF+WEE05Iu3bt0qNHj9x+++3561//mqFDh6Zdu3bZY4898sgjjxTns50LNA0hOmwFVq5cmTFjxuSRRx7J9OnT06JFixxzzDFpaGhIXV1djj766PTr1y+PPvpovvWtb60VKixfvjyHHHJI9t577zzyyCOZNm1ali5dmuOOO66JrggA/rV/tv6NHDkyN954Y/GH2CS56aab0rVr13z84x9Pkpxwwgl56aWXMmPGjPzyl7/M1VdfnWXLlr2n916zZk2GDRuWbbfdNg899FCuvvrqnHvuuR/4mu68884cc8wxOeKII/LYY49l+vTp+ehHP1rs/+IXv5hHHnkkt99+e2bPnp1CoZAjjjgiq1evTpKMHj069fX1mTVrVp588slcfPHFadeuXZINv96feuqpmT17dm688cY88cQT+cxnPpPDDz88CxYsSGVlZY466qhMnTq10TlTpkwpft1Wr16dwYMHp3379vntb3+bBx54IO3atcvhhx+et956631+BQFg07r++uvTsmXLPPzww/mf//mffO9738uPfvSjYv/3v//9HHjggXnsscdy5JFH5gtf+EJOOOGEfP7zn8+jjz6aXr165YQTTmj0PQvQBArAVuevf/1rIUnhySefLEyePLnQqVOnwptvvlnsv+aaawpJCo899lihUCgUvvWtbxUOO+ywRnMsXry4kKQwf/78TVk6ALxv/7j+LVu2rNCyZcvCrFmziv0DBgwonHPOOYVCoVB45plnCkkKc+bMKfYvWLCgkKTw/e9//1++11133VVo2bJl4eWXXy623XPPPYUkhVtvvbVQKBQKCxcubLTeXnfddYWqqqpG89x6662Ff/yWfcCAAYWRI0eu8z3/9Kc/FZIUHnjggWLb3/72t0KbNm0KP//5zwuFQqHQr1+/wje/+c11nv9B1/tPfOIThTPOOKNQKBQKL7zwQmGbbbYpvPjii43GHHrooYWxY8cWr61du3aFlStXFgqFQqG2trZQUVFRuOuuuwqFQqHwk5/8pLDbbrsVGhoaiufX19cX2rRpU7j77rsLhUKhcOKJJxaGDh36L2sDgKbwiU98otCnT59Ga9k555xT6NOnT6FQKBR69OhR+PznP1/se/nllwtJCuPGjSu2zZ49u5Ck+D3Fur5fADY+d6LDVmDBggX57Gc/m5122imVlZXZcccdkySLFi3K/Pnzs8cee6SioqI4/h/vaEuSxx9/PPfff3/atWtXPHr37p0kjbaFAYDNyT9b/z70oQ/lsMMOy5QpU5IkCxcuzOzZszNy5Mgkyfz589OyZcvss88+xfl23nnnbLfddu/pvefPn59u3bqlpqam2Pbu9fX9mDdvXg499NB19j3zzDNp2bJl+vfvX2zr1KlTdttttzzzzDNJktNPPz0XXXRRDjzwwFxwwQV54oknimM35Hr/5JNPZs2aNdl1110bzTdz5sziXEcccURatWqV22+/PUnyy1/+MpWVlRk0aFCxnmeffTbt27cvnt+xY8esWrXK9x8AbDEOOOCARluzDRgwIAsWLMiaNWuSJHvssUexr7q6OknSr1+/tdre66fhgI3Dg0VhK3D00UenR48eueaaa9K1a9c0NDSkb9++7/mj0CtWrMjRRx+diy++eK2+Ll26bOhyAWCD+Ffr38iRI3P66afniiuuyNSpU9OvX79GP7Ruai1atFjro9rvbMPyjg/6ILF///d/z+DBg3PnnXfmN7/5TSZOnJjvfve7Oe200zboer9ixYpss802mTt3brbZZptGfe9sH9O6dev827/9W6ZOnZoRI0Zk6tSpOf7449OyZcviHPvuu2/xFx3/6EMf+tB61QMAm6tWrVoV//xO2L6utoaGhk1bGNCIO9GhmXvllVcyf/78nHfeeTn00EPTp0+fvPbaa8X+3XbbLU8++WTq6+uLbXPmzGk0xz777JOnnnoqO+64Y3beeedGR9u2bTfZtQDAe/Wv1r8kGTp0aFatWpVp06Zl6tSpxbvQk7+vj2+//XYee+yxYtuzzz671hyl7Lbbblm8eHGWLl1abHv3+vpuH/rQh/L6669n5cqVxbZ/fMh38ve71aZPn77O8/v06ZO33347Dz30ULHtna/D7rvvXmzr1q1bvvzlL+eWW27J1772tVxzzTVJNux6v/fee2fNmjVZtmzZWnP94935I0eOzLRp0/LUU0/lvvvua/R3sM8++2TBggXp3LnzWnNUVVWtVz0A0FT+cV1OkgcffDC77LLLWr9kBjZvQnRo5rbbbrt06tQpV199dZ599tncd999GTNmTLH/c5/7XBoaGjJq1Kg888wzufvuu3PppZcm+X+/8R49enReffXVfPazn82cOXPy3HPP5e67785JJ51U/AgaAGxO/tX6lyRt27bNsGHDMm7cuDzzzDP57Gc/W+zr3bt3Bg0alFGjRuXhhx/OY489llGjRqVNmzaNPpJdyqc+9an06tUrJ554Yp544ok88MADOe+885Kk5Pn9+/fPtttum//6r//Kc889l6lTp+bHP/5xozEXXHBBfvazn+WCCy7IM888U3w4aJLssssuGTp0aE455ZT87ne/y+OPP57Pf/7z+fCHP5yhQ4cmSc4888zcfffdWbhwYR599NHcf//96dOnT5INu97vuuuuGTlyZE444YTccsstWbhwYR5++OFMnDgxd955Z3HcwQcfnJqamowcOTI9e/ZstBXNyJEjs/3222fo0KH57W9/m4ULF2bGjBk5/fTT85e//GW96gGAprJo0aKMGTMm8+fPz89+9rNcccUVOeOMM5q6LGA9CdGhmWvRokVuvPHGzJ07N3379s1ZZ52V//7v/y72V1ZW5o477si8efOy11575dxzz83555+fJMV90rt27ZoHHngga9asyWGHHZZ+/frlzDPPTIcOHdKihX9GANj8/Kv17x0jR47M448/no9//OPp3r17o74bbrgh1dXVOfjgg3PMMcfklFNOSfv27Rs9R6SUbbbZJrfddltWrFiR/fffP//+7/+ec889N0lKnt+xY8f89Kc/za9//ev069cvP/vZz/LNb36z0ZiBAwfm5ptvzu2335699torhxxySB5++OFi/3XXXZd99903Rx11VAYMGJBCoZBf//rXxY+Fr1mzJqNHj06fPn1y+OGHZ9ddd82VV16ZZMOv99ddd11OOOGEfO1rX8tuu+2WYcOGZc6cOY2+zmVlZfnsZz+bxx9/vNFd6Emy7bbbZtasWenevXuOPfbY9OnTJyeffHJWrVqVysrK9a4HAJrCCSeckDfffDMf/ehHM3r06JxxxhkZNWpUU5cFrKeywrs3XgS2elOmTMlJJ52U2traD7z3KgA0F3/5y1/SrVu33HvvvSUf7vnPPPDAAznooIPy7LPPplevXhuhQgAAYGPwYFEgN9xwQ3baaad8+MMfzuOPP55zzjknxx13nAAdgK3afffdlxUrVqRfv355+eWXc/bZZ2fHHXfMwQcf/J7Ov/XWW9OuXbvssssuefbZZ3PGGWfkwAMPFKADAMAWRogOZMmSJTn//POzZMmSdOnSJZ/5zGcyYcKEpi4LAJrU6tWr81//9V/585//nPbt2+djH/tYpkyZklatWmXKlCn5j//4j3We16NHjzz11FN5/fXXc84552TRokXZfvvtM2jQoHz3u9/dxFexYSxatKjRw0nf7emnn15rOxwAAGgubOcCAADr6fXXX8/SpUvX2deqVav06NFjE1e0cb399tt5/vnnS/bvuOOOadnS/TkAADRPQnQAAAAAACihRVMXAAAAAAAAmyshOgAAAAAAlCBEBwAAAACAEoToAAAAAABQghAdAAAAAABKEKIDAAAAAEAJQnQAAAAAAChBiA4AAAAAACX8f+U3LgqAEG6qAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 1500x500 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def remove_outliers(df):\n",
"\n",
" numeric_columns = ['age', 'avg_glucose_level', 'bmi']\n",
" for column in numeric_columns:\n",
" Q1 = df[column].quantile(0.25)\n",
" Q3 = df[column].quantile(0.75)\n",
" IQR = Q3 - Q1\n",
" lower_bound = Q1 - 1.5 * IQR\n",
" upper_bound = Q3 + 1.5 * IQR\n",
" df[column] = df[column].apply(lambda x: lower_bound if x < lower_bound else upper_bound if x > upper_bound else x)\n",
" return df\n",
" \n",
"data = remove_outliers(data)\n",
"plot_numeric_boxplots(data, data.columns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Так, от выбросов избавились, теперь разобьем на выборки</p>"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Размеры выборок:\n",
"Обучающая выборка: (4088, 10)\n",
"Тестовая выборка: (511, 10)\n",
"Контрольная выборка: (511, 10)\n"
]
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"# Определение признаков и целевой переменной\n",
"X = data.drop(columns=['id', 'stroke']) \n",
"y = data['stroke'] \n",
"\n",
"# Обучающая выборка\n",
"X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)\n",
"\n",
"# Тестовая и контрольная выборки\n",
"X_test, X_control, y_test, y_control = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42, stratify=y_temp)\n",
"\n",
"print(\"\\nРазмеры выборок:\")\n",
"print(f\"Обучающая выборка: {X_train.shape}\")\n",
"print(f\"Тестовая выборка: {X_test.shape}\")\n",
"print(f\"Контрольная выборка: {X_control.shape}\")"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"stroke\n",
"0 4861\n",
"1 249\n",
"Name: count, dtype: int64\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9kUlEQVR4nO3deXyM9/7//2d2IZlEkIRSQmqJpa0oglpDqlFVnFYpqpyWhhYtTs6ptfXVcmorqqeLpaUt1XLKsUQUVSkaja042sahjSRCk0ErieT6/dFP5mckthGZxPW4325zu5n39b7e1+uaTDJP1/W+rnExDMMQAACAibk6uwAAAABnIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABAADTIxABABz2/PPPq3Pnzs4uw2bx4sVycXHRd999d8tj5ebmqkaNGlqwYEExVIbSjkCEO1rBH8eCR7ly5VS3bl0NHz5caWlpzi4PKNOSk5P13nvv6e9///tNrbdz505NmjRJmZmZt6ewYuLh4aHRo0dr6tSpunjxorPLwW1GIIIpTJkyRR9++KHmzZunVq1a6e2331ZERIR+//13Z5cGlFlz5sxRSEiIOnTocFPr7dy5U5MnTy71gUiSBg0apIyMDC1fvtzZpeA2IxDBFLp27aqnnnpKQ4YM0eLFizVy5EglJydrzZo1zi4NKJNyc3O1bNkyPf7447d1O/n5+U49OuPv768uXbpo8eLFTqsBJYNABFPq2LGjpD8P+UvS2bNn9fLLL6tx48by8fGRxWJR165dtW/fvkLrXrx4UZMmTVLdunVVrlw5Va1aVT179tRPP/0kSTp+/LjdaborH+3bt7eNtXXrVrm4uOjTTz/V3//+dwUHB6tChQrq3r27Tp48WWjbu3bt0kMPPSQ/Pz+VL19e7dq10zfffFPkPrZv377I7U+aNKlQ348++kjh4eHy9vZWQECA+vTpU+T2r7Vvl8vPz9fs2bPVsGFDlStXTkFBQXruuef022+/2fWrVauWunXrVmg7w4cPLzRmUbXPmDGj0GsqSdnZ2Zo4caJCQ0Pl5eWlGjVqaOzYscrOzi7ytbpc+/btC403depUubq6FjpKcKOvxz//+U+1atVKlSpVkre3t8LDw/XZZ58Vuf2PPvpIzZs3V/ny5VWxYkW1bdtWmzZtsuuzfv16tWvXTr6+vrJYLHrggQcK1bZy5Urbz7Ry5cp66qmn9Ouvv9r1efrpp+1qrlixotq3b6+vv/76uq/Tjh07lJGRocjIyELL3nrrLTVs2NC2D82aNbPVN2nSJI0ZM0aSFBISYtv28ePHJf35cx4+fLiWLVumhg0bysvLSxs2bJAkff/99+ratassFot8fHzUqVMnffvtt9et9bffflPz5s1VvXp1HT16VNLNvUc6d+6sHTt26OzZs9fdFsoud2cXADhDQXipVKmSJOnnn3/W6tWr9Ze//EUhISFKS0vTO++8o3bt2umHH35QtWrVJEl5eXnq1q2b4uPj1adPH7344os6d+6c4uLidPDgQdWpU8e2jSeffFIPP/yw3XZjY2OLrGfq1KlycXHRuHHjlJ6ertmzZysyMlJJSUny9vaWJG3ZskVdu3ZVeHi4Jk6cKFdXVy1atEgdO3bU119/rebNmxcat3r16po2bZok6fz58xo2bFiR2x4/frwef/xxDRkyRKdPn9Zbb72ltm3b6vvvv5e/v3+hdZ599lk9+OCDkqTPP/9cX3zxhd3y5557TosXL9agQYP0wgsvKDk5WfPmzdP333+vb775Rh4eHkW+DjcjMzPTtm+Xy8/PV/fu3bVjxw49++yzatCggQ4cOKBZs2bpv//9r1avXn1T21m0aJFeeeUVvfnmm+rbt2+Rfa73esyZM0fdu3dXv379lJOTo08++UR/+ctftHbtWkVHR9v6TZ48WZMmTVKrVq00ZcoUeXp6ateuXdqyZYu6dOki6c95cc8884waNmyo2NhY+fv76/vvv9eGDRts9RW89g888ICmTZumtLQ0zZkzR998802hn2nlypU1a9YsSdIvv/yiOXPm6OGHH9bJkyeL/NkX2Llzp1xcXHT//ffbtb/77rt64YUX1Lt3b7344ou6ePGi9u/fr127dqlv377q2bOn/vvf/+rjjz/WrFmzVLlyZUlSlSpVbGNs2bJFK1as0PDhw1W5cmXVqlVLhw4d0oMPPiiLxaKxY8fKw8ND77zzjtq3b69t27apRYsWRdaZkZGhzp076+zZs9q2bZvq1Klz0++R8PBwGYahnTt3FhngcYcwgDvYokWLDEnG5s2bjdOnTxsnT540PvnkE6NSpUqGt7e38csvvxiGYRgXL1408vLy7NZNTk42vLy8jClTptjaPvjgA0OSMXPmzELbys/Pt60nyZgxY0ahPg0bNjTatWtne/7VV18Zkoy77rrLsFqttvYVK1YYkow5c+bYxr7nnnuMqKgo23YMwzB+//13IyQkxOjcuXOhbbVq1cpo1KiR7fnp06cNScbEiRNtbcePHzfc3NyMqVOn2q174MABw93dvVD7sWPHDEnGkiVLbG0TJ040Lv9T8vXXXxuSjGXLltmtu2HDhkLtNWvWNKKjowvVHhMTY1z55+nK2seOHWsEBgYa4eHhdq/phx9+aLi6uhpff/213foLFy40JBnffPNNoe1drl27drbx1q1bZ7i7uxsvvfRSkX1v5PUwjD9/TpfLyckxGjVqZHTs2NFuLFdXV+Oxxx4r9F4s+JlnZmYavr6+RosWLYw//vijyD45OTlGYGCg0ahRI7s+a9euNSQZEyZMsLUNHDjQqFmzpt04//rXvwxJxu7du4vc5wJPPfWUUalSpULtjz76qNGwYcNrrjtjxgxDkpGcnFxomSTD1dXVOHTokF17jx49DE9PT+Onn36ytaWkpBi+vr5G27ZtbW0Fv/N79uwxTp06ZTRs2NCoXbu2cfz4cVufm32PpKSkGJKMN95445r7hbKNU2YwhcjISFWpUkU1atRQnz595OPjoy+++EJ33XWXJMnLy0uurn/+OuTl5enMmTPy8fFRvXr1tHfvXts4q1atUuXKlTVixIhC27jyNMnNGDBggHx9fW3Pe/furapVq+o///mPJCkpKUnHjh1T3759debMGWVkZCgjI0MXLlxQp06dtH37duXn59uNefHiRZUrV+6a2/3888+Vn5+vxx9/3DZmRkaGgoODdc899+irr76y65+TkyPpz9fralauXCk/Pz917tzZbszw8HD5+PgUGjM3N9euX0ZGxnXnjPz666966623NH78ePn4+BTafoMGDVS/fn27MQtOk165/avZvXu3Hn/8cfXq1UszZswoss+NvB6SbEf5pD9P32RlZenBBx+0e2+tXr1a+fn5mjBhgu29WKDgvRUXF6dz587pb3/7W6GfbUGf7777Tunp6Xr++eft+kRHR6t+/fpat26d3Xr5+fm21ygpKUlLly5V1apV1aBBg2vu05kzZ1SxYsVC7f7+/vrll1+0Z8+ea65/Le3atVNYWJjteV5enjZt2qQePXqodu3atvaqVauqb9++2rFjh6xW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kWFb/8SJE9qxY0ehvufOnVOVKlU0b948DRkypHh3EECJ4wgRgDJp+/btys/PV1JSkn788UdNnz69UB+r1aoKFSpcdYzNmzerU6dOuuuuu+Tr66v+/fvrzJkz+v333yX9/0eIinL48GFlZ2dfdTmAsoVABKBMql27tuLj4xUWFqYFCxZo0qRJ2r9/v12flJQUVatWrcj1jx8/rm7duqlJkyZatWqVEhMTNX/+fElSTk6OJMnb2/uq27/WMgBlD4EIQJnUuHFjVa5cWZL0l7/8RT179tSAAQNsYebChQs6fPiw7r///iLXT0xMVH5+vt588021bNlSdevWVUpKil2fJk2aKD4+vsj177nnHnl7e191OYCyhUAE4I4wf/58paena/LkyTpy5IiefPJJ+fv7q2vXrkX2Dw0NVW5urt566y39/PPP+vDDD7Vw4UK7PrGxsdqzZ4+ef/557d+/X0eOHNHbb7+tjIwMlStXTuPGjdPYsWO1dOlS/fTTT/r222/1/vvvl8TuAihmBCIAd4SAgAC9++67euONNzRs2DBdunRJmzdvlo+PT5H97733Xs2cOVNvvPGGGjVqpGXLlmnatGl2ferWratNmzZp3759at68uSIiIrRmzRq5u7tLksaPH6+XXnpJEyZMUIMGDfTEE08oPT39tu8rgOLHVWYAAMD0OEIEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABMj0AEAABM7/8DpNEDZYuGXjoAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Подсчет количества объектов каждого класса\n",
"class_counts = y.value_counts()\n",
"print(class_counts)\n",
"\n",
"# Визуализация\n",
"sns.barplot(x=class_counts.index, y=class_counts.values)\n",
"plt.title(\"Распределение классов (stroke)\")\n",
"plt.xlabel(\"Класс\")\n",
"plt.ylabel(\"Количество\")\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Напишем функцию и сделаем аугментацию данных</p>"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Данные ДО аугментации в ОБУЧАЮЩЕЙ ВЫБОРКЕ (60-80% данных)\n",
"\n",
"stroke\n",
"0 3889\n",
"1 199\n",
"Name: count, dtype: int64\n",
"\n",
"После оверсемплинга\n",
"\n",
"stroke\n",
"0 3889\n",
"1 1944\n",
"Name: count, dtype: int64\n",
"\n",
"После балансировки данных (андерсемплинга)\n",
"\n",
"stroke\n",
"0 1944\n",
"1 1944\n",
"Name: count, dtype: int64\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Данные ДО аугментации в ТЕСТОВОЙ ВЫБОРКЕ (10-20% данных)\n",
"\n",
"stroke\n",
"0 486\n",
"1 25\n",
"Name: count, dtype: int64\n",
"\n",
"После оверсемплинга\n",
"\n",
"stroke\n",
"0 486\n",
"1 243\n",
"Name: count, dtype: int64\n",
"\n",
"После балансировки данных (андерсемплинга)\n",
"\n",
"stroke\n",
"0 243\n",
"1 243\n",
"Name: count, dtype: int64\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"from imblearn.over_sampling import RandomOverSampler\n",
"from imblearn.under_sampling import RandomUnderSampler\n",
"\n",
"def over_under_sampling(x_selection, y_selection):\n",
"\n",
" # сначала увеличение меньшинства\n",
"\n",
" oversampler = RandomOverSampler(sampling_strategy=0.5, random_state=42) \n",
" x_over, y_over = oversampler.fit_resample(x_selection, y_selection) \n",
"\n",
" print(\"\\nПосле оверсемплинга\\n\")\n",
" print(y_over.value_counts())\n",
"\n",
" # потом уменьшение большинства\n",
"\n",
" undersampler = RandomUnderSampler(sampling_strategy=1.0, random_state=42)\n",
" x_balanced, y_balanced = undersampler.fit_resample(x_over, y_over)\n",
"\n",
" print(\"\\nПосле балансировки данных (андерсемплинга)\\n\")\n",
" print(y_balanced.value_counts())\n",
"\n",
" plt.pie(\n",
" y_balanced.value_counts(), \n",
" labels=class_counts.index, # Метки классов (0 и 1)\n",
" autopct='%1.1f%%', # Отображение процентов\n",
" colors=['lightgreen', 'lightcoral'], # Цвета для классов\n",
" startangle=45, # Поворот диаграммы\n",
" explode=(0, 0.05) # Небольшое смещение для класса 1\n",
" )\n",
" plt.title(\"Распределение классов (stroke)\")\n",
" plt.show()\n",
"\n",
"print(\"Данные ДО аугментации в ОБУЧАЮЩЕЙ ВЫБОРКЕ (60-80% данных)\\n\")\n",
"print(y_train.value_counts())\n",
"over_under_sampling(X_train, y_train)\n",
"\n",
"print(\"Данные ДО аугментации в ТЕСТОВОЙ ВЫБОРКЕ (10-20% данных)\\n\")\n",
"print(y_test.value_counts())\n",
"over_under_sampling(X_test, y_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Теперь можно и к конструированию признаков приступить) данные ведь сбалансированы (в выборках)</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 30px;\">Унитарное кодирование категориальных признаков <br/> <br/>Применяем к категориальным (НЕ числовым) признакам: 'gender', 'ever_married', 'work_type', 'Residence_type', 'smoking_status'</p>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# One-Hot Encoding\n",
"categorical_columns = ['gender', 'ever_married', 'work_type', 'Residence_type', 'smoking_status']\n",
"X_encoded = pd.get_dummies(X_train, columns=categorical_columns, drop_first=True)\n",
"\n",
"print(\"Данные после унитарного кодирования:\")\n",
"print(X_encoded.head())\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}