Вычислить важность глобальной функции для обученного оценщика

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

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

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

Что такое важность функции перестановки?

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

Алгоритм важности признаков перестановки измеряет изменение производительности модели при изменении любого конкретного признака. Существует два алгоритма для вычисления важности признаков с использованием метода перестановки:

Подход 1: удаление функций и переобучение:

  1. Сопоставьте средство оценки с обучающим набором данных и вычислите производительность.
  2. Удалите одну функцию из обучающих данных и повторно вычислите производительность.
  3. Измерьте ухудшение производительности модели с шага 1 и шага 2.
  4. Добавьте удаленную функцию на шаге 2.
  5. Повторите шаги 2, 3 и 4 для всех функций.

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

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

Подход 2: Перетасовка значений характеристик:

  1. Сопоставьте средство оценки с обучающим набором данных и вычислите производительность.
  2. Используйте подогнанный оценщик из шага 1, чтобы вычислить производительность тестовых данных.
  3. Перемешайте значения признаков определенного признака из тестового набора данных.
  4. Используйте подобранный оценщик из шага 1, чтобы вычислить производительность перетасованного набора тестовых данных из шага 2.
  5. Вычислите ухудшение производительности по результатам шагов 2 и 4.
  6. Отмените перемешанные изменения, выполненные на шаге 3.
  7. Повторите шаги 2, 3, 4 и 5 для объектов в наборе данных.

Используя подход 2, важность функции вычисляется путем измерения ухудшения производительности тестовых данных. Этот метод сравнительно менее затратен, поскольку он подходит к оценке только один раз и делает прогнозы для тестовых данных и перемешанных тестовых данных n+1 раз. Функция, в которой мы видим значительное снижение производительности, может рассматриваться как важная функция, а функция, производительность которой почти не меняется, может быть названа менее важной функцией.

Выполнение:

Библиотеки Scikit-learn и ELI5 предлагают реализацию алгоритма важности признаков перестановки в одной строке кода Python.

Набор данных. Набор данных о раке молочной железы, открытый библиотекой scikit-learn, будет использоваться для демонстрации важности признаков перестановки.

Для реализации алгоритма можно использовать permutation_importance из пакета scikit-learn.

Алгоритм важности признаков перестановки реализован в строке 8. Параметр n_repeats представляет количество раз перестановки признака.

Результат:

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

Заключение:

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

Для мультиколлинеарного набора данных важность признаков перестановки может не интерпретировать коррелированные признаки. Прочитайте документацию scikit-learn, чтобы понять, как справиться с условием мультиколлинеарности при интерпретации модели с использованием важности признаков перестановки.

Использованная литература:

[1] Документация Scikit-learn: https://scikit-learn.org/stable/modules/permutation_importance.html#outline-of-the-permutation-importance-algorithm

Понравилась статья? Станьте участником Medium, чтобы продолжать обучение без ограничений. Я получу небольшую часть вашего членского взноса, если вы перейдете по следующей ссылке, без каких-либо дополнительных затрат с вашей стороны.



Спасибо за чтение