Введение

Рак шейки матки – это заболевание, при котором в тканях шейки матки (входа в матку из влагалища) образуются злокачественные клетки. Наряду с раком молочной железы и щитовидной железы рак шейки матки является одним из наиболее распространенных видов рака среди женщин. По данным Lancet (2019):

  • Ежегодно более чем у полумиллиона женщин диагностируется рак шейки матки, что приводит к более чем 300 000 смертей во всем мире.
  • Приблизительно 90% случаев рака шейки матки возникают в странах с низким и средним уровнем доходов, в которых отсутствуют организованные программы скрининга и вакцинации против ВПЧ.

Хорошей новостью является то, что большинство случаев рака шейки матки вызвано инфекцией вирусом папилломы человека (ВПЧ), который можно предотвратить с помощью вакцины, а рак шейки матки имеет медленный темп роста, что дает женщинам больше времени для его обнаружения и лечения (93%). коэффициент выживаемости до того, как он станет инвазивным и смертельным (Американское онкологическое общество, без даты). Кроме того, хорошо известны факторы риска, связанные с раком шейки матки: курение, неправильное питание, иммунодефицит, прием иммунодепрессантов, длительный прием противозачаточных средств, возраст, раса, дефицит витаминов А, С и фолиевой кислоты, наличие нескольких половых партнеров, чередование беременности, родов в молодом возрасте, некоторых половых инфекций, передающихся половым путем, плохого социально-экономического положения и низкого уровня образования (Asadi et al., 2020). Рак шейки матки, если его диагностировать на ранней стадии, является одной из наиболее предотвратимых и поддающихся лечению форм рака, некоторые даже говорят, что это лучшая форма рака. Использование метода машинного обучения (МО) для прогнозирования рака шейки матки с использованием факторов риска является неинвазивным и эффективным способом помочь в его ранней диагностике.

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

Интерпретируемость осуществляется на двух уровнях: глобальном уровне и локальном уровне.

  • Глобальные интерпретации: фокусируется на общих решениях модели прогнозирования.
  • Локальные интерпретации: основное внимание уделяется одному конкретному индивидуальному прогнозу.

Чтобы повысить прозрачность и подотчетность, мы рассмотрим несколько методов объяснимости модели на обоих уровнях, используя:

  • Важность переменной:глобальный метод ранжирования важности всех функций. Это не дает представления о том, как функция влияет на прогнозы модели ML. Он только измеряет, насколько эффективна функция по сравнению с другими функциями.
  • Графики частичной зависимости (PDP):глобальный метод, который интерпретирует то, что происходит с прогнозами модели, поскольку различные функции корректируются с учетом скорости отклика.
  • Значения Шепли (значения SHAP): глобальный метод, который интерпретирует, как вклад функции влияет на результат модели от базового значения до окончательного прогноза (отрицательного или положительного).
  • Локальные интерпретируемые объяснения, не зависящие от модели (LIME): локальный метод, который не пытается объяснить всю модель, а только аппроксимирует отдельные прогнозы.

Постановка задачи

В этом проекте мы будем определять характеристики женщин, у которых более высока вероятность развития рака шейки матки, и использовать Automatic Machine Learning H2O AutoML, чтобы прогнозировать, купит ли конкретный клиент срочный депозит. Мы также будем использовать методы объяснимого ИИ (XAI), такие как График переменной важности, График частичной зависимости, Сводной график SHAP и LIME. чтобы объяснить, как каждая из введенных нами характеристик влияет на предсказание модели.

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

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

  • Возраст: в годах
  • Количество сексуальных партнеров
  • Первый половой акт (возраст в годах)
  • Количество беременностей
  • Курит: да или нет
  • Курит (в годах):количество лет курения.
  • Выкуривает (пачек/год): количество пачек сигарет в год.
  • Гормональные контрацептивы: да или нет
  • Гормональные контрацептивы (в годах): количество лет использования противозачаточных средств.
  • ВМСда или нет
  • ВМС (лет):количество лет использования устройства ВМС.
  • ЗППП:было ли у пациента когда-либо заболевание, передающееся половым путем (ЗППП) да или нет
  • ЗППП (количество):количество диагнозов ЗППП.
  • ЗППП:кондиломатоз
  • ЗППП: кондиломатоз шейки матки
  • ЗППП: вагинальный кондиломатоз
  • ЗППП: вульво-промежностный кондиломатоз
  • ЗППП: сифилис
  • ЗППП: воспалительные заболевания органов малого таза
  • ЗППП: генитальный герпес
  • ЗППП: контагиозный моллюск
  • ЗППП:СПИД
  • ЗППП: ВИЧ
  • ЗППП: гепатит B:
  • ЗППП: ВПЧ: вирус папилломы человека
  • Время с момента первого диагноза ЗППП
  • Время, прошедшее с момента последнего диагноза ЗППП
  • Dx:Cancer:диагностика рака
  • Dx:CIN: диагностика цервикальной интраэпителиальной неоплазии
  • Dx:HPV: диагностика вируса папилломы человека
  • Dx: диагностика
  • Hinselmann: скрининговый тест на рак шейки матки — диагностика
  • Шиллер: скрининговый тест на рак шейки матки — диагностика
  • Цитология: скрининговый тест на рак шейки матки — диагностика
  • Биопсия:результаты «Здоров» или «Рак» — диагноз

