Standard scaling
La standardisation transforme les variables numériques pour qu’elles aient une moyenne de 0 et une variance de 1. Dans cet exercice, vous allez effectuer une standardisation avec StandardScaler() de sklearn. Vous commencerez par sélectionner uniquement les colonnes pertinentes sur lesquelles appliquer la mise à l’échelle, en combinant un filtrage des colonnes numériques avec votre connaissance des colonnes. Ce filtrage est déjà fourni et sera réalisé à l’aide d’expressions régulières, qui permettent des correspondances partielles sur les chaînes. Vous utiliserez ensuite fit_transform() pour transformer les colonnes pertinentes.
Le module pandas est disponible sous pd dans votre espace 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.
Cet exercice fait partie du cours
Prédire le CTR avec le Machine Learning en Python
Instructions
- Sélectionnez les colonnes numériques et filtrez les
filter_colsdonnés en utilisant.select_dtypes(). - Appliquez la standardisation aux colonnes pertinentes en créant d’abord un
StandardScaler()puis en utilisant.fit_transform(). - Affichez la variance des colonnes nouvellement transformées avec
.var().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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].____)