Normalisation standard
La normalisation standard transforme les caractéristiques numériques pour qu'elles aient une moyenne de 0 et une variance de 1. Dans cet exercice, vous allez effectuer une normalisation standard avec StandardScaler() de sklearn. Vous commencerez par ne sélectionner que les colonnes pertinentes sur lesquelles appliquer la normalisation, en combinant un filtrage des colonnes numériques avec certaines connaissances sur les colonnes. Ce filtrage est déjà fourni et s'effectuera à l'aide d'expressions régulières, ce qui permet de faire des correspondances partielles de chaînes. Vous utiliserez ensuite fit_transform() pour transformer les colonnes pertinentes.
Le module pandas est accessible sous pd dans votre environnement de travail et le DataFrame d'exemple est chargé sous df. De plus, la colonne hour est déjà convertie en datetime, et StandardScaler de sklearn.preprocessing est disponible.
Cette activité fait partie du cours
Prédire le CTR avec le Machine Learning en Python
Instructions de l’exercice
- Sélectionnez les colonnes numériques et filtrez les
filter_colsfournis à l'aide de.select_dtypes(). - Appliquez la normalisation standard aux colonnes pertinentes en créant d'abord un
StandardScaler(), puis en utilisant.fit_transform(). - Affichez la variance des nouvelles colonnes transformées avec
.var().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Get non-categorical columns, with a filter
num_df = df.____(include=['int', 'float'])
filter_cols = ['click', 'banner_pos', 'device_type',
'search_engine_type', 'product_type', 'advertiser_type']
new_df = num_df[num_df.columns[~num_df.columns.____(filter_cols)]]
num_cols = new_df.____
# Transform columns using StandardScaler
scaler = ____()
df[num_cols] = scaler.____(df[____])
# Print mean and variance of transformed columns
print(df[num_cols].mean())
print(df[num_cols].____)