Методология

Наши особенности X:

['Age',
 'Number of sexual partners',
 'First sexual intercourse',
 'Num of pregnancies',
 'Smokes',
 'Smokes (years)',
 'Smokes (packs/year)',
 'Hormonal Contraceptives',
 'Hormonal Contraceptives (years)',
 'IUD',
 'IUD (years)',
 'STDs',
 'STDs (number)',
 'STDs:condylomatosis',
 'STDs:cervical condylomatosis',
 'STDs:vaginal condylomatosis',
 'STDs:vulvo-perineal condylomatosis',
 'STDs:syphilis',
 'STDs:pelvic inflammatory disease',
 'STDs:genital herpes',
 'STDs:molluscum contagiosum',
 'STDs:AIDS',
 'STDs:HIV',
 'STDs:Hepatitis B',
 'STDs:HPV',
 'STDs: Number of diagnosis',
 'Dx:Cancer',
 'Dx:CIN',
 'Dx:HPV',
 'Dx']

Наша цель y:

'Biopsy'

Мы будем использовать H2O AutoML для обучения 20 различных моделей и выберем лучшую модель. С моделью лидера мы будем использовать DPD и график ICE, чтобы определить важность функций и сделать прогнозы на тестовом наборе. Наконец, мы будем использовать LIME, чтобы найти вклад этих функций в каждом конкретном случае.

Метрики

H2O AutoML генерирует множество показателей производительности в 4 следующих таблицах:

  • Model Metrics
  • Confusion Matrix
  • Maximum Metrics
  • Gains/Lift Table

Исследовательский анализ данных

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 858 entries, 0 to 857
Data columns (total 36 columns):
 #   Column                              Non-Null Count  Dtype 
---  ------                              --------------  ----- 
 0   Age                                 858 non-null    int64 
 1   Number of sexual partners           858 non-null    object
 2   First sexual intercourse            858 non-null    object
 3   Num of pregnancies                  858 non-null    object
 4   Smokes                              858 non-null    object
 5   Smokes (years)                      858 non-null    object
 6   Smokes (packs/year)                 858 non-null    object
 7   Hormonal Contraceptives             858 non-null    object
 8   Hormonal Contraceptives (years)     858 non-null    object
 9   IUD                                 858 non-null    object
 10  IUD (years)                         858 non-null    object
 11  STDs                                858 non-null    object
 12  STDs (number)                       858 non-null    object
 13  STDs:condylomatosis                 858 non-null    object
 14  STDs:cervical condylomatosis        858 non-null    object
 15  STDs:vaginal condylomatosis         858 non-null    object
 16  STDs:vulvo-perineal condylomatosis  858 non-null    object
 17  STDs:syphilis                       858 non-null    object
 18  STDs:pelvic inflammatory disease    858 non-null    object
 19  STDs:genital herpes                 858 non-null    object
 20  STDs:molluscum contagiosum          858 non-null    object
 21  STDs:AIDS                           858 non-null    object
 22  STDs:HIV                            858 non-null    object
 23  STDs:Hepatitis B                    858 non-null    object
 24  STDs:HPV                            858 non-null    object
 25  STDs: Number of diagnosis           858 non-null    int64 
 26  STDs: Time since first diagnosis    858 non-null    object
 27  STDs: Time since last diagnosis     858 non-null    object
 28  Dx:Cancer                           858 non-null    int64 
 29  Dx:CIN                              858 non-null    int64 
 30  Dx:HPV                              858 non-null    int64 
 31  Dx                                  858 non-null    int64 
 32  Hinselmann                          858 non-null    int64 
 33  Schiller                            858 non-null    int64 
 34  Citology                            858 non-null    int64 
 35  Biopsy                              858 non-null    int64 
dtypes: int64(10), object(26)

Этот набор данных страдает от большого количества пропущенных значений.

  • Мы заменим все ? на NaN.
  • Удалите ненужные столбцы, такие как STDs: Time since first diagnosis и STDs: Time since last diagnosis.
  • Есть четыре целевых переменных: Hinselmann, Schiller, Citology и Biopsy, которые являются основными методами диагностики рака шейки матки. Хотя другие тесты могут свидетельствовать о наличии рака, только биопсия может поставить точный диагноз. Биопсия – это взятие небольшого количества ткани для исследования под микроскопом. Поэтому мы откажемся от всех других методов диагностики и оставим только Biopsy в качестве цели.
  • Преобразуйте все столбцы в тип numeric, чтобы мы могли заполнить все пропущенные значения значениями mean.

Вот наш окончательный набор данных: очищен и готов к обучению

RangeIndex: 858 entries, 0 to 857
Data columns (total 34 columns):
 #   Column                              Non-Null Count  Dtype  
