ДАННЫЕ ИСТОРИИ | ПРОГНОЗНАЯ АНАЛИТИКА | KNIME АНАЛИТИЧЕСКАЯ ПЛАТФОРМА

ML для профилактики диабета с KNIME

1-е место в конкурсе машинного обучения, совместно организованный Миланским университетом Бикокка и KNIME

Соавтор: Лука Порчелли

Диабет является широко распространенным хроническим заболеванием, поражающим миллионы людей во всем мире. Это вызвано неспособностью организма регулировать уровень глюкозы в крови и может привести к серьезным осложнениям, таким как болезни сердца, потеря зрения, ампутация нижних конечностей и заболевание почек. У пострадавших пациентов наблюдается значительное снижение качества жизни и снижение продолжительности жизни. По состоянию на 2018 год 34,2 миллиона американцев страдают диабетом, а 88 миллионов - преддиабетом. Многие не знают о своем риске, и болезнь непропорционально затрагивает более низкие социально-экономические группы.

Кроме того, диабет часто требует значительных финансовых затрат для системы здравоохранения страны. Действительно, стоимость диабета оценивается в 327 миллиардов долларов для диагностированных случаев и 400 миллиардов долларов для недиагностированных и преддиабетических случаев.

Хотя в настоящее время не существует постоянного лекарства, ранняя диагностика и здоровый образ жизни могут свести к минимуму риск развития хронического диабета, оказывая благоприятное воздействие как на население страны, так и на ее систему здравоохранения. С этой целью модели искусственного интеллекта и машинного обучения для раннего прогнозирования развития диабета являются важными инструментами для должностных лиц общественного здравоохранения и людей, находящихся в группе риска.

В рамках проблемы машинного обучения, организованной совместно Миланским университетом Бикокка и KNIME, мы использовали возможности прогностического моделирования для определения риска развития диабета. Результаты анализа выявили как понимание факторов риска, так и использование инструмента с низким кодом, такого как KNIME Analytics Platform, для исследования данных, обучения моделей и разработки. Мы надеемся, что результаты этого проекта могут в конечном итоге помочь медицинским работникам улучшить раннюю диагностику и уменьшить негативное влияние этого хронического заболевания на жизнь людей.

Доступ к данным и предварительная обработка

Набор данных

Для проведения нашего анализа мы использовали набор данных Kaggle, полученный на конкурсе прогнозов диабета [AashiDutt (2022)].

Данные дают ценную информацию о факторах, которые могут влиять на развитие диабета, и состоят из 18 атрибутов: 17 из которых представляют различные факторы здоровья, а также бинарный целевой атрибут «Диабет», который необходимо прогнозировать. Другими словами, 17 атрибутов служат входными признаками, и цель состоит в том, чтобы использовать эти признаки для точного прогнозирования наличия у человека диабета или нет.

возраст: 3 возрастных категории: 1 = 18–24, 9 = 60–64, 13 = 80 и старше.

пол: 0 = женский, 1 = мужской.

HighChol: 0 = нет высокого уровня холестерина, 1 = высокий уровень холестерина.

CholCheck: 0 = не проверять холестерин через 5 лет, 1 = да проверять холестерин через 5 лет.

ИМТ: индекс массы тела.

● Курильщик: Вы выкурили не менее 100 сигарет за всю свою жизнь? [Примечание: 5 пачек = 100 сигарет] 0 = нет, 1 = да.

HeartDiseaseorAttack: ишемическая болезнь сердца (ИБС) или инфаркт миокарда (ИМ). 0 = нет, 1 = да.

Физическая активность: физическая активность за последние 30 дней, не включая работу. 0 = нет, 1 = да.

Фрукты. Употребляйте фрукты один или несколько раз в день. 0 = нет, 1 = да.

Овощи. Употребляйте овощи один или несколько раз в день. 0 = нет, 1 = да.

HyAlcoholConsump: взрослый мужчина: более 14 порций алкоголя в неделю. Взрослая женщина: более 7 напитков в неделю. 0 = нет, 1 = да.

GenHlth. Могли бы вы сказать, что в целом ваше здоровье: (шкала 1–5) 1 = отличное, 2 = очень хорошее, 3 = хорошее, 4 = удовлетворительное, 5 = плохое.

MentHlth: дни плохого психического здоровья по шкале от 1 до 30 дней.

PhysHlth: дни болезни или травмы за последние 30 дней по шкале от 1 до 30.

DiffWalk. Испытываете ли вы серьезные трудности при ходьбе или подъеме по лестнице? 0 = нет, 1 = да.

