Logaritmická transformace
V předchozích cvičeních jsi data škáloval/a lineárně, což neovlivní jejich rozložení. To funguje skvěle, pokud tvá data mají normální rozdělení (nebo se mu blíží) – předpoklad, který spousta modelů strojového učení vyžaduje. Někdy budeš pracovat s daty, která se normálnímu rozdělení dobře přibližují, například výška nebo váha populace. Na druhou stranu mnoho proměnných z reálného světa tento vzor nenásleduje – třeba mzdy nebo věk populace. V tomto cvičení použiješ logaritmickou transformaci na sloupec ConvertedSalary v DataFramu so_numeric_df, protože velká část dat je soustředěna kolem nižších hodnot, ale zároveň obsahuje i velmi vysoké hodnoty. O takovém rozdělení říkáme, že má dlouhý pravý ocas.
Toto cvičení je součástí kurzu
Feature Engineering for Machine Learning in Python
Pokyny k cvičení
- Importuj
PowerTransformerz modulupreprocessingknihovnysklearn. - Vytvoř instanci
PowerTransformer()a pojmenuj jipow_trans. - Natrénuj
PowerTransformerna sloupciConvertedSalaryzso_numeric_df. - Transformuj stejný sloupec pomocí právě natrénovaného scaleru.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()