2024-10-19 17:27:50 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"## Лабораторная работа №2\n",
"\n",
"## Общие данные\n",
"\n",
"Типы пропущенных данных:\n",
"\n",
"None - представление пустых данных в Python \n",
"NaN - представление пустых данных в Pandas \n",
"' ' - пустая строка\n"
2024-10-19 17:27:50 +04:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"## 1 Датасет: NASA - Nearest Earth Objects \n",
"https://www.kaggle.com/datasets/sameepvani/nasa-nearest-earth-objects\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"Перевод контекста с о страницы на Kaggle: \n",
" В космическом пространстве существует бесконечное количество объектов. Некоторые из них находятся ближе, чем мы думаем. Несмотря на то, что мы можем думать, что расстояние в 70 000 км потенциально не может причинить нам вреда, по астрономическим меркам это очень небольшое расстояние, которое может нарушить многие природные явления. Таким образом, эти объекты/астероиды могут оказаться опасными. Следовательно, разумно знать, что нас окружает и что из этого может причинить нам вред. Таким образом, этот набор данных составляет список сертифицированных Н А С А астероидов, которые классифицируются как ближайшие к Земле объекты.\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"- По описаню можно понять, что объектами исследования являютя объекты, которые находятся в близи Земли\n",
"- Атрибуты обьекта: id, name, est_diameter_min, est_diameter_max, relative_velocity, miss_distance, orbiting_body, sentry_object, absolute_magnitude, hazardous\n",
"- В описании говорится о возможной опасности объектов, поэтому можно сделать вывод, что цель данного датасета научится определять опасность околоземных объектов\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"## 2 Датасет: Indicators of Heart Disease \n",
"https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"Перевод контекста с о страницы на Kaggle: \n",
" По данным Всемирной организации здравоохранения (В О З ), инсульт является второй по значимости причиной смертности во всем мире, на е г о долю приходится примерно 11% от общего числа смертей. Этот набор данных используется для прогнозирования вероятности инсульта у пациента на основе таких входных параметров, как пол, возраст, различные заболевания и статус курильщика. Каждая строка данных содержит соответствующую информацию о пациенте.\n",
"- Из этого описания очевидно что объектами иследования являются реальные пациенты.\n",
"- Атрибуты объектов: id, gender, age, hypertension, heart_disease, ever_married, work_type, Residence_type, avg_glucose_level, bmi, smoking_status, stroke\n",
"- Очевидная цель этого датасета - это научиться определять будет у человека сердечный приступ или нет.\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"## 3 Датасет: Pima Indians Diabetes Database\n",
"https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-database\n",
2024-10-19 17:27:50 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"Перевод контекста с о страницы на Kaggle: \n",
" Этот набор данных изначально был получен из Национального института диабета, заболеваний пищеварительной системы и почек. Целью набора данных является диагностическое прогнозирование наличия или отсутствия у пациента диабета на основе определенных диагностических измерений, включенных в набор данных. Н а выбор этих случаев из более крупной базы данных налагалось несколько ограничений. В частности, все пациенты здесь — женщины в возрасте не менее 21 года индейского происхождения пима.\n",
"- объект иследования - женьщины индейци пима\n",
"- очевидно цель датасета это предсказание диабета.\n",
"- атрибуты: Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age, Outcome"
2024-10-19 17:27:50 +04:00
]
},
{
"cell_type": "code",
2024-11-04 20:29:09 +04:00
"execution_count": 1,
2024-10-19 17:27:50 +04:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-11-19 02:19:09 +04:00
"колонки: id, name, est_diameter_min, est_diameter_max, relative_velocity, miss_distance, orbiting_body, sentry_object, absolute_magnitude, hazardous\n",
"колонки: id, gender, age, hypertension, heart_disease, ever_married, work_type, Residence_type, avg_glucose_level, bmi, smoking_status, stroke\n",
"колонки: Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age, Outcome\n"
2024-10-19 17:27:50 +04:00
]
}
],
"source": [
"import pandas as pd\n",
"\n",
2024-11-19 02:19:09 +04:00
"neo = pd.read_csv(\"..//static//csv//neo_v2.csv\", sep=\",\")\n",
"healthcare = pd.read_csv(\"..//static//csv//healthcare-dataset-stroke-data.csv\", sep=\",\")\n",
"diabetes = pd.read_csv(\"..//static//csv//diabetes.csv\", sep=\",\")\n",
"\n",
"print('колонки околоземных обьектов: ' + ', '.join(neo.columns))\n",
"print('колонки пациентов: ' + ', '.join(healthcare.columns))\n",
"print('колонки индейцев: ' + ', '.join(diabetes.columns))"
2024-10-19 17:27:50 +04:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"#Проверим пустые занчения"
2024-10-19 17:27:50 +04:00
]
},
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 7,
2024-10-19 17:27:50 +04:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-11-19 02:19:09 +04:00
"Околоземные обьекты\n",
2024-10-19 17:27:50 +04:00
"id 0\n",
"name 0\n",
"est_diameter_min 0\n",
"est_diameter_max 0\n",
"relative_velocity 0\n",
"miss_distance 0\n",
"orbiting_body 0\n",
"sentry_object 0\n",
"absolute_magnitude 0\n",
"hazardous 0\n",
2024-11-19 02:19:09 +04:00
"dtype: int64\n",
2024-10-19 17:27:50 +04:00
"\n",
"id False\n",
"name False\n",
"est_diameter_min False\n",
"est_diameter_max False\n",
"relative_velocity False\n",
"miss_distance False\n",
"orbiting_body False\n",
"sentry_object False\n",
"absolute_magnitude False\n",
"hazardous False\n",
2024-11-19 02:19:09 +04:00
"dtype: bool\n",
"\n",
"Пациенты\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 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",
"\n",
"Индейцы\n",
"Pregnancies 0\n",
"Glucose 0\n",
"BloodPressure 0\n",
"SkinThickness 0\n",
"Insulin 0\n",
"BMI 0\n",
"DiabetesPedigreeFunction 0\n",
"Age 0\n",
"Outcome 0\n",
"dtype: int64\n",
"\n",
"Pregnancies False\n",
"Glucose False\n",
"BloodPressure False\n",
"SkinThickness False\n",
"Insulin False\n",
"BMI False\n",
"DiabetesPedigreeFunction False\n",
"Age False\n",
"Outcome False\n",
"dtype: bool\n",
2024-10-19 17:27:50 +04:00
"\n"
]
}
],
"source": [
2024-11-19 02:19:09 +04:00
"# Околоземные обьекты\n",
"print(\"Околоземные обьекты\")\n",
"# Количество пустых значений признаков\n",
"print(neo.isnull().sum())\n",
"\n",
"print()\n",
"\n",
"# Есть ли пустые значения признаков\n",
"print(neo.isnull().any())\n",
"\n",
"print()\n",
"\n",
"# Процент пустых значений признаков\n",
"for i in neo.columns:\n",
" null_rate = neo[i].isnull().sum() / len(neo) * 100\n",
" if null_rate > 0:\n",
" print(f\"{i} процент пустых значений: %{null_rate:.2f}\\n\")\n",
"\n",
"# Пациенты\n",
"print(\"Пациенты\")\n",
"# Количество пустых значений признаков\n",
"print(healthcare.isnull().sum())\n",
"\n",
"print()\n",
2024-10-19 17:27:50 +04:00
"\n",
"# Есть ли пустые значения признаков\n",
2024-11-19 02:19:09 +04:00
"print(healthcare.isnull().any())\n",
"\n",
"print()\n",
"\n",
"# Процент пустых значений признаков\n",
"for i in healthcare.columns:\n",
" null_rate = healthcare[i].isnull().sum() / len(healthcare) * 100\n",
" if null_rate > 0:\n",
" print(f\"{i} процент пустых значений: %{null_rate:.2f}\\n\")\n",
"\n",
"\n",
"# Индейцы\n",
"print(\"Индейцы\")\n",
"# Количество пустых значений признаков\n",
"print(diabetes.isnull().sum())\n",
"\n",
"print()\n",
"\n",
"# Есть ли пустые значения признаков\n",
"print(diabetes.isnull().any())\n",
"\n",
"print()\n",
"\n",
"# Процент пустых значений признаков\n",
"for i in diabetes.columns:\n",
" null_rate = diabetes[i].isnull().sum() / len(diabetes) * 100\n",
" if null_rate > 0:\n",
" print(f\"{i} процент пустых значений: %{null_rate:.2f}\\n\")"
2024-10-19 17:27:50 +04:00
]
},
{
2024-11-04 20:29:09 +04:00
"cell_type": "markdown",
2024-10-19 17:27:50 +04:00
"metadata": {},
2024-11-04 20:29:09 +04:00
"source": [
2024-11-19 02:19:09 +04:00
"После этого видно, что в атрибуде bmi датасета Indicators of Heart Disease есть пустые значения, заполним значением Unknown\n"
2024-11-04 20:29:09 +04:00
]
2024-10-19 17:27:50 +04:00
},
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 11,
2024-10-19 17:27:50 +04:00
"metadata": {},
2024-11-19 02:19:09 +04:00
"outputs": [],
2024-11-04 20:29:09 +04:00
"source": [
2024-11-19 02:19:09 +04:00
"healthcare['bmi'] = healthcare['bmi'].fillna('Unknown')"
2024-11-04 20:29:09 +04:00
]
2024-10-19 17:27:50 +04:00
},
2024-11-14 21:22:58 +04:00
{
"cell_type": "markdown",
"metadata": {},
2024-11-16 17:29:15 +04:00
"source": [
2024-11-19 02:19:09 +04:00
"Проверим датасет по числовым данным, для выявления аномальных распределений"
2024-11-16 17:29:15 +04:00
]
2024-11-14 21:22:58 +04:00
},
2024-10-19 17:27:50 +04:00
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 12,
2024-10-19 17:27:50 +04:00
"metadata": {},
2024-11-16 17:29:15 +04:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-11-19 02:19:09 +04:00
" id est_diameter_min est_diameter_max relative_velocity \\\n",
"count 9.083600e+04 90836.000000 90836.000000 90836.000000 \n",
"mean 1.438288e+07 0.127432 0.284947 48066.918918 \n",
"std 2.087202e+07 0.298511 0.667491 25293.296961 \n",
"min 2.000433e+06 0.000609 0.001362 203.346433 \n",
"25% 3.448110e+06 0.019256 0.043057 28619.020645 \n",
"50% 3.748362e+06 0.048368 0.108153 44190.117890 \n",
"75% 3.884023e+06 0.143402 0.320656 62923.604633 \n",
"max 5.427591e+07 37.892650 84.730541 236990.128088 \n",
2024-11-16 17:29:15 +04:00
"\n",
2024-11-19 02:19:09 +04:00
" miss_distance absolute_magnitude \n",
"count 9.083600e+04 90836.000000 \n",
"mean 3.706655e+07 23.527103 \n",
"std 2.235204e+07 2.894086 \n",
"min 6.745533e+03 9.230000 \n",
"25% 1.721082e+07 21.340000 \n",
"50% 3.784658e+07 23.700000 \n",
"75% 5.654900e+07 25.700000 \n",
"max 7.479865e+07 33.200000 \n",
" id age hypertension heart_disease \\\n",
"count 5110.000000 5110.000000 5110.000000 5110.000000 \n",
"mean 36517.829354 43.226614 0.097456 0.054012 \n",
"std 21161.721625 22.612647 0.296607 0.226063 \n",
"min 67.000000 0.080000 0.000000 0.000000 \n",
"25% 17741.250000 25.000000 0.000000 0.000000 \n",
"50% 36932.000000 45.000000 0.000000 0.000000 \n",
"75% 54682.000000 61.000000 0.000000 0.000000 \n",
"max 72940.000000 82.000000 1.000000 1.000000 \n",
2024-11-16 17:29:15 +04:00
"\n",
2024-11-19 02:19:09 +04:00
" avg_glucose_level bmi stroke \n",
"count 5110.000000 5110.000000 5110.000000 \n",
"mean 106.147677 28.893237 0.048728 \n",
"std 45.283560 7.698018 0.215320 \n",
"min 55.120000 10.300000 0.000000 \n",
"25% 77.245000 23.800000 0.000000 \n",
"50% 91.885000 28.400000 0.000000 \n",
"75% 114.090000 32.800000 0.000000 \n",
"max 271.740000 97.600000 1.000000 \n",
" Pregnancies Glucose BloodPressure SkinThickness Insulin \\\n",
"count 768.000000 768.000000 768.000000 768.000000 768.000000 \n",
"mean 3.845052 120.894531 69.105469 20.536458 79.799479 \n",
"std 3.369578 31.972618 19.355807 15.952218 115.244002 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 1.000000 99.000000 62.000000 0.000000 0.000000 \n",
"50% 3.000000 117.000000 72.000000 23.000000 30.500000 \n",
"75% 6.000000 140.250000 80.000000 32.000000 127.250000 \n",
"max 17.000000 199.000000 122.000000 99.000000 846.000000 \n",
2024-11-16 17:29:15 +04:00
"\n",
2024-11-19 02:19:09 +04:00
" BMI DiabetesPedigreeFunction Age Outcome \n",
"count 768.000000 768.000000 768.000000 768.000000 \n",
"mean 31.992578 0.471876 33.240885 0.348958 \n",
"std 7.884160 0.331329 11.760232 0.476951 \n",
"min 0.000000 0.078000 21.000000 0.000000 \n",
"25% 27.300000 0.243750 24.000000 0.000000 \n",
"50% 32.000000 0.372500 29.000000 0.000000 \n",
"75% 36.600000 0.626250 41.000000 1.000000 \n",
"max 67.100000 2.420000 81.000000 1.000000 \n"
2024-11-16 17:29:15 +04:00
]
}
],
2024-11-14 21:22:58 +04:00
"source": [
2024-11-19 02:19:09 +04:00
"print(neo.describe())\n",
"print(healthcare.describe())\n",
"print(diabetes.describe())"
2024-11-16 17:29:15 +04:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"Аномальное рапределение будем искать по z-индексую. Z-индекс показывает, насколько далеко значение находится от среднего в стандартных отклонениях. Значения Z-индекса больше 3 или меньше -3 обычно считаются аномальными."
2024-11-16 17:29:15 +04:00
]
},
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 18,
2024-11-16 17:29:15 +04:00
"metadata": {},
"outputs": [
{
2024-11-19 02:19:09 +04:00
"name": "stdout",
"output_type": "stream",
"text": [
"Аномалии в наборе данных Neo:\n",
"В атрибуте 'est_diameter_min' обнаружены аномалии: [1.1982708007, 1.0293308202, 1.5085335612, 1.0246014747, 1.4078454339, 1.5507970872, 1.5224918504, 2.8350124902, 1.4208720673, 1.1818299089, 2.2727673228, 1.8053232555, 1.6693791177, 1.7240703244, 1.1709948272, 1.4809997207, 1.332155667, 1.0878148336, 4.5767266723, 1.2780709882, 1.2093582639, 1.5651464359, 1.1982708007, 2.2727673228, 1.4208720673, 1.332155667, 1.0340819954, 1.1080388213, 4.5767266723, 1.4208720673, 2.2832579402, 2.3689449936, 1.1390819672, 2.8090209395, 1.214940408, 2.0443487103, 1.0581688593, 2.9549829311, 1.5507970872, 1.5224918504, 1.0828167784, 2.6825941712, 1.2839702958, 1.133848361, 3.4084346887, 1.1818299089, 2.091967709, 1.0878148336, 1.6089960451, 1.0679599752, 2.3689449936, 1.9344387205, 1.3018321019, 1.6389095149, 1.6464743776, 1.4208720673, 2.1016237932, 1.7805532918, 3.1956188672, 1.0340819954, 1.5651464359, 1.1872849879, 1.2261821132, 1.1080388213, 4.1740243339, 1.0878148336, 1.7642290811, 1.2721987854, 1.2780709882, 1.85590173, 3.0658787593, 1.9344387205, 1.6617090174, 1.7161489408, 2.9549829311, 1.2663535629, 3.4399725466, 1.4013769717, 1.1818299089, 1.2318419127, 1.3694777373, 1.2958507267, 4.1740243339, 1.8904055193, 1.6848256925, 1.5224918504, 1.4208720673, 1.038855101, 1.128638801, 1.1982708007, 1.5016024791, 1.2547435637, 2.091967709, 1.0878148336, 1.1709948272, 1.3885290704, 1.1496217629, 1.4208720673, 1.3694777373, 1.1818299089, 2.0349557812, 1.128638801, 1.1496217629, 1.8991312347, 1.1709948272, 2.9549829311, 1.4208720673, 1.0878148336, 1.4208720673, 1.2721987854, 1.2780709882, 1.3260349677, 1.5651464359, 1.1602590821, 1.2093582639, 1.7723723926, 2.9549829311, 1.1496217629, 1.5085335612, 1.0581688593, 1.2605351968, 1.3383046182, 1.0828167784, 1.0828167784, 3.4084346887, 2.1905591097, 2.7450798165, 1.5507970872, 1.5224918504, 1.332155667, 1.4208720673, 1.1602590821, 1.4340192346, 2.091967709, 1.2605351968, 1.1182913782, 1.2721987854, 1.2038017674, 1.1872849879, 1.7004151927, 1.6693791177, 1.1982708007, 1.5085335612, 1.3018321019, 1.0246014747, 1.8991312347, 1.0293308202, 1.6313794097, 1.7805532918, 2.4578477463, 1.5224918504, 1.4013769717, 1.0878148336, 1.0293308202, 1.2721987854, 2.6336313095, 1.0293308202, 1.2432400055, 1.2780709882, 1.0246014747, 2.3043846658, 1.1763998937, 1.4340192346, 1.6770846216, 1.6464743776, 3.602093458, 1.3018321019, 1.2261821132, 1.6089960451, 1.2958507267, 2.6825941712, 2.3689449936, 2.3043846658, 2.1406958967, 1.0630531449, 1.0581688593, 1.4606796427, 1.0878148336, 1.4208720673, 1.2898968334, 1.2721987854, 1.0728894545, 2.091967709, 2.9549829311, 1.7723723926, 1.4809997207, 1.4208720673, 1.4809997207, 1.2038017674, 1.4340192346, 1.3569222899, 1.1602590821, 2.4465549617, 1.3444819516, 3.1956188672, 1.2205483181, 23.0438466577, 1.4340192346, 2.1210698788, 3.0517923259, 1.5507970872, 1.1182913782, 1.0878148336, 1.3444819516, 1.0778416872, 1.4013769717, 2.5383702936, 1.4274305148, 1.2780709882, 1.7642290811, 1.8904055193, 1.0293308202, 1.3506877983, 1.7082639526, 2.1308602925, 1.1029478453, 3.4084346887, 1.0828167784, 3.1956188672, 1.5651464359, 2.2727673228, 1.2375278366, 1.0246014747, 1.5942446807, 1.0728894545, 2.091967709, 1.1982708007, 1.2547435637, 1.6089960451, 1.5507970872, 1.5224918504, 1.332155667, 1.133848361, 1.6389095149, 2.1804944048, 1.0728894545, 1.0340819954, 1.2547435637, 1.2093582639, 2.9549829311, 1.3018321019, 2.0349557812, 2.3257068746, 1.6693791177, 1.474195145, 1.0828167784, 1.7805532918, 2.1016237932, 1.4208720673, 1.0878148336, 1.0728894545, 8.6408203645, 1.4013769717, 2.1804944048, 1.0728894545, 1.4274305148, 2.3257068746, 1.5085335612, 2.3689449936, 1.0340819954, 2.1905591097, 1.4606796427, 1.5507970872, 1.5224918504, 2.4019003012, 1.6313794097, 1.2958507267, 1.2605351968, 1.4208720673, 1.6926024946, 1.1872849879, 2.091967709, 1.9794975866, 4.6190746028, 1.3885290704, 1.0340819954, 1.1872849879, 3.9678475407, 1.4208720673, 1.0679599752, 2.3689449936, 1.1496217629, 1.1982708007, 1.6389095149, 1.6313794097, 1.7082639526, 2.35806068, 5.230641758,
"В атрибуте 'est_diameter_max' обнаружены аномалии: [2.6794149658, 2.3016536853, 3.3731835891, 2.2910785472, 3.1480380919, 3.4676877062, 3.4043952726, 6.3392806452, 3.1771665298, 2.6426520142, 5.0820622309, 4.0368255207, 3.7328451875, 3.8551384433, 2.6184240349, 3.3116160501, 2.978790628, 2.4324279148, 10.2338719537, 2.8578536096, 2.7042072872, 3.4997738255, 2.6794149658, 5.0820622309, 3.1771665298, 2.978790628, 2.312277636, 2.4776501261, 10.2338719537, 3.1771665298, 5.1055199644, 5.2971220406, 2.5470647106, 6.2811617709, 2.7166893409, 4.5713026859, 2.3661375011, 6.6075427063, 3.4676877062, 3.4043952726, 2.4212519237, 5.9984629228, 2.8710448625, 2.5353620113, 7.6214916608, 2.6426520142, 4.6777820041, 2.4324279148, 3.5978245324, 2.3880311019, 5.2971220406, 4.3255364773, 2.9109850751, 3.6647130844, 3.6816286314, 3.1771665298, 4.6993736648, 3.9814381981, 7.1456210173, 2.312277636, 3.4997738255, 2.6548499417, 2.7418265579, 2.4776501261, 9.3334021504, 2.4324279148, 3.9449361533, 2.844722965, 2.8578536096, 4.1499224279, 6.8555133165, 4.3255364773, 3.7156943217, 3.8374256911, 6.6075427063, 2.8316526503, 7.6920124549, 3.1335741707, 2.6426520142, 2.7544822542, 3.0622453143, 2.8976103136, 9.3334021504, 4.2270752462, 3.7673847787, 3.4043952726, 3.1771665298, 2.3229506246, 2.523713081, 2.6794149658, 3.3576852183, 2.8056919027, 4.6777820041, 2.4324279148, 2.6184240349, 3.1048453901, 2.5706324102, 3.1771665298, 3.0622453143, 2.6426520142, 4.5502994579, 2.523713081, 2.5706324102, 4.246586539, 2.6184240349, 6.6075427063, 3.1771665298, 2.4324279148, 3.1771665298, 2.844722965, 2.8578536096, 2.9651043282, 3.4997738255, 2.5944181791, 2.7042072872, 3.9631451512, 6.6075427063, 2.5706324102, 3.3731835891, 2.3661375011, 2.8186423881, 2.9925401008, 2.4212519237, 2.4212519237, 7.6214916608, 4.898239078, 6.1381850734, 3.4676877062, 3.4043952726, 2.978790628, 3.1771665298, 2.5944181791, 3.2065644897, 4.6777820041, 2.8186423881, 2.5005755404, 2.844722965, 2.6917825833, 2.6548499417, 3.8022439609, 3.7328451875, 2.6794149658, 3.3731835891, 2.9109850751, 2.2910785472, 4.246586539, 2.3016536853, 3.6478752572, 3.9814381981, 5.4959146391, 3.4043952726, 3.1335741707, 2.4324279148, 2.3016536853, 2.844722965, 5.8889786358, 2.3016536853, 2.7799691647, 2.8578536096, 2.2910785472, 5.152760759, 2.6305101311, 3.2065644897, 3.750075218, 3.6816286314, 8.0545258335, 2.9109850751, 2.7418265579, 3.5978245324, 2.8976103136, 5.9984629228, 5.2971220406, 5.152760759, 4.7867415442, 2.3770590956, 2.3661375011, 3.2661789745, 2.4324279148, 3.1771665298, 2.8842970035, 2.844722965, 2.3990537526, 4.6777820041, 6.6075427063, 3.9631451512, 3.3116160501, 3.1771665298, 3.3116160501, 2.6917825833, 3.2065644897, 3.0341704805, 2.5944181791, 5.4706632051, 3.0063530383, 7.1456210173, 2.7292290091, 51.5276075896, 3.2065644897, 4.7428564339, 6.824015094, 3.4676877062, 2.5005755404, 2.4324279148, 3.0063530383, 2.4101272816, 3.1335741707, 5.6759685287, 3.1918316641, 2.8578536096, 3.9449361533, 4.2270752462, 2.3016536853, 3.0202297334, 3.8197943216, 4.7647484646, 2.4662663578, 7.6214916608, 2.4212519237, 7.1456210173, 3.4997738255, 5.0820622309, 2.7671963667, 2.2910785472, 3.5648394788, 2.3990537526, 4.6777820041, 2.6794149658, 2.8056919027, 3.5978245324, 3.4676877062, 3.4043952726, 2.978790628, 2.5353620113, 3.6647130844, 4.8757337138, 2.3990537526, 2.312277636, 2.8056919027, 2.7042072872, 6.6075427063, 2.9109850751, 4.5502994579, 5.2004386672, 3.7328451875, 3.2964005564, 2.4212519237, 3.9814381981, 4.6993736648, 3.1771665298, 2.4324279148, 2.3990537526, 19.3214617164, 3.1335741707, 4.8757337138, 2.3990537526, 3.1918316641, 5.2004386672, 3.3731835891, 5.2971220406, 2.312277636, 4.898239078, 3.2661789745, 3.4676877062, 3.4043952726, 5.3708123486, 3.6478752572, 2.8976103136, 2.8186423881, 3.1771665298, 3.7847742368, 2.6548499417, 4.6777820041, 4.426291165, 10.328564805, 3.1048453901, 2.312277636, 2.6548499417, 8.8723768253, 3.1771665298, 2.3880311019, 5.2971220406, 2.5706324102, 2.6794149658, 3.6647130844, 3.6478752572, 3.8197943216, 5.2727839755, 11.696070536
"В атрибуте 'relative_velocity' обнаружены аномалии: [133569.0447878095, 178961.5176317593, 138119.6179153084, 167372.8034566939, 125015.7533881835, 132185.0032723958, 133216.4743165159, 130955.1606471186, 182007.9842706731, 127074.1313123845, 129960.8927510987, 137878.6231423123, 193386.9752184064, 125629.5310624868, 125976.0754627193, 131436.9005275991, 152172.1335097544, 148000.8233501158, 154566.8113327776, 147174.3106387106, 127964.7940636339, 131253.2865042854, 130968.1274769806, 129355.5481879637, 137886.9477296724, 154379.8596630028, 129376.9104708406, 134599.1952316475, 135906.787243381, 138466.9421768693, 151386.2059704372, 131091.6215025047, 124952.2399952107, 163002.6775783674, 157914.6315118211, 136874.7093382614, 131710.7262772872, 135849.7168068071, 132166.4661563058, 131170.643861081, 129787.2375048544, 124552.5798701592, 152588.5002996656, 135717.2784111629, 126519.9676937381, 125726.7232248426, 135406.3750328902, 127641.4111352293, 133544.2814714088, 125443.514281873, 149936.050762195, 124683.7576632854, 127570.0164759572, 151273.9731861065, 153136.1656519474, 128895.0466029872, 146102.7446536144, 126411.124365819, 129888.648028003, 157827.4541830001, 133717.4702602355, 127727.8712019022, 127659.6758524709, 139267.7732204788, 130332.9183165029, 140190.9960361968, 126155.3609057936, 152270.5451025481, 128369.5862194735, 126468.1532099254, 134221.817887934, 125381.9533626806, 132674.6110412736, 127314.3315952944, 124725.522805276, 131523.5206398373, 138994.6453615912, 126122.2636702313, 147654.6174263146, 124706.0575097514, 138065.818937396, 124128.8141729245, 126076.0666894679, 158623.718271367, 140767.5352109368, 149542.0351088555, 139864.9953292708, 128985.1230780414, 138364.324442752, 147204.7558132136, 159358.004741025, 124547.774292491, 130396.68529735, 141471.1520480297, 128389.0649323619, 148000.0282587252, 141452.2576877659, 142197.3857248132, 132411.9222086879, 163760.4570028043, 133239.6225245527, 146968.0980752138, 132808.7133825516, 128299.3370977511, 133046.3719346965, 133827.4635660173, 151863.9929102808, 137771.7756194621, 133457.2050488324, 126831.9529653239, 156114.5330936358, 131071.824204872, 134187.3396517756, 136678.798419165, 135178.441976556, 132633.864893651, 131855.2673229425, 127753.675838258, 126759.369655309, 155255.6433500672, 137839.2263567118, 136810.81116229, 129451.5274067482, 150130.4696658263, 129194.7428147414, 128282.5103385488, 127110.0116702902, 150704.4400775741, 130388.674559724, 126319.9627269216, 131791.9481425642, 128189.3953378165, 146154.6848723778, 125959.0731302992, 136565.9288817797, 140612.0215799383, 128777.3257393231, 142665.0497658792, 144876.2098328784, 143134.8328520921, 124536.8490994847, 130464.4387370555, 138758.8754653902, 153487.5613109471, 124230.2578284114, 129105.1361385245, 128111.803818142, 128951.3461785685, 152265.8873351423, 124968.4386406283, 156468.6202516812, 151435.3211543124, 127096.0229422688, 127310.2931249813, 139065.064463772, 163299.3051251102, 132669.3424049852, 124821.8847500108, 127702.7129277724, 148088.2269932532, 129064.4453165519, 160232.5093383821, 144525.8169297994, 128512.2005497033, 126921.7632935369, 127425.3968132597, 126372.3126734974, 147544.9411883677, 135394.7492378372, 141465.2292876301, 129018.4285524296, 125556.2048682947, 146485.7587332014, 126709.1823121816, 125491.4411797087, 124436.659723353, 130441.6283602842, 154743.8358113618, 126610.1932618062, 160718.8586740236, 156817.1081677518, 125689.8477464683, 170893.0257857222, 124418.8546398292, 159280.9012776841, 139689.6732972972, 132162.6018115084, 127722.6449557294, 142458.62479052, 128850.5905368314, 137192.9557316735, 136816.0602077506, 139809.8412280051, 128941.0181377762, 131660.3833405103, 140701.3617093084, 136267.6939378135, 132643.2284246214, 153982.9247081868, 136986.6291056903, 124334.9263017727, 139280.4892669064, 150455.5920479704, 146586.2886461232, 134623.9581010456, 127196.0207391596, 152245.2519899442, 126658.3042626725, 147373.651367518, 125142.8568108466, 135173.0992853016, 142068.4110355133, 136289.695
"В атрибуте 'absolute_magnitude' обнаружены аномалии: [13.82, 13.82, 14.77, 14.46, 14.6, 14.02, 14.69, 14.77, 14.44, 14.02, 14.77, 14.77, 14.46, 14.34, 14.77, 14.6, 10.31, 14.7, 14.46, 14.6, 14.77, 12.44, 13.8, 14.13, 13.53, 12.58, 14.4, 14.34, 14.6, 14.81, 32.3, 14.6, 14.35, 33.2, 14.77, 14.44, 14.46, 32.3, 32.56, 14.77, 14.46, 14.04, 32.56, 14.46, 14.77, 14.6, 32.3, 14.27, 9.23, 14.13, 10.31, 14.13, 14.34, 14.77, 14.46, 14.02, 14.82, 14.4, 14.13, 32.95, 14.77, 14.46, 14.6, 32.56, 14.04, 32.56, 14.56, 14.46, 14.4, 32.95, 13.76, 12.76, 32.95, 32.3, 10.31, 14.6, 12.76, 13.53, 14.69, 14.77, 14.6, 13.76, 14.13, 14.77, 14.69, 14.31, 14.74, 14.84, 14.46, 14.77, 14.34, 13.84, 14.6, 12.44, 14.46, 32.95, 32.56, 14.84, 14.77, 14.34, 14.74, 32.95, 14.13, 32.95, 14.6]\n",
"\n",
"Аномалии в наборе данных Healthcare:\n",
"В атрибуте 'hypertension' обнаружены аномалии: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n",
"В атрибуте 'heart_disease' обнаружены аномалии: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n",
"В атрибуте 'avg_glucose_level' обнаружены аномалии: [252.72, 243.58, 259.63, 249.31, 263.32, 271.74, 242.52, 250.89, 247.51, 243.53, 242.3, 243.5, 251.6, 247.69, 250.2, 254.6, 254.63, 246.34, 251.46, 267.76, 246.53, 244.28, 251.99, 253.16, 242.84, 249.29, 242.94, 247.48, 266.59, 243.73, 243.59, 250.8, 255.17, 267.61, 260.85, 248.37, 263.56, 247.97, 248.24, 253.93, 254.95, 247.87, 261.67, 256.74, 244.3, 242.62, 243.52, 267.6, 253.86]\n",
"В атрибуте 'bmi' обнаружены аномалии: [56.6, 54.6, 60.9, 54.7, 64.8, 54.7, 60.2, 71.9, 54.6, 55.7, 55.7, 57.5, 54.2, 52.3, 78.0, 53.4, 55.2, 55.0, 54.8, 52.8, 66.8, 55.1, 55.9, 57.3, 56.0, 57.7, 54.0, 56.1, 97.6, 53.9, 53.8, 52.7, 52.8, 55.7, 53.5, 63.3, 52.8, 61.2, 58.1, 52.7, 53.4, 59.7, 52.5, 52.9, 54.7, 61.6, 53.8, 54.3, 55.0, 57.2, 64.4, 92.0, 55.9, 57.9, 55.7, 57.2, 60.9, 54.1, 56.6]\n",
"В атрибуте 'stroke' обнаружены аномалии: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n",
"\n",
"Аномалии в наборе данных Diabetes:\n",
"В атрибуте 'Pregnancies' обнаружены аномалии: [15, 17, 14, 14]\n",
"В атрибуте 'Glucose' обнаружены аномалии: [0, 0, 0, 0, 0]\n",
"В атрибуте 'BloodPressure' обнаружены аномалии: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n",
"В атрибуте 'SkinThickness' обнаружены аномалии: [99]\n",
"В атрибуте 'Insulin' обнаружены аномалии: [543, 846, 495, 485, 495, 478, 744, 680, 545, 465, 579, 474, 480, 600, 440, 540, 480, 510]\n",
"В атрибуте 'BMI' обнаружены аномалии: [0.0, 0.0, 0.0, 0.0, 0.0, 67.1, 0.0, 0.0, 59.4, 0.0, 0.0, 57.3, 0.0, 0.0]\n",
"В атрибуте 'DiabetesPedigreeFunction' обнаружены аномалии: [2.288, 1.893, 1.781, 2.329, 1.476, 2.137, 1.731, 1.6, 2.42, 1.699, 1.698]\n",
"В атрибуте 'Age' обнаружены аномалии: [69, 72, 81, 70, 69]\n"
]
2024-11-16 17:29:15 +04:00
}
],
"source": [
2024-11-19 02:19:09 +04:00
"from scipy import stats\n",
"# Вычисляем Z-индексы только для числовых столбцов\n",
"neo_zscores = neo.select_dtypes(include=['float64', 'int64']).apply(stats.zscore, nan_policy='omit')\n",
"healthcare_zscores = healthcare.select_dtypes(include=['float64', 'int64']).apply(stats.zscore, nan_policy='omit')\n",
"diabetes_zscores = diabetes.select_dtypes(include=['float64', 'int64']).apply(stats.zscore, nan_policy='omit')\n",
"\n",
"# Устанавливаем порог для поиска аномалий\n",
"threshold = 3\n",
"\n",
"# Функция для нахождения аномалий и вывода сообщения\n",
"def find_anomalies(zscores, df):\n",
" for column in zscores.columns:\n",
" # Проверяем, есть ли аномалии в Z-индексах\n",
" anomalies = df[column][(zscores[column].abs() > threshold)]\n",
" if not anomalies.empty:\n",
" print(f\"В атрибуте '{column}' обнаружены аномалии: {anomalies.tolist()}\")\n",
"\n",
"# Находим аномалии\n",
"try:\n",
" print(\"Аномалии в наборе данных Neo:\")\n",
" find_anomalies(neo_zscores, neo)\n",
"\n",
" print(\"\\nА но ма лии в наборе данных Healthcare:\")\n",
" find_anomalies(healthcare_zscores, healthcare)\n",
"\n",
" print(\"\\nА но ма лии в наборе данных Diabetes:\")\n",
" find_anomalies(diabetes_zscores, diabetes)\n",
"\n",
"except Exception as e:\n",
" print(f\"Произошла ошибка: {e}\")\n"
2024-11-14 21:22:58 +04:00
]
2024-10-19 17:27:50 +04:00
},
2024-11-16 21:33:16 +04:00
{
2024-11-19 02:19:09 +04:00
"cell_type": "markdown",
2024-11-16 21:33:16 +04:00
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"Теперь выполним 10 пункт, разобьем данные на выборки"
2024-11-16 21:33:16 +04:00
]
},
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 19,
2024-11-16 21:33:16 +04:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-11-19 02:19:09 +04:00
"Н а б о р данных Neo:\n",
"Обучающая выборка:\n",
2024-11-16 21:33:16 +04:00
"hazardous\n",
2024-11-19 02:19:09 +04:00
"False 0.902681\n",
"True 0.097319\n",
"Name: proportion, dtype: float64\n",
2024-11-16 21:33:16 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"Контрольная выборка:\n",
2024-11-16 21:33:16 +04:00
"hazardous\n",
2024-11-19 02:19:09 +04:00
"False 0.902686\n",
"True 0.097314\n",
"Name: proportion, dtype: float64\n",
"\n",
"Тестовая выборка:\n",
2024-11-16 21:33:16 +04:00
"hazardous\n",
2024-11-19 02:19:09 +04:00
"False 0.902686\n",
"True 0.097314\n",
"Name: proportion, dtype: float64\n",
"\n",
"Н а б о р данных Healthcare:\n",
"Обучающая выборка:\n",
"stroke\n",
"0 0.951321\n",
"1 0.048679\n",
"Name: proportion, dtype: float64\n",
"\n",
"Контрольная выборка:\n",
"stroke\n",
"0 0.951076\n",
"1 0.048924\n",
"Name: proportion, dtype: float64\n",
"\n",
"Тестовая выборка:\n",
"stroke\n",
"0 0.951076\n",
"1 0.048924\n",
"Name: proportion, dtype: float64\n",
"\n",
"Н а б о р данных Diabetes:\n",
"Обучающая выборка:\n",
"Outcome\n",
"0 0.651466\n",
"1 0.348534\n",
"Name: proportion, dtype: float64\n",
"\n",
"Контрольная выборка:\n",
"Outcome\n",
"0 0.649351\n",
"1 0.350649\n",
"Name: proportion, dtype: float64\n",
"\n",
"Тестовая выборка:\n",
"Outcome\n",
"0 0.649351\n",
"1 0.350649\n",
"Name: proportion, dtype: float64\n",
"Н а б о р данных Neo:\n",
"Аугментация данных не требуется.\n",
"\n",
"Н а б о р данных Healthcare:\n",
"Необходима аугментация данных.\n",
"\n",
"Н а б о р данных Diabetes:\n",
"Аугментация данных не требуется.\n"
2024-11-16 21:33:16 +04:00
]
}
],
"source": [
2024-11-19 02:19:09 +04:00
"from sklearn.model_selection import train_test_split\n",
"def split_data(df, target_column, test_size=0.2, random_state=42):\n",
" # Разделяем данные на обучающую и временную выборки\n",
" X_train, X_temp, y_train, y_temp = train_test_split(df.drop(columns=[target_column]), \n",
" df[target_column], \n",
" test_size=test_size, \n",
" random_state=random_state, \n",
" stratify=df[target_column])\n",
" # Делим временную выборку на контрольную и тестовую\n",
" X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, \n",
" test_size=0.5, \n",
" random_state=random_state, \n",
" stratify=y_temp)\n",
" \n",
" return X_train, X_val, X_test, y_train, y_val, y_test\n",
"\n",
"# Для набора данных neo\n",
"neo_train, neo_val, neo_test, neo_train_labels, neo_val_labels, neo_test_labels = split_data(neo, 'hazardous')\n",
"\n",
"# Для набора данных healthcare\n",
"healthcare_train, healthcare_val, healthcare_test, healthcare_train_labels, healthcare_val_labels, healthcare_test_labels = split_data(healthcare, 'stroke')\n",
"\n",
"# Для набора данных diabetes\n",
"diabetes_train, diabetes_val, diabetes_test, diabetes_train_labels, diabetes_val_labels, diabetes_test_labels = split_data(diabetes, 'Outcome')\n",
"def check_balance(y_train, y_val, y_test):\n",
" print(\"Обучающая выборка:\")\n",
" print(y_train.value_counts(normalize=True))\n",
" print(\"\\nК о нтр о льна я выборка:\")\n",
" print(y_val.value_counts(normalize=True))\n",
" print(\"\\nТ е с то ва я выборка:\")\n",
" print(y_test.value_counts(normalize=True))\n",
"\n",
"print(\"Н а б о р данных Neo:\")\n",
"check_balance(neo_train_labels, neo_val_labels, neo_test_labels)\n",
"\n",
"print(\"\\nН а б о р данных Healthcare:\")\n",
"check_balance(healthcare_train_labels, healthcare_val_labels, healthcare_test_labels)\n",
"\n",
"print(\"\\nН а б о р данных Diabetes:\")\n",
"check_balance(diabetes_train_labels, diabetes_val_labels, diabetes_test_labels)\n",
"\n",
"\n",
"\n"
2024-11-16 21:33:16 +04:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
2024-11-19 02:19:09 +04:00
"# Для набота Neo \n",
"- Пропорция классов сильно несбалансирована: только 9.73% объектов относятся к классу True (опасные), а 90.27% — к классу False (неопасные).\n",
"- В данном случае, если модель будет обучаться только на этих данных, она может иметь высокую точность, просто предсказывая, что все объекты неопасные. Это приведет к тому, что модель будет плохо определять опасные объекты.\n",
"\n",
"# Н а б о р данных Healthcare\n",
"- Пропорция классов также сильно несбалансирована: только 4.87% объектов относятся к классу 1 (с инсультом).\n",
"- Как и в предыдущем случае, если модель будет обучаться на этих данных, она может показывать высокую точность, просто предсказывая, что все объекты без инсульта.\n",
"\n",
"# Н а б о р данных Diabetes\n",
"- Здесь классы более сбалансированы, чем в предыдущих примерах, хотя класс 0 все еще составляет 65.15% и класс 1 34.85%.\n",
"- Модель может научиться определять о б а класса, но если точность по классу 1 будет низкой, можно рассмотреть методы аугментации.\n",
"\n",
"1. Oversampling (приращение данных): Увеличение числа примеров для меньшинства классов.\n",
"2. Undersampling (уменьшение данных): Уменьшение числа примеров для большинства классов."
2024-11-16 21:33:16 +04:00
]
},
{
"cell_type": "code",
2024-11-19 02:19:09 +04:00
"execution_count": 20,
2024-11-16 21:33:16 +04:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2024-11-19 02:19:09 +04:00
"Oversampling для Neo:\n",
2024-11-16 21:33:16 +04:00
"hazardous\n",
2024-11-19 02:19:09 +04:00
"False 81996\n",
"True 81996\n",
"Name: count, dtype: int64\n",
"\n",
"Undersampling для Healthcare:\n",
"stroke\n",
"0 249\n",
"1 249\n",
"Name: count, dtype: int64\n",
"\n",
"Oversampling для Diabetes:\n",
"Outcome\n",
"1 500\n",
"0 500\n",
2024-11-16 21:33:16 +04:00
"Name: count, dtype: int64\n"
]
}
],
"source": [
2024-11-19 02:19:09 +04:00
"from imblearn.over_sampling import RandomOverSampler\n",
2024-11-16 21:33:16 +04:00
"from imblearn.under_sampling import RandomUnderSampler\n",
"\n",
2024-11-19 02:19:09 +04:00
"# Пример Oversampling для Neo\n",
"X_neo = neo.drop('hazardous', axis=1) \n",
"y_neo = neo['hazardous'] \n",
"\n",
"# Oversampling\n",
"ros_neo = RandomOverSampler(random_state=42)\n",
"X_neo_resampled, y_neo_resampled = ros_neo.fit_resample(X_neo, y_neo)\n",
"neo_resampled = pd.DataFrame(X_neo_resampled, columns=X_neo.columns)\n",
"neo_resampled['hazardous'] = y_neo_resampled\n",
"\n",
"print(\"Oversampling для Neo:\")\n",
"print(neo_resampled['hazardous'].value_counts())\n",
"\n",
"\n",
"X_healthcare = healthcare.drop('stroke', axis=1)\n",
"y_healthcare = healthcare['stroke']\n",
"\n",
"# Пример Undersampling для Healthcare\n",
"rus_healthcare = RandomUnderSampler(random_state=42)\n",
"X_healthcare_resampled_under, y_healthcare_resampled_under = rus_healthcare.fit_resample(X_healthcare, y_healthcare)\n",
"healthcare_resampled_under = pd.DataFrame(X_healthcare_resampled_under, columns=X_healthcare.columns)\n",
"healthcare_resampled_under['stroke'] = y_healthcare_resampled_under\n",
2024-11-16 21:33:16 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"print(\"\\nUndersampling для Healthcare:\")\n",
"print(healthcare_resampled_under['stroke'].value_counts())\n",
2024-11-16 21:33:16 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"# Пример Oversampling для Diabetes\n",
"X_diabetes = diabetes.drop('Outcome', axis=1)\n",
"y_diabetes = diabetes['Outcome']\n",
2024-11-16 21:33:16 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"# Oversampling\n",
"ros_diabetes = RandomOverSampler(random_state=42)\n",
"X_diabetes_resampled, y_diabetes_resampled = ros_diabetes.fit_resample(X_diabetes, y_diabetes)\n",
"diabetes_resampled = pd.DataFrame(X_diabetes_resampled, columns=X_diabetes.columns)\n",
"diabetes_resampled['Outcome'] = y_diabetes_resampled\n",
2024-11-16 21:33:16 +04:00
"\n",
2024-11-19 02:19:09 +04:00
"print(\"\\nOversampling для Diabetes:\")\n",
"print(diabetes_resampled['Outcome'].value_counts())"
2024-11-16 21:33:16 +04:00
]
2024-10-19 17:27:50 +04:00
}
],
"metadata": {
"kernelspec": {
2024-11-19 02:19:09 +04:00
"display_name": "Python 3",
2024-10-19 17:27:50 +04:00
"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",
2024-11-19 02:19:09 +04:00
"version": "3.12.5"
2024-10-19 17:27:50 +04:00
}
},
"nbformat": 4,
"nbformat_minor": 2
}