Изменения

Перейти к: навигация, поиск

Интерпретируемые модели

1588 байт добавлено, 15:01, 5 января 2021
Нет описания правки
=== Когда интерпретируемость не требуется ===
* Влияние модели мало, а сама интерпретация стоит денег требует большого количества ресурсов (мл в онлайн магазинах / предложение новых покупок на основе предыдущихв онлайн магазинах).
* проблема Проблема хорошо разработана и люди и так все понимают (специалистов обучают ещё в университетах).
* класс Класс модели широко применяется: [[Линейная регрессия|линейные модели]] (стоимость квартиры: очевидно понятно, что это метраж, расстояние до метро, школы, детского сада и т. д., но когда параметром много, то уже сложно всё это держать в голове).
* обман системы Необходимость скрыть систему (кому давать кредит, качество работы сотрудника, поисковое ранжирование).
== Примеры моделей ==
=== Пример интерпретируемой модели ===
Допустим есть модель в банке которая, помогает решить, давать ли кредит человеку или нет. Приходит в банк Вася, модель отказывает ему в кредите, вопрос почему? Интерпретируемая модель ответит, потому что у него, допустим плохая кредитная история или маленькая зарплата, а по не интерпретируемой модели вряд ли будет, что-то понятно.  === Пример эффективной в предсказании , но не интерпретируемой модели ===
Допустим есть данные и задача бинарной [[Общие_понятия#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87|классификации]], и 99% объектов имеют класс 1, остальные 0.
== Другие свойства моделей ==
* Предсказуемость и моделируемость: свойства при которых человек способен предсказывать поведение и ошибки модели, а так же умение "симулировать" их. Например TODO: сложные физические модели, где часто возможно абстрагировать простые привила для примерного предсказания результатов. [[Дерево решений и случайный лес| деревья решений]] или [[Линейная регрессия|линейный модели]] для небольшой размерности.
* Разложимость и модульность: свойства при которых человек способен декомпазировать модель на интепретируемые компоненты. Например : [[Дерево решений и случайный лес| деревья решений]] или [[Линейная регрессия|линейный модели]] для небольшой размерности.
* Доверие: пользователь чувствует себя комфортно с настройками предсказания. Так же модель, может показать, когда она не совсем уверена в своём предсказании.
* Информативность: из модели можно выявить вспомогательную информацию полезную для принятия какого-либо решения.
=== Использовать только интерпретируемые модели (англ. Transparent Models): ===
* [[Линейная регрессияФайл:inter2acc.png|Линейные моделиthumb|400px| рис. 1. Зависимость интерпретируемости от точности.]]
* [[Дерево решений и случайный лесЛинейная регрессия| Деревья решенийЛинейные модели]], списки правил, наборы правил.
* [[Дерево решений и случайный лес| Деревья решений]], списки правил, наборы правил. * Модели основывающиеся на предыдущем опыте. '''Но''' не всё хорошо описывается этими моделями.
=== Построить интерпретируемую модель поверх эмбендинга ===
'''Пример:''' у нас есть лук. Если “лук” находится рядом с “чесноком”, то модель думает о “луке” как о овоще, если “лук” находится рядом с “пистолетом”, “рогаткой”, то модель думает о “луке” как о оружии.
'''Но''' модель теперь интерпретируема, но сами признаки перестают быть таковым.
=== Важность признаков ===
Одна из возможностей проанализировать модель — оценить, насколько её решение зависит от отдельных признаков.
'''SHAP''' - (англ. SHapley Additive exPlanations) Важность i-го признака здесь вычисляется по такой формуле:<ref name="exp"> Пример реализации [https://github.com/slundberg/shap]</ref>.
<math>\begin{equation*} \phi_{i}(p) =\sum_{S \subseteq \{1,2..n\} / \{i\}} \frac{|S|!(n - |S| -1)!}{n!}(p(S \cup \{ i \}) - p(S)) \end{equation*}</math>
где '''f(S) ''' — ответ модели, обученной на подмножестве '''S ''' множества '''n ''' признаков (на конкретном объекте — вся формула записывается для конкретного объекта).<ref name="habr">Павел Трошенков "Как интерпретировать предсказания моделей в SHAP" [https://habr.com/ru/post/428213]</ref>.
Видно, что вычисление требует переобучения модели на всевозможных подмножествах признаках, поэтому на практике применяют приближения формулы.
=== Суррогатные модели ===
 
[[Файл:lime.png|thumb|400px| рис. 2. Построение локальной суррогатной модели.]]
'''LIME''' - (англ. Local Interpretable Model-agnostic Explanations) <ref name="Lime">Marco Tulio Ribeiro, Sameer Singh, Carlos Guestrin "Explaining the Predictions of Any Classifier" [https://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf]</ref>
Даже если простая модель не сможет смоделировать сложную во всём пространстве, в окрестности конкретной точки это вполне возможно. Локальные модели объясняют конкретный ответ чёрного ящика. Эта идея показана на рис. w. У нас есть чёрный ящик (ЧЯ), который построен на данных. В некоторой точке он выдал ответ, мы генерируем выборку в окрестности этой точки, узнаём ответы ЧЯ и настраиваем обычный линейный классификатор. Он описывает ЧЯ в окрестности точки, хотя во всём пространстве он сильно отличается от ЧЯ. Из рис. 2 понятны достоинства и недостатки такого подхода.
[[Файл:lime.png|500px]]
 
''рис. 2. Построение локальной суррогатной модели.''
== Примечания ==
89
правок

Навигация