моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Обнаружение выбросов — важнейшая задача в проектах анализа данных и машинного обучения. Выбросы, также известные как выбросы или выбросы, относятся к тем наблюдениям, которые значительно отличаются от других данных. Эти точки могут быть вызваны ошибками измерения, ошибками ввода данных или истинной изменчивостью. Правильное выявление и обработка выбросов имеет решающее значение для обеспечения качества и точности модели. scikit-learn (сокращенно sklearn) — многофункциональная библиотека машинного обучения на Python, предоставляющая множество методов обнаружения выбросов. В этой статье будет подробно представлена технология обнаружения выбросов в sklearn и приведены практические примеры кода.
Обнаружение выбросов имеет решающее значение в таких областях, как:
sklearn предоставляет несколько методов обнаружения выбросов. Вот некоторые часто используемые методы:
Метод 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))
Метод 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)))
Методы, основанные на плотности, такие как 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
«Изолирующий лес» — это метод обнаружения выбросов, основанный на случайном лесу, который «изолирует» выбросы путем случайного выбора объектов и точек сегментации.
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
Оценить эффективность обнаружения выбросов часто бывает сложно, поскольку не существует абсолютных стандартов. Однако его можно оценить следующими способами:
В практических приложениях обнаружение выбросов может помочь нам выявить аномальное поведение в наборе данных для проведения дальнейшего анализа или принятия превентивных мер.
Обнаружение выбросов — важное звено в анализе данных и машинном обучении. sklearn предоставляет множество методов обнаружения выбросов, каждый из которых имеет свои конкретные сценарии применения и преимущества. В этой статье мы узнали о различных методах обнаружения выбросов в sklearn и предоставили практические примеры кода.
Цель этой статьи — помочь читателям лучше понять обнаружение выбросов и освоить методы реализации этих методов в sklearn. Мы надеемся, что благодаря этой статье читатели смогут улучшить свое понимание обнаружения выбросов и эффективно применять эти методы в реальных проектах. Поскольку объемы данных продолжают расти, обнаружение выбросов будет продолжать играть важную роль в науке о данных.