importancia de la PCA o SVD en el aprendizaje automático


Todo este tiempo (especialmente en el concurso de Netflix), siempre me encuentro con este blog (o foro de clasificación) donde mencionan cómo aplicando un simple paso SVD en los datos les ayudó a reducir la escasez de datos o en general mejoró el rendimiento de su algoritmo en la mano. Estoy tratando de pensar (desde hace mucho tiempo) pero no soy capaz de adivinar por qué es así. En general, los datos que tengo a mano son muy ruidosos (que también es la parte divertida de bigdata) y luego sé algunas cosas básicas de escalado de características como cosas de transformación de registro , significa normalización. Pero cómo ayuda algo como SVD. Así que digamos que tengo una gran matriz de películas de calificación de usuarios..y luego en esta matriz, implemento alguna versión del sistema de recomendación (digamos filtrado colaborativo):

1) Without SVD
2) With SVD

Cómo ayuda Gracias

Author: Fraz, 2012-03-06

3 answers

SVD no se usa para normalizar los datos, sino para deshacerse de los datos redundantes, es decir, para reducir la dimensionalidad. Por ejemplo, si tiene dos variables, una es índice de humedad y otra es probabilidad de lluvia, entonces su correlación es tan alta, que la segunda no contribuye con ninguna información adicional útil para una tarea de clasificación o regresión. Los autovalores en SVD te ayudan a determinar qué variables son más informativas, y cuáles puedes prescindir.

La forma en que funciona es simple. Usted realiza SVD sobre sus datos de entrenamiento (llámelo matriz A), para obtener U, S y V*. A continuación, establecer a cero todos los valores de S menos que un cierto umbral arbitrario (por ejemplo, 0.1), llamar a esta nueva matriz S'. Luego obtenga un '= US'V* y use un ' como sus nuevos datos de entrenamiento. Algunas de sus características ahora se establecen en cero y se pueden eliminar, a veces sin ninguna penalización de rendimiento (dependiendo de sus datos y el umbral elegido). Esto se llama k-trunca SVD.

Sin embargo, SVD no te ayuda con la escasez, solo te ayuda cuando las características son redundantes. Dos características pueden ser escasas e informativas (relevantes) para una tarea de predicción, por lo que no puede eliminar ninguna de ellas.

Con enfermedad vesicular porcina, que van desde n características k características, donde cada uno es una combinación lineal de las originales n. Es un paso de reducción de dimensionalidad, al igual que la selección de características. Cuando las características redundantes están presentes, sin embargo, un algoritmo de selección de características puede conducir a un mejor rendimiento de clasificación que SVD dependiendo de su conjunto de datos (por ejemplo, selección máxima de características de entropía). Weka viene con un montón de ellos.

Véase: 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

 46
Author: Diego,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-13 12:44:14

La Descomposición del Valor Singular se usa a menudo para aproximar una matriz X por una matriz de bajo rango X_lr:

  1. Calcula el SVD X = U D V^T.
  2. Forma la matriz D' manteniendo los valores singulares k más grandes y estableciendo los demás a cero.
  3. Formar la matriz X_lr por X_lr = U D' V^T.

La matriz X_lr es entonces la mejor aproximación de rango k de la matriz X, para la norma Frobenius (el equivalente de la norma l2-para matrices). Es computacionalmente eficiente usar esta representación, porque si su matriz X es n por n y k << n, puede almacenar su aproximación de rango bajo con solo (2n + 1)k coeficientes (almacenando U, D' y V).

Esto se usó a menudo en problemas de finalización de matrices (como el filtrado colaborativo) porque se supone que la matriz verdadera de las calificaciones de los usuarios es de bajo rango (o bien aproximada por una matriz de bajo rango). Por lo tanto, desea recuperar la matriz verdadera mediante el cálculo de la la mejor aproximación de rango bajo de su matriz de datos. Sin embargo, ahora hay mejores formas de recuperar matrices de bajo rango de observaciones ruidosas y faltantes, a saber, la minimización de normas nucleares. Véase, por ejemplo, el documento El poder de la relajación convexa: Terminación casi óptima de la matriz de E. Candes y T. Tao.

(Nota: los algoritmos derivados de esta técnica también almacenan el SVD de la matriz estimada, pero se calcula de manera diferente).

 15
Author: Edouard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-07 15:36:34

PCA o SVD, cuando se utiliza para la reducción de dimensionalidad, reducir el número de entradas. Esto, además de ahorrar costos computacionales de aprendizaje y / o predicción, puede a veces producir modelos más robustos que no son óptimos en el sentido estadístico, pero tienen un mejor rendimiento en condiciones ruidosas.

Matemáticamente, los modelos más simples tienen menos varianza, es decir, son menos propensos a sobreajustar. La falta de equipamiento, por supuesto, también puede ser un problema. Esto se conoce como dilema sesgo-varianza. O, como dicho en palabras sencillas por Einstein: Las cosas deben hacerse lo más simples posible, pero no más simples.

 2
Author: Lehtinen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-16 12:05:26