Loading...
2022. 9. 5. 02:05

이상치 탐지를 위한 기본적인 isolation forest 알고리즘

1. 비지도학습을 이용한 이상치 탐지(anomaly detection) 1-1) mahalanobis 거리를 이용한 outlier 탐지 1-2) k-means를 이용한 군집화 1-3) DBSCAN 1-4) isolation forest 2. isolation forest isolation을 이용하여 이상치를 탐지하는 알고리즘이다. isolation은 데이터의 나머지보다 특정 데이터 포인트가 얼마나 멀리 떨어져있는지를 나타내는 것이다. 기본적으로 이상치는 다른 정상데이터보다 분리시키기 쉽다는 성질을 이용한다 decision tree의 재귀 이진 분할을 활용하여 랜덤하게 변수를 선택하고, 이를 이용해 모든 데이터를 재귀 이진분할 시킨다. 이상치가 분할하기 쉬우므로 상대적으로 root node에 가까운 곳에 ..

2022. 6. 26. 00:53

데이터 전처리 - 이상치를 처리하는 방법의 기초

1. 이상치란? 데이터 중 일반적인 데이터와 크게 다른 데이터를 의미함 모델 성능에 큰 영향을 줄 수 있어 조심히 접근해야함 위의 왼쪽에는 상관관계가 0.95로 계산되는데 이상해보이는 3개 제거하고 나니 실제로는 랜덤하게 흩뿌려진 데이터 분포를 나타냄 아래의 그림에서 왼쪽을 보면 깔끔하게 상관관계를 보이는 데이터 분포 그런데 이상한 데이터가 추가되고나니 오른쪽처럼 상관관계가 약간 더러워짐? 2. Z score Z score로 이상치를 탐지할 수 있는데 관측치 X에 대해 이들의 평균이 $\mu$, 표준편차가 $\sigma$이면 특정 $i$번째 관측치 $X_{i}$의 Z score란 $$Z_{i} = \frac{X_{i} - \mu}{\sigma}$$로 구해지고 이것은 N(0,1)을 따른다. 정규분포의 특징..

2022. 3. 25. 02:38

데이터프레임에서 행별로 이상치 판단하기 (코딩테스트 복기)

1. 예시 데이터 생성 import pandas as pd import numpy as np a = ['xdjwew1235453kdrew',75,np.nan,np.nan] b = ['jgierw0548323kgfe',54,36,89] c = ['hjeir3058372jdkw',23,85,np.nan] d = ['gjewoe02853klfw',98,94,92] e = ['guehrwenk29584034kgneiew',np.nan,np.nan,55] df = pd.DataFrame([a,b,c,d,e]) 여기서 소소한 팁으로 np.nan으로 NaN값을 넣을 수 있다 'NaN'이나 nan이나 NaN이나 이런거 안됨 2. 행의 값들을 가져오는 방법 df.values하면 데이터프레임의 행들을 numpy array..