web-dev-qa-db-fra.com

Normaliser les données avant ou après la scission des données de formation et de test?

Je souhaite séparer mes données en train et en ensemble de test. Devrais-je appliquer la normalisation aux données avant ou après la scission? Cela fait-il une différence lors de la construction d'un modèle prédictif? Merci d'avance.

7
hemant

Vous devez d’abord diviser les données en un ensemble d’apprentissage et de test (un ensemble de validation peut également être requis). 

N'oubliez pas que les points de données de test représentent des données réelles . La normalisation des caractéristiques des variables explicatives (ou prédicteurs) est une technique utilisée pour centrer et normaliser les données en soustrayant la moyenne et en divisant par la variance. Si vous prenez la moyenne et la variance de l'ensemble de données complet, vous introduirez des informations futures dans les variables explicatives de la formation (c'est-à-dire la moyenne et la variance). 

Par conséquent, vous devez effectuer la normalisation des fonctionnalités sur les données d'apprentissage. Effectuez ensuite une nomralisation sur les instances de test également, mais en utilisant cette fois la moyenne et la variance des variables explicatives d'apprentissage. De cette manière, nous pouvons tester et évaluer si notre modèle peut bien généraliser à de nouveaux points de données invisibles.

16

vous pouvez utiliser fit puis transformer learn

normalizer = preprocessing.Normalizer().fit(xtrain)

transformer

xtrainnorm = normalizer.transform(xtrain) 
xtestnorm = normalizer.transform(Xtest) 
0
user3452134