SlideShare a Scribd company logo
1 of 45
Download to read offline
Интерпретируем
модели
машинного обучения
Дмитрий Колодезев
ООО Промсофт, Новосибирск
План
●
Что это и почему оно вас касается
●
Интерпретируемые модели
●
Основные подходы
●
Немного о нейронках
●
XGBoost Catboost
●
Инструменты
●
Литература
Зачем интерпретировать
●
Отладка
●
Очистка данных
●
Извлечение знаний из модели
●
Улучшение сбора данных
●
Аудит — дискриминация, закладки и т.д.
●
Требования регулятора (LR + бины?)LR + бины?)
●
Требования GDPR 12, 22, но это не точно
●
Мы в любом случае строим модель модели
Объяснимость и предсказуемость
●
Что она делает?
●
Почему она так решила?
●
Кто ее этому научил?
●
Надежна ли она?
●
На чем она сломается?
●
Как повлиять на решение?
●
Куда прятаться?
●
Машина, робот-пылесос, светофор, модели ML
Когда не нужно
●
Влияние модели мало
●
Проблема хорошо разработана
●
Класс моделей широко применяется
– линейные модели
●
Хотим скрыть алгоритм
– скоринг
– ранжирование
– оценка качества
Свойства
●
Понятность
●
Контрастность contrastive
●
Избирательность selectivity
●
Стабильность robustness
●
Локальность / глобальность
●
Уместность (LR + бины?)подходит этому пользователю)
●
Последовательность (LR + бины?)похожее объясняет похоже)
●
Правдивость (LR + бины?)нет контрпримера)
●
В чем измерить интерпретируемость?
Что и как объясняем
●
Входные данные
●
Модель как белый ящик
●
Модель как черный ящик
●
Результаты работы модели
●
Документируем внутренности
●
Создаем сурогатную модель
●
Объясняем на примерах
Интерпретируемые модели
●
Линейные модели
●
Деревья и списки правил
●
кNN
●
Примеры
Линейные модели
●
Влияние на результат очевидно
●
Масштаб. Сравнивать эффекты, не веса
●
Значимость — p-value
●
Иллюзия плотного распределения
●
Проблемы с разреженными моделями
●
LR — логарифм шанса
●
GLM GAM — все сложно
Деревья
●
Выучивают разбиение данных
●
Очевидное представление
●
Деревья небольшой глубины понятны
На примерах
●
Если признаки интерпретируемы
●
Картинки — да
●
С табличными данными сложнее
●
Понятный для человека подход
●
Помогает построить ментальную метамодель
●
kNN
●
Деревья решений ищут похожие группы
Partial Dependence Plot
●
Анализ частичной зависимости
●
Как целевая метрика зависит от переменной
●
Нескоррелированность (LR + бины?)→ ALE))
●
Глобальный, интуитивный
●
Легко реализовать
●
Не более двух переменных
●
Разнонаправленные эффекты скрыты
●
Skatter или самим написать
Partial Dependence Plot
Individual Conditional Expectation
●
Индивидуальное условное ожидание
●
Как целевая метрика изменялась бы для
точки, если бы мы меняли один параметр
●
Нескоррелированность, иллюзия плотности
●
Самим написать, PyCE)box или PDPbox
●
PD = cреднее ICE) по всем объектам
Individual Conditional Expectation
Accumulated Local Effects
●
PDP в маленькой окрестности
●
Уменьшает влияние корреляции признаков, но
не убирает ее совсем
●
Более корректное сэмплирование, т. е. не
предполагает плотного распределения
●
Быстрее считать, центрированы, понятны
●
ALE)Python
Accumulated Local Effects
Feature Interaction
●
Мы можем посмотреть, насколько сумма PD по
отдельным признакам отличается от заданной
функции
●
Если признаки нескоррелированы, целевая
функция равна сумме PD с точностью до
константы.
●
Говорит о силе, не о форме взаимодействия
●
H-статистика — объясненная дисперсия
●
Есть в Catboost, можно считать руками
Feature Interaction
Feature Importance
●
Насколько признак был важен для предикта
●
Есть практически во всех пакетах
●
Везде странно считается
●
Правильно — насколько ухудшится при
перемешивании, комбинаторно сложно
●
Лучше отношение, а не разница
●
Нестабильно
●
При добавлении скоррелированных фич
перераспределяется между ними.
Глобальные суррогаты
●
Обучаем простую модель предсказывать
поведение сложной
●
Предсказываем не мир, а модель!
●
Можно измерить R². Сколько приемлимо?Сколько Сколько приемлимо?приемлимо?
●
Гибкие
●
Объяснимые Сколько приемлимо?(если Сколько приемлимо?суррогат Сколько приемлимо?объясним)
●
Качество Сколько приемлимо?приближения Сколько приемлимо?может Сколько приемлимо?быть Сколько приемлимо?очень Сколько приемлимо?разным
●
Можно Сколько приемлимо?использовать Сколько приемлимо?другой Сколько приемлимо?набор Сколько приемлимо?признаков!
LIME — локальные суррогаты
●
Предсказание для конкретной точки
●
Строим суррогатную модель для одной точки
●
Интерпретируемую селективную модель — дерево или LASSO,
взвешенное близостью
●
Кого считаем соседями? Ширину ядра подбирать
●
Количественные признаки сэмплируем из N
●
Текст включаем-выключаем
●
Картинки — суперпиксели — выключаем
●
LIME), E)li5
●
Может обучаться на других признаках!
LIME — локальные суррогаты
LIME — локальные суррогаты
LIME — локальные суррогаты
●
For Christmas Song visit my channel! ;)
Shapley Values & SHAP
●
Теория игр. Как делить приз между игроками
●
Пробуем сыграть всеми возможными коалициями
●
Средняя выгода от участия игрока — SV
●
Делим добычу пропорционально SV
●
Игроки — фичи.
●
Считать напрямую комбинаторно сложно
●
Аппроксимируют
●
Для точки и среднее
●
SHAP. Есть в Catboost
Shapley Values & SHAP
Shapley Values & SHAP
Shapley Values & SHAP
Shapley Values & SHAP
Shapley Values & SHAP
●
Эффективно (LR + бины?)сумма равна отклонению точки)
●
Аддитивно
●
Если SV = 0, влияния нет
●
Имеет теоретическое обоснование
●
Возможно, прокатит в продвинутом суде
●
Не предиктивная модель!
●
Для скоррелированных фич — маловероятные
точки, как все перестановочные методы
Доказательство от противного
●
Давайте найдем примеры, максимально
похожие на нашу точку, но другого класса
●
Разница между ними будет объяснением
решения
●
Не требует доступа к датасету
●
Нет нормальных реализаций
●
Пишется (LR + бины?)расширяющаяся сфера)
●
Может давать много разных объяснений
Anchors
●
https://github.com/marcotcr/anchor
●
Давайте найдем подмножество признаков,
которые для заданной точки закрепляют
предикт.
●
Это и будут якоря — Anchors
●
Хорошее объяснение
●
Только для таблиц и текста
●
Будет рассказ на датафесте
Adversarial Examples
●
Дальнейшее развитие «от противного»
●
Тысячи их, в основном для нейронок
●
На полях презентации не хватило места для
доказательства этой теоремы
●
Некоторые могут быть использованы для
аудита и отладки модели, но это неточно
Prototypes and Criticisms
●
Давайте найдем типичные точки данных, и будем
объяснять модель на примерах
●
Рассмотрим внимательно примеры и поймем
данные и модель
●
Давайте найдем нетипичные точки данных, и
будем использовать для отладки
●
k-medoids возвращает прототипы. Находит
наименее непохожие, попарно переставляя
●
MMD-critic - не поддерживается, но какая статья!
Influential Instances
●
Какие сэмплы сильнее всего повлияли на модель?
●
Статистическая классика
– Cook`s distance — если удаляем
– DFBE)TA — как повлияли
●
На предикт в точке или на всю модель
●
Просто распечатать 10 самых влиятельных может быть
недостаточно
●
Можно построить линейную модель!
●
Встроено в CatBoost
●
Harmful Object Removal, Debugging Domain Mismatch
Интерпретация результатов
●
10 самых уверенных ошибок каждого класса
●
10 самых неуверенных предиктов
●
Например в FastAI
●
Легко делается везде
Про нейронки
●
Градиент пиксела ~ необычность картинки
●
Визуализация «внимания»
●
Approximating CNNs with Bag-of-local-Features
нарезали на патчи, Resnet фичи и LR
Нейронки — данные
●
t-SNE)
●
CNN Visualizations with Dogs and Cats
●
Do's and Don'ts of using t-SNE) to Understand Visi
on Models
Нейронки — юниты
●
Unsupervised Sentiment Neuron
●
Похожие слои выучивают похожие концепты
●
Выучат то, что в данных
●
Не передать словами
●
В списке литературы
2 мастеркласса
Eli5
●
https://github.com/TeamHG-Memex/eli5
●
https://www.youtube.com/watch?v=pqqcUzj3R90
●
В основном про текст
●
TextE)xplainer, crfsuite, XGBoost, LightGBM
●
@kostia, @kmike
XGBoost
●
Из коробки довольно грустно
– Gain
– Coverage
– Weight
●
LIME), SHAP, treeinterpreter, E)li5
●
https://github.com/jphall663/
interpretable_machine_learning_with_python
Catboost
●
Feature importance
– PredictionValuesChange
– LossFunctionChange
– ShapValues
– Interaction
●
Object importance
– Average
– PerObject
Почитать
●
https://dyakonov.org/2018/08/28/интерпретации-
чёрных-ящиков/
●
https://www.kaggle.com/learn/machine-learning-
explainability
●
https://christophm.github.io/interpretable-ml-
book/
●
http://interpretable-ml.org/cvpr2018tutorial/
●
https://interpretablevision.github.io/
●
http://netdissect.csail.mit.edu/
Вопросы?
dkolodezev
dkolodezev
promsoft
d_key
Пиши, если что...
dmitry_kolodezev

More Related Content

Similar to Интерпретация моделей машинного обучения

Кирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программированиеКирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программированиеDaria Oreshkina
 
20111001 information retrieval raskovalov_lecture2
20111001 information retrieval raskovalov_lecture220111001 information retrieval raskovalov_lecture2
20111001 information retrieval raskovalov_lecture2Computer Science Club
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиAlexey Zinoviev
 
Ментальное программирование / Кирилл Мокевнин (Undev)
Ментальное программирование / Кирилл Мокевнин (Undev)Ментальное программирование / Кирилл Мокевнин (Undev)
Ментальное программирование / Кирилл Мокевнин (Undev)Ontico
 
ПиАПС, Лекция №1б - Представление архитектуры
ПиАПС, Лекция №1б - Представление архитектурыПиАПС, Лекция №1б - Представление архитектуры
ПиАПС, Лекция №1б - Представление архитектурыPavel Shalagin
 
Построение графов по влиянию ссылочного ранжирования на продвижение сайтов
Построение графов по влиянию ссылочного ранжирования на продвижение сайтовПостроение графов по влиянию ссылочного ранжирования на продвижение сайтов
Построение графов по влиянию ссылочного ранжирования на продвижение сайтовTaras Gushcha
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)ScalaNsk
 
Multilabel classification in nlp
Multilabel classification in nlpMultilabel classification in nlp
Multilabel classification in nlpAlexei Tishurov
 
Качество кода. NDepend
Качество кода. NDependКачество кода. NDepend
Качество кода. NDependRoman Kalita
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechZlit
 
Введение в машинное обучение
Введение в машинное обучениеВведение в машинное обучение
Введение в машинное обучениеGrigory Sapunov
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonPyNSK
 
Концепция продукта
Концепция продуктаКонцепция продукта
Концепция продуктаYury Kupriyanov
 
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
 

Similar to Интерпретация моделей машинного обучения (20)

Кирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программированиеКирилл Мокевнин — Ментальное программирование
Кирилл Мокевнин — Ментальное программирование
 
20111001 information retrieval raskovalov_lecture2
20111001 information retrieval raskovalov_lecture220111001 information retrieval raskovalov_lecture2
20111001 information retrieval raskovalov_lecture2
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерности
 
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
 
Ментальное программирование / Кирилл Мокевнин (Undev)
Ментальное программирование / Кирилл Мокевнин (Undev)Ментальное программирование / Кирилл Мокевнин (Undev)
Ментальное программирование / Кирилл Мокевнин (Undev)
 
ПиАПС, Лекция №1б - Представление архитектуры
ПиАПС, Лекция №1б - Представление архитектурыПиАПС, Лекция №1б - Представление архитектуры
ПиАПС, Лекция №1б - Представление архитектуры
 
Построение графов по влиянию ссылочного ранжирования на продвижение сайтов
Построение графов по влиянию ссылочного ранжирования на продвижение сайтовПостроение графов по влиянию ссылочного ранжирования на продвижение сайтов
Построение графов по влиянию ссылочного ранжирования на продвижение сайтов
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)
ООП в Scala: выход из застоя (ScalaNsk meeting #5, 22.11.2013)
 
Multilabel classification in nlp
Multilabel classification in nlpMultilabel classification in nlp
Multilabel classification in nlp
 
Качество кода. NDepend
Качество кода. NDependКачество кода. NDepend
Качество кода. NDepend
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit Tech
 
Введение в машинное обучение
Введение в машинное обучениеВведение в машинное обучение
Введение в машинное обучение
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
Концепция продукта
Концепция продуктаКонцепция продукта
Концепция продукта
 
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
 

Интерпретация моделей машинного обучения

  • 2. План ● Что это и почему оно вас касается ● Интерпретируемые модели ● Основные подходы ● Немного о нейронках ● XGBoost Catboost ● Инструменты ● Литература
  • 3. Зачем интерпретировать ● Отладка ● Очистка данных ● Извлечение знаний из модели ● Улучшение сбора данных ● Аудит — дискриминация, закладки и т.д. ● Требования регулятора (LR + бины?)LR + бины?) ● Требования GDPR 12, 22, но это не точно ● Мы в любом случае строим модель модели
  • 4. Объяснимость и предсказуемость ● Что она делает? ● Почему она так решила? ● Кто ее этому научил? ● Надежна ли она? ● На чем она сломается? ● Как повлиять на решение? ● Куда прятаться? ● Машина, робот-пылесос, светофор, модели ML
  • 5. Когда не нужно ● Влияние модели мало ● Проблема хорошо разработана ● Класс моделей широко применяется – линейные модели ● Хотим скрыть алгоритм – скоринг – ранжирование – оценка качества
  • 6. Свойства ● Понятность ● Контрастность contrastive ● Избирательность selectivity ● Стабильность robustness ● Локальность / глобальность ● Уместность (LR + бины?)подходит этому пользователю) ● Последовательность (LR + бины?)похожее объясняет похоже) ● Правдивость (LR + бины?)нет контрпримера) ● В чем измерить интерпретируемость?
  • 7. Что и как объясняем ● Входные данные ● Модель как белый ящик ● Модель как черный ящик ● Результаты работы модели ● Документируем внутренности ● Создаем сурогатную модель ● Объясняем на примерах
  • 9. Линейные модели ● Влияние на результат очевидно ● Масштаб. Сравнивать эффекты, не веса ● Значимость — p-value ● Иллюзия плотного распределения ● Проблемы с разреженными моделями ● LR — логарифм шанса ● GLM GAM — все сложно
  • 10. Деревья ● Выучивают разбиение данных ● Очевидное представление ● Деревья небольшой глубины понятны
  • 11. На примерах ● Если признаки интерпретируемы ● Картинки — да ● С табличными данными сложнее ● Понятный для человека подход ● Помогает построить ментальную метамодель ● kNN ● Деревья решений ищут похожие группы
  • 12. Partial Dependence Plot ● Анализ частичной зависимости ● Как целевая метрика зависит от переменной ● Нескоррелированность (LR + бины?)→ ALE)) ● Глобальный, интуитивный ● Легко реализовать ● Не более двух переменных ● Разнонаправленные эффекты скрыты ● Skatter или самим написать
  • 14. Individual Conditional Expectation ● Индивидуальное условное ожидание ● Как целевая метрика изменялась бы для точки, если бы мы меняли один параметр ● Нескоррелированность, иллюзия плотности ● Самим написать, PyCE)box или PDPbox ● PD = cреднее ICE) по всем объектам
  • 16. Accumulated Local Effects ● PDP в маленькой окрестности ● Уменьшает влияние корреляции признаков, но не убирает ее совсем ● Более корректное сэмплирование, т. е. не предполагает плотного распределения ● Быстрее считать, центрированы, понятны ● ALE)Python
  • 18. Feature Interaction ● Мы можем посмотреть, насколько сумма PD по отдельным признакам отличается от заданной функции ● Если признаки нескоррелированы, целевая функция равна сумме PD с точностью до константы. ● Говорит о силе, не о форме взаимодействия ● H-статистика — объясненная дисперсия ● Есть в Catboost, можно считать руками
  • 20. Feature Importance ● Насколько признак был важен для предикта ● Есть практически во всех пакетах ● Везде странно считается ● Правильно — насколько ухудшится при перемешивании, комбинаторно сложно ● Лучше отношение, а не разница ● Нестабильно ● При добавлении скоррелированных фич перераспределяется между ними.
  • 21. Глобальные суррогаты ● Обучаем простую модель предсказывать поведение сложной ● Предсказываем не мир, а модель! ● Можно измерить R². Сколько приемлимо?Сколько Сколько приемлимо?приемлимо? ● Гибкие ● Объяснимые Сколько приемлимо?(если Сколько приемлимо?суррогат Сколько приемлимо?объясним) ● Качество Сколько приемлимо?приближения Сколько приемлимо?может Сколько приемлимо?быть Сколько приемлимо?очень Сколько приемлимо?разным ● Можно Сколько приемлимо?использовать Сколько приемлимо?другой Сколько приемлимо?набор Сколько приемлимо?признаков!
  • 22. LIME — локальные суррогаты ● Предсказание для конкретной точки ● Строим суррогатную модель для одной точки ● Интерпретируемую селективную модель — дерево или LASSO, взвешенное близостью ● Кого считаем соседями? Ширину ядра подбирать ● Количественные признаки сэмплируем из N ● Текст включаем-выключаем ● Картинки — суперпиксели — выключаем ● LIME), E)li5 ● Может обучаться на других признаках!
  • 23. LIME — локальные суррогаты
  • 24. LIME — локальные суррогаты
  • 25. LIME — локальные суррогаты ● For Christmas Song visit my channel! ;)
  • 26. Shapley Values & SHAP ● Теория игр. Как делить приз между игроками ● Пробуем сыграть всеми возможными коалициями ● Средняя выгода от участия игрока — SV ● Делим добычу пропорционально SV ● Игроки — фичи. ● Считать напрямую комбинаторно сложно ● Аппроксимируют ● Для точки и среднее ● SHAP. Есть в Catboost
  • 31. Shapley Values & SHAP ● Эффективно (LR + бины?)сумма равна отклонению точки) ● Аддитивно ● Если SV = 0, влияния нет ● Имеет теоретическое обоснование ● Возможно, прокатит в продвинутом суде ● Не предиктивная модель! ● Для скоррелированных фич — маловероятные точки, как все перестановочные методы
  • 32. Доказательство от противного ● Давайте найдем примеры, максимально похожие на нашу точку, но другого класса ● Разница между ними будет объяснением решения ● Не требует доступа к датасету ● Нет нормальных реализаций ● Пишется (LR + бины?)расширяющаяся сфера) ● Может давать много разных объяснений
  • 33. Anchors ● https://github.com/marcotcr/anchor ● Давайте найдем подмножество признаков, которые для заданной точки закрепляют предикт. ● Это и будут якоря — Anchors ● Хорошее объяснение ● Только для таблиц и текста ● Будет рассказ на датафесте
  • 34. Adversarial Examples ● Дальнейшее развитие «от противного» ● Тысячи их, в основном для нейронок ● На полях презентации не хватило места для доказательства этой теоремы ● Некоторые могут быть использованы для аудита и отладки модели, но это неточно
  • 35. Prototypes and Criticisms ● Давайте найдем типичные точки данных, и будем объяснять модель на примерах ● Рассмотрим внимательно примеры и поймем данные и модель ● Давайте найдем нетипичные точки данных, и будем использовать для отладки ● k-medoids возвращает прототипы. Находит наименее непохожие, попарно переставляя ● MMD-critic - не поддерживается, но какая статья!
  • 36. Influential Instances ● Какие сэмплы сильнее всего повлияли на модель? ● Статистическая классика – Cook`s distance — если удаляем – DFBE)TA — как повлияли ● На предикт в точке или на всю модель ● Просто распечатать 10 самых влиятельных может быть недостаточно ● Можно построить линейную модель! ● Встроено в CatBoost ● Harmful Object Removal, Debugging Domain Mismatch
  • 37. Интерпретация результатов ● 10 самых уверенных ошибок каждого класса ● 10 самых неуверенных предиктов ● Например в FastAI ● Легко делается везде
  • 38. Про нейронки ● Градиент пиксела ~ необычность картинки ● Визуализация «внимания» ● Approximating CNNs with Bag-of-local-Features нарезали на патчи, Resnet фичи и LR
  • 39. Нейронки — данные ● t-SNE) ● CNN Visualizations with Dogs and Cats ● Do's and Don'ts of using t-SNE) to Understand Visi on Models
  • 40. Нейронки — юниты ● Unsupervised Sentiment Neuron ● Похожие слои выучивают похожие концепты ● Выучат то, что в данных ● Не передать словами ● В списке литературы 2 мастеркласса
  • 42. XGBoost ● Из коробки довольно грустно – Gain – Coverage – Weight ● LIME), SHAP, treeinterpreter, E)li5 ● https://github.com/jphall663/ interpretable_machine_learning_with_python
  • 43. Catboost ● Feature importance – PredictionValuesChange – LossFunctionChange – ShapValues – Interaction ● Object importance – Average – PerObject