본문 바로가기
개발지식

머신 러닝을 활용한 이상 감지 시스템 구현

by hunovator 2024. 2. 9.
반응형

데이터 전처리 기술: 노이즈 제거와 이상치 처리

이상 감지 시스템을 구현하기 위해서는 데이터의 품질을 향상시키기 위한 데이터 전처리 기술이 필요합니다. 이를 위해 다음과 같은 기술을 적용할 수 있습니다


# 노이즈 제거 예제
import numpy as np
import pandas as pd
from scipy import stats

# 가우시안 노이즈 생성
data = np.random.normal(loc=0, scale=1, size=(1000, 2))

# 이상치 추가
data[0] = [1000, 1000]

# Z-score 기반 이상치 제거
def remove_outliers(data):
    z_scores = np.abs(stats.zscore(data))
    threshold = 3
    return data[(z_scores < threshold).all(axis=1)]

cleaned_data = remove_outliers(data)
print("이상치 제거 후 데이터 크기:", cleaned_data.shape)

특성 선택과 추출: 주요 특성 식별과 차원 축소

이상 감지 시스템에서는 주요 특성을 식별하고 차원 축소 기술을 통해 데이터의 표현을 간소화할 필요가 있습니다. 이를 위해 다음과 같은 기술을 활용할 수 있습니다.


# 주요 특성 식별과 차원 축소 예제
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest, f_classif
from sklearn.decomposition import PCA

# iris 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target

# ANOVA F-value를 사용한 주요 특성 선택
X_selected = SelectKBest(f_classif, k=2).fit_transform(X, y)
print("주요 특성 선택 후 데이터 크기:", X_selected.shape)

# PCA를 사용한 차원 축소
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
print("PCA를 사용한 차원 축소 후 데이터 크기:", X_pca.shape)

이러한 코드 예제를 통해 데이터 전처리 기술과 특성 선택/추출 기술을 구체적으로 이해할 수 있습니다.

반응형