---  ------                              --------------  -----  
 0   Age                                 858 non-null    int64  
 1   Number of sexual partners           832 non-null    float64
 2   First sexual intercourse            851 non-null    float64
 3   Num of pregnancies                  802 non-null    float64
 4   Smokes                              845 non-null    float64
 5   Smokes (years)                      845 non-null    float64
 6   Smokes (packs/year)                 845 non-null    float64
 7   Hormonal Contraceptives             750 non-null    float64
 8   Hormonal Contraceptives (years)     750 non-null    float64
 9   IUD                                 741 non-null    float64
 10  IUD (years)                         741 non-null    float64
 11  STDs                                753 non-null    float64
 12  STDs (number)                       753 non-null    float64
 13  STDs:condylomatosis                 753 non-null    float64
 14  STDs:cervical condylomatosis        753 non-null    float64
 15  STDs:vaginal condylomatosis         753 non-null    float64
 16  STDs:vulvo-perineal condylomatosis  753 non-null    float64
 17  STDs:syphilis                       753 non-null    float64
 18  STDs:pelvic inflammatory disease    753 non-null    float64
 19  STDs:genital herpes                 753 non-null    float64
 20  STDs:molluscum contagiosum          753 non-null    float64
 21  STDs:AIDS                           753 non-null    float64
 22  STDs:HIV                            753 non-null    float64
 23  STDs:Hepatitis B                    753 non-null    float64
 24  STDs:HPV                            753 non-null    float64
 25  STDs: Number of diagnosis           858 non-null    int64  
 26  Dx:Cancer                           858 non-null    int64  
 27  Dx:CIN                              858 non-null    int64  
 28  Dx:HPV                              858 non-null    int64  
 29  Dx                                  858 non-null    int64  
 30  Biopsy                              858 non-null    int64
dtypes: float64(24), int64(10)

Визуализация данных

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

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

  • Данные поступили из одного учреждения и небольшого числа пациентов.
  • Огромный дисбаланс классов
  • Особенности — это всего лишь факторы риска. У женщин без какого-либо из этих факторов риска рак шейки матки развивается редко. Однако, хотя эти факторы риска могут увеличить вероятность развития рака шейки матки, у многих женщин с такими рисками это заболевание не развивается.
  • Очень сложно предсказать рак, так как одновременно взаимодействует множество игроков. Например: Риск рака шейки матки увеличивается в 2–3 раза, если инфицированная ВПЧ пациентка курит (Luhn et al. 2013, цит. по Ijaz et al., 2020) или у инфицированных ВПЧ пациенток без рак шейки матки, чем у женщин с более чем одной беременностью (Cancer.gov, 2020)

  • По статистике рак шейки матки чаще всего диагностируется у женщин в возрасте от 35 до 44 лет, средний возраст постановки диагноза — 50 лет. Он редко развивается у женщин моложе 20 лет. Более 20% случаев рака шейки матки выявляют у женщин старше 65 лет. (Американское онкологическое общество, без названия).
  • График, который мы получили, не отражал статистику исследований из-за того, что в нашей выборке в основном было 20–30 лет.
  • Наш график показал, что рак шейки матки может быть диагностирован уже в 16 и чаще всего возникает в early 20s.

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

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

  • First sexual intercourse произошло еще в 10, а рак был обнаружен еще в 11.
  • Ранний половой акт (моложе 20) повышает вероятность развития рака шейки матки.

  • Согласно исследованиям, женщины, у которых было три и более беременностей, более склонны к развитию рака шейки матки (American Cancer Society, n.d.).
  • Женщины, забеременевшие в возрасте 17 лет, в два раза чаще заболевают раком шейки матки позже, чем женщины, не забеременевшие до 25 лет и старше (Американское онкологическое общество, n.d.).

  • Курение может вызвать мутации раковых клеток по всему телу, не только в легких, но и в шейке матки. Курящие женщины в два раза чаще заболевают раком шейки матки, чем некурящие (Американское онкологическое общество, n.d.)

  • Хотя исследователи точно не знают, почему длительный прием (более 5 лет) противозачаточных таблеток увеличивает риск развития у женщины рака шейки матки, но корреляция, по-видимому, существует (Американское онкологическое общество, n.d.).
  • Даже при кратковременном применении гормональных контрацептивов (менее 5 лет) рак шейки матки развивается уже в течение первого года их применения.

  • Некоторые исследования показывают, что женщины, использовавшие внутриматочную спираль (ВМС), имеют более низкий риск развития рака шейки матки по сравнению с женщинами, не использовавшими ВМС в анамнезе (Lassise et al., 1991).

  • Основной причиной рака шейки матки является персистирующая инфекция онкогенным вирусом папилломы человека (ВПЧ). ВПЧ настолько распространен, что почти каждый сексуально активный человек заразится ВПЧ в какой-то момент своей жизни, если он не получит вакцину против ВПЧ. Почти все новые случаи рака шейки матки вызваны штаммом ВПЧ (CDC, 2021).
  • Женщины с заболеваниями, передающимися половым путем (ЗППП), в три раза чаще болеют раком шейки матки, чем другие.

Обучайте модели с H2O AutoML

  • init запускает кластер H2O, который представляет собой блок памяти, в котором живут все наши модели и данные и происходят все вычисления.