Гипертония: 0 = нет гипертонии, 1 = гипертония.

Обводка: 0 = нет, 1 = да.

Диабет: 0 = диабет отсутствует, 1 = диабет (целевая переменная).

Как видно из описания, большинство атрибутов в наборе данных являются бинарными или имеют логические значения. Эти атрибуты указывают на наличие или отсутствие определенных факторов или состояний здоровья. Исключением являются age и GenHlth, которые являются порядковыми атрибутами, и BMI, единственный непрерывный атрибут в наборе данных.

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

Предварительная обработка

Набор данных уже довольно чистый и хорошо подготовленный, что позволяет предположить, что он прошел предыдущий процесс очистки, который удалил шум и несоответствия из необработанных данных.

Тем не менее, мы выполнили несколько шагов предварительной обработки, чтобы обработать пропущенные значения, обработать выбросы, проверить почти нулевую дисперсию и сильно коррелированные признаки, а также выбрать наилучшее подмножество атрибутов для моделирования.

В частности, мы использовали узел «Отсутствующие значения» для определения отсутствующих значений и обнаружили, что набор данных не содержит отсутствующих записей. Кроме того, мы проверили наличие почти нулевой дисперсии и высококоррелированных функций. Ни одна из характеристик не имела близкой к нулю дисперсии и не была сильно коррелирована друг с другом (рис. 1). Это означает, что ни одна из переменных в наборе данных не является избыточной.

После этого следующим шагом был анализ наличия выбросов в данных. Это было сделано путем создания блочных диаграмм для каждого атрибута. Блочные диаграммы обеспечивают графическое представление распределения данных и помогают визуально идентифицировать любые выбросы. Мы заметили, что атрибут BMI имеет много выбросов. Эта информация имела решающее значение для понимания распределения данных и потенциального влияния этих выбросов на производительность моделей.

В частности, мы заметили, что некоторые значения ИМТ были > 80, что казалось необычным, учитывая, что ИМТ определяется как:

ИМТ = вес/рост²

Чтобы понять это странное явление, мы проконсультировались с некоторыми экспертами в данной области. Эксперты сочли эти значения крайне необычными и предложили удалить значения с ИМТ > 50 и преобразовать тип атрибута в порядковый. Следуя совету экспертов, наблюдения с ИМТ ‹ 15 или ИМТ › 50 были удалены, а атрибуту присвоена шкала от 1 до 8 в соответствии со следующими правилами:

ИМТ≤ 16 «НИЧТОЖНОСТЬ»

● 16 ‹ ИМТ≤ 17,50 «МАЛОМАШЕЕ ВЕСА»

● 17,50 ‹ ИМТ≤ 18,50ЧУТЬ НИЖЕ ВЕСА

● 18,50 ‹ ИМТ25 «НОРМАЛЬНЫЙ»

● 25 ‹ ИМТ≤ 30 «ИЗБЫТОЧНЫЙ ВЕС»

● 30 ‹ ИМТ≤ 35 — "ОЖИРЕНИЕ I КЛАССА"

● 35 ‹ ИМТ≤ 40 – "ТУЖЕНИЕ II КЛАССОВ"

ИМТ › 40«ОЖИРЕНИЕ III КЛАССА»

Преобразование атрибута ИМТ было предложено, потому что это несбалансированный показатель и не дает много информации (в медицинских терминах). Известно, что люди ошибочно идентифицируют очень низких или высоких или мускулистых субъектов. В последнее время в медицинской сфере предпочтение отдается новым расчетам ИМТ, таким как «новый ИМТ». Путем преобразования атрибута ИМТ в порядковый номер можно получить больше информации и уменьшить изменчивость индекса. Это обеспечивает более информативное и полезное представление данных.

Наконец, мы проверили оптимальное подмножество атрибутов. Чтобы найти его, мы применили метод Боруты [Kursa and Rudnicki (2010)] для выполнения выбора признаков в узле R Snippet. Метод Боруты работает путем создания «теневых атрибутов», которые представляют собой случайные копии исходных объектов, а затем сравнивает важность исходных объектов с соответствующими им теневыми атрибутами. Если функция оказывается менее важной, чем соответствующий атрибут тени, она удаляется из набора данных. Этот процесс повторяется до тех пор, пока не будут оценены все признаки. Окончательное подмножество признаков считается оптимальным набором атрибутов для моделирования.

В результате процесса отбора признаков не было обнаружено менее важных атрибутов, чем «теневые атрибуты» (рис. 2). Это означает, что в процессе выбора признаков не было определено оптимальное подмножество атрибутов, и все атрибуты считались важными и использовались для задачи классификации.

