기술나눔

데이터 경계 관찰: sklearn의 이상치 감지 기술

2024-07-12

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

데이터 경계 관찰: sklearn의 이상치 감지 기술

이상치 감지는 데이터 분석 및 기계 학습 프로젝트에서 중요한 작업입니다. 특이치 또는 특이치라고도 하는 특이치는 다른 데이터와 크게 다른 관측치를 나타냅니다. 이러한 점은 측정 오류, 데이터 입력 오류 또는 실제 변동성으로 인해 발생할 수 있습니다. 모델 품질과 정확성을 보장하려면 이상값을 올바르게 식별하고 처리하는 것이 중요합니다. Python의 풍부한 기능을 갖춘 기계 학습 라이브러리인 scikit-learn(줄여서 sklearn)은 다양한 이상값 감지 방법을 제공합니다. 이 기사에서는 sklearn의 이상치 감지 기술을 자세히 소개하고 실제 코드 예제를 제공합니다.

1. 이상치 탐지의 중요성

이상치 감지는 다음과 같은 영역에서 중요합니다.

  • 데이터 정리: 데이터 전처리 단계에서 이상값을 식별하고 처리합니다.
  • 사기 탐지: 금융 거래에서 잠재적인 사기 행위를 식별합니다.
  • 공정 모니터링: 설비상태를 모니터링하여 산업생산의 장애를 예방합니다.
2. Sklearn의 이상치 탐지 방법

sklearn은 이상값 감지를 위한 몇 가지 방법을 제공합니다. 다음은 일반적으로 사용되는 몇 가지 기술입니다.

2.1 Z-점수(표준화된 점수)

Z-Score 방법은 데이터의 평균과 표준편차를 기준으로 데이터를 정규분포로 정규화하고 각 포인트에 대한 Z-Score를 계산합니다.

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 격리 포리스트

Isolation Forest는 특징과 분할 지점을 무작위로 선택하여 이상값을 "격리"하는 Random Forest를 기반으로 하는 이상값 검색 방법입니다.

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에서 이러한 기술을 구현하는 방법을 익히도록 돕는 것입니다. 독자들이 이 글을 통해 이상값 탐지에 대한 이해를 높이고 이러한 기법을 실제 프로젝트에 효과적으로 적용할 수 있기를 바랍니다. 데이터 양이 계속해서 증가함에 따라 이상값 탐지는 데이터 과학에서 계속해서 중요한 역할을 할 것입니다.