Je fais un projet sur le problème d'identification des auteurs. J'avais appliqué la normalisation tf-idf pour former des données, puis formé un svm sur ces données.
Maintenant, lorsque j'utilise le classificateur, dois-je également normaliser les données de test. Je pense que l'objectif de base de la normalisation est de faire en sorte que l'algorithme d'apprentissage donne plus de poids à des caractéristiques plus importantes pendant l'apprentissage. Ainsi, une fois formé, il sait déjà quelles fonctionnalités sont importantes, lesquelles ne le sont pas. Est-il donc nécessaire d'appliquer également la normalisation aux données de test?
Je suis nouveau dans ce domaine. Veuillez donc ignorer si la question semble idiote?
machine-learning
neural-network
deep-learning
Kishan Kumar
la source
la source
Réponses:
Oui, vous devez appliquer la normalisation aux données de test, si votre algorithme fonctionne avec ou a besoin de données d'entraînement normalisées *.
En effet, votre modèle fonctionne sur la représentation donnée par ses vecteurs d'entrée. L'échelle de ces chiffres fait partie de la représentation. C'est un peu comme convertir des pieds en mètres. . . un modèle ou une formule fonctionnerait normalement avec un seul type d'unité.
Non seulement vous avez besoin d'une normalisation, mais vous devez appliquer la même mise à l'échelle exacte que pour vos données d'entraînement. Cela signifie stocker l'échelle et le décalage utilisés avec vos données d'entraînement et les réutiliser. Une erreur courante pour les débutants est de normaliser séparément vos données de train et de test.
En Python et SKLearn, vous pouvez normaliser vos valeurs d'entrée / X en utilisant le Scaler standard comme ceci:
Notez comment la conversion de l'
train_X
utilisation d'une fonction qui correspond (chiffre les paramètres) se normalise ensuite. Alors que latest_X
conversion se transforme, en utilisant les mêmes paramètres que ceux tirés des données du train.La normalisation tf-idf que vous appliquez devrait fonctionner de la même manière, car elle apprend certains paramètres de l'ensemble de données (fréquence des mots dans tous les documents), ainsi que l'utilisation des ratios trouvés dans chaque document.
* Certains algorithmes (tels que ceux basés sur des arbres de décision) n'ont pas besoin d'entrées normalisées et peuvent gérer des fonctionnalités qui ont différentes échelles inhérentes.
la source
Certainement, vous devez normaliser vos données. Vous normalisez les données aux fins suivantes:
Pour avoir différentes fonctionnalités à la même échelle, ce qui accélère le processus d'apprentissage.
Pour prendre soin de différentes fonctionnalités de manière équitable sans se soucier de l'échelle.
Après la formation, votre algorithme d'apprentissage a appris à traiter les données sous forme échelonnée, vous devez donc normaliser vos données de test avec les paramètres de normalisation utilisés pour les données de formation.
la source