Методы объяснения результатов моделей машинного обучения в контексте анализа выживаемости тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат наук Ковалев Максим Сергеевич

  • Ковалев Максим Сергеевич
  • кандидат науккандидат наук
  • 2021, ФГАОУ ВО «Санкт-Петербургский политехнический университет Петра Великого»
  • Специальность ВАК РФ05.13.18
  • Количество страниц 161
Ковалев Максим Сергеевич. Методы объяснения результатов моделей машинного обучения в контексте анализа выживаемости: дис. кандидат наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. ФГАОУ ВО «Санкт-Петербургский политехнический университет Петра Великого». 2021. 161 с.

Оглавление диссертации кандидат наук Ковалев Максим Сергеевич

Введение

Глава 1. Постановка задачи и анализ современных подходов к ее решению

1.1. Основные понятия и элементы теории анализа выживаемости

1.1.1 Понятие цензурированности данных

1.1.2. Элементы теории анализа выживаемости

1.2. Классификация методов анализа выживаемости

1.2.1. Статистические методы

1.2.1.1. Параметрические модели

1.2.1.2. Непараметрические модели

1.2.1.3. Полупараметрические модели

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

1.2.2.1. Модификации модели пропорциональных рисков Кокса

1.2.2.2. Нейронные сети и глубокое обучение

1.2.2.3. Случайные леса выживаемости

1.3. Методы объяснения результатов моделей машинного обучения

1.3.1. Основные определения

1.3.2. Метод локального объяснения LIME

1.3.3. Метод локального объяснения SHAP

1.3.4. Контрфактуальные объяснения

1.4. Элементы интервальных статистических моделей

1.5. Общая постановка задачи объяснения предсказаний моделей машинного обучения при цензурированных данных

Глава 2. Метод локального объяснения результатов модели машинного

обучения в контексте теории анализа выживаемости

2.1. Ступенчатая функция как результат работы модели машинного обучения

2.2. Концептуальное описание разрабатываемого метода

2.3. Формальное описание метода локального объяснения

2.4. Численные эксперименты

2.4.1. Генерация данных

2.4.2. Эксперименты на сгенерированных данных

2.4.2.1. Эксперимент

2.4.2.2. Эксперимент

2.4.2.3. Эксперимент

2.4.3. Эксперименты на реальных данных

2.5. Выводы

Глава 3. Метод робастного объяснения результатов моделей машинного обучения в анализе выживаемости, обученных на малых выборках

3.1. Аналог границ Колмогорова-Смирнова для кумулятивной функции риска в виде ступенчатой функции

3.2. Описание разрабатываемого метода и постановка итоговой задачи объяснения

3.3. Численные эксперименты

3.3.1. Эксперименты на сгенерированных данных

3.3.1.1. Эксперимент

3.3.1.2. Эксперимент

3.3.2. Эксперименты на реальных данных

3.4. Выводы

Глава 4. Контрфактуальное объяснение результатов моделей машинного

обучения для задач анализа выживаемости

4.1. Постановка задачи контрфактуального объяснения в контексте анализа выживаемости

4.2. Контрфактуальное объяснение результатов модели пропорциональных рисков Кокса

4.3. Эвристический алгоритм поиска решения задачи контрфактуального объяснения

4.4. Численные эксперименты

4.4.1. Эксперименты на сгенерированных данных

4.4.2. Эксперименты на реальных данных

4.5. Выводы

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

Заключение

Список литературы 135 Приложение А

Введение

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы объяснения результатов моделей машинного обучения в контексте анализа выживаемости»

Актуальность работы

В настоящее время многие сложные задачи в различных приложениях решаются с помощью моделей глубокого машинного обучения, в частности с помощью глубоких нейронных сетей. Одним из наглядных примеров является диагностика заболеваний моделями, основанными на медицинских изображениях (например, снимки компьютерной томографии) или другой медицинской информации. Однако многие такие модели представляют собой черный ящик, т.е. пользователь имеет доступ к входным данным и результатам модели, но при этом ему неизвестно, как она функционирует. В этом случае сложно объяснить, как достигается то или иное решение. В результате модели машинного обучения сталкиваются с трудностями при их внедрении во многие важные приложения, например, в медицину, где врачам необходимо иметь объяснение установленного диагноза, чтобы выбрать соответствующее лечение. Отсутствие элементов объяснения во многих моделях машинного обучения стимулировало разработку методов, которые могли бы интерпретировать или объяснять предсказания алгоритма глубокого обучения и понимать процесс принятия решений или ключевые факторы, участвующие в принятии решений [1-4]. Область методов искусственного интеллекта, решающая данную проблему, именуется как объяснительный искусственный интеллект (от англ. explainable artificial intelligence).

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

наступления событий, представляющих интерес. В отличие от стандартных задач классификации и регрессии, модели анализа выживаемости имеют дело с наборами данных, содержащих цензурированные наблюдения, что ведет к усложнению их построения и реализации. Анализ выживаемости находит свое применение в таких приложениях как расчет надежности сложных систем, медицина и анализ рисков, в связи с чем было разработано множество предсказательных моделей [6-8]. Несмотря на некоторые ограничения, лежащие в основе полупараметрической модели пропорциональных рисков Кокса [9], она остается одной из самых популярных моделей выживаемости. Рассматривая логарифм функции риска для одного объекта (образца) как линейную комбинацию его признаков, данная модель является одной из немногих, устанавливающих явную взаимосвязь между признаками примера и распределением его времени выживания. Данное предположение является слишком ограничительным и во многих практических случаях не выполняется, сужая использование модели. Такая ситуация главным образом повлияла на развитие более интеллектуальных моделей [7], как например случайные леса выживаемости и глубокие нейронные сети, способных приводить к более точным результатам, но при этом работающих по принципу черного ящика. Таким образом, проблема отсутствия методов объяснения предсказаний моделей машинного обучения для задач анализа выживаемости является актуальной на сегодняшний день.

Цели и задачи работы

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

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

разные метрики расстояния между функциональными представлениями предсказаний этих моделей.

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

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

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

Научная новизна

Научная новизна работы заключается в следующем:

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

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

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

Теоретическая и практическая значимость работы

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

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

Методология и методы исследования

В работе используются методы математического и функционального анализов, теория выпуклого программирования, численные методы оптимизации, методы анализа выживаемости, в частности, оценка Нельсона-Аалена и модель пропорциональных рисков Кокса. Разработка комплекса программ осуществлялась на языке программирования Python 3.

Положения, выносимые на защиту

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

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

3. Метод контрфактуального объяснения результатов моделей машинного обучения для задач анализа выживаемости

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

Степень достоверности и апробация результатов

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

Основные результаты диссертационной работы докладывались и обсуждались на следующих международных конференциях:

• The 22nd International Conference on Soft Computing and Measurements (Санкт-Петербург, 2019 г.)

• The 11th International Symposium on Imprecise Probabilities: Theories and Applications (Гент, Бельгия, 2019 г.)

• International Scientific Conference "Telecommunications, Computing and Control" (Санкт-Петербург, 2019 г.)

• The 23 rd International Conference on Soft Computing and Measurements (Санкт-Петербург, 2020 г.)

• The 9th Conference on Artificial Intelligence and Natural Language (Хельсинки, Финляндия, 2020 г.)

• The 28th Conference of Open Innovations Association FRUCT (Москва, 2021 г.)

По теме диссертации был получены следующие гранты: «Разработка новых моделей машинного обучения на основе композиций глубоких лесов и нейронных сетей для решения задач медицинской диагностики» (РНФ, 18-11-00078, 20182020); «Обзор методов объяснения и интерпретации принятия решений в интеллектуальных системах диагностики онкологических заболеваний» (РФФИ, 19-11-50047, 2020); «Методы и алгоритмы интерпретации моделей машинного обучения и объяснительного интеллекта в анализе цензурированных данных и оценке эффекта воздействия» (РФФИ, 20-01-00154, 2020-2021).

