{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Вариант 4. Данные по инсультам" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['id', 'gender', 'age', 'hypertension', 'heart_disease', 'ever_married',\n", " 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi',\n", " 'smoking_status', 'stroke'],\n", " dtype='object')\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
idgenderagehypertensionheart_diseaseever_marriedwork_typeResidence_typeavg_glucose_levelbmismoking_statusstroke
09046Male67.001YesPrivateUrban228.6936.6formerly smoked1
151676Female61.000YesSelf-employedRural202.21NaNnever smoked1
231112Male80.001YesPrivateRural105.9232.5never smoked1
360182Female49.000YesPrivateUrban171.2334.4smokes1
41665Female79.010YesSelf-employedRural174.1224.0never smoked1
\n", "
" ], "text/plain": [ " id gender age hypertension heart_disease ever_married \\\n", "0 9046 Male 67.0 0 1 Yes \n", "1 51676 Female 61.0 0 0 Yes \n", "2 31112 Male 80.0 0 1 Yes \n", "3 60182 Female 49.0 0 0 Yes \n", "4 1665 Female 79.0 1 0 Yes \n", "\n", " work_type Residence_type avg_glucose_level bmi smoking_status \\\n", "0 Private Urban 228.69 36.6 formerly smoked \n", "1 Self-employed Rural 202.21 NaN never smoked \n", "2 Private Rural 105.92 32.5 never smoked \n", "3 Private Urban 171.23 34.4 smokes \n", "4 Self-employed Rural 174.12 24.0 never smoked \n", "\n", " stroke \n", "0 1 \n", "1 1 \n", "2 1 \n", "3 1 \n", "4 1 " ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "from sklearn.preprocessing import StandardScaler\n", "import featuretools as ft\n", "import time\n", "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.model_selection import cross_val_score\n", "\n", "df = pd.read_csv(\"./data/healthcare-dataset-stroke-data.csv\")\n", "\n", "print(df.columns)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Бизнес цели и цели технического проекта.\n", "## Бизнес цели:\n", "### 1. Предсказание инсульта: Разработать систему, которая сможет предсказать вероятность инсульта у пациентов на основе их медицинских и социальных данных. Это может помочь медицинским учреждениям и специалистам в более раннем выявлении пациентов с высоким риском.\n", "### 2. Снижение затрат на лечение: Предупреждение инсультов у пациентов позволит снизить затраты на лечение и реабилитацию. Это также поможет улучшить качество медицинских услуг и повысить удовлетворенность пациентов.\n", "### 3. Повышение эффективности профилактики: Выявление факторов риска инсульта на ранней стадии может способствовать более эффективному проведению профилактических мероприятий.\n", "## Цели технического проекта:\n", "### 1. Создание и обучение модели машинного обучения: Разработка модели, способной предсказать вероятность инсульта на основе данных о пациентах (например, возраст, уровень глюкозы, наличие сердечно-сосудистых заболеваний, тип работы, индекс массы тела и т.д.).\n", "### 2. Анализ и обработка данных: Провести предобработку данных (очистка, заполнение пропущенных значений, кодирование категориальных признаков), чтобы улучшить качество и надежность модели.\n", "### 3. Оценка модели: Использовать метрики, такие как точность, полнота и F1-мера, чтобы оценить эффективность модели и минимизировать риск ложных положительных и ложных отрицательных предсказаний." ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "id 0\n", "gender 0\n", "age 0\n", "hypertension 0\n", "heart_disease 0\n", "ever_married 0\n", "work_type 0\n", "Residence_type 0\n", "avg_glucose_level 0\n", "bmi 201\n", "smoking_status 0\n", "stroke 0\n", "dtype: int64\n", "\n", "id False\n", "gender False\n", "age False\n", "hypertension False\n", "heart_disease False\n", "ever_married False\n", "work_type False\n", "Residence_type False\n", "avg_glucose_level False\n", "bmi True\n", "smoking_status False\n", "stroke False\n", "dtype: bool\n", "\n", "bmi процент пустых значений: %3.93\n" ] } ], "source": [ "print(df.isnull().sum())\n", "print()\n", "\n", "print(df.isnull().any())\n", "print()\n", "\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}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Видим пустые значения в bmi, заменяем их" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Количество пустых значений в каждом столбце после замены:\n", "id 0\n", "gender 0\n", "age 0\n", "hypertension 0\n", "heart_disease 0\n", "ever_married 0\n", "work_type 0\n", "Residence_type 0\n", "avg_glucose_level 0\n", "bmi 0\n", "smoking_status 0\n", "stroke 0\n", "dtype: int64\n" ] } ], "source": [ "df[\"bmi\"] = df[\"bmi\"].fillna(df[\"bmi\"].median())\n", "\n", "missing_values = df.isnull().sum()\n", "\n", "print(\"Количество пустых значений в каждом столбце после замены:\")\n", "print(missing_values)" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['gender', 'age', 'hypertension', 'heart_disease', 'ever_married',\n", " 'work_type', 'Residence_type', 'avg_glucose_level', 'bmi',\n", " 'smoking_status', 'stroke'],\n", " dtype='object')\n" ] } ], "source": [ "df = df.drop('id', axis = 1)\n", "print(df.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Создаем выборки" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки: (2503, 10)\n", "Размер контрольной выборки: (1074, 10)\n", "Размер тестовой выборки: (1533, 10)\n" ] } ], "source": [ "# Разделим данные на признак (X) и переменую (Y)\n", "# Начнем со stroke\n", "X = df.drop(columns=['stroke'])\n", "y = df['stroke']\n", "\n", "# Разбиваем на обучающую и тестовую выборки\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)\n", "\n", "# Разбиваем на обучающую и контрольную выборки\n", "X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.3)\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": 168, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в обучающей выборке:\n", "stroke\n", "0 0.948861\n", "1 0.051139\n", "Name: proportion, dtype: float64\n", "\n", "Распределение классов в контрольной выборке:\n", "stroke\n", "0 0.947858\n", "1 0.052142\n", "Name: proportion, dtype: float64\n", "\n", "Распределение классов в тестовой выборке:\n", "stroke\n", "0 0.957599\n", "1 0.042401\n", "Name: proportion, dtype: float64\n" ] }, { "data": { "image/png": "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y8jIuOIZxnv37tWECRP03HPPKTg42GX7lStXVkxMjNM6c6eruXT77uTWdOjQIaWmpmru3LmqUaOGQkJCrrhsoUKF1K9fP8dtX19f9evXTwcPHtTatWslSd7e3vL19ZV04Qz0I0eO6Pz586pTp47T31uu48ePKz09XUuXLtX8+fN11113ufTJzs6+7PPiztChQ3X77berU6dOTu2hoaGSpD179uRrPWfPnnV5Ds+dO+e27+nTp5WRkaGjR486TcmRl4iICE2aNEmLFy9WXFyc1q9fr2nTpqlIkSL5qi0rK0sZGRk6ePCgFi9erG+++UbNmze/7rokafDgwfL29nbcvv/++xUeHq758+dLktasWaODBw+qf//+Tv+LiYmJiomJcfS72MXTwOROC5Odna0lS5a49B0yZIhmzpypTz75xO03OnK/DSJd+KbB8ePHFRcX5/I3dr2PMQAAQEHD1CUAAOBva9KkSbrttttUqFAhhYeHq1KlSo5gW7oQNo4fP15vvvmm0tLSlJOT47gvd3oT6cKUJ5UqVVKhQjf20KlixYpOt202mypUqOCYM3nbtm2SpKSkpDzXcfz4cd1yyy2O2xkZGS7rvdS2bdtkjMmz36VTjBw7dkySXMLlS9d5/PhxhYWFub3/4MGDTrcXLVrkCFbzKzk5WSVLllS/fv1c5hzetm2bNm/enOc6L92+Oz/88IPT8hUrVtS8efPy9WFGyZIlFRQU5NR22223Sbowv/Idd9whSXr//ff12muvacuWLU6hcNmyZV3WmZCQoFWrVkmSWrVqpVmzZrn0OXbs2GWfl0t9//33+uKLL7R06VKXKVkCAgJUu3ZtTZ06VfHx8Y6/j9OnT7td17vvvqt3333XpT0qKsqlLTk5WcnJyZIkf39/NWvWTOPGjbvs32qXLl00Y8YMzZ8/X3379nUbVOfl448/1scff+y4XbduXb3zzjvXVVfu30FMTIxTu7e3typWrOj4v/3zzz8lSZUqVXJZR0xMjL7//nunNi8vL5UrV86p7eK/nYtNmTJFP/74oyS5zH2f68svv9QLL7yg9evXO81P7+7v+HoeYwAAgIKGoBsAAPxt1atXT3Xq1Mnz/pdeeknPPfecevfureeff17FixeXl5eXHn/8cZczpT0ht4YxY8Y45m++1MUhZ3Z2tvbv368WLVpccb02m01ff/2105mp7tYpSQcOHJB04QzQy60zLCxMM2fOdHv/pQF0/fr19cILLzi1TZw4UZ9//rnb5Tdv3qz33ntPM2bMcDvXt91uV/Xq1TV27Fi3y5cpUybP2nPVqFFDr732miTp0KFDeuONN9SkSROtW7fusvueXzNmzFDPnj3VsWNHDRkyRGFhYfL29lZKSopj/viLTZgwQRkZGdq0aZNSUlL00EMPacaMGU59Dhw44DZYzstTTz2lhIQENWvWzOWik5I0efJkdejQQQ0bNrziujp06OByQcpnn33W8fdysb59+6pTp07KycnR5s2bNWLECHXs2FG//fZbnus/fPiw1qxZI0natGmT7Ha70wdVl9OyZUsNGTJE0oUz1EePHq2mTZtqzZo1Tmc8X01dFy/nKT/++KNefPFF/fTTTxo0aJBatWrl9I2DFStWqH379rrrrrv05ptvKjIyUj4+Ppo+fbo++ugjl/Vdz2MMAABQ0BB0AwCAf6w5c+aoadOmLmelHjt2zCk8Kl++vFatWqVz587dkAsq5so9YzuXMUZ//PGHatSo4diuJBUpUkTx8fFXXN8vv/yic+fOXTbcz12vMUZly5Z1nDl6OZs2bZLNZnN7hurF61yyZIkaNWqUr0AwJCTEZZ8ud8HIoUOHqlatWrrvvvvy3P4vv/yi5s2bX/N0MrfccotTTU2aNFHJkiU1ffr0PC8ommvfvn06deqU01ndv//+uyQpOjpa0oW/t3Llyumzzz5zqjH3jOJL1a1bV5LUunVrhYWFqUePHnrmmWdUuXJlSRemWvnjjz/UqlWrfO3fvHnzlJqa6naalFz16tXTjh079Ouvv+rEiROSpA8++EAffvihS9/SpUu7PIfjxo1zG3RXrFjR0TchIUGnT5/WM888c9kLfQ4YMEAnTpxQSkqKhg4dqnHjxmnw4MH52tfIyEin2ipVqqSGDRtq3rx56tq16zXVlXvW/datW53OwLbb7dq2bZtq164t6f/PaN+6datj6pxcW7dudflgwm63a8eOHU7/i5f+7eTq3bu3hg0bpn379qlKlSoaNGiQ03Pz6aefyt/fXwsXLnSa0mb69OluH6freYwBAAAKGj6uBwAA/1je3t4u8/LOnj1be/fudWr717/+pYyMDE2cONFlHfmd19edDz74wBEmSheC0P3796t169aSpNjYWJUvX16vvvqqTp486bL8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XdWnTx+dOHFC7777rhISErR69WrVqlXLsa6kpCQtWbJEjzzyiGrWrClvb29NnTpV69aty9fjFRcXp759+8put2vjxo0aN26c9u3b53LC29U4fPiwzp49q4cffljNmjXTQw89pO3bt2vSpElatWqVVq1aJT8/P0lXd3yWk5OjVq1a6Y477tArr7yiBQsWKDk5WefPn9eoUaPc1nLu3Dn961//0q5du7Ry5UqnY8T8Hs8AbhnAoo4dO2YkmQ4dOly2X/v27Y0kk5mZaYwxRpKRZJYvX+7oc/r0aVO5cmUTERFhsrOzjTHGLFy40EgyX3/9tdP6atSoYRo3buy43atXL3Prrbe6bFeSSU5OdtrGpVJTU40k88EHHzjali1bZiSZZcuWGWOM+de//mW8vb3Nxo0bHX0yMjJMiRIlTGxsrKNt+vTpRpL56aefHG2HDh1yqcMYYxITE01UVJRTm7v6UlJSjM1mM3/++aejbejQoUaS2b9/v6MtLS3NSDJjxoxxWcfFcmtMS0tztP3+++9GknnllVccbUlJSSYoKOiy67p0v/L7vI4bN85IMjNmzHD0y87ONg0aNDDBwcGOv5PcfQoICDB79uxx9F21apWRZAYNGuRUb+7juWbNGhMcHGw6depkcnJynGp29xj/97//NZLMd999d9n9BQCryH2t//LLL0358uWNJNOyZUu3fbOzs01YWJipVq2aOXPmjKP9yy+/NJLM8OHDHW15jQ2zZ892GjcvlvtaPn36dLfbzx071qxZ42j7888/jb+/v7n77rsdbR07djS+vr5m+/btjrZ9+/aZwoULm7vuustlvY0aNTJNmza9bB2NGzc2VatWdVvXpTUOGDDApT0/Y3l2drapVq2aadasmVN7ZGSkSUhIcGpLTk42ksyhQ4cuW0/jxo2djoOMMWbYsGFGkjl48OAV68516TFB7u0qVao47UfucdETTzzhaKtVq5YJCwszhw8fdrT98ssvxsvLy/To0cNln9q3b++07f79+xtJ5pdffnGqN/e4YujQocbb29vMmzfPpW53Y3lCQoIpV65cnvsKAP8UAwYMMHnFTB9++KHx8vIyK1ascGqfPHmykWRWrlxpjDFm27ZtxsvLy9x9990u76fsdrvLei99/3yxefPmGUnmhRdecGq/9957jc1mM3/88Yejzd375oYNG5oqVao4bp8/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f/5mPQwAABRojNcAABR8jNeANRTydAEAbrz9+/era9eueuWVV3T33XfrxIkTWrFihXr06KFdu3YpMzNT06dPlyQVL15c+/btkyQ9/fTTeu2111S7dm35+/tr/Pjxeu211zRlyhTVrl1b06ZNU/v27fXbb7+pYsWKTtvMyspS165dtXPnTq1YsUKhoaGObb7xxhuKi4vT9u3b1bdvX0lScnLyzX1QAAAoYBivAQAo+BivAQsxAP521q5daySZnTt3utyXlJRkOnTo4NSWlpZmJJlx48Y5tZcsWdK8+OKLTm1169Y1/fv3d1puxYoVpnnz5ubOO+80x44dc/Rt3ry5eemll5yW//DDD01kZOT17B4AAH8LjNcAABR8jNeAdXBGN/A3VLNmTTVv3lzVq1dXQkKCWrZsqXvvvVe33HLLZZerU6eO4/fMzEzt27dPjRo1curTqFEj/fLLL05tXbt2VenSpfXNN98oICDA0f7LL79o5cqVevHFFx1tOTk5Onv2rE6fPq3AwMDr2U0AACyN8RoAgIKP8RqwDuboBv6GvL29tXjxYn399deqUqWKJkyYoEqVKiktLe2yywUFBV3T9tq0aaNff/1VqampTu0nT57UyJEjtX79esfPhg0btG3bNvn7+1/TtgAA+LtgvAYAoOBjvAasgzO6gb8pm82mRo0aqVGjRho+fLiioqI0d+5c+fr6Kicn54rLFylSRCVLltTKlSvVuHFjR/vKlStVr149p74PP/ywqlWrpvbt22v+/PmO/rfffru2bt2qChUq3NidAwDgb4LxGgCAgo/xGrAGgm7gb2jVqlVaunSpWrZsqbCwMK1atUqHDh1S5cqVdfbsWS1cuFBbt25ViRIlVLRo0TzXM2TIECUnJ6t8+fKqVauWpk+frvXr12vmzJkufR955BHl5OSobdu2+vrrr3XnnXdq+PDhatu2rW699Vbde++98vLy0i+//KKNGzfqhRde+CsfAgAACjzGawAACj7Ga8A6CLqBv6EiRYrou+++07hx45SZmamoqCi99tprat26terUqaPly5erTp06OnnypJYtW6bo6Gi363n00Ud1/PhxPfHEEzp48KCqVKmi//3vfy5XhM71+OOPy263q02bNlqwYIESEhL05ZdfatSoURo9erR8fHwUExOjBx988C/cewAArIHxGgCAgo/xGrAOmzHGeLoIAAAAAAAAAACuFRejBAAAAAAAAABYGkE3AAAAAAAAAMDSCLoBAAAAAAAAAJZG0A0AAAAAAAAAsDSCbgAAAAAAAACApRF0AwAAAAAAAAAsjaAbAAAAAAAAAGBpBN0AAAAAAAAAAEsj6AYAAAAAAAAAWBpBNwAAAAAAAADA0gi6AQAAAAAAAACWRtANAAAAAAAAALC0/wOwT+jBK3WOgQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from locale import normalize\n", "\n", "\n", "def analyze_balance(y_train, y_val, y_test, y_name):\n", " print(\"Распределение классов в обучающей выборке:\")\n", " print(y_train.value_counts(normalize=True))\n", "\n", " print(\"\\nРаспределение классов в контрольной выборке:\")\n", " print(y_val.value_counts(normalize=True))\n", "\n", " print(\"\\nРаспределение классов в тестовой выборке:\")\n", " print(y_test.value_counts(normalize=True))\n", "\n", " fig, axes = plt.subplots(1, 3, figsize=(18,5), sharey=True)\n", " fig.suptitle('Распределение в различных выборках')\n", "\n", " sns.barplot(x=y_train.value_counts().index, y=y_train.value_counts(normalize=True), ax=axes[0])\n", " axes[0].set_title('Обучающая выборка')\n", " axes[0].set_xlabel(y_name)\n", " axes[0].set_ylabel('Доля')\n", "\n", " sns.barplot(x=y_val.value_counts().index, y=y_val.value_counts(normalize=True), ax=axes[1])\n", " axes[1].set_title('Контрольная выборка')\n", " axes[1].set_xlabel(y_name)\n", "\n", " sns.barplot(x=y_test.value_counts().index, y=y_test.value_counts(normalize=True), ax=axes[2])\n", " axes[2].set_title('Тестовая выборка')\n", " axes[2].set_xlabel(y_name)\n", "\n", " plt.show()\n", "\n", "analyze_balance(y_train, y_val, y_test, 'stroke')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Заметим, что выборки не сбалансированы. Для балансировки будем использовать RandomOverSampler" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в обучающей выборке:\n", "stroke\n", "0 0.5\n", "1 0.5\n", "Name: proportion, dtype: float64\n", "\n", "Распределение классов в контрольной выборке:\n", "stroke\n", "0 0.5\n", "1 0.5\n", "Name: proportion, dtype: float64\n", "\n", "Распределение классов в тестовой выборке:\n", "stroke\n", "0 0.957599\n", "1 0.042401\n", "Name: proportion, dtype: float64\n" ] }, { "data": { "image/png": "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0h133KFXXnlFCxYsUHJyss6fP69Ro0a5reXcuXP617/+pV27dmnlypWKjIx03Dd+/Hi1b99e3bt3V3Z2tj7++GN16tRJX375pRITE2/YYwwAAFDgGAAAgL+Z6dOnG0lmyZIl5tChQ2b37t3m448/NiVKlDABAQFmz549xhhjzp49a3JycpyWTUtLM35+fmbUqFGOtmnTphlJZuzYsS7bstvtjuUkmTFjxrj0qVq1qmncuLHj9rJly4wkU6pUKZOZmelo/+STT4wkM378eMe6K1asaBISEhzbMcaY06dPm7Jly5oWLVq4bKthw4amWrVqjtuHDh0ykkxycrKjbefOncbb29u8+OKLTstu2LDBFCpUyKV927ZtRpJ5//33HW3Jycnm4kPJFStWGElm5syZTssuWLDApT0qKsokJia61D5gwABz6eHppbU/+eSTJiwszMTGxjo9ph9++KHx8vIyK1ascFp+8uTJRpJZuXKly/Yu1rhxY6f1GWPMsGHDjCRz8ODBKy4rybz22muOtqysLFOrVi0TFhZmsrOzjTHGnD9/3mRlZTkte/ToURMeHm569+592W3079/fBAUFubR3797dlC1b1qnt0scsKSnJREVFOW5v3LjReHl5mdatWxtJJi0tzRhjzJ9//mkkmWnTpjmt79LnOncbAwYMcKknMTHRaVuXe11cbv379+83xYsXNy1atDBZWVmmdu3a5tZbbzXHjx/Pcz25oqKiTFJSklNbt27dTGBg4HXVlXu7efPm5vz584723PebCRMmGGOMyc7ONmFhYaZatWrmzJkzjn5ffvmlkWSGDx/uaEtKSjKSzCOPPOJos9vtJjEx0fj6+ppDhw451Tt9+nRjt9tN9+7dTWBgoFm1apVL3adPn3a6nZ2dbapVq2aaNWvm1H49jzEAAEBBxNQlAADgbys+Pl6hoaEqU6aMunTpoqCgIM2dO9cxv66fn5+8vC4cDuXk5Ojw4cMKCgpSpUqVtG7dOsd6Pv30U4WEhOiRRx5x2calUzpcjR49eqhIkSKO2/fee68iIyMd0wasX79e27ZtU7du3XT48GFlZGQoIyNDp06dUvPmzfXdd9/Jbrc7rfPs2bPy9/e/7HY/++wz2e12de7c2bHOjIwMRUREqGLFii5TaWRnZ0uS42xVd2bPnq2iRYuqRYsWTuuMjY1VUFCQyzrPnTvn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jwYAAAAAAAAAsDTm6AYAALC4oKAgde/e/bIXi6xRo4ZKlix5E6sCAAAAgJuHoBsAAMDiQkJCHBfey8s999xzk6oBAAAAgJuPOboBAAAAAAAAAJbGHN0AAAAAAAAAAEsj6AYAAAAAAAAAWBpBNwAAAAAAAADA0gi6AQAAAAAAAACWRtANAAAAAAAAALA0gm4AAAAAAAAAgKURdAMAAAAAAAAALI2gGwAAAAAAAABgaQTdgKRTp05p9+7dOnr0qKdLwQ3E8woAgHUZY3TkyBFt27bN06UAAPC3ZLfblZGRoR07dni6FOCGIOjGP9bs2bPVvHlzFSlSREFBQbr11lv1yiuveLosXCeeVwAArOvEiRN69tlnValSJfn6+qpEiRK67bbbtHXrVk+XBgDA38KBAwf0+OOPKyoqSr6+vgoNDVWVKlWUmZnp6dKA61bI0wUAN8Jvv/2mlJQULVu2TBkZGSpRooSaNm2qYcOGqWrVqi79n376aY0ePVodOnTQ22+/rZCQENlsNt12220eqB43Cs8rAHjee++9p169eumnn35SnTp1nO57++231bdvX3Xo0EGffvqpvL29PVQlCqLDhw+rcePG2rVrlx555BE1atRIvr6+8vHxUXR0tKfLAwBcwmaz5avfsmXL1KRJk7+2GOTLH3/8oaZNm+rcuXN69NFHdfvtt6tQoUIKCAhQ4cKFPV0ecN0IumF5n332mbp27arixYvrgQceUNmyZbVz5069++67mjNnjj7++GPdfffdjv7ffvutRo8erZSUFD399NMerBw3Es8rABRsc+fO1cMPP6y4uDh9/PHHhNxwMWTIEO3fv1+pqaluT1QAABQsH374odPtDz74QIsXL3Zpr1y58s0sC5fRr18/+fr66scff1SpUqU8XQ5ww9mMMcbTRQDXavv27apRo4ZuvfVWfffddwoNDXXcl5GRobi4OO3evVu//vqrypUrJ0lq166djhw5opUrV3qqbPwFeF4BoGBwd0b38uXL1apVK912221asWKFihYt6uEqUdAcPHhQkZGRmjx5svr06ePpcgAA12DgwIGaNGmSiJkKprVr16pOnTpatGiRWrRo4elygL8Ec3TD0saMGaPTp09r6tSpTiG3JIWEhGjKlCk6deqU0xzNP/74o6pVq6YuXbqoePHiCggIUN26dTVv3jxHn5MnT6pw4cJ67LHHXLa5Z88eeXt7KyUlRZLUs2dPt1+ntdlsGjFihOP2n3/+qf79+6tSpUoKCAhQiRIl1KlTJ+3cudNpueXLl8tms2n58uWOtp9++kktWrRQkSJFVLhwYTVp0kQrVqxwWu69996TzWbTmjVrHG0ZGRkudUhS27ZtXWpesWKFOnXqpFtvvVV+fn4qU6aMBg0apDNnzrjs25w5c1SnTh0VKVJENpvN8fPqq6+69HVXY+5PYGCgqlevrnfeecepX8+ePRUUFHTZdV26X/l5XnMdPHhQDzzwgMLDw+Xv76+aNWvq/fffd+qzc+dOxz69/vrrioqKUkBAgBo3bqyNGze61Hvp4zljxgx5eXnp5ZdfdrT9+uuv6tmzp8qVKyd/f39FRESod+/eOnz48GX3FQCsbP369erQoYMiIyO1cOFCtyH37NmzFRsbq4CAAIWEhOjf//639u7d69Qnr7Fhzpw5TuNmkyZNnMYadz+5bDabBg4cqJkzZ6pSpUry9/dXbGysvvvuO5ft/Pzzz2rdurWCg4MVFBSk5s2b68cff3S7z3nV8N577zn1qVat2hUfv9waL+VuLH/11VfVsGFDlShRQgEBAYqNjdWcOXNclj158qSeeOIJlStXTj4+Pk41ZmRkXLaeS/ctJCREiYmJLmNjXnXnyj0myD0O+umnn2S325Wdna06derI399fJUqUUNeuXbVr1y6X5b/55hvFxcWpcOHCKlasmDp06KDNmzc79RkxYoRsNpu2bNmizp07Kzg4WCVKlNBjjz2ms2fPutR78XHF+fPn1aZNGxUvXlybNm1ytE+fPl3NmjVTWFiY/Pz8VKVKFb311luXfcwAABdkZWUpOTlZFSpUcHzmfPLJJ5WVleXSd8aMGapXr54CAwN1yy236K677tKiRYskSdHR0Zcd5y8eH0+dOqUnnnhCZcqUkZ+fnypVqqRXX33VJYy/eHlvb2+VKlVKffv21bFjxxx9srOzNXz4cMXGxqpo0aIqXLiw4uLitGzZMpf6cz9z3nrrrfL29nas+0qfcy/dPy8vL0VEROi+++5zGg8v/ryal9xxMNePP/4of39/bd++XVWrVpWfn58iIiLUr18/HTlyxGX5qzk+27FjhxISElS4cGGVLFlSo0aNcnqMc+u9+FjoxIkTio2NVdmyZbV//35He36PZwB3mLoElvbFF18oOjpacXFxbu+/6667FB0drfnz5zvaDh8+rKlTpyooKEiPPvqoQkNDNWPGDN1zzz2aOXOmunbtqqCgIN19992aNWuWxo4d6/T16v/+978yxqh79+5XVetPP/2kH374QV26dFHp0qW1c+dOvfXWW2rSpIk2bdqkwMBAt8v98ccfatKkiQIDAzVkyBAFBgbq7bffVnx8vBYvXqy77rrrqurIy+zZs3X69Gk9/PDDKlGihFavXq0JEyZoz549mj17tqNfamqqOnfurJo1a+rll19W0aJFlZGRoUGDBuV7W6+//rpCQkKUmZmpadOmqU+fPoqOjlZ8fPw115+f51WSzpw5oyZNmuiPP/7QwIEDVbZsWc2ePVs9e/bUsWPHXP658cEHH+jEiRMaMGCAzp49q/Hjx6tZs2basGGDwsPD3dayaNEi9e7dWwMHDnSaRmXx4sXasWOHevXqpYiICP3222+aOnWqfvvtN/3444/5nuMOAKxi+/btatWqlfz8/LRw4UJFRka69Mk9A7xu3bpKSUlRenq6xo8fr5UrV+rnn39WsWLFrmqbzzzzjB588EFJcoxPffv2zfNY4dtvv9WsWbP06KOPys/PT2+++aZatWql1atXO4Lo3377TXFxcQoODtaTTz4pHx8fTZkyRU2aNNG3336r+vXru6w3JiZGzzzzjFMdf7Xx48erffv26t69u7Kzs/Xxxx+rU6dO+vLLL5WYmOjoN2TIEE2ePFkPPPCAGjVqJB8fH3322WeaO3duvraTu2/GGG3fvl1jx45VmzZt3AbS+ZX7T9+BAwcqNjZWL7/8sg4dOqQ33nhD33//vX7++WeFhIRIkpYsWaLWrVurXLlyGjFihM6cOaMJEyaoUaNGWrduncs/ADp37qzo6GilpKToxx9/1BtvvKGjR4/qgw8+yLOeBx98UMuXL9fixYtVpUoVR/tbb72lqlWrqn379ipUqJC++OIL9e/fX3a7XQMGDLjm/QeAvzu73a727dvr+++/V9++fVW5cmVt2LBBr7/+un7//XenE5RGjhypESNGqGHDhho1apR8fX21atUqffPNN2rZsqXGjRunkydPSpI2b96sl156ScOGDXNMkZIbJhtj1L59ey1btkwPPPCAatWqpYULF2rIkCHau3evXn/9daca7777bt1zzz06f/68UlNTNXXqVJ05c8YxFUtmZqbeeecdde3aVX369NGJEyf07rvvKiEhQatXr1atWrUc60pKStKSJUv0yCOPqGbNmvL29tbUqVO1bt26fD1ecXFx6tu3r+x2uzZu3Khx48Zp3759Lie8XY3Dhw/r7Nmzevjhh9WsWTM99NBD2r59uyZNmqRVq1Zp1apV8vPzk3R1x2c5OTlq1aqV7rjjDr3yyitasGCBkpOTdf78eY0aNcptLefOndO//vUv7dq1SytXrnQ6Rszv8QzglgEs6tixY0aS6dChw2X7tW/f3kgymZmZxhhjJBlJZvny5Y4+p0+fNpUrVzYREREmOzvbGGPMwoULjSTz9ddfO62vRo0apnHjxo7bvXr1MrfeeqvLdiWZ5ORkp21cKjU11UgyH3zwgaNt2bJlRpJZtmyZMcaYf/3rX8bb29ts3LjR0ScjI8OUKFHCxMbGOtqmT59uJJmffvrJ0Xbo0CGXOowxJjEx0URFRTm1uasvJSXF2Gw28+effzrahg4daiSZ/fv3O9rS0tKMJDNmzBiXdVwst8a0tDRH2++//24kmVdeecXRlpSUZAoXLnzZdV26X/l9XseNG2ckmRkzZjj6ZWdnmwYNGpigoCDH30nuPgUEBJg9e/Y4+q5atcpIMoMGDXKqN/fxXLNmjQkKCjKdOnUyOTk5TjW7e4z/+9//Gknmu+++u+z+AoBV5L7Xf/nll6Z8+fJGkmnZsqXbvtnZ2SYsLMxUq1bNnDlzxtH+5ZdfGklm+PDhjra8xobZs2c7jZsXy30vnz59utvt544da9ascbT9+eefxt/f39x9992Oto4dOxpfX1+zfft2R9u+fftMkSJFzF133eWy3kaNGpmmTZteto7GjRubqlWruq3r0hoHDBjg0p6fsTw7O9tUq1bNNGvWzKk9MjLSJCQkOLUlJycbSebQoUOXradx48ZOx0HGGDNs2DAjyRw8ePCKdee69Jgg93aVKlWc9iP3uOiJJ55wtNWqVcuEhYWZw4cPO9p++eUX4+XlZXr06OGyT+3bt3fadv/+/Y0k88svvzjVm3tcMXToUOPt7W3mzZvnUre7sTwhIcGUK1cuz30FgH+KAQMGmLxipg8//NB4eXmZFStWOLVPnjzZSDIrV640xhizbds24+XlZe6++26Xz1N2u91lvZd+fr7YvHnzjCTzwgsvOLXfe++9xmazmT/++MPR5u5zc8OGDU2VKlUct8+fP2+ysrKc+hw9etSEh4eb3r17O9rOnDljvLy8TL9+/Zz65udzrjHGREVFmaSkJKe2bt26mcDAQMft/HwGzx0HL73dvHlzc/78eUd77hg8YcIEY8zVH59JMo888oijzW63m8TEROPr6+s4rrj4WMhut5vu3bubwMBAs2rVKpe683s8A7jD1CWwrBMnTkiSihQpctl+ufdnZmY62urWravGjRs7bgcEBKh///46cOCA4z+s8fHxKlmypGbOnOnot3HjRv3666/697//7WgLCwvTwYMHlZ2dfdk6AgICHL+fO3dOhw8fVoUKFVSsWDG3/9U9fvy4Dh48qMWLFyshIcHpokwlSpRQz549tXbtWqWnp192u/l1cX2nTp1SRkaGGjZsKGOMfv75Z8d9J06ckJeX11WfYXexo0ePKiMjQzt27NDrr78ub29vp+cjV0ZGhjIyMly+XpyX/DyvX331lSIiIhxneEuSj4+PHn30UZ08eVLffvut0zo7duzodJGOevXqqX79+vrqq69ctr9jxw4lJiaqVq1a+vDDD+Xl5fwWe/FjfPbsWWVkZOiOO+6QpHz/Zx8ArKJnz57avXu3unXrpkWLFjl9OyjXmjVrdPDgQfXv31/+/v6O9sTERMXExDh9IytX7tiQ+5N7PHCtGjRooNjYWMftW2+9VR06dNDChQuVk5OjnJwcLVq0SB07dnRc70OSIiMj1a1bN33//fdOxxjSha82554RdTk5OTmO/bjccUTumHHxz7lz51z6XTzOHD16VMePH1dcXJzLGHPixAmVKFHiivXl5dy5c8rIyNChQ4eUmpqquXPnqkaNGo4zri+t+/Dhw7Lb7fla94ABA5z2o0mTJoqNjXX8Lezfv1/r169Xz549Vbx4cUe/GjVqqEWLFm7H50vPtH7kkUckyW3fiRMnKiUlRW+88YY6dOjgcv/FtR0/flwZGRlq3LixduzYoePHj+drHwHgn2j27NmqXLmyYmJinMazZs2aSZJj+o958+bJbrdr+PDhLp+nrvYbsF999ZW8vb316KOPOrU/8cQTMsbo66+/dmo/ffq0MjIydODAAX366af65Zdf1Lx5c8f93t7e8vX1lXThDPUjR47o/PnzqlOnjtNYe+rUKdnt9usaa7OyspSRkeHIBL755hunWi6t+ejRo/meG33w4MFO31q///77FR4e7hhrr+X47OLpynKnL8vOztaSJUtc+g4ZMkQzZ87UJ598onr16rncn9/jGcAdgm5YVm6AfaUPuO4C8ZiYGJd+uV9zyp0r0svLS927d9e8efN0+vRpSdLMmTPl7++vTp06OZZr2LChzp49q2effVZ79uxxDNiXOnPmjIYPH+6YGywkJEShoaE6duyY2w9GHTt2VHh4uDIzM1WpUqUr1nu9du3a5fjQGBQUpNDQUEdofHF9DRo0kN1u12OPPabt27c7BtWrcfvttys0NFTly5fXtGnTNHHiRJcB7tSpUwoNDVVoaKgCAgJ06623avz48Zddb36e1z///FMVK1Z0OWjK7ffnn386tVesWNFlnbfddpvL437q1CklJCQoPT1dR44ccXsQduTIET322GMKDw9XQECAQkNDVbZsWUniwzGAv50jR45oxowZev/991WrVi099thjLu91ue+57sa5mJgYl/fki8eG3J/evXtfV515vc+fPn1ahw4d0qFDh3T69Ok8x2K73a7du3c7tR87dixfc3Bu2bLFaayrVKmSPvroI5d+7777rst+585TerEvv/xSd9xxh/z9/VW8eHGFhobqrbfecnncGzRooLlz52rOnDnav3+/MjIyHMc6+fHDDz8oNDRUYWFhatiwoc6fP6/Zs2e7jH25dYeEhCggIEB33XWX07VELpa7bF5j+cXjuOT+b6Zy5crKyMjQqVOnnNovfY7Lly8vLy8vl7H866+/dkxh5m6uUklauXKl4uPjHXODh4aGatiwYZIYywHgcrZt26bffvvNZTy77bbbJF2Y01q6MO2Zl5eX07RR1+rPP/9UyZIlXU6Oy+uz35gxYxQaGqrIyEjde++9iouL0+jRo536vP/++6pRo4bjWhKhoaGaP3++0xhQokQJVaxYUe+8844WLVqkgwcPKiMjw+1c5Hn5+OOPFRoaqvDwcLVs2VJlypRxubaVJCUnJys0NFTFixdXYGCgEhMTtW3bNrfrzGus9fb2VsWKFfM11ro7PvPy8nI6GUCS43m9dKydMmWKXnvtNUnKM0fI7/EM4A5zdMOyihYtqsjISP3666+X7ffrr7+qVKlSCg4OluT838Er6dGjh8aMGaN58+apa9eu+uijj9S2bVunC2m1b99evXv31pgxYzRmzJg81/XII49o+vTpevzxx9WgQQMVLVpUNptNXbp0cXuW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wAAzY8YMU7FiRePn52dq167tdl3r1q0zCQkJjrG4adOmTscFK1euNBUqVDAjRowwWVlZV6yjcePGTmNdsWLFTKNGjczXX3/ttsZLJSYmuow97777rmM/YmJizPTp001ycrLTeL9ixQrj7e1tpkyZ4rRsbr9Dhw65fayuVPdXX33lUnfuj81mMxEREeaee+4xmzdvNsb8/99JWlqa03KffPKJ099C165dzZ9//ulSx5IlS0yjRo1MQECACQ4ONu3atTObNm1yu0+bNm0y9957rylSpIi55ZZbzMCBA82ZM2dc6r10LM7IyDChoaHm7rvvdrT973//MzVq1DD+/v4mOjrajB492kybNs3tvgDAP82AAQOcxpxLZWdnm9GjR5uqVasaPz8/c8stt5jY2FgzcuRIc/z4cae+06ZNc4wHt9xyi2ncuLFZvHixyzrdfX6+2IkTJ8ygQYNMyZIljY+Pj6lYsaIZM2aMsdvtTv2uNG4ZY4zdbjcvvfSSiYqKchwzfPnlly6fB//73/8am81mFixY4LSNvI5lLhUVFeVUT0hIiGnZsqVJTU119Mk9tsj98fLyMqVLlzZJSUmOY6hLjwFyTZo0ycTExBgfHx8THh5u+vXrZw4fPuzS72qOz7Zv325atmxpAgMDTXh4uElOTjY5OTku9V56TLZ161bj7+9vBg0a5GjLz/EMkBebMVf53Q/gH+juu+/Whg0b9Mcff3i6lBtm586dKlu27FV//eufIvfxGTNmjP7zn/94uhwAwF/AZrNpwIABLl9pxt/DiBEjNHLkSB06dMjpQlcAAODG6Nmzp+bMmeNyRjvgKczRDVzB/v37NX/+fN1///2eLgUAAAAAAACAG8zRDeQhLS1NK1eu1DvvvCMfHx/169fP0yXdUAEBAUpISPB0GQAAAAAAAMB144xuIA/ffvut7r//fqWlpen9999XRESEp0u6ocLDw50uUAkAAAAAAABYFXN0AwAAAAAAAAAsjTO6AQAAAAAAAACW5tGg+7vvvlO7du1UsmRJ2Ww2zZs374rLLF++XLfffrv8/PxUoUIFvffee395nQAAAAAAAACAgsujF6M8deqUatasqd69e+uee+65Yv+0tDQlJibqoYce0syZM7V06VI9+OCDioyMzPdF9ex2u/bt26ciRYrIZrNd7y4AAODCGKMTJ06oZMmS8vLiy1PX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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "randoversamp = RandomOverSampler(random_state=42)\n", "\n", "# Применение RandomOverSampler для балансировки выборок\n", "X_train_resampled, y_train_resampled = randoversamp.fit_resample(X_train, y_train)\n", "X_val_resampled, y_val_resampled = randoversamp.fit_resample(X_val, y_val)\n", "\n", "# Проверка сбалансированности после RandomOverSampler\n", "analyze_balance(y_train_resampled, y_val_resampled, y_test, \"stroke\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Выборки сбалансированы" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Применим унитарное кодирование категориальных признаков (one-hot encoding), переведя их в бинарные вектора." ] }, { "cell_type": "code", "execution_count": 170, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " age hypertension heart_disease avg_glucose_level bmi gender_Male \\\n", "0 53.0 0 0 113.21 28.6 True \n", "1 62.0 0 0 88.63 24.5 False \n", "2 17.0 0 0 83.23 28.1 False \n", "3 77.0 1 0 176.71 33.2 False \n", "4 7.0 0 0 62.08 16.1 True \n", "\n", " gender_Other ever_married_Yes work_type_Never_worked work_type_Private \\\n", "0 False True False True \n", "1 False True False False \n", "2 False False False True \n", "3 False True False False \n", "4 False False False False \n", "\n", " work_type_Self-employed work_type_children Residence_type_Urban \\\n", "0 False False True \n", "1 False False True \n", "2 False False False \n", "3 True False False \n", "4 False True False \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 False False \n", "1 False True \n", "2 False True \n", "3 False True \n", "4 False False \n", "\n", " smoking_status_smokes \n", "0 True \n", "1 False \n", "2 False \n", "3 False \n", "4 False \n" ] } ], "source": [ "# Определение категориальных признаков\n", "categorical_features = [\n", " \"gender\",\n", " \"ever_married\",\n", " \"work_type\",\n", " \"Residence_type\",\n", " \"smoking_status\",\n", "]\n", "\n", "# Применение one-hot encoding к обучающей выборке\n", "X_train_encoded = pd.get_dummies(\n", " X_train_resampled, columns=categorical_features, drop_first=True\n", ")\n", "\n", "# Применение one-hot encoding к контрольной выборке\n", "X_val_encoded = pd.get_dummies(\n", " X_val_resampled, columns=categorical_features, drop_first=True\n", ")\n", "\n", "# Применение one-hot encoding к тестовой выборке\n", "X_test_encoded = pd.get_dummies(X_test, columns=categorical_features, drop_first=True)\n", "\n", "print(X_train_encoded.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Перейдем к числовым признакам, а именно к колонке age, применим дискретизацию (позволяет преобразовать данные из числового представления в категориальное):" ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hypertension heart_disease avg_glucose_level bmi gender_Male \\\n", "0 0 0 113.21 28.6 True \n", "1 0 0 88.63 24.5 False \n", "2 0 0 83.23 28.1 False \n", "3 1 0 176.71 33.2 False \n", "4 0 0 62.08 16.1 True \n", "\n", " gender_Other ever_married_Yes work_type_Never_worked work_type_Private \\\n", "0 False True False True \n", "1 False True False False \n", "2 False False False True \n", "3 False True False False \n", "4 False False False False \n", "\n", " work_type_Self-employed work_type_children Residence_type_Urban \\\n", "0 False False True \n", "1 False False True \n", "2 False False False \n", "3 True False False \n", "4 False True False \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 False False \n", "1 False True \n", "2 False True \n", "3 False True \n", "4 False False \n", "\n", " smoking_status_smokes age_bin \n", "0 True middle-aged \n", "1 False old \n", "2 False young \n", "3 False old \n", "4 False young \n" ] } ], "source": [ "# Определение числовых признаков для дискретизации\n", "numerical_features = [\"age\"]\n", "\n", "\n", "# Функция для дискретизации числовых признаков\n", "def discretize_features(df, features, bins, labels):\n", " for feature in features:\n", " df[f\"{feature}_bin\"] = pd.cut(df[feature], bins=bins, labels=labels)\n", " df.drop(columns=[feature], inplace=True)\n", " return df\n", "\n", "\n", "# Заданные интервалы и метки\n", "age_bins = [0, 25, 55, 100]\n", "age_labels = [\"young\", \"middle-aged\", \"old\"]\n", "\n", "# Применение дискретизации к обучающей, контрольной и тестовой выборкам\n", "X_train_encoded = discretize_features(\n", " X_train_encoded, numerical_features, bins=age_bins, labels=age_labels\n", ")\n", "X_val_encoded = discretize_features(\n", " X_val_encoded, numerical_features, bins=age_bins, labels=age_labels\n", ")\n", "X_test_encoded = discretize_features(\n", " X_test_encoded, numerical_features, bins=age_bins, labels=age_labels\n", ")\n", "\n", "print(X_train_encoded.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Применим ручной синтез признаков. Например, в этом случае создадим признак, в котором вычисляется отклонение уровня глюкозы от среднего для определенной возрастной группы. Вышеуказанный признак может быть полезен для определения пациентов с аномальными данными." ] }, { "cell_type": "code", "execution_count": 172, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hypertension heart_disease avg_glucose_level bmi gender_Male \\\n", "0 0 0 113.21 28.6 True \n", "1 0 0 88.63 24.5 False \n", "2 0 0 83.23 28.1 False \n", "3 1 0 176.71 33.2 False \n", "4 0 0 62.08 16.1 True \n", "\n", " gender_Other ever_married_Yes work_type_Never_worked work_type_Private \\\n", "0 False True False True \n", "1 False True False False \n", "2 False False False True \n", "3 False True False False \n", "4 False False False False \n", "\n", " work_type_Self-employed work_type_children Residence_type_Urban \\\n", "0 False False True \n", "1 False False True \n", "2 False False False \n", "3 True False False \n", "4 False True False \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 False False \n", "1 False True \n", "2 False True \n", "3 False True \n", "4 False False \n", "\n", " smoking_status_smokes age_bin glucose_age_deviation \n", "0 True middle-aged 10.186796 \n", "1 False old -46.562537 \n", "2 False young -10.882496 \n", "3 False old 41.517463 \n", "4 False young -32.032496 \n" ] } ], "source": [ "age_glucose_mean = X_train_encoded.groupby(\"age_bin\", observed=False)[\n", " \"avg_glucose_level\"\n", "].transform(\"mean\")\n", "X_train_encoded[\"glucose_age_deviation\"] = (\n", " X_train_encoded[\"avg_glucose_level\"] - age_glucose_mean\n", ")\n", "\n", "age_glucose_mean = X_val_encoded.groupby(\"age_bin\", observed=False)[\n", " \"avg_glucose_level\"\n", "].transform(\"mean\")\n", "X_val_encoded[\"glucose_age_deviation\"] = (\n", " X_val_encoded[\"avg_glucose_level\"] - age_glucose_mean\n", ")\n", "\n", "age_glucose_mean = X_test_encoded.groupby(\"age_bin\", observed=False)[\n", " \"avg_glucose_level\"\n", "].transform(\"mean\")\n", "X_test_encoded[\"glucose_age_deviation\"] = (\n", " X_test_encoded[\"avg_glucose_level\"] - age_glucose_mean\n", ")\n", "\n", "print(X_train_encoded.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Используем масштабирование признаков, для приведения всех числовых признаков к одинаковым или очень похожим диапазонам значений/распределениям. \n", "### Масштабирование признаков позволяет получить более качественную модель за счет снижения доминирования одних признаков над другими." ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hypertension heart_disease avg_glucose_level bmi gender_Male \\\n", "0 0 0 -0.120278 -0.174711 True \n", "1 0 0 -0.561737 -0.757960 False \n", "2 0 0 -0.658721 -0.245839 False \n", "3 1 0 1.020189 0.479666 False \n", "4 0 0 -1.038577 -1.952910 True \n", "\n", " gender_Other ever_married_Yes work_type_Never_worked work_type_Private \\\n", "0 False True False True \n", "1 False True False False \n", "2 False False False True \n", "3 False True False False \n", "4 False False False False \n", "\n", " work_type_Self-employed work_type_children Residence_type_Urban \\\n", "0 False False True \n", "1 False False True \n", "2 False False False \n", "3 True False False \n", "4 False True False \n", "\n", " smoking_status_formerly smoked smoking_status_never smoked \\\n", "0 False False \n", "1 False True \n", "2 False True \n", "3 False True \n", "4 False False \n", "\n", " smoking_status_smokes age_bin glucose_age_deviation \n", "0 True middle-aged 0.192712 \n", "1 False old -0.880860 \n", "2 False young -0.205873 \n", "3 False old 0.785418 \n", "4 False young -0.605984 \n" ] } ], "source": [ "numerical_features = [\"avg_glucose_level\", \"bmi\", \"glucose_age_deviation\"]\n", "\n", "scaler = StandardScaler()\n", "X_train_encoded[numerical_features] = scaler.fit_transform(\n", " X_train_encoded[numerical_features]\n", ")\n", "X_val_encoded[numerical_features] = scaler.transform(X_val_encoded[numerical_features])\n", "X_test_encoded[numerical_features] = scaler.transform(\n", " X_test_encoded[numerical_features]\n", ")\n", "\n", "print(X_train_encoded.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сконструируем признаки, используя фреймворк Featuretools:" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " hypertension heart_disease avg_glucose_level bmi gender_Male \\\n", "index \n", "0 0 0 -0.120278 -0.174711 True \n", "1 0 0 -0.561737 -0.757960 False \n", "2 0 0 -0.658721 -0.245839 False \n", "3 1 0 1.020189 0.479666 False \n", "4 0 0 -1.038577 -1.952910 True \n", "\n", " gender_Other ever_married_Yes work_type_Never_worked \\\n", "index \n", "0 False True False \n", "1 False True False \n", "2 False False False \n", "3 False True False \n", "4 False False False \n", "\n", " work_type_Private work_type_Self-employed work_type_children \\\n", "index \n", "0 True False False \n", "1 False False False \n", "2 True False False \n", "3 False True False \n", "4 False False True \n", "\n", " Residence_type_Urban smoking_status_formerly smoked \\\n", "index \n", "0 True False \n", "1 True False \n", "2 False False \n", "3 False False \n", "4 False False \n", "\n", " smoking_status_never smoked smoking_status_smokes \\\n", "index \n", "0 False True \n", "1 True False \n", "2 True False \n", "3 True False \n", "4 False False \n", "\n", " glucose_age_deviation age_bin_middle-aged age_bin_old \n", "index \n", "0 0.192712 True False \n", "1 -0.880860 False True \n", "2 -0.205873 False False \n", "3 0.785418 False True \n", "4 -0.605984 False False \n" ] } ], "source": [ "data = X_train_encoded.copy()\n", "\n", "es = ft.EntitySet(id=\"patients\")\n", "\n", "es = es.add_dataframe(\n", " dataframe_name=\"strokes_data\", dataframe=data, index=\"index\", make_index=True\n", ")\n", "\n", "feature_matrix, feature_defs = ft.dfs(\n", " entityset=es, target_dataframe_name=\"strokes_data\", max_depth=1\n", ")\n", "\n", "print(feature_matrix.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Оценим качество набора признаков.\n", "\n", "1. Предсказательная способность (для задачи классификации)\n", " - Метрики: Accuracy, Precision, Recall, F1-Score, ROC AUC\n", " - Методы: Обучение модели на обучающей выборке и оценка на валидационной и тестовой выборках.\n", "\n", "2. Вычислительная эффективность\n", " - Методы: Измерение времени, затраченного на генерацию признаков и обучение модели.\n", "\n", "3. Надежность\n", " - Методы: Кросс-валидация и анализ чувствительности модели к изменениям в данных.\n", "\n", "4. Корреляция\n", " - Методы: Анализ корреляционной матрицы признаков и исключение мультиколлинеарных признаков.\n", "\n", "5. Логическая согласованность\n", " - Методы: Проверка логической связи признаков с целевой переменной и интерпретация результатов модели." ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Время обучения модели: 0.43 секунд\n" ] } ], "source": [ "X_train_encoded = pd.get_dummies(X_train_encoded, drop_first=True)\n", "X_val_encoded = pd.get_dummies(X_val_encoded, drop_first=True)\n", "X_test_encoded = pd.get_dummies(X_test_encoded, drop_first=True)\n", "\n", "all_columns = X_train_encoded.columns\n", "X_train_encoded = X_train_encoded.reindex(columns=all_columns, fill_value=0)\n", "X_val_encoded = X_val_encoded.reindex(columns=all_columns, fill_value=0)\n", "X_test_encoded = X_test_encoded.reindex(columns=all_columns, fill_value=0)\n", "\n", "# Выбор модели\n", "model = RandomForestClassifier(n_estimators=100, random_state=42)\n", "\n", "# Начинаем отсчет времени\n", "start_time = time.time()\n", "model.fit(X_train_encoded, y_train_resampled)\n", "\n", "# Время обучения модели\n", "train_time = time.time() - start_time\n", "\n", "print(f\"Время обучения модели: {train_time:.2f} секунд\")" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Feature Importance:\n", " feature importance\n", "2 avg_glucose_level 0.195252\n", "3 bmi 0.184431\n", "15 glucose_age_deviation 0.181013\n", "17 age_bin_old 0.168510\n", "16 age_bin_middle-aged 0.031286\n", "0 hypertension 0.026751\n", "6 ever_married_Yes 0.026492\n", "11 Residence_type_Urban 0.025740\n", "4 gender_Male 0.024989\n", "9 work_type_Self-employed 0.022764\n", "1 heart_disease 0.021314\n", "8 work_type_Private 0.020773\n", "13 smoking_status_never smoked 0.019126\n", "12 smoking_status_formerly smoked 0.017622\n", "10 work_type_children 0.017389\n", "14 smoking_status_smokes 0.016418\n", "7 work_type_Never_worked 0.000127\n", "5 gender_Other 0.000003\n" ] } ], "source": [ "# Получение важности признаков\n", "importances = model.feature_importances_\n", "feature_names = X_train_encoded.columns\n", "\n", "# Сортировка признаков по важности\n", "feature_importance = pd.DataFrame({\"feature\": feature_names, \"importance\": importances})\n", "feature_importance = feature_importance.sort_values(by=\"importance\", ascending=False)\n", "\n", "print(\"Feature Importance:\")\n", "print(feature_importance)" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.949119373776908\n", "Precision: 0.15789473684210525\n", "Recall: 0.046153846153846156\n", "F1 Score: 0.07142857142857142\n", "ROC AUC: 0.5176273317962691\n", "Cross-validated Accuracy: 0.991578947368421\n" ] }, { "data": { "image/png": "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F8e3335Lnz59SE9Pz96D//8qVqxIYGAgQUFBrFq1itOnT7Nnzx6mTJnC+vXrjXbNmjWjVKlSBAYG4uPjY7GUJDAwkOLFi9OpUye2b9/O6dOniYyMZNCgQfz66685ikdERERERCS3lISQe7KysmLFihXs37+fqlWrMnToUN59991M7QIDA4mOjqZp06aULVvWom7JkiWULFmSZs2a0aVLF/r374+TkxN2dnb3HN/a2po1a9aQmppKvXr1CAkJMU7HuNP1bm5ufPbZZ2zYsIFq1aqxfPlyxo0bZ9EmICCAL7/8krVr11KzZk1atGjBnj17jPrw8HDq1KlDhw4daNSoEWazmQ0bNlCoUCHg1qkdr7zyCv7+/rRt25aKFSsyb948ADw9PYmKiiI9PZ0nn3ySatWqMWTIEFxdXbGyyvl/duHh4QQFBfHaa6/h5+dH586d2bt3r8VzNplM9OzZk+joaItZEABFihThxx9/pGzZsnTt2hV/f3/69evHtWvXcHZ2znE8IiIiIiIiuWEy/3PhvEg++PXXX/Hy8mLLli133BzybqKionj88cc5efIkjz322AOIUO4lJSUFFxcXarw6H2vb+9tfQ0REREREsm//u0EFHYKF298NkpOT7/lHTm1MKfni+++/JzU1lWrVqpGYmMiIESPw9vamWbNm2bp+9erVODo64uvry8mTJxk8eDBNmjRRAkJEREREROQhouUYki9u3rzJm2++SZUqVejSpQvu7u5ERkZSqFAhli5danH05N9fVapUAeDy5cu88sorVKpUieDgYOrVq8fXX39dwHeVOwkJCXe8X0dHRxISEgo6RBERERERkQdCyzGkwF2+fNni5Iu/K1SoEOXKlcvniB6stLQ04uPj71jv7e1tHK35b6blGCIiIiIiBeNhXo6hJISI5EpO/qEREREREZFHV06+G2g5hoiIiIiIiIjkCyUhRERERERERCRfKAkhIiIiIiIiIvlCSQgRERERERERyRf//i34ReRfrdnby3U6hoiIiIg8Mv5tJ088ajQTQkRERERERETyhZIQIiIiIiIiIpIvlIQQERERERERkXyhJISIiIiIiIiI5AslIUQeMgEBAQwZMiRP+4yIiMDV1TVP+xQREREREfknJSFEhOeee44TJ04UdBgiIiIiIvKI0xGdIoK9vT329jpmU0REREREHizNhBB5CKWlpREaGoqLiwvFixdn9OjRmM1mALy9vZk4cSJBQUE4OjpSrlw51q5dy59//kmnTp1wdHSkevXq7Nu3z+hPyzFERERERCQ/KAkh8hBavHgxNjY27Nmzh9mzZ/Pee++xcOFCo37mzJk0adKEgwcP8tRTT/HCCy8QFBREr169OHDgAI899hhBQUFG4iI7rl+/TkpKisVLREREREQkJ5SEEHkIeXl5MXPmTPz8/AgMDOTVV19l5syZRn379u158cUX8fX1ZcyYMaSkpFCvXj26detGxYoVGTlyJDExMfzxxx/ZHnPKlCm4uLgYLy8vrwdxayIiIiIi8ghTEkLkIdSwYUNMJpPxvlGjRsTGxpKeng5A9erVjbqSJUsCUK1atUxlSUlJ2R5z1KhRJCcnG6+zZ8/e1z2IiIiIiMh/jzamFHkEFSpUyPj5drIiq7KMjIxs92lra4utrW0eRSgiIiIiIv9Fmgkh8hDavXu3xfuffvoJX19frK2tCygiERERERGRe1MSQuQhlJCQwLBhwzh+/DjLly/n/fffZ/DgwQUdloiIiIiIyF1pOYbIQygoKIi//vqL+vXrY21tzeDBgxkwYEBBhyUiIiIiInJXJnNOzugTEfn/UlJScHFxocar87G2tS/ocERERERE8sT+d4MKOoSHzu3vBsnJyTg7O9+1rZZjiIiIiIiIiEi+UBJCRERERERERPKFkhAiIiIiIiIiki+0MaWI3JcfJ/a857ovERERERER0EwIEREREREREcknSkKIiIiIiIiISL5QEkJERERERERE8oWSECIiIiIiIiKSL5SEEBEREREREZF8odMxROS+NHt7Oda29gUdhoiIiIhIJvvfDSroEOQfNBNCRERERERERPKFkhAiIiIiIiIiki+UhBARERERERGRfKEkhIiIiIiIiIjkCyUhHhHe3t7MmjWroMN4pI0bN46aNWvmaZ959bnp8xcRERERkYeBTscQKUB79+7FwcEh2+0jIiIYMmQIly5duq9+RERERERECoKSECIFyN3d/V/Vj4iIiIiIyIOk5RgPicuXLxMYGIiDgwMeHh7MnDmTgIAAhgwZkqltfHw8JpOJQ4cOGWWXLl3CZDIRGRlplB09epQOHTrg7OyMk5MTTZs2JS4uDoCMjAzGjx9PmTJlsLW1pWbNmmzatMm49saNG4SGhuLh4YGdnR3l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iIiIiIjkCyUhRERERERERCRf2BR0ACLycGv29nKdjiEiIiLyCNMJE5KXNBNCRERERERERPKFkhAiIiIiIiIiki+UhBARERERERGRfKEkhIiIiIiIiIjkCyUhRERERERERCRfKAkhkscCAgIYMmTIXdt4e3sza9asfIkH/p0xiYiIiIjIf4+O6BQpAHv37sXBwaGgwxAREREREclXSkKIFAB3d/eCDkFERERERCTfaTmGPHI2bdrE448/jqurK8WKFaNDhw7ExcUZ9Tt37qRmzZrY2dlRt25d1qxZg8lk4tChQ0abn3/+mXbt2uHo6EjJkiV54YUX+N///pftGNLS0ggNDcXFxYXixYszevRozGazUf/PpQ8mk4mFCxfSpUsXihQpgq+vL2vXrs32eNu2baN+/frY2tri4eHBG2+8QVpa2h3bJyUl0bFjR+zt7fHx8WHp0qXZHktERERERCS3lISQR86VK1cYNmwY+/btY+vWrVhZWdGlSxcyMjJISUmhY8eOVKtWjQMHDjBhwgRGjhxpcf2lS5do0aIFtWrVYt++fWzatIk//viD7t27ZzuGxYsXY2Njw549e5g9ezbvvfceCxcuvOs1YWFhdO/encOHD9O+fXsCAwO5cOHCPcf67bffaN++PfXq1SM6OpoPP/yQTz75hIkTJ97xmuDgYM6ePcsPP/zAypUrmTdvHklJSXcd5/r166SkpFi8REREREREckLLMeSR88wzz1i8X7RoEe7u7hw7dowdO3ZgMplYsGABdnZ2VK5cmd9++43+/fsb7efOnUutWrWYPHmyRR9eXl6cOHGCihUr3jMGLy8vZs6ciclkws/PjyNHjjBz5kyLcf4pODiYnj17AjB58mTmzJnDnj17aNu27V3HmjdvHl5eXsydOxeTyUSlSpX4/fffGTlyJGPGjMHKyjLXeOLECTZu3MiePXuoV68eAJ988gn+/v53HWfKlCmEhYXd895FRERERETuRDMh5JETGxtLz549KV++PM7Oznh7ewOQkJDA8ePHqV69OnZ2dkb7+vXrW1wfHR3NDz/8gKOjo/GqVKkSgMWyjrtp2LAhJpPJeN+oUSNiY2NJT0+/4zXVq1c3fnZwcMDZ2fmesxMAYmJiaNSokcV4TZo0ITU1lV9//TXL9jY2NtSpU8coq1SpEq6urncdZ9SoUSQnJxuvs2fP3jM2ERERERGRv9NMCHnkdOzYkXLlyrFgwQI8PT3JyMigatWq3LhxI1vXp6am0rFjR955551MdR4eHnkdrqFQoUIW700mExkZGQ9svJyytbXF1ta2oMMQEREREZGHmJIQ8kg5f/48x48fZ8GCBTRt2hSAHTt2GPV+fn589tlnXL9+3fhCvXfvXos+ateuzVdffYW3tzc2Nrn7T2T37t0W73/66Sd8fX2xtrbOVX934+/vz1dffYXZbDZmQ0RFReHk5ESZMmUyta9UqRJpaWns37/fWI5x/PhxLl26lOexiYiIiIiI/J2WY8gjpWjRohQrVoyPP/6YkydP8v333zNs2DCj/vnnnycjI4MBAwYQExPDt99+y/Tp0wGML/CvvPIKFy5coGfPnuzdu5e4uDi+/fZb+vTpc9flFH+XkJDAsGHDOH78OMuXL+f9999n8ODBeX/DwMsvv8zZs2d59dVX+eWXX/j6668ZO3Ysw4YNy7QfBNxKxLRt25YXX3yR3bt3s3//fkJCQrC3t38g8YmIiIiIiNymJIQ8UqysrFixYgX79++natWqDB06lHfffdeod3Z25ptvvuHQoUPUrFmTt956izFjxgAY+0R4enoSFRVFeno6Tz75JNWqVWPIkCG4urpm+aU+K0FBQfz111/Ur1+fV155hcGDBzNgwIC8v2GgdOnSbNiwgT179lCjRg0GDhxIv379ePvtt+94TXh4OJ6enjRv3pyuXbsyYMAASpQo8UDiExERERERuc1kNpvNBR2ESEFaunQpffr0ITk5WbMBciAlJQUXFxdqvDofa1s9NxEREZFH1f53gwo6BPmXu/3dIDk5GWdn57u21Z4Q8p+zZMkSypcvT+nSpYmOjmbkyJF0795dCQgREREREZEHTMsx5D/n3Llz9OrVC39/f4YOHUq3bt34+OOPs3VtQkKCxdGd/3wlJCTkebwDBw6843gDBw7M8/FEREREREQeFC3HEMmBtLQ04uPj71h/Pydq3ElSUhIpKSlZ1jk7OxfYXg5ajiEiIiLy36DlGHIvOVmOoSSEiORKTv6hERERERGRR1dOvhtoOYaIiIiIiIiI5AslIUREREREREQkXygJISIiIiIiIiL5QkkIEREREREREckXebuNv4j85zR7e7lOx3jEaAdsEREREXlQNBNCRERERERERPKFkhAiIiIiIiIiki+UhBAR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s3//foukAGAxm8Le3j5bm1GmpqZSp04dli5dmqnO3d09W/fk5OTEgQMHiIyM5LvvvmPMmDGMGzeOvXv34urqmu17+7usxvv7vhhZsbW1xdbWNlfjiYiIiIiIgJIQ8ogpVqwYnTt3Jjw8nF27dtGnT59MbXbv3m3x/qeffsLX1xdra2tq1apFeno6SUlJOUpewK3ZEenp6RZltWvX5vPPP6dEiRI4Ozvn/Ib+PxsbG1q1akWrVq0YO3Ysrq6ufP/993Tt2tWinb+/P2lpaezevdtYjnH+/HmOHz9O5cqVcz2+iIiIiIhIXtByDHnkhISEsHjxYmJiYujdu3em+oSEBIYNG8bx48dZvnw577//PoMHDwagYsWKBAYGEhQUxKpVqzh9+jR79uxhypQprF+//q7jent7c/jwYY4fP87//vc/bt68SWBgIMWLF6dTp05s376d06dPExkZyaBBg/j111+zdT/r1q1jzpw5HDp0iDNnzrBkyRIyMjLw8/PL1NbX15dOnTrRv39/duzYQXR0NL169aJ06dJ06tQpW+OJiIiIiIg8KEpCyCOnVatWeHh40KZNG2Nzyb8LCgrir7/+on79+rzyyisMHjyYAQMGGPXh4eEEBQXx2muv4efnR+fOndm7dy9ly5a967j9+/fHz8+PunXr4u7uTlRUFEWKFOHHH3+kbNmydO3aFX9/f/r168e1a9eyPTPC1dWVVatW0aJFC/z9/Zk/fz7Lly+nSpUqWbYPDw+nTp06dOjQgUaNGmE2m9mwYUOmJRgiIiIiIiL5zWS+10JwkYdMamoqpUuXJjw8PNNyhYCAAGrWrMmsWbMKJrhHSEpKCi4uLtR4dT7WtvYFHY78f/vfDSroEERERETkP+b2d4Pk5OR7/rFVe0LIIyMjI4P//e9/zJgxA1dXV55++umCDklERERERET+RkkIeWQkJCTg4+NDmTJliIiIwMZGv94iIiIiIiL/JvqWJo8Mb2/vex4zGRkZmT/BiIiIiIiISCZKQojIfflxYs/7On5URERERET+O3Q6hoiIiIiIiIjkCyUhRERERERERCRfKAkhIiIiIiIiIvlCSQgRERERERERyRfamFJE7kuzt5djbWtf0GEIsP/doIIOQURERETkrjQTQkRERERERETyhZIQIiIiIiIiIpIvlIQQERERERERkXyhJISIiIiIiIiI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LF68GIAxY8bw9ddfc/LkSY4ePcq6devuuGxg4MCBxMbG8vrrr3P8+HGWLVtGRESERZuRI0eyc+dOQkNDOXToELGxsXz99dc52pyxZ8+elCpVis6dOxMVFcWpU6f46quv2LVrlxHzkiVLCAsL4+jRo8TExLBixQrefvvtbPXv7e3N1q1bOXfuHBcvXjTK/f39adiwISNHjqRnz55ZzsgYP348W7du5eeffyY4OJjixYsbe0vc770PHTqU9evXM2nSJGJiYvj5559566232LVrF4MHD85WH19++SWLFi3ixIkTjB07lj179hjj+/r6kpCQwIoVK4iLi2POnDmsXr06W/2KiIiIiIg8SEpCPMRsbGwIDQ1l2rRpjBo1itGjRzNlyhT8/f1p27Yt69evx8fHB7i1DGHUqFFUr16dZs2aYW1tzYoVK7Lst2zZsnz11VesWbOGGjVqMH/+fCZPnmzRpnr16mzbto0TJ07QtGlTatWqxZgxY/D09Mx2/IULF+a7776jRIkStG/fnmrVqjF16lSsra0BaNOmDevWreO7776jXr16NGzYkJkzZ1KuXLls9T9jxgw2b96Ml5eXMUvgtn79+nHjxg369u2b5bVTp05l8ODB1KlTh3PnzvHNN98YJ5Hc7703btyYjRs3snHjRpo0aUJAQAA7d+5k69atxtKaewkLC2PFihVUr16dJUuWsHz5cipXrgzA008/zdChQwkNDaVmzZrs3LmT0aNHZ6tfERERERGRB0mnY8h/0oQJE/jyyy85fPiwRfnt0zFunwIid3Z7B1ydjlGwdDqGiIiIiBS0nJyOoZkQ8p+SmprKzz//zNy5c3n11VcLOhwREREREZH/FCUh5KG0dOlSHB0ds3xVqVLljteFhoZSp04dAgIC7rgU435s3779jnE5Ojrm+XgiIiIiIiIPEy3HkIfS5cuX+eOPP7KsK1SoULb3jchrf/31F7/99tsd6+/nNJF/Gy3H+HfQcgwRERERKWg5WY6hJISI5EpO/qEREREREZFHl/aEEBEREREREZF/HSUhRERERERERCRfKAkhIiIiIiIiIvlCSQgRERERERERyRdKQoiIiIiIiIhIvrAp6ABE5OHW7O3lOqIzn+lYThERERF5WOV6JsSnn35KkyZN8PT05MyZMwDMmjWLr7/+Os+CExEREREREZFHR66SEB9++CHD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dMf269at49SpUzRr1oyiRYuyYcMGMjIy8PPzw8nJieHDhzN06FAyMjJ4/PHHSU5OJioqCmdnZ3r37o2vry9Llizh22+/xcfHh08//ZS9e/caJ3ucPn2ajz/+mKeffhpPT0+OHz9ObGwsQUG39h8YM2YMHTp0oGzZsjz77LNYWVkRHR3Nzz//zMSJE7P/QYiIiIiIiOSATseQh5LJZGLDhg00a9aMPn36ULFiRXr06MGZM2coWbIkAO+99x5FixalcePGdOzYkTZt2tx1ZsJtNjY2zJkzh48++ghPT086dep0z2tee+01XnjhBXr37m0sj7g9AyMrrq6urFq1ihYtWuDv78/8+fNZvnw5VapUAWDChAmMHj2aKVOm4O/vT9u2bVm/fr2RZHjxxRfp2rUrzz33HA0aNOD8+fMWsyKKFCnCL7/8wjPPPEPFihUZMGAAr7zyCi+++CIAbdq0Yd26dXz33XfUq1ePhg0bMnPmTMqVK3fPexUREREREcktnY4hIrlyewdcnY5xf3Q6hoiIiIg87HJyOoZmQoiIiIiIiIhIvlASQiQbHB0d7/javn17QYcnIiIiIiLyUNDGlCLZcOjQoTvW/fMYTREREREREcma9oQQkVzJybovERERERF5dGlPCBERERERERH511ESQkRERERERETyhZIQIiIiIiIiIpIvlIQQERERERERkXyhJISIiIiIiIiI5Asd0Ski96XZ28uxtrUv6DAeOvvfDSroEERERERE8p1mQoiIiIiIiIhIvlASQkRERERERETyhZIQIiIiIiIiIpIvlIQQERERERERkXyhJIQUqPj4eEwmE4cOHSroUP4VTCYTa9asKegwREREREREHgglIeSh9m/90h4QEIDJZMJkMmFnZ0flypWZN2/ePa9LTEykXbt2eRZHZGQkJpOJS5cu5VmfIiIiIiIiuaUkhBSYGzduFHQID1T//v1JTEzk2LFjdO/enVdeeYXly5dn2fb2syhVqhS2trb5GaaIiIiIiEi+URJC7mjdunW4urqSnp4OwKFDhzCZTLzxxhtGm5CQEHr16gXAV199RZUqVbC1tcXb25sZM2ZY9Oft7c2ECRMICgrC2dmZAQMGZBozPT2dvn37UqlSJRISEu4an7e3NwBdunTBZDLh7e1NfHw8VlZW7Nu3z6LtrFmzKFeuHBkZGcbsgPXr11O9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ffs2NDU12ye4l9zdu3ehoaEB20n/haxC0/bIeFmdWOrf3iEQEREREbWbmmeDkpISqKurN1iWMyHoX6m0tBS5ubmIjY3FpEmT2jscIiIiIiIiagImIahdbd68WepVkk9+rKys6r0uNDQUDg4OcHNzq3cpxvM4fPhwvXGpqqq2eHtERERERESvAi7HoHZ17949XL9+vc5zcnJyMDY2buOIHnvw4AGuXr1a73m+eYLLMZ7E5RhERERE9CprznIMJiGI6Jk05xcNERERERG9vLgnBBERERERERG9cJiEICIiIiIiIqI2wSQEEREREREREbUJJiGIiIiIiIiIqE10aO8AiOjfzWXO96/c2zH4NgwiIiIiomfDmRBERERERERE1CaYhCAiIiIiIiKiNsEkBBERERERERG1CSYhiIiIiIiIiKhNMAlBRERERERERG2CSYhXTGBgILy8vOo9v2DBAvTp06fN4qFnl5KSAolEgjt37rR3KERERERERE3CJARJCQsLQ2JiYnuHITIxMcGKFSuafZ2bmxumTp3a4vEQERERERHRs+vQ3gHQi0VVVRWqqqrtHQYRERERERG9hDgTop39+OOPsLa2hpKSErS1teHh4YGysjJx2cTChQuhq6sLTU1NREZGorKyEjNnzoSWlha6du2KuLg4qfpycnIwePBgsb6QkBCUlpbW235mZiZ0dHSwePFiALWXY9TEsWzZMujr60NbWxuffPIJKioqxDLFxcUYPnw4lJSU0K1bN2zZsqXJMxgEQcCCBQtgZGQEBQUFGBgYYPLkyQAez2a4fPkypk2bBolEAolEAgC4efMmfH190aVLFygrK8Pa2hrff/+9VMypqalYuXKleN2lS5cQHx8PTU1NqfZ37twp1gsAp06dwqBBg6CmpgZ1dXU4ODjg+PHjjfbj8uXLGDFiBDp27AgVFRVYWVlhz549AP5v2cS+fftgZ2cHJSUlDB48GDdu3MDevXthYWEBdXV1vPfee7h//75YZ3l5OSZPnozOnTtDUVERr7/+OjIzM+uN4f79+xg6dCicnJzEJRrr16+HhYUFFBUVYW5ujtWrV4vlHz16hNDQUOjr60NRURHGxsZYtGhRo30lIiIiIiJ6VpwJ0Y6Ki4vh6+uLJUuWYOTIkbh37x4OHz4MQRAAAElJSejatSsOHTqE9PR0TJgwAUeOHIGLiwsy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Train Accuracy: 1.0\n", "Train Precision: 1.0\n", "Train Recall: 1.0\n", "Train F1 Score: 1.0\n", "Train ROC AUC: 1.0\n" ] } ], "source": [ "# Предсказание и оценка\n", "y_pred = model.predict(X_test_encoded)\n", "\n", "accuracy = accuracy_score(y_test, y_pred)\n", "precision = precision_score(y_test, y_pred)\n", "recall = recall_score(y_test, y_pred)\n", "f1 = f1_score(y_test, y_pred)\n", "roc_auc = roc_auc_score(y_test, y_pred)\n", "\n", "print(f\"Accuracy: {accuracy}\")\n", "print(f\"Precision: {precision}\")\n", "print(f\"Recall: {recall}\")\n", "print(f\"F1 Score: {f1}\")\n", "print(f\"ROC AUC: {roc_auc}\")\n", "\n", "# Кросс-валидация\n", "scores = cross_val_score(\n", " model, X_train_encoded, y_train_resampled, cv=5, scoring=\"accuracy\"\n", ")\n", "accuracy_cv = scores.mean()\n", "print(f\"Cross-validated Accuracy: {accuracy_cv}\")\n", "\n", "# Анализ важности признаков\n", "feature_importances = model.feature_importances_\n", "feature_names = X_train_encoded.columns\n", "\n", "importance_df = pd.DataFrame(\n", " {\"Feature\": feature_names, \"Importance\": feature_importances}\n", ")\n", "importance_df = importance_df.sort_values(by=\"Importance\", ascending=False)\n", "\n", "plt.figure(figsize=(10, 6))\n", "sns.barplot(x=\"Importance\", y=\"Feature\", data=importance_df)\n", "plt.title(\"Feature Importance\")\n", "plt.show()\n", "\n", "# Проверка на переобучение\n", "y_train_pred = model.predict(X_train_encoded)\n", "\n", "accuracy_train = accuracy_score(y_train_resampled, y_train_pred)\n", "precision_train = precision_score(y_train_resampled, y_train_pred)\n", "recall_train = recall_score(y_train_resampled, y_train_pred)\n", "f1_train = f1_score(y_train_resampled, y_train_pred)\n", "roc_auc_train = roc_auc_score(y_train_resampled, y_train_pred)\n", "\n", "print(f\"Train Accuracy: {accuracy_train}\")\n", "print(f\"Train Precision: {precision_train}\")\n", "print(f\"Train Recall: {recall_train}\")\n", "print(f\"Train F1 Score: {f1_train}\")\n", "print(f\"Train ROC AUC: {roc_auc_train}\")" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" } }, "nbformat": 4, "nbformat_minor": 2 }