Qu'est-ce qui peut amener l'ACP à aggraver les résultats d'un classificateur?

27

J'ai un classificateur sur lequel je fais une validation croisée, ainsi qu'une centaine de fonctionnalités sur lesquelles je fais une sélection avant pour trouver des combinaisons optimales de fonctionnalités. Je compare également cela à l'exécution des mêmes expériences avec PCA, où je prends les fonctionnalités potentielles, applique SVD, transforme les signaux d'origine sur le nouvel espace de coordonnées et utilise les meilleures fonctionnalités dans mon processus de sélection avant.k

Mon intuition était que PCA améliorerait les résultats, car les signaux seraient plus "informatifs" que les caractéristiques originales. Ma compréhension naïve de l'APC me conduit-elle dans des ennuis? Quelqu'un peut-il suggérer certaines des raisons courantes pour lesquelles l'APC peut améliorer les résultats dans certaines situations, mais les aggraver dans d'autres?

Dolan Antenucci
la source
Votre question peut-elle être résumée comme ceci?: "Quoi de mieux - pour construire des classificateurs basés sur les variables d'origine ou sur quelques composants principaux extraits de celles-ci?"
ttnphns
1
Je dirais plus dans le sens de: "Y a-t-il des situations où il est préférable d'utiliser les variables d'origine par rapport à quelques composants principaux extraits de celles-ci?"
Dolan Antenucci
1
Il existe de nombreuses techniques de classification. Si par exemple prenez l'analyse discriminante, je vous recommanderais de lire ce post (y compris mon propre commentaire là-bas).
ttnphns
1
Qu'entendez-vous par «résultats d'un classificateur»? S'il est correctement classé dans les proportions, il s'agit d'une règle de notation incorrecte discontinue, c'est-à-dire un score de précision optimisé par un faux modèle. Je suggère d'utiliser une règle de notation de précision appropriée, pour commencer.
Frank Harrell
1
Un peu tard pour la fête, mais: la première chose que je vérifierais, c'est que les résultats de la validation de la sélection avant ont été obtenus avec des cas indépendants. Sinon, vous seriez probablement soumis à un énorme biais optimiste.
cbeleites prend en charge Monica

Réponses:

29

Prenons un cas simple, tiré d'un article formidable et sous-évalué "Une note sur l'utilisation des principaux composants dans la régression" .

Supposons que vous ne disposiez que de deux entités (mises à l'échelle et dé-signifiées), notez-les et x 2 avec une corrélation positive égale à 0,5, alignées en X , et une troisième variable de réponse Y que vous souhaitez classer. Supposons que la classification de Y soit entièrement déterminée par le signe de x 1 - x 2 .X1X2XOuiOuiX1-X2

L'exécution de PCA sur donne les nouvelles fonctionnalités (classées par variance) [ x 1 + x 2 , x 1 - x 2 ] , puisque Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[X1+X2,X1-X2]Var(X1+X2)=1+1+2ρ>Var(X1-X2)=2-2ρ. Par conséquent, si vous réduisez votre dimension à 1, c'est-à-dire le premier composant principal, vous jetez la solution exacte à votre classification!

Le problème se produit parce que PCA est agnostique à . Malheureusement, on ne peut pas non plus inclure Y dans l'ACP, car cela entraînerait une fuite de données.OuiOui


La fuite de données se produit lorsque votre matrice est construite à l'aide des prédicteurs cibles en question, donc toute prédiction hors échantillon sera impossible.X

Par exemple: dans les séries temporelles financières, essayer de prédire la fermeture de fin de journée européenne, qui se produit à 11 h 00 HNE, en utilisant la fermeture de fin de journée américaine, à 16 h 00 HNE, est une fuite de données depuis la fermeture américaine , qui interviennent quelques heures plus tard, ont intégré les prix des clôtures européennes.

Cam.Davidson.Pilon
la source
2
qu'est-ce que la «fuite de données»?
user603
@Wayne trop cher haha
Cam.Davidson.Pilon
(-1) pour provoquer la confusion: (1) PCA n'est pas supervisé, il n'inclura donc jamais Y dans la claculation de la transformation. La technique supervisée correspondante est PLS, qui utilise à la fois X et Y. (2) La fuite de données (comme dans: test avec des données statistiquement dépendantes) ne découle pas en soi de l'utilisation d'une méthode supervisée. Au contraire: cela se produira avec PCA exactement comme avec PLS si vous n'obéissez pas à la règle selon laquelle dès la première étape d'analyse qui utilise plus d'un cas (par exemple, centrage, mise à l'échelle, projection PCA / PLS) sur tous les calculs, être fait sur les données de formation uniquement (c'est-à-dire doivent être ...
cbeleites prend en charge Monica
... recalculé pour chacun des modèles de substitution. Les résultats de ces calculs peuvent ensuite être appliqués aux données de test, c'est-à-dire soustraire le centre obtenu des données de formation, tourner par la rotation obtenue par PCA sur les cas de formation, etc.
cbeleites prend en charge Monica
Comme pour l'exemple: les séries chronologiques sont particulièrement difficiles, car ce qui constitue un cas indépendant dépendra beaucoup de l'application. Voir par exemple stats.stackexchange.com/questions/76376/…
cbeleites prend en charge Monica
23

Il y a une explication géométrique simple. Essayez l'exemple suivant dans R et rappelez-vous que le premier composant principal maximise la variance.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA aide PCA aide

La direction de la variance maximale est horizontale et les classes sont séparées horizontalement.

PCA Hurts PCA fait mal

La direction de la variance maximale est horizontale, mais les classes sont séparées verticalement

vqv
la source
... et dans l'exemple 2, l'analogon supervisé, PLS aiderait réellement.
cbeleites prend en charge Monica
3

Je vois que la question a déjà une réponse acceptée, mais je voulais partager cet article qui parle de l' utilisation de PCA pour la transformation des fonctionnalités avant la classification .

Le message à retenir (qui est magnifiquement illustré dans la réponse de @ vqv) est:

L'analyse en composantes principales (ACP) est basée sur l'extraction des axes sur lesquels les données montrent la plus grande variabilité. Bien que l'ACP «répartisse» les données dans la nouvelle base et puisse être d'une grande aide dans l'apprentissage non supervisé, rien ne garantit que les nouveaux axes sont cohérents avec les caractéristiques discriminatoires d'un problème de classification (supervisé).

Pour ceux qui sont intéressés, si vous regardez la section 4. Résultats expérimentaux , ils comparent les précisions de classification avec 1) les caractéristiques originales, 2) les caractéristiques transformées PCA et 3) la combinaison des deux, ce qui était quelque chose de nouveau pour moi.

Ma conclusion:

Les transformations de fonctionnalités basées sur PCA permettent de résumer les informations d'un grand nombre de fonctionnalités en un nombre limité de composants, c'est-à-dire des combinaisons linéaires des fonctionnalités originales. Cependant, les principaux composants sont souvent difficiles à interpréter (pas intuitifs) et, comme l'indiquent les résultats empiriques de cet article, ils n'améliorent généralement pas les performances de classification.

PS: Je note que l'une des limites de l'article qui aurait dû être répertoriée était le fait que les auteurs ont limité l'évaluation des performances des classificateurs à `` l'accumulation '' uniquement, ce qui peut être un indicateur de performance très biaisé.

Zhubarb
la source
3

Supposons un cas simple avec 3 variables indépendantes X1,X2,X3 et la sortie y et supposons maintenant que X3=y et vous devriez donc pouvoir obtenir un modèle d'erreur 0.

Supposons maintenant que dans la formation, la variation de y est très faible et donc aussi la variation de X3.

Maintenant, si vous exécutez PCA et que vous décidez de ne sélectionner que 2 variables, vous obtiendrez une combinaison de X1 et X2. Ainsi, les informations deX3 c'était la seule variable capable d'expliquer y est perdu.

Donbeo
la source