$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Этот протокол описывал воспроизводимый вычислительный рабочий процесс для бенчмаркинга ансамблевых моделей машинного обучения с использованием общедоступного набора данных по сердечно-сосудистым заболеваниям.
Выбор набора данных
В исследовании использовался общедоступный набор данных по сердечно-сосудистым заболеваниям, полученный из репозитория Kaggle. Набор данных включал 1190 экземпляров и 11 функций. Для обучения моделей использовалось 80% данных, а оставшиеся 20% — для оценки эффективности. В таблице 1 подробно описаны особенности набора данных. Набор данных был загружен в Python (версия 3.9) с использованием библиотеки pandas (версия 1.5.3). Целостность набора данных проверялась путём анализа отсутствующих значений, дублирующихся записей и несогласованных типов данных.
Таблица 1 суммирует демографические, клинические и экспериментальные характеристики, включённые в набор данных по сердечно-сосудистым заболеваниям, а также их типы данных и кодированные форматы. Эти особенности стали входными переменными для всех последующих процедур обучения и оценки моделей.
| Сл. Нет | Название объекта | Тип данных | Описание |
| 1 | Возраст | Численные | Возраст пациента в годах. |
| 2 | Пол | Номинальный | Мужчина — как 1, а женщина — как 0. |
| 3 | Тип боли в груди | Категорическая | 1: Типичная 2: Типичная стенокардия 3: Нестенокардическая боль 4: Бессимптомная |
| 4 | Отдыхающий тиск | Численные | Артериальное давление в покое измеряется в миллиметрах ртуть (мм рт. ст.). |
| 5 | Уровень холестерина | Численные | Холестерин в сыворотке в миллиграммах на децилитр (мг/дл). |
| 6 | Уровень сахара натощак | Номинальный | Уровень сахара в крови выше 120 мг/дл во время голодания обозначается как 1 для истинного и 0 для ложного. |
| 7 | Покоящая ЭКГ | категорически | Три различных значения присваиваются следующим образом: 0 — нормально, 1 — аномалия в волне ST-T, и 2 — гипертрофия левого желудочка. |
| 8 | Максимальная частота сердечных сокращений | Численные | Достигнутая максимальная частота сердечных сокращений |
| 9 | Упражнения на стенокардию | Номинальный | Стенокардия, вызванная физическими упражнениями, где 0 означает НЕТ, а 1 — да. |
| 10 | Олдпик | Численные | ST-депрессия во время упражнений по сравнению с состоянием покоя. |
| 11 | Уклон ST | категорически | Уклон сегмента ST во время пиковой нагрузки классифицируется следующим образом: 0: Норма 1: Восходящий уклон 2: Плоский 3: Нисходящий |
Таблица 1: Описание особенностей набора данных, используемых для прогнозирования сердечно-сосудистых заболеваний.
Предварительная обработка данных
Предварительная обработка данных проводилась с использованием библиотек Python. Строки с отсутствующими значениями удалялись с помощью panda. DataFrame.dropna() функция. Выбросы в числовых признаках были выявлены и удалены с помощью метода межквартильного диапазона (IQR) и визуализации на основе boxplot, что иллюстрирует распределение и выявленные выбросы между объектами (рисунок 2). Все числовые переменные масштабировались с помощью функции StandardScaler из библиотеки scikit-learn (версия 1.2.2). Дисбаланс классов устранялся случайным недовыборкой для получения сбалансированного распределения классов до обучения модели.

Рисунок 2: График всех атрибутов в наборе данных по сердечно-сосудистым заболеваниям. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Коэффициент корреляции Пирсона (PCC) использовался для оценки взаимосвязей между признаками. Полученная матрица корреляции, визуализированная в виде тепловой карты, иллюстрирует силу и направление парных корреляций признаков и выделяет избыточные атрибуты для исключения (см. рисунок 3).

