Odstranění statistických odlehlých hodnot
Odstraňování horních N % dat je sice užitečné pro eliminaci zjevně chybných hodnot, ale má jednu nevýhodu: vždy odstraní stejný podíl bodů, i když jsou data správná. Běžně používanou alternativou je odstranit hodnoty, které leží více než tři směrodatné odchylky od průměru. Nejprve vypočítáš průměr a směrodatnou odchylku příslušného sloupce, abys určil/a horní a dolní mez, a tyto meze pak použiješ jako masku pro DataFrame. Tato metoda zajišťuje, že se odstraní jen data skutečně odlišná od zbytku, a pokud jsou hodnoty blízko u sebe, odstraní se jich méně.
Toto cvičení je součástí kurzu
Feature Engineering for Machine Learning in Python
Pokyny k cvičení
- Vypočítej směrodatnou odchylku a průměr sloupce
ConvertedSalaryv DataFrameso_numeric_df. - Vypočítej horní a dolní mez jako trojnásobek směrodatné odchylky od průměru v obou směrech.
- Ořež DataFrame
so_numeric_dftak, aby obsahoval pouze řádky, kde hodnotaConvertedSalaryleží mezi mezemiloweraupper.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____
# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____
# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \
& (so_numeric_df['ConvertedSalary'] > ____)]
# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()