ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Calcula la desviación estándar y la media de la columna ConvertedSalary de so_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_df para conservar todas las filas donde ConvertedSalary esté dentro de los límites lower y upper.

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()
Editar y ejecutar código