Я построил классификатор логистической регрессии, который очень точен в моих данных. Теперь я хочу лучше понять, почему это так хорошо работает. В частности, я хотел бы оценить, какие функции вносят наибольший вклад (какие функции являются наиболее важными) и, в идеале, количественно оценить, насколько каждая функция вносит вклад в точность общей модели (или что-то в этом духе). Как мне это сделать?
Моей первой мыслью было оценить их на основе их коэффициента, но я подозреваю, что это не может быть правильно. Если у меня есть две функции, которые одинаково полезны, но разброс первой в десять раз больше, чем второй, то я ожидаю, что первая получит более низкий коэффициент, чем вторая. Есть ли более разумный способ оценить важность функции?
Обратите внимание, что я не пытаюсь понять, насколько небольшое изменение в функции влияет на вероятность результата. Скорее, я пытаюсь понять, насколько ценна каждая функция с точки зрения точности классификатора. Кроме того, моей целью является не столько выбор объектов или построение модели с меньшим количеством функций, сколько попытка обеспечить некоторую «объяснимость» изученной модели, чтобы классификатор не был просто непрозрачным черным ящиком.
Ответы:
Первое, что нужно отметить, это то, что вы не используете логистическую регрессию в качестве классификатора. Тот факт, что является двоичным, не имеет абсолютно никакого отношения к использованию этого метода максимального правдоподобия для фактической классификации наблюдений. Как только вы пройдете через это, сконцентрируйтесь на информационной единице золотого стандарта, которая является побочным продуктом максимальной вероятности: статистика отношения правдоподобия . Вы можете создать диаграмму, показывающую частичный вклад каждого предиктора с точки зрения его частичногоχ 2 χ 2Y χ2 χ2 статистики. Эти статистические данные имеют максимальную информацию / мощность. Вы можете использовать начальную загрузку, чтобы показать, насколько сложно выбрать «победителей» и «проигравших», получив доверительные интервалы в рядах прогнозирующей информации, предоставляемой каждым предиктором, когда учитываются другие предикторы. Пример приведен в разделе 5.4 моих заметок о курсе - нажмите Раздаточные материалы, а затем снова раздаточные материалы.
Если у вас есть сильно коррелированные функции, вы можете выполнить «тест на куски», чтобы объединить их влияние. Диаграмма, которая делает это, представлена на рисунке 15.11, где
size
представлена совокупная доля 4 отдельных предикторов.источник
Короткий ответ заключается в том, что нет единого, «правильного» способа ответить на этот вопрос.
Для лучшего обзора проблем см. Статьи Ульрике Гремпинга, например, Оценки относительной важности в линейной регрессии, основанные на разложении дисперсии . Варианты, которые она обсуждает, варьируются от простой эвристики до сложных, многопараметрических решений с интенсивным использованием процессора.
http://prof.beuth-hochschule.de/fileadmin/prof/groemp/downloads/amstat07mayp139.pdf
Groemping предлагает свой собственный подход в пакете R под названием RELAIMPO, который также стоит прочитать.
https://cran.r-project.org/web/packages/relaimpo/relaimpo.pdf
Одна быстрая и грязная эвристика, которую я использовал, заключается в суммировании хи-квадратов (F-значений, t-статистики), связанных с каждым параметром, а затем переоценке отдельных значений с помощью этой суммы. Результатом будет показатель относительной важности.
Тем не менее, я никогда не был поклонником «стандартизированных бета-коэффициентов», хотя они часто рекомендуются профессией и широко используются. Вот проблема с ними: стандартизация является одномерной и внешней по отношению к решению модели. Другими словами, этот подход не отражает условный характер результатов модели.
источник
Довольно надежный способ сделать это состоит в том, чтобы попытаться подогнать модель N раз, где N - количество признаков. Каждый раз используйте N-1 функций и не включайте одну функцию. Затем вы можете использовать свою любимую метрику проверки, чтобы измерить, насколько включение или исключение каждой функции влияет на производительность модели. В зависимости от количества имеющихся у вас функций это может быть вычислительно дорого.
источник
Что касается вашего последнего замечания, конечно, возможно, что переменная может внести значительный вклад в расчетные шансы журнала, но на самом деле не сильно повлияет на «истинные» шансы журнала, но я не думаю, что это должно быть слишком большой проблемой, если мы иметь уверенность в процедуре, которая произвела оценки.
источник
Вы правы в том, почему вы не должны использовать коэффициенты в качестве меры релевантности, но вы абсолютно можете, если вы поделите их на их стандартную ошибку! Если вы оценили модель с помощью R, то это уже сделано для вас! Вы даже можете удалить наименее важные функции из модели и посмотреть, как она работает.
Более эвристический подход к изучению того, как различные изменения переменных влияют на результат, делает именно это: попробуйте разные исходные данные и изучите их оценочные вероятности. Однако, поскольку ваша модель довольно проста, я бы предложил против этого
источник