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

Подводные камни важности традиционных функций

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

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

Как важность перестановки решает нашу проблему

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

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

Реализация для моделей Sklearn

Есть несколько пакетов python, которые обеспечивают реализацию важности перестановок, некоторые из самых популярных из них - Eli5, mlxtend и rfpimp. Я использовал Eli5, так как он самый популярный (на основе рейтинга в поиске Google), предоставляет хороший API для моделей sklearn и активно поддерживается.

Eli5 предоставляет реализацию важности перестановки для моделей, совместимых со sklearn. Для нашего эксперимента мы построим базовую модель RandomForest для набора данных Titanic и сравним важность функции sklearn с оценкой важности перестановки.

Полный код эксперимента можно найти здесь. Мы проводим два эксперимента:

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

Эксперименты и результаты

Мы видим, что оба подхода дают нам разную важность функций для одной и той же модели. В то время как sklearn fi указывает, что наиболее важными являются пол и тариф (столбец ID). По важности перестановки лучшими характеристиками считаются Sex и Embarked.

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

Хорошие новости

Скоро появится важность перестановки в sklearn, вы можете отслеживать статус функции здесь. Тем временем вы можете продолжать использовать Eli5, поскольку он также предоставляет альтернативу для моделей без sklearn.

Альтернативы

В то время как важность перестановки дает надежный способ измерения важности признаков, существуют и другие методы, такие как LIME и SHAP. Eli5 предоставляет реализацию для LIME, а также реализацию важности перестановки для моделей без sklearn. Также ознакомьтесь с этим замечательным gitbook от Кристофа Мольнара, чтобы узнать больше об интерпретируемом машинном обучении.