minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
A detecção de valores discrepantes é uma tarefa crítica em projetos de análise de dados e aprendizado de máquina. Outliers, também conhecidos como outliers ou outliers, referem-se às observações que são significativamente diferentes de outros dados. Esses pontos podem ser causados por erros de medição, erros de entrada de dados ou variabilidade real. Identificar e tratar corretamente os valores discrepantes é fundamental para garantir a qualidade e a precisão do modelo. scikit-learn (abreviadamente sklearn), como uma biblioteca de aprendizado de máquina rica em recursos em Python, fornece uma variedade de métodos de detecção de valores discrepantes. Este artigo apresentará detalhadamente a tecnologia de detecção de outliers no sklearn e fornecerá exemplos práticos de código.
A detecção de valores discrepantes é crítica em áreas como:
sklearn fornece vários métodos para detecção de valores discrepantes. Aqui estão algumas técnicas comumente usadas:
O método Z-Score normaliza os dados para uma distribuição normal com base na média e no desvio padrão dos dados e calcula o Z-Score para cada ponto.
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))
O método IQR utiliza o primeiro quartil (Q1) e o terceiro quartil (Q3) dos dados para determinar o intervalo de valores discrepantes.
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)))
Métodos baseados em densidade, como DBSCAN, identificam valores discrepantes com base na densidade dos pontos de dados, em vez de em um limite fixo.
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 é um método de detecção de valores discrepantes baseado em floresta aleatória, que "isola" valores discrepantes selecionando aleatoriamente recursos e pontos de segmentação.
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
Avaliar o desempenho da detecção de valores discrepantes costuma ser difícil porque não existem padrões absolutos. No entanto, pode ser avaliado das seguintes maneiras:
Em aplicações práticas, a detecção de valores discrepantes pode nos ajudar a identificar comportamentos anormais no conjunto de dados para realizar análises adicionais ou tomar medidas preventivas.
A detecção de outliers é um elo importante na análise de dados e no aprendizado de máquina. sklearn fornece uma variedade de métodos de detecção de valores discrepantes, cada método tem seus cenários de aplicação e vantagens específicas. Por meio deste artigo, aprendemos sobre diferentes técnicas de detecção de valores discrepantes no sklearn e fornecemos exemplos práticos de código.
O objetivo deste artigo é ajudar os leitores a compreender melhor a detecção de valores discrepantes e dominar os métodos de implementação dessas técnicas no sklearn. Esperamos que os leitores possam melhorar sua compreensão da detecção de valores discrepantes por meio deste artigo e aplicar efetivamente essas técnicas em projetos reais. À medida que os volumes de dados continuam a crescer, a detecção de valores discrepantes continuará a desempenhar um papel importante na ciência de dados.