Рисунок 3: Корреляционная матрица для набора данных по сердечно-сосудистым заболеваниям. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Модель создаёт тепловую карту матрицы корреляции, которая выглядит эстетически приятно и позволяет быстрее понимать корреляции между различными признаками в данных. Эта тепловая карта использует цвета, чтобы показать, насколько и в каком направлении значения коррелированы, что делает её важным инструментом в исследовательском анализе данных. Светлые цвета показывают более высокие положительные корреляции, тёмные — более отрицательные корреляции, а больше зелёных — корреляции близко к нулю.
Извлечение признаков
Выбор признаков осуществлялся с использованием важности признаков случайного леса, реализуемого через RandomForestClassifier в открытых библиотеках машинного обучения. Оценки важности признаков рассчитывались на основе среднего снижения примесей и ранжировались соответственно. Лучшие рейтинговые характеристики были сохранены для последующего анализа. Выбор признаков применялся после завершения всех этапов предварительной обработки и до разделения «train–test», что обеспечивало использование фиксированного и согласованного набора признаков во всех моделях классификации и конфигурациях ансамбля (рисунок 4).

Рисунок 4: Показатели важности признаков, рассчитанные с использованием случайного леса. Признаки ранжируются по нормированному значению важности. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Признаки ранжировались на основе среднего снижения примесей по важности признаков случайного леса с random_state = 42; однако все доступные функции (N = 11) были сохранены для последующего обучения моделей. Выбор признаков применялся после предварительной обработки и до разделения «тренировка–тест», обеспечивая фиксированный набор признаков для всех моделей.
Обучение моделям и создание ансамбля
Набор данных был разбит на учебные и тестовые подмножества с использованием соотношения 80:20 с функцией train_test_split(). Обучающие данные использовались исключительно для разработки моделей и создания ансамбля, а данные тестирования были зарезервированы для оценки производительности. Базовые классификаторы, включая Decision Tree, Random Forest, AdaBoost и XGBoost, тренировались на обучающем наборе данных с использованием стандартных настроек гиперпараметров, если не указано иное.
С использованием VotingClassifier были построены модели жёсткого голосования и мягкого голосования с равными весами, присвоенными всем базовым классификаторам для обеспечения объективного сравнения. Была реализована модель стекового ансамбля с использованием логистической регрессии в качестве метаклассификатора. Метаклассификатор тренировался на вне-развершённых предсказаниях, полученных через пятикратную перекрестную валидацию базовых классификаторов, что снизило перенагонку и позволило объективно оценивать производительность ансамбля.
Предлагаемая модель
Предлагаемая ансамблевая структура была реализована для создания составного классификатора с использованием нескольких стратегий обучения ансамбля. Все обучающие данные были стандартизированы, и идентичные этапы предварительной обработки применялись к тестовым данным для обеспечения согласованности между этапами обучения и оценки. Базовые классификаторы были интегрированы с использованием механизмов жёсткого голосования, мягкого голосования и стекирования, а мета-классификатор стекирования обучался с использованием логистической регрессии на перекрёстно-валидированных прогнозах. Общая архитектура и поток данных ансамблевой структуры (рисунок 5).

Рисунок 5: Архитектура предлагаемой модели. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Уровень I:
На уровне I ансамблевого фреймворка четыре базовых классификатора — Random Forest, Decision Tree, XGBoost и AdaBoost — были обучены с использованием масштабируемого обучающего набора данных. Эти базовые классификаторы были объединены для создания как моделей жёсткого, так и мягкого голосования. Всем базовым классификаторам присваивались равные веса для сохранения объективности и предотвращения смещения, возникающего при дифференциальной настройке весов при построении ансамбля.
Уровень-II:
На втором уровне классификатор ансамблевого стека реализовывался путём объединения предсказаний, сгенерированных базовыми классификаторами. Базовые классификаторы обучались с помощью пятикратной перекрестной валидации, и для каждого сворачивания генерировались предсказания вне разворок. Эти прогнозы вне разворачивания затем использовались как входные характеристики для обучения метаклассификатора логистической регрессии, что снижало переподгонку и обеспечивало беспристрастную оценку работы ансамбля.