Обмен технологиями

Наблюдение за границами данных: технология обнаружения выбросов в sklearn

2024-07-12

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

Наблюдение за границами данных: технология обнаружения выбросов в sklearn

Обнаружение выбросов — важнейшая задача в проектах анализа данных и машинного обучения. Выбросы, также известные как выбросы или выбросы, относятся к тем наблюдениям, которые значительно отличаются от других данных. Эти точки могут быть вызваны ошибками измерения, ошибками ввода данных или истинной изменчивостью. Правильное выявление и обработка выбросов имеет решающее значение для обеспечения качества и точности модели. scikit-learn (сокращенно sklearn) — многофункциональная библиотека машинного обучения на Python, предоставляющая множество методов обнаружения выбросов. В этой статье будет подробно представлена ​​технология обнаружения выбросов в sklearn и приведены практические примеры кода.

1. Важность обнаружения выбросов

Обнаружение выбросов имеет решающее значение в таких областях, как:

  • Очистка данных: выявление и обработка выбросов на этапе предварительной обработки данных.
  • Обнаружение мошенничества: Выявить потенциальное мошенничество при финансовых операциях.
  • Мониторинг процессов: Контролируйте состояние оборудования и предотвращайте сбои в промышленном производстве.
2. Метод обнаружения выбросов в sklearn

sklearn предоставляет несколько методов обнаружения выбросов. Вот некоторые часто используемые методы:

2.1 Z-Score (стандартизованная оценка)

Метод Z-Score нормализует данные до нормального распределения на основе среднего и стандартного отклонения данных и вычисляет Z-показатель для каждой точки.

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 IQR (межквартильный размах)

Метод IQR использует первый квартиль (Q1) и третий квартиль (Q3) данных для определения диапазона выбросов.

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 Методы, основанные на плотности

Методы, основанные на плотности, такие как DBSCAN, идентифицируют выбросы на основе плотности точек данных, а не фиксированного порога.

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 Изоляционный лес

«Изолирующий лес» — это метод обнаружения выбросов, основанный на случайном лесу, который «изолирует» выбросы путем случайного выбора объектов и точек сегментации.

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. Оцените обнаружение выбросов

Оценить эффективность обнаружения выбросов часто бывает сложно, поскольку не существует абсолютных стандартов. Однако его можно оценить следующими способами:

  • Визуализация: Визуализируйте точки данных и обнаруженные выбросы, используя такие методы, как диаграммы рассеяния.
  • Известные выбросы: если известны выбросы, можно рассчитать такие показатели, как точность обнаружения и скорость отзыва.
4. В сочетании с практическим применением

В практических приложениях обнаружение выбросов может помочь нам выявить аномальное поведение в наборе данных для проведения дальнейшего анализа или принятия превентивных мер.

5. Вывод

Обнаружение выбросов — важное звено в анализе данных и машинном обучении. sklearn предоставляет множество методов обнаружения выбросов, каждый из которых имеет свои конкретные сценарии применения и преимущества. В этой статье мы узнали о различных методах обнаружения выбросов в sklearn и предоставили практические примеры кода.

Цель этой статьи — помочь читателям лучше понять обнаружение выбросов и освоить методы реализации этих методов в sklearn. Мы надеемся, что благодаря этой статье читатели смогут улучшить свое понимание обнаружения выбросов и эффективно применять эти методы в реальных проектах. Поскольку объемы данных продолжают расти, обнаружение выбросов будет продолжать играть важную роль в науке о данных.