Публикации

Основные результаты диссертации изложены в 11 работах, 9 из которых в изданиях, рекомендованных ВАК РФ. Кроме того, 8 работ опубликовано в изданиях, индексируемых Scopus, среди который 4 работы в журналах Q1.

Структура и объем работы

Диссертация состоит из введения, пяти глав, заключения, списка литературы, включающего 110 наименований, и одного приложения. Объем диссертации с приложением составляет 161 страницу, в том числе 16 таблиц, 43 рисунка и 16 листингов программного кода.

Список публикаций по теме диссертации

1. Utkin L.V. Robust regression random forests by small and noisy training data / L.V. Utkin, M.S. Kovalev, P.A. Frank Coolen // Proceedings of 2019 22nd International Conference on Soft Computing and Measurements, SCM 2019. -2019. - P. 134-137. [Scopus]

2. Imprecise Extensions of Random Forests and Random Survival Forests / L. V Utkin, M.S. Kovalev, A.A. Meldo, F.P.A. Coolen // Proceedings of Machine Learning Research. - PMLR, 2019. - Vol. 103. - P. 404-413.

3. The natural language explanation algorithms for the lung cancer computer-aided diagnosis system / A. Meldo, L. Utkin, M. Kovalev, E. Kasimov // Artificial Intelligence in Medicine. - 2020. - Vol. 108. [Scopus, Q1]

4. Utkin L.V. Imprecise weighted extensions of random forests for classification and regression / L.V. Utkin, M.S. Kovalev, F.P.A. Coolen // Applied Soft Computing.

- 2020. - Vol. 92. [Scopus, Q1]

5. A Simple General Algorithm for the Diagnosis Explanation of Computer-Aided Diagnosis Systems in Terms of Natural Language Primitives / L.V. Utkin, A.A. Meldo, M.S. Kovalev, E.M. Kasimov // Proceedings of 2020 23rd International Conference on Soft Computing and Measurements, SCM 2020. - 2020. - P. 202205. [Scopus]

6. Обзор методов объяснения и интерпретации принятия решений в интеллектуальных системах диагностики онкологических заболеваний / Л.В. Уткин, А.А. Мелдо, М.С. Ковалев, Э.М. Касимов // Искусственный интеллект и принятие решений. - 2020. - № 4. - С. 55-64. [Перечень ВАК]

7. Kovalev M.S. SurvLIME: A method for explaining machine learning survival models / M.S. Kovalev, L.V. Utkin, E.M. Kasimov // Knowledge-Based Systems.

- 2020. - Vol. 203. [Scopus, Q1]

8. Kovalev M.S. A robust algorithm for explaining unreliable machine learning survival models using the Kolmogorov-Smirnov bounds / M.S. Kovalev, L.V. Utkin // Neural Networks. - 2020. - Vol. 132. - P. 1-18. [Scopus, Q1]

9. Utkin L.V. An Explanation Method for Black-Box Machine Learning Survival Models Using the Chebyshev Distance / L.V. Utkin, M.S. Kovalev, E.M. Kasimov // Communications in Computer and Information Science. - 2020. - Vol. 1292 CCIS. - P. 62-74. [Scopus]

10.Kovalev M.S. Counterfactual explanation of machine learning survival models / M.S. Kovalev, L.V. Utkin // arXiv preprints arXiv:2006.16793v1. - 2020.

11. Combining an Autoencoder and a Variational Autoencoder for Explaining the Machine Learning Model Predictions / L. Utkin, P. Drobintsev, M. Kovalev, A. Konstantinov // 2021 28th Conference of Open Innovations Association (FRUCT).

- 2021. - P. 489-494. [Scopus]

Глава 1. Постановка задачи и анализ современных подходов к ее решению

1.1. Основные понятия и элементы теории анализа выживаемости 1.1.1 Понятие цензурированности данных

Анализ выживаемости - это область статистики, которая занимается анализом ожидаемой продолжительности времени («времени жизни») до интересующего исследователя события, например, смерть биологических организмов или отказ механических систем. Одной из основных проблем в этом контексте является наличие объектов, которые становятся ненаблюдаемыми после определенного момента времени или когда в некоторых случаях не происходит никаких событий в течение периода наблюдения. В общем понимании, данная ситуация известна под термином «цензурированность» данных. Цензурированные данные содержат в себе часть объектов, для которых неизвестно только то, что их время жизни лежит в определенном интервале наступления. Для остальной же части объектов, их времена жизни известны точно [10].

Выделяют три типа цензурирования данных цензурирование справа, цензурирование слева, интервальное цензурирование. На практике исследователи чаще всего имеют дело с данными, которые цензурированы справа. Авторы работы [7] описывают такие данные следующим образом. Время наступления

