Объедините множество разных моделей для лучшего прогнозирования

Слово «ансамбль» в контексте ML относится к набору конечного числа моделей ML (может включать ИНС), обученных для одной и той же задачи. Обычно модели обучаются независимо, а затем их прогнозы объединяются.

Когда прогнозы разных моделей различаются, иногда для классификации полезнее использовать ансамбль, чем какой-либо отдельный классификатор. Здесь мы хотели бы объединить разные классификаторы и создать ансамбль, а затем использовать его для задачи прогнозирования. О чем пойдет речь в этом посте?

  • Используйте VotingClassifier Sklearn для создания ансамбля.
  • Что такое жесткое и мягкое голосование в VotingClassifier?
  • Проверьте производительность отдельной модели с помощью VotingClassifier.
  • Наконец, используйте GridSearchCV + VotingClassifier, чтобы найти лучшие параметры модели для отдельных моделей.

Давай начнем!

Подготовка данных:

Чтобы увидеть пример VotingClassifier в действии, я использую Набор данных для прогнозирования сердечной недостаточности (доступен по лицензии с открытой базой данных). Здесь задача состоит в бинарной классификации для прогнозирования того, может ли пациент с определенными признаками иметь заболевание сердца или нет. Набор данных содержит 10 атрибутов, включая возраст, пол, артериальное давление в состоянии покоя и т. д., для данных, собранных более чем 900 пациентам. Давайте проверим некоторые распределения по различным параметрам. Мы проверяем количество ClassLabel (1 представляет заболевание сердца, 0 представляет собой здоровое), то есть здоровое и больное население в зависимости от пола.

В целом мы видим, что мужчин болеют пропорционально больше, чем женщин. Мы также можем проверить отдельные характеристики, такие как распределение холестерина и АД в состоянии покоя, как показано ниже, и мы видим, что как уровень холестерина, так и АД в состоянии покоя выше у больных пациентов, особенно у женщин.