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

Здравоохранение играет важную роль в жизни людей и должно быть доступным. Индустрия здравоохранения представляет собой сложную систему с множеством движущихся компонентов. Он быстро расширяется. В то же время мошенничество в этой отрасли становится критической проблемой. Мошенничество в сфере здравоохранения - это организованная преступность, в которую вовлечены коллеги поставщиков медицинских услуг, врачи, получатели помощи, действующие вместе для подачи заявлений о мошенничестве. Во-первых, мы должны понимать, что каждая отрасль хочет получать прибыль, поэтому они все равно будут ее получать. Так что нормальный бенефициар даже не понимает, что его обманывает компания. Итак, здесь, в этом блоке, придумайте решение для прогнозирования потенциально мошеннических поставщиков на основе поданных ими претензий. Кроме того, мы выясним, какие наиболее важные переменные помогают в обнаружении поведения потенциально мошеннических провайдеров.

Оглавление:

1. бизнес-проблема

2. матрица эффективности

3.Источник данных

4. Приложение к алгоритму машинного обучения

5.Анализ исследовательских данных

6. Подготовка данных

7.Модель машинного обучения

8. модель ансамбля

9. производство

10.Будущая работа

11.Linkedin и репозиторий Github

12. ссылка

1. Бизнес-проблема: -

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

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

Деловые ограничения: -

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

Ошибки могут стоить очень дорого.

2. Таблица эффективности: -

Для матрицы эффективности мы использовали оценку AUC путаницы, оценку F1, матрицу неточности.

матрица неточностей:

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

Оценка F1

F1-Score - это мера, сочетающая точность и отзывчивость. Обычно его описывают как среднее гармоническое из двух. Гармоническое среднее - это просто еще один способ вычисления среднего значений, который обычно описывается как более подходящий для соотношений (таких как точность и отзыв), чем традиционное среднее арифметическое. Формула, используемая для оценки F1 в этом случае:

Оценка AUC

  • AUC также называется ОБЛАСТЬ ПОД КРИВОЙ. Он используется в классификационном анализе, чтобы определить, какая из используемых моделей лучше всего предсказывает классы. Пример его применения - кривые ROC.
  • Значение AUC варьируется от 0 до 1. Модель, прогнозы которой на 100% неверны, имеет AUC, равную 0, а если прогнозы верны на 100%, имеет AUC, равную 1.

3. Приложение к алгоритму машинного обучения: -

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

4. Источник данных: -

Весь набор данных загружен с Kaggle. Ссылка ниже

https://www.kaggle.com/rohitrox/healthcare-provider-fraud-detection-analysis

Анализ набора данных и столбцов: -

У нас есть в общей сложности четыре файла CSV. Данные стационарного пациента, данные амбулаторного лечения, данные получателя помощи, целевые данные.

А. В стационарных и амбулаторных данных-

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

  • Бенид: - это уникальный идентификатор, присвоенный каждому получателю.
  • Clamid: - это, по сути, уникальный идентификатор для каждой поданной заявки.
  • Дата начала и окончания подачи заявки: - каждая заявка, когда начинается требование и в какое время оно удовлетворяется.
  • Провайдер: - это уникальный идентификатор, который принадлежит каждой страховой компании.
  • InscClaimAmtReimbursed: в основном это сумма, которую получатель получит после подачи своего медицинского документа в страховую компанию.
  • Лечащий врач: - это обычно идентификатор врача, который посещал конкретного получателя помощи.
  • OperatingPhysician: - это также идентификатор врача.
  • Другой врач: - идентификатор другого врача, который принимает пациентов.
  • DeductibleAmtPaid: - Предположим, что больничные счета составляют 25 тысяч, а франшиза - 10 тысяч, тогда получатели должны заплатить первые 10 тысяч, после чего страховая компания выплатит оставшуюся сумму.
  • Дата поступления и выписки: - когда пациент поступает и выписывается из больницы.
  • ClmAdmitDiagnosisCode: - это в основном, когда пациента помещают в больницу в соответствии с его начальными симптомами, какое у него заболевание в соответствии с этим, он получает код.
  • DiagnosisGroupCode: - общее лечение пациента, этот код принадлежит этому лечению.
  • Диагностический код претензии 1-10: - Для каждого лечения даются некоторые коды, диагностические коды - это те коды, которые получатель требует вернуть деньги.
  • ClmProcedureCode_1 -6: - Фактическое лечение, пациенты проходят. В основном коды Тьера.

