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",