Обучение и оценка модели

Чтобы смоделировать нашу задачу бинарной классификации, мы обучили и сравнили производительность широкого спектра алгоритмов, а именно дерева решений, наивного байесовского алгоритма, случайного леса, повышения градиента, XGBoost и набора многоуровневых моделей. Все эти алгоритмы доступны в виде узлов KNIME.

Кроме того, чтобы тщательно сравнить производительность моделей, мы не просто применили алгоритмы с настройками по умолчанию. Вместо этого мы провели настройку гиперпараметров и перекрестную проверку. Мы полагались на узлы цикла оптимизации параметров, чтобы определить лучшие гиперпараметры для каждой модели с использованием различных стратегий поиска (например, грубой силы, случайного поиска и т. д.). Мы скорректировали количество итераций в соответствии с вычислительными требованиями моделей и обеспечили получение стабильных и надежных прогнозов, используя узлы X-Partitioner для 10-кратной перекрестной проверки.

Здесь для простоты мы сообщаем только о деталях модели, которая показала наилучшие результаты.

Деревья, усиленные градиентом

Для решения нашей задачи бинарной классификации в процесс сравнения моделей была включена модель Gradient Boosting, поскольку она обычно хорошо работает благодаря своей способности эффективно моделировать сложные отношения между функциями и целью.

Параметры модели настраивались с помощью случайного поиска с 1000 итераций, начиная с сетки возможных значений «количества моделей» [50, 150], «скорости обучения» [0,05, 2], «максимальной глубины» [ 1, 10], «минимальный дочерний размер» [50, 200] и «фракция данных» [0,1, 1].

Для этого мы создали простой рабочий процесс KNIME, в котором каждый соответствующий гиперпараметр в узле Gradient Boosted Trees Learner оптимизируется и проверяется в разных разделах данных.

Мы обнаружили, что лучшими гиперпараметрами, ведущими к максимальной производительности модели, были следующие:

● Максимальный уровень: 3

● MinChildSize: 150

● Фракция данных: 1

● № модели: 140

● Скорость обучения: 0,13

Но как определить, действительно ли модель и соответствующий набор гиперпараметров лучше остальных? Существует множество вариантов измерения и оценки производительности модели. Для этого проекта мы решили использовать Log-Loss в качестве основной метрики.

Лог-потери

Оценка моделей, созданных для этого испытания, проводилась с использованием отдельного набора тестов и метрики Log-Loss. Log-Loss, также известный как бинарная кросс-энтропийная потеря, является широко используемой метрикой производительности в машинном обучении для задач бинарной классификации.

Log-Loss измеряет точность прогнозируемых вероятностей классификатора, вычисляя вероятность того, что эти прогнозы верны. Другими словами, он оценивает, насколько хорошо предсказанные вероятности соответствуют фактическим меткам классов. Более низкое значение Log-Loss указывает на лучшую производительность.

Функция Log-Loss определяется следующим образом:

Среднее значение функции Log-Loss определяется следующим образом:

Расчет Log-Loss для каждого отдельного экземпляра может привести к проблемной ситуации, когда прогнозируемые вероятности равны 0 или 1. Это связано с логарифмической функцией в формуле Log-Loss, которая приводит к бесконечному значению при логарифмировании. из 0. Чтобы решить эту проблему, выбрано небольшое положительное значение. Это значение близко к 0, но все еще находится в пределах возможностей обработки системы и используется вместо 0. Это гарантирует, что Log-Loss остается конечным, избегая любых потенциальных системных ошибок. Этот подход обычно используется для решения проблемы наличия значений Log-Loss, которые не поддаются вычислительному управлению.

Заменяющее значение, выбранное для 0, равно 10 ^ (-15), и поэтому (1–10 ^ (-15)) используется для 1. Эта замена приводит к Log-Loss более 34, что является относительно высоким значением. значение, но все еще управляемое и приемлемое для задачи бинарной классификации.

Используя приведенные выше формулы с необходимыми корректировками, мы определили лучшие гиперпараметры для каждой обученной модели и смогли выбрать лучшую модель. В KNIME Analytics Platform мы можем легко применять корректировки вероятности с помощью узла Rule Engine, вычислять Log-Loss для отдельных экземпляров с помощью узла Math Formula и средние значения Log-Loss с помощью узла GroupBy.

Хотя Log-Loss используется в качестве основной метрики при оценке моделей, другие метрики, такие как точность и AUC (площадь под ROC-кривой), также используются для получения более подробной информации. всесторонний обзор проблемы бинарной классификации.

