поделала еще чут чут

This commit is contained in:
Полина Чубыкина 2024-10-12 08:24:02 +04:00
parent 020d37add0
commit 9d51e38ca9

View File

@ -92,9 +92,6 @@
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
"import seaborn as sns\n", "import seaborn as sns\n",
"\n", "\n",
"# Выбираем числовые столбцы\n",
"numeric_columns = ['relative_velocity', 'miss_distance', 'absolute_magnitude']\n",
"\n",
"# Выбираем столбцы для анализа\n", "# Выбираем столбцы для анализа\n",
"columns_to_check = ['relative_velocity', 'miss_distance', 'absolute_magnitude']\n", "columns_to_check = ['relative_velocity', 'miss_distance', 'absolute_magnitude']\n",
"\n", "\n",
@ -123,7 +120,7 @@
" \n", " \n",
"# Создаем гистограммы\n", "# Создаем гистограммы\n",
"plt.figure(figsize=(15, 10))\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", " plt.subplot(2, 3, i)\n",
" sns.histplot(df[col], kde=True)\n", " sns.histplot(df[col], kde=True)\n",
" plt.title(f'Histogram of {col}')\n", " plt.title(f'Histogram of {col}')\n",
@ -193,6 +190,7 @@
"# Выводим количество выбросов для каждого столбца\n", "# Выводим количество выбросов для каждого столбца\n",
"for col, count in outliers_count.items():\n", "for col, count in outliers_count.items():\n",
" print(f\"Количество выбросов в столбце '{col}': {count}\")\n", " print(f\"Количество выбросов в столбце '{col}': {count}\")\n",
" \n",
"# Выбираем столбцы для очистки\n", "# Выбираем столбцы для очистки\n",
"columns_to_clean = ['relative_velocity', 'absolute_magnitude']\n", "columns_to_clean = ['relative_velocity', 'absolute_magnitude']\n",
"\n", "\n",
@ -308,9 +306,6 @@
"import pandas as pd\n", "import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n", "from sklearn.model_selection import train_test_split\n",
"\n", "\n",
"# Предположим, что ваш датасет называется df\n",
"# df = pd.read_csv('your_dataset.csv') # Загрузите ваш датасет, если он в формате CSV\n",
"\n",
"# Разделение на признаки (X) и целевую переменную (y)\n", "# Разделение на признаки (X) и целевую переменную (y)\n",
"# Предположим, что 'hazardous' - это целевая переменная\n", "# Предположим, что 'hazardous' - это целевая переменная\n",
"X = df.drop('hazardous', axis=1)\n", "X = df.drop('hazardous', axis=1)\n",
@ -362,7 +357,6 @@
"from sklearn.model_selection import train_test_split\n", "from sklearn.model_selection import train_test_split\n",
"\n", "\n",
"# Разделение на признаки (X) и целевую переменную (y)\n", "# Разделение на признаки (X) и целевую переменную (y)\n",
"# Предположим, что 'hazardous' - это целевая переменная\n",
"X = df.drop('hazardous', axis=1)\n", "X = df.drop('hazardous', axis=1)\n",
"y = df['hazardous']\n", "y = df['hazardous']\n",
"\n", "\n",
@ -445,12 +439,12 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Проверяем на выбросы" "Проверяем на наличие выбросов"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 27, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -480,9 +474,6 @@
"\n", "\n",
"df = pd.read_csv(\"..//static//csv//diabetes.csv\")\n", "df = pd.read_csv(\"..//static//csv//diabetes.csv\")\n",
"\n", "\n",
"# Выбираем числовые столбцы\n",
"numeric_columns = ['Pregnancies', 'Glucose', 'BloodPressure']\n",
"\n",
"# Выбираем столбцы для анализа\n", "# Выбираем столбцы для анализа\n",
"columns_to_check = ['Pregnancies', 'Glucose', 'BloodPressure']\n", "columns_to_check = ['Pregnancies', 'Glucose', 'BloodPressure']\n",
"\n", "\n",
@ -511,7 +502,7 @@
" \n", " \n",
"# Создаем гистограммы\n", "# Создаем гистограммы\n",
"plt.figure(figsize=(15, 10))\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", " plt.subplot(2, 3, i)\n",
" sns.histplot(df[col], kde=True)\n", " sns.histplot(df[col], kde=True)\n",
" plt.title(f'Histogram of {col}')\n", " plt.title(f'Histogram of {col}')\n",
@ -528,7 +519,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 33, "execution_count": 2,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -580,9 +571,6 @@
"\n", "\n",
"df = df_cleaned\n", "df = df_cleaned\n",
"\n", "\n",
"# Выбираем столбцы для анализа\n",
"columns_to_check = ['BloodPressure']\n",
"\n",
"# Функция для подсчета выбросов\n", "# Функция для подсчета выбросов\n",
"def count_outliers(df, columns):\n", "def count_outliers(df, columns):\n",
" outliers_count = {}\n", " outliers_count = {}\n",
@ -600,7 +588,7 @@
" return outliers_count\n", " return outliers_count\n",
"\n", "\n",
"# Подсчитываем выбросы\n", "# Подсчитываем выбросы\n",
"outliers_count = count_outliers(df, columns_to_check)\n", "outliers_count = count_outliers(df, columns_to_clean)\n",
"\n", "\n",
"# Выводим количество выбросов для каждого столбца\n", "# Выводим количество выбросов для каждого столбца\n",
"for col, count in outliers_count.items():\n", "for col, count in outliers_count.items():\n",
@ -704,6 +692,13 @@
"print(\"Размер тестовой выборки:\", X_test.shape[0])" "print(\"Размер тестовой выборки:\", X_test.shape[0])"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Разбивка на выборки сделана, проведем проверку на сбалансированность выборок"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 42, "execution_count": 42,
@ -808,9 +803,6 @@
"from sklearn.model_selection import train_test_split\n", "from sklearn.model_selection import train_test_split\n",
"from imblearn.over_sampling import SMOTE\n", "from imblearn.over_sampling import SMOTE\n",
"\n", "\n",
"# Предположим, что ваш датасет уже загружен в DataFrame df\n",
"# df = pd.read_csv('your_dataset.csv')\n",
"\n",
"# Разделение на признаки (X) и целевую переменную (y)\n", "# Разделение на признаки (X) и целевую переменную (y)\n",
"X = df.drop('Outcome', axis=1) # Признаки\n", "X = df.drop('Outcome', axis=1) # Признаки\n",
"y = df['Outcome'] # Целевая переменная\n", "y = df['Outcome'] # Целевая переменная\n",
@ -1186,7 +1178,6 @@
"from sklearn.model_selection import train_test_split\n", "from sklearn.model_selection import train_test_split\n",
"\n", "\n",
"# Разделение на признаки (X) и целевую переменную (y)\n", "# Разделение на признаки (X) и целевую переменную (y)\n",
"# Предположим, что 'Total' - это целевая переменная\n",
"X = df.drop(columns=['Total'])\n", "X = df.drop(columns=['Total'])\n",
"y = df['Total']\n", "y = df['Total']\n",
"\n", "\n",
@ -1253,7 +1244,6 @@
"from sklearn.model_selection import train_test_split\n", "from sklearn.model_selection import train_test_split\n",
"\n", "\n",
"# Разделение на признаки (X) и целевую переменную (y)\n", "# Разделение на признаки (X) и целевую переменную (y)\n",
"# Предположим, что 'Total' - это целевая переменная\n",
"X = df.drop(columns=['Total'])\n", "X = df.drop(columns=['Total'])\n",
"y = df['Total']\n", "y = df['Total']\n",
"\n", "\n",