Transformarea logaritmică
În exercițiile anterioare ai scalat datele liniar, ceea ce nu afectează forma distribuției lor. Această abordare funcționează bine când datele sunt distribuite normal (sau aproape normal) – o ipoteză pe care multe modele de machine learning o presupun. Uneori vei lucra cu date care se conformează îndeaproape normalității, cum ar fi înălțimea sau greutatea unei populații. Pe de altă parte, multe variabile din lumea reală nu urmează acest tipar – de exemplu, salariile sau vârsta unei populații. În acest exercițiu vei aplica o transformare logaritmică asupra coloanei ConvertedSalary din DataFrame-ul so_numeric_df, deoarece majoritatea valorilor sunt concentrate în jurul valorilor mici, dar există și valori foarte mari. Astfel de distribuții se numesc distribuții cu coadă lungă la dreapta.
Acest exercițiu face parte din cursul
Ingineria caracteristicilor pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Importă
PowerTransformerdin modululpreprocessingal biblioteciisklearn. - Instanțiază
PowerTransformer()capow_trans. - Antrenează
PowerTransformerpe coloanaConvertedSalarydinso_numeric_df. - Transformă aceeași coloană folosind scalerul pe care tocmai l-ai antrenat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()