Mi información de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La detección de valores atípicos es una tarea crítica en proyectos de análisis de datos y aprendizaje automático. Los valores atípicos, también conocidos como valores atípicos o valores atípicos, se refieren a observaciones que son significativamente diferentes de otros datos. Estos puntos pueden deberse a errores de medición, errores de entrada de datos o variabilidad real. Identificar y manejar correctamente los valores atípicos es fundamental para garantizar la calidad y precisión del modelo. scikit-learn (sklearn para abreviar), como biblioteca de aprendizaje automático rica en funciones en Python, proporciona una variedad de métodos de detección de valores atípicos. Este artículo presentará en detalle la tecnología de detección de valores atípicos en sklearn y proporcionará ejemplos de código prácticos.
La detección de valores atípicos es fundamental en áreas como:
sklearn proporciona varios métodos para la detección de valores atípicos. A continuación se muestran algunas técnicas utilizadas habitualmente:
El método Z-Score normaliza los datos a una distribución normal basada en la media y la desviación estándar de los datos, y calcula el Z-Score para cada punto.
from scipy.stats import zscore
data = [[1, 2], [3, 4], [5, 6], [100, 100]]
data = np.array(data)
z_scores = zscore(data)
threshold = 3 # 通常阈值设为3
outliers = np.where((z_scores > threshold) | (z_scores < -threshold))
El método IQR utiliza el primer cuartil (Q1) y el tercer cuartil (Q3) de los datos para determinar el rango de valores atípicos.
Q1 = np.percentile(data, 25, axis=0)
Q3 = np.percentile(data, 75, axis=0)
IQR = Q3 - Q1
threshold = 1.5
outliers = np.where((data < (Q1 - threshold * IQR)) | (data > (Q3 + threshold * IQR)))
Los métodos basados en la densidad, como DBSCAN, identifican valores atípicos basándose en la densidad de los puntos de datos en lugar de un umbral fijo.
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(min_samples=5, eps=0.5)
dbscan.fit(data)
core_samples_mask = np.zeros_like(dbscan.labels_, dtype=bool)
core_samples_mask[dbscan.core_sample_indices_] = True
outliers = dbscan.labels_ == -1
Isolation Forest es un método de detección de valores atípicos basado en un bosque aleatorio, que "aísla" valores atípicos seleccionando aleatoriamente características y puntos de segmentación.
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
A menudo resulta difícil evaluar el rendimiento de la detección de valores atípicos porque no existen estándares absolutos. Sin embargo, se puede evaluar de las siguientes maneras:
En aplicaciones prácticas, la detección de valores atípicos puede ayudarnos a identificar comportamientos anormales en el conjunto de datos para realizar análisis adicionales o tomar medidas preventivas.
La detección de valores atípicos es un vínculo importante en el análisis de datos y el aprendizaje automático. sklearn proporciona una variedad de métodos de detección de valores atípicos, cada método tiene sus ventajas y escenarios de aplicación específicos. A través de este artículo, aprendimos sobre diferentes técnicas de detección de valores atípicos en sklearn y proporcionamos ejemplos de código prácticos.
El propósito de este artículo es ayudar a los lectores a comprender mejor la detección de valores atípicos y dominar los métodos para implementar estas técnicas en sklearn. Esperamos que los lectores puedan mejorar su comprensión de la detección de valores atípicos a través de este artículo y aplicar estas técnicas de manera efectiva en proyectos reales. A medida que los volúmenes de datos sigan creciendo, la detección de valores atípicos seguirá desempeñando un papel importante en la ciencia de datos.