Разделите тестовое обучение и определите переменные X y

  • split_frame чтобы получить train и test
  • ratios=[.75] чтобы разделить наши данные на 75% для обучения и 25% для проверки.
  • X будут всеми нашими столбцами, кроме переменной ответа Biopsy.
  • y — это наша переменная ответа Biopsy.
  • h2o.H2OFrame — это кадр данных для H2O, точно так же, как pandas — это кадр данных для Python. Чтобы работать с H2O AutoML, мы должны преобразовать наши панды df в h2o_df, потому что H2O работает под управлением Java, а не Python.

Наши особенности X:

['Age',
 'Number of sexual partners',
 'First sexual intercourse',
 'Num of pregnancies',
 'Smokes',
 'Smokes (years)',
 'Smokes (packs/year)',
 'Hormonal Contraceptives',
 'Hormonal Contraceptives (years)',
 'IUD',
 'IUD (years)',
 'STDs',
 'STDs (number)',
 'STDs:condylomatosis',
 'STDs:cervical condylomatosis',
 'STDs:vaginal condylomatosis',
 'STDs:vulvo-perineal condylomatosis',
 'STDs:syphilis',
 'STDs:pelvic inflammatory disease',
 'STDs:genital herpes',
 'STDs:molluscum contagiosum',
 'STDs:AIDS',
 'STDs:HIV',
 'STDs:Hepatitis B',
 'STDs:HPV',
 'STDs: Number of diagnosis',
 'Dx:Cancer',
 'Dx:CIN',
 'Dx:HPV',
 'Dx']

Наша цель y:

'Biopsy'

Для бинарной классификации требуется дополнительный шаг для преобразования y в коэффициент.

Инициализировать и обучить

  • aml — это наши автоматические модели машинного обучения.
  • H2OAutoML: Когда мы запускаем H2OAutoML, он будет обучать различные модели, перечисленные в разделе «Методология».
  • balance_classes=True для избыточной выборки классов меньшинств или недостаточной выборки классов большинства для достижения баланса классов.
  • stopping_metric='AUC' для оценки классификации, используемой для ранней остановки, чтобы мы не подгоняли наши модели.
  • seed=121 для обеспечения воспроизводимости.
  • train путем подгонки X и y при передаче нашего набора train с training_frame=train.
  • max_models=20, чтобы ограничить только 20 моделями.
  • exclude_algos=['StackedEnsemble'], чтобы исключить многоуровневые модели и сделать их простыми для нашей задачи объяснимости.

Наша лучшая модель - модель GBM (Gradient Boosting Machine).

После завершения обучения H2OAutoML сгенерирует:

  • Model Metrics
  • Confusion Matrix
  • Maximum Metrics
  • Gains/Lift Table
  • Cross-Validation Metrics
  • Scoring History
  • Variable Importance

Я знаю, много информации!

Метрики модели

  • MSE (среднеквадратичная ошибка) измеряет среднее квадратов ошибок или отклонений. Это придает больший вес большим различиям. Чем больше ошибка, тем больше штраф.
  • RMSE (среднеквадратичная ошибка) оценивает, насколько хорошо модель может прогнозировать непрерывное значение. Чем меньше RMSE, тем лучше производительность модели.
  • LogLoss — самый важный показатель классификации, основанный на вероятностях. Чем ниже значение логарифмических потерь, тем лучше модель прогнозирует.
  • AUC (Площадь под кривой) оценивает производительность классификатора, видя, насколько хорошо модель может различать истинные положительные и ложные положительные результаты. 1 означает, что классификатор идеален, 0.5 означает, что классификатор бесполезен и случайен.
  • AUCPR (Площадь под кривой точности-отзыва) оценивает производительность классификатора, видя, насколько хорошо модель может различать точность-отзыв. AUCPR не заботится о TN и гораздо более чувствителен к TP, FP и FN, чем AUC.
  • Gini количественно определяет неравенство между классами. Он измеряет качество бинарного классификатора: 0 означает, что классификатор бесполезен (все классы равны), 1 означает, что классификатор совершенен (все классы максимально не равны).
ModelMetricsBinomial: gbm
** Reported on train data. **

MSE: 0.33985369446958325
RMSE: 0.5829697200280503
LogLoss: 0.9320991854736423
Mean Per-Class Error: 0.05403014920781413
AUC: 0.9802722658052608
AUCPR: 0.975584154580227
Gini: 0.9605445316105217

Объект aml также включает в себя отчет о производительности five-fold cross-validated model по умолчанию.

** Reported on cross-validation data. **

MSE: 0.03733712807617235
RMSE: 0.1932281761963621
LogLoss: 0.12760174945797606
Mean Per-Class Error: 0.08679433933241043
AUC: 0.9427588063374864
AUCPR: 0.533007175280796
Gini: 0.8855176126749729

Наши результаты обучения и проверки (LogLoss, Mean Per-Class Error, AUC, AUCPR) похожи друг на друга, поэтому наша модель не подгонялась.

Наша лучшая модель достигла точности 94%.

