Как я могу получить относительную важность особенностей логистической регрессии для конкретного прогноза?

Я использую логистическую регрессию (в scikit) для задачи бинарной классификации, и меня интересует возможность объяснить каждый отдельный прогноз. Чтобы быть более точным, я заинтересован в прогнозировании вероятности положительного класса и оценке степени важности каждой функции для этого прогноза.

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

На данный момент лучшее, что я нашел, это следующие 3 варианта:

Вариант Монте-КарлоИсправление всех других функций, перезапустите прогноз, заменив функцию, которую мы хотим оценить, на случайные выборки из обучающего набора. Делайте это большое количество раз. Это установитбазовая вероятность для положительного класса, Тогда сравните свероятность положительного класса оригинального прогона. Разница является мерой важности функции.Классификаторы "Оставить один": Чтобы оценить важность функции, сначала создайте модель, которая использует все функции, а затем другую, которая использует все функции, кроме той, которая тестируется. Предсказать новое наблюдение, используя обе модели. Разница между ними заключается в важности функции.Скорректированные бета-версии: На основеэтот ответранжирование важности функций по«величина его коэффициента умножается на стандартное отклонение соответствующего параметра в данных».

Все варианты (с использованием бета-версий, Монте-Карло и «Оставь один-один») кажутся мне плохим решением.

Монте-Карло зависит от распределения учебного набора, и я не могу найти никакой литературы, чтобы поддержать это.«Оставить одного» легко можно было бы обмануть двумя коррелированными характеристиками (когда один отсутствовал, другой вмешался бы, чтобы компенсировать, и обоим было бы дано 0 значимости).Скорректированные бета-версии звучат правдоподобно, но я не могу найти никакой литературы, чтобы поддержать это.

Актуальный вопрос: Как лучше всего интерпретировать важность каждой функции на момент принятия решения с помощью линейного классификатора?

Краткое примечание № 1: для случайных лесов это тривиально, мы можем просто использоватьprediction + bias разложение, как красиво объяснено вэтот блог, Проблема здесь в том, как сделать нечто подобное с линейными классификаторами, такими как логистическая регрессия.

Краткое примечание № 2: есть много связанных вопросов по stackoverflow (1 2 3 4 5). Я не смог найти ответ на этот конкретный вопрос.

Ответы на вопрос(2)

Ваш ответ на вопрос