Рабочий процесс обучения

Рабочий процесс KNIME, который мы разработали для обучения, оценки и сравнения наиболее эффективного двоичного классификатора, показан на рисунке 5.

Мы начали с импорта набора данных и проверки его на дисбаланс классов. Затем мы разделили набор данных на два раздела, при этом 70% использовались для обучения моделей, а оставшиеся 30% отводились для тестирования. После разделения мы начали обрабатывать набор данных (т. е. обрабатывать отсутствующие значения, проверять наличие почти нулевой дисперсии и т. д.). Имейте в виду, что предварительная обработка данных выполняется после разделения данных, чтобы избежать проблемы утечки данных.

После того, как данные были разделены и предварительно обработаны, различные алгоритмы и модели были обучены и оптимизированы на обучающем наборе, а их производительность была подтверждена с помощью 10-кратной перекрестной проверки. Это помогло определить наилучшие параметры для каждой модели. Поиск гиперпараметров выполнялся путем минимизации потерь логарифма, так как это считалось ключевым показателем при оценке производительности модели.

Модель, обученная с лучшим гиперпараметром, затем применялась к тестовому набору. Помимо Log-Loss, на заключительном этапе оценки учитывались и другие показатели производительности. К ним относятся площадь под кривой ROC и точность, что обеспечивает более полное представление о производительности модели.

Окончательная модель и алгоритм были выбраны на основе комбинации этих метрик с учетом общей производительности, чтобы обеспечить наиболее эффективное решение поставленной задачи. Для простоты окончательный рабочий процесс на рис. 5 включает процесс, охватываемый только лучшим классификатором.

Загрузите рабочий процесс обучения бесплатно с Центра сообщества KNIME.

Сравните характеристики моделей

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

Рассмотрим подробнее сравнение производительности моделей. В таблице 1 мы видим, что XGBoost и Gradient Boosting имеют наилучшие показатели с точки зрения Log-Loss.

Однако рекомендуется основывать оценку модели не на одной метрике, а на их комбинации, чтобы получить полную картину. По этой причине мы решили построить кривую рабочих характеристик приемника (ROC) с использованием узла ROC Curve (local).

Кривая ROC обеспечивает визуальное представление компромисса между TPR и FPR для различных порогов классификации. Он показывает, насколько хорошо классификатор может разделять положительные и отрицательные классы. Идеальный классификатор будет иметь кривую ROC, которая идет прямо вверх по левой стороне, а затем прямо через верх. Площадь под кривой (AUC) является мерой того, насколько хорошо классификатор способен разделять классы.

Глядя на кривые ROC на рисунке 6, мы видим, что все классификаторы показали хорошие результаты, но XGBoost и Gradient Boosting превосходят все остальные модели.

Кроме того, мы видим, что кривые ROC двух наиболее эффективных моделей пересекаются в некоторых точках, что означает, что классификаторы имеют схожую способность разделять положительные и отрицательные классы и что нет большой разницы в их производительности. Это подтверждает и значение AUC на рисунке, где Gradient Boosting лучше всего на несколько пунктов.

На рис. 7 представлено графическое представление пересекающихся кривых ROC для различных моделей. Из рисунка видно, что ROC-кривые для двух лучших моделей пересекаются в нескольких точках, хотя ROC-кривая для лучшей модели должна быть неизменно выше всех остальных.

На рисунке 7 также видно, что оптимальной ROC-кривой для всего интервала не существует. Это означает, что модели имеют разные сильные и слабые стороны, и не существует единой модели, оптимальной для всех сценариев.

После оценки различных классификаторов мы обнаружили, что XGBoost и Gradient Boosting показали лучшие результаты с точки зрения точности, логарифмических потерь, кривой ROC и AUC. Однако, основываясь на наших выводах, Gradient Boosting немного превзошел XGBoost по всем показателям оценки.

Развертывание модели

Этап развертывания является ключевым этапом в жизненном цикле моделей машинного обучения, поскольку он касается фактического использования модели в производстве с целью создания прогнозов на основе новых данных.

На этом этапе важно учитывать, что прогнозируемые данные не имеют целевых меток, поэтому невозможно использовать оценочную метрику для оценки производительности модели.

Чтобы разработать рабочий процесс развертывания, мы начали с импорта новых немаркированных данных. Затем мы применили те же шаги предварительной обработки, что и во время обучения, и импортировали обученную модель с помощью узла чтения моделей. Наконец, мы создаем прогнозы для немаркированного набора данных с помощью узла Gradient Boosted Trees Predictor и визуально изучаем результаты. На рисунке 8 мы видим, что модель предсказала начало диабета у 59% пациентов по сравнению с 41% пациентов, которые не относятся к группе риска.