интересующего события для ¿-го объекта известно только тогда, когда событие наступило во время периода исследования. Для остальных объектов, поскольку они могут быть по неопределенным причинам изъяты из исследования или их время жизни может оказаться больше времени наблюдения за ними, фиксируется иное время Т(с) - цензурированное время. Другими словами, для ¿-го объекта можно наблюдать либо г/е), либо г/с). Если известно г/е), то = и наоборот. Таким образом, если во время эксперимента наблюдаются времена Tt = min \т[е\ то полученные данные считаются цензурированными справа.

Далее в работе, именно такие данные будут подразумеваться под термином «цензурированные данные».

Данные в анализе выживаемости представляются множеством {(х;, 81, Ть)}?=1, где х1 = (хц,...,хш) - вектор признаков ¿-го объекта, 8Ь Е {0,1} -индикатор наступления события для ¿-го объекта, Т^ >0 - время наступления события для ¿-го объекта. Следует понимать, что если индикатор 8^ равен 1, то Т^ -это время наступления интересующего исследователей события. Если же индикатор 8^ равен 0, то Т^ - это либо время конца эксперимента, либо время, когда объект вышел из-под наблюдения. В некоторых случаях данные состоят только из пар (81, Т1).

1.1.2. Элементы теории анализа выживаемости

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

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

5(0 = Р{Г > О. (1.1)

Функция выживаемости напрямую связана с функцией распределения случайной величины Т, поскольку

5(0 = ¥{Т > О = 1 - ¥{Т < О = 1 - F(0. (1.2)

Соответсвенно, функция выживаемости принимает вещественные значения от 0 до 1 и является монотонно убывающей функцией.

Функция риска определяется как мгновенная скорость наступления события в момент времени t, при условии, что до этого времени не наступило исследуемое событие, т.е., обозначив функцию риска за h(t), получаем

< + At\T > А АО

h(t) = lim---= —-—, (1.3)

v у м-о At S(t)' y J

где f(t) - плотность вероятности для случайной переменной Т. Таким образом,

функция риска отображает правдоподобие того, что исследуемое событие наступит

в момент времени t, при условии, что оно не наступило ранее. Стоит также

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

Расписывая (1.3), можно показать, что между функцией выживаемости и функцией риска есть зависимость, выражаемая как

h(t) = ln S(t) (1.4)

at

или, выражая S(t) через h(t),

S(t) = exp J h(r)dr^ . (1.5)

Интеграл в формуле (1.5), определяют как кумулятивную функцию риска т.е., обозначив ее за H(t), получаем

t

H(t) = J h(r)dr. (1.6)

0

Кумулятивная функция риска также является важным элементом анализа выживаемости. На практике, чаще всего оценивают либо ее, либо функцию выживаемости.

1.2. Классификация методов анализа выживаемости

Методы анализа выживаемости могут быть поделены на две группы [7]: статистические методы и методы машинного обучения. Несмотря на их общие

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

Статистические методы, в зависимости от роли параметров в них, можно поделить на три категории: параметрические модели, непараметрические модели и полупараметрические модели. Чаще всего они используются либо когда й (размерность пространства признаков) имеет небольшое значение, либо когда данные не имеют признакового описания, т.е. состоят из пар (8^, Т^). В остальных случаях используются методы машинного обучения.

1.2.1. Статистические методы 1.2.1.1. Параметрические модели

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

Таблица 1.1 - Часто используемые распределения для решения задач анализа выживаемости

Распределение (параметры) ЯО 5(0

Экспоненциальное (Я > 0) Я ехр(—ЯО ехр(-ЯО

Вейбулла (Я >0, к >0) Шгк-Х ехр(-Я^) ехр(-Я^ )

Лог-логистическое (Я >0, к >0) Хк1к-1 1

(1 + № )2 1 + Мк

Продолжение таблицы 1.1

Распределение (параметры) № ад

Лог-нормальное Е, о >0) 1 ( (1п 1-^)2\ ^еХР I- 2,2 ) /1п 1 — ц\ 1 — ф{ а!

Для настройки параметров используется метод максимального правдоподобия. В общем случае, функция правдоподобия выглядит следующим образом [11]

це)=(Пт |е))( |0))'

(1.7)

где 0 - вектор параметров, а f(t|Q) и £(¿10) это функция плотности и функция выживаемости, соответственно, зависящие от 0.

1.2.1.2. Непараметрические модели

Говоря о непараметрических моделях, чаще подразумевают две модели -оценку Каплана-Мейера для функции выживаемости [12] и оценку Нельсона-Аалена для кумулятивной функции риска [13; 14].

Рассмотрим т1 < • • • < Т1 - уникальные времена наступления исследуемого события из множества {Т1,..., Тп}, т.е. в момент времени тк наступает хотя бы одно

(г)

событие. Для определенного времени тк рассчитываются две величины: п^ -количество объектов, для которых событие не наступило ко времени тк (в том

числе и цензурирование); п^е) > 1 - количество событий, наступивших во время .

Оценка Каплана-Мейера имеет следующий вид

(1.8)

а оценка Нельсона-Аалена

жо =

(1.9)

Учитывая, что обе оценки асимптотически эквивалентны [15], одна может быть выражена через другую

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

Наиболее часто используемая модель из этой категории — это модель пропорциональных рисков Кокса [5; 7; 9]. В соответствии с моделью, функция риска в момент времени t при фиксированном векторе признаков х определяется как

где к0(0 - базовая функция риска, которая не зависит от х и Ь, ^(х, Ь) -ковариационный эффект, Ът = (Ьг,..., Ьа) - вектор неизвестных регрессионных коэффициентов. Полупараметричность модели заключается в том, что базовая функция риска к0 (О никак не определена.

В качестве ковариационного эффекта используется следующая функция

(1.10)

1.2.1.3. Полупараметрические модели

адх, ь) = ко^Жх, ь),

(1.11)

¥(х, Ь) = ехр(Ьтх)

(1.12)

Главным свойством данной модели является то, что для любых векторов признаков х1 и х2, отношение между двумя функциями рисков , Ь) и к(^х2, Ь) будет

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

где #0(0 - базовая кумулятивная функция риска, 50 (¿) = ехр(-#0(0) - базовая функция выживаемости, которые также, как и к0(€), не зависят от х и Ь. Вектор коэффициентов находится с помощью максимизации частного правдоподобия [9], которое выражается как

где = [г1Тг > Т^} - множество индексов, соответствующих объектам, для которых ко времени Т^ исследуемое событие не наступило.

В качестве базовой кумулятивной функции риска используется оценка Бреслоу [17]

где Ь - уже вычисленный вектор коэффициентов с помощью частного правдоподобия (1.14). Однако, окончательный выбор базовой функции остается за исследователем, поскольку могут быть предпосылки для использования определенных распределений. Стоит также отметить, что при Ът = (0, .,0), оценка Бреслоу совпадает с оценкой Нельсона-Аалена.

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

Б(^х, Ь) = ехр(-Я0(0 ехр(Ьтх)) = ^(0)

ехр(Ьтх)

(1.13)

(1.14)

(1.15)

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

1.2.2.1. Модификации модели пропорциональных рисков Кокса

В связи с постоянным развитием методов сбора и обнаружения данных в большинстве реальных областей, как правило, накапливаются данные большой размерности, где количество признаков получается не меньше числа объектов [7]. В связи с этим, построение предиктивных моделей, которые учитывали бы все признаки и не переобучались, становится сложной задачей [18]. В качестве решения предлагается поиск разреженных решений, которые определяют наиболее важные признаки для получения определенного результата. Такие решения получаются при использовании регуляризации - добавления штрафных функций к целевой функции задачи оптимизации, связанной с методом машинного обучения. Регуляризация главным образом направлена на сужение множества возможных решений.

Для данных большой размерности, максимизация частного правдоподобия (1.14) чаще всего приводила к решениям, где некоторые координаты вырождались в [19]. В попытках преодолеть это и применять модель пропорциональных рисков Кокса в задачах с данными большой размерности, исследователи модифицировали модель, используя разные формы регуляризации вектора неизвестных коэффициентов Ь £ . Примеры таких модификаций представлены в таблице 1.2.

Таблица 1.2 - Примеры модификаций модели Кокса с использованием регуляризации

Модифицированная модель Регуляризация

Lasso-Cox [20] d к=1

Продолжение таблицы 1.2

Модифицированная модель Регуляризация

Ridge-Cox [21] d X^bl k=1

EN-Cox [19] г d d -| я 1 +2(1 -a) Yjbl L k=1 k=1 J

Модель Lasso-Cox использует так называемый штрафную функцию «лассо» (от англ. lasso penalty), введенную в [22]. В результате ее применения получаются разреженные решения с несколькими ненулевыми компонентами, поэтому ее чаще всего используют при отборе признаков. Однако, она имеет свои недостатки. Так, в случае наличия скоррелированных признаков, использование штрафной функции «лассо» приводит к тому, что лишь только для одного из таких признаков соответствующая ему компонента решения будет ненулевой [19]. Несмотря на это, данная модель до сих пор пользуется популярностью, и многими авторами были представлены ее модификации [23-26].

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

1.2.2.2. Нейронные сети и глубокое обучение

На сегодняшний день, нейронные сети являются наиболее популярными моделями машинного обучения. Область их применения растет с каждым днем, охватывая серьезные задачи из медицины, финансов и юриспруденции [27]. Нейронные сети также нашли свое применение и в анализе выживаемости. В обзоре [7] указано три основных направления их использования для решения задач анализа выживаемости:

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

2. Использование нейронной сети в расчете ковариационного эффекта (1.12), а именно замена Ътх на функцию, которую реализует нейронная сеть [28].

3. Модернизация нейронных сетей таким образом, чтобы их выходом была оценка функции выживаемости или функции риска [29; 30].

Закономерным развитием данных направлений было использование методов глубоко обучения. Например, глубокие модели выживаемости с совокупности со сверточными нейронными сетями были использованы в области здравоохранения [31]. Также были предложены несколько подходов глубокого обучения [32-35] для помощи врачам в принятии решений относительно пациентов на основе оценки их риска заболеваний, а также в разработке индивидуальных планов лечения.

1.2.2.3. Случайные леса выживаемости

Случайный лес - это метод машинного обучения, основанный на использовании композиции деревьев решений. [36]. Важной особенностью данной модели является то, что при разбиении узла дерева используются не все признаки, а их случайное подмножество. Было показано, что такой подход снижает корреляцию между деревьями и, таким образом, улучшает точность предсказания [7]. Случайный лес выживаемости [37] - это расширение модели случайного леса за счет использования деревьев выживаемости, которое оказалось очень мощным,

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Список литературы диссертационного исследования кандидат наук Ковалев Максим Сергеевич, 2021 год

Список литературы

1. One Explanation Does Not Fit All: A Toolkit and Taxonomy of AI Explainability Techniques / V. Arya, R.K.E. Bellamy, P.Y. Chen, A. Dhurandhar [et al.] // arXiv preprints arXiv: 1909.03012v2. - 2019.

2. A survey of methods for explaining black box models / R. Guidotti, A. Monreale, S. Ruggieri, F. Turini [et al.] // ACM Computing Surveys. - 2018. - Vol. 51. - № 5.

3. Molnar C. Interpretable Machine Learning. A Guide for Making Black Box Models Explainable [Электронный ресурс] / C. Molnar. - Режим доступа: https://christophm.github.io/interpretable-ml-book/.

4. Definitions, methods, and applications in interpretable machine learning / W.J. Murdoch, C. Singh, K. Kumbier, R. Abbasi-Asl [et al.] // Proceedings of the National Academy of Sciences of the United States of America. - 2019. - Vol. 116. - № 44. -P. 22071-22080.

5. Hosmer D.W. Applied Survival Analysis: Regression Modeling of Time to Event Data / D.W. Hosmer, S. Lemeshow, S. May. - 2nd. - Hoboken: John Wiley & Sons, 2008. - 416 p.

6. DeepHit: A deep learning approach to survival analysis with competing risks / C. Lee, W.R. Zame, J. Yoon, M. Van Der Schaar // 32nd AAAI Conference on Artificial Intelligence, AAAI 2018. - 2018.

7. Wang P. Machine learning for survival analysis: A survey / P. Wang, Y. Li, C.K. Reddy // ACM Computing Surveys. - 2019. - Vol. 51. - № 6.

8. Zhao L. Deep neural networks for survival analysis using pseudo values / L. Zhao, D. Feng // IEEE Journal of Biomedical and Health Informatics. - 2020. - Vol. 24. - №2 11.

9. Cox D.R. Regression Models and Life-Tables / D.R. Cox // Journal of the Royal Statistical Society: Series B (Methodological). - 1972. - Vol. 34. - № 2.

10. Klein J. Survival analysis: Techniques for censored and truncated data (second

edition) / J. Klein, M. Moeschberger // Pharmaceutical Statistics. - 2003. - Vol. 3. - №2 4.

11. Li Y. Regularized parametric regression for high-dimensional survival analysis / Y. Li, K.S. Xu, C.K. Reddy // 16th SIAM International Conference on Data Mining 2016, SDM 2016. - 2016.

12. Kaplan E.L. Nonparametric Estimation from Incomplete Observations / E.L. Kaplan, P. Meier // Journal of the American Statistical Association. - 1958. - Vol. 53. -№ 282.

13. Nelson W. Theory and Applications of Hazard Plotting for Censored Failure Data / W. Nelson // Technometrics. - 1972. - Vol. 14. - № 4.

14. Aalen O. Nonparametric Inference for a Family of Counting Processes / O. Aalen // The Annals of Statistics. - 1978. - Vol. 6. - № 4.

15. Lee E.T. Statistical Methods for Survival Data Analysis / E.T. Lee, J. Wang. - 3rd.

- Hoboken: John Wiley & Sons, 2003. - 513 p.

16. Powell J.L. Estimation of semiparametric models / J.L. Powell // Handbook of Econometrics. - 1994. - Vol. 4. - P. 2443-2521.

17. Breslow N. Discussion on Professor Cox's Paper / N. Breslow // Journal of the Royal Statistical Society: Series B (Methodological). - 1972. - Vol. 34. - № 2. - P. 216217.

18. Houwelingen H.C. van. Dynamic prediction in clinical survival analysis / H.C. van Houwelingen, H. Putter. - 1st. - CRC Press, 2011. - 250 p.

19. Regularization paths for Cox's proportional hazards model via coordinate descent / N. Simon, J. Friedman, T. Hastie, R. Tibshirani // Journal of Statistical Software. - 2011.

- Vol. 39. - № 5.

20. Tibshirani R. The lasso method for variable selection in the cox model / R. Tibshirani // Statistics in Medicine. - 1997. - Vol. 16. - № 4.

21. Verweij P.J.M. Penalized likelihood in Cox regression / P.J.M. Verweij, H.C. Van

Houwelingen // Statistics in Medicine. - 1994. - Vol. 13. - № 23-24.

22. Tibshirani R. Regression Shrinkage and Selection Via the Lasso / R. Tibshirani // Journal of the Royal Statistical Society: Series B (Methodological). - 1996. - Vol. 58. -№ 1.

23. Kaneko S. Enhancing the Lasso Approach for Developing a Survival Prediction Model Based on Gene Expression Data / S. Kaneko, A. Hirakawa, C. Hamada // Computational and Mathematical Methods in Medicine. - 2015. - Vol. 2015.

24. Ternes N. Empirical extensions of the lasso penalty to reduce the false discovery rate in high-dimensional Cox regression models / N. Ternes, F. Rotolo, S. Michiels // Statistics in Medicine. - 2016. - Vol. 35. - № 15.

25. Witten D.M. Survival analysis with high-dimensional covariates / D.M. Witten, R. Tibshirani // Statistical Methods in Medical Research. - 2010. - Vol. 19. - № 1.

26. Zhang H.H. Adaptive Lasso for Cox's proportional hazards model / H.H. Zhang, W. Lu // Biometrika. - 2007. - Vol. 94. - № 3.

27. Rudin C. Stop explaining black box machine learning models for high stakes decisions and use interpretable models instead / C. Rudin // Nature Machine Intelligence. - 2019. - Vol. 1. - № 5.

28. Faraggi D. A neural network model for survival data / D. Faraggi, R. Simon // Statistics in Medicine. - 1995. - Vol. 14. - № 1.

29. Liestbl K. Survival analysis and neural nets / K. Liestbl, P.K. Andersen, U. Andersen // Statistics in Medicine. - 1994. - Vol. 13. - № 12.

30. Feed forward neural networks for the analysis of censored survival data: A partial logistic regression approach / E. Biganzoli, P. Boracchi, L. Mariani, E. Marubini // Statistics in Medicine. - 1998. - Vol. 17. - № 10.

31. Deep correlational learning for survival prediction from multi-modality data / J. Yao, X. Zhu, F. Zhu, J. Huang // Lecture Notes in Computer Science (including subseries

Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - 2017. -Vol. 10434 LNCS.

32. DeepSurv: Personalized treatment recommender system using a Cox proportional hazards deep neural network / J.L. Katzman, U. Shaham, A. Cloninger, J. Bates [et al.] // BMC Medical Research Methodology. - 2018. - Vol. 18. - № 1.

33. Deep survival analysis / R. Ranganath, A. Perotte, N. Elhadad, D. Blei // Machine Learning for Healthcare Conference. - 2016. - P. 101-114.

34. Image-based survival prediction for lung cancer patients using CNNS / C. Haarburger, P. Weitz, O. Rippel, D. Merhof // Proceedings - International Symposium on Biomedical Imaging. - 2019. - Vols. 2019-April.

35. Zhu X. Deep convolutional neural network for survival analysis with pathological images / X. Zhu, J. Yao, J. Huang // Proceedings - 2016 IEEE International Conference on Bioinformatics and Biomedicine, BIBM 2016. - 2017.

36. Breiman L. Random forests / L. Breiman // Machine Learning. - 2001. - Vol. 45. - № 1. - P. 5-32.

37. Random survival forests / H. Ishwaran, U.B. Kogalur, E.H. Blackstone, M.S. Lauer // The Annals of Applied Statistics. - 2008. - Vol. 2. - № 3. - P. 841-860.

38. Decision Tree for Competing Risks Survival Probability in Breast Cancer Study / N.A. Ibrahim, A. Kudus, I. Daud, M.R.A. Bakar // International Journal of Bilogoical and Life Science. - 2007. - Vol. 3. - № 1.

39. Mogensen U.B. Evaluating Random Forests for Survival Analysis Using Prediction Error Curves / U.B. Mogensen, H. Ishwaran, T.A. Gerds // Journal of Statistical Software. - 2012. - Vol. 50. - № 11.

40. A comparison of the conditional inference survival forest model to random survival forests based on a simulation study as well as on two applications with time-to-event data / J.B. Nasejje, H. Mwambi, K. Dheda, M. Lesosky // BMC Medical Research Methodology. - 2017. - Vol. 17. - № 1.

41. Kurt Omurlu I. The comparisons of random survival forests and Cox regression analysis with simulation and an application related to breast cancer / I. Kurt Omurlu, M. Ture, F. Tokatli // Expert Systems with Applications. - 2009. - Vol. 36. - № 4.

42. Schmid M. On the use of Harrell's C for clinical risk prediction via random survival forests / M. Schmid, M.N. Wright, A. Ziegler // Expert Systems with Applications. -2016. - Vol. 63.

43. Wang H. Random survival forest with space extensions for censored data / H. Wang, L. Zhou // Artificial Intelligence in Medicine. - 2017. - Vol. 79.

44. Wright M.N. Unbiased split variable selection for random survival forests using maximally selected rank statistics / M.N. Wright, T. Dankowski, A. Ziegler // Statistics in Medicine. - 2017. - Vol. 36. - № 8.

45. Segal M.R. Regression Trees for Censored Data / M.R. Segal // Biometrics. - 1988. - Vol. 44. - № 1.

46. Explainable Explainable Artificial Intelligence (XAI): Concepts, taxonomies, opportunities and challenges toward responsible AI / A. Barredo Arrieta, N. Diaz-Rodriguez, J. Del Ser, A. Bennetot [et al.] // Information Fusion. - 2020. - Vol. 58.

47. Goodman B. European union regulations on algorithmic decision making and a "right to explanation" / B. Goodman, S. Flaxman // AI Magazine. - 2017. - Vol. 38. -№ 3.

48. Gunning D. DARPA's explainable artificial intelligence program / D. Gunning, D.W. Aha // AI Magazine. - 2019. - Vol. 40. - № 2. - P. 44-58.

49. Causability and explainability of artificial intelligence in medicine / A. Holzinger, G. Langs, H. Denk, K. Zatloukal [et al.] // Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. - 2019. - Vol. 9. - № 4.

50. Explainable Artificial Intelligence Approaches: A Survey / S.R. Islam, W. Eberle, S.K. Ghafoor, M. Ahmed // arXiv preprints arXiv:2101.09429v1. - 2021.

51. Ribeiro M.T. "Why should i trust you?" Explaining the predictions of any classifier / M.T. Ribeiro, S. Singh, C. Guestrin // Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. - 2016. - Vols. 13-17-August-2016.

52. Fong R. Explanations for Attributing Deep Neural Network Predictions / R. Fong, A. Vedaldi // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - 2019. - Vol. 11700 LNCS.

53. Fong R.C. Interpretable Explanations of Black Boxes by Meaningful Perturbation / R.C. Fong, A. Vedaldi // Proceedings of the IEEE International Conference on Computer Vision. - 2017. - Vols. 2017-0ctober.

54. Petsiuk V. RisE: Randomized input sampling for explanation of black-box models / V. Petsiuk, A. Das, K. Saenko // British Machine Vision Conference 2018, BMVC 2018. - 2019.

55. Evaluating Explainers via Perturbation / M.N. Vu, T.D. Nguyen, N.H. Phan, R. Gera [et al.] // arXiv preprints arXiv: 1906.02032v1. - 2019.

56. Du M. Techniques for interpretable machine learning / M. Du, N. Liu, X. Hu // Communications of the ACM. - 2020. - Vol. 63. - № 1.

57. Shankaranarayana S.M. ALIME: Autoencoder based approach for local interpretability / S.M. Shankaranarayana, D. Runje // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - 2019. - Vol. 11871 LNCS.

58. NormLime: A New Feature Importance Metric for Explaining Deep Neural Networks / I. Ahern, A. Noack, L. Guzman-Nateras, D. Dou [et al.] // arXiv preprints arXiv: 1909.04200v2. - 2019.

59. Zafar M.R. DLIME: A Deterministic Local Interpretable Model-Agnostic Explanations Approach for Computer-Aided Diagnosis Systems / M.R. Zafar, N.M. Khan // arXiv preprints arXiv:1906.10263v1. - 2019.

60. Ribeiro M.T. Anchors: High-precision model-agnostic explanations / M.T. Ribeiro, S. Singh, C. Guestrin // 32nd AAAI Conference on Artificial Intelligence, AAAI 2018. - 2018.

61. Locally Interpretable Models and Effects based on Supervised Partitioning (LIME-SUP) / L. Hu, J. Chen, V.N. Nair, A. Sudjianto // arXiv preprints arXiv:1806.00663v1. -2018.

62. Enriching visual with verbal explanations for relational concepts - combining LIME with aleph / J. Rabold, H. Deininger, M. Siebers, U. Schmid // Communications in Computer and Information Science. - 2020. - Vol. 1167 CCIS.

63. GraphLIME: Local Interpretable Model Explanations for Graph Neural Networks / Q. Huang, M. Yamada, Y. Tian, D. Singh [et al.] // arXiv preprints arXiv:2001.06216v2. - 2020.

64. Garreau D. Explaining the Explainer: A First Theoretical Analysis of LIME / D. Garreau, U. Von Luxburg // arXiv preprints arXiv:2001.03447v2. - 2020.

65. Lundberg S.M. A unified approach to interpreting model predictions / S.M. Lundberg, S.I. Lee // Advances in Neural Information Processing Systems. - 2017. -Vols. 2017-December.

66. Shapley L.S. The value of an n-Person Game / L.S. Shapley // Contributions to the Theory of Games (AM-28). - 1953. - Vol. II.

67. Wachter S. Counterfactual Explanations without Opening the Black Box: Automated Decisions and the GDPR / S. Wachter, B. Mittelstadt, C. Russell // arXiv preprints arXiv: 1711.00399v3. - 2017.

68. Buhrmester V. Analysis of Explainers of Black Box Deep Neural Networks for Computer Vision: A Survey / V. Buhrmester, D. Münch, M. Arens // arXiv preprints arXiv:1911.12116v1. - 2019.

69. Multi-objective counterfactual explanations / S. Dandl, C. Molnar, M. Binder, B. Bischl // Lecture Notes in Computer Science (including subseries Lecture Notes in

Artificial Intelligence and Lecture Notes in Bioinformatics). - 2020. - Vol. 12269 LNCS.

70. Fernandez C. Explaining Data-Driven Decisions made by AI Systems: The Counterfactual Approach / C. Fernandez, F. Provost, X. Han // arXiv preprints arXiv:2001.07417v3. - 2020.

71. Counterfactual visual explanations / Y. Goyal, Z. Wu, J. Ernst, D. Batra [et al.] // 36th International Conference on Machine Learning, ICML 2019. - 2019. - Vols. 2019-June.

72. Factual and Counterfactual Explanations for Black Box Decision Making / R. Guidotti, A. Monreale, F. Giannotti, D. Pedreschi [et al.] // IEEE Intelligent Systems. -2019. - Vol. 34. - № 6.

73. Grounding Visual Explanations / L.A. Hendricks, R. Hu, T. Darrell, Z. Akata // Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics). - 2018. - Vol. 11206 LNCS.

74. Looveren A. Van. Interpretable Counterfactual Explanations Guided by Prototypes / A. Van Looveren, J. Klaise // arXiv preprints arXiv: 1907.02584v2. - 2019.

75. Actionable Interpretability through Optimizable Counterfactual Explanations for Tree Ensembles / A. Lucic, H. Oosterhuis, H. Haned, M. de Rijke // arXiv preprints arXiv:1911.12199v1. - 2019.

76. FACE: Feasible and actionable counterfactual explanations / R. Poyiadzi, K. Sokol, R. Santos-Rodriguez, T. De Bie [et al.] // AIES 2020 - Proceedings of the AAAI/ACM Conference on AI, Ethics, and Society. - 2020.

77. Russell C. Efficient search for diverse coherent explanations / C. Russell // FAT* 2019 - Proceedings of the 2019 Conference on Fairness, Accountability, and Transparency. - 2019.

78. Vermeire T. Explainable Image Classification with Evidence Counterfactual / T. Vermeire, D. Martens // arXiv preprints arXiv:2004.07511v1. - 2020.

79. Contrastive Explanations with Local Foil Trees / J. van der Waa, M. Robeer, J. van Diggelen, M. Brinkhuis [et al.] // arXiv preprints arXiv:1806.07470v1. - 2018.

80. White A. Measurable counterfactual local explanations for any classifier / A. White, A. D'Avila Garcez // Frontiers in Artificial Intelligence and Applications. - 2020.

- Vol. 325.

81. Walley P. Statistical Reasoning with Imprecise Probabilities / P. Walley. - London: Chapman and Hall, 1991. - 362 p.

82. Robert C. The Bayesian Choice / C. Robert. - New York: Springer, 1994. - 436 p.

83. Utkin L. V. Improving over-fitting in ensemble regression by imprecise probabilities / L. V. Utkin, A. Wiencierz // Information Sciences. - 2015. - Vol. 317.

84. Колмогоров А.Н. Элементы теории функций и функционального анализа / А.Н. Колмогоров, С.В. Фомин. - 4-е. - Москва: Наука, 1976. - 543 p.

85. A probabilistic approach to the geometry of the l pn-ball / F. Barthe, O. Guedon, S. Mendelson, A. Naor // Annals of Probability. - 2005. - Vol. 33. - № 2.

86. Harman R. On decompositional algorithms for uniform sampling from n-spheres and n-balls / R. Harman, V. Lacko // Journal of Multivariate Analysis. - 2010. - Vol. 101.

- № 10.

87. Bender R. Generating survival times to simulate Cox proportional hazards models / R. Bender, T. Augustin, M. Blettner // Statistics in Medicine. - 2005. - Vol. 24. - № 11.

88. Maaten L.J.P. Van Der. Visualizing high-dimensional data using t-sne / L.J.P. Van Der Maaten, G.E. Hinton // Journal of Machine Learning Research. - 2008. - Vol. 9. -P. 2579-2605.

89. Evaluating the Yield of Medical Tests / F.E. Harrell, R.M. Califf, D.B. Pryor, K.L. Lee [et al.] // JAMA: The Journal of the American Medical Association. - 1982. -Vol. 247. - № 18.

90. Utkin L.V. Imprecise weighted extensions of random forests for classification and

regression / L.V. Utkin, M.S. Kovalev, F.P.A. Coolen // Applied Soft Computing Journal. - 2020. - Vol. 92.

91. Utkin L.V. Robust regression random forests by small and noisy training data / L.V. Utkin, M.S. Kovalev, P.A. Frank Coolen // Proceedings of 2019 22nd International Conference on Soft Computing and Measurements, SCM 2019. - 2019. - P. 134-137.

92. Imprecise Extensions of Random Forests and Random Survival Forests / L. V Utkin, M.S. Kovalev, A.A. Meldo, F.P.A. Coolen // Proceedings of Machine Learning Research. - PMLR, 2019. - Vol. 103. - P. 404-413.

93. Kennedy J. Particle swarm optimization / J. Kennedy, R. Eberhart // IEEE International Conference on Neural Networks - Conference Proceedings. - 1995. -Vol. 4.

94. Duan Y. Comparison of particle swarm optimization and genetic algorithm in the design of permanent magnet motors / Y. Duan, R.G. Harley, T.G. Habetler // 2009 IEEE 6th International Power Electronics and Motion Control Conference, IPEMC '09. - 2009.

95. Panda S. Comparison of particle swarm optimization and genetic algorithm for FACTS-based controller design / S. Panda, N.P. Padhy // Applied Soft Computing Journal. - 2008. - Vol. 8. - № 4.

96. Sooda K. A Comparative Analysis for Determining the Optimal Path using PSO and GA / K. Sooda, G.T.R. Nair // International Journal of Computer Applications. -2011. - Vol. 32. - № 4. - P. 8-12.

97. Wang S. Comparison between particle swarm optimization and genetic algorithm in artificial neural network for life prediction of NC tools / S. Wang, F. Zheng, L. Xu // Journal of Advanced Manufacturing Systems. - 2008. - Vol. 7. - № 1.

98. Bai Q. Analysis of Particle Swarm Optimization Algorithm / Q. Bai // Computer and Information Science. - 2010. - Vol. 3. - № 1.

99. Clerc M. The particle swarm-explosion, stability, and convergence in a multidimensional complex space / M. Clerc, J. Kennedy // IEEE Transactions on

Evolutionary Computation. - 2002. - Vol. 6. - № 1.

100. Application of multi-state models in cancer clinical trials / J.G. Le-Rademacher, R.A. Peterson, T.M. Therneau, B.L. Sanford [et al.] // Clinical Trials. - 2018. - Vol. 15.

- № 5.

101. Array programming with NumPy / C.R. Harris, K.J. Millman, S.J. van der Walt, R. Gommers [et al.] // Nature. - 2020. - Vol. 585. - № 7825. - P. 357-362.

102. SciPy 1.0: fundamental algorithms for scientific computing in Python / P. Virtanen, R. Gommers, T.E. Oliphant, M. Haberland [et al.] // Nature Methods. - 2020. - Vol. 17.

- № 3.

103. Diamond S. CVXPY: A Python-embedded modeling language for convex optimization / S. Diamond, S. Boyd // Journal of Machine Learning Research. - 2016. -Vol. 17.

104. A rewriting system for convex optimization problems / A. Agrawal, R. Verschueren, S. Diamond, S. Boyd // Journal of Control and Decision. - 2018. - Vol. 5.

- № 1.

105. Polsterl S. Scikit-survival: A library for time-to-event analysis built on top of scikit-learn / S. Polsterl // Journal of Machine Learning Research. - 2020. - Vol. 21.

106. McKinney W. Data Structures for Statistical Computing in Python / W. McKinney // Proceedings of the 9th Python in Science Conference. - 2010.

107. Scikit-learn: Machine learning in Python / F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel [et al.] // Journal of Machine Learning Research. - 2011. - Vol. 12.

108. Hunter J.D. Matplotlib: A 2D graphics environment / J.D. Hunter // Computing in Science and Engineering. - 2007. - Vol. 9. - № 3.

109. OSQP: an operator splitting solver for quadratic programs / B. Stellato, G. Banjac, P. Goulart, A. Bemporad [et al.] // Mathematical Programming Computation. - 2020. -Vol. 12. - № 4.

110. Gabay D. A dual algorithm for the solution of nonlinear variational problems via finite element approximation / D. Gabay, B. Mercier // Computers and Mathematics with Applications. - 1976. - Vol. 2. - № 1.

Приложение А

В данном приложении приводится программный код (листинги А.1-А.16) комплекса программ, реализующего построение объяснения результатов моделей машинного обучения в рамках анализа выживаемости.

Листинг А.1 - Используемые библиотеки

import numpy as np import scipy as sp import cvxpy as cp import pandas as pd

from sksurv.nonparametric import kaplan_meier_estimator from sksurv.nonparametric import nelson_aalen_estimator

from sksurv.linear_model import CoxPHSurvivalAnalysis from sksurv.ensemble import RandomSurvivalForest

Листинг А.2 - Модуль генерации данных в d-шаре

def uniform_within_ball(origin, radius, n_points): dim = origin.size

gauss_points = np.random.normal(loc=0, scale=1, size=(n_points, dim))

norms = np.linalg.norm(gauss_points, axis=1)

unf_points = np.power(np.random.uniform(low=0, high=1, size=n_points), 1 / dim)

points = origin + radius * np.array([gp / n * up for gp, n, up in zip(gauss_points, norms, unf_points)])

return points

Листинг А.3 - Модуль генерации данных в d-прямоугольнике

def uniform_within_rect(hrect, n_points): dim = hrect.shape[0] low_vals, high_vals = hrect.T

points = np.random.uniform(low=low_vals, high=high_vals, size=(n_points, dim))

return points

Листинг А.4 - Модуль возмущения данных

def instance_perturbation(instance, n_perturbations, radius):

points = uniform_within_ball(instance, radius, n_perturbations -

1)

points = np.array([instance] + points.tolist()) kernel = lambda d: 1 - np.power(d / radius, 0.5)

distances = np.array([np.sqrt(np.sum((instance - obj) ** 2)) for obj in points])

p_weights = np.array([kernel(distance) for distance in distances])

return points, p_weights

Листинг А.5 - Модуль обработки результатов моделей машинного обучения

def expand(args, values, new_args, zero_val, increasing=True): if args.size == new_args.size: new_values = values.copy() else:

indexes = np.searchsorted(args, new_args, side='right') - 1

new_values = np.where(indexes == -1, zero_val, values[indexes])

if increasing:

new values[0] = zero val

new_values = np.where(new_values < zero_val, zero_val, new values)

return new values

def time_unification(pred_times, pred_data, pred_type, y_train, zero_val):

if not pred_type in ['sf', 'chf']:

raise ValueError('Models can produce either a survival function (sf) or a cumulative hazard function (chf)')

times = np.unique([0] + [t for _, t in y_train])

pred_data = pred_data.reshape(1, -1) if len(pred_data.shape) == 1 else pred_data

if pred_type == 'sf':

pred_data = np.array([expand(pred_times, pred, times, zero_val, increasing=False) for pred in pred_data])

else:

pred_data = np.array([expand(pred_times, pred, times, zero_val) for pred in pred_data])

pred_data = pred_data[0] if pred_data.shape[0] == 1 else pred_data

return times, pred_data

def non_param_predictions(y_train, pred_type):

if not pred_type in ['sf', 'chf']:

raise ValueError('Models can produce either a survival function (sf) or a cumulative hazard function (chf)')

train_events = np.array([e for e, _ in y_train]) train_times = np.array([t for _, t in y_train])

if pred_type == 'sf':

pred_times, pred_data = kaplan_meier_estimator(train_events, train_times)

else:

pred_times, pred_data = nelson_aalen_estimator(train_events, train times)

return pred_times, pred_data

def model_predictions(X_test, pred_type, model, model_type):

if not model_type in ['cox', 'rsf']:

raise NotImplementedError('Cox and RSF models are only implemented')

if not pred_type in ['sf', 'chf']:

raise ValueError('Models can produce either a survival function (sf) or a cumulative hazard function (chf)')

if pred_type == 'sf':

predictions = model.predict_survival_function(X_test)

else:

predictions = model.predict_cumulative_hazard_function(X_test)

if model_type == 'cox':

pred_times = predictions[0].x

pred_data = np.array([prediction.a * prediction.y for prediction in predictions])

else:

pred_times = model.event_times_ pred_data = predictions.copy()

return pred_times, pred_data

Листинг А.6 - Модуль загрузки реальных данных

data_paths = {

'CML': 'data/cml.csv', 'LUNG': 'data/lung.csv', 'PBC': 'data/pbc.csv', 'Stanford2': 'data/stanford2.csv', 'UDCA': 'data/udca.csv', 'Veteran': 'data/veteran.csv', 'Myel-A': ['data/myeloid.csv', 0], 'Myel-B': ['data/myeloid.csv', 1],

}

def load_data(path):

if type(path) == list: path, trt_B = path

data = pd.read_table(path, sep=';') data = data[data['trt_B'] == trt_B] data = data.drop(columns=['trt_B']) else:

data = pd.read_table(path, sep=';') X = data.values[:, :-2]

y = np.array([(e, t) for t, e in data.values[:, -2:]], dtype=[('Status', '?'), ('Survival_in_days', '<f8')])

features = data.columns[:-2].values return X, y, features

Листинг А.7 - Модуль генерации признакового описания

def gen_data_features(stype, n_points, params):

if stype == 'ball':

origin, radius = params

points = uniform_within_ball(origin, radius, n_points) else:

hrect = params[0]

points = uniform_within_rect(hrect, n_points) return points

Листинг А.8 - Модуль генерации цензурированных данных

def gen_ctime_for_obj(obj, beta, l, k, max_time, death_prob): v = np.random.rand()

time = np.power(-np.log(v) / (l * np.exp(np.dot(obj, beta))), 1

/ k)

time = max_time if time > max_time else np.round(time)

event = bool(np.random.choice([0, 1], 1, p=[death_prob, 1 -death_prob]))

return (event, time)

def gen_cdata(stype, n_points, bparams, fparams, tparams): zero, n_zero = bparams l, k, max_time, death_prob = tparams n_features = fparams[0].shape[0]

beta_true = np.round(np.random.uniform(-1, 1, n_features), 2) beta_true[np.argsort(np.abs(beta_true))[:n_zero]] = zero X = gen_data_features(stype, n_points, fparams)

y = np.array([gen_ctime_for_obj(obj, beta_true, l, k, max_time, death_prob) for obj in X], dtype=[('Status', '?'), ('Survival_in_days', '<f8')])

return beta_true, X, y

Листинг А.9 - Модуль численного решения трансцендентных уравнений

def solver_teq(function): lval, hval = -1, 1

while np.sign(function(lval)) == np.sign(function(hval)): lval *= 10 hval *= 10

sol = sp.optimize.bisect(function, lval, hval) return sol

Листинг А.10 - Модуль численного решения систем линейных алгебраических уравнений

def solver_sle(matrix, rvector):

return np.linalg.solve(matrix, rvector)

Листинг А.11 - Модуль численного задач выпуклого программирования

def solver_opt_qlp(fvector, cmatrix, cvector, quad_term=None): v = cp.Variable(fvector.size) function = fvector.T @ v

if quad_term is not None: fmatrix = quad_term

function += cp.quad_form(v, fmatrix) conditions = [cmatrix @ v >= cvector]

problem = cp.Problem(cp.Minimize(function), conditions) problem.solve(solver='OSQP')

return v.value

Листинг А.12 - Модуль модифицированного метода роя частиц

def mtime_computation(X_test, y_train, model, model_type, t_gamma): pred_type = 'chf' zero_val = 1e-6

model_times, model_haz = model_predictions(X_test, pred_type, model, model_type)

times, model_haz = time_unification(model_times, model_haz, pred_type, y_train, zero_val)

measures = np.array(list(times[1:] - times[:-1]) + [t_gamma])

mtimes = np.dot(np.exp(-model_haz), measures)

return mtimes

def rp_procedure(particles, instance, r_cl, hrect):

r_part = np.linalg.norm(particles - instance, axis=1) r_lim = np.where(r_part > r_cl, r_cl, r_part)

particles = instance + np.array([coef * point for coef, point in zip(r_lim / r_part, particles - instance)])

lim_res = []

for component, (c_min, c_max) in zip(particles.T, hrect):

component = np.where(component < c_min, c_min, component) component = np.where(component > c_max, c_max, component) lim_res.append(component)

return np.transpose(lim_res)

def pso_objective(z, z_mtime, instance, inst_mtime, theta, margin, mcoef=1e+6):

loss_dist = np.linalg.norm(z - instance)

loss_marg = margin - theta * (z_mtime - inst_mtime)

mcoef = 0 if loss_marg < 0 else mcoef

return loss dist + mcoef * loss marg

def solver_opt_pso(instance, z_cl, r_cl, hrect, pparams, n_iter=1000, n_particles=2 000, w=0.729, c1=1.4945, c2=1.4945):

y_train, model, model_type, t_gamma, theta, margin = pparams

mtime_func = lambda particles: mtime_computation(particles, y_train, model, model_type, t_gamma)

inst_mtime = mtime_func(instance.reshape(1, -1))

obj_func = lambda z, z_mtime: pso_objective(z, z_mtime, instance, inst_mtime, theta, margin)

function = lambda particles: np.array([obj_func(p, m) for p, m in zip(particles, mtime func(particles))])

for iter_idx in np.arange(n_iter + 1):

if iter_idx == 0:

velocities = np.zeros((n_particles, instance.size))

particles = np.vstack([z_cl, uniform_within_ball(instance, r_cl, n_particles - 1)])

particles = rp_procedure(particles, instance, r_cl,

hrect)

else:

terms_cognitive = np.array([np.random.rand() * c1 * p for p in (best_particles - particles)])

terms_social = np.array([np.random.rand() * c2 * p for p in (best_global - particles)])

velocities = w * velocities + terms_cognitive +

terms_social

particles = particles + velocities

particles = rp_procedure(particles, instance, r_cl,

hrect)

values = function(particles)

if iter_idx == 0:

best_particles = particles.copy() best_values = values.copy() else:

for idx in np.arange(n_particles):

if values[idx] < best_values[idx]:

best_particles[idx] = particles[idx] best_values[idx] = values[idx]

best_global = best_particles[np.argmin(best_values)]

return best_global

Листинг А.13 - Модуль локального объяснения результатов

def expl_local(instance, model, model_type, n_perturbations, radius, eps=1e-6, t_gamma=1):

pred_type = 'chf'

X_expl, p_weights = instance_perturbation(instance, n_perturbations, radius)

base_times, base_haz = non_param_predictions(y_train, pred_type)

model_times, model_haz = model_predictions(X_expl, pred_type, model, model_type)

times, base_haz = time_unification(base_times, base_haz, pred_type, y_train, eps)

_, model_haz = time_unification(model_times, model_haz, pred_type, y_train, eps)

h_weights = np.array([hazards / np.log(hazards) for hazards in model_haz])

measures = np.array(list(times[1:] - times[:-1]) + [t_gamma])

logs = np.array([np.log(base_haz) - np.log(hazards) for hazards in model_haz])

weighted_measures = np.multiply(p_weights.reshape(-1, 1), measures)

data_A = 2 * (h_weights ** 2) * weighted_measures

data_c = 2 * logs * (h_weights ** 2) * weighted_measures

A = np.sum([np.sum(row) * np.multiply(x.reshape(-1, 1), x) for row, x in zip(data_A, X_expl)], axis=0)

c = np.sum([np.sum(row) * x for row, x in zip(data_c, X_expl)], axis=0)

beta = solver_sle(A, -c) return beta

Листинг А.14 - Модуль робастного локального объяснения результатов

def ks_bounds(hazards, gamma):

n_observations = np.unique(hazards).size - 1 denominator = np.sqrt(n_observations)

if n_observations <= 10:

denominator = denominator + 0.12 + 0.11 / denominator

delta = (np.max(hazards) - np.min(hazards)) * sp.special.kolmogi(gamma) / denominator

u_bound = np.where(hazards + delta > np.max(hazards), np.max(hazards), hazards + delta)

l_bound = np.where(hazards - delta < np.min(hazards), np.min(hazards), hazards - delta)

return u bound, l bound

def expl_rlocal(instance, model, model_type, n_perturbations, radius, gamma, reg_coef, eps=1e-6, t_gamma=1):

pred_type = 'chf'

n_features = instance.size

X_expl, p_weights = instance_perturbation(instance, n_perturbations, radius)

base_times, base_haz = non_param_predictions(y_train, pred_type)

model_times, model_haz = model_predictions(X_expl, pred_type, model, model_type)

times, base_haz = time_unification(base_times, base_haz, pred_type, y_train, eps)

_, model_haz = time_unification(model_times, model_haz, pred_type, y_train, eps)

bounds = np.array([ks_bounds(hazards, gamma) for hazards in model_haz])

u_bounds, l_bounds = bounds[:, 0, :], bounds[:, 1, :]

c = np.hstack([p_weights, np.zeros_like(instance)])

A = np.zeros((n_perturbations + n_features, n_perturbations + n_features))

for i in range(n_perturbations, n_perturbations + n_features): A[i, i] = reg_coef

M = np.vstack([np.hstack([np.eye(n_perturbations), X_expl]), np.hstack([np.eye(n_perturbations), -X_expl])])

s = np.hstack([np.max(np.log(u_bounds) - np.log(base_haz), axis=1), -np.min(np.log(l_bounds) - np.log(base_haz), axis=1)])

v = solver_opt_qlp(c, M, s, quad_term=A)

beta = v[n_perturbations:]

return beta

Листинг А.15 - Модуль контрфактуального объяснения результатов

def expl_cf(instance, theta, margin, opt_type, X_train, y_train, model, model_type, eps=1e-6, t_gamma=1, n_iter=1000, n_particles=2000):

pred_type = 'chf'

hrect = np.transpose([np.min(X_train, axis=0), np.max(X_train, axis=0)])

if opt_type == 'cvx' and model_type == 'cox': model_beta = model.coef_

model_times = model.cum_baseline_hazard_.x

model_base_haz = model.cum_baseline_hazard_.y * model.cum baseline hazard .a

inst_mtime = mtime_computation(instance, y_train, model, model_type, t_gamma)

times, base_haz = time_unification(model_times, model_base_haz, pred_type, y_train, eps)

measures = np.array(list(times[1:] - times[:-1]) + [t_gamma])

function = lambda u: margin - theta * (np.dot(measures,

np.exp(-base_haz * np.exp(u))) - inst_mtime)

u_zero = solver_teq(function)

fmatrix = np.diag(np.ones_like(instance))

fvector = -2 * instance

cmatrix = np.vstack([np.eye(instance.size), -np.eye(instance.size), (-theta * model_beta).reshape(1, -1)])

cvector = np.append(np.hstack([hrect.T[0], -hrect.T[1]]), -theta * u_zero)

z = solver_opt_qlp(fvector, cmatrix, cvector, quad_term=fmatrix)

else:

mtimes = mtime_computation(np.vstack([X_train, instance]), y_train, model, model_type, t_gamma)

train_mtimes, inst_mtime = mtimes[:-1], mtimes[-1]

mask_train = margin - theta * (train_mtimes - inst_mtime) <=

0

z_cl =

X_train[mask_train][np.argmin(np.linalg.norm(X_train[mask_train] -instance, axis=1))]

r_cl = np.linalg.norm(instance - z_cl)

pparams = y_train, model, model_type, t_gamma, theta, margin

z = solver_opt_pso(instance, z_cl, r_cl, hrect, pparams, n_iter, n_particles)

return z

Листинг А.16 - Пример использования комплекса программ

##### Загрузка дополнительной библиотеки

from sklearn.model_selection import train_test_split

##### Генерация данных n_points = 1000 stype = 'ball'

fparams = [np.array([0, 0, 0]), 5]

bparams = [1e-6, 1]

tparams = [1e-2, 2, 2000, 0.1]

beta_true, X, y = gen_cdata(stype, n_points, bparams, fparams, tparams)

##### Подготовка обучающей и тестовой выборок

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=10, random_state=0)

##### Обучение модели машинного обучения

model_type = 'cox'

model = CoxPHSurvivalAnalysis()

model.fit(X_train, y_train)

print('true :', beta_true) print('model:', model.coef_)

##### Выбор тестового объекта instance = X_test[0]

##### Инициализация параметров n_perturbations = 1000 radius = 0.05

gamma=0.01 reg_coef=0.1

theta = 1 margin = 5

##### Локальное объясение

expl_l = expl_local(instance, model, model_type, n_perturbations, radius)

print('expl local :', expl_l) ##### Робастное локальное объясение

expl_r = expl_rlocal(instance, model, model_type, n_perturbations, radius, gamma, reg_coef)

print('expl robust:', expl_r) ##### Контрфактуальное объясение

expl_cc = expl_cf(instance, theta, margin, 'cvx', X_train, y_train, model, model_type)

expl_cp = expl_cf(instance, theta, margin, 'pso', X_train, y_train, model, model_type)

print('expl cf cvx:', expl_cc) print('expl cf pso:', expl_cp)

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.