Б. Данные получателя: -

Здесь всего 25 столбцов. Теперь поговорим по порядку.

  • BeneID: - Здесь это уникальный идентификатор, присвоенный каждому получателю, зарегистрировавшемуся в компании.
  • DOB, DOD: - Это дата рождения и дата смерти каждого получателя.
  • Пол: - Пол каждого получателя
  • Раса, штат, страна: - каждый бенефициар принадлежит к какой стране и штату.
  • Парамедицинское состояние: - Остальные столбцы относятся к парамедицинскому состоянию бенефициара, например ChronicCond_Heartfailure, 'ChronicCond_KidneyDisease, ChronicCond_Cancer, ChronicCond_Diabetes, ChronicCond_IschemicHeart, ChronicCond_Osteois

C. Целевые данные: -

Здесь присутствуют две колонки, поставщик, цель.

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

5. очистка данных:

  • В этих данных представлено множество значений NULL, поэтому перед тем, как перейти к любому из экспериментов, мы должны обработать эти значения здесь, поскольку мы знаем, что иногда значения NULL могут быть отличным источником данных.
  • Сначала мы должны таким образом объединить наши три файла CSV.
  • Теперь в столбце DOD много значений NULL означает, что пациенты живы, мы помещаем им сегодняшнее значение только для расчета возраста пациентов .
  • В парамедицинском состоянии здесь присутствует множество заболеваний, значения в основном 1,2, Да. Итак, здесь вместо 2 мы ставим ноль, что означает отсутствие болезни, а вместо «да» мы ставим 1.
  • Заявление о диагностическом коде 1-10, ClmProcedureCode_1 -6 здесь всего 16 столбцов, здесь представлены в основном значения, здесь разные коды. Заменим недостающие значения на ноль. Фактические значения с 1 только для расчета, сколько лечебных процедур пациент перенесет. Таким образом мы очистили набор данных здесь.

6. Анализ исследовательских данных: -

Заключение:

  • На основе этого исследовательского анализа данных мы постараемся выделить здесь некоторые интересные особенности. Из приведенной выше диаграммы видно, что большинство случаев мошенничества произошло в коде страны - 200,470,400 и в коде штата - 5,10,33,39.
  • Итак, здесь мы берем топ-15 штатов и стран, где происходит максимальное мошенничество, и мы создаем здесь две характеристики: страна мошенничества и состояние мошенничества, если пациенты принадлежат к этим штатам и стране, тогда мы ставим 1 этим переменным, потому что, скорее всего, они будут жертвами. мошенничества.

заключение:

  • На первой диаграмме ось x представляет собой разницу между общим количеством процедурных кодов и общим количеством диагностических кодов для каждого пациента, из графика мы можем видеть, что разница между жертвами мошенничества равна единице. Таким образом, на основе этого анализа мы создаем разницу в характеристиках, где разница между этими двумя кодами будет присутствовать для каждого пациента.
  • На 2-й диаграмме для каждого пациента мы подсчитываем, от скольких заболеваний он / она страдал, чтобы увидеть, что тех, кто страдает от четырех разных болезней, больше всего обманывает поставщик.

заключение:

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

Вывод:

  • первый график - это, по сути, pdf-файл возраста пациентов, что означает, что ось абсцисс представляет возраст пациента, ось ординат представляет собой количество точек, присутствующих в этом конкретном возрасте. Это означает, что здесь находится от 80 до 90 большинства пациентов. И переход к функции возраста дела о мошенничестве не дает много информации между данными о мошенничестве и данными, не связанными с мошенничеством.
  • Второй график представляет собой pdf-файл количества идентификаторов получателей для каждого провайдера. ось абсцисс представляет количество бенефициаров, а ось ординат - количество поставщиков. Здесь имеется в виду, что большинство провайдеров, занимающихся мошенничеством, имеют менее 500 идентификаторов получателей.

