Logaritmisk transformation
I de föregående övningarna skalade du data linjärt, vilket inte påverkar datans fördelning. Det fungerar bra om dina data är normalfördelade (eller nästan normalfördelade) – ett antagande som många maskininlärningsmodeller bygger på. Ibland arbetar du med data som ligger nära en normalfördelning, till exempel längd eller vikt hos en befolkning. Många variabler i verkligheten följer däremot inte detta mönster – till exempel löner eller åldersfördelning. I den här övningen tillämpar du en logaritmisk transformation på kolumnen ConvertedSalary i DataFrame:en so_numeric_df, eftersom en stor del av värdena är koncentrerade kring de lägre nivåerna men det även förekommer mycket höga värden. Sådana fördelningar sägs ha en lång högersvans.
Den här övningen är en del av kursen
Särdragshantering för maskininlärning i Python
Övningsinstruktioner
- Importera
PowerTransformerfrånsklearn:s modulpreprocessing. - Skapa en instans av
PowerTransformer()och spara den sompow_trans. - Anpassa
PowerTransformerpå kolumnenConvertedSalaryiso_numeric_df. - Transformera samma kolumn med den skalningstransformation du precis anpassat.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()