Создание возможного решения на основе искусственного интеллекта для помощи врачам в борьбе с COVID-19

Контекст проблемы

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

Болезнь коронавируса была выявлена ​​в декабре 2019 года, и мы все еще боремся, мы не знаем точно, как с ней бороться, со всей вычислительной мощностью, всеми технологическими изобретениями и всеми умными людьми во всем мире, мечтающими колонизировать Марс. или сражаться за землю на Луне, у нас до сих пор нет противоядия от этого явно нового вируса.

Я думаю, что вместо того, чтобы мечтать о колонизации Марса или добыче полезных ископаемых с Луны за деньги, мы должны стоять обеими ногами на земле и искать более полезные решения, которые могли бы помочь нам спасти наш мир. Найти новые пригодные для жизни планеты и покинуть Землю - это не решение, а просто трусливый акт выживания. У нас есть множество более практических проблем, которые необходимо решить, например голод, загрязнение окружающей среды, глобальное потепление, а теперь и COVID-19. Мы должны сосредоточиться на помощи нашим людям, людям, живущим в настоящем и нуждающимся в помощи сейчас. Начните на месте, не спешите менять весь мир, если не можете помочь даже себе или своей семье.

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

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

Небольшой дождь оставляет много пыли, даже если это стартап с очень небольшим доходом, они мгновенно превратили свое решение для мониторинга диабета в приложение для мониторинга COVID-19, таким образом помогая врачам для мониторинга зараженных людей, 24/7, удаленно. Приложение совершенно бесплатно, более того, они предлагают бесплатные датчики и умные часы людям, которые не могут позволить себе такие гаджеты. Фактически они опустошили свои карманы, чтобы помочь нам, помочь в борьбе с этой пандемией. Они настоящие герои, мы должны следовать их примеру, каждый может быть героем, каждый может помочь, героизм - это выбор, а не привилегия. Вы можете найти более подробную информацию об этом проекте в международном пресс-релизе и на их домашней странице.

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

Оценка риска COVID-19 и фильтрация пациентов с помощью искусственного интеллекта

Чтобы контролировать распространение коронавируса, очень важно идентифицировать тех, кто уже был заражен этим новым типом вируса. Золотым стандартом для обнаружения этого вируса является тестирование рОТ-ПЦР (полимеразная цепная реакция с обратной транскрипцией). Но есть одна загвоздка: такой тест требует много времени, трудоемкого ручного процесса и его очень мало. Итак, вопрос в том, можем ли мы придумать альтернативный способ отфильтровать здоровых людей и оценить риск заражения, таким образом уменьшив количество необходимых тестов на COVID-19 . Кроме того, мы хотели бы создать алгоритм автоматической фильтрации, чтобы врачи не тратили свое время на оценку и выбор пациентов, которые нуждаются в дальнейшем тестировании и оценке.

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

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

Он похож на Auto-Sklearn или Auto-Weka, главное отличие состоит в том, что AutomaticAI использует Swarm Intelligence в сочетании с Simulated Annealing », чтобы найти наиболее подходящую модель и как можно быстрее настроить ее гиперпараметры.

Библиотеку PyPi можно установить здесь с помощью команды pip install AutomaticAI. Исходный код алгоритма можно найти здесь.

Предлагаемое решение

Набор данных

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

Он содержит данные о более чем 5000 пациентах и ​​имеет более 100 функций для каждого пациента. Между функциями он содержит результаты регулярных анализов крови с такими атрибутами, как лейкоциты, мематокрит, гемоглобин, тромбоциты, средний объем тромбоцитов и т. Д. Помимо обычных значений анализа крови, он также содержит результаты различных тестов. для вирусов (отличных от коронавируса), таких как респираторно-синцитиальный вирус, грипп A, грипп B, риновирус / энтеровирус и т. д.

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

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

Полученный набор данных сильно несбалансирован, с более чем 500 отрицательными примерами и только несколькими положительными примерами, как вы можете видеть на следующей диаграмме:

Чтобы решить эту проблему, мы использовали библиотеку XAI из EthicalML для передискретизации. После запуска алгоритма передискретизации со скоростью 0,4 мы получили следующий результат:

Мы не хотим запускать передискретизацию с более высокой частотой, потому что это приведет к переобучению.

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

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

Следующим шагом является разделение данных на обучающий и тестовый набор.

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

После запуска этого алгоритма выбранной моделью является RandomForestClassifier с f1-оценкой 95%, что является действительно впечатляющим результатом.

Чтобы оценить нашу модель, мы построили матрицу неточностей.

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

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

Объяснение результатов

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

Чтобы объяснить результаты лучшей модели, которой является RandomForestClassifier, мы использовали важность функции. Важность функции можно рассчитать с помощью библиотеки XAI следующим образом:

Это сгенерирует диаграмму, как на следующем рисунке:

Как мы и ожидали, наиболее важной характеристикой является количество лейкоцитов, или лейкоцитов (WBC). Наличие большего или меньшего количества лейкоцитов, чем обычно, может указывать на основное заболевание. Подсчет лейкоцитов может выявить скрытые инфекции в вашем теле и предупредить врачей о невыявленных заболеваниях. Существует пять основных типов лейкоцитов: нейтрофилы, лимфоциты, эозинофилы, оноциты и базофилы. . Поскольку высокий базофилис не связан с вирусами, бактериями или другими типами инфекций, но является обычным признаком гипотиреоза, на диаграмме важности признаков он выглядит очень низким. Высокое количество нейтрофилов, лимфоцитов, моноцитов или эозинофилов - это обычный признак вирусных инфекций, поэтому, как мы можем ожидать, они имеют гораздо большее значение на диаграмме.

Вторая по важности функция - Тромбоциты. Тромбоциты - это клетки, которые циркулируют в нашей крови и связываются вместе, когда распознают поврежденные кровеносные сосуды. Избыток тромбоцитов вызван инфекцией или другим заболеванием. Обычно количество тромбоцитов оценивается в сочетании со средним объемом тромбоцитов (MPV), что также является важной характеристикой, как показано на картинке. Низкое количество тромбоцитов наряду с высоким MPV возникает, когда тромбоциты разрушаются, обычно антителами, инфекцией или токсинами.

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

Другие функции, такие как Прямой или косвенный билирубин, калий и т. Д., Также используются моделью для исключения инфекций COVID-19, поэтому эти функции снизят риск заражения коронавирусом.

Выводы

В этой статье мы представили возможное решение для предварительной фильтрации пациентов с COVID-19 и оценки рисков с помощью искусственного интеллекта.

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

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

набор данных и весь код можно найти в следующем репозитории git: COVID-19-Patient-filtering-using-AutomaticAI.

Спасибо, что прочитали эту статью! Если вам понравилось, подпишитесь на меня на Medium! Спасибо!

Примечание редакции: Towards Data Science - это издание Medium, в основном основанное на изучении науки о данных и машинного обучения. Мы не являемся специалистами в области здравоохранения или эпидемиологами, и мнения, изложенные в этой статье, не следует интерпретировать как профессиональные советы. Чтобы узнать больше о пандемии коронавируса, нажмите здесь.

Станьте писателем на Medium: https://czakozoltan08.medium.com/membership

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