Logtransformatie
In de vorige oefeningen heb je de data lineair geschaald, wat de vorm van de data niet verandert. Dit werkt goed als je data (bijna) normaal verdeeld is, een aanname die veel Machine Learning-modellen maken. Soms werk je met data die dicht bij normaal ligt, zoals de lengte of het gewicht van een populatie. Aan de andere kant volgen veel variabelen in de echte wereld dit patroon niet, zoals lonen of de leeftijd van een populatie. In deze oefening pas je een logtransformatie toe op de kolom ConvertedSalary in de DataFrame so_numeric_df, omdat een groot deel van de waarden rond de lagere getallen ligt, maar er ook hele hoge waarden voorkomen. Zulke verdelingen hebben een lange rechterstaart.
Deze oefening maakt deel uit van de cursus
Feature engineering voor Machine Learning in Python
Oefeninstructies
- Importeer
PowerTransformeruit de modulepreprocessingvansklearn. - Instantier
PowerTransformer()alspow_trans. - Fit de
PowerTransformerop de kolomConvertedSalaryvanso_numeric_df. - Transformeer dezelfde kolom met de scaler die je zojuist hebt gefit.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()