Матрица путаницы

  • Act/Pred: фактическое против прогноза
  • f1 – средневзвешенное гармоническое значение precision (TN) и recall (TP). Он говорит нам, какой процент положительных прогнозов является правильным.
  • threshold рассчитывается по H2O, чтобы получить максимальное f1.
Confusion Matrix (Act/Pred) for max f1 
@ threshold = 0.0758614971594553

Ошибка нашей модели составляет 6% для class 0 и 4% для class 1.

Максимальные показатели

  • max f1 – средневзвешенное гармоническое значение precision (TN) и recall (TP). 2*ТП / (2*ТП + ФП + ФН)
  • max f2 – это средневзвешенное гармоническое значение precision (TN) и recall (TP), аналогичное f1, но с более весомым значением отзыва за счет штрафа за FN и FP.
  • max f0point5 – это средневзвешенное гармоническое значение precision (TN) и recall (TP), аналогичное f1, но с precision (TN), которому присваивается больший вес, чем recall.
  • max accuracy определяет, насколько хорошо модель обнаруживает положительные и отрицательные стороны. (ТП + ТН) / (П + Н)
  • max precision: True Negative (TN) или specificity, чтобы определить, насколько хорошо модель обнаруживает негативы. ТП / (ТП + ФП)
  • max recall: True Positive (TP) или sensitivity, чтобы определить, насколько хорошо модель обнаруживает положительные результаты. ТП / П = ТП / (ТП+ФН)
  • max specificity: истинно отрицательный (TN). TN / N = TN / (FP+TN)
  • max sensitivity: истинно положительный (TP). ТП / П = ТП / (ТП + ФН)
  • max absolute_mcc absolute Коэффициент корреляции Мэтью возвращает значение от −1 до +1. +1 означает идеальный классификатор. -1 означает бесполезный классификатор.
  • max min_per_class_accuracy минимальная ошибка для каждого класса.
  • max mean_per_class_accuracy средняя ошибка для каждого класса.
  • max tns True Negatives: количество правильно классифицированных отрицательных записей.
  • max fns Ложноотрицательные: количество классифицированных отрицательных результатов, в то время как на самом деле они положительные.
  • max fps Ложные срабатывания: количество классифицированных срабатываний, хотя на самом деле оно отрицательное.
  • max tps True Positives: количество правильно классифицированных положительных записей.
  • max tnr Истинный отрицательный показатель. ТН/(ТН+ФП)
  • max fnr Частота ложноотрицательных результатов. ФН / (ФН + ТП)
  • max fpr Частота ложноположительных результатов. ФП/(ФП+ТН)
  • max tpr Истинный положительный показатель. ТП / (ТП + ФН)

Наша модель достигла 94% accuracy с 94% f1-score, 100% precision, 100% recall и 100% specificity.

Прирост/подъемный стол

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

В отличие от Confusion Matrix, который оценивает модели на всей совокупности, Gains/Lift Table оценивает эффективность модели на части совокупности.

  • cumulative_data_fraction = количество наблюдений в группе x / все наблюдения
  • lower_threshold = минимум прогнозируемой вероятности в группе x
  • lift = скорость_ответа / общая скорость ответа. lift измеряет, насколько лучше текущая модель по сравнению с базовой. Чем больше площадь между кривой подъема и базовой линией, тем лучше модель.
  • cumulative_lift = cumulative_response_rate / общая частота ответов
  • response_rate = процент ответов в группе x. H2O использует скорость отклика первых десяти групп для оценки производительности модели; самый высокий отклик и самые высокие показатели вариации указывают на лучшую модель.
  • score = среднее значение прогнозируемой вероятности в группе x
  • cumulative_response_rate = частота ответов для всех наблюдений в группах с 1 по x
  • cumulative_score = среднее значение прогнозируемой вероятности для всех наблюдений в группах с 1 по x
  • capture_rate = процент всех ответов в группе x.
  • cumulative_capture_rate = процент всех ответов в группах с 1 по x
  • gain = (подъем — 1) * 100.
  • cumulative_gain = (кумулятивный_подъем — 1) * 100
  • kolmogorov_smirnov представляет степень разделения между положительной (1) и отрицательной (0) кумулятивными функциями распределения. Чем выше значение, тем лучше модель.
Avg response rate:  50.13 %, avg score: 10.83 %

  • Таблица Gains/Lift показывает результаты в 16 сегментах.

Сводка показателей перекрестной проверки

Сводка важности переменных

Объясните модели с H2O

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

Мы можем использовать explain H2O, который является удобной оболочкой для ряда методов объяснимости и визуализаций в H2O.

Объект aml включает leader board моделей, обученных в процессе. Давайте посмотрим на все модели из таблицы лидеров aml.

  • leaderboard — это информационная панель всех обученных моделей вместе с их метриками перекрестной проверки для ранжирования моделей, что соответствует AUC в нашем случае бинарной классификации.
  • По умолчанию будут отображаться только первые 5 строк, поэтому нам нужно указать rows=lb.nrows, чтобы отобразить все обученные модели.

Победителем стал GBM_grid, который представляет собой Gradient Boost Machine с сеточным анализом.

