From 9d51e38ca925e84803d5d00a80b7bacf01d5c65f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D0=B8=D0=BD=D0=B0=20=D0=A7=D1=83=D0=B1?= =?UTF-8?q?=D1=8B=D0=BA=D0=B8=D0=BD=D0=B0?= Date: Sat, 12 Oct 2024 08:24:02 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=B5=D1=89=D0=B5=20=D1=87=D1=83=D1=82=20=D1=87=D1=83?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab_2/lab2.ipynb | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/lab_2/lab2.ipynb b/lab_2/lab2.ipynb index 940ee51..6395323 100644 --- a/lab_2/lab2.ipynb +++ b/lab_2/lab2.ipynb @@ -92,9 +92,6 @@ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", - "# Выбираем числовые столбцы\n", - "numeric_columns = ['relative_velocity', 'miss_distance', 'absolute_magnitude']\n", - "\n", "# Выбираем столбцы для анализа\n", "columns_to_check = ['relative_velocity', 'miss_distance', 'absolute_magnitude']\n", "\n", @@ -123,7 +120,7 @@ " \n", "# Создаем гистограммы\n", "plt.figure(figsize=(15, 10))\n", - "for i, col in enumerate(numeric_columns, 1):\n", + "for i, col in enumerate(columns_to_check, 1):\n", " plt.subplot(2, 3, i)\n", " sns.histplot(df[col], kde=True)\n", " plt.title(f'Histogram of {col}')\n", @@ -193,6 +190,7 @@ "# Выводим количество выбросов для каждого столбца\n", "for col, count in outliers_count.items():\n", " print(f\"Количество выбросов в столбце '{col}': {count}\")\n", + " \n", "# Выбираем столбцы для очистки\n", "columns_to_clean = ['relative_velocity', 'absolute_magnitude']\n", "\n", @@ -308,9 +306,6 @@ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "\n", - "# Предположим, что ваш датасет называется df\n", - "# df = pd.read_csv('your_dataset.csv') # Загрузите ваш датасет, если он в формате CSV\n", - "\n", "# Разделение на признаки (X) и целевую переменную (y)\n", "# Предположим, что 'hazardous' - это целевая переменная\n", "X = df.drop('hazardous', axis=1)\n", @@ -362,7 +357,6 @@ "from sklearn.model_selection import train_test_split\n", "\n", "# Разделение на признаки (X) и целевую переменную (y)\n", - "# Предположим, что 'hazardous' - это целевая переменная\n", "X = df.drop('hazardous', axis=1)\n", "y = df['hazardous']\n", "\n", @@ -445,12 +439,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Проверяем на выбросы" + "Проверяем на наличие выбросов" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -480,9 +474,6 @@ "\n", "df = pd.read_csv(\"..//static//csv//diabetes.csv\")\n", "\n", - "# Выбираем числовые столбцы\n", - "numeric_columns = ['Pregnancies', 'Glucose', 'BloodPressure']\n", - "\n", "# Выбираем столбцы для анализа\n", "columns_to_check = ['Pregnancies', 'Glucose', 'BloodPressure']\n", "\n", @@ -511,7 +502,7 @@ " \n", "# Создаем гистограммы\n", "plt.figure(figsize=(15, 10))\n", - "for i, col in enumerate(numeric_columns, 1):\n", + "for i, col in enumerate(columns_to_check, 1):\n", " plt.subplot(2, 3, i)\n", " sns.histplot(df[col], kde=True)\n", " plt.title(f'Histogram of {col}')\n", @@ -528,7 +519,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -580,9 +571,6 @@ "\n", "df = df_cleaned\n", "\n", - "# Выбираем столбцы для анализа\n", - "columns_to_check = ['BloodPressure']\n", - "\n", "# Функция для подсчета выбросов\n", "def count_outliers(df, columns):\n", " outliers_count = {}\n", @@ -600,7 +588,7 @@ " return outliers_count\n", "\n", "# Подсчитываем выбросы\n", - "outliers_count = count_outliers(df, columns_to_check)\n", + "outliers_count = count_outliers(df, columns_to_clean)\n", "\n", "# Выводим количество выбросов для каждого столбца\n", "for col, count in outliers_count.items():\n", @@ -704,6 +692,13 @@ "print(\"Размер тестовой выборки:\", X_test.shape[0])" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Разбивка на выборки сделана, проведем проверку на сбалансированность выборок" + ] + }, { "cell_type": "code", "execution_count": 42, @@ -808,9 +803,6 @@ "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import SMOTE\n", "\n", - "# Предположим, что ваш датасет уже загружен в DataFrame df\n", - "# df = pd.read_csv('your_dataset.csv')\n", - "\n", "# Разделение на признаки (X) и целевую переменную (y)\n", "X = df.drop('Outcome', axis=1) # Признаки\n", "y = df['Outcome'] # Целевая переменная\n", @@ -1186,7 +1178,6 @@ "from sklearn.model_selection import train_test_split\n", "\n", "# Разделение на признаки (X) и целевую переменную (y)\n", - "# Предположим, что 'Total' - это целевая переменная\n", "X = df.drop(columns=['Total'])\n", "y = df['Total']\n", "\n", @@ -1253,7 +1244,6 @@ "from sklearn.model_selection import train_test_split\n", "\n", "# Разделение на признаки (X) и целевую переменную (y)\n", - "# Предположим, что 'Total' - это целевая переменная\n", "X = df.drop(columns=['Total'])\n", "y = df['Total']\n", "\n",