Transformacja logarytmiczna
W poprzednich ćwiczeniach skalowałeś dane liniowo – taka operacja nie zmienia kształtu rozkładu. Sprawdza się to świetnie, gdy dane mają rozkład normalny (lub zbliżony do normalnego), co jest założeniem wielu modeli uczenia maszynowego. Czasem dane rzeczywiście zbliżają się do normalności – na przykład wzrost lub waga populacji. Jednak wiele zmiennych w rzeczywistym świecie nie podąża tym wzorcem, np. zarobki czy wiek populacji. W tym ćwiczeniu zastosujesz transformację logarytmiczną na kolumnie ConvertedSalary z ramki danych so_numeric_df, ponieważ większość wartości jest skupiona przy niskich kwotach, ale zbiór zawiera też bardzo wysokie wartości. Takie rozkłady określa się jako rozkłady z długim prawym ogonem.
To ćwiczenie jest częścią kursu
Inżynieria cech w uczeniu maszynowym w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
PowerTransformerz modułupreprocessingbibliotekisklearn. - Utwórz instancję
PowerTransformer()i przypisz ją do zmiennejpow_trans. - Dopasuj
PowerTransformerdo kolumnyConvertedSalaryz ramki danychso_numeric_df. - Przekształć tę samą kolumnę za pomocą dopasowanego skalera.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()