{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Начало лабораторной, ухх...\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Бизнес-цели:\n", "\n", "1. Повышение безопасности планеты от потенциальных угроз космических объектов.\n", "2. Оптимизация исследования космических объектов для использования в коммерческих или исследовательских миссиях." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Цели технического проекта:\n", "\n", "Для 1-й бизнес-цели: \n", "* сбор и подготовка данных: очистка данных от пропусков, выбросов и дубликатов. Преобразование категориальных переменных в числовые. Разделение данных на обучающую и тестовую выборки. \n", "* разработка и обучение модели: исследование различных алгоритмов машинного обучения (линейная регрессия, деревья решений, случайный лес и т.д.). Обучение моделей на обучающей выборке. Оценка качества моделей на тестовой выборке с помощью метрик RMSE, MAE и др.\n", "* развертывание модели: \n", " * Создать веб-приложение или API, которое принимает параметры объекта и прогнозирует, опасен ли он для Земли.\n", " * Модель может использоваться в системах мониторинга космических объектов для предоставления оперативных оценок и предупреждений.\n", " * Включение автоматической системы оповещения для НАСА и других космических агентств с обновлениями по объектам, представляющим угрозу.\n", "\n", "Для 2-й бизнес-цели:\n", "* сбор и подготовка данных: очистка данных от пропусков, выбросов и дубликатов. Преобразование категориальных переменных в числовые. Разделение данных на обучающую и тестовую выборки. \n", "* разработка и обучение модели: исследование различных алгоритмов машинного обучения (линейная регрессия, деревья решений, случайный лес и т.д.). Обучение моделей на обучающей выборке. Оценка качества моделей на тестовой выборке с помощью метрик RMSE, MAE и др.\n", "* развертывание модели:\n", " * Разработка модели, которая позволяет астрономам и специалистам по космосу загружать данные о новых объектах и получать предсказания о расстоянии их ближайшего сближения с Землей.\n", " * Создание системы мониторинга с графическим интерфейсом, отображающим траектории движения объектов и предполагаемые даты и расстояния их ближайших подходов.\n", " * Реализация системы оповещений на основе пороговых значений расстояний для идентификации особо опасных сближений." ] }, { "cell_type": "code", "execution_count": 2, "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" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idnameest_diameter_minest_diameter_maxrelative_velocitymiss_distanceorbiting_bodysentry_objectabsolute_magnitudehazardous
02162635162635 (2000 SS164)1.1982712.67941513569.2492245.483974e+07EarthFalse16.73False
12277475277475 (2005 WK4)0.2658000.59434773588.7266636.143813e+07EarthFalse20.00True
22512244512244 (2015 YE18)0.7220301.614507114258.6921294.979872e+07EarthFalse17.83False
33596030(2012 BV13)0.0965060.21579424764.3031382.543497e+07EarthFalse22.20False
43667127(2014 GE35)0.2550090.57021742737.7337654.627557e+07EarthFalse20.09True
\n", "
" ], "text/plain": [ " id name est_diameter_min est_diameter_max \\\n", "0 2162635 162635 (2000 SS164) 1.198271 2.679415 \n", "1 2277475 277475 (2005 WK4) 0.265800 0.594347 \n", "2 2512244 512244 (2015 YE18) 0.722030 1.614507 \n", "3 3596030 (2012 BV13) 0.096506 0.215794 \n", "4 3667127 (2014 GE35) 0.255009 0.570217 \n", "\n", " relative_velocity miss_distance orbiting_body sentry_object \\\n", "0 13569.249224 5.483974e+07 Earth False \n", "1 73588.726663 6.143813e+07 Earth False \n", "2 114258.692129 4.979872e+07 Earth False \n", "3 24764.303138 2.543497e+07 Earth False \n", "4 42737.733765 4.627557e+07 Earth False \n", "\n", " absolute_magnitude hazardous \n", "0 16.73 False \n", "1 20.00 True \n", "2 17.83 False \n", "3 22.20 False \n", "4 20.09 True " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "df_subset = pd.read_csv(\".//static//csv//neo.csv\")\n", "# Отбор первых 15000 записей\n", "df = df_subset.head(15000)\n", "print(df.columns)\n", "df.head()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Проверим датасет на пропущенные значения:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id 0\n", "name 0\n", "est_diameter_min 0\n", "est_diameter_max 0\n", "relative_velocity 0\n", "miss_distance 0\n", "orbiting_body 0\n", "sentry_object 0\n", "absolute_magnitude 0\n", "hazardous 0\n", "dtype: int64\n" ] }, { "data": { "text/plain": [ "id False\n", "name False\n", "est_diameter_min False\n", "est_diameter_max False\n", "relative_velocity False\n", "miss_distance False\n", "orbiting_body False\n", "sentry_object False\n", "absolute_magnitude False\n", "hazardous False\n", "dtype: bool" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Процент пропущенных значений признаков\n", "for i in df.columns:\n", " null_rate = df[i].isnull().sum() / len(df) * 100\n", " if null_rate > 0:\n", " print(f'{i} Процент пустых значений: %{null_rate:.2f}')\n", "\n", "# Проверка на пропущенные данные\n", "print(df.isnull().sum())\n", "\n", "df.isnull().any()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Фух, пропущенных значений не имеется \n", "\n", "Разобьём набор на 3 классических выборки: обучающую, тестовую и контрольную" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки: (9000, 9)\n", "Размер контрольной выборки: (3000, 9)\n", "Размер тестовой выборки: (3000, 9)\n" ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "# Предварительная обработка данных на всякий\n", "# Удаление пропусков и дубликатов\n", "df = df.dropna()\n", "df = df.drop_duplicates()\n", "\n", "# Разделение данных на признаки (X) и целевую переменную (y)\n", "# В данном случае, предположим, что мы хотим предсказать 'absolute_magnitude'\n", "X = df.drop(columns=['absolute_magnitude'])\n", "y = df['absolute_magnitude']\n", "\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", "X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)\n", "\n", "# Проверка размеров выборок\n", "print(\"Размер обучающей выборки:\", X_train.shape)\n", "print(\"Размер контрольной выборки:\", X_val.shape)\n", "print(\"Размер тестовой выборки:\", X_test.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Построим несколько столбчатых диаграмм для визуализации распределения:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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/vx6KYmpyTUG/lfqWFXp6IABA6BWq/H5558blbDdeq66du0KT0/PSp+BLVu2ICYmpsrekHe6R+rp2+35+Pjgww8/xKpVq7Bt2zbD+vr828ISoSoMHz4cCxYswNNPP41evXohOjoaq1evrlS3OWHCBPzwww+YMWMGDh8+jHvvvRcFBQXYsWMHXnzxRYwcObJOx3d1dcU999yDp59+GikpKVi8eDFatWqFSZMmAaj44/ntt99iyJAh6NChA55++mk0a9YMCQkJ2L17NxwdHfHnn3+ioKAAS5cuxeeff442bdoYzWej/4Nx6tQpREZGIjw8HC1btsS7776LWbNm4cqVK3jooYfg4OCAuLg4bNy4EZMnT8bMmTOxY8cOzJkzB6dOncKff/552/fSt29fTJkyBQsXLkRUVBQGDRoEpVKJCxcuYN26dfjss8/w8MMP1+k8bdu2Dffff/9tfzE/+eST+OWXX/D8889j9+7d6N27N7RaLc6dO4dffvkFf//9d7UlZe3atUPLli0xc+ZMJCQkwNHREevXr6+2HYm1tTW2bt2KiRMnokePHtiyZQv++usvvPnmm4Zi2ueeew6ZmZno378/fH19cfXqVSxZsgShoaGGX99vvPEGfvrpJwwZMgQvvfQSXF1dsXLlSsTFxWH9+vVG7dlu9cwzz+CTTz7B4MGD8eyzzyI1NdUw4N3NbSlsbGwQFBSEn3/+GW3atIGrqyuCg4MRHByMpUuX4p577kFISAgmTZqEFi1aICUlBZGRkbh+/XqV42k1hNqc//fffx8jR45E79698fTTTyMrKwtffPEFgoODq/yxUFdhYWHYsWMHPvnkE/j4+CAwMBA9evTA2LFj8frrr2PUqFF46aWXUFhYiK+++gpt2rQxaqMUGhqKcePG4csvv0ROTg569eqFnTt3Vlly9cEHH2D37t3o0aMHJk2ahKCgIGRmZuL48ePYsWNHleO53OrUqVNYtWoVhBC4dOkSPv/8c/j6+t62dLhTp06YOHEili1bZqiGOnz4MFauXImHHnoI9913H4CKAScXLVqECRMm4N5778X48eMN3ed9fX3x+uuvV9r3hAkTMHPmTACoVC1WU7169YKLiwsmTpyIl156CTKZDD/++OMdf3y6u7vjzTffxPz58zFgwAA8/PDDiIuLw5IlS9CpUyc899xzRtvn5+dj69athuf6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHHCAYAAACr0swBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBP0lEQVR4nO3deVxUVf8H8M+dAYZ932UVEFBwwyWt1NTcl9QWS9PKtEXbbHuszKynzOoprWzx95Tak2WpqS3ua2a47woICCLINiD7PnN+fyATI8MqcAf4vF+veencbb73cu+d75xz7jmSEEKAiIiIiPQo5A6AiIiIyBgxSSIiIiIygEkSERERkQFMkoiIiIgMYJJEREREZACTJCIiIiIDmCQRERERGcAkiYiIiMgAE7kDICIiorarpKQE2dnZMDExgaurq9zhNCuWJBE1wiOPPAJra+tW/czExERIkoTVq1e36ud2FG+99RYkSWq1z5MkCW+99VarfR61XZ9//jlycnJ075ctW4bCwkL5Aqpm9+7dmDBhAuzt7WFhYYFOnTrhueeekzusZtcuk6TVq1dDkiTdy9zcHF26dMG8efOQnp4ud3hEraaoqAhvvfUW9u/fL3cobcp7772HzZs3yx0GdXC//fYb3nrrLVy9ehVr167FwoULYWFhIXdY+OKLLzBy5Ejk5uZi+fLl2LVrF3bt2oW3335b7tCaXbuubnv77bfh7++PkpIS/PXXX/jyyy+xdetWnD9/HpaWlnKHR9TiioqKsHjxYgDAkCFD5A3GSL3xxhv417/+pTftvffew7333ot77rlHnqCIALz22muYMGECli9fDoVCgf/85z9QKOQt24iNjcX8+fMxZ84cfPHFF61aCiuHdp0kjR49Gn369AEAPP7443BycsLHH3+MLVu24MEHH5Q5OiIyBiYmJjAxade3QmqjBg8ejCtXriAqKgre3t7w8vKSOyR8+umncHd3x6efftruEySgnVa31Wbo0KEAgISEBABAdnY2XnrpJYSHh8Pa2hq2trYYPXo0zpw5U2PdkpISvPXWW+jSpQvMzc3h4eGByZMnIz4+HsA/7UZqe1X/Fb9//35IkoSffvoJr732Gtzd3WFlZYUJEybg6tWrNT77yJEjGDVqFOzs7GBpaYnBgwfj0KFDBvdxyJAhBj/fUBuI77//HhEREbCwsICjoyOm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lTWWlSQJXbp0qfGUXdU+VP+beHp66iW31Ze7+bwx9H3UpUsXFBUVITMzE+7u7rrp48aNQ0xMDFxdXWu0b2qua6pKu06S+vXrV+NEru69997DwoUL8dhjj+Gdd96Bo6MjFAoFnn/++Tp/MbSWqhg+/PBD9OzZ0+Ay1S/ysrIypKam4u677653u5IkYdu2bQYvgptvHGlpaQCgd5Ia2qarqyvWrl1rcP7NN83+/fvj3//+t960zz//HFu2bDG4flRUFFavXo3vv//eYFsSrVaL8PBwfPzxxwbXv/mLujqNRoO7774b2dnZePXVVxESEgIrKyukpKTgkUceadK54OrqitOnT2PHjh3Ytm0btm3bhlWrVmHGjBlYs2ZNo7d3M0mSatwcqvalIar26aWXXsLIkSMNLmMoGamLoXOprulV8bfE8W/oZzdWbSXHDT3uN6vat+nTp9f6Y6ghX4wPP/wwZsyYAa1Wi8uXL+Odd97BuHHjsHv37npLu48ePYrZs2fDysoK//73v3HfffcZTDYaWmre2GtbDg25p1WZOHEi5s2bByEEEhIS8Pbbb2PcuHGIjY3VSwDefPNNXUlllfHjx99yrN988w0SExOxY8eORq/70UcfoUePHigvL8exY8fw73//GyYmJli0aJHechs3boStrS2KioqwadMmvPvuu7C1tcUrr7xSY5vG0E9TdHQ0tm3bhvvvvx8vvvgiVq1apZvXXNdUlXadJNVnw4YNuOuuu3S/Eqrk5OToGhAClY02jxw5gvLy8mZpfFylqqSoihACcXFxuj9g1a9QW1tbDB8+vN7tnTlzBuXl5XUmhlXbFULA399fVwJSl4sXL0KSJIM3zurb3L17N26//fYGXUTOzs419qmuxtULFixAz5498cADD9T6+VVVDI2tAj137hwuXbqENWvWYMaMGbrptVWVVX0RVT92ly5dAgC96iYzMzOMHz8e48ePh1arxdNPP42vv/4aCxcuRGBgIHx9fRETE1Nj+9HR0QAAX1/fWmN2cHAwWGV086+z2o5FVUmYqalpg86tltTQ4191POLi4mpsw9C0W1HbcXNwcDD41NjNx93X1xdarVZXCl3l5r931ZNvGo3mlv4OnTt31lvfzs4ODz30EA4fPowBAwbUue7dd9+NL7/8EiUlJboGuFVPR1Xfl9jYWF0pAFDZODYnJ6fGedrYa7sh6rtXVsUQExNTozopJiamRoxV1VrV96c2Xl5eevtjbW2NadOm4dSpUxg0aJBuenh4eI39vjlJb+w1X9XP2dNPP13n/aA2ERERuicFR48ejZSUFCxduhQLFy7UKwkaNGiQ7jtvwoQJOHToELZv324wSfL398fJkyeh1Wr1tlG1D1X3QF9fX+zevRv5+fl6yWRt+3rz3xiovK9aWlrW+JH966+/4s4778SSJUswb948TJ8+XVe93FzXVJV23SapPkqlssYvyvXr19doizFlyhSo1Wp8/vnnNbbR1F+kAPDdd98hPz9f937Dhg1ITU3F6NGjAVSe4AEBAfjoo49QUFBQY/3MzMwasSuVSoOP4FY3efJkKJVKLF68uEb8QghkZWXp3ldUVGDjxo3o169fnUXT999/PzQaDd55550a8yoqKhr0OHJtIiMjsWXLFrz//vu1fnndf//9SElJMfgYanFxcZ117VU3surHQghR43H96qqfC0IIfP755zA1NdVdqNWPIVBZ1F11Q696bHrMmDE4evQoIiMjdcsVFhZi5cqV8PPz03u66GYBAQGIjo7WOwfOnDlTo2uIqk5Tbz7+rq6uGDJkCL7++mukpqbW2P7N51ZLaujx9/T0RFhYGL777ju96+HAgQO6rgaai5WVlcFzNiAgALm5uTh79qxuWmpqao0nvKqu4U8//VRv+rJly/TeK5VKTJkyBRs3bsT58+drfF5T/w5VXSc0pPuLgQMHQqlUwsrKCl999RX+/PNPveuo6mndm2OvKrU19MRec6vvXtmnTx+4urriq6++0tvnbdu2ISoqqkaMP/30Ezw8PBqUJN2sqqSitlLKujT2ml++fDkKCwvx+uuvN/qzDCkuLkZFRQUqKipqXUYIASFErfs3ZswYpKWl4aefftJNq2q6olKpdInJmDFjoNFoanxvfvLJJ5AkSfe3qxIZGalXZX716lVs2bIFI0aMqBFLVYnd008/jYEDB+KJJ57QnfPNfU116JKkcePG4e2338ajjz6KgQMH4ty5c1i7dm2N9iYzZszAd999h/nz5+Po0aO48847UVhYiN27d+Ppp5+u0dCxoRwdHXHHHXfg0UcfRXp6OpYtW4bAwEDMnj0bQOUX63//+1+MHj0a3bp1w6OPPopOnTohJSUF+/btg62tLX777TcUFhZixYoV+PTTT9GlSxe9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58Bjjz0mfH19hZmZmXBxcRHDhg3TJUhCtO97gBB1739bugdINwIhIiIiomrYJomIiIjIACZJRERERAYwSSIiIiIygEkSERERkQFMkoiIiIgMYJJEREREZACTJCIiIiIDmCQRERERGcAkiagDSUxMhCRJunHCWsIjjzyCe+65p8W23x7s378fkiTVGOC0ObTG35ioo2CSRESykyQJmzdvljuMVjNw4ECkpqbCzs4OALB69WrY29vLGxQR1WAidwBERB2NmZkZ3N3d5Q6DiOrBkiSidmb79u244447YG9vDycnJ4wbNw7x8fF6y0RHR2PgwIEwNzdHWFgYDhw4oJt3/fp1TJs2DS4uLrCwsEBQUBBWrVqlm3/u3DkMHToUFhYWcHJywpw5c1BQUFBrPH5+fli2bJnetJ49e+Ktt97SzQeASZMmQZIk3XsA2LJlC3r37g1zc3N07twZixcvRkVFRYOOgyRJ+PrrrzFu3DhYWloiNDQUkZGRiIuLw5AhQ2BlZYWBAwfqHZv4+HhMnDgRbm5usLa2Rt++fbF792697aampmLs2LGwsLCAv78/fvjhhxr7KEkS/vvf/2LSpEmwtLREUFAQfv31V9386tVt+/fvx6OPPorc3FxIkgRJknTHxlAJm729PVavXq17f/ToUfTq1Qvm5ubo06cPTp06VeNYnD9/HqNHj4a1tTXc3Nzw8MMPQ61WN+g4EnVkTJKI2pnCwkLMnz8fx48fx549e6BQKDBp0iRotVrdMi+//DJefPFFnDp1CgMGDMD48eORlZUFAFi4cCEuXryIbdu2ISoqCl9++SWcnZ112x45ciQcHBxw7NgxrF+/Hrt378a8efOaHO+xY8cAAKtWrUJqaqru/cGDBzFjxgw899xzuHjxIr7++musXr0a7777boO3/c4772DGjBk4ffo0QkJC8NBDD+GJJ57AggULcPz4cQgh9GIvKCjAmDFjsGfPHpw6dQqjRo3C+PHjkZSUpFtmxowZuHbtGvbv34+NGzdi5cqVyMjIqPHZixcvxv3334+zZ89izJgxmDZtGrKzs2ssN3DgQCxbtgy2trZITU1FamoqXnrppQbtX0FBAcaNG4euXbvixIkTeOutt2qsm5OTg6FDh6JXr144fvw4tm/fjvT0dNx///0NPYxEHZcgonYtMzNTABDnzp0TCQkJAoB4//33dfPL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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Создание DataFrame для обучающей, контрольной и тестовой выборок\n", "train_data = pd.DataFrame({'absolute_magnitude': y_train})\n", "val_data = pd.DataFrame({'absolute_magnitude': y_val})\n", "test_data = pd.DataFrame({'absolute_magnitude': y_test})\n", "\n", "# Гистограмма распределения absolute_magnitude в обучающей выборке\n", "sns.histplot(train_data['absolute_magnitude'], kde=True)\n", "plt.title('Распределение absolute_magnitude в обучающей выборке')\n", "plt.show()\n", "\n", "# Гистограмма распределения absolute_magnitude в контрольной выборке\n", "sns.histplot(val_data['absolute_magnitude'], kde=True)\n", "plt.title('Распределение absolute_magnitude в контрольной выборке')\n", "plt.show()\n", "\n", "# Гистограмма распределения absolute_magnitude в тестовой выборке\n", "sns.histplot(test_data['absolute_magnitude'], kde=True)\n", "plt.title('Распределение absolute_magnitude в тестовой выборке')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Конструирование признаков\n", "\n", "Задача 1: оценить безопасность планеты относительно потенциальных угроз космических объектов. Цель технического проекта: определить объекты с наиболее высоким риском столкновения на основе их ближайших приближений к Земле.\n", "\n", "Задача 2: оценить возможную оптимизацию исследования космических объектов для использования в коммерческих или исследовательских миссиях. Цель технического проекта: использование системы приоритезации для определения наиболее перспективных объектов для дальнейшего исследования или использования.\n", "\n", "**Унитарное кодирование**\n", "\n", "Унитарное кодирование категориальных признаков (one-hot encoding). Преобразуем категориальные признаки в бинарные векторы.\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " id name est_diameter_min est_diameter_max \\\n", "0 2162635 162635 (2000 SS164) 1.198271 2.679415 \n", "1 2277475 277475 (2005 WK4) 0.265800 0.594347 \n", "2 2512244 512244 (2015 YE18) 0.722030 1.614507 \n", "3 3596030 (2012 BV13) 0.096506 0.215794 \n", "4 3667127 (2014 GE35) 0.255009 0.570217 \n", "\n", " relative_velocity miss_distance absolute_magnitude hazardous \\\n", "0 13569.249224 5.483974e+07 16.73 False \n", "1 73588.726663 6.143813e+07 20.00 True \n", "2 114258.692129 4.979872e+07 17.83 False \n", "3 24764.303138 2.543497e+07 22.20 False \n", "4 42737.733765 4.627557e+07 20.09 True \n", "\n", " orbiting_body_Earth sentry_object_False \n", "0 True True \n", "1 True True \n", "2 True True \n", "3 True True \n", "4 True True \n" ] } ], "source": [ "from sklearn.preprocessing import OneHotEncoder\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\".//static//csv//neo.csv\")\n", "\n", "# Выбор категориальных признаков, которые нужно закодировать\n", "categorical_columns = ['orbiting_body', 'sentry_object']\n", "\n", "# Применение one-hot encoding с использованием pandas get_dummies()\n", "df_encoded = pd.get_dummies(df, columns=categorical_columns)\n", "\n", "# Проверка результата\n", "print(df_encoded.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Дискретизация числовых признаков**\n", "\n", "Процесс преобразования непрерывных числовых значений в дискретные категории или интервалы (бины). Используем переменные, отвечающие за растояние объекта от Земли(miss_distance) и абсолютную звёздную величину объекта, которая отражает его яркость(absolute_magnitude)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " miss_distance miss_distance_binned\n", "0 5.483974e+07 (44881889.084, 59840270.268]\n", "1 6.143813e+07 (59840270.268, 74798651.452]\n", "2 4.979872e+07 (44881889.084, 59840270.268]\n", "3 2.543497e+07 (14965126.716, 29923507.9]\n", "4 4.627557e+07 (44881889.084, 59840270.268]\n", " absolute_magnitude absolute_magnitude_binned\n", "0 16.73 (9.229000000000001, 21.34]\n", "1 20.00 (9.229000000000001, 21.34]\n", "2 17.83 (9.229000000000001, 21.34]\n", "3 22.20 (21.34, 23.7]\n", "4 20.09 (9.229000000000001, 21.34]\n" ] } ], "source": [ "import pandas as pd\n", "\n", "# Пример: дискретизация признака 'miss_distance' на 5 равных интервалов\n", "df['miss_distance_binned'] = pd.cut(df['miss_distance'], bins=5)\n", "\n", "# Пример: дискретизация признака 'absolute_magnitude' на квантильные интервалы (4 квантиля)\n", "df['absolute_magnitude_binned'] = pd.qcut(df['absolute_magnitude'], q=4)\n", "\n", "# Проверка результата\n", "print(df[['miss_distance', 'miss_distance_binned']].head())\n", "print(df[['absolute_magnitude', 'absolute_magnitude_binned']].head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Ручной синтез**\n", "\n", "Создание новых признаков на основе экспертных знаний и логики предметной области. В нашем случае можно задействовать расстояния объекта от Земли и скорость движения объекта, синтезировав новый признак - \"скорость в сравнении с расстоянием\". Этот признак показывает, что объект может быть более опасным, если его скорость велика, а расстояние до Земли — маленькое." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Создание нового признака 'Speed VS Distance'\n", "df['high_risk'] = ((df['miss_distance'] < threshold_distance) & (df['relative_velocity'] > threshold_velocity)).astype(int)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Масштабирование признаков**\n", "\n", "Процесс преобразования числовых признаков таким образом, чтобы они имели одинаковый масштаб. Это важно для многих алгоритмов машинного обучения, которые чувствительны к масштабу признаков, таких как линейная регрессия, метод опорных векторов (SVM) и нейронные сети." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler, MinMaxScaler\n", "\n", "# Пример масштабирования числовых признаков\n", "numerical_features = ['miss_distance', 'absolute_magnitude']\n", "\n", "scaler = StandardScaler()\n", "train_data_encoded[numerical_features] = scaler.fit_transform(train_data_encoded[numerical_features])\n", "val_data_encoded[numerical_features] = scaler.transform(val_data_encoded[numerical_features])\n", "test_data_encoded[numerical_features] = scaler.transform(test_data_encoded[numerical_features])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Конструирование признаков с применением фреймворка Featuretools" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting featuretools\n", " Downloading featuretools-1.31.0-py3-none-any.whl.metadata (15 kB)\n", "Collecting cloudpickle>=1.5.0 (from featuretools)\n", " Downloading cloudpickle-3.1.0-py3-none-any.whl.metadata (7.0 kB)\n", "Collecting holidays>=0.17 (from featuretools)\n", " Downloading holidays-0.59-py3-none-any.whl.metadata (25 kB)\n", "Requirement already satisfied: numpy>=1.25.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from featuretools) (2.1.2)\n", "Requirement already satisfied: packaging>=20.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from featuretools) (24.1)\n", "Requirement already satisfied: pandas>=2.0.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from featuretools) (2.2.3)\n", "Requirement already satisfied: psutil>=5.7.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from featuretools) (6.0.0)\n", "Requirement already satisfied: scipy>=1.10.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from featuretools) (1.14.1)\n", "Collecting tqdm>=4.66.3 (from featuretools)\n", " Downloading tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)\n", "Collecting woodwork>=0.28.0 (from featuretools)\n", " Downloading woodwork-0.31.0-py3-none-any.whl.metadata (10 kB)\n", "Requirement already satisfied: python-dateutil in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from holidays>=0.17->featuretools) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from pandas>=2.0.0->featuretools) (2024.2)\n", "Requirement already satisfied: tzdata>=2022.7 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from pandas>=2.0.0->featuretools) (2024.2)\n", "Requirement already satisfied: colorama in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from tqdm>=4.66.3->featuretools) (0.4.6)\n", "Requirement already satisfied: scikit-learn>=1.1.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from woodwork>=0.28.0->featuretools) (1.5.2)\n", "Collecting importlib-resources>=5.10.0 (from woodwork>=0.28.0->featuretools)\n", " Downloading importlib_resources-6.4.5-py3-none-any.whl.metadata (4.0 kB)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from python-dateutil->holidays>=0.17->featuretools) (1.16.0)\n", "Requirement already satisfied: joblib>=1.2.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from scikit-learn>=1.1.0->woodwork>=0.28.0->featuretools) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in c:\\users\\admin\\studioprojects\\aim-pibd-31-alekseev-i-s\\aimenv\\lib\\site-packages (from scikit-learn>=1.1.0->woodwork>=0.28.0->featuretools) (3.5.0)\n", "Downloading featuretools-1.31.0-py3-none-any.whl (587 kB)\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ---------------------------------------- 0.0/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ----------------- ---------------------- 262.1/587.9 kB ? eta -:--:--\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " ---------------------------------- ---- 524.3/587.9 kB 50.4 kB/s eta 0:00:02\n", " --------------------------------------- 587.9/587.9 kB 47.1 kB/s eta 0:00:00\n", "Downloading cloudpickle-3.1.0-py3-none-any.whl (22 kB)\n", "Downloading holidays-0.59-py3-none-any.whl (1.1 MB)\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " --------- ------------------------------ 0.3/1.1 MB ? eta -:--:--\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ------------------ --------------------- 0.5/1.1 MB 80.7 kB/s eta 0:00:08\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ---------------------------- ----------- 0.8/1.1 MB 73.9 kB/s eta 0:00:05\n", " ------------------------------------- -- 1.0/1.1 MB 71.3 kB/s eta 0:00:01\n", " ------------------------------------- -- 1.0/1.1 MB 71.3 kB/s eta 0:00:01\n", " ------------------------------------- -- 1.0/1.1 MB 71.3 kB/s eta 0:00:01\n", " ------------------------------------- -- 1.0/1.1 MB 71.3 kB/s eta 0:00:01\n", " ---------------------------------------- 1.1/1.1 MB 71.6 kB/s eta 0:00:00\n", "Downloading tqdm-4.66.5-py3-none-any.whl (78 kB)\n", "Downloading woodwork-0.31.0-py3-none-any.whl (215 kB)\n", "Downloading importlib_resources-6.4.5-py3-none-any.whl (36 kB)\n", "Installing collected packages: tqdm, importlib-resources, cloudpickle, holidays, woodwork, featuretools\n", "Successfully installed cloudpickle-3.1.0 featuretools-1.31.0 holidays-0.59 importlib-resources-6.4.5 tqdm-4.66.5 woodwork-0.31.0\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install --upgrade featuretools" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting setuptoolsNote: you may need to restart the kernel to use updated packages.\n", "\n", " Downloading setuptools-75.2.0-py3-none-any.whl.metadata (6.9 kB)\n", "Downloading setuptools-75.2.0-py3-none-any.whl (1.2 MB)\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " ---------------------------------------- 0.0/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " -------- ------------------------------- 0.3/1.2 MB ? eta -:--:--\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ---------------- ----------------------- 0.5/1.2 MB 98.1 kB/s eta 0:00:08\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " ------------------------- -------------- 0.8/1.2 MB 126.2 kB/s eta 0:00:04\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " --------------------------------- ------ 1.0/1.2 MB 126.8 kB/s eta 0:00:02\n", " ---------------------------------------- 1.2/1.2 MB 130.3 kB/s eta 0:00:00\n", "Installing collected packages: setuptools\n", "Successfully installed setuptools-75.2.0\n" ] } ], "source": [ "pip install --upgrade setuptools" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\Admin\\StudioProjects\\AIM-PIbd-31-Alekseev-I-S\\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:\\Users\\Admin\\StudioProjects\\AIM-PIbd-31-Alekseev-I-S\\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" ] }, { "name": "stdout", "output_type": "stream", "text": [ " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", "id \n", "1 1.198271 2.679415 13569.249224 5.483974e+07 \n", "2 0.265800 0.594347 73588.726663 6.143813e+07 \n", "3 0.722030 1.614507 114258.692129 4.979872e+07 \n", "4 0.096506 0.215794 24764.303138 2.543497e+07 \n", "5 0.255009 0.570217 42737.733765 4.627557e+07 \n", "\n", " orbiting_body sentry_object absolute_magnitude hazardous \n", "id \n", "1 Earth False 16.73 False \n", "2 Earth False 20.00 True \n", "3 Earth False 17.83 False \n", "4 Earth False 22.20 False \n", "5 Earth False 20.09 True \n", " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", "id \n", "17465 0.265800 0.594347 6639.199305 7.248720e+07 \n", "10057 0.023150 0.051765 66065.475247 2.182677e+07 \n", "6905 0.148784 0.332690 35092.567329 6.261058e+07 \n", "40989 0.007321 0.016370 24301.494107 2.765938e+06 \n", "23499 0.044112 0.098637 33502.608133 7.025798e+07 \n", "\n", " orbiting_body sentry_object absolute_magnitude hazardous \n", "id \n", "17465 Earth False 20.00 False \n", "10057 Earth False 25.30 False \n", "6905 Earth False 21.26 False \n", "40989 Earth False 27.80 False \n", "23499 Earth False 23.90 False \n", " est_diameter_min est_diameter_max relative_velocity miss_distance \\\n", "id \n", "66148 0.020163 0.045086 24899.946486 7.427192e+06 \n", "68694 0.175612 0.392681 67322.863166 3.526971e+07 \n", "17013 0.031809 0.071128 20216.336390 5.832689e+07 \n", "69199 0.007321 0.016370 40616.528788 2.591562e+07 \n", "45632 0.199781 0.446725 86281.198262 6.763452e+07 \n", "\n", " orbiting_body sentry_object absolute_magnitude hazardous \n", "id \n", "66148 Earth False 25.60 False \n", "68694 Earth False 20.90 True \n", "17013 Earth False 24.61 False \n", "69199 Earth False 27.80 False \n", "45632 Earth False 20.62 True \n" ] } ], "source": [ "import pandas as pd\n", "import featuretools as ft\n", "from sklearn.model_selection import train_test_split\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\".//static//csv//neo.csv\")\n", "\n", "# Создание уникального идентификатора для каждой строки\n", "df['id'] = range(1, len(df) + 1)\n", "\n", "# Предобработка данных (например, кодирование категориальных признаков, удаление дубликатов)\n", "# Удаление дубликатов по всем столбцам\n", "df = df.drop_duplicates()\n", "\n", "# Создание EntitySet\n", "es = ft.EntitySet(id='objects_data')\n", "\n", "# Добавление датафрейма с объектами\n", "es = es.add_dataframe(\n", " dataframe_name='objects',\n", " dataframe=df,\n", " index='id'\n", ")\n", "\n", "# Генерация признаков с помощью глубокой синтезы признаков\n", "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='objects', max_depth=1)\n", "\n", "# Выводим первые 5 строк сгенерированного набора признаков\n", "print(feature_matrix.head())\n", "\n", "# Разделение данных на обучающую и тестовую выборки\n", "train_data, test_data = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение оставшейся части на валидационную и тестовую выборки\n", "val_data, test_data = train_test_split(test_data, test_size=0.5, random_state=42)\n", "\n", "# Преобразование признаков для контрольной и тестовой выборок\n", "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_data['id'])\n", "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_data['id'])\n", "\n", "# Вывод первых 5 строк сгенерированных признаков для валидационной и тестовой выборок\n", "print(val_feature_matrix.head())\n", "print(test_feature_matrix.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Оценка качества каждого набора признаков\n", "\n", "Представим основные оценки качества наборов признаков: \n", "\n", "* Предсказательная способность Метрики: RMSE, MAE, R²\n", "\n", " Методы: Обучение модели на обучающей выборке и оценка на контрольной и тестовой выборках.\n", "\n", "* Скорость вычисления \n", "\n", " Методы: Измерение времени выполнения генерации признаков и обучения модели.\n", "\n", "* Надежность \n", "\n", " Методы: Кросс-валидация, анализ чувствительности модели к изменениям в данных.\n", "\n", "* Корреляция \n", "\n", " Методы: Анализ корреляционной матрицы признаков, удаление мультиколлинеарных признаков.\n", "\n", "* Цельность \n", "\n", " Методы: Проверка логической связи между признаками и целевой переменной, интерпретация результатов модели." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Время обучения модели: 0.04 секунд\n", "Среднеквадратичная ошибка: 5.08\n" ] } ], "source": [ "import time\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import mean_squared_error\n", "\n", "# Разделение данных на обучающую и валидационную выборки. Удаляем целевую переменную\n", "X = feature_matrix.drop('absolute_magnitude', axis=1)\n", "y = feature_matrix['absolute_magnitude']\n", "\n", "# One-hot encoding для категориальных переменных (преобразование категориальных объектов в числовые)\n", "X = pd.get_dummies(X, drop_first=True)\n", "\n", "# Проверяем, есть ли пропущенные значения, и заполняем их медианой или другим подходящим значением\n", "X.fillna(X.median(), inplace=True)\n", "\n", "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)\n", "\n", "# Обучение модели\n", "model = LinearRegression()\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", "predictions = model.predict(X_val)\n", "mse = mean_squared_error(y_val, predictions)\n", "\n", "print(f'Время обучения модели: {train_time:.2f} секунд')\n", "print(f'Среднеквадратичная ошибка: {mse:.2f}')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\Admin\\StudioProjects\\AIM-PIbd-31-Alekseev-I-S\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "RMSE: 0.007747870644321186\n", "R²: 0.9999928256622078\n", "MAE: 0.00013519980189125583 \n", "\n", "Кросс-валидация RMSE: 0.010153168491376482 \n", "\n", "Train RMSE: 0.004358914935336195\n", "Train R²: 0.999997732046293\n", "Train MAE: 4.508435629289199e-05\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\Admin\\StudioProjects\\AIM-PIbd-31-Alekseev-I-S\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", " warnings.warn(\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.metrics import r2_score, mean_absolute_error\n", "from sklearn.model_selection import cross_val_score\n", "\n", "\n", "# Удаление строк с NaN\n", "feature_matrix = feature_matrix.dropna()\n", "val_feature_matrix = val_feature_matrix.dropna()\n", "test_feature_matrix = test_feature_matrix.dropna()\n", "\n", "# Разделение данных на обучающую и тестовую выборки\n", "X_train = feature_matrix.drop('absolute_magnitude', axis=1)\n", "y_train = feature_matrix['absolute_magnitude']\n", "X_val = val_feature_matrix.drop('absolute_magnitude', axis=1)\n", "y_val = val_feature_matrix['absolute_magnitude']\n", "X_test = test_feature_matrix.drop('absolute_magnitude', axis=1)\n", "y_test = test_feature_matrix['absolute_magnitude']\n", "\n", "X_test = X_test.reindex(columns=X_train.columns, fill_value=0) \n", "\n", "# Кодирования категориальных переменных с использованием одноразового кодирования\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 = RandomForestRegressor(random_state=42)\n", "\n", "# Обучение модели\n", "model.fit(X_train, y_train)\n", "\n", "# Предсказание и оценка\n", "y_pred = model.predict(X_test)\n", "\n", "rmse = mean_squared_error(y_test, y_pred, squared=False)\n", "r2 = r2_score(y_test, y_pred)\n", "mae = mean_absolute_error(y_test, y_pred)\n", "\n", "print()\n", "print(f\"RMSE: {rmse}\")\n", "print(f\"R²: {r2}\")\n", "print(f\"MAE: {mae} \\n\")\n", "\n", "# Кросс-валидация\n", "scores = cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')\n", "rmse_cv = (-scores.mean())**0.5\n", "print(f\"Кросс-валидация RMSE: {rmse_cv} \\n\")\n", "\n", "# Анализ важности признаков\n", "feature_importances = model.feature_importances_\n", "feature_names = X_train.columns\n", "\n", "# Проверка на переобучение\n", "y_train_pred = model.predict(X_train)\n", "\n", "rmse_train = mean_squared_error(y_train, y_train_pred, squared=False)\n", "r2_train = r2_score(y_train, y_train_pred)\n", "mae_train = mean_absolute_error(y_train, y_train_pred)\n", "\n", "print(f\"Train RMSE: {rmse_train}\")\n", "print(f\"Train R²: {r2_train}\")\n", "print(f\"Train MAE: {mae_train}\")\n", "print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Выводы:\n", "\n", "Выбранная модель, а именно Модель случайного леса, показала неплохие результаты прогнозирования потенциальной опасности различных объектов. Метрики качества и кросс-валидация позволяют предположить, что модель не сильно переобучена и может быть использована для практических целей.\n", "\n", "* Точность предсказаний: Модель демонстрирует довольно неплохой(хотя мог бы быть и получше) R² (0.9999) на обучающей выборке и R² (0.9999), что указывает на приемлемую точность предсказания модели. Значения RMSE и MAE не высоки (0.00435 и 4.5084), что свидетельствует о том, что модель достаточно точно предсказывает значения, но есть и небольшой процент ошибок на тестовой.\n", "\n", "* Переобучение: Разница между RMSE на обучающей и тестовой выборках незначительна, что указывает на то, что модель не склонна к переобучению. Однако в будущем стоит следить за этой метрикой при добавлении новых признаков или усложнении модели, чтобы избежать излишней подгонки под тренировочные данные. Также стоит быть осторожным и продолжать мониторинг этого показателя. R² на обучающей выборке ниже, чем на тестовой - еще один признак того, что модель не склонна к прееобучению\n", "\n", "* Кросс-валидация: При кросс-валидации наблюдается небольшое увеличение ошибки RMSE по сравнению с тестовой выборкой (рост на 2-3%). Это может указывать на небольшую нестабильность модели при использовании разных подвыборок данных." ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }