Standaardschaling
Standaardschaling zet numerieke features om zodat ze een gemiddelde van 0 en een variantie van 1 hebben. In deze oefening voer je standaardschaling uit met StandardScaler() uit sklearn. Eerst selecteer je alleen de relevante kolommen waarop je de schaling toepast, door numerieke kolommen te filteren gecombineerd met wat kennis van de kolommen. Deze filtering is al voorzien en gebeurt met reguliere expressies, waarmee je gedeeltelijke string-matches kunt maken. Daarna gebruik je fit_transform() om de relevante kolommen te transformeren.
De pandas-module is beschikbaar als pd in je werkruimte en de voorbeeld-DataFrame is geladen als df. Daarnaast is de kolom hour al omgezet naar een datetime, en StandardScaler uit sklearn.preprocessing is beschikbaar.
Deze oefening maakt deel uit van de cursus
CTR voorspellen met Machine Learning in Python
Oefeninstructies
- Selecteer de numerieke kolommen en filter de gegeven
filter_colsmet.select_dtypes(). - Pas standaardschaling toe op de relevante kolommen door eerst een
StandardScaler()te maken en vervolgens.fit_transform()te gebruiken. - Print de variantie van de nieuw getransformeerde kolommen met
.var().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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].____)