Стоит отметить, что если обученная модель удовлетворительно работала во время обучения, полученные прогнозы можно было использовать для расширения набора обучающих данных дополнительными помеченными наблюдениями. Таким образом, можно проводить последующие анализы и улучшать обученную модель.

Загрузите рабочий процесс развертывания бесплатно с Центра сообщества KNIME.

Data App: интерактивный инструмент для ранней диагностики

Обучение и развертывание модели машинного обучения для прогнозирования диабета имеет смысл только в том случае, если ее можно легко и интуитивно использовать с помощью элегантного и удобного пользовательского интерфейса. С этой целью мы разработали KNIME Data App с целью создания впечатляющего опыта как для обычных пользователей, так и для экспертов в этой области. Наше приложение разделено на четыре основные страницы, каждая из которых предназначена для предоставления всестороннего обзора диабета и его ранней диагностики.

Первая страница приложения представляет собой подробное введение в диабет с важной информацией о причинах, симптомах и последствиях. Эта страница была разработана, чтобы предоставить полный обзор диабета, чтобы каждый пользователь мог полностью понять природу заболевания.

Вторая страница приложения посвящена модели, используемой для диагностики диабета, а также показателям, используемым для оценки эффективности модели. Эта страница была разработана, чтобы предоставить пользователям всесторонний обзор процесса диагностики и обеспечить правильное понимание того, как генерируются прогнозы и в какой степени модель можно считать надежной.

Третья страница — это сердце и душа приложения. Здесь пользователи могут вводить свои данные (например, демографические данные, привычки и т. д.), чтобы определить вероятность развития диабета или нет. Эта страница была разработана, чтобы быть простой в использовании и понятной, чтобы пользователи могли использовать приложение интуитивно и быстро.

Наконец, на последней странице приложения пользователи могут наблюдать за полученными результатами и, при необходимости, также могут изменять диагностический порог. Кроме того, мы также предоставили возможность показать, как снизить процент риска развития диабета с помощью конкретных действий.

Таким образом, дизайн приложения для данных был направлен на предоставление всестороннего обзора диабета и его диагностики, чтобы предложить пользователям полезный и информированный опыт. Мы уверены, что приложение будет большим подспорьем всем, кто интересуется профилактикой и лечением сахарного диабета.

Загрузите Рабочий процесс DataApp бесплатно с Центра сообщества KNIME.

Заключение

В рамках этого проекта мы провели интенсивное обучение, тестирование и оценку различных моделей, чтобы определить наиболее эффективный подход к решению проблемы бинарной классификации при ранней диагностике диабета. Нашей основной целью было как можно раньше определить модель, которая могла бы точно предсказать наличие или отсутствие диабета у пациентов.

Для достижения этой цели мы использовали тщательный подход, который включал тщательное управление данными, выбор наиболее подходящих моделей и проведение тщательной оценки выбранных моделей для обеспечения хорошей производительности. Log-Loss был основной метрикой, используемой для оценки и ранжирования классификаторов. Была выбрана модель Gradient Boosting, поскольку она продемонстрировала исключительную производительность на тестовом наборе, превзойдя все остальные классификаторы. Следовательно, мы пришли к выводу, что выбранная модель будет хорошо работать с невидимыми данными. Это означает, что на него также можно положиться в плане обеспечения точных и надежных прогнозов, что является важным условием для разработки эффективного инструмента профилактики диабета.

Действительно, создание мощного классификатора сыграло важную роль в разработке надежного инструмента профилактики диабета, который люди могут использовать, чтобы принимать активные меры для управления своим здоровьем. Предоставляя точный диагноз и рекомендуя меры предосторожности, наше веб-приложение может помочь людям предпринять необходимые шаги для снижения риска развития диабета.

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

Кроме того, мы могли бы улучшить UX нашего веб-приложения, внедрив механизмы обратной связи с пользователями, оптимизировав процесс сбора данных и предоставив персонализированные рекомендации. Это может помочь повысить вовлеченность пользователей и внедрение инструментов.

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

Рекомендации

● AashiDutt, S.G., 2022 г. Конкурс по прогнозированию диабета (tfug chd, ноябрь 2022 г.).

● Курса М.Б., Рудницкий В.Р., 2010 г. Выбор функций с помощью пакета boruta. Журнал статистического программного обеспечения 36, 1–13.

● Wolpert, D.H., 1992. Многоуровневое обобщение. Нейронные сети 5, 241–259.