GBM (Gradient Boost Machine) Интуиция

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

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

  • number_of_tree: количество деревьев в ансамбле.
  • min_depth: минимальная глубина дерева.
  • max_depth: максимальная глубина дерева, более глубокие деревья охватывают больше уникальных взаимодействий данных, но склонны к переобучению.
  • min_leaves: это наименьшее количество листьев (конечных узлов) всех деревьев в модели.
  • max_leaves: наибольшее количество листьев. Если мы оставим его равным None, все узлы будут расширены до тех пор, пока все листья не станут чистыми.

Здесь H2O сделала всю тяжелую работу для нас, чтобы построить GBM, который:

Потрясающе, правда?

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

Важность переменной

График важности переменных показывает относительную важность наиболее важных переменных в модели.

  • Это показало, что общие черты включают Hormonal Contraceptives (years), Age, First sexual intercourse, Num of pregnancies и Number of sexual partners как факторы, которые соответствуют факторам риска рака шейки матки.
  • Другие факторы включают IUD (years), Dx:HPV, Smokes, Smokes (years) и Dx:Cancer.

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

  • Использование оральных контрацептивов в течение длительного времени.
  • Секс в раннем возрасте
  • Наличие нескольких половых партнеров
  • Родить много детей
  • Курить сигареты
  • Заражение вирусом папилломы человека (ВПЧ)

Тепловая карта важности переменной

Тепловая карта важности переменной показывает важность переменной для нескольких моделей. Некоторые модели в H2O возвращают важность переменной для версий категориальных столбцов, закодированных с помощью одного горячего (двоичного индикатора) (например, Deep Learning, XGBoost). Чтобы значение переменной важности категориальных столбцов можно было сравнить во всех типах моделей, мы вычисляем суммирование важности переменной для всех функций с горячим кодированием и возвращаем значение одной переменной для исходной категориальной функции. По умолчанию модели и переменные упорядочены по их сходству.

  • Все модели используют Hormonal Contraceptives (years) как наиболее важную функцию.
  • Age, Num of pregnancies, First sexual intercourse и Number of sexual partners также являются вспомогательными функциями. Это согласуется с нашим предыдущим графиком важности переменных.

Корреляция модели

На этом графике показана корреляция между предсказаниями моделей. Для классификации используется частота идентичных прогнозов. По умолчанию модели упорядочены по их сходству (вычисленному с помощью иерархической кластеризации). Интерпретируемые модели, такие как GAM, GLM и RuleFit, выделены красным цветом.

Резюме SHAP

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

Метод SHAP (Shapley Additive Explanations) основан на ценностях Шепли, введенных Шепли в 1953 году в контексте теории коалиционных игр. Он принадлежит к классу инструментов XAI, известных как атрибуция признаков или важность признаков. График Сводка SHAP показывает вклад функций для каждого экземпляра (строки данных) в выходные данные.

В настоящее время существует четыре типа: точка, полоса, скрипка и компактная точка. H2O генерирует для нас тип точки. Если вы знакомы с matplotlib или seaborn, вы узнаете, что они похожи на swarm plot и violin plot. Это потому, что это и то, и другое.

  • y-axis: Особенности в порядке важности сверху вниз.
  • x-axis: SHAP value или воздействие, отображающее частоту и распределение данных, т. е. вызывало ли влияние (низкое/высокое) значение прогноз (низкое/высокое).
  • SHAP value — это значение важности для конкретного прогноза. Он показывает взаимосвязь между значением функции и влиянием на прогноз. SHAP value переходит от отрицательного к положительному, а 0.0 означает no effect.
  • Negative SHAP value означает, что функция отрицательно влияет на предсказание.
  • Positive SHAP value означает, что функция оказывает положительное влияние на предсказание.
  • Red означает high value.
  • Blue означает low value.
  • Большой кластер — это место, где точки разброса не умещаются на линии, они накапливаются, чтобы показать плотность.

Интересно, что Hormonal Contraceptives (years) и Age поменялись местами в сводном сюжете SHAP.

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

Графики частичной зависимости

График частичной зависимости (PDP) дает графическое представление предельного влияния переменной на отклик. Влияние переменной измеряется изменением среднего отклика. PDP предполагает независимость между функцией, для которой рассчитывается PDP, и остальными.

  • GBM, XGBoost, DRF и XRT могут иметь дело со сложными и нелинейными отношениями между функциями и прогнозируемым результатом.
  • GLM не удалось зафиксировать нелинейность.

График частичной зависимости (PDP) дает графическое изображение предельного влияния переменной на отклик. Влияние переменной измеряется изменением среднего отклика. PDP предполагает независимость между функцией, для которой вычисляется PDP, и остальными другими функциями.

