diff --git a/lab_2/laba2.ipynb b/lab_2/laba2.ipynb index 52af7a3..f52ebba 100644 --- a/lab_2/laba2.ipynb +++ b/lab_2/laba2.ipynb @@ -630,6 +630,71 @@ "plt.title('Распределение классов hazardous в тренировачной выборке после ADASYN')\n", "plt.show()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "P.S. можно было использовать ещё SMOTE, SVM-SMOTE, K-means SMOTE, SMOTE-N, SMOTE-NC, RandomOverSampler." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "проведём также балансировку данных методом андерсемплинга. Этот метод помогает сбалансировать выборку, уменьшая количество экземпляров класса большинства, чтобы привести его в соответствие с классом меньшинства." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Обучающая выборка после undersampling: (10608, 6)\n", + "hazardous\n", + "False 5304\n", + "True 5304\n", + "Name: count, dtype: int64\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from imblearn.under_sampling import RandomUnderSampler\n", + "\n", + "rus = RandomUnderSampler()# Создание экземпляра RandomUnderSampler\n", + "\n", + "# Применение RandomUnderSampler\n", + "X_resampled, y_resampled = rus.fit_resample(df_train.drop(columns=['hazardous']), df_train['hazardous'])\n", + "\n", + "# Создание нового DataFrame\n", + "df_train_undersampled = pd.DataFrame(X_resampled)\n", + "df_train_undersampled['hazardous'] = y_resampled # Добавление целевой переменной\n", + "\n", + "# Вывод информации о новой выборке\n", + "print(\"Обучающая выборка после undersampling: \", df_train_undersampled.shape)\n", + "print(df_train_undersampled['hazardous'].value_counts())\n", + "\n", + "# Визуализация распределения классов\n", + "hazardous_counts = df_train_undersampled['hazardous'].value_counts()\n", + "plt.figure(figsize=(2, 2))\n", + "plt.pie(hazardous_counts, labels=hazardous_counts.index, autopct='%1.1f%%', startangle=90)\n", + "plt.title('Распределение классов hazardous в тренировочной выборке после Undersampling')\n", + "plt.show()" + ] } ], "metadata": {