Хотите применить ИИ в здравоохранении? Выполняйте эти проекты, чтобы отточить свои навыки.
Аристотель однажды сказал: «То, чему мы должны научиться, прежде чем мы сможем это сделать, мы узнаем, выполняя их». Наш человеческий мозг лучше всего учится на наблюдениях, опыте и обратной связи этих двоих. Самостоятельная работа, особенно при изучении науки о данных, дает богатый опыт и приводит к наблюдениям, прерывающим длительный опыт обучения.
Основная часть обучения науке о данных поступает из «выполнения» проектов в области науки о данных, это помогает в накоплении более глубоких знаний, большем удержании, понимании «реальных» проблем, с которыми сталкиваются специалисты по данным, и в целом оттачивает ваши технические навыки. Кроме того, эти проекты в области науки о данных добавят в ваше портфолио или резюме, что поможет вам найти лучшую работу.
Я перечислил следующие проекты, каждый из которых посвящен определенному типу задачи машинного обучения и алгоритму, обновляющему ваши общие навыки машинного обучения и обработки данных.
Прогноз инсульта
Прогноз цирроза печени
Диабетическая ретинопатия
Прогнозирование по временным рядам случаев Covid-19 и уровня смертности
Обнаружение рака груди
Навыки, которые вы освоите с помощью каждого проекта:
- Прогнозирование хода: мы будем применять машины опорных векторов для решения этой проблемы. SVM - это наиболее широко используемый алгоритм в области здравоохранения из-за некоторых преимуществ, которые он предоставляет. Следовательно, необходимо овладеть этим алгоритмом, который в конечном итоге будет очень полезен при его применении в сфере здравоохранения. Мы также проведем обширный исследовательский анализ данных для этого проекта, а также отточим ваши навыки EDA.
- Прогноз цирроза печени. В этом проекте мы будем использовать классификатор на основе дерева решений xgboost. Этот проект отточит наши навыки в наиболее часто используемом методе ансамблевого обучения - xgboost. Кроме того, с помощью этого проекта мы обновим наши навыки EDA.
- Диабетическая ретинопатия. Это проблема компьютерного зрения. Компьютерное зрение широко применяется в области здравоохранения и является обязательным навыком для всех, кто хочет применить ИИ в здравоохранении, главным образом потому, что многие медицинские данные представлены в виде диагностических изображений, например, в виде диагностических изображений. МРТ и др.
- Прогнозирование временных рядов случаев Covid-19 и уровня смертности: Этот проект включает анализ временных рядов данных, связанных с COVID-19. Анализ временных рядов - отличный набор навыков в вашем арсенале машинного обучения. Основная цель этого проекта - понять, как случаи заболевания COVID-19 прогрессируют в каждом регионе в отдельности, а затем в глобальном масштабе в целом. Наличие моделей временных рядов в вашем портфолио во время процесса приема на работу даст вам дополнительное преимущество и отобразит разнообразие ваших знаний в области науки о данных. Кроме того, составление ключевых идей на основе данных после тщательного анализа данных - одно из самых недооцененных навыков, которыми должен обладать специалист по данным. Этот проект также поможет вам развить навыки критического мышления, необходимые для решения сложных проблем и анализа данных.
- Обнаружение рака груди. В этом проекте мы будем использовать метод глубокого обучения. Это одна из самых важных и сложных частей машинного обучения в целом. Обязательно оттачивайте свои навыки в методах глубокого обучения, этот проект поможет вам в этом.
Применение машинного обучения в здравоохранении является сложной задачей из-за нехватки данных, низкого качества и непоследовательности. Каждый из проектов в целом поможет вам подготовиться к решению этой задачи, поскольку в каждом из наборов данных есть одна или несколько таких проблем. Применяя методы, упомянутые ниже, вы можете научиться развивать свои навыки для лучшего решения проблем с данными, что поможет вам пройти собеседование и получить отличную работу.
В каждом проекте я буду указывать цель проблемы, ссылку на набор данных, используемый алгоритм и процедуру реализации. Важно выполнять эти проекты самостоятельно, поэтому я не буду предоставлять полный код. Но не волнуйтесь! Я предоставлю пошаговую схему процесса реализации, а также перечислю некоторые важные библиотеки и функции, которые будут использоваться в каждом проекте. Так что оставайся со мной.
А теперь давайте углубимся в проекты!
1. Прогноз инсульта:
В этом проекте мы будем предсказать, будет ли у пациента сердечный удар или нет, на основе его / ее сопутствующих заболеваний, работы и образа жизни. Подобные проекты широко применяются в секторе здравоохранения, выполнение этого проекта даст вам лучшее понимание анализа данных, очистки данных, визуализации данных и алгоритмов.
Набор данных - Данные по ходу доступны на Kaggle.
В этом наборе данных перечислены несколько характеристик, таких как пол, возраст, уровень глюкозы, ИМТ, статус курения, другие сопутствующие заболевания и т. Д., А также целевая переменная: инсульт. В каждой строке указывается важная информация о пациенте. Ниже перечислены функции, перечисленные в наборе данных:
1) id: уникальный идентификатор
2) пол: «Мужской», «Женский» или «Другой»
3) возраст: возраст пациента
4) гипертония: 0, если у пациента нет гипертонии, 1, если у пациента гипертония.
5) heart_disease: 0, если у пациента нет сердечных заболеваний, 1, если у пациента сердечное заболевание.
6) ever_married: «Нет» или «Да»
7) work_type: «дети», «Govt_jov», «Never_worked», «Private» или «Self-worker»
8) Residence_type: «Сельский» или «Городской»
9) avg_gluosis_level: средний уровень глюкозы в крови
10) ИМТ: индекс массы тела
11) Smoking_status: «ранее курил», «никогда не курил», «курит» или «неизвестен» *
12) инсульт: 1, если у пациента был инсульт, или 0, если нет.
Этот набор данных содержит всю необходимую информацию, необходимую для прогнозирования вероятности инсульта, и эти идентификаторы также часто используются практикующими врачами. Эти входные параметры можно использовать для прогнозирования вероятности инсульта у пациента.
Алгоритм:
Это может быть реализовано с помощью машин опорных векторов. Это выгодно для приложений с небольшим размером выборки. SVM продемонстрировала высокую эффективность при решении задач классификации в биоинформатике, поэтому она так широко используется в сфере здравоохранения.
Подгоните данные с помощью линейной SVM. Импортируйте библиотеку как:
из sklearn.svm импортировать SVC
Теперь установите SVC с гауссовым ядром и посмотрите, как изменяется граница решения. Используйте ядро «rbf». Примените это с помощью этой функции:
SVC_Gaussian = SVC (ядро = ’rbf’)
Вы также можете использовать метод Nystroem. Импортируйте библиотеку как:
из sklearn.kernel_approximation import Nystroem
Реализация:
Прежде всего, очистите данные. Предостережение при использовании этого набора данных заключается в том, что он имеет определенные нулевые значения и выбросы, вы можете либо удалить их, либо заменить их средним значением. После этого выполните визуализацию данных, чтобы понять лежащие в основе отношения и зависимости внутри данных. Создавайте графики кошек, тепловые карты, парные и коробчатые диаграммы для различных функций набора данных, чтобы искать любые связи между функциями и целевой переменной.
После этого разделите данные на обучающие и тестовые наборы. Обучите, а затем спрогнозируйте модель случайного леса на наборе данных. В конце концов, получите точность, отзыв и точность, чтобы проверить работу модели. Из sklearn.metrics можно импортировать классификационный_отчет, точность_скоре, точность_четко, отзыв_оценку, чтобы проверить показатели производительности.
2. Прогноз цирроза печени:
Цирроз печени - широко распространенная проблема, особенно в Северной Америке, из-за большого потребления алкоголя. В этом проекте мы будем прогнозировать цирроз печени у пациента на основе определенного образа жизни и состояния здоровья пациента.
Набор данных: Этот набор данных доступен на Kaggle, который был собран в ходе исследования Mayo Clinic.
Этот набор данных содержит около 20 функций. Эти характеристики связаны с данными пациента, такими как возраст, пол и т. Д., И анализами крови пациента, такими как протромбин, триглицериды, уровни тромбоцитов и т. Д. Все эти факторы помогают понять шансы пациента на цирроз печени.
Опять же, проблемой для этого набора данных являются нулевые значения, которые необходимо либо заменить, либо удалить. Кроме того, в этом наборе данных есть несбалансированные классы, поэтому может потребоваться повышающая выборка набора данных.
Алгоритм:
Мы можем использовать для этого классификатор случайного леса, а также классификатор XGBoost для этой модели. Хорошая практика - обучить данные по обеим этим моделям и выбрать модель с лучшими показателями. Из xgboost мы можем импортировать XGBClassifier.
Реализация:
Сначала выполните некоторую очистку данных, проверьте выбросы и нулевые значения. Выбросы можно проверить, вычислив z-оценку набора данных и сохранив пороговое значение, при превышении которого значения данных будут считаться выбросами. Затем проведите исследовательский анализ данных и визуализацию, чтобы лучше понять данные. При разделении данных на обучающий и тестовый наборы используйте стратифицированное K-кратное увеличение, чтобы целевая переменная была одинаково сбалансирована во всех тестовых и обучающих разделах. Это можно сделать, импортировав StratifiedKFold из sklearn.model_selection. Затем обучите данные обеих моделей и выберите модель на основе показателей производительности, таких как точность, отзыв, точность и т. д. Из sklearn.metrics можно импортировать classification_report, оценка_точности, оценка_точности, оценка_повтора для проверки показателей производительности.
3. Диабетическая ретинопатия:
Целью этого проекта является выявление и прогнозирование шансов повреждения кровеносных сосудов в ткани задней части глаза (сетчатке) у пациентов с диабетом, что называется диабетической ретинопатией.
Набор данных - этот набор данных можно найти на Kaggle.
Алгоритм:
Это проблема компьютерного зрения, и мы будем применять для ее решения технику глубокого обучения. Мы будем использовать архитектуру U-Net для обучения данных. Для реализации U-Net мы будем использовать keras - мощную библиотеку глубокого обучения, работающую поверх TensorFlow. Импортируйте библиотеки как:
из keras.models импортировать последовательный
из keras.layers импортировать Dense, Conv2D, MaxPooling2D, Dropout, Flatten
В архитектуре U-Net есть разные этапы и уровни. В основном он состоит из трех фаз: расширения, конкатенации и затем фазы сжатия.
Реализация:
Прежде всего, данные (изображение) загружаются, предварительно обрабатываются и преобразуются в формат массива. Значения массива представляют собой интенсивности пикселей.
После предварительной обработки данных разделите данные на обучающую и тестовую части. Это разделение необходимо стратифицировать, чтобы обеспечить пропорциональное соотношение обеих меток и измерить реальное распределение пациентов с ретинопатией и здоровых пациентов. Стратифицированное k-кратное разбиение особенно важно в приложениях здравоохранения, поскольку в противном случае оно может привести к ошибкам в прогнозировании и обнаружении заболеваний. Это можно сделать, импортировав эту библиотеку:
импортировать StratifiedKFold из sklearn.model_selection
Проверьте, как работает модель, посмотрев на потери обучающего набора и набора тестов. Постройте графики для обоих наборов и сравните результаты.
4. Прогнозирование по временным рядам случаев Covid-19 и уровня смертности.
В этом проекте цель - определить характер пандемии и спрогнозировать ее развитие.
Набор данных - этот набор данных доступен по этой ссылке, но изначально взят из Университета Джона Хопкинса.
Этот набор данных содержит информацию о прогрессировании COVID-19, он имеет 6 параметров:
идентификатор, провинция, штат, страна, подтвержденные случаи, смертельные случаи
Цель и реализация:
Вы можете сначала визуализировать данные, чтобы найти возможные тенденции в данных. Проанализируйте временные ряды, особенно количество погибших и подтвержденных случаев для разных регионов и их различия в зависимости от региона.
Основная цель этого проекта - понять, как случаи заболевания COVID-19 прогрессируют в каждом регионе в отдельности, а затем в глобальном масштабе в целом. Сделайте ключевые выводы на основе данных после тщательного анализа данных. Важным навыком специалиста по данным, помимо написания кода и машинного обучения, является способность делать выводы из данных, основанных на критическом мышлении.
В наборе данных ищите, «как количество случаев заболевания увеличивалось в течение определенного периода времени и для определенных регионов больше, чем в других регионах», «регионы, где наклон случаев за определенный период времени выше», «окно для максимального увеличения эволюции смертельных случаев на область".
Вся эта информация имеет решающее значение для мониторинга распространения болезни, разработки стратегий, связанных с пандемией, например: планирование изоляции и т. д.
Алгоритм:
Используйте модель ARIMA для этой проблемы. для реализации этого импорта библиотеки:
из statsmodels.tsa.arima_model импортировать ARIMA
Вы также можете использовать для этого простую модель RNN.
Проверьте распределение случаев с помощью графиков скользящего среднего и стандартного отклонения. Вы также можете проверить стационарность временных рядов с помощью полного теста Дики.
Разделите данные на обучающие и тестовые наборы. Вычислите среднюю абсолютную процентную ошибку и доверительный интервал.
5. Прогнозирование рака груди:
В этом проекте мы предскажем, есть у пациента рак груди или нет.
Набор данных - Набор данных о раке груди можно найти в репозитории UCI ML, а также на Kaggle.
Алгоритм и реализация:
В этом проекте мы будем прогнозировать рак груди на основе образцов жидкости, взятых у пациентов с твердыми образованиями груди. Основываясь на определенных характеристиках ядра клетки, таких как «периметр», «площадь», «текстура», «вогнутость» и т. Д., Мы можем предсказать, является ли рак груди злокачественным или доброкачественным.
Данные включают в себя несколько категориальных функций, их необходимо преобразовать в числовые функции, чтобы любая модель машинного обучения могла их обработать. Для этого мы можем использовать функцию «get_dummies» или «one_hot_encoder» библиотеки sklearn.
После некоторой обработки данных примените алгоритм машинного обучения. Примените глубокую нейронную сеть для этой проблемы. Для его реализации импортируйте эти библиотеки:
из tensorflow.keras.models импортировать последовательный
из tensorflow.keras.layers импорт плотный, активация
Мы можем найти лучшую модель, изменив гиперпараметры, такие как «оптимизатор», «функция потерь» и т. Д. Вы можете попробовать создать две модели с разными функциями потерь и оптимизаторами - loss = 'binary_crossentropy' и «mean_squared_error», optimizer = «rmsprop» и "Адам". Выберите лучшую модель среди типов моделей на основе показателей производительности.
Из sklearn.metrics можно импортировать классификационный_отчет, точность_скоре, точность_четко, отзыв_оценку, чтобы проверить показатели производительности.