728x90
반응형
t-SNE(t-Distributed Stochastic Neighbor Embedding)는 고차원 데이터를 저차원으로 축소하고 시각화하는 데에 널리 사용되는 방법입니다. t-SNE는 PCA와 달리 비선형 구조에 대해서도 효과적으로 처리할 수 있습니다. 이 방법은 데이터의 분포를 보존하면서 데이터 간의 거리를 최대한 보존하는 데에 중점을 둡니다.
t-SNE 기반 이상탐지는 t-SNE를 사용하여 데이터의 차원을 축소한 후, 축소된 차원에서 이상값을 탐지하는 방식입니다. t-SNE는 데이터의 구조를 보존하면서도 차원을 축소하기 때문에, 데이터의 비선형 구조를 보존할 수 있습니다.
t-SNE 기반 이상탐지의 장단점은 다음과 같습니다.
장점:
- 비선형 구조에 대한 처리: t-SNE는 비선형 구조에 대해서도 효과적으로 처리할 수 있습니다. 이를 통해 비선형적인 데이터에서도 이상값을 탐지할 수 있습니다.
- 데이터 시각화: t-SNE는 데이터를 시각화하기 용이하게 축소할 수 있습니다. 이를 통해 데이터의 구조를 시각적으로 파악할 수 있습니다.
- 높은 이상탐지율: t-SNE는 데이터 간의 거리를 최대한 보존하는 방법으로 차원을 축소하기 때문에, 이상값을 탐지하는 데에 높은 이상탐지율을 가집니다.
단점:
- 계산 리소스가 많이 필요함: t-SNE는 시간 및 계산 리소스가 많이 필요한 알고리즘이므로, 대규모 데이터셋에서는 사용하기 어려울 수 있습니다.
- 데이터셋의 구성에 따라 결과가 달라짐: t-SNE는 확률 기반 방법이므로, 데이터셋의 구성에 따라 결과가 달라질 수 있습니다.
- 이상값 탐지의 어려움: t-SNE는 임베딩 벡터(embedding vector)를 생성하므로, 이 벡터에서 이상값을 탐지하기 어려울 수 있습니다. 이러한 경우에는 추가적인 이상탐지 기법이 필요합니다.
구현한 코드는 아래와 같습니다.
from sklearn.manifold import TSNE
import numpy as np
# t-SNE 모델 생성
tsne = TSNE(n_components=2)
# 임베딩 벡터 생성
embedding_vector = tsne.fit_transform(data)
# 잔차 계산
residuals = data - tsne.inverse_transform(embedding_vector)
# 이상값 탐지
threshold = 3 # 임계값 설정
outliers = np.argwhere(np.abs(residuals) > threshold)
# 결과 출력
print("이상값의 개수: ", len(outliers))
print("이상값 인덱스: ", outliers)
728x90
반응형
'AI > Anomaly Detection' 카테고리의 다른 글
Anomaly Detection_PCA (0) | 2023.05.03 |
---|---|
Anomaly Detection_AutoEncoder (0) | 2023.05.02 |
Anomaly Detection_Iforest (0) | 2023.04.14 |
Anomaly Detection_KNN (0) | 2023.04.12 |