Определение важности переменной полезно для выявления основных участников/игроков, но они не предоставляют информацию о взаимосвязи между входными переменными и прогнозами. В то время как значение переменной показывает, какие переменные больше всего влияют на прогнозы, графики частичной зависимости показывают незначительное влияние функции на прогнозируемый результат (Фридман, 2001). График частичной зависимости может показать, является ли связь между целью и функцией линейной, монотонной или более сложной (Molnar, 2019).

  • y-axis = Mean Response = изменение прогноза по сравнению с исходным прогнозом.
  • Baseline — самое левое значение по оси Y. Все, что после этого, является изменением в предсказании.
  • Solid line = Mean Response или изменение прогноза.
  • Green shade = доверительный интервал.

  • На 8-м году Mean Response значительно увеличивается.
  • Чем дольше используется Hormonal Contraceptives (years), тем больше он влияет на результат прогнозирования.

  • Вероятность развития рака выше после 20 лет и значительно выше, когда человек достигает 45 лет.

  • Шансы заболеть раком самые высокие, когда человеку еще не исполнилось 18 лет.
  • Чем позже First sexual intercourse задерживается, тем ниже вероятность того, что человек заболеет раком.
  • Хотя Mean Response увеличивается после 22 лет, это связано с тем, что Age является большим фактором риска развития рака шейки матки.

  • Более высокий Num of pregnancies увеличивает шанс заболеть раком шейки матки, особенно при 4 беременности.

  • Шансы заболеть раком шейки матки увеличиваются после 2 Number of sexual partners.

Сделать прогноз

Теперь давайте проверим нашу модель, сделав прогноз. Чтобы сделать прогноз, мы используем модель leader для predict набора test.

Вот полный набор данных с predict вместе со всеми функциями.

  • as_list преобразует кадр H2O обратно в кадр pandas.
  • Теперь, когда мы вернули наш кадр панд, мы можем соединить его, чтобы получить только наземную правду Biopsy и вновь сгенерированный прогноз predict.

Объясните модели с LIME

ЛАЙМ Интуиция

LIME (Local Interpretable Model-agnostic Explanations) — это метод объяснения прогнозов машинного обучения, разработанный Марко Рибейро в его статье 2016 года Почему я должен вам доверять?: объяснение прогнозов любого классификатора». . Это метод визуализации, который не дает общего объяснения того, почему модель ведет себя определенным образом, а скорее объясняет, как классифицируется конкретное, индивидуальное наблюдение.

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

  • Область green/orange представляет собой черный ящик сложной модели, который не может быть объяснен простой линейной моделью.
  • black cross — это выбранный экземпляр, который используется для объяснения.
  • Dots — это искусственные данные, созданные permute репликацией.
  • Dash line — это простая линейная модель, адаптированная к dots искусственным данным.

LIME имеет три основные функции: image explainer интерпретирует модели классификации изображений (наличие/отсутствие суперпикселей), text explainer обеспечивает понимание текстовых моделей (наличие/отсутствие слов), а tabular explainer оценивает, в какой степени особенности табличного набора данных учитываются при дело доходит до процесса классификации. В сегодняшнем проекте мы используем модули lime_tabular и LimeTabularExplainer.

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

Шаг 1: нам нужно инициализировать LIME explainer, который ожидает train features в формате numpy и feature names в формате списка. Поскольку наши классы меток уже 0 и 1, мы можем пропустить имена классов.

  • feature_names: должен быть в формате списка. Функция column() кадра данных H2O вернет имена столбцов. И поскольку нам не нужен последний целевой столбец, мы можем соединить его, передав индекс из [0 : -1].
  • train_features_numpy: as_data_frame() преобразует кадр H2O в кадр pandas. values() преобразует фрейм pandas в формат numpy. Результат будет выглядеть так:
array([[18.        ,  4.        , 15.        , ...,  0.        ,
         0.        ,  0.        ],
       [34.        ,  1.        , 16.99529965, ...,  0.        ,
         0.        ,  0.        ],
       [52.        ,  5.        , 16.        , ...,  0.        ,
         0.        ,  0.        ],
       ...,
       [25.        ,  2.        , 17.        , ...,  0.        ,
         0.        ,  1.        ],
       [33.        ,  2.        , 24.        , ...,  0.        ,
         0.        ,  0.        ],
       [29.        ,  2.        , 20.        , ...,  0.        ,
         0.        ,  0.        ]])
  • mode='classification': нам нужно указать, что наша задача является задачей классификации.

Шаг 2:рассчитайте вероятность класса экземпляра.

  • findPrediction() возвращает вероятность класса экземпляра.
  • Этот выбранный экземпляр является test_numpy, который мы передаем в explain_instance(), поэтому нам нужно преобразовать его обратно в кадр H2O, поскольку нам нужно использовать модель H2O, чтобы сделать для него прогноз. Мы делаем это, используя H2OFrame().
  • После того, как прогноз сделан, мы снова конвертируем его обратно в кадр pandas с помощью as_data_frame().
  • findPrediction() вернет 3-столбцовый фрейм для predictions: вероятности прогноза, важность функций и таблицу характеристик/значений.

Шаг 3. примените этот explainer для интерпретации модели на основе конкретных наблюдений.

  • idx — это индекс выбранного экземпляра. Этот экземпляр происходит из набора test, который находится в фрейме H2O, поэтому нам нужно обработать его через as_data_frame(), чтобы преобразовать его в фрейм pandas, превратить его в пустой массив с помощью values и соединить его, чтобы исключить последний целевой столбец с [0:-1]. test_numpy должно выглядеть так, прежде чем мы сможем его объяснить.
