diff --git a/lab_3/Lab3.ipynb b/lab_3/Lab3.ipynb new file mode 100644 index 0000000..5b4d797 --- /dev/null +++ b/lab_3/Lab3.ipynb @@ -0,0 +1,843 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **СТОЛБЦЫ ДАТАСЕТА:**\n", + "\n", + "**Id**\n", + "\n", + "**name**\n", + "\n", + "**est_diameter_min** – минимальный диаметр косм. объекта (астероид, комета) рядом с Землёй (км)\n", + "\n", + "**est_diameter_max** – максимальный диаметр косм. объекта\n", + "\n", + "**relative_velocity** – скорость относительно Земли (км/с)\n", + "\n", + "**miss_distance** – расстояние, на кот. проходит рядом с Землёй (км)\n", + "\n", + "**orbiting_body** – тело, вокруг которого вращается (везде Земля)\n", + "\n", + "**sentry_object** – ведётся ли за ним авто мониторинг (везде false)\n", + "\n", + "**absolute_magnitude** – звёздная величина (яркость)\n", + "\n", + "**hazardous** – опасный для Земли / нет" + ] + }, + { + "cell_type": "code", + "execution_count": 254, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['id', 'name', 'est_diameter_min', 'est_diameter_max',\n", + " 'relative_velocity', 'miss_distance', 'orbiting_body', 'sentry_object',\n", + " 'absolute_magnitude', 'hazardous'],\n", + " dtype='object')\n" + ] + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.read_csv(\"..//static//csv//neo.csv\")\n", + "print(df.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Бизнес-цели:\n", + "\n", + "1) Увеличение безопасности Земли\n", + "\n", + "2) Увеличение информации о безопасных космических объектах, на поверхности которых можно проводить исследования \n", + "\n", + "\n", + "Цели технического проекта:\n", + "\n", + "1) Построить модель машинного обучения, которая сможет предсказать, нужно ли вести наблюдения за космическим объектом, как за опасным для Земли. Вход: est_diameter_min, est_diameter_max, relative_velocity, miss_distance, absolute_magnitude, hazardous. Целевой признак: hazardous\n", + "\n", + "2) Построить модель машинного обучения, которая сможет предсказать, безопасный ли объект для проведения исследований на его поверхности. Вход: est_diameter_min, est_diameter_max, relative_velocity, miss_distance, absolute_magnitude, hazardous. Целевой признак: hazardous" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**ПОДГОТОВКА ДАННЫХ**\n", + "\n", + "Т.к. hazardous является целевым признаком, то необходимо, чтобы данных об опасных и безопасных объектах было примерно равное количество. Безопасных объектов гораздо больше, поэтому можно произвести undersampling для того, чтобы количество безопасных и опасных объектов стало равным " + ] + }, + { + "cell_type": "code", + "execution_count": 255, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "НАЧАЛЬНОЕ РАСПРЕДЕЛЕНИЕ\n", + "Кол-во объектов с hazardous = true: 8840\n", + "Кол-во объектов с hazardous = false: 81996\n", + "\n", + "СБАЛАНСИРОВАННОЕ РАСПРЕДЕЛЕНИЕ\n", + "Кол-во объектов с hazardous = true: 8840\n", + "Кол-во объектов с hazardous = false: 8840\n" + ] + } + ], + "source": [ + "\n", + "print('НАЧАЛЬНОЕ РАСПРЕДЕЛЕНИЕ')\n", + "true_hazardous = df[df['hazardous'] == True].shape[0]\n", + "print(f'Кол-во объектов с hazardous = true: {true_hazardous}')\n", + "\n", + "false_hazardous = df[df['hazardous'] == False].shape[0]\n", + "print(f'Кол-во объектов с hazardous = false: {false_hazardous}')\n", + "\n", + "\n", + "true_count = df[df['hazardous'] == True].shape[0]\n", + "\n", + "\n", + "false_count = df[df['hazardous'] == False].shape[0]\n", + "\n", + "\n", + "# разделение датасета на 2 части по hazardous\n", + "from sklearn.utils import resample\n", + "df_hazardous_true = df[df['hazardous'] == True]\n", + "df_hazardous_false = df[df['hazardous'] == False]\n", + "\n", + "# undersampling к части с Hazardous=false\n", + "df_hazardous_false_undersampled = resample(df_hazardous_false, \n", + " replace=False, \n", + " n_samples=len(df_hazardous_true), #столько записей, сколько в df_hazardous_true\n", + " random_state=123) \n", + "\n", + "# Объединение 2 частей\n", + "df_balanced = pd.concat([df_hazardous_true, df_hazardous_false_undersampled])\n", + "\n", + "# Перемешивание записей\n", + "df = df_balanced.sample(frac=1, random_state=123).reset_index(drop=True)\n", + "\n", + "\n", + "print('\\nСБАЛАНСИРОВАННОЕ РАСПРЕДЕЛЕНИЕ')\n", + "true_hazardous = df[df['hazardous'] == True].shape[0]\n", + "print(f'Кол-во объектов с hazardous = true: {true_hazardous}')\n", + "\n", + "false_hazardous = df[df['hazardous'] == False].shape[0]\n", + "print(f'Кол-во объектов с hazardous = false: {false_hazardous}')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Проверка на выбросы. В столбцах est_diameter_min, est_diameter_max, relative_velocity есть единичные выбросы, которые значительно больше основного распределения (est_diameter_min - которые больше примерно 3; est_diameter_max - которые больше примерно 5; relative_velocity - которые больше примерно 175000), и в столбце absolute_magnitude есть выбросы, которые значительно ниже основного распределния (примерно меньше 13). Эти единичные выбросы можно удалить. Остальные же значения, находящиеся за рамками основного распределения стоит оставить, т.к. они представляют из себя полезный шум\n", + "\n", + "После удаления единичных выбросов видно, что количество записей уменьшилось очень незначительно" + ] + }, + { + "cell_type": "code", + "execution_count": 256, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Количество записей до устранения выбросов: 17680\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAMWCAYAAAAgRDUeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAClFUlEQVR4nOzdeVhU5fvH8Q8MssjmLvB1IzHBPdEUExU1ydQitdwqNcsWtcytrL6mZllaqZVLfiu1xTLNqLRcc6uwhbLU1MgkKwVLBZQQFJ7fH16cn8OioDAD+n5d11w6z3nmnHsO8Nwz9znnOS7GGCMAAAAAAADAgVydHQAAAAAAAACuPBSlAAAAAAAA4HAUpQAAAAAAAOBwFKUAAAAAAADgcBSlAAAAAAAA4HAUpQAAAAAAAOBwFKUAAAAAAADgcBSlAAAAAAAA4HAUpQAAAAAAAOBwFKWuIC4uLpo8ebJDtrVmzRq1aNFCnp6ecnFxUUpKikO2WxYNGTJE9erVs2tz5M/iSjV58mS5uLg4OwzgskQ+cQ7yCYArGbmncAXlh0u1ePFiubi4KDExsUTX60yJiYlycXHR4sWLS2X9mzdvlouLizZv3lwq679cUZQqAbl/sOc+atSooaioKH322WfODu+S/fzzz5o8eXKRB6SjR4/qtttuk5eXl+bOnau33npL3t7epRtkCfnqq680efLkMp94HGHevHmlNmADKBj5xB755PJAPgHKNnKPvfKcey7GM888o9jYWGeHcdlaunSpZs+e7ewwyjQ3ZwdwOZk6daqCg4NljFFycrIWL16sG2+8UZ988ol69uzp7PAu2s8//6wpU6aoU6dORarAf/vttzpx4oSeeuopde3atfQDLEFfffWVpkyZoiFDhqhSpUqltp2MjAy5uZXtP7958+apWrVqGjJkiLNDuShPPPGEHn30UWeHAVwU8slZ5JMLI58AKCnknrPKc+65GM8884z69u2rmJgYu/Y77rhD/fv3l4eHh3MCK4c6dOigjIwMubu7W21Lly7Vrl27NHr0aOcFVsaV7U8x5Uz37t3VqlUr6/mwYcNUs2ZNvfvuu+V6IC+uI0eOSFKJfghPT0+/rI5QeHp6OjsEpzhz5oxycnLsBurS4ubmVua/qAGFIZ+cRT65MPJJ6ecT4EpB7jmrLOSespCrbDabbDabU2Mob1xdXa/YvHwpuHyvFFWqVEleXl75vhinp6dr7Nixql27tjw8PNSwYUM9//zzMsZIOnvUMzQ0VKGhocrIyLBed+zYMQUGBqpdu3bKzs6WdPb6YR8fH/3222+Kjo6Wt7e3goKCNHXqVGt95/PDDz+oe/fu8vPzk4+Pj7p06aLt27dbyxcvXqxbb71VkhQVFWWd0lvYdbKdOnXS4MGDJUmtW7eWi4uL3ZHR5cuXKzw8XF5eXqpWrZpuv/12/fXXX3bryH1P+/fv14033ihfX18NGjTovO/jr7/+0l133aWaNWvKw8NDjRs31htvvJGv38svv6zGjRurYsWKqly5slq1aqWlS5dKOjsH0fjx4yVJwcHB1nstznXUsbGxatKkiTw9PdWkSRN9+OGHBfbLe03877//rgceeEANGzaUl5eXqlatqltvvTXftnNPr/7iiy/04IMPqnr16qpUqZLuvfdeZWVlKSUlRXfeeacqV66sypUra8KECfl+D3JycjR79mw1btxYnp6eqlmzpu69914dP37c6lOvXj3t3r1bW7ZssfZDp06drOUpKSkaPXq09TscEhKi5557Tjk5OVaf3Gu2n3/+ec2ePVv169eXh4eHfv755yLty3r16qlnz57avHmzWrVqJS8vLzVt2tT63Vu5cqWaNm0qT09PhYeH64cffrB7fUFzSrm4uGjkyJHWzyn3d2XNmjVFiglwFvIJ+YR84rx88tNPP2nIkCG66qqr5OnpqYCAAN111106evSo1ac4f2tAeUHucUzuyf3M+vPPP2vgwIGqXLmy2rdvby1/++23rW1WqVJF/fv31x9//HHBffP888+rXbt2qlq1qry8vBQeHq4VK1bY9XFxcVF6erqWLFli7Zvc95t3TqmePXvqqquuKnBbERERdgXNS4k713fffScXFxctWbIk37K1a9fKxcVFq1atstqKmr8L8vnnnysyMlLe3t6qVKmSbr75Zu3Zsydfv7/++kvDhg1TUFCQPDw8FBwcrPvvv19ZWVmS8s8p1alTJ61evVq///67tX/r1aunkydPytvbWw899FC+bfz555+y2WyaPn16kWK/LBhcskWLFhlJZsOGDebvv/82R44cMbt27TL33nuvcXV1NevWrbP65uTkmM6dOxsXFxdz9913m1deecX06tXLSDKjR4+2+m3fvt3YbDbz8MMPW239+/c3Xl5eZt++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2dSqVSv99ttvVtvy5cvl7++v66+/3m5fhYeHy8fHR5s2bbpgrMuXL1dkZKQqV65st46uXbsqOztbW7dutevfp08fVa9e/YLrLUijRo0UERFh9z4lqXPnzqpTp06+9nPfa2G6du2q+vXrW8+bNWsmPz+/Ir0WcBTySeHIJ+dHPinYpeSTc/fpqVOn9M8//6ht27aSlG+fFudvDShryD2FK63cc6777rvP7vnKlSuVk5Oj2267zW6MDAgIUIMGDS44zp47dh0/flypqamKjIwsMBcUhZ+fn7p3767333/f7tLKZcuWqW3bttZYeqlxn6tfv346ffq03e/gunXrlJKSon79+kkqXv7OKzfnDhkyRFWqVLHamzVrpuuvv16ffvqppLOXq8fGxqpXr175LlOUlG/KkKLo2rWrgoKC9M4771htu3bt0k8//aTbb7+92Osrz5gFuARde+21dr+kAwYM0DXXXKORI0eqZ8+ecnd31++//66goCD5+vravTYsLEzS2bkgcrm7u+uNN95Q69at5enpqUWLFhX4C+/q6prv+t6rr75akgqdv+Lvv//Wv//+q4YNG+ZbFhYWppycHP3xxx9q3Lhx0d78BeS+r4K2Fxoaqi+++MKuzc3NTbVq1brgev/++2+lpKRo4cKFWrhwYYF9cicrfOSRR7RhwwZde+21CgkJUbdu3TRw4EBdd911xX07+eS+vwYNGuRb1rBhwwsO/hkZGZo+fboWLVqkv/76y26gT01Nzdf/3A/QkqwvLrVr187Xfu7cHgkJCUpNTVWNGjUKjCN3X51PQkKCfvrpp0K/GORdR3Bw8AXXWZjivE9Jdu+1qOuUpMqVKxfptYCjkE8KRz4hn1yMS8knx44d05QpU/Tee+/liynvPi3q3xpQFpF7Cldauedcece4hIQEGWMKzAeSVKFChfOub9WqVZo2bZp27NihzMxMq/1SxqR+/fopNjZWcXFxateunfbv36/4+HjNnj27xOI+V/PmzRUaGqply5ZZB0uWLVumatWqqXPnzpKKl7/zOt/PNSwsTGvXrlV6erpOnjyptLQ0NWnSpMixX4irq6sGDRqk+fPn699//1XFihX1zjvvyNPT05oH7UpBUaoUubq6KioqSnPmzFFCQsJFDYpr166VdPbIXEJCwiV9ICtPPDw85Op64RP5cidCvf32261JCfNq1qyZpLMDy759+7Rq1SqtWbNGH3zwgebNm6dJkyZpypQpJRf8RRg1apQWLVqk0aNHKyIiQv7+/nJxcVH//v3tJnvNVdidMApqP/cLSU5OjmrUqGFXkT9XUY5A5+Tk6Prrr9eECRMKXJ77ISLXuUdpiqs471Oyf6/FXWdRXgs4C/nk4pFPyCfSpeWT2267TV999ZXGjx+vFi1ayMfHRzk5ObrhhhsK3KdX6t8aLj/knotX1NxzrrxjXE5OjlxcXPTZZ58VOFb5+PgUuq5t27bppptuUocOHTRv3jwFBgaqQoUKWrRokXVTjovRq1cvVaxYUe+//77atWun999/X66urnZFlEuJuyD9+vXT008/rX/++Ue+vr76+OOPNWDAAGsC/uLk77Lmzjvv1MyZMxUbG6sBAwZo6dKl6tmzp92Z0lcCilKl7MyZM5KkkydPSpLq1q2rDRs26MSJE3ZHGPbu3Wstz/XTTz9p6tSpGjp0qHbs2KG7775bO3fuzPdLmpOTo99++83uw9svv/wi6ewdZwpSvXp1VaxYUfv27cu3bO/evXJ1dbWOHpbEEb7c97Vv3z6rqp1r3759du+7OKpXry5fX19lZ2era9euF+zv7e2tfv36qV+/fsrKylLv3r319NNPa+LEifL09Lzo95obf0JCQr5lBe3jvFasWKHBgwfrhRdesNpOnTqllJSUi4qnMPXr19eGDRt03XXXXfDDfWH7on79+jp58mSR9jeAkkM+OYt8cn7kk5J1/Phxbdy4UVOmTNGkSZOs9oJ+PlLR/9aA8oLcc1Zp5Z7zqV+/vowxCg4Ozlekv5APPvhAnp6eWrt2rTw8PKz2RYsW5etbnP3j7e2tnj17avny5XrxxRe1bNkyRUZGKigoqETiLki/fv00ZcoUffDBB6pZs6bS0tLUv39/a3lx8/e5zv255rV3715Vq1ZN3t7e8vLykp+fn3bt2lXs+M+3f5s0aaJrrrlG77zzjmrVqqWDBw/q5ZdfLvY2yjvmlCpFp0+f1rp16+Tu7m6d0nrjjTcqOztbr7zyil3fWbNmycXFRd27d7deO2TIEAUFBWnOnDlavHixkpOT9fDDDxe4rXPXZ4zRK6+8ogoVKqhLly4F9rfZbOrWrZs++ugju9Nik5OTtXTpUrVv315+fn6Szg4+ki7pA22rVq1Uo0YNLViwwO700c8++0x79uxRjx49Lmq9NptNffr00QcffFDgIPH3339b/z/31s3S2VOKGzVqJGOMTp8+Leni32tgYKBatGihJUuW2J3Kv379+iLdstpms+U7U+fll18u8dtH33bbbcrOztZTTz2Vb9mZM2fs3re3t3eB++G2225TXFycdeTrXCkpKdaHFwAlh3zy/8gnF34f5JOSk3uUP+8+PfdSlVzF/VsDyjpyz/8rrdxzPr1795bNZtOUKVPyjUHGmHy56Fw2m00uLi52Y39iYqJiY2Pz9S1sjC5Mv379dOjQIb322mv68ccfrbmdSiLugoSFhalp06ZatmyZli1bpsDAQHXo0MFaXpz8nde5OffcfbBr1y6tW7dON954o6SzZw3GxMTok08+0XfffZdvPee74sLb27vAy+dz3XHHHVq3bp1mz56tqlWrWn9DVxLOlCpBn332mXWU4MiRI1q6dKkSEhL06KOPWoNir169FBUVpccff1yJiYlq3ry51q1bp48++kijR4+2JmDOvf5348aN8vX1VbNmzTRp0iQ98cQT6tu3r/UHIkmenp5as2aNBg8erDZt2uizzz7T6tWr9dhjj5339Plp06Zp/fr1at++vR544AG5ubnp1VdfVWZmpmbMmGH1a9GihWw2m5577jmlpqbKw8NDnTt3LnQeiYJUqFBBzz33nIYOHaqOHTtqwIABSk5O1pw5c1SvXr1L+sD27LPPatOmTWrTpo3uueceNWrUSMeOHdP333+vDRs26NixY5Kkbt26KSAgQNddd51q1qypPXv26JVXXlGPHj2sIz3h4eGSpMcff1z9+/dXhQoV1KtXLyuZnc/06dPVo0cPtW/fXnfddZeOHTuml19+WY0bN7aOLhWmZ8+eeuutt+Tv769GjRopLi5OGzZsUNWqVS96vxSkY8eOuvfeezV9+nTt2LFD3bp1U4UKFZSQkKDly5drzpw56tu3r6Sz+2L+/PmaNm2aQkJCVKNGDXXu3Fnjx4/Xxx9/rJ49e2rIkCEKDw9Xenq6du7cqRUrVigxMVHVqlUr0biBKw35pHDkE/KJI/n5+alDhw6aMWOGTp8+rf/85z9at26dDhw4kK9vcf7WgLKI3FO40sw9halfv76mTZumiRMnKjExUTExMfL19dWBAwf04Ycfavjw4Ro3blyBr+3Ro4defPFF3XDDDRo4cKCOHDmiuXPnKiQkRD/99JNd3/DwcG3YsEEvvviigoKCFBwcbN30oSA33nijfH19NW7cOKsgVFJxF6Zfv36aNGmSPD09NWzYsHyXRhY1fxdk5syZ6t69uyIiIjRs2DBlZGTo5Zdflr+/vyZPnmz1e+aZZ7Ru3Tp17NhRw4cPV1hYmA4fPqzly5friy++UKVKlQpcf3h4uJYtW6YxY8aodevW8vHxUa9evazlAwcO1IQJE/Thhx/q/vvvL9acW5eN0r2535WhoNuoenp6mhYtWpj58+fb3WrZGGNOnDhhHn74YRMUFGQqVKhgGjRoYGbOnGn1i4+PN25ubna3RjXm7C2ZW7dubYKCgszx48eNMWdv/+nt7W32799vunXrZipWrGhq1qxpnnzySZOdnW33euW5jaoxxnz//fcmOjra+Pj4mIoVK5qoqCi7Wybn+t///meuuuoqY7PZLnhL1YJuo5pr2bJl5pprrjEeHh6mSpUqZtCgQebPP/+065P7noojOTnZjBgxwtSuXdtUqFDBBAQEmC5dupiFCxdafV599VXToUMHU7VqVePh4WHq169vxo8fb1JTU+3W9dRTT5n//Oc/xtXVtdi38/7ggw9MWFiY8fDwMI0aNTIrV64s8BateX8Wx48fN0OHDjXVqlUzPj4+Jjo62uzdu9fUrVvX7hathe3b3FvJnnvbXGMK35cLFy404eHhxsvLy/j6+pqmTZuaCRMmmEOHDll9kpKSTI8ePYyvr6+RZHdr0hMnTpiJEyeakJAQ4+7ubqpVq2batWtnnn/+eZOVlWWM+f9brs6cObPI++9cdevWNT169MjXLsmMGDHCrq2gbeXukwu9NndbBd0KF3A08knB+4N8Qj5xZj75888/zS233GIqVapk/P39za233moOHTpkt++L87cGlDXknoL3h6NyT2Hjbq4PPvjAtG/f3nh7extvb28TGhpqRowYYfbt22e3zbz54fXXXzcNGjQwHh4eJjQ01CxatKjAz8d79+41HTp0MF5eXkaSlSty90NBuWvQoEFGkunatWuh76socRdVQkKC9bv5xRdfFNinKPk7d4xftGiR3Ws3bNhgrrvuOuPl5WX8/PxMr169zM8//5xvG7///ru58847TfXq1Y2Hh4e56qqrzIgRI0xmZqYxxphNmzbl+/06efKkGThwoKlUqZKRlO/nZIwxN954o5FU4O/ulcDFGGb3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4+M1c+ZMTZ48WQsXLrT6fPXVVxowYICGDRumH374QTExMYqJidGuXbusPjNmzNBLL72kBQsW6Ouvv5a3t7eio6N16tSpEtwjAIALKXZRqiSOgAAAAAC4vHTv3l3Tpk3TLbfcUmgfDw8PBQQEWI/KlStby/bs2aM1a9botddeU5s2bdS+fXu9/PLLeu+993To0CFJ0jvvvKOsrCy98cYbaty4sfr3768HH3xQL774orWeOXPm6IYbbtD48eMVFhamp556Si1bttQrr7wi6exZUrNnz9YTTzyhm2++Wc2aNdObb76pQ4cO5ftuAwAoXcUuSpXEERAAAAAAV57NmzerRo0aatiwoe6//367SZjj4uJUqVIltWrVymrr2rWrXF1d9fXXX1t9OnToIHd3d6tPdHS09u3bZ91lLC4uTl27drXbbnR0tOLi4iRJBw4cUFJSkl0ff39/tWnTxuoDAHAMt+K+oHv37urevft5++QeAQEAAAAA6eyB6969eys4OFj79+/XY489pu7duysuLk42m01JSUmqUaOG3Wvc3NxUpUoVJSUlSZKSkpIUHBxs16dmzZrWssqVKyspKclqO7fPues493UF9SlIZmamMjMzredpaWnFeftAiapUqZJSUlKK1A8oy4pdlCqK3CMglStXVufOnTVt2jRVrVq1NDYFAAAAoBzo37+/9f+mTZuqWbNmql+/vjZv3qwuXbo4MbKimT59uqZMmeLsMABJkq+vb5GKUr6+vqUfDHAJSnyi8xtuuEFvvvmmNm7cqOeee05btmxR9+7dlZ2dXWD/zMxMpaWl2T0AAAAAXN6uuuoqVatWTb/++qskKSAgQEeOHLHrc+bMGR07dsy6CiMgIEDJycl2fXKfX6jPucvPfV1BfQoyceJEpaamWo8//vijWO8XKEn//vtvifYDnKXEi1L9+/fXTTfdpKZNmyomJkarVq3St99+q82bNxfYf/r06fL397cetWvXLumQAAAAAJQxf/75p44eParAwEBJUkREhFJSUhQfH2/1+fzzz5WTk6M2bdpYfbZu3arTp09bfdavX6+GDRtak6ZHRERo48aNdttav369IiIiJEnBwcEKCAiw65OWlqavv/7a6lMQDw8P+fn52T0AZ3FxcSnRfoCzlHhRKq+8R0Dy4ogDAAAAUP6dPHlSO3bs0I4dOySdnVB8x44dOnjw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cnFx0XfffefQ7darV09Dhgxx6DavFJs3b5aLi4s2b97skO3lzcUAAKBgFKWcLPeD77mPGjVqKCoqSp999pmzw7tkP//8syZPnqzExMQi9T969Khuu+02eXl5ae7cuXrrrbfk7e1dukGiQPPmzaOQBZQwxnx7jPklhzG7+JYuXarZs2c7OwwAAK5obs4OAGdNnTpVwcHBMsYoOTlZixcv1o033qhPPvlEPXv2dHZ4F+3nn3/WlClT1KlTJ9WrV++C/b/99ludOHFCTz31lLp27Vr6AV6iunXrKiMjQxUqVHB2KIW62BjnzZunatWqcdQeKAWM+WeVtzG/LGPMPr8OHTooIyND7u7uVtvSpUu1a9cujR492nmBAQBwhaMoVUZ0795drVq1sp4PGzZMNWvW1Lvvvluuv6AU15EjRyRJlSpVKrF1pqenl9qRdxcXF3l6epbKuktKeYgRuNIw5p9V3sZ8lF+urq7kQgAAyiAu3yujKlWqJC8vL7m52dcN09PTNXbsWNWuXVseHh5q2LChnn/+eRljJEkZGRkKDQ1VaGioMjIyrNcdO3ZMgYGBateunbKzsyVJQ4YMkY+Pj3777TdFR0fL29tbQUFBmjp1qrW+8/nhhx/UvXt3+fn5ycfHR126dNH27dut5YsXL9att94qSYqKirIuVSlsPodOnTpp8ODBkqTWrVvLxcXF7ojv8uXLFR4eLi8vL1WrVk233367/vrrL7t15L6n/fv368Ybb5Svr68GDRpU6HuYPHmyXFxc9Msvv+j222+Xv7+/qlevrv/+978yxuiPP/7QzTffLD8/PwUEBOiFF16we31B8zUlJSVp6NChqlWrljw8PBQYGKibb77Z7nKW7777TtHR0apWrZq8vLwUHBysu+6663y7u0ALFy5U/fr15eXlpWuvvVbbtm3L1+diYqxXr552796tLVu2WD+33Lkxjh07pnHjxqlp06by8fGRn5+funfvrh9//NFuu7nzd7z//vt6+umnVatWLXl6eqpLly769ddf88X59ddf68Ybb1TlypXl7e2tZs2aac6cOXZ99u7dq759+6pKlSry9PRUq1at9PHHHxd7vwFlDWO+Y8b833//XQ888IAaNmwoLy8vVa1aVbfeemuhlxv++++/uvfee1W1alX5+fnpzjvv1PHjx+36FGU8v9DPsTC5OSqv3MtAizJmS1JKSopGjx5tbT8kJETPPfeccnJyzrv9vDp16qQmTZrop59+UseOHVWxYkWFhIRoxYoVkqQtW7aoTZs28vLyUsOGDbVhwwa71xdn/+duw8vLS7Vq1dK0adO0aNEiu/ed+9579uypL774Qtdee608PT111VVX6c0337RbX945pTp16qTVq1fr999/t/ZZ7tl9efdvYevIVZRcLEmZmZl68sknFRISIg8PD9WuXVsTJkxQZmbm+Xc8AACXMc6UKiNSU1P1zz//yBijI0eO6OWXX9bJkyd1++23W32MMbrpppu0adMmDRs2TC1atNDatWs1fvx4/fXXX5o1a5a8vLy0ZMkSXXfddXr88cf14osvSpJGjBih1NRULV68WDabzVpndna2brjhBrVt21YzZszQmjVr9OSTT+rMmTOaOnVqofHu3r1bkZGR8vPz04QJE1ShQgW9+uqr6tSpk/WhtEOHDnrwwQf10ksv6bHHHlNYWJgkWf/m9fjjj6thw4ZauHChdWlL/fr1JZ39gDh06FC1bt1a06dPV3JysubMmaMvv/xSP/zwg91R9jNnzig6Olrt27fX888/r4oVK15w//fr109hYWF69tlntXr1ak2bNk1VqlTRq6++qs6dO+u5557TO++8o3Hjxql169bq0KFDoevq06ePdu/erVGjRqlevXo6cuSI1q9fr4MHD1rPu3XrpurVq+vRRx9VpUqVlJiYqJUrV14wznO9/vrruvfee9WuXTuNHj1av/32m2666SZVqVJFtWvXPu9rLxTj7NmzNWrUKPn4+Ojxxx+XJNWsWVOS9Ntvvyk2Nla33nqrgoODlZycrFdffVUdO3bUzz//rKCgILttPfvss3J1ddW4ceOUmpqqGTNmaNCgQfr666+tPuvXr1fPnj0VGBiohx56SAEBAdqzZ49WrVqlhx56SNLZ37nrrrtO//nPf/Too4/K29tb77//vmJiYvTBBx/olltuKdb+A5yJMd85Y/63336rr776Sv3791etWrWUmJio+fPnq1OnTvr555/zvXbkyJGqVKmSJk+erH379mn+/Pn6/fffreJEUcbzovwcL9X5xux///1XHTt21F9//aV7771XderU0VdffaWJEyfq8OHDxZ5T6fjx4+rZs6f69++vW2+9VfPnz1f//v31zjvvaPTo0brvvvs0cOBAzZw5U3379tUf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WrZsmcaMGaPWrVvLx8dHvXr1UuPGjdW2bVtNnDhRx44dU5UqVfTee+/lK+AVJxffcccdev/993Xfffdp06ZNuu6665Sdna29e/fq/fff19q1a9WqVasSeV8AAJQrDr/f30WSZD788EPree6tob29ve0ebm5u5rbbbsv3+qVLlxo3NzeTlJTkwKgvrKDbg3t6epoWLVqY+fPnm5ycHLv+J06cMA8//LAJCgoyFSpUMA0aNDAzZ860+sXHxxs3Nze7W34bY8yZM2dM69atTVBQkDl+/Lgx5uyttL29vc3+/ftNt27dTMWKFU3NmjXNk08+abKzs+1erzy3BzfGmO+//95ER0cbHx8fU7FiRRMVFWW++uqrfO/xf//7n7nqqquMzWa74K3CC7o9eK5ly5aZa665xnh4eJgqVaqYQYMGmT///NOuT+57Kqrc222feyv0862nY8eOpnHjxtbzAwcO2N3y+p9//jEjRowwoaGhxtvb2/j7+5s2bdqY999/33rN999/bwYMGGDq1KljPDw8TI0aNUzPnj3Nd999V+S4c82bN88EBwcbDw8P06pVK7N161bTsWNHu9tQX0yMxhiTlJRkevToYXx9fe1ubX3q1CkzduxYExgYaLy8vMx1111n4uLi8m0399bZy5cvt1tv3nhyffHFF+b66683vr6+xtvb2zRr1sy8/PLLdn32799v7rzzThMQEGAqVKhg/vOf/5iePXuaFStWFHvfAc7AmF/w/nDUmH/8+HEzdOhQU61aNePj42Oio6PN3r17Td26dc3gwYPzxbVlyxYzfPhwU7lyZePj42MGDRpkjh49ardPijKeX+jnmCtvHMac/Rm3adPGuLu7mzp16pgXX3zRiu/AgQNWv8LG7NztT5w40YSEhBh3d3dTrVo1065dO/P888+brKysIu+/vDnw3Lh79OiRr12SGTFihPW8qPvfGGN++OEHExkZaTw8PEytWrXM9OnTzUsvvWQk2X2WK2zbheWkc38fT548aQYOHGgqVapkJJm6detay/bv32+6du1qPDw8TM2aNc1jjz1m1q9fX+DvdFFysTHGZGVlmeeee840btzYeHh4mMqVK5vw8HAzZcoUk5qamu89AABwJXAx5iJngXQwFxcXffjhh4qJiZEkLVu2TIMGDdLu3bvzTXDp4+OjgIAAu7YuXbrIz89PH374oaNCLvOGDBmiFStWWPOXAAAuX4z5KO9Gjx6tV199VSdPnix0cnMAAFC+lNvL96655hplZ2fryJEjF5wj6sCBA9q0aZM+/vhjB0UHAACAi5WRkSEvLy/r+dGjR/XWW2+pffv2FKQAALiMlOmi1MmTJ+3utHLgwAHt2LFDVapU0dVXX61Bgwbpzjvv1AsvvKBrrrlGf//9tzZu3KhmzZrZTYT6xhtvKDAw8LyTiQJlxbFjx+wmTM3LZrOdd+4XAACKoyzmnYiICHXq1ElhYWFKTk7W66+/rrS0NP33v/91aBwAAKB0lemi1HfffWd3K+YxY8ZIkgYPHqzFixdr0aJFmjZtmsaOHau//vpL1apVU9u2bdWzZ0/rNTk5OVq8eLGGDBnCkTWUC71799aWLVsKXV63bl27O2ABAHApymLeufHGG7VixQotXLhQLi4uatmypV5//XV16NDBoXEAAIDSVW7mlAKuFPHx8Tp+/Hihy728vHTdddc5MCIAwOWMvAMAAJyFohQAAAAAAAAcztXZAQAAAAAAAODKU+bmlMrJydGhQ4fk6+srFxcXZ4cDAGWOMUYnTpxQUFCQXF05tlAU5BYAKBx5BQDgLGWuKHXo0CHVrl3b2WEAQJn3xx9/qFatWs4Oo1wgtwDAhZFXAACOVuaKUr6+vpLOJkU/Pz8nRwMAZU9aWppq165tjZe4MHILABSOvAIAcJYyV5TKvazCz8+PLw4AcB5chlZ05BYAuDDyCgDA0bhoHAAAAAAAAA5HUQoAAAAAAAAOR1EKAAAAAAAADkdRCgAAAAAAAA5HUQoAAAAAAAAOR1EKAAAAAAAADkdRCgAAAAAAAA7n5uwAAAAAriTZ2dnatm2bDh8+rMDAQEVGRspmszk7LAAAAIfjTCkAAAAHWblypUJCQhQVFaWBAwcqKipKISEhWrlypbNDAwAAcDiKUgAAAA6wcuVK9e3bV02bNlVcXJxOnDihuLg4NW3aVH379qUwBQAArjguxhjj7CDOlZaWJn9/f6WmpsrPz8/Z4QBAmcM4WXzsMzhbdna2QkJC1LRpU8XGxsrV9f+PC+bk5CgmJka7du1SQkICl/LB4RgjAQDOwpxSuOL8+++/2rt3b5H7Z2RkKDExUfXq1ZOXl1eRXxcaGqqKFSteTIgAgMvMtm3blJiYqHfffdeuICVJrq6umjhxotq1a6dt27apU6dOzgkSAADAwShK4Yqzd+9ehYeHl/p24uPj1bJly1LfDgCg7Dt8+LAkqUmTJsrIyND48eOVkJCgBg0aaObMmWrSpIldPwAAgCsBRSlccUJDQxUfH1/k/nv27NHtt9+ut99+W2FhYcXaDgAAkhQYGChJuvHGG7Vt2zarfd26dZo7d64iIyPt+gEAAFwJKErhilOxYsWLOoMpLCyMM58AABclMjJSFStW1LZt21ShQgWNHTtWd999t1577TW98MIL2rZtmypWrGgVpwAAAK4E3H0PAACglGVlZenff/+VJHXr1k033XSTatSooZtuukndunWTdHbOw6ysLGeGCQAA4FAUpQAAAErZ+PHjJUm33HKLdu/erXbt2snPz0/t2rXTzz//rJiYGLt+AAAAVwIu3wMAAChlCQkJkqSZM2eqXr162rZtmw4fPqzAwEBFRkZq//79io2NtfoBAABcCThTCgAAoJQ1aNBAkvTaa6/JZrOpU6dOGjBggDp16iSbzabXX3/drh8AAMCVgKIUAABAKZs5c6Yk6cUXX8w3b1RWVpZmz55t1w8AAOBKQFEKAACglHl5eenmm29WVlaWfH191bJlS1133XVq2bKlfH19lZWVpZtvvlleXl7ODhUAAMBhmFMKAADAAWJjYxUQEKDk5GT98MMPdstq1qyp2NhY5wQGAADgJJwpBQAA4AAxMTFKTk6Wq6urQkJC1LBhQ4WEhMjV1VXJycnWHfgAAACuFJwpBQAAUMoyMjL00Ucfyc3NTf/5z3/066+/Wsvq1q2rv/76Sx999JEyMjK4hA8AAFwxOFMKAACglI0fP16SdObMGf3+++92y37//XedOXPGrh8AAMCVgKIUAABAKfvll19KtB8AAMDlgKIUAABAKfP09LT+7+7urkcffVS//vqrHn30Ubm7uxfYDwAA4HJX4kWpevXqycXFJd9jxIgRJb0pAACAcuHcYtPRo0c1ffp01a9fX9OnT9fRo0cL7AcAAHC5K/Gi1LfffqvDhw9bj/Xr10uSbr311pLeFAAAQLnw7bffWv+vWrWqHnnkEf3yyy965JFHVLVq1QL7AQAAXO5K/O571atXt3v+7LPPqn79+urYsWNJbwoAAKBcyL1Ez9vbW+np6ZoxY4ZmzJhhLc9tP/dSPgAAgMtdqc4plZWVpbffflt33XWXXFxcCuyTmZmptLQ0uwcAAMDlpHPnzpKk9PR0devWTVdddZUqV66sq666St26dVN6erpdPwAAgCtBqRalYmNjlZKSoiFDhhTaZ/r06fL397cetWvXLs2QAAAAHO7/2rv/YK/qOn/gT7jEBQKuofFrACFBwQATcgRZHCjTKFwYZLdSJjWzcqBN0ba5TWXMfvO2lWU7GbXmgg2Su7FAu7RJafFjd6CV6zLJBigKK60X3G30Xn55tXvv9w/HW3cFTf18zudeeDxmznDPOa/7fr9gnPuRJ+/zPl//+tfbv/7pT3+aJ554Is8880yeeOKJ/PSnPz1uHQDAya6sodTdd9+dWbNmZejQoSesqa2tTWNjY/uxf//+crYEAFC43r17Z9CgQa9YM2jQoPTu3bugjgAAKq/ke0q95L/+67/ywAMPZPXq1a9YV11dnerq6nK1AQBQcceOHcvBgwdfsebgwYM5duyYYAoAOGWUbaXUsmXLMnDgwLz//e8v1xQAAF3C4sWLS1oHAHAyKMtKqdbW1ixbtixXX311evQo22IsAIAu4Ze//GX715dddln69u2bZ555Jm95y1ty+PDhrF+//mV1AAAnu7IkRg888ECefPLJfOQjHynH8AAAXcpLe2Z27969PYD6Q927d09ra6u9NQGAU0pZQqlLL700bW1t5RgaAKDLqaqqSvLiavIkGT16dKqqqtLS0pI9e/a0X3+pDgDgVODZOgCAMhs8eHCHjc737NlzwjoAgFNF2TY6BwDgRcOGDStpHQDAyUAoBQBQZkePHi1pHQDAyUAoBQBQZid6XO/11gEAnAyEUgAAZfbMM8+UtA4A4GQglAIAAACgcEIpAIAyq6mpKWkdAMDJQCgFAFBmTz31VEnrAABOBkIpAIAya2trK2kdAMDJQCgFQEUtXbo0EydOTP/+/dO/f/9MnTo1P/nJT9rvP/fcc1m4cGFOP/309O3bN1dccUUOHjxYwY4BAIBSEEoBUFHDhg3Ll7/85dTX12fbtm1517velTlz5uQ///M/kyQ33XRT/vmf/zk//OEPs3Hjxjz11FOZN29ehbsGAADeqB6VbgCAU9vll1/e4fxLX/pSli5dmq1bt2bYsGG5++67s3LlyrzrXe9Kkixbtizjxo3L1q1bM2XKlEq0DAAAlICVUgB0Gi0tLbnvvvty5MiRTJ06NfX19XnhhRdyySWXtNeMHTs2I0aMyJYtW044TnNzc5qamjocAABA52KlFAAV98gjj2Tq1Kl57rnn0rdv36xZsybnnntutm/fnp49e+a0007rUD9o0KAcOHDghOPV1dVlyZIlZe4aXnT06NHs2rWrZOM9/PDDJ7w3duzY9OnTp2RzAQBUklAKgIo755xzsn379jQ2NmbVqlW5+uqrs3Hjxtc9Xm1tbRYvXtx+3tTUlOHDh5eiVXiZXbt2ZfLkySUb75XGqq+vz6RJk0o2FwBAJQmlAKi4nj17ZvTo0Ule/Av5Qw89lG9+85v5wAc+kOeffz7PPvtsh9VSBw8ezODBg084XnV1daqrq8vdNiR5cfVSfX39K9Z85zvfyV133fWqY11//fX5xCc+8YpzAQCcLIRSAHQ6ra2taW5uzuTJk/OmN70pDz74YK644ookye7du/Pkk09m6tSpFe4SXtSnT59XXb30rW99648Kpb71rW+lZ8+epWoNAKBTE0oBUFG1tbWZNWtWRowYkUOHDmXlypXZsGFD1q9fn5qamlx33XVZvHhxBgwYkP79++eTn/xkpk6d6s17dCk9e/bMpz/96Xz1q189Yc2nP/1pgRQAcEoRSgFQUU8//XQ+/OEPp6GhITU1NZk4cWLWr1+f97znPUmSb3zjG+nevXuuuOKKNDc357LLLsu3v/3tCncNr91XvvKVJHlZMNWtW7fccsst7fcBAE4V3dra2toq3cQfampqSk1NTRobG9O/f/9KtwN5+OGHM3nyZJvL0mn4Ofna+TOjM3n++edTW1ubr3/961m8eHHq6uqskKKi/IwEoFK6V7oBAIBTSc+ePXPVVVclSa666iqBFABwyhJKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhStLKPXf//3fWbBgQU4//fT07t07EyZMyLZt28oxFQAAAABdUI9SD/jMM89k2rRpmTlzZn7yk5/krW99ax577LG85S1vKfVUAAAAAHRRJQ+l/vqv/zrDhw/PsmXL2q+NGjWq1NMAAAAA0IWV/PG9f/qnf8o73/nO/Nmf/VkGDhyY888/P3fdddcJ65ubm9PU1NThAAAAAODkVvJQ6oknnsjSpUszZsyYrF+/PjfccEP+4i/+Ivfcc89x6+vq6lJTU9N+DB8+vNQtAQAAANDJlDyUam1tzaRJk3Lbbbfl/PPPz8c+9rFcf/31+c53vnPc+tra2jQ2NrYf+/fvL3VLAAAAAHQyJQ+lhgwZknPPPbfDtXHjxuXJJ588bn11dXX69+/f4QAAAADg5FbyUGratGnZvXt3h2uPPvpozjzzzFJPBQAAAEAXVfJQ6qabbsrWrVtz2223Zc+ePVm5cmX+9m//NgsXLiz1VAAAAAB0USUPpS644IKsWbMmP/jBDzJ+/Pj81V/9Ve64445cddVVpZ4KAAAAgC6qRzkGnT17dmbPnl2OoQEAAAA4CZR8pRQAAAAAvBqhFAAAAACFE0oBAAAAULiy7CkFRXrsscdy6NChso2/c+fODr+WS79+/TJmzJiyzgEAAACdhVCKLu2xxx7L2WefXchcCxYsKPscjz76qGAKAACAU4JQii7tpRVSK1asyLhx48oyx7Fjx7Jv376MHDkyvXv3LsscO3fuzIIFC8q64gsAAAA6E6EUJ4Vx48Zl0qRJZRt/2rRpZRsbAAAATkU2OgcAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAApX8lDqi1/8Yrp169bhGDt2bKmnAQAAAKAL61GOQd/+9rfngQce+P0kPcoyDQAAAABdVFnSoh49emTw4MHlGBoAAACAk0BZ9pR67LHHMnTo0LztbW/LVVddlSeffLIc0wAAAADQRZV8pdSFF16Y5cuX55xzzklDQ0OWLFmS6dOnZ8eOHenXr9/L6pubm9Pc3Nx+3tTUVOqWAAAAAOhkSh5KzZo1q/3riRMn5sILL8yZZ56Zf/iHf8h11133svq6urosWbKk1G0AAAAA0ImV5fG9P3Taaafl7LPPzp49e457v7a2No2Nje3H/v37y90SAJ1IXV1dLrjggvTr1y8DBw7M3Llzs3v37g41M2bMeNmbXT/xiU9UqGMAAKAUyh5KHT58OI8//niGDBly3PvV1dXp379/hwOAU8fGjRuzcOHCbN26NT/72c/ywgsv5NJLL82RI0c61F1//fVpaGhoP77yla9UqGMAAKAUSv743i233JLLL788Z555Zp566qnceuutqaqqyoc+9KFSTwXASeD+++/vcL58+fIMHDgw9fX1ufjii9uv9+nTx5tdAQDgJFLylVK/+c1v8qEPfSjnnHNO/vzP/zynn356tm7dmre+9a2lngqAk1BjY2OSZMCAAR2u33vvvTnjjDMyfvz41NbW5ujRo5VoDwAAKJGSr5S67777Sj0kAKeI1tbW3HjjjZk2bVrGjx/ffv3KK6/MmWeemaFDh+ZXv/pVPvOZz2T37t1ZvXr1ccfxZlcAAOj8Sh5KAcDrtXDhwuzYsSP/+q//2uH6xz72sfavJ0yYkCFDhuTd7353Hn/88Zx11lkvG8ebXQEAoPMr+0bnAPDHWLRoUdatW5df/OIXGTZs2CvWXnjhhUniza4AANCFWSkFQEW1tbXlk5/8ZNasWZMNGzZk1KhRr/o927dvT5JXfLNrdXV1KdsEAABKTCgFQEUtXLgwK1euzI9+9KP069cvBw4cSJLU1NSkd+/eefzxx7Ny5cq8733vy+mnn55f/epXuemmm3LxxRdn4sSJFe4eAAB4vYRSAFTU0qVLkyQzZszocH3ZsmW55ppr0rNnzzzwwAO54447cuTIkQwfPjxXXHFFPve5z1WgWwAAoFSEUgBUVFtb2yveHz58eDZu3FhQNwAAQFFsdA4AAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4bx9DwDg/3jsscdy6NChso2/c+fODr+WQ79+/TJmzJiyjQ8A8EYJpQAA/sBjjz2Ws88+u5C5FixYUNbxH330UcEUANBpCaUAAP7ASyukVqxYkXHjxpVljmPHjmXfvn0ZOXJkevfuXfLxd+7cmQULFpR1tRcAwBsllAIAOI5x48Zl0qRJZRt/2rRpZRsbAKArsNE5AAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUreyj15S9/Od26dcuNN95Y7qkAAAAA6CLKGko99NBD+e53v5uJEyeWcxoAAAAAupiyhVKHDx/OVVddlbvuuitvectbyjUNAAAAAF1Q2UKphQsX5v3vf38uueSSV6xrbm5OU1NThwMAAACAk1uPcgx633335eGHH85DDz30qrV1dXVZsmRJOdoAAAAAoJMq+Uqp/fv351Of+lTuvffe9OrV61Xra2tr09jY2H7s37+/1C0BAAAA0MmUfKVUfX19nn766UyaNKn9WktLSzZt2pRvfetbaW5uTlVVVfu96urqVFdXl7oNTiGD+3ZL72cfTZ4q+8sky6b3s49mcN9ulW4DAAAAClPyUOrd7353HnnkkQ7Xrr322owdOzaf+cxnOgRSUAofn9wz4zZ9PNlU6U5ev3F58fcBAAAAp4qSh1L9+vXL+PHjO1x785vfnNNPP/1l16EUvlv/fD7wheUZN3ZspVt53Xbu2pXv3n5l/rTSjQAAAEBByrLRORTpwOG2HDvt7GToOyrdyut27EBrDhxuq3QbAAAAUJhCQqkNGzYUMQ0AAAAAXUTX3RkaAAAAgC5LKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABSukLfvAQB0JYP7dkvvZx9Nnuqa/37X+9lHM7hvt0q3AQDwioRSAAD/x8cn98y4TR9PNlW6k9dnXF78PQAAdGZCKQCA/+O79c/nA19YnnFjx1a6lddl565d+e7tV+ZPK90IAMArEEoBAPwfBw635dhpZydD31HpVl6XYwdac+BwW6XbAAB4RV1zowQAAAAAujShFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBAAAAUDihFAAAAACFE0oBUFF1dXW54IIL0q9fvwwcODBz587N7t27O9Q899xzWbhwYU4//fT07ds3V1xxRQ4ePFihjgEAgFLoUekGADi1bdy4MQsXLswFF1yQ3/3ud/nsZz+bSy+9NL/+9a/z5je/OUly00035cc//nF++MMfpqamJosWLcq8efPyb//2bxXunpPR0aNHkyQPP/xw2eY4duxY9u3bl5EjR6Z3794lH3/nzp0lHxMAoNSEUgBU1P3339/hfPny5Rk4cGDq6+tz8cUXp7GxMXfffXdWrlyZd73rXUmSZcuWZdy4cdm6dWumTJlSibY5ie3atStJcv3111e4kzeuX79+lW4BAOCEhFIAdCqNjY1JkgEDBiRJ6uvr88ILL+SSSy5prxk7dmxGjBiRLVu2HDeUam5uTnNzc/t5U1NTmbvmZDJ37twkL/531qdPn7LMsXPnzixYsCArVqzIuHHjyjJHv379MmbMmLKMDQBQCkIpADqN1tbW3HjjjZk2bVrGjx+fJDlw4EB69uyZ0047rUPtoEGDcuDAgeOOU1dXlyVLlpS7XU5SZ5xxRj760Y8WMte4ceMyadKkQuYCAOhsbHQOQKexcOHC7NixI/fdd98bGqe2tjaNjY3tx/79+0vUIQAAUCpWSgHQKSxatCjr1q3Lpk2bMmzYsPbrgwcPzvPPP59nn322w2qpgwcPZvDgwccdq7q6OtXV1eVuGQAAeAOslAKgotra2rJo0aKsWbMmP//5zzNq1KgO9ydPnpw3velNefDBB9uv7d69O08++WSmTp1adLsAAECJlDyUWrp0aSZOnJj+/funf//+mTp1an7yk5+UehoAThILFy7MihUrsnLlyvTr1y8HDhzIgQMHcuzYsSRJTU1NrrvuuixevDi/+MUvUl9fn2uvvTZTp0715j0AAOjCSv743rBhw/LlL385Y8aMSVtbW+65557MmTMn//Ef/5G3v/3tpZ4OgC5u6dKlSZIZM2Z0uL5s2bJcc801SZJvfOMb6d69e6644oo0Nzfnsssuy7e//e2COwUAAEqp5KHU5Zdf3uH8S1/6UpYuXZqtW7cKpQB4mba2tlet6dWrV+68887ceeedBXQEAAAUoawbnbe0tOSHP/xhjhw5csJ9P5qbm9Pc3Nx+3tTUVM6WAAAAAOgEyrLR+SOPPJK+ffumuro6n/jEJ7JmzZqce+65x62tq6tLTU1N+zF8+PBytAQAAABAJ1KWUOqcc87J9u3b88tf/jI33HBDrr766vz6178+bm1tbW0aGxvbj/3795ejJQAAAAA6kbI8vtezZ8+MHj06yYuv8n7ooYfyzW9+M9/97ndfVltdXZ3q6upytAEAAABAJ1WWlVL/V2tra4d9owAAAAA4tZV8pVRtbW1mzZqVESNG5NChQ1m5cmU2bNiQ9evXl3oqAAAAALqokodSTz/9dD784Q+noaEhNTU1mThxYtavX5/3vOc9pZ4KAAAAgC6q5KHU3XffXeohAQAAADjJFLKnFAAAAAD8IaEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQOKEUAAAAAIUTSgEAAABQuJKHUnV1dbngggvSr1+/DBw4MHPnzs3u3btLPQ0AAAAAXVjJQ6mNGzdm4cKF2bp1a372s5/lhRdeyKWXXpojR46UeioAAAAAuqgepR7w/vvv73C+fPnyDBw4MPX19bn44otLPR0AAAAAXVDZ95RqbGxMkgwYMKDcUwEAAADQRZR8pdQfam1tzY033php06Zl/Pjxx61pbm5Oc3Nz+3lTU1M5WwIAAACgEyjrSqmFCxdmx44due+++05YU1dXl5qamvZj+PDh5WwJAAAAgE6gbKHUokWLsm7duvziF7/IsGHDTlhXW1ubxsbG9mP//v3lagkAAACATqLkj++1tbXlk5/8ZNasWZMNGzZk1KhRr1hfXV2d6urqUrcBAAAAQCdW8lBq4cKFWblyZX70ox+lX79+OXDgQJKkpqYmvXv3LvV0nOKOHj2aJHn44YfLNsexY8eyb9++jBw5smz/De/cubMs4wIAAEBnVfJQaunSpUmSGTNmdLi+bNmyXHPNNaWejlPcrl27kiTXX399hTspjX79+lW6BQAAAChEWR7fg6LMnTs3STJ27Nj06dOnLHPs3LkzCxYsyIoVKzJu3LiyzJG8GEiNGTOmbOMDAABAZ1LyUAqKdMYZZ+SjH/1oIXONGzcukyZNKmQuAAAAONmV7e17AAAAAHAiQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAqCiNm3alMsvvzxDhw5Nt27dsnbt2g73r7nmmnTr1q3D8d73vrcyzQIAACUjlAKgoo4cOZLzzjsvd9555wlr3vve96ahoaH9+MEPflBghwAAQDn0qHQDAJzaZs2alVmzZr1iTXV1dQYPHlxQRwAAQBGslAKg09uwYUMGDhyYc845JzfccEN++9vfVrolAADgDbJSCoBO7b3vfW/mzZuXUaNG5fHHH89nP/vZzJo1K1u2bElVVdVxv6e5uTnNzc3t501NTUW1CwAA/JGEUgB0ah/84Afbv54wYUImTpyYs846Kxs2bMi73/3u435PXV1dlixZUlSLAADA6+DxPQC6lLe97W0544wzsmfPnhPW1NbWprGxsf3Yv39/gR0CAAB/DCulAOhSfvOb3+S3v/1thgwZcsKa6urqVFdXF9gVAADwWlkpBUBFHT58ONu3b8/27duTJHv37s327dvz5JNP5vDhw/n0pz+drVu3Zt++fXnwwQczZ86cjB49OpdddlllG4fXqaWlJdu2bUuSbNu2LS0tLRXuCACgMoRSAFTUtm3bcv755+f8889PkixevDjnn39+vvCFL6Sqqiq/+tWv8qd/+qc5++yzc91112Xy5MnZvHmzlVB0SatXr87o0aPz8Y9/PEny8Y9/PKNHj87q1asr3BkAQPE8vgdARc2YMSNtbW0nvL9+/foCu4HyWb16debPn5/Zs2fni1/8Yq655posX748//iP/5j58+dn1apVmTdvXqXbBAAojJVSAABl1tLSkptvvjmzZ8/OihUrsmzZsiTJsmXLsmLFisyePTu33HKLR/kAgFOKlVIAAG/A0aNHs2vXrles2bZtW/bt25du3bqlpqam/frGjRtTU1OTkSNHZt++fbn77rvzzne+84TjjB07Nn369ClZ7wAAlSSUAgB4A3bt2pXJkyf/UbV79+497vV9+/YlSfteUydSX1+fSZMmvab+AAA6K6EUAMAbMHbs2NTX179izebNm3PjjTcmSbp3757W1tb2e394fscdd2T69OmvOBcAwMlCKAUA8Ab06dPnVVcvLVmypP3rM844Ix/+8Ifztre9LU888US+//3v5+mnn06S/PznP8+nPvWpsvYLANBZCKUAAMrs8ccfb/+6qakpX/va19rPe/Xqddw6AICTnbfvAQCUWbdu3Y77dfLi43snugcAcDKzUgoAoMymTp2aHTt2JEkOHjyY+vr6NDQ0ZMiQIZk8eXL69+/fXgcAcKqwUgoAoMx69uzZ/nVNTU2+973v5Zxzzsn3vve91NTUHLcOAOBkJ5QCACizCy+8MEnSo0ePtLW15d57783kyZNz7733pq2tLT169OhQBwBwKvD4HgBAmQ0fPjxJ8rvf/S4DBw7MkCFD8txzz6VXr15paGhof/veS3UAAKeCkodSmzZtyle/+tX2vRLWrFmTuXPnlnoaAIAuY/r06Rk5cmSqqqqyb9++9hAqeXH11FlnnZXW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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5bEnT57U0qVL1blzZ/n6+kq6fBKS9Kf+qL3pppsUEBCghQsX2lxGumbNGu3bt0+9e/e+pvW6urrq7rvv1scff1zoyeL06dPm+ysf3yxdvrS4efPmMgxDFy9elHTt+xocHKw2bdrorbfesrmcf/369SV6bLWrq2uBK3Vee+21Mn+E9H333afc3Fy98MILBdouXbpks9/e3t6FHof77rtPCQkJ5jdgVzp//rz5RwyAskFf8j/0Jfb3g76k7OR/03/1Mb3ydpV8pf1dAyoy+p3/Ka9+pzh33XWXXF1dNWXKlALnH8MwCvRDV3J1dZXFYrE57x85ckTx8fEFYos6Pxelf//++u233/Tf//5XP/74ozm2U1nkXZhmzZopIiJCy5Yt07JlyxQcHKyuXbua7aXpu692ZX975THYs2eP1q1bpzvvvFPS5asGY2Ji9H//93/atm1bgfUUd6eFt7d3obfO53vwwQe1bt06zZ49W7Vr1zZ/h6oKrpQqJ2vWrDG/LTh16pSWLl2qpKQkTZw40Tw59u3bV927d9ezzz6rI0eOqHXr1lq3bp1Wrlyp0aNHmwMw598HvGHDBvn4+KhVq1aaNGmSnnvuOd1zzz3mL4okeXh4aO3atRoyZIg6dOigNWvWaPXq1XrmmWeKvYT+xRdf1Pr169W5c2c9/vjjcnNz0+uvv67s7GxNmzbNjGvTpo1cXV3173//W6mpqbJarfrLX/5S5FgShalWrZr+/e9/a+jQobr11ls1YMAAnTx5UnPmzFHDhg3/1B9tL7/8sr766it16NBBDz/8sJo3b66zZ89q+/bt+uKLL3T27FlJUs+ePRUUFKRbbrlFgYGB2rdvn+bOnavevXub3/hERkZKkp599lndf//9qlatmvr27Wt2asWJi4tT79691blzZ/3973/X2bNn9dprr6lFixbmt0xF6dOnj9555x35+fmpefPmSkhI0BdffKHatWtf83EpzK233qoRI0YoLi5OO3fuVM+ePVWtWjUlJSVp+fLlmjNnju655x5Jl4/FggUL9OKLL6px48YKCAjQX/7yFz399NP69NNP1adPHz300EOKjIxUZmamdu/erY8++khHjhyRv79/meYNVCX0JUWjL6EvcSRfX1917dpV06ZN08WLF1W3bl2tW7dOhw8fLhBbmt81oKKh3ylaefY7RWnUqJFefPFFxcbG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J39/f0nSK6+8opycHGemCRSLohRgR/692i+99JLy8vJs2vLy8hQXF6ewsDDu1QYA2PX444/Lzc1NVqtVa9eu1e7du/Xrr79q9+7dWrt2raxWq9zc3PT44487O1UAQAX36quvyjAM+fj46OjRo6pbt65++ukn1a1bV0ePHpWPj48Mw9Crr77q7FSBIlGUAuzIv1d71apViomJUUJCgtLT05WQkKCYmBitWrWKe7UBACXi7u6utm3bKjs7WxaLRf7+/goICJC/v78sFouys7PVtm1bubu7OztVAEAFt3LlSklSu3bt5OfnpzFjxmju3LkaM2aM/Pz81LZtW5s4oCJiTCmgBO666y599NFHeuqpp9SpUydzflhYmD766CPu0wYAlEhOTo527Nghi8UiwzD0+++/27RbLBbt2LFDOTk5FKYAAMXKHzdq06ZNcnGxvd4kLy9PmzdvtokDKiKulAJK6K677tLBgwf11VdfaenSpfrqq6+UlJREQQoAUGLz58/XpUuXzA8IkZGRuv/++xUZGSnp8geHS5cuaf78+c5MEwBQCfTu3dt8X9gwI4XFARUNV0oBpeDq6qpu3bo5Ow0AQCX1008/Sbp8RVR6erp++OEHJScnKzg4WO3btzfH/8iPAwCgKFdfHfVn4wBnoCgFAADgIAkJCZIuP12vSZMm+vXXX822unXrqnHjxkpKSjLjAAAoytatW8s0DnAGilIAAAAOkn/b3s8//1yg7coCFeN/AADsOXHihCTJy8tLf/zxh80tey4uLvLw8NCFCxfMOKAi4jo+AAAAB2nUqJHNdHBwsN566y0FBwcXGwcAwNWsVqukywWoM2fOKCYmRhEREYqJidGZM2fM2/by44CKiKIUAACAg9x3330208nJyRoyZIiSk5OLjQMA4Go33HCDJCkjI0M1a9ZUfHy8du/erfj4eNWsWVMZGRk2cUBFRFEKAADAQUaPHm2+t1gsioyM1H333afIyEhZLJZC4wAAKMzgwYPLNA5wBopSAIBKZfLkybJYLDavpk2bOjstoETyv7WuW7euDMNQYmKiPvzwQyUmJsowDIWEhNjEAQBQlC5dupRpHOAMFKUAAJVOixYtlJycbL6+/vprZ6cElEhQUJAk6eTJkwUe0e3i4qJTp07ZxAEAUJTXX3+9TOMAZ6AoBQCodNzc3BQUFGS+/P39nZ0SUCLf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dEnPPPOMevbsqZ9++kne3t5FLufr62tTvLJYLNeeMQAAQCXVpUsXSVL16tW1Z88emyeDNWzYUN7e3srMzDTjgMomIyPDvOpJujyg+M6dO1WrVi3VqlVLU6ZM0d13362goCAdOnRI48ePV+PGjRUdHS1Jatasme644w49/PDDWrhwoS5evKhRo0bp/vvvV0hIiCRp4MCBmjJlioYNG6YJEyZoz549mjNnjmbNmmVu98knn9Stt96qGTNmqHfv3vrggw+0bds2LVq0SNLlzyOjR4/Wiy++qPDwcIWFhen5559XSEiIzdMCgYosNTW1TOMAZyhVUWrt2rU200uWLFFAQIASExPVtWvXIpezWCzFXgYLAABQFeSPI5WRkSFvb28tWrRIffr00apVq/T8888rMzPTJg6obLZt26bu3bub02PHjpUkDRkyRAsWLNCuXbv01ltv6fz58woJCVHPnj31wgsvyGq1msu89957GjVqlG677Ta5uLjo7rvv1quvvmq2+/n5ad26dRo5cqQiIyPl7++vSZMm6ZFHHjFjOnXqpKVLl+q5557TM888o/DwcMXHx6tly5ZmzPjx45WZmalHHnlE58+fV+fOnbV27Vru6kClkZWVVaZxgDP8qafv5Vdca9WqVWxcRkaGGjRooLy8PLVr104vvfSSWrRoUWR8dna2srOzzWketQoAAK4HVz7VKzU11eZDtKenZ6FxQGXSrVs3GYZRZPvnn39udx21atXS0qVLi41p1aqVtmzZUmzMvffeq3vvvbfIdovFoqlTp2rq1Kl2cwIqouJ+164lDnCGax7oPC8vT6NHj9Ytt9xi843D1Zo0aaI333xTK1eu1Lvvvqu8vDx16tRJJ06cKHKZuLg4+fn5ma/Q0NBrTRMoU7m5udq4caPef/99bdy4Ubm5uc5OCQBQieSP6/HYY48V+ij6Rx991CYOAICiVK9evUzjAGe45iulRo4cqT179ujrr78uNi4qKspmsMBOnTqpWbNmev311/XCCy8UukxsbKx5qa90+UopClNwthUrVuipp57SkSNHzHkNGzbUjBkzdNdddzkvMQBApVGnTh1J0pEjR5SUlKRvvvlGycnJCg4O1i233KJ+/frZxAEAUJQrB/svizjAGa7pSqlRo0Zp1apV+uqrr1SvXr1SLVutWjW1bdvWZgDEq/GoVVQ0K1as0D33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XCkF2HX27NkyjQMAVF180QFIderUUVBQkPlatWqVGjVqpFtvvdWM8fLysonx9fU129atW6effvpJ7777rtq0aaNevXrphRde0Lx585STkyNJWrhwocLCwjRjxgw1a9ZMo0aN0j333KNZs2aZ65k5c6YefvhhDR06VM2bN9fChQvl5eWlN99803EHAwCqOIpSAAAADuLmVrKL1EsaB1R2OTk5evfdd/X3v/9dFovFnP/ee+/J399fLVu2VGxsrC5cuGC2JSQkKCIiQoGBgea86OhopaWlae/evWZMjx49bLYVHR2thIQEc7uJiYk2MS4uLurRo4cZAwAof/zFAwAA4CABAQH67bffShQHVAXx8fE6f/68HnroIXPewIED1aBBA4WEhGjXrl2aMGGCDhw4oBUrVki6fNvrlQUpSeZ0SkpKsTFpaWnKysrSuXPnlJubW2jM/v37i8w3Oztb2dnZ5nRaWlrpdxoAYKIoBQAA4CBXD8T8Z+OAyu6NN95Qr169FBISYs575JFHzPcREREKDg7WbbfdpkOHDqlRo0bOSNMUFxenKVOmODUHALiecPseAACAg5w+fbpM44DK7OjRo/riiy80fPjwYuM6dOggSTp48KCky0+tPHnypE1M/nT+kyyLivH19ZWnp6f8/f3l6upaaMzVT8O8UmxsrFJTU83X8ePHS7CnAICiUJQCAABwEMMwyjQOqMwWL16sgIAA9e7du9i4nTt3SpKCg4MlSVFRUdq9e7dOnTplxqxfv16+vr5q3ry5GbNhwwab9axfv15RUVGSJHd3d0VGRtrE5OXlacOGDWZMYaxWq3x9fW1eAIBrR1EKsMPd3b1M4wAAAKq6vLw8LV68WEOGDLEZ2P/QoUN64YUXlJiYqCNHjujTTz/V4MGD1bVrV7Vq1UqS1LNnTzVv3lwPPvigfvzxR33++ed67rnnNHLkSFmtVknSo48+ql9++UXjx4/X/v37NX/+fH344YcaM2aMua2xY8fqP//5j9566y3t27dPjz32mDIzMzV06FDHHgwAqMIYUwqwIzw83HySi704AAAA2PfFF1/o2LFj+vvf/24z393dXV988YVmz56tzMxMhYaG6u6779Zzzz1nxri6umrVqlV67LHHFBUVJW9vbw0ZMkRTp041Y8LCwrR69WqNGTNGc+bMUb169fTf//5X0dHRZkz//v11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DQAALktuNd0BlO35559XcHCwDMNQdna2EhMTddNNN+mzzz7T0KFDa7p7l2zXrl2aMWOGIiMj1bp164uW/+GHH3Ty5EnNnDlTAwcOdH4H/6JWrVqpoKBADRo0qOmulOtS+/j222+radOmfHsPVCPO9X+qa+f62oxzdcX69OmjgoICubu725ctXbpUO3fu1JQpU2quYwAAXKYIpWqp6OhodevWzT4/btw4NW/eXB9++GGd/qBSVUePHpUkNWnSpNrqzM/Pd9o38BaLRQ0bNnRK3dWlLvQRuFxwrv9TXTvXo+5ycXHhGggAQC3C43t1RJMmTeTh4SE3N8ccMT8/X4888oiCgoJktVoVGhqqV155RYZhSJIKCgoUFhamsLAwFRQU2Lf7448/FBAQoOuvv15FRUWSpLFjx8rT01O//PKLoqKi1LhxYwUGBur555+311eRH3/8UdHR0fL29panp6cGDBiglJQU+/rExETdcccdkqR+/frZH1kpb1yHyMhIjRkzRpLUvXt3WSwWh29+ly9froiICHl4eKhp06YaPXq0fv31V4c6SvZp//79uummm+Tl5aVRo0aVuw/PPfecLBaL9u7dq9GjR8vHx0fNmjXTM888I8MwdOjQIQ0fPlze3t7y9/fXq6++6rB9WeM1ZWVl6d5771WLFi1ktVoVEBCg4cOHOzzWsnXrVkVFRalp06by8PBQcHCw7rvvvooOd5neeecdtWnTRh4eHrr22mv17bfflipzKX1s3bq1fv75Z23cuNH+eysZI+OPP/7Qo48+qo4dO8rT01Pe3t6Kjo7Wf//7X4d2S8bx+Pjjj/XCCy+oRYsWatiwoQYMGKB9+/aV6ueWLVt000036YorrlDjxo3VqVMnvfHGGw5l9uzZo9tvv12+vr5q2LChunXrpk8//bTKxw2oLTjXm3OuP3DggP7+978rNDRUHh4euvLKK3XHHXeU+7jhqVOn9MADD+jKK6+Ut7e37rnnHp04ccKhTGXO4xf7PZan5Np0oZLHQCtzrpaknJwcTZkyxd5+SEiIZs+ereLi4grbv1BkZKQ6dOign376SX379lWjRo0UEhKiFStWSJI2btyoHj16yMPDQ6Ghofr6668dtq/K8S9pw8PDQy1atNCsWbOUkJDgsN8l+z506FB99913uvbaa9WwYUNdddVVWrx4sUN9F44pFRkZqc8//1wHDhywH7OSu/suPL7l1VGiMtdgSSosLNT06dMVEhIiq9WqoKAgPfbYYyosLKz4wAMAUA9xp1QtlZubq2PHjskwDB09elT//Oc/lZeXp9GjR9vLGIahm2++WRs2bNC4cePUpUsXrVu3TtOmTdOvv/6q119/XR4eHlq0aJF69eqlp556Sq+99pokKSYmRrm5uUpMTJSrq6u9zqKiIg0ePFjXXXed5syZo7Vr12r69Ok6d+6cnn/++XL7+/PPP+uGG26Qt7e3HnvsMTVo0EALFixQZGSk/Y/TPn366KGHHtKbb76pJ598UuHh4ZJk//dCTz31lEJDQ/XOO+/YH3Fp06aNpD//ULz33nvVvXt3xcXFKTs7W2+88Yb+85//6Mcff3T4tv3cuXOKiopS79699corr6hRo0YXPf5/+9vfFB4erpdeekmff/65Zs2aJV9fXy1YsED9+/fX7Nmz9cEHH+jRRx9V9+7d1adPn3Lruu222/Tzzz9r8uTJat26tY4ePaqvvvpKBw8etM8PGjRIzZo10xNPPKEmTZooMzNTn3zyyUX7eb6FCxfqgQce0PXXX68pU6bol19+0c033yxfX18FBQVVuO3F+jh37lxNnjxZnp6eeuqppyRJzZs3lyT98ssvWrlype644w4FBwcrOztbCxYsUN++fbVr1y4FBgY6tPXSSy/JxcVFjz76qHJzczVnzhyNGjVKW7ZssZf56quvNHToUAUEBOgf//iH/P39tXv3bq1evVr/+Mc/JP3531yvXr30P//zP3riiSfUuHFjffzxxxoxYoT+/e9/65ZbbqnS8QNqAuf6mjnX//DDD/r+++81cuRItWjRQpmZmYqPj1dkZKR27dpVattJkyapSZMmeu6555SWlqb4+HgdOHDAHk5U5jxemd/jX1XRufrUqVPq27evfv31Vz3wwANq2bKlvv/+e8XGxurIkSNVHlPpxIkTGjp0qEaOHKk77rhD8fHxGjlypD744ANNmTJFDz74oO6++269/PLLuv3223Xo0CF5eXlJqvzx//XXX+3BZmxsrBo3bqz33ntPVqu1zD7t27dPt99+u8aNG6cxY8bo/fff19ixYxUREaGrr766zG2eeuop5ebm6vDhw/bfgaenZ5WOhVT5a3BxcbFuvvlmfffdd5owYYLCw8O1Y8cOvf7669q7d69WrlxZ5bYBAKjTDNQqCQkJhqRSk9VqNRITEx3Krly50pBkzJo1y2H57bffblgsFmPfvn32ZbGxsYaLi4uxadMmY/ny5YYkY+7cuQ7bjRkzxpBkTJ482b6suLjYGDJkiOHu7m78/vvv9uWSjOnTp9vnR4wYYbi7uxv79++3L/vtt98MLy8vo0+fPvZlJW1v2LChSsfjhx9+sC87c+aM4efnZ3To0MEoKCiwL1+9erUhyXj22WdL7dMTTzxRqfamT59uSDImTJhgX3bu3DmjRYsWhsViMV566SX78hMnThgeHh7GmDFj7MsyMjIMSUZCQoK9jCTj5ZdfLrfNpKSkUvtYVSXHpEuXLkZhYaF9+TvvvGNIMvr27fuX+mgYhnH11Vc71FPi9OnTRlFRkcOyjIwMw2q1Gs8//7x92YYNGwxJRnh4uEMf33jjDUOSsWPHDsMw/jzewcHBRqtWrYwTJ0441FtcXGz/ecCAAUbHjh2N06dPO6y//vrrjbZt21a4L0BN41xf9vEw61x/6tSpUss2b95sSDIWL15cql8RERHGmTNn7MvnzJljSDJWrVplGEblzuNV+T22atXK4dpScm26UEn/MjIy7MvKO1fPnDnTaNy4sbF3716H5U888YTh6upqHDx4sNy+X6hv376GJGPp0qX2ZXv27DEkGS4uLkZKSop9+bp16xyuOYZR+eM/efJkw2KxGD/++KN92fHjxw1fX99S+92qVStDkrFp0yb7sqNHjxpWq9V45JFH7MtKrkXn/7c5ZMgQo1WrVqX6VNbxLauOqlyD//WvfxkuLi7Gt99+61Dn/PnzDUnGf/7zn1L9AACgPuPxvVpq3rx5+uqrr/TVV19pyZIl6tevn8aPH+/wresXX3whV1dXPfTQQw7bPvLIIzIMw+ENTs8995yuvvpqjRkzRn//+9/Vt2/fUtuVmDRpkv1ni8WiSZMm6cyZM6Vuvy9RVFSkL7/8UiNGjNBVV11lXx4QEKC7775b3333nWw22yUdh7Js3bpVR48e1d///neHcSGGDBmisLAwff7556W2mThxYpXaGD9+vP1nV1dXdevWTYZhaNy4cfblTZo0UWhoqH755Zdy6/Hw8JC7u7uSk5NLPepxfj2StHr1ap09e7ZK/SxRckwefPBBh8Fbx44dKx8fnwq3rUwfK2K1WuXi8ueppKioSMePH5enp6dCQ0O1bdu2UuXvvfdehz7ecMMNkmQ/jj/++KMyMjI0ZcqUUuPLlDy+8scff+ibb77RnXfeqZMnT+rYsWM6duyYjh8/rqioKKWnp5d6vAeojTjXl8+Z53oPDw/7z2fPntXx48cVEhKiJk2alHnemjBhgsPLISZOnCg3Nzd98cUXkip3Hq/K79EZli9frhtuuEFXXHGF/Zx57NgxDRw4UEVFRdq0aVOV6vP09NTIkSPt86GhoWrSpInCw8PVo0cP+/KSn8+/Vlb2+K9du1Y9e/ZUly5d7Mt8fX3LfTSzffv29muKJDVr1uyi1+nqUJVr8PLlyxUeHq6wsDCH30P//v0lSRs2bHBqXwEAqG3qVCi1adMmDRs2TIGBgbJYLFW+xblkTIYLp9o4EOq1116rgQMHauDAgRo1apQ+//xztW/f3v6hQfpzTIbAwED77fAlSh6ROHDggH2Zu7u73n//fWVkZOjkyZP28Rgu5OLi4vBhQ5LatWsnSeWOtfH777/r1KlTCg0NLbUuPDxcxcXFOnToUOV3/iJK9qus9sLCwhz2W5Lc3NzUokWLKrXRsmVLh3kfHx81bNhQTZs2LbW8oiDHarVq9uzZWrNmjZo3b64+ffpozpw5ysrKspfp27evbrvtNs2YMUNNmzbV8OHDlZCQUKWxJUr2uW3btg7LGzRoUOr3eSl9rEhxcbFef/11tW3bVlarVU2bNlWzZs30008/KTc3t1T5C4/tFVdcIUn247h//35JUocOHcptc9++fTIMQ88884yaNWvmME2fPl3S/x84GajNONeXz5nn+oKCAj377LP2sZVKzls5OTllnrcuPLd6enoqICDAfqwqcx6vyu/RGdLT07V27dpS58yStx1W9ZzZokWLUv9t+fj4lHpcvCSUOf9aWdnjf+DAAYWEhJRqu6xlUunri/TnNeZSvnCpiqpcg9PT0/Xzzz+X+j2U/P/HtQsAcLmpU2NK5efnq3Pnzrrvvvt06623Vnn7Rx99VA8++KDDsgEDBqh79+7V1UWncXFxUb9+/fTGG28oPT293LERKrJu3TpJ0unTp5Wenq7g4ODq7matdP6dPJV1/tgrFS2TdNEBaqdMmaJhw4Zp5cqVWrdunZ555hnFxcXpm2++0TXXXCOLxaIVK1YoJSVFn332mdatW6f77rtPr776qlJSUi5pbIuqulgfK/Liiy/qmWee0X333aeZM2fK19dXLi4umjJlSpmD517qcTxfSb2PPvqooqKiyixT3ocWoDbjXH/pqnKunzx5shISEjRlyhT17NlTPj4+slgsGjlyZJUH/Zbk9PN4WcGiJPvg9ZVRXFysG2+8UY899liZ60tCkcoq71xemXN8dR//qrRdFdVx3C9UXFysjh072sd9u9DFxoAEAKC+qVOhVHR0tKKjo8tdX1hYqKeeekoffvihcnJy1KFDB82ePdv+5hlPT0+HPwz/+9//ateuXZo/f76zu14tzp07J0nKy8uTJLVq1Upff/21Tp486fDN6549e+zrS/z00096/vnnde+992r79u0aP368duzYUeq28uLiYv3yyy8Of5zu3btXkuxvo7lQs2bN1KhRI6WlpZVat2fPHrm4uNj/yCrvD7yqKNmvtLQ0++3uJdLS0hz2u7Zo06aNHnnkET3yyCNKT09Xly5d9Oqrr2rJkiX2Mtddd52uu+46vfDCC1q6dKlGjRqlZcuWOTxKWJ6SfU5PT3c4JmfPnlVGRoY6d+78l/tY3u9uxYoV6tevnxYuXOiwPCcnp9SdZZVRMsDxzp077d/gX6jkm+cGDRqUWwaoqzjX/8mZ5/oVK1ZozJgxDm9QPX36tHJycsosn56ern79+tnn8/LydOTIEd10000O5So6j1fl93ihkjtKc3JyHB5rLuvuqvKOfZs2bZSXl1crzpmVPf6tWrUq8+2sZS37K8o7Zucf9/NdeNyrcg1u06aN/vvf/2rAgAHV8v8JAAB1XZ16fO9iJk2apM2bN2vZsmX66aefdMcdd2jw4MFKT08vs/x7772ndu3aOYw/UFudPXtWX375pdzd3e23+t90000qKirSW2+95VD29ddfl8VisQd4Z8+e1dixYxUYGKg33nhDiYmJys7O1sMPP1xmW+fXZxiG3nrrLTVo0EADBgwos7yrq6sGDRqkVatWOTz2kZ2draVLl6p3797y9vaWJPujkuX94V8Z3bp1k5+fn+bPn+/waMSaNWu0e/duDRky5JLrrm6nTp3S6dOnHZa1adNGXl5e9r6fOHGi1Le4JeNnVPYRvm7duqlZs2aaP3++/ZEf6c83V13sWFemj9Kfv7uy6nJ1dS3V/+XLl1/ymE5du3ZVcHCw5s6dW6q9knb8/PwUGRmpBQsW6MiRI6Xq+P333y+pbaCmca7//5x5ri/rvPXPf/6z3Dtg3nnnHYexouLj43Xu3Dn7sa/Mebyyv8eylIT154/7lJ+fr0WLFpUqW965+s4779TmzZvtd9KdLycnxx6GmqGyxz8qKkqbN2/W9u3b7cv++OMPffDBB9Xan8aNG5f52GZZx72oqEjvvPOOQ7mqXIPvvPNO/frrr3r33XdLtVdQUKD8/Py/sisAANQ5depOqYocPHhQCQkJOnjwoP0V9I8++qjWrl2rhIQEvfjiiw7lT58+rQ8++EBPPPFETXT3otasWWP/9vTo0aNaunSp0tPT9cQTT9j/6B82bJj69eunp556SpmZmercubO+/PJLrVq1SlOmTLH/MTVr1ixt375d69evl5eXlzp16qRnn31WTz/9tG6//XaHb3obNmyotWvXasyYMerRo4fWrFmjzz//XE8++aSaNWtWbn9nzZqlr776Sr1799bf//53ubm5acGCBSosLNScOXPs5bp06SJXV1fNnj1bubm5slqt6t+/v/z8/Cp9bBo0aKDZs2fr3nvvVd++fXXXXXfZXxPeunXrcj+A1YS9e/dqwIABuvPOO9W+fXu5ubkpKSlJ2dnZ9gFiFy1apLffflu33HKL2rRpo5MnT+rdd9+Vt7d3qW/hy9OgQQPNmjVLDzzwgPr376+//e1vysjIUEJCwkXHlKpMHyUpIiJC8fHxmjVrlkJCQuTn56f+/ftr6NCh9jszrr/+eu3YsUMffPDBRdstj4uLi+Lj4zVs2DB16dJF9957rwICArRnzx79/PPP9g9U8+bNU+/evdWxY0fdf//9uuqqq5Sdna3Nmzfr8OHD+u9//3tJ7QNm4lxfPmee64cOHap//etf8vHxUfv27bV582Z9/fXXuvLKK8ssf+bMGft5Mi0tTW+//bZ69+6tm2++WVLlzuOV/T2WZdCgQWrZsqXGjRunadOmydXVVe+//76aNWumgwcPOpQt71w9bdo0ffrppxo6dKjGjh2riIgI5efna8eOHVqxYoUyMzMv6e7WS1HZ4//YY49pyZIluvHGGzV58mQ1btxY7733nlq2bKk//vij2u40ioiI0EcffaSpU6eqe/fu8vT01LBhw3T11VfruuuuU2xsrP744w/5+vpq2bJlpQK8qlyD//d//1cff/yxHnzwQW3YsEG9evVSUVGR9uzZo48//ljr1q1Tt27dqmW/AACoE0x/3181kWQk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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Количество записей после устранения выбросов: 17638\n" + ] + } + ], + "source": [ + "numeric_cols = df.select_dtypes(include=['number']).columns\n", + "\n", + "#все столбцы, кроме id\n", + "numeric_cols = [col for col in numeric_cols if col != 'id']\n", + "\n", + "\n", + "print(f'Количество записей до устранения выбросов: {len(df)}')\n", + "\n", + "plt.figure(figsize=(12, 8))\n", + " \n", + "\n", + "for i, col in enumerate(numeric_cols, 1):\n", + " if col == 'id':\n", + " continue\n", + " Q1 = df[col].quantile(0.25)\n", + " Q3 = df[col].quantile(0.75)\n", + " IQR = Q3 - Q1\n", + " lower_bound = Q1 - 1.5 * IQR\n", + " upper_bound = Q3 + 1.5 * IQR\n", + " outliers = df[col][(df[col] < lower_bound) | (df[col] > upper_bound)]\n", + " plt.subplot(len(numeric_cols) // 3 + 1, 3, i) \n", + " plt.boxplot(x=df[col])\n", + " plt.title(f'Boxplot for {col}')\n", + "\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "\n", + "#Удаление единичных выбросов\n", + "plt.figure(figsize=(12, 8))\n", + "for i, col in enumerate(numeric_cols, 1):\n", + " if col == 'id':\n", + " continue\n", + " Q1 = df[col].quantile(0.25)\n", + " Q3 = df[col].quantile(0.75)\n", + " IQR = Q3 - Q1\n", + " lower_bound = Q1 - 1.5 * IQR\n", + " upper_bound = Q3 + 1.5 * IQR\n", + " \n", + " if (col=='est_diameter_min'):\n", + " df = df[~((df[col] > 3))]\n", + " if (col=='est_diameter_max'):\n", + " df = df[~((df[col] > 5.5))]\n", + " if (col=='relative_velocity'):\n", + " df = df[~((df[col] > 175000))]\n", + " if (col=='absolute_magnitude'):\n", + " df = df[~((df[col] < 13))]\n", + " \n", + " plt.subplot(len(numeric_cols) // 3 + 1, 3, i)\n", + " plt.boxplot(x=df[col].dropna()) \n", + " plt.title(f'Boxplot for {col}')\n", + "\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "print(f'Количество записей после устранения выбросов: {len(df)}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Пропущенных значений нет, значит решать данную проблему не надо" + ] + }, + { + "cell_type": "code", + "execution_count": 257, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Столбцы с null: []\n" + ] + } + ], + "source": [ + "#проверка на пропущенные значения\n", + "columns_with_nulls = []\n", + "for col in df.columns:\n", + " if df[col].isnull().sum() > 0: \n", + " columns_with_nulls.append(col)\n", + "print(f\"Столбцы с null: {columns_with_nulls}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**РАЗБИЕНИЕ НА ВЫБОРКИ**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "После разбиения в обучающую выборку попало практически равное количество безопасных и опасных объектов, поэтому применять методы аугментации данных нет необходимости" + ] + }, + { + "cell_type": "code", + "execution_count": 258, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Размер обучающей выборки: 14110\n", + "Размер контрольной выборки: 1764\n", + "Размер тестовой выборки: 1764\n" + ] + }, + { + "data": { + "image/png": "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1KmXjEdGRlbaGgFcnutlX68AQFWozPf6qVOn5HK5rlpji0BUVhMmTNDYsWOtxyUlJTp58qQaNGggPz8/H66s6ng8HkVGRurIkSNyOp2+Xk6VsWvfkn17t2vfEr3bsXe79W2M0alTpxQREfGTtbYIRA0bNpS/v79yc3O9xnNzcxUeHn5JfVBQkIKCgrzGQkJCKnOJ1ZbT6bTFm+bH7Nq3ZN/e7dq3RO927N1Off/UmaFStrio2uFwqHPnzkpLS7PGSkpKlJaWJrfb7cOVAQCA6sAWZ4gkaezYsRo4cKBuv/123XnnnXr55Zd15swZDRo0yNdLAwAAPmabQPTII4/o+PHjmjRpknJycnTbbbdp7dq1l1xojR8EBQVp8uTJl3x0eLOza9+SfXu3a98Svduxd7v2fS38zLXciwYAAHATs8U1RAAAAFdDIAIAALZHIAIAALZHIAIAALZHILKpkydPql+/fnI6nQoJCdHgwYN1+vTpq9aPGjVKrVq1UnBwsJo0aaInn3zS+j1vpfz8/C7Zli1bVtntXNW8efPUrFkz1axZUzExMdq5c+dV61esWKHWrVurZs2aateunT788EOveWOMJk2apMaNGys4OFixsbE6ePBgZbZQLmXp+4033tA999yjevXqqV69eoqNjb2k/vHHH7/kte3Ro0dlt1EuZek9OTn5kr5q1qzpVXOjvOZS2Xq/7777LvueTUhIsGpuhNd969atevDBBxURESE/Pz+99957P7nP5s2b1alTJwUFBalFixZKTk6+pKas/3ZUtbL2vXLlSv3qV79So0aN5HQ65Xa7tW7dOq+aKVOmXPJ6t27duhK7qEYMbKlHjx6mQ4cOZvv27eaf//ynadGihXn00UevWL97927Tp08fs2rVKnPo0CGTlpZmbr31VpOYmOhVJ8ksWrTIHDt2zNrOnj1b2e1c0bJly4zD4TALFy40mZmZZujQoSYkJMTk5uZetv7jjz82/v7+ZubMmWbv3r1m4sSJJjAw0OzevduqmTFjhnG5XOa9994zX3zxhfmv//ovExUV5dM+f6ysff/2t7818+bNM59//rnZt2+fefzxx43L5TJff/21VTNw4EDTo0cPr9f25MmTVdXSNStr74sWLTJOp9Orr5ycHK+aG+E1N6bsvZ84ccKr7z179hh/f3+zaNEiq+ZGeN0//PBD86c//cmsXLnSSDLvvvvuVeu/+uorU6tWLTN27Fizd+9eM3fuXOPv72/Wrl1r1ZT179IXytr3U089ZV544QWzc+dO869//ctMmDDBBAYGms8++8yqmTx5smnbtq3X6338+PFK7qR6IBDZ0N69e40k88knn1hja9asMX5+fuabb7655uMsX77cOBwOc/78eWvsWt6UVenOO+80SUlJ1uPi4mITERFhpk+fftn63/zmNyYhIcFrLCYmxvzud78zxhhTUlJiwsPDzYsvvmjN5+fnm6CgIPP3v/+9Ejoon7L2/WMXLlwwdevWNYsXL7bGBg4caHr37l3RS61wZe190aJFxuVyXfF4N8prbsz1v+5z5swxdevWNadPn7bGbpTXvdS1/Bs0btw407ZtW6+xRx55xMTHx1uPr/fvsqqV99/e6OhoM3XqVOvx5MmTTYcOHSpuYTcQPjKzofT0dIWEhOj222+3xmJjY1WjRg3t2LHjmo9TUFAgp9OpgADv7/dMSkpSw4YNdeedd2rhwoUyPvqqq6KiImVkZCg2NtYaq1GjhmJjY5Wenn7ZfdLT073qJSk+Pt6qz8rKUk5OjleNy+VSTEzMFY9Z1crT9499//33On/+vOrXr+81vnnzZoWGhqpVq1YaMWKETpw4UaFrv17l7f306dNq2rSpIiMj1bt3b2VmZlpzN8JrLlXM6/7WW2+pb9++ql27ttd4dX/dy+qn3ucV8Xd5IygpKdGpU6cueZ8fPHhQERERat68ufr166fs7GwfrbBqEYhsKCcnR6GhoV5jAQEBql+/vnJycq7pGN9++62ee+45DRs2zGt82rRpWr58uVJTU5WYmKjf//73mjt3boWtvSy+/fZbFRcXX/Jt5GFhYVfsMycn56r1pf9blmNWtfL0/WPjx49XRESE1w+EHj166O2331ZaWppeeOEFbdmyRT179lRxcXGFrv96lKf3Vq1aaeHChXr//ff1t7/9TSUlJfrlL3+pr7/+WtKN8ZpL1/+679y5U3v27NGQIUO8xm+E172srvQ+93g8Onv2bIW8h24EL730kk6fPq3f/OY31lhMTIySk5O1du1avf7668rKytI999yjU6dO+XClVcM2v7rDDp555hm98MILV63Zt2/fdT+Px+NRQkKCoqOjNWXKFK+5Z5991vpzx44ddebMGb344ot68sknr/t5UTVmzJihZcuW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oMFl52bPnm1CQkLMgQMHrvh8P95/0aJFRpLZtWuXNXbgwAEjyezcudMa27dvn5Fk5syZY4wxZv369cbf399kZ2dbNZmZmV77DRw40PTu3dvr+Z966inTtWtXY4wxGRkZRpI5fPjwFdcLoOpwhgiAT7Vv397rcePGja2zMRs2bFD37t31s5/9THXr1lX//v114sQJff/99177rFmzRs8884zeeecdtWzZ0hq/lv0dDofXGvbt26eAgAB17tzZGmvdurVCQkK8aiIjIxUZGWmNRUdHKyQkRPv27bumvjt06KDu3burXbt2+vWvf6033nhD33333TXtC6DiEYgA+FRgYKDXYz8/P5WUlOjw4cPq1auX2rdvr//3//6fMjIyNG/ePElSUVGRVb9371717dtXM2bMUFxcnDV+rfsHBwfLz8+vwvuqUaPGJR9/nT9/3vqzv7+/UlNTtWbNGkVHR2vu3Llq1aqVsrKyKnwtAH4agQhAtZSRkaGSkhLNmjVLXbp0UcuWLXX06FGvmm+//VYPPvigEhMTNWbMmDLvfzmtW7fWhQsXlJGRYY0dOHBA+fn51uM2bdroyJEjOnLkiDW2d+9e5efnKzo6WpLUqFEjHTt2zOvYu3bt8nrs5+enu+66S1OnTtXnn38uh8Ohd9999yfXCKDiEYgAVEstWrTQ+fPnNXfuXH311Vf63//9Xy1YsMCrJjExUbVq1dKUKVOUk5NjbcXFxde0/+W0atVKPXr00O9+9zvt2LFDGRkZGjJkiIKDg62a2NhYtWvXTv369dNnn32mnTt3asCAAeratatuv/12SdL999+vTz/9VG+//bYOHjyoyZMna8+ePdYxduzYoeeff16ffvqpsrOztXLlSh0/flxt2rSpoL9BAGVBIAJQLXXo0EGzZ8/WCy+8oF/84hdasmSJpk+f7lWzdetW7dmzR02bNlXjxo2t7ciRI9e0/5UsWrRIERER6tq1q/r06aNhw4YpNDTUmvfz89P777+vevXq6d5771VsbKyaN2+ud955x6qJj4/Xs88+q3HjxumOO+7QqVOnNGDAAGve6XRq69ateuCBB9SyZUtNnDhRs2bNUs+ePa/zbw5AefiZH3/IDQAAYDOcIQIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALZHIAIAALb3/wG4FkrdEvulAgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hazardous\n", + "True 7094\n", + "False 7016\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "data=df[['est_diameter_min', 'est_diameter_max', 'relative_velocity', 'miss_distance', 'absolute_magnitude', 'hazardous']].copy()\n", + "\n", + "\n", + "# сначала разделение записей на 80% и 20%, где 80% - обучающая выборка\n", + "train_data, temp_data = train_test_split(data, test_size=0.2, random_state=42)\n", + "\n", + "# потом разделение остальных 20% поровну на контрольную и тестовую выборки\n", + "val_data, test_data = train_test_split(temp_data, test_size=0.5, random_state=42)\n", + "\n", + "# Проверка размеров выборок\n", + "print(\"Размер обучающей выборки:\", len(train_data))\n", + "print(\"Размер контрольной выборки:\", len(val_data))\n", + "print(\"Размер тестовой выборки:\", len(test_data))\n", + "\n", + "\n", + "# построение столбчатой диаграммы по столбцу rating_stars (сбалансированность обучающей выборки)\n", + "hazardous_counts = train_data['hazardous'].value_counts()\n", + "\n", + "plt.bar(hazardous_counts.index, hazardous_counts.values)\n", + "plt.xlabel('hazardous')\n", + "plt.ylabel('Count')\n", + "plt.show()\n", + "\n", + "print(train_data[\"hazardous\"].value_counts())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Конструирование признаков" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Унитарное кодирование категориальных признаков (для всех категориальных признаков в датасете)**\n", + "\n", + "т.к. в столбцах orbiting_body и sentry_object есть только 1 различное категориальное значение, то при использовании encoder = OneHotEncoder(sparse_output=False, drop=\"first\") срабатывает условие drop=\"first\", который удаляет первое категориальное значение для предотвращения линейной зависимости между столбцами. Поэтому в случае с hazardous использован OneHotEncoder с параметром drop=\"first\", а для orbiting_body и sentry_object без него.\n", + "\n", + "Для решения обеих задач (бизнес-целей и технических целей) нужен только признак hazardous_True" + ] + }, + { + "cell_type": "code", + "execution_count": 259, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " orbiting_body_Earth sentry_object_False hazardous_True\n", + "0 1.0 1.0 1.0\n", + "1 1.0 1.0 1.0\n", + "2 1.0 1.0 0.0\n", + "3 1.0 1.0 1.0\n", + "4 1.0 1.0 0.0\n", + "... ... ... ...\n", + "17633 1.0 1.0 1.0\n", + "17634 1.0 1.0 0.0\n", + "17635 1.0 1.0 1.0\n", + "17636 1.0 1.0 0.0\n", + "17637 1.0 1.0 0.0\n", + "\n", + "[17638 rows x 3 columns]\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "import numpy as np\n", + "\n", + "encoder = OneHotEncoder(sparse_output=False, drop=\"first\")\n", + "encoder1 = OneHotEncoder(sparse_output=False)\n", + "\n", + "encoded_values = encoder.fit_transform(df[[\"hazardous\"]])\n", + "encoded_columns = encoder.get_feature_names_out([\"hazardous\"])\n", + "\n", + "encoded_values1 = encoder1.fit_transform(df[[\"orbiting_body\", \"sentry_object\"]])\n", + "encoded_columns1 = encoder1.get_feature_names_out([\"orbiting_body\", \"sentry_object\"])\n", + "\n", + "\n", + "encoded_values_df1 = pd.DataFrame(encoded_values1, columns=encoded_columns1)\n", + "encoded_values_df2 = pd.DataFrame(encoded_values, columns=encoded_columns)\n", + "\n", + "\n", + "encoded_values_df = pd.concat([encoded_values_df1, encoded_values_df2], axis=1)\n", + "print(encoded_values_df)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Унитарное кодирование для самой обучающей выборки" + ] + }, + { + "cell_type": "code", + "execution_count": 260, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", + "1882 0.056566 0.126485 53181.770308 1.608163e+07 \n", + "10162 0.108282 0.242125 71641.177993 6.633209e+07 \n", + "13664 0.186447 0.416908 72150.829803 7.266875e+07 \n", + "17556 0.003052 0.006824 13472.804594 2.411481e+07 \n", + "13523 0.048368 0.108153 31281.647283 2.217165e+06 \n", + "... ... ... ... ... \n", + "11308 0.069913 0.156329 38271.512861 5.439281e+07 \n", + "11990 0.152249 0.340440 58488.870909 7.232920e+07 \n", + "5402 0.008801 0.019681 20926.865447 2.458771e+07 \n", + "861 0.183889 0.411188 40232.968565 3.188090e+07 \n", + "15832 0.183889 0.411188 89521.116646 5.187941e+07 \n", + "\n", + " absolute_magnitude hazardous_True \n", + "1882 23.36 0.0 \n", + "10162 21.95 0.0 \n", + "13664 20.77 1.0 \n", + "17556 29.70 0.0 \n", + "13523 23.70 0.0 \n", + "... ... ... \n", + "11308 22.90 0.0 \n", + "11990 21.21 1.0 \n", + "5402 27.40 0.0 \n", + "861 20.80 1.0 \n", + "15832 20.80 1.0 \n", + "\n", + "[14110 rows x 6 columns]\n" + ] + } + ], + "source": [ + "#обучающая выборка\n", + "train_data_encoded = pd.get_dummies(train_data, columns=['hazardous'], drop_first=True, dtype=float)\n", + "train_data = train_data_encoded\n", + "\n", + "#валидационная\n", + "val_data_encoded = pd.get_dummies(val_data, columns=['hazardous'], drop_first=True, dtype=float)\n", + "val_data = val_data_encoded\n", + "\n", + "#тестовая\n", + "test_data_encoded = pd.get_dummies(test_data, columns=['hazardous'], drop_first=True, dtype=float)\n", + "test_data = test_data_encoded\n", + "\n", + "print(train_data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Дискретизация числовых признаков**\n", + "\n", + "дискретизируется скорость relative_velocity\n" + ] + }, + { + "cell_type": "code", + "execution_count": 261, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", + "1882 0.056566 0.126485 Небольшая скорость 1.608163e+07 \n", + "10162 0.108282 0.242125 Средняя скорость 6.633209e+07 \n", + "13664 0.186447 0.416908 Средняя скорость 7.266875e+07 \n", + "17556 0.003052 0.006824 Небольшая скорость 2.411481e+07 \n", + "13523 0.048368 0.108153 Небольшая скорость 2.217165e+06 \n", + "... ... ... ... ... \n", + "11308 0.069913 0.156329 Небольшая скорость 5.439281e+07 \n", + "11990 0.152249 0.340440 Небольшая скорость 7.232920e+07 \n", + "5402 0.008801 0.019681 Небольшая скорость 2.458771e+07 \n", + "861 0.183889 0.411188 Небольшая скорость 3.188090e+07 \n", + "15832 0.183889 0.411188 Средняя скорость 5.187941e+07 \n", + "\n", + " absolute_magnitude hazardous_True \n", + "1882 23.36 0.0 \n", + "10162 21.95 0.0 \n", + "13664 20.77 1.0 \n", + "17556 29.70 0.0 \n", + "13523 23.70 0.0 \n", + "... ... ... \n", + "11308 22.90 0.0 \n", + "11990 21.21 1.0 \n", + "5402 27.40 0.0 \n", + "861 20.80 1.0 \n", + "15832 20.80 1.0 \n", + "\n", + "[14110 rows x 6 columns]\n", + "relative_velocity\n", + "Небольшая скорость 8685\n", + "Средняя скорость 5039\n", + "Большая скорость 386\n", + "Name: count, dtype: int64\n" + ] + } + ], + "source": [ + "velocity_labels=['Небольшая скорость', 'Средняя скорость', 'Большая скорость']\n", + "\n", + "#обучающая выборка\n", + "train_data_discretized = train_data\n", + "#равномерная группировка (для каждой категории диапазон чисел одинаковой длины)\n", + "train_data_discretized['relative_velocity'] = pd.cut(train_data['relative_velocity'], bins=3, labels=velocity_labels)\n", + "train_data = train_data_discretized\n", + "\n", + "#валидационная выборка\n", + "val_data_discretized = val_data\n", + "val_data_discretized['relative_velocity'] = pd.cut(val_data['relative_velocity'], bins=3, labels=velocity_labels)\n", + "val_data = val_data_discretized\n", + "\n", + "#тестовая выборка\n", + "test_data_discretized = test_data\n", + "test_data_discretized['relative_velocity'] = pd.cut(test_data['relative_velocity'], bins=3, labels=velocity_labels)\n", + "test_data = test_data_discretized\n", + "\n", + "print(train_data_discretized)\n", + "print(train_data[\"relative_velocity\"].value_counts())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Ручной синтез признаков**\n", + "\n", + "На основании максимального и минимального радиуса объекта можно найти среднее значение диаметра" + ] + }, + { + "cell_type": "code", + "execution_count": 262, + "metadata": {}, + "outputs": [], + "source": [ + "train_data['average_diameter'] = (train_data['est_diameter_min'] + train_data['est_diameter_max']) / 2\n", + "val_data['average_diameter'] = (val_data['est_diameter_min'] + val_data['est_diameter_max']) / 2\n", + "test_data['average_diameter'] = (test_data['est_diameter_min'] + test_data['est_diameter_max']) / 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Масштабирование признаков**" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "scaler = StandardScaler()\n", + "\n", + "numeric_cols = train_data.select_dtypes(include=['number']).columns\n", + "\n", + "numeric_cols = numeric_cols.drop('hazardous_True')\n", + "\n", + "train_data[numeric_cols] = scaler.fit_transform(train_data[numeric_cols])\n", + "val_data[numeric_cols] = scaler.fit_transform(val_data[numeric_cols])\n", + "test_data[numeric_cols] = scaler.fit_transform(test_data[numeric_cols])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Featuretools**\n", + "\n", + "Featuretools не смог выявить дополнительных признаков по признакам, которые необходимы для решения поставленных задач" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", + "id \n", + "0 -0.572328 -0.572328 Небольшая скорость -1.014078 \n", + "1 -0.361244 -0.361244 Средняя скорость 1.278171 \n", + "2 -0.042204 -0.042204 Средняя скорость 1.567227 \n", + "3 -0.790752 -0.790752 Небольшая скорость -0.647632 \n", + "4 -0.605790 -0.605790 Небольшая скорость -1.646526 \n", + "\n", + " absolute_magnitude hazardous_True average_diameter \n", + "id \n", + "0 0.447447 0.0 -0.572328 \n", + "1 -0.051566 0.0 -0.361244 \n", + "2 -0.469179 1.0 -0.042204 \n", + "3 2.691234 0.0 -0.790752 \n", + "4 0.567776 0.0 -0.605790 \n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:1733: UserWarning: index id not found in dataframe, creating new integer column\n", + " warnings.warn(\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", + " pd.to_datetime(\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", + " warnings.warn(\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\dfs.py:321: UnusedPrimitiveWarning: Some specified primitives were not used during DFS:\n", + " agg_primitives: ['any', 'count', 'mean', 'mode']\n", + "This may be caused by a using a value of max_depth that is too small, not setting interesting values, or it may indicate no compatible columns for the primitive were found in the data. If the DFS call contained multiple instances of a primitive in the list above, none of them were used.\n", + " warnings.warn(warning_msg, UnusedPrimitiveWarning)\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " df = pd.concat([df, default_df], sort=True)\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " df = pd.concat([df, default_df], sort=True)\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " df = pd.concat([df, default_df], sort=True)\n", + "c:\\AI labs\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", + " df = pd.concat([df, default_df], sort=True)\n" + ] + } + ], + "source": [ + "import featuretools as ft\n", + "\n", + "es = ft.EntitySet(id='space_objects_data')\n", + "es = es.add_dataframe(dataframe_name='space_objects', dataframe=train_data, index='id')\n", + "\n", + "# Генерация признаков\n", + "feature_matrix, feature_defs = ft.dfs(\n", + " entityset=es,\n", + " target_dataframe_name=\"space_objects\",\n", + " agg_primitives=[\"mean\", \"count\", \"mode\", \"any\"],\n", + " max_depth=2,\n", + ")\n", + "\n", + "# Преобразование признаков для контрольной и тестовой выборок\n", + "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data_encoded.index)\n", + "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data_encoded.index)\n", + "\n", + "print(feature_matrix.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Оценка качества наборов признаков**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "У модели, построенной по логической регрессии, точность (accuracy) составляет почти 85%, что является приемлемым значением. При этом, модель верно относит опасные объекты к опасным примерно в 80% случаев (precision), что может быть недостаточным значением \n", + "\n", + "Модель имеет показатель показатель полноты примерно 93%\n", + "\n", + "Значение метрики f1 примерно 86%, что означает, что между точностью и полнотой модели хороший баланс\n", + "\n", + "Среднее значение точности по кросс-валидации (Cross-Validation Mean) составляет около 85%, что близко к точности на тестовой выборке. Это указывает на то, что модель стабильна\n", + "\n", + "Дисперсия (Cross-Validation Std) составляет меньше 1%, что говорит о том, что модель качественно выполняет предсказания на\n", + "тестовой выборке. Модель можно считать надёжной\n", + "\n", + "У модели очень большая скорость вычислений и очень низкий показатель среднеквадратичной ошибки, что говорит о том, что модель обучилась хорошо\n", + "\n", + "По диаграмме (матрице ошибок) можно увидеть, что модель большинство космических объектов оценила также, как есть на самом деле. Модель очень часто верно определяет опасные объекты, чуть хуже верно определяет неопасные объекты. Однако у неё есть склонность относить неопасные объекты к опасным" + ] + }, + { + "cell_type": "code", + "execution_count": 265, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.8479801559177887\n", + "Precision: 0.8024464831804281\n", + "Полнота: 0.92524682651622\n", + "F1: 0.859482476252866\n", + "Cross-Validation Mean: 0.8499645641389085\n", + "Cross-Validation Std: 0.0053722448357894316\n", + "Время обучения модели: 0.01 секунд\n", + "Скорость вычисления: 0.00 секунд\n", + "Среднеквадратичная ошибка: 0.15\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApIAAAIjCAYAAACwHvu2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjGUlEQVR4nO3dd3gU1fv38c8GSCEhCS0JQQgBQu89dDRK74oISlUECUgTjNJRo4D0JqCACkoVUL8iCAgCkR5AQESKgBJaaKGElH3+4GF/rAnIDtnskrxfXnO5O+fM7D2rITf3OXPGZDabzQIAAABs5OLoAAAAAPBkIpEEAACAISSSAAAAMIREEgAAAIaQSAIAAMAQEkkAAAAYQiIJAAAAQ0gkAQAAYEhWRwcAAJnRnTt3FBsbq+TkZAUGBjo6HAAwhIokAKSTXbt2qUOHDsqTJ4/c3NyUL18+tW3b1tFhAYBhJJKAE5k/f75MJpNMJpO2bNmSot1sNqtAgQIymUxq1qyZAyKEUatWrVLt2rV16NAhvf/++1q3bp3WrVunTz75xNGhAYBhDG0DTsjd3V2LFi1S7dq1rfZv2rRJZ86ckZubm4MigxGxsbF69dVX1bBhQy1dulSurq6ODgkA0gQVScAJNWnSREuXLlViYqLV/kWLFqly5coKCAhwUGQwYt68ebp9+7bmz59PEgkgQyGRBJzQSy+9pEuXLmndunWWfXfu3NGyZcvUoUOHVI8ZP368atasqdy5c8vDw0OVK1fWsmXLrPrcGzZ/0Fa/fn1J0s8//yyTyaTFixfrnXfeUUBAgDw9PdWiRQudPn3a6pz169e3HHfPzp07Lef89+eHh4eniL1Zs2YqVKiQ1b79+/erS5cuKly4sNzd3RUQEKBu3brp0qVLD/vqLM6fP6/u3bvL399f7u7uKl++vBYsWGDV5+TJkzKZTBo/frzV/jJlyqS4pqFDh8pkMikuLs7qekaOHGnVb9y4cVbfpST9+uuvqlChgj744AMVKFBAbm5uCgkJ0Ycffqjk5GSr4xMTEzVmzBgVKVJEbm5uKlSokN555x3Fx8db9StUqJC6dOlita9Hjx5yd3fXzz///N9fEACkAYa2ASdUqFAhhYaG6quvvlLjxo0lST/88IOuXr2q9u3ba8qUKSmOmTx5slq0aKGOHTvqzp07+vrrr/XCCy/ou+++U9OmTSVJX3zxhaX/L7/8otmzZ2vixInKkyePJMnf39/qnO+//75MJpOGDBmi8+fPa9KkSQoLC1N0dLQ8PDweGP+QIUMe+ztYt26djh8/rq5duyogIEAHDx7U7NmzdfDgQf36668pktT73bp1S/Xr19eff/6p8PBwBQcHa+nSperSpYuuXLmiN99887HjS82VK1cUGRmZYv+lS5e0ZcsWbdmyRd26dVPlypW1fv16RURE6OTJk5o1a5al76uvvqoFCxbo+eef18CBA7V9+3ZFRkbq8OHD+uabbx742SNGjNCnn36qxYsXp0iCAcBuzACcxrx588ySzDt37jRPmzbNnCNHDvPNmzfNZrPZ/MILL5gbNGhgNpvN5qCgIHPTpk2tjr3X7547d+6Yy5QpY3766acf+lknTpxI0bZx40azJHP+/PnN165ds+xfsmSJWZJ58uTJln316tUz16tXz/L+f//7n1mSuVGjRuZ//xEjydy7d+8Un9e0aVNzUFDQQ6/HbDabv/rqK7Mk8+bNm1O9pnsmTZpklmT+8ssvLfvu3LljDg0NNXt5eVmu6cSJE2ZJ5nHjxlkdX7p0aatrMpvN5nfffdcsyXz9+nWr6xkxYoTl/eDBg81+fn7mypUrWx1fr149syTzyJEjrc7ZpUsXsyTzgQMHzGaz2RwdHW2WZH711Vet+g0aNMgsybxhwwbLvqCgIHPnzp3NZrPZ/Mknn5glmadOnfrQ7wUA0hpD24CTateunW7duqXvvvtO169f13fffffAYW1JVhXCy5cv6+rVq6pTp4727NljOIZOnTopR44clvfPP/+88uXLp//973+p9jebzYqIiFDbtm1VvXp1w58rWV/P7du3dfHiRdWoUUOS/vOa/ve//ykgIEAvvfSSZV+2bNnUt29fxcXFadOmTY8VW2r+/vtvTZ06VcOGDZOXl1eK9ixZsqh///5W+wYOHChJ+v777y1xS9KAAQMe2u9+q1at0htvvKG33nor1WkDAGBPJJKAk8qbN6/CwsK0aNEirVixQklJSXr++ecf2P+7775TjRo15O7urly5cilv3ryaOXOmrl69ajiGkJAQq/cmk0lFixbVyZMnU+2/cOFCHTx4UB988IHhz7wnNjZWb775pvz9/eXh4aG8efMqODhYkv7zmv766y+FhITIxcX6j7iSJUta2tPaiBEjFBgYqNdf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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import time\n", + "import seaborn as sns\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.metrics import r2_score, accuracy_score, precision_recall_fscore_support, confusion_matrix\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "# Разделение данных на обучающую и валидационную выборки. Удаляем целевую переменную\n", + "X = feature_matrix.drop('hazardous_True', axis=1)\n", + "y = feature_matrix['hazardous_True']\n", + "\n", + "# One-hot encoding для категориальных переменных (преобразование категориальных объектов в числовые)\n", + "X = pd.get_dummies(X, drop_first=True)\n", + "\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", + "\n", + "# Обучение модели\n", + "model = LogisticRegression()\n", + "\n", + "# Начинаем отсчет времени\n", + "start_time = time.time()\n", + "model.fit(X_train, y_train)\n", + "\n", + "# Время обучения модели\n", + "train_time = time.time() - start_time\n", + "\n", + "# Предсказания и оценка модели\n", + "start_time = time.time()\n", + "predictions = model.predict(X_test)\n", + "pred_time = time.time() - start_time\n", + "\n", + "\n", + "\n", + "# Предсказательная способность\n", + "accuracy = accuracy_score(y_test, predictions)\n", + "precision, recall, f1, _ = precision_recall_fscore_support(y_test, predictions, average='binary')\n", + "\n", + "\n", + "print(f\"Accuracy: {accuracy}\")\n", + "print(f\"Precision: {precision}\")\n", + "print(f\"Полнота: {recall}\")\n", + "print(f\"F1: {f1}\")\n", + "\n", + "\n", + "# Надежность\n", + "cv_scores = cross_val_score(model, X, y, cv=5)\n", + "cv_mean = cv_scores.mean()\n", + "cv_std = cv_scores.std()\n", + "\n", + "print(f\"Cross-Validation Mean: {cv_mean}\")\n", + "print(f\"Cross-Validation Std: {cv_std}\")\n", + "\n", + "\n", + "print(f'Время обучения модели: {train_time:.2f} секунд')\n", + "print(f'Скорость вычисления: {pred_time:.2f} секунд')\n", + "\n", + "\n", + "mse = mean_squared_error(y_test, predictions)\n", + "print(f'Среднеквадратичная ошибка: {mse:.2f}')\n", + "\n", + "# Визуализация предсказаний\n", + "confusions = confusion_matrix(y_test, predictions)\n", + "plt.figure(figsize=(8, 6))\n", + "sns.heatmap(confusions, annot=True, fmt='d', cmap='Blues', xticklabels=['Неопасный', 'Опасный'], yticklabels=['Неопасный', 'Опасный'])\n", + "plt.xlabel('Предсказанное значение')\n", + "plt.ylabel('Истинное значение')\n", + "plt.title('Матрица ошибок')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "aimenv", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/lab_3/requirements b/lab_3/requirements new file mode 100644 index 0000000..ea34775 Binary files /dev/null and b/lab_3/requirements differ