Question importance de l'ACP ou de la SVD dans l'apprentissage automatique


Pendant tout ce temps (spécialement dans le concours Netflix), je rencontre toujours ce blog (ou le forum du classement) où ils expliquent comment en appliquant une simple étape SVD sur les données, ils réduisent la rareté des données main. J'essaie de penser (depuis longtemps) mais je ne peux pas deviner pourquoi. En général, les données que j'ai en main sont très bruyantes (ce qui est aussi la partie amusante de bigdata) et je connais des fonctionnalités basiques telles que la transformation de log, la normalisation. Mais comment quelque chose comme SVD aide-t-il? Alors disons que j'ai une énorme matrice de films d'évaluation des utilisateurs .. et puis dans cette matrice, j'implémente une version du système de recommandation (par exemple le filtrage collaboratif):

1) Without SVD
2) With SVD

comment ça aide Merci


31
2018-03-06 19:00


origine


Réponses:


SVD n'est pas utilisé pour normaliser les données, mais pour éliminer les données redondantes, c'est-à-dire pour réduire la dimensionnalité. Par exemple, si vous avez deux variables, l'une est l'indice d'humidité et l'autre la probabilité de pluie, alors leur corrélation est si élevée que la seconde ne fournit aucune information supplémentaire utile pour une tâche de classification ou de régression. Les valeurs propres dans SVD vous aident à déterminer quelles variables sont les plus informatives et celles dont vous pouvez vous passer.

Le fonctionnement est simple. Vous effectuez SVD sur vos données d'entraînement (appelez-le matrice A), pour obtenir U, S et V *. Ensuite, mettre à zéro toutes les valeurs de S inférieures à un certain seuil arbitraire (par exemple 0,1), appelez cette nouvelle matrice S '. Ensuite, obtenez A '= US'V * et utilisez A' comme nouvelle donnée de formation. Certaines de vos fonctionnalités sont désormais définies sur zéro et peuvent être supprimées, parfois sans aucune pénalité de performance (selon vos données et le seuil choisi). C'est appelé kSVD tronqué.

SVD ne vous aide pas avec la clarté, mais ne vous aide que lorsque les fonctionnalités sont redondantes. Deux fonctionnalités peuvent être à la fois rares et informatives (pertinentes) pour une tâche de prédiction, vous ne pouvez donc pas les supprimer.

En utilisant SVD, vous passez de n caractéristiques à k caractéristiques, où chacun sera une combinaison linéaire de l'original n. C'est une étape de réduction de la dimension, tout comme la sélection des fonctionnalités. Lorsque des fonctions redondantes sont présentes, un algorithme de sélection des fonctionnalités peut conduire à une meilleure performance de classification que SVD en fonction de votre ensemble de données (par exemple, sélection de la caractéristique d'entropie maximale). Weka vient avec un tas d'entre eux.

Voir: http://fr.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
2018-03-06 19:09



La décomposition en valeurs singulières est souvent utilisée pour approcher une matrice X par une matrice de bas rang X_lr:

  1. Calculer le SVD X = U D V^T.
  2. Former la matrice D' en gardant la k plus grandes valeurs singulières et en mettant les autres à zéro.
  3. Former la matrice X_lrpar X_lr = U D' V^T.

La matrice X_lr est alors la meilleure approximation du rang k de la matrice X, pour le Norme Frobenius (l'équivalent du l2-norm pour les matrices). Il est efficace sur le plan informatique d’utiliser cette représentation, car si votre matrice X est npar n et k << n, vous pouvez stocker son approximation avec seulement (2n + 1)k coefficients (en stockant U, D' et V).

Cela a souvent été utilisé dans les problèmes d'achèvement de la matrice (tels que le filtrage collaboratif) car la matrice réelle des évaluations des utilisateurs est supposée être de faible rang (ou bien approximée par une matrice de bas rang). Donc, vous souhaitez récupérer la vraie matrice en calculant la meilleure approximation de bas niveau de votre matrice de données. Cependant, il existe maintenant de meilleurs moyens de récupérer des matrices de bas rang à partir d’observations bruyantes et manquantes, à savoir la minimisation de la norme nucléaire. Voir par exemple le papier Le pouvoir de la relaxation convexe: achèvement quasi-optimal de la matrice par E. Candes et T. Tao.

(Remarque: les algorithmes dérivés de cette technique stockent également la SVD de la matrice estimée, mais elle est calculée différemment).


15
2018-03-07 15:36



PCA ou SVD, lorsqu'ils sont utilisés pour réduire la dimensionnalité, réduisent le nombre d'entrées. Ceci, en plus d’économiser le coût informatique de l’apprentissage et / ou de la prédiction, peut parfois produire des modèles plus robustes qui ne sont pas optimaux au sens statistique, mais qui ont de meilleures performances dans des conditions bruyantes.

Mathématiquement, les modèles les plus simples ont moins de variance, c’est-à-dire qu’ils sont moins susceptibles de se surélever. Le sous-équipement, bien sûr, peut aussi poser problème. Ceci est connu sous le nom de dilemme biais-variance. Ou, comme dit en termes clairs par Einstein: Les choses doivent être aussi simples que possible, mais pas plus simples.


2
2017-12-16 12:05