Ils sont utilisés à deux fins différentes.
StandardScaler
change chaque fonction colonne àF: , jeF′: , je=F: , je- m e a n (F: , je)s t d(F: , je).
Normalizer
change chaque échantillon en où pourXn= (Fn , 1, . . . ,Fn , d)X′n=Xns i ze (Xn),
s i ze (Xn)
l1
la norme est,∥Xn∥1= |Fn , 1| +. . . + |Fn , d|
l2
la norme est ,∥Xn∥2=F2n , 1+ . . . +F2n , d-----------√
max
la norme est .∥Xn∥∞= m a x { |Fn , 1| ,. . . , |Fn , d| }
Pour illustrer le contraste, considérons l'ensemble de données qui est unidimensionnel (chaque point de données a une caractéristique).
Après application , l'ensemble de données devient .
Après avoir appliqué n'importe quel type de , l'ensemble de données devient , car la seule fonctionnalité est divisée par elle-même. N'a donc aucune utilité pour ce cas. Il n'a également aucune utilité lorsque les caractéristiques ont des unités différentes, par exemple .{ 1 , 2 , 3 , 4 , 5 }
StandardScaler
{ - 1,41 , - 0,71 , 0. , 0,71 , 1,41 }
Normalizer
{ 1. , 1. , 1. , 1. , 1. }Normalizer
( h e i gh t , a ge , i n c o m e )
Comme mentionné dans cette réponse , Normalizer
est surtout utile pour contrôler la taille d'un vecteur dans un processus itératif, par exemple un vecteur de paramètres pendant la formation, pour éviter les instabilités numériques dues à de grandes valeurs.