650 lines
80 KiB
Plaintext
650 lines
80 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"## Лабораторная работа №2\n",
|
|||
|
"\n",
|
|||
|
"## Общие данные\n",
|
|||
|
"\n",
|
|||
|
"Типы пропущенных данных:\n",
|
|||
|
"\n",
|
|||
|
"None - представление пустых данных в Python \n",
|
|||
|
"NaN - представление пустых данных в Pandas \n",
|
|||
|
"' ' - пустая строка\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"## 1 Датасет: NASA - Nearest Earth Objects \n",
|
|||
|
"https://www.kaggle.com/datasets/sameepvani/nasa-nearest-earth-objects\n",
|
|||
|
"\n",
|
|||
|
"Перевод контекста со страницы на Kaggle: \n",
|
|||
|
" В космическом пространстве существует бесконечное количество объектов. Некоторые из них находятся ближе, чем мы думаем. Несмотря на то, что мы можем думать, что расстояние в 70 000 км потенциально не может причинить нам вреда, по астрономическим меркам это очень небольшое расстояние, которое может нарушить многие природные явления. Таким образом, эти объекты/астероиды могут оказаться опасными. Следовательно, разумно знать, что нас окружает и что из этого может причинить нам вред. Таким образом, этот набор данных составляет список сертифицированных НАСА астероидов, которые классифицируются как ближайшие к Земле объекты.\n",
|
|||
|
"\n",
|
|||
|
"- По описаню можно понять, что объектами исследования являютя объекты, которые находятся в близи Земли\n",
|
|||
|
"- Атрибуты обьекта: id, name, est_diameter_min, est_diameter_max, relative_velocity, miss_distance, orbiting_body, sentry_object, absolute_magnitude, hazardous\n",
|
|||
|
"- В описании говорится о возможной опасности объектов, поэтому можно сделать вывод, что цель данного датасета научится определять опасность околоземных объектов\n",
|
|||
|
"\n",
|
|||
|
"## 2 Датасет: Indicators of Heart Disease \n",
|
|||
|
"https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease\n",
|
|||
|
"\n",
|
|||
|
"Перевод контекста со страницы на 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",
|
|||
|
"\n",
|
|||
|
"## 3 Датасет: Pima Indians Diabetes Database\n",
|
|||
|
"https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-database\n",
|
|||
|
"\n",
|
|||
|
"Перевод контекста со страницы на Kaggle: \n",
|
|||
|
" Этот набор данных изначально был получен из Национального института диабета, заболеваний пищеварительной системы и почек. Целью набора данных является диагностическое прогнозирование наличия или отсутствия у пациента диабета на основе определенных диагностических измерений, включенных в набор данных. На выбор этих случаев из более крупной базы данных налагалось несколько ограничений. В частности, все пациенты здесь — женщины в возрасте не менее 21 года индейского происхождения пима.\n",
|
|||
|
"- объект иследования - женьщины индейци пима\n",
|
|||
|
"- очевидно цель датасета это предсказание диабета.\n",
|
|||
|
"- атрибуты: Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age, Outcome"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 1,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"колонки: 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"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"\n",
|
|||
|
"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))"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#Проверим пустые занчения"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 7,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Околоземные обьекты\n",
|
|||
|
"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",
|
|||
|
"dtype: int64\n",
|
|||
|
"\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",
|
|||
|
"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",
|
|||
|
"\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"# Околоземные обьекты\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",
|
|||
|
"\n",
|
|||
|
"# Есть ли пустые значения признаков\n",
|
|||
|
"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\")"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"После этого видно, что в атрибуде bmi датасета Indicators of Heart Disease есть пустые значения, заполним значением Unknown\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 11,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"healthcare['bmi'] = healthcare['bmi'].fillna('Unknown')"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Проверим датасет по числовым данным, для выявления аномальных распределений"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 12,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
" 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",
|
|||
|
"\n",
|
|||
|
" 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",
|
|||
|
"\n",
|
|||
|
" 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",
|
|||
|
"\n",
|
|||
|
" 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"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"print(neo.describe())\n",
|
|||
|
"print(healthcare.describe())\n",
|
|||
|
"print(diabetes.describe())"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Аномальное рапределение будем искать по z-индексую. Z-индекс показывает, насколько далеко значение находится от среднего в стандартных отклонениях. Значения Z-индекса больше 3 или меньше -3 обычно считаются аномальными."
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 18,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"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"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"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"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Теперь выполним 10 пункт, разобьем данные на выборки"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 19,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Набор данных Neo:\n",
|
|||
|
"Обучающая выборка:\n",
|
|||
|
"hazardous\n",
|
|||
|
"False 0.902681\n",
|
|||
|
"True 0.097319\n",
|
|||
|
"Name: proportion, dtype: float64\n",
|
|||
|
"\n",
|
|||
|
"Контрольная выборка:\n",
|
|||
|
"hazardous\n",
|
|||
|
"False 0.902686\n",
|
|||
|
"True 0.097314\n",
|
|||
|
"Name: proportion, dtype: float64\n",
|
|||
|
"\n",
|
|||
|
"Тестовая выборка:\n",
|
|||
|
"hazardous\n",
|
|||
|
"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"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"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"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"# Для набота 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 (уменьшение данных): Уменьшение числа примеров для большинства классов."
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 20,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Oversampling для Neo:\n",
|
|||
|
"hazardous\n",
|
|||
|
"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",
|
|||
|
"Name: count, dtype: int64\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"from imblearn.over_sampling import RandomOverSampler\n",
|
|||
|
"from imblearn.under_sampling import RandomUnderSampler\n",
|
|||
|
"\n",
|
|||
|
"# Пример 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",
|
|||
|
"\n",
|
|||
|
"print(\"\\nUndersampling для Healthcare:\")\n",
|
|||
|
"print(healthcare_resampled_under['stroke'].value_counts())\n",
|
|||
|
"\n",
|
|||
|
"# Пример Oversampling для Diabetes\n",
|
|||
|
"X_diabetes = diabetes.drop('Outcome', axis=1)\n",
|
|||
|
"y_diabetes = diabetes['Outcome']\n",
|
|||
|
"\n",
|
|||
|
"# 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",
|
|||
|
"\n",
|
|||
|
"print(\"\\nOversampling для Diabetes:\")\n",
|
|||
|
"print(diabetes_resampled['Outcome'].value_counts())"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"metadata": {
|
|||
|
"kernelspec": {
|
|||
|
"display_name": "Python 3",
|
|||
|
"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",
|
|||
|
"version": "3.12.5"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|