Eliminación de valores atípicos estadísticos
Aunque eliminar el N% superior de tus datos es útil para asegurarte de que se quitan puntos muy espurios, tiene la desventaja de eliminar siempre la misma proporción de puntos, incluso si los datos son correctos. Una alternativa muy utilizada es eliminar los datos que estén a más de tres desviaciones estándar de la media. Puedes implementarlo calculando primero la media y la desviación estándar de la columna relevante para obtener los límites superior e inferior, y aplicando estos límites como una máscara al DataFrame. Este método asegura que solo se retire la información que realmente difiere del resto y eliminará menos puntos si los datos están más agrupados.
Este ejercicio forma parte del curso
Ingeniería de características para Machine Learning en Python
Instrucciones del ejercicio
- Calcula la desviación estándar y la media de la columna
ConvertedSalarydeso_numeric_df. - Calcula los límites superior e inferior como tres desviaciones estándar alejadas de la media en ambas direcciones.
- Recorta el DataFrame
so_numeric_dfpara conservar todas las filas dondeConvertedSalaryesté dentro de los límitesloweryupper.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()