Заключение:

  • Первый график означает, что в данных присутствуют два кода DiagnosisGroupCode и ClmAdmitDiagnosisCode, один выдается пациенту в момент поступления, другой фактически является кодом лечения, через который проходит пациент. мы хотим проверить, совпадают ли эти два кода или нет. Один означает, что тот же ноль означает не то же самое. Мы наблюдали, что большинство случаев, которые становятся жертвами мошенничества, имеют код sam.
  • На втором графике после лечения пациент должен или не отдавать деньги, несмотря на наличие страховки. Ноль означает, что не нужно платить, один означает, что нужно платить деньги. Здесь мы заметили, что в большинстве случаев не дают деньги жертвам мошенничества.

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

В этом разделе мы готовим данные здесь.

  • После создания всех функций, поскольку мы проводим здесь анализ мошенничества с поставщиками, мы должны сделать данные с точки зрения поставщика. Это означает, что у каждого провайдера много бенефициаров, и мы создаем здесь функции для каждого бенефициара. Таким образом, мы должны сгруппировать функции в соответствии с провайдером.
  • Итак, здесь мы берем такие функции, как clamDiagnosiCode1to 9, состояние мошенничества и т. Д., Мы суммируем эти группы значений функций по каждому провайдеру и создали набор данных под названием Train_sum.
  • Таким же образом мы создаем данные здесь Train_Data_mean, здесь мы подразумеваем значение группы функций поставщиком. Здесь мы берем такие столбцы, как InscClaimAmtReimbursed »,« DeductibleAmtPaid »,« Допустимые дни »,« ChronicCond_Alzheimer »,« ChronicCond_Heartfailure »,« ChronicCond_Cancer »и т. Д. Для каждого получателя.
  • Создаем сейчас Train_Count здесь для каждого провайдера, сколько бенеидов, заявлений присутствует мы их подсчитываем.
  • Затем мы объединили здесь три набора данных Train_Count, Train_Data_mean, Train_sum. Тогда это окончательные данные, и они готовы к классификации.

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

8.Модель машинного обучения: -

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

  • На этом графике Красная полоса - это значения AUC для каждой модели здесь, а зеленые полоски - это оценка F1 каждой модели здесь.
  • Итак, в дальнейшем дайте данные всем моделям. Случайный лес дает здесь наилучшее значение. Здесь значение AUC составляет 0,94, оценка F1 составляет 0,52.

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

9. ансамблевая модель: -

Это блок-схема нашей ансамблевой модели. Итак, сначала мы разделили наши данные на две части: D1 и D3, где D1 - это 80 процентов данных, D3 - это 20 процентов данных. Теперь мы разделили D1 на две части - D4 и D2. У нас есть всего n базовых классификаторов для обучения этих базовых классификаторов, которые мы берем данные из D4 случайным образом с заменой. Для прогноза мы использовали данные D2. Затем мы получили общее количество прогнозов, которые мы объединили с этими данными, и метка этих данных является меткой класса D2. И мы используем эти данные для обучения метаклассификатора. В качестве тестовых данных мета-классификатора мы берем D3, помещаем эти данные в n-й базовый классификатор и получаем n-й прогноз. Теперь мы объединили эти значения и использовали их для тестовых данных для нашего метаклассификатора.

Результат:

Здесь вся модель как мета-классификатор дает почти такой же результат. Итак, мы переходим к логистической регрессии.

Model test F1 score is :  0.49134948096885817
Model test AUC score is :  0.9086282032800701

10. производство:

Итак, для производства мы использовали здесь flask API. Развертываем нашу модель в экземпляре AWS EC2. Итак, если пользователь помещает какой-либо идентификатор поставщика на веб-страницу. В соответствии с идентификатором поставщика мы получим данные из набора данных и поместим данные в n базовых классификаторов, где эти базовые классификаторы уже предварительно обучены. Итак, мы получили n прогнозов, мы объединили эти значения и поместили их в мета-классификатор и получили здесь окончательный результат. Является ли конкретный провайдер мошенником или нет.

11.Будущая работа:

Мы можем расширить нашу работу еще на один шаг, используя модель глубокого многослойного персептрона (техника глубокого наклона) с функцией активации Relu в скрытом и Sigmoid / SoftMax на последнем уровне.

12.Linkedin и репозиторий Github: -

Https://www.linkedin.com/in/soumya-kundu-59360a165/



13. ссылка

  1. Https://www.appliedaicourse.com
  2. Https://rohansoni-jssaten2019.medium.com/healthcare-provider-fraud-detection-and-analysis-machine-learning-6af6366caff2
  3. Https://www.kaggle.com/rohitrox/healthcare-provider-fraud-detection-analysis