

장점
- 구현하기 간단하다.
- 명확한 기준을 설정할 수 있기 때문에, 방법론에 재학습이 필요하지 않다.
단점
- 정규분포가 가정되어야 구현이 가능하다.
- 다차원 데이터에 적용하기 어렵다.
- 단변량 데이터에 적용할 수 있으며, Feature간 상호관계를 파악하기 어렵다.
import numpy as np
import pandas as pd
# create UCL, LCL
DataFrame['UCL_W'] = DataFrame['Column_1'].mean() + 3*DataFrame['Column_1'].std()
DataFrame['LCL_W'] = DataFrame['Column_1'].mean() - 3*DataFrame['Column_1'].std()
DataFrame['UCL_H'] = DataFrame['Column_2'].mean() + 3*DataFrame['Column_2'].std()
DataFrame['LCL_H'] = DataFrame['Column_2'].mean() + 3*DataFrame['Column_2'].std()
- Hyper parameter인 평균(mean)과 표준편차(std), 시그마 계수를 설정하여 임계값 Threshold를 계산해야한다.
- Theshold(1,2,3) 기준으로 이상 데이터를 탐지를 진행함
- 이후 시각화를 통해 데이터의 이상점을 보다 쉽게 확인하면 좋당

장점
- 데이터를 눈으로 확인하기 어려울 때, 그림을 이용해 데이터의 범위를 빠르게 파악할 수 있다.
- 통계적으로 이상치가 있는지 확인할 수 있다.
- 다양한 정보를 손쉽게 표현할 수 있다.
단점
- 위치정보에 기반하고 있기 때문에 분포를 확인하기는 어렵다.
#box plot 그리기
import numpy as np
data_a = np.random.normal(0, 2.0, 1000)
data_b = np.random.normal(-3.0, 1.5, 500)
data_c = np.random.normal(1.2, 1.5, 1500)
labels=['data_a', 'data_b', 'data_c']
fig, ax = plt.subplots()
box = ax.boxplots([data_a, data_b, data_c], whis=1.5)
ax.set_ylim(-10.0, 10.0)
ax.set_xlabel('Data Type')
ax.set_ylabel('Value')

- Hyper parameter : whis(*Maximum과 Minimum의 Threshold를 정하는 하이퍼 파라미터)
- 일반적으로 whis는 1.5로 설정
- Q1 -1.5 x IQR 미만 or 1.5 x IQR 초과 데이터에 대해 이상을 탐지함