array(
[45.,  2., 18.,  4.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
  0.,  0.,  0.,  0.,  0.,  1.,  1.])
  • explain_instance() находит локальное приближение с интерпретируемой линейной моделью. Он принимает test_numpy, findPrediction и количество функций len(feature_names).
  • Результат можно представить графически с помощью метода show_in_notebook().

Давайте объясним на уровне экземпляра пациента 100, которому 45 лет, у него 2 половых партнера, первый половой акт был в 18 лет, у него было 4 беременности, он не курит, не принимает гормональные контрацептивы и не имеет ВМС.

  • Вероятности предсказания показывают, насколько вероятно, что экземпляр относится к классу 0, и насколько вероятно, что выбранный экземпляр относится к классу 0.
  • Атрибуты в blue поддерживают class 0, а orange поддерживают class 1.

Мы можем хорошо видеть, какие значения признаков повлияли на прогноз. Мы видим, что First sexual intercourse, Hormonal Contraceptives (years), STDs: molluscum, STDs:Hepatits B, STDs:vaginal condylomatosis и STDs:syphilis положительно влияют на прогноз, а остальные функции отрицательно влияют на прогноз.

Давайте сделаем несколько пояснений на уровне экземпляра для пациентки 120, которой 20 лет, у которой было 3 половых партнера, первый половой акт был в 18 лет, у нее было 2 беременности, она не курит и не принимает гормональные контрацептивы.

Теперь, например, разъяснения уровня для пациентки 150, 19 лет, имела 1 полового партнера, первый половой акт был в 18 лет, имела 1 беременность, не курит, принимает гормональные контрацептивы 1 год.

Мы успешно обучили различные продвинутые ансамблевые модели с помощью H2O AutoML для прогнозирования Biopsy, то есть шансов развития рака шейки матки, учитывая возраст, историю сексуального здоровья, беременность, использование противозачаточных средств и привычку курить. Мы также использовали множество методов объяснимого ИИ, таких как Variable Importance Plot, Partial Dependence Plot, SHAP Summary Plot и LIME, чтобы объяснить процесс принятия решений нашей машиной.

Гитхаб



Ссылка

Асади, Ф; Салехнасаб, К; Аджори, Л. (2020). Контролируемые алгоритмы машинного обучения для прогнозирования рака шейки матки. Журнал биомедицинской физики и техники, 10 (4), 513–522. https://doi.org/10.31661/jbpe.v0i0.1912-1027

Бичек, П., и Буржиковски, Т. (2020, 12 декабря). Анализ объяснительной модели. Анализ объяснительной модели. Получено 11 октября 2021 г. с https://ema.drwhy.ai/.

Центры по контролю и профилактике заболеваний. (2021, 12 января). Каковы факторы риска рака шейки матки? Центры по контролю и профилактике заболеваний. Получено 12 октября 2021 г. с https://www.cdc.gov/cancer/cervical/basic_info/risk_factors.htm.

Факторы риска рака шейки матки: Факторы риска рака шейки матки. Американское онкологическое общество. (н.д.). Получено 11 октября 2021 г. с https://www.cancer.org/cancer/cervical-cancer/causes-risks-prevention/risk-factors.html.

Статистика рака шейки матки: основные факты о раке шейки матки. Американское онкологическое общество. (н.д.). Получено 11 октября 2021 г. с https://www.cancer.org/cancer/cervical-cancer/about/key-statistics.html.

Фридман, Дж. Х. (2001). Приближение жадных функций: машина повышения градиента. Статистические анналы, 29 (5), 1189–1232. http://www.jstor.org/stable/2699986.

Иджаз, М.Ф., Аттик, М., и сын, Ю. (2020). Управляемая данными модель прогнозирования рака шейки матки с методами обнаружения выбросов и избыточной выборки. Sensors (Базель, Швейцария), 20(10), 2809. https://doi.org/10.3390/s20102809.

Келвин Фернандес, Хайме С. Кардосо и Джессика Фернандес. «Перенос обучения с частичной наблюдаемостью в применении к скринингу рака шейки матки». Иберийская конференция по распознаванию образов и анализу изображений. Издательство Springer International, 2017.

Лассис, Д.Л., Савиц, Д.А., Хамман, Р.Ф., Барон, А.Е., Бринтон, Л.А., и Левинс, Р.С. (1991). Инвазивный рак шейки матки и использование внутриматочной спирали. Международный журнал эпидемиологии, 20(4), 865–870. https://doi.org/10.1093/ije/20.4.865

Молнар, К. (2020). 8.1 График частичной зависимости (PDP). В Интерпретируемом машинном обучении: руководство по созданию объяснимых моделей черного ящика. Линпаб. 2019. https://christophm.github.io/interpretable-ml-book/pdp.html.

Семинар — Ланцет. (2019, 12 января). Получено 13 октября 2021 г. с https://www.thelancet.com/pdfs/journals/lancet/PIIS0140-6736(18)32470-X.pdf.