Trasformazione logaritmica
Negli esercizi precedenti hai scalato i dati linearmente, operazione che non modifica la forma della distribuzione. Questo funziona molto bene se i tuoi dati sono distribuiti normalmente (o quasi), un’ipotesi su cui si basano molti modelli di machine learning. A volte lavorerai con dati che rispettano abbastanza bene la normalità, ad esempio l’altezza o il peso di una popolazione. D’altra parte, molte variabili nel mondo reale non seguono questo schema, ad esempio i salari o l’età di una popolazione. In questo esercizio applicherai una trasformazione logaritmica alla colonna ConvertedSalary del DataFrame so_numeric_df, perché una grande parte dei suoi valori è concentrata nella parte bassa ma sono presenti anche valori molto elevati. Si dice che queste distribuzioni abbiano una lunga coda destra.
Questo esercizio fa parte del corso
Feature Engineering per il Machine Learning in Python
Istruzioni dell'esercizio
- Importa
PowerTransformerdal modulopreprocessingdisklearn. - Istanzia
PowerTransformer()comepow_trans. - Adatta (
fit) ilPowerTransformersulla colonnaConvertedSalarydiso_numeric_df. - Trasforma la stessa colonna con lo scaler appena adattato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import PowerTransformer
from sklearn.preprocessing import ____
# Instantiate PowerTransformer
pow_trans = ____
# Train the transform on the data
____
# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])
# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()