Что такое уменьшение размерности? В чем разница между выбором объектов и извлечением?


59

Из википедии,

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

В чем разница между выбором и извлечением объектов?

Что является примером уменьшения размерности в задаче обработки естественного языка?

Ответы:


52

Проще говоря:

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

Примеры извлечения признаков: извлечение контуров в изображениях, извлечение биграмм из текста, извлечение фонем из записи произносимого текста и т. Д.

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


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

1
@ragingSloth, я думаю, что первый - это выбор функций, а не разработка функций. В то время как примеры обработки изображений и текста действительно кажутся инженерными,
Алексей Григорьев,

Как я нашел, для некоторых извлеченных элементов вы все еще можете приблизительно восстановить исходные размеры. Но для выбора объектов реконструкции нет, так как вы удалили ненужные размеры.
Боб

18

Уменьшение размерности - это, как правило, выбор основы или математического представления, в рамках которого вы можете описать большинство, но не все отклонения в ваших данных, сохраняя тем самым соответствующую информацию, уменьшая при этом объем информации, необходимый для ее представления. Есть множество методов сделать это , включая , но не ограничиваясь этим PCA, ICAи Matrix Feature Factorization. Они будут использовать существующие данные и уменьшать их до самых различающих компонентов. Все это позволяет вам представлять большую часть информации в вашем наборе данных с меньшим количеством более отличительных признаков.

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


2
Я согласен, в основном, с точностью: выбор функций не нужно делать вручную, он может быть автоматическим. См., Например, метод Лассо ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
Jrouquie

Я согласен с вашей Dimensionality Reductionоговоркой, но немного отличается от Feature Engineeringиспользования - что из того, что я видел только Feature Extraction : Feature Selectionрассматривается отдельно. Это просто разница в терминологии.
Джавадба

7

Как и в @damienfrancois, выбор функции ответа касается выбора набора функций. Таким образом, в НЛП это будет выбор набора конкретных слов (типичным в НЛП является то, что каждое слово представляет особенность со значением, равным частоте слова или некоторому другому весу, основанному на TF / IDF или аналогичном).

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


5

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

Уменьшение размерности - это все о преобразовании данных в низкоразмерное пространство, в котором данные сохраняют свою евклидову структуру, но не страдают от проклятия размерности. Например, предположим, что вы извлекаете некоторые особенности слова из набора данных, где каждый документ может быть смоделирован как точка в n-мерном пространстве, а n слишком велико (игрушечный пример). В этом случае многие алгоритмы не работают в соответствии с искажением расстояния в многомерном пространстве. Теперь вам нужно уменьшить размерность, выбрав наиболее информативные элементы или преобразовав их в низкоразмерный коллектор, используя методы уменьшения размерности, например, PCA, LLE и т. Д.[x1,...,xn]


Из доступных ответов этот лучше всего соответствует тому, что я видел в нескольких командах Data Science и ML Platform
javadba

3

Чтобы завершить ответ Дэмиена, примером уменьшения размерности в НЛП является тематическая модель , где вы представляете документ вектором, указывающим веса составляющих его тем.



2

A1. Что такое уменьшение размерности: если вы думаете о данных в матрице, где строки являются экземплярами, а столбцы - атрибутами (или объектами), то уменьшение размерности отображает эту матрицу данных в новую матрицу с меньшим количеством столбцов. Для визуализации, если вы рассматриваете каждый столбец матрицы (атрибут) как измерение в пространстве признаков, то уменьшение размерности - это проекция экземпляров из пространства более высокого измерения (больше столбцов) в подпространство более низкого измерения (меньше столбцов). Уменьшение размерности - это подпространственная проекция Типичной целью этого преобразования является (1) сохранение информации в матрице данных при одновременном снижении сложности вычислений; (2) улучшение разделимости данных различных классов.

A2. Уменьшение размерности как выбор или извлечение признаков: я буду использовать вездесущий набор данных Iris , который, возможно, является «привет миром» науки о данных. Вкратце, набор данных Iris имеет 3 класса и 4 атрибута (столбцы). Я проиллюстрирую выбор и извлечение функций для задачи уменьшения размерности набора данных Iris с 4 до 2.

Я вычисляю попарную ковариацию этого набора данных, используя библиотеку в Python под названием seaborn. Код такой: sns.pairplot (iris, hue = "видов", маркеры = ["o", "s", "D"]). На рисунке Ирис парный сюжет я могу выбрать пару атрибутов (2 измерения), которые обеспечивают я самое большое разделение между 3 классами (видами) в наборе данных Iris. Это будет случай выбора функции.

Далее идет извлечение функций. Здесь я проецирую 4-мерное пространство признаков Iris на новое 2-мерное подпространство, которое не выровнено по оси с исходным пространством. Это новые атрибуты. Они, как правило, основаны на распределении в исходном многомерном пространстве. Самый популярный метод - это анализ главных компонент, который вычисляет собственные векторы в исходном пространстве. PCA с использованием SVD Очевидно, что мы не ограничены использованием только линейной и глобальной проекции на подпространство, основанное на собственных векторах. Мы также можем использовать методы нелинейной проекции. Вот пример нелинейного PCA с использованием нейронных сетей нелинейный PCA с использованием NN . Атрибуты (размеры) в последнем примере извлекаютсяиз оригинальных 4 атрибутов с использованием нейронных сетей. Вы можете поэкспериментировать с различными вариантами PCA для набора данных радужной оболочки, используя этот код методов pca .

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


1

Извлечено из практического машинного обучения с помощью scikit-learn & Tensorflow

  1. Очистка данных: исправить или удалить выбросы (необязательно). Заполните пропущенные значения (например, нулем, средним значением, медианой ...) или отбросьте их строки (или столбцы).
  2. Выбор функции (необязательно): удалите атрибуты, которые не дают полезной информации для задачи.
  3. Разработка объектов, где это уместно: Дискретизация непрерывных функций. Разобрать функции (например, категориальные, дата / время и т. Д.). Добавьте многообещающие преобразования функций (например, log (x), sqrt (x), x ^ 2 и т. Д.). Объедините функции в многообещающие новые функции.
  4. Масштабирование объектов: стандартизация или нормализация функций.

0

Несколько замечательных ответов здесь, в частности, ответ @ damienfrancois очень кратко отражает общую идею.

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

Я написал статью на эту тему, которая более детально описана в нескольких примерах: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

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

Начиная с использования извлечения признаков, которое в основном предназначено для целей классификации. Классификация - это процесс принятия решения о том, к какой категории относится тот или иной объект. Он имеет два этапа: i) этап обучения, когда данные или объекты изучаются с использованием некоторого процесса (извлечение признаков); ii) этап тестирования, где неизвестный объект классифицируется с использованием признаков, изученных на предыдущем этапе (обучение).

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

Теперь извлечение объектов должно генерировать функции, которые должны быть

  • крепкий
  • отчетливый
  • оптимальный набор функций

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

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

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


-3

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


Нет, это не имеет ничего общего с пространственными данными, в частности. Это применимо и к временным, пространственно-временным и другим видам данных.
Эмре
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.