Использование контролируемых алгоритмов машинного обучения, таких как KNN, логистическая регрессия, гауссовский NB, SVM, деревья решений, случайный лес, XGBoost и глубокое обучение (Keras - сверточная нейронная сеть)

Рак груди возникает, когда в тканях груди обнаруживаются вредные (злокачественные) раковые клетки, обычно он развивается из протоков в груди. Затем раковые клетки могут распространяться по груди и другим частям тела.

Знаете ли вы, что почти у 1 из 16 женщин в Сингапуре в течение жизни будет диагностирован рак груди?

По данным Госпиталя Глениглс Сингапур, рак груди сегодня является ведущей причиной смерти от рака у женщин в Сингапуре. К счастью, благодаря более раннему выявлению и улучшенному лечению больше женщин выживают :)

Мотивация / цель

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

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

Информация о данных

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

Первая прогностическая модель: цито-модель

После использования рекурсивного исключения функций с перекрестной проверкой (RFECV) и RandomForest мне удалось сократить с 30 функций до 7 лучших для лучшей точности, и важность функции показана ниже:

Для моей цитомодели я фактически попробовал несколько контролируемых алгоритмов машинного обучения и сравнил их по точности, AUC-баллу, логарифмическим потерям и F1-баллу.

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

Кривая ROC с использованием XGBoost выглядит великолепно, не так ли? Кривая точности и отзыва помогает мне выбрать пороговое значение для дальнейшей оптимизации моей модели.

Теперь, что касается моей матрицы заблуждения, поскольку я не хочу ложноотрицательных (ЛО), что означает пропуск любого человека, которого ошибочно называют здоровым, но на самом деле он болен раком, этот нежелательный результат может привести к отсрочке лечения, которого я не хочу. Поэтому я скорректировал свой порог, чтобы оптимизировать мой отзыв до 100% без слишком большого ущерба для моей точности. Наконец, моя модель имеет точность 97% в прогнозировании злокачественных клеток.

Вторая прогностическая модель: гистомодель

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

Теперь я кратко объясню, как работает CNN. Построение CNN состоит из 3 частей: свертка, объединение в пулы и выравнивание.

  1. Свертка

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

2. Объединение

Объединение (также называемое субдискретизацией или понижающей дискретизацией) снижает размерность каждой карты функций, но сохраняет наиболее важную информацию.

3. Сглаживание

Матрица преобразуется в линейный массив, чтобы ввести его в узлы нашей нейронной сети.

Краткое изложение схемы показывает, что действительно происходит, и обработка в модели CNN здания показана ниже:

Помня об этой идее, я разработал свою методологию для моей второй модели прогнозирования (Histo-model), используя Tensorflow и Keras.

Краткое изложение моей модели CNN:

Наконец, моя оценка модели CNN имеет замечательную точность 83% и показатель AUC 0,91. Я бы сказал, неплохо.

Простое веб-приложение с использованием Flask

Для моих 2 прогнозных моделей я создал очень простое приложение-флягу, пожалуйста, взгляните на гифку о том, как работает мое приложение :)

Заключение

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

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

Вещи, которые нужно улучшить, - это мой результат CNN и, конечно же, мое очень простое веб-приложение.

Наконец, для будущей работы я хотел бы изучить PyTorch и трансферное обучение.

Прежде чем я подпишусь, я хочу поделиться с вами этой цитатой :)

Я считаю, что с такими диагностическими инструментами, как мой, мы на шаг впереди в постановке точного и последовательного диагноза, а это, в свою очередь, определенно приведет к улучшению клинических результатов: D

Спасибо, что уделили время чтению! Чтобы узнать больше об этом проекте, посетите мой GitHub :)