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

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

1) Without SVD
2) With SVD

как это помогает Спасибо

3 ответов


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

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

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

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

посмотреть: 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


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

  1. вычислить SVD X = U D V^T.
  2. сформировать матрицу D' удерживая k наибольшие сингулярные значения и установка остальных на ноль.
  3. сформировать матрицу X_lr by X_lr = U D' V^T.

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

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

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


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

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