J'ai un jeu de données pour lequel j'ai plusieurs jeux d'étiquettes binaires. Pour chaque ensemble d'étiquettes, je forme un classificateur, en l'évaluant par validation croisée. Je souhaite réduire la dimensionnalité à l'aide de l'analyse en composantes principales (ACP). Ma question est:
Est-il possible d'effectuer l'APC une fois pour l'ensemble de données complet , puis d'utiliser le nouvel ensemble de données de dimensionnalité inférieure pour la validation croisée, comme décrit ci-dessus? Ou dois-je effectuer un PCA distinct pour chaque ensemble de formation (ce qui signifierait faire un PCA séparé pour chaque classificateur et pour chaque pli de validation croisée)?
D'une part, la PCA n'utilise pas les étiquettes. D'autre part, il utilise les données de test pour effectuer la transformation, alors je crains que cela ne biaise les résultats.
Je devrais mentionner que, en plus de me faire économiser du travail, effectuer l’ACP une fois sur l’ensemble du jeu de données me permettrait de le visualiser simultanément pour tous les ensembles d’étiquettes. Si j'ai une ACP différente pour chaque jeu d'étiquettes, je devrai visualiser chaque jeu d'étiquettes séparément.
caret
package: PCA et validation croisée dans k-fold dans Caret .Réponses:
Pour mesurer l'erreur de généralisation, vous devez effectuer cette dernière: un PCA distinct pour chaque ensemble de formation (ce qui signifierait faire un PCA séparé pour chaque classificateur et pour chaque pli de CV).
Vous appliquez ensuite la même transformation au jeu de tests: vous ne faites pas de PCA distinct sur le jeu de tests! Vous soustrayez la moyenne (et divisez si nécessaire par l'écart type) de l'ensemble d'apprentissage, comme expliqué ci-après: Centrer à zéro l'ensemble d'analyse après l'APC sur l'ensemble d'apprentissage . Ensuite, vous projetez les données sur les PC du kit de formation.
Vous devrez définir un critère automatique pour le nombre de PC à utiliser.
Comme il ne s’agit que d’une première étape de réduction des données avant la classification «réelle», l’utilisation d’un nombre trop réduit de PC ne nuira probablement pas à la performance. Si vous vous attendez à savoir combien de PC serait bon de l'expérience, vous pouvez peut-être simplement l'utiliser.
Vous pouvez également vérifier par la suite si la reconstitution de la PCA pour chaque modèle de substitution était nécessaire (répétition de l'analyse avec un seul modèle de PCA). Je pense que le résultat de ce test mérite d'être signalé.
Une fois, j’ai mesuré le biais consistant à ne pas répéter l’ACP, et j’ai trouvé que, avec mes données de classification spectroscopique, je ne détectais que la moitié du taux d’erreur de généralisation lorsque je ne refaisais pas l’ACP pour chaque modèle de substitution.
Cela dit, vous pouvez créer un modèle PCA supplémentaire de l’ensemble des données à des fins descriptives (par exemple, visualisation). Assurez-vous simplement de séparer les deux approches.
Mais il voit les données. Et si la variance entre les classes est grande comparée à la variance au sein de la classe, la variance entre les classes influencera la projection de la CPA. En général, l'étape PCA est terminée car vous devez stabiliser la classification. C'est, dans une situation où des cas supplémentaires font influencer le modèle.
Si la variance entre les classes est faible, ce biais ne sera pas très important, mais dans ce cas, l'APC ne pourra pas aider à la classification: la projection de l'APC ne peut alors empêcher de mettre l'accent sur la séparation entre les classes.
la source
La réponse à cette question dépend de votre conception expérimentale. La PCA peut être réalisée sur l'ensemble des données tant que vous n'avez pas besoin de construire votre modèle avant de connaître les données que vous essayez de prédire. Si vous avez un ensemble de données dans lequel vous avez plusieurs échantillons dont certains sont connus et d'autres inconnus et que vous souhaitez prédire les inconnus, y compris les inconnus dans la PCA vous donneront une vision plus riche de la diversité des données et peuvent aider à améliorer les performances. du modèle. Puisque PCA n'est pas supervisé, il ne s'agit pas d'un "pic", car vous pouvez faire la même chose avec les échantillons inconnus et avec les échantillons connus.
Si, par contre, vous avez un ensemble de données dans lequel vous devez construire le modèle maintenant et que, à un moment donné, vous obtiendrez de nouveaux échantillons que vous devez prévoir à l'aide de ce modèle préconfiguré, vous devez effectuer une analyse PCA séparée dans chaque répertoire. pour être sûr qu'il va généraliser. Puisque dans ce cas, nous ne saurons pas à quoi les nouvelles fonctionnalités pourraient ressembler et nous ne pouvons pas reconstruire le modèle pour prendre en compte les nouvelles fonctionnalités, effectuer PCA sur les données de test créerait un "pic". Dans ce cas, les caractéristiques et les résultats des échantillons inconnus ne sont pas disponibles lorsque le modèle serait utilisé dans la pratique. Ils ne devraient donc pas être disponibles lors de la formation du modèle.
la source
Est-ce que le dernier, PCA sur la formation a réglé chaque fois
En PCA, nous apprenons la matrice réduite: U qui nous aide à obtenir la projection
Z_train = U x X_train
Au moment du test, nous utilisons le même U appris lors de la phase d’entraînement, puis nous calculons la projection
Z_test = U x X_test
Nous projetons donc l’ensemble de tests sur l’espace de fonctionnalités réduites obtenu pendant la formation.
L’hypothèse sous-jacente est que l’essai et l’entraînement doivent provenir de la même distribution, ce qui explique la méthode ci-dessus.
la source