
Министерство цифрового развития, связи и массовых коммуникаций
Российской Федерации Ордена Трудового Красного Знамени
федеральное государственное бюджетное образовательное
учреждение высшего образования
Московский технический университет связи и информатики
Кафедра «Математическая кибернетика и информационные технологии»
Лабораторная работа №5
по дисциплине
«Управление данными»
Выполнила: студентка гр. БСТ2104
Первухина Алиса Александровна
Проверила:
Тимофеева Анна Ивановна
Москва
2024
Оглавление
Введение 3
Ход работы: 4
1. Выбор датасета 5
2. Изучение датасета 5
3. Матрица корреляции 14
4. Information gain. 16
5. Кодирование категориальных переменных 18
6. Выбор двух алгоритмов 18
7. Подбор оптимальных гиперпараметров модели МО при помощи GridSearch. 23
Вывод 26
Введение
В рамках данной лабораторной работы был использован датасет "Heart Disease". Этот набор данных содержит информацию о пациентах, собранную в рамках исследований сердечно-сосудистых заболеваний, включая демографические данные, результаты медицинских осмотров и данные о клиническом состоянии пациентов.
Целью данной работы являлась разработка и оценка предсказательных моделей, способных эффективно определять риски развития сердечных заболеваний у пациентов на основе их медицинской истории. Для достижения этой цели были применены различные алгоритмы машинного обучения, включая логистическую регрессию и случайный лес. Была проведена оптимизация гиперпараметров моделей с использованием методов кросс-валидации и GridSearchCV для повышения точности и надежности предсказаний.
Ход работы:
Выбор датасета
Изучение датасета
Построение матрицы корреляции признаков. Корректировка матрицы.
Расчёт information gain. Исключение лишних признаков.
Кодирование категориальных переменных
Выбор двух алгоритмов для модели обучения МО. Разделение выборки на тестовую и обучающую. Использование подхода stratified k-fold.
Подбор оптимальных гиперпараметров модели МО при помощи GridSearch.
Выполнение
Выбор датасета
Работая с этим датасетом, я буду предсказывать наличие или отсутствие сердечных заболеваний у пациентов на основе различных медицинских, демографических и клинических данных.
Ссылка на датасет: https://www.kaggle.com/datasets/alexteboul/heart-disease-health-indicators-dataset/data
Выполняю импорт необходимых библиотек.
Изучение датасета
Выведем первые строчки нашего датасета.
Детальное описание каждого столбца:
HeartDiseaseorAttack - наличие у респондента сердечного заболевания или перенесенного сердечного приступа (0 = нет, 1 = да).
HighBP - наличие у респондента высокого кровяного давления (0 = нет, 1 = да).
HighChol - наличие у респондента высокого уровня холестерина (0 = нет, 1 = да).
CholCheck - проходил ли респондент проверку уровня холестерина в последние 5 лет (0 = нет, 1 = да).
BMI - индекс массы тела респондента.
Smoker - является ли респондент курильщиком (0 = нет, 1 = да).
Stroke - перенес ли респондент инсульт (0 = нет, 1 = да).
Diabetes - наличие у респондента диабета (0 = нет, 1 = да, 2 = при использовании инсулина или перенесенный гестационный диабет).
PhysActivity - участвует ли респондент в физических упражнениях (0 = нет, 1 = да).
Fruits - употребляет ли респондент фрукты ежедневно (0 = нет, 1 = да).
Veggies - употребляет ли респондент овощи ежедневно (0 = нет, 1 = да).
HvyAlcoholConsump - является ли респондент тяжелым потребителем алкоголя (0 = нет, 1 = да).
AnyHealthcare - имеет ли респондент доступ к здравоохранению (0 = нет, 1 = да).
NoDocbcCost - отказывался ли респондент от визита к врачу из-за стоимости (0 = нет, 1 = да).
GenHlth - общее состояние здоровья респондента (1 = отличное, 5 = плохое).
MentHlth - количество дней в последние 30 дней, когда респондент испытывал проблемы с психическим здоровьем.
PhysHlth - количество дней в последние 30 дней, когда респондент испытывал проблемы с физическим здоровьем.
DiffWalk - испытывает ли респондент трудности при ходьбе или подъеме по лестнице (0 = нет, 1 = да).
Sex - пол респондента (0 = женщина, 1 = мужчина).
Age - возрастная группа респондента (числовой код).
Education - уровень образования респондента (числовой код).
Income - уровень дохода респондента (числовой код).
Большая часть данных тут уже разбита на подгруппы. Возраст указывает не сам возраст, а подгруппу (то есть 1 это возраст от 0 до 10 и аналогично…)
Просматриваем количество столбцов и строк. Я буду работать с первым 100000 строк для ускорения обработки данных.
Просматриваем количество заболевших
Вывод информации об общих параметрах датасета.
Просмотр типов данных в датасете.
Для удобства переведем все в формат int.
Проверяем датасет на наличие пустых значений. Их нет.
Создадим отдельный датасет с заболевшими и посмотрим на количество курящих.
Построим гистограмму курящих больных. С левой стороны столбец – не курящие больные, с правой – курящие.
Посмотрим
на распределение значение индекса массы
тела (столбец BMI)
у людей с сердечными заболеваниями.
с
Наиболее распространенные значения BMI в этой группе находятся в пределах от 24 до 29. Эти значения указывают на избыточный вес или предожирение. Значит, эти факторы являются значимым фактором риска для сердечных заболеваний.
Аналогично построит гистограммы с распределением индекса массы тела больных сердечными заболеваниями.
Посчитаем процент больных людей, со значением BMI > среднего.
Также посчитаем процент заболевания по полу.