Машинное обучение - ранжирование функций по алгоритмам - PullRequest
0 голосов
/ 04 января 2019

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

  1. Нейронные сети
  2. Логистика
  3. Наивный
  4. Случайный лес
  5. Adaboost

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

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

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Поскольку ваша цель - получить некоторую интуицию о том, что происходит, вот что вы можете сделать:

Давайте начнем со Random Forest для простоты, но вы можете сделать это и с другими алгоритмами.Во-первых, вам нужно построить хорошую модель.Это хорошо в том смысле, что вы должны быть удовлетворены его производительностью , и оно должно быть Надежным , что означает, что вы должны использовать проверочный набор и / или набор тестов.Эти моменты очень важны, потому что мы проанализируем, как модель принимает свои решения, поэтому, если модель плохая, вы получите плохую интуицию.

После построения модели вы можете проанализировать ее на двух уровнях:весь набор данных (понимание вашего процесса), или для данного прогноза.Для этой задачи я предлагаю вам взглянуть на библиотеку SHAP , которая вычисляет вклады объектов (т. Е. Насколько влияет объект на прогноз моего классификатора), которые можно использовать для обеих куколок.

Подробные инструкции по этому процессу и другим инструментам вы можете найти быстро. На отличных курсах серия машинного обучения , где уроки 2/3/4/5 посвящены этой теме.

Надеюсь, это поможет!

0 голосов
/ 04 января 2019

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

Некоторые подходы, которые приходят на ум:

  1. Выбор характеристик на основе взаимной информации (например, здесь ), независимый от классификатора.
  2. Назадили прямой выбор (см. вопрос об обмене стеками ), применимый к любому классификатору, но потенциально дорогостоящий, поскольку вам необходимо обучать / тестировать многие модели.
  3. Методы регуляризации, которые являются частью оптимизации классификатора, например лассо или эластичная сетка .Последнее может быть лучше в наборах данных с высокой коллинеарностью.
  4. Анализ главных компонентов или любой другой метод уменьшения размерности, который группирует ваши особенности ( пример ).
  5. Некоторые модели вычисляют скрытнопеременные, которые можно использовать для интерпретации вместо исходных функций (например, Частичные наименьшие квадраты или Канонический корреляционный анализ ).

Определенные классификаторы могут помочь интерпретации, предоставляя дополнительную информацию о функциях / предикторах, в верхней части моей головы:

  • Логистическая регрессия: вы можете получить p-значениедля каждой функции.В вашей интерпретации вы можете сосредоточиться на тех, которые являются «значимыми» (например, p-значение <0,05).(то же самое для Линейного Дискриминантного Анализа с двумя классами) </li>
  • Случайный Лес: может возвратить индекс важности переменной, который ранжирует переменные от самого важного до наименее важного.

У меня естьнабор данных, который содержит около 30 объектов, и я хочу выяснить, какие из них больше всего влияют на результат.

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

...