Remoção estatística de outliers
Embora remover os N% superiores do seu conjunto de dados seja útil para garantir que pontos muito espúrios sejam excluídos, isso tem a desvantagem de sempre eliminar a mesma proporção de pontos, mesmo quando os dados estão corretos. Uma alternativa comum é remover dados que estejam a mais de três desvios padrão da média. Você pode implementar isso calculando primeiro a média e o desvio padrão da coluna relevante para encontrar os limites superior e inferior e aplicando esses limites como uma máscara no DataFrame. Esse método garante que apenas os dados que são realmente diferentes do restante sejam removidos e eliminará menos pontos se os dados estiverem mais concentrados.
Este exercício faz parte do curso
Feature Engineering for Machine Learning in Python
Instruções do exercício
- Calcule o desvio padrão e a média da coluna
ConvertedSalarydeso_numeric_df. - Calcule os limites superior e inferior como três desvios padrão de distância da média em ambas as direções.
- Reduza o DataFrame
so_numeric_dfpara manter todas as linhas em queConvertedSalaryesteja dentro dos limiteslowereupper.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()