Подтвердить что ты не робот

Важность PCA или SVD в машинном обучении

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

1) Without SVD
2) With SVD

как это помогает Благодаря

4b9b3361

Ответ 1

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

Принцип работы прост. Вы выполняете SVD над вашими данными обучения (называйте его матрицей A), чтобы получить U, S и V *. Затем установите для нуля все значения S, меньшие некоторого произвольного порога (например, 0,1), назовите эту новую матрицу S '. Затем получите A '= US'V * и используйте A' в качестве ваших новых данных обучения. Некоторые из ваших функций теперь установлены на ноль и могут быть удалены, иногда без каких-либо ограничений производительности (в зависимости от ваших данных и выбранного порога). Это называется k - сокращенным SVD.

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

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

Смотрите: http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Dimensionality_Reduction/Singular_Value_Decomposition

https://stats.stackexchange.com/questions/33142/what-happens-when-you-apply-svd-to-a-collaborative-filtering-problem-what-is-th

Ответ 2

Разложение сингулярного значения часто используется для аппроксимации матрицы X матрицей низкого ранга X_lr:

  • Вычислить SVD X = U D V^T.
  • Формируем матрицу D', сохраняя наибольшие сингулярные значения k и устанавливая остальные в 0.
  • Составьте матрицу X_lr на X_lr = U D' V^T.

Тогда матрица X_lr является наилучшим приближением ранга k матрицы X, для нормы Фробениуса ( эквивалент l2 -нормы для матриц). Эффективно использовать это представление, потому что если ваша матрица X равна n на n и k << n, вы можете сохранить ее приближение низкого ранга только с коэффициентами (2n + 1)k (путем хранения U, D' и V).

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

(Примечание: алгоритмы, полученные из этого метода, также сохраняют SVD оценочной матрицы, но вычисляются по-разному).

Ответ 3

PCA или SVD при использовании для уменьшения размерности уменьшают количество входов. Это, помимо экономии вычислительных затрат на обучение и/или прогнозирование, иногда может создавать более надежные модели, которые не являются оптимальными в статистическом смысле, но имеют лучшую производительность в шумных условиях.

Математически более простые модели имеют меньшую дисперсию, т.е. они менее подвержены переобучению. Конечно, подкрепление тоже может быть проблемой. Это называется дилеммой смещения-дисперсии. Или, как говорят простые слова Эйнштейна: все должно быть сделано как можно проще, но не проще.