Quand et comment utiliser StandardScaler ?
Lorsque les caractéristiques de l'ensemble de données donné fluctuent considérablement dans leurs plages ou sont enregistrées dans diverses unités de mesure, StandardScaler entre en scène.
Les données sont mises à l'échelle avec une variance de 1 après que la moyenne soit réduite à 0 via StandardScaler. Mais lors de la détermination de la moyenne empirique des données et de l’écart type, les valeurs aberrantes présentes dans les données ont un impact significatif qui réduit le spectre des valeurs caractéristiques.
interface en java
De nombreux algorithmes de machine learning peuvent rencontrer des problèmes dus à ces variations dans les fonctionnalités de départ. Pour les algorithmes qui calculent la distance, par exemple, si l'une des caractéristiques de l'ensemble de données a des valeurs ayant des plages larges ou complètement différentes, cette caractéristique particulière de l'ensemble de données contrôlera le calcul de la distance.
La fonction StandardScaler de sklearn est basée sur la théorie selon laquelle les variables de l'ensemble de données dont les valeurs se situent dans des plages différentes n'ont pas une contribution égale aux paramètres d'ajustement et à la fonction d'entraînement du modèle et peuvent même conduire à un biais dans les prédictions faites avec ce modèle.
Par conséquent, avant d'inclure les fonctionnalités dans le modèle d'apprentissage automatique, nous devons normaliser les données (µ = 0, σ = 1). La normalisation dans l’ingénierie des fonctionnalités est couramment utilisée pour résoudre ce problème potentiel.
Standardiser avec Sklearn
sklearn.preprocessing.StandardScaler(*, copy = True, with_mean = True, with_std = True)
En éliminant la moyenne des caractéristiques et en les mettant à l'échelle en fonction de la variance unitaire, les caractéristiques sont standardisées à l'aide de cette fonction.
La formule pour calculer le score standard d'une fonctionnalité est z = (x - u) / s, où u est la moyenne de la fonctionnalité d'entraînement (ou zéro si with_mean = False) et s est l'écart type de l'échantillon (ou un si with_std = False ).
c'est
En calculant les statistiques pertinentes sur les fonctionnalités de l'ensemble d'apprentissage, le centrage et la mise à l'échelle sont appliqués indépendamment à chaque fonctionnalité. Ensuite, pour une utilisation avec des échantillons ultérieurs à l'aide de transform(), la méthode fit() stocke la moyenne et l'écart type.
Paramètres:
Les attributs:
Méthodes de la classe StandardScaler
ajustement(X[, y, sample_weight]) | Cette méthode calcule la moyenne et l’écart type à utiliser ultérieurement pour mettre à l’échelle les données. |
fit_transform(X[,y]) | Cette méthode ajuste les paramètres des données puis les transforme. |
get_feature_names_out([input_features]) | Cette méthode obtient les noms de fonctionnalités pour la transformation. |
get_params([profond]) | Cette méthode donne les paramètres de l'estimateur particulier. |
transformation_inverse(X[, copie]) | Il réduit la taille des données pour qu'elles correspondent à leur forme originale. |
partial_fit(X[, y, sample_weight]) | La moyenne et l'écart type sur X sont calculés en ligne pour une mise à l'échelle ultérieure. |
set_params(**params) | Cette méthode est utilisée pour définir la valeur des paramètres de l'estimateur. |
transformer(X[, copier]) | Cette méthode transforme les données en utilisant des paramètres déjà stockés dans la classe. |
Exemple de StandardScaler
Tout d’abord, nous importerons les bibliothèques requises. Pour utiliser la fonction StandardScaler, nous devons importer la bibliothèque Sklearn.
tri par sélection en java
Ensuite, nous chargerons l'ensemble de données iris. Nous pouvons importer l'ensemble de données IRIS depuis la bibliothèque sklearn.datasets.
Nous allons créer un objet de la classe StandardScaler.
Séparation des fonctionnalités indépendantes et cibles.
Nous utiliserons la méthode fit transform() pour implémenter la transformation dans l'ensemble de données.
Syntaxe:
object_ = StandardScaler() object_.fit_transform(features)
Nous avons initialement construit une instance de la méthode StandardScaler() en suivant la syntaxe mentionnée ci-dessus. De plus, nous standardisons les données en utilisant fit_transform() avec l'objet fourni.
python nouvelle ligne
Code
# Python program to standardize the data # Importing the required library from sklearn.preprocessing import StandardScaler from sklearn.datasets import load_iris # Loading the dataset X, Y = load_iris(return_X_y = True) # Printing 3 rows of original data print(X[:3, :]) # Creating an object of the StandardScaler class std_scaler = StandardScaler() # Printing 3 rows of the transformed data print(std_scaler.fit_transform(X)[:3, :]) print(std_scaler.mean_)
Sortir
[[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2]] [[-0.90068117 1.01900435 -1.34022653 -1.3154443 ] [-1.14301691 -0.13197948 -1.34022653 -1.3154443 ] [-1.38535265 0.32841405 -1.39706395 -1.3154443 ]] [5.84333333 3.05733333 3.758 1.19933333]