Выбор функций против извлечения функций. Что использовать, когда?

16

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

Какой метод предпочтительнее другого и когда?

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

Sid
источник

Ответы:

18

Добавление к ответу, данным Торосом,

Эти (см. Ниже пункты) три очень похожи, но с небольшими различиями - :( кратко и легко запомнить)

  • извлечение признаков и разработка функций : преобразование необработанных данных в функции, подходящие для моделирования;

  • функция преобразования : преобразование данных для повышения точности алгоритма;

  • выбор функции : удаление ненужных функций.

Просто чтобы добавить пример того же,

Извлечение функций и разработка (мы можем извлечь что-то из них)

  • Тексты (ngrams, word2vec, tf-idf и т. Д.)
  • Изображения (CNN, тексты, вопросы и ответы)
  • Геопространственные данные (широта, долгота и т. Д.)
  • Дата и время (день, месяц, неделя, год, по скользящему принципу)
  • Временные ряды, сеть и т. Д.
  • Методы уменьшения размеров (PCA, SVD, Eigen-Faces и т. Д.)
  • Может быть, мы можем использовать кластеризацию (DBSCAN и т. Д.)
  • .....(И много других)

Преобразование функций (преобразование их в смысл)

  • Нормализация и изменение распределения (Scaling)
  • взаимодействия
  • Заполнение пропущенных значений (медианное заполнение и т. Д.)
  • .....(И много других)

Выбор характеристик (построение вашей модели на этих выбранных функциях)

  • Статистические подходы
  • Выбор по моделированию
  • Сетка поиска
  • Перекрестная проверка
  • .....(И много других)

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

Посмотрите на ссылки, которыми поделились другие. Они довольно хорошие ...

Адитья
источник
хороший способ ответить +1 за это.
Торос91,
Престижность этому сообществу ..
Aditya
1
Правда, этот человек, я был членом с октября 2017 года. Я многому научился. Надеюсь, что это будет то же самое для вас. Я читаю ваши ответы, они хороши. Кстати, извините за то, что вы прошли на SO. Я не мог видеть всего этого, но, как хорошо сказал Нил Слэйтер, ты сохранял спокойствие до самого конца. Так держать! Нам еще предстоит пройти долгий путь. :)
Toros91
В каком порядке они должны обрабатываться? В дополнение к очистке данных и разделению данных. Какой из 5 является первым шагом?
технази
Разделение данных выполняется в самом конце, когда вы убедитесь, что данные готовы к отправке для моделирования ... И, тем не менее, нет такого порядка для вышеупомянутых вещей, потому что они перекрываются довольно много раз (извлечение функций, разработка функций, Преобразование функций.) Но выбор функций обязательно выполняется после разделения данных на последовательность в качестве проверки при условии, что вы используете метрику моделей или что-то эквивалентное в наборе данных проверки (для измерения ее производительности) для перекрестной проверки или чего-то эквивалентного. Вы можете запустить итеративно удаление столбцов и увидеть имп colsorimp
Адитью
5

Как сказал Адитья, есть 3 связанных с особенностями термина, которые иногда путают друг с другом. Я постараюсь дать краткое объяснение каждому из них:

  • Извлечение признаков: создание элементов из данных в формате, который трудно анализировать напрямую / не сопоставимы напрямую (например, изображения, временные ряды и т. Д.). В примере временного ряда могут быть использованы некоторые простые функции. Пример: длина временного ряда, период, среднее значение, стандартное значение и т. д.
  • Преобразование объектов : преобразование существующих функций для создания новых на основе старых. Очень популярный метод уменьшения размерности - это анализ главных компонентов (pca), в котором используется некоторое ортогональное преобразование для получения набора линейно некоррелированных переменных на основе начального набора переменных.
  • Выбор характеристик: выбор функций с наибольшей «важностью» / влиянием на целевую переменную из набора существующих функций. Это может быть сделано с помощью различных методов: например, линейная регрессия, деревья решений, расчет весов «важности» (например, оценка Фишера, ReliefF)

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

Вы можете найти более подробную информацию о выборе объектов и уменьшении размеров в следующих ссылках:

missrg
источник
4

Я думаю, что это две разные вещи,

Начнем с выбора функций :

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

Чтобы объяснить это лучше, давайте рассмотрим пример: есть 10 признаков и 1 целевая переменная, 9 функций объясняют 90% целевой переменной, а 10 функций вместе объясняют 91% целевой переменной. Таким образом, переменная 1 не имеет большого значения, поэтому вы склонны удалять ее перед моделированием (это также субъективно для бизнеса). Меня также могут называть Predictor Важность.

Теперь давайте поговорим о Feature Extraction ,

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

Вы можете применить Feature Extraction к заданным данным, чтобы извлечь объекты, а затем применить Feature Feature относительно целевой переменной, чтобы выбрать подмножество, которое может помочь в создании хорошей модели с хорошими результатами.

Вы можете пройти через эти Link-1 , Link-2 для лучшего понимания.

мы можем реализовать их в R, Python, SPSS.

дайте мне знать, если нужно больше разъяснений.

Toros91
источник
3

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

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

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

vinnief
источник
0

Важной частью успеха проекта «Машинное обучение» является хороший набор возможностей для обучения. Этот процесс, называемый особенностями проектирования, включает в себя:

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

Цитата: «Руки на машинное обучение с SciKit-Learn, Keras & Tensorflow - Aurelien Geron»

Адитья
источник