Detección y eliminación de valores atípicos
Métodos del valor z y del IQR, concepto de isolation forest y tratamiento práctico de valores atípicos.
Detección y eliminación de valores atípicos es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué es un valor atípico?
Un valor atípico es un valor muy alejado del resto de los datos. Puede ser un extremo real, un error de introducción de datos o un fallo del sensor. Los valores atípicos pueden distorsionar las medias, las varianzas y los modelos, por lo que debe detectarlos deliberadamente.
El método de la puntuación z
Una puntuación z mide a cuántas desviaciones estándar de la media se encuentra un valor: z = (x - mean) / std. Una regla habitual marca como valor atípico cualquier punto con |z| > 3.
import numpy as np
data = np.array([10, 12, 11, 13, 12, 100])
z = (data - data.mean()) / data.std()
print(np.round(z, 2))Detección con scipy zscore
scipy.stats.zscore calcula las puntuaciones z de un arreglo. Combínelo con un umbral para crear una máscara booleana de valores atípicos.
from scipy import stats
z = np.abs(stats.zscore(data))
outliers = z > 3
print(data[outliers])Limitación de la puntuación z
La puntuación z utiliza la media y la desviación estándar, que a su vez se ven arrastradas por los valores atípicos. Con datos muy sesgados o valores extremos, las puntuaciones z pueden detectar menos valores atípicos de los que deberían. El método del IQR es más robusto.
El método del IQR
El rango intercuartílico IQR = Q3 - Q1 abarca el 50 por ciento central de los datos. Se calcula a partir de los cuartiles, que apenas se ven afectados por los valores atípicos, por lo que es robusto.
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
print(q1, q3, iqr)Límites del IQR
Los límites de Tukey definen los extremos: inferior = Q1 - 1.5*IQR, superior = Q3 + 1.5*IQR. Todo lo que queda fuera se marca. La misma regla determina los bigotes de un diagrama de caja.
lower = q1 - 1.5 * iqr
upper = q3 + 1.5 * iqr
mask = (data < lower) | (data > upper)
print(data[mask]) # outliersVisualización con un diagrama de caja
Un diagrama de caja visualiza la regla del IQR: la caja va de Q1 a Q3, la línea representa la mediana, los bigotes llegan hasta los límites y los puntos que quedan fuera se dibujan como puntos individuales de valores atípicos.
# import matplotlib.pyplot as plt
# plt.boxplot(data)
# plt.show()Eliminación de valores atípicos
Una vez detectadas, puede ELIMINAR las filas con valores atípicos. Hágalo con precaución: eliminar datos reales puede sesgar los resultados. Mantenga un registro de lo que eliminó y de los motivos.
clean = data[~mask]
print(clean) # outlier removedWinsorización con np.clip
En lugar de eliminar los valores extremos, la winsorización los limita a unos valores elegidos mediante np.clip. Así conserva el número de filas y reduce la influencia de los extremos.
capped = np.clip(data, lower, upper)
print(capped) # extreme value pulled to the upper fenceLimitar a percentiles
Una opción habitual de winsorización limita los valores a los percentiles 1 y 99, eliminando únicamente el 2 por ciento más extremo de los valores de forma simétrica.
lo, hi = np.percentile(data, [1, 99])
print(np.clip(data, lo, hi))¿Eliminar o limitar?
Elija según el contexto: ELIMINE los errores claros (valores imposibles), LIMITE los valores reales pero extremos que desee conservar y, en ocasiones, CONSERVE los valores atípicos cuando sean la señal (por ejemplo, en la detección de fraude). Documente la decisión.
Comprobación rápida
Compruebe sus conocimientos sobre valores atípicos.
Resumen
Herramientas para gestionar valores atípicos:
- Puntuación z: marque
|z| > 3mediantescipy.stats.zscore(sensible a los valores atípicos) - Límites del IQR: de Q1-1.5*IQR a Q3+1.5*IQR (robustos y base de los diagramas de caja)
- Elimine los errores reales; winsorice con
np.clippara limitar los extremos - Documente siempre por qué se eliminaron o limitaron los valores
Preguntas frecuentes
¿La lección «Detección y eliminación de valores atípicos» es gratis?
Sí — el texto completo de «Detección y eliminación de valores atípicos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Detección y eliminación de valores atípicos»?
Métodos del valor z y del IQR, concepto de isolation forest y tratamiento práctico de valores atípicos. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Detección y eliminación de valores atípicos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Detección y eliminación de valores atípicos
- Codificación de variables categóricas
- Escalado de características: normalización y estandarización
- Creación de pipelines de preprocesamiento