Compartilhamento de tecnologia

Observando os limites dos dados: tecnologia de detecção de outliers no sklearn

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Observando os limites dos dados: tecnologia de detecção de outliers no sklearn

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.

1. A importância da detecção de valores discrepantes

A detecção de valores discrepantes é crítica em áreas como:

  • Limpeza de dados: identifique e lide com valores discrepantes durante o estágio de pré-processamento de dados.
  • Detecção de fraude: Identifique possíveis fraudes em transações financeiras.
  • Monitoramento de Processos: Monitore o status dos equipamentos e evite falhas na produção industrial.
2. Método de detecção de outliers no sklearn

sklearn fornece vários métodos para detecção de valores discrepantes. Aqui estão algumas técnicas comumente usadas:

2.1 Z-Score (pontuação padronizada)

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.2 AIQ (intervalo interquartil)

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)))
  • 1
  • 2
  • 3
  • 4
  • 5
2.3 Métodos baseados em densidade

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.4 Floresta de Isolamento

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
  • 1
  • 2
  • 3
  • 4
  • 5
3. Avalie a detecção de valores discrepantes

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:

  • Visualização: visualize pontos de dados e valores discrepantes detectados usando métodos como gráficos de dispersão.
  • Valores discrepantes conhecidos: Se houver valores discrepantes conhecidos, indicadores como precisão de detecção e taxa de recuperação poderão ser calculados.
4. Combinado com aplicações práticas

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.

5. Conclusão

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.