IQR (Interquartile Range) 방법
# 함수 생성
def detect_outlier_iqr(column):
q1 = column.quantile(0.25)
q3 = column.quantile(0.75)
iqr = q3 - q1
lower_boundary = q1 - iqr * 1.5
upper_boundary = q3 + iqr * 1.5
outlier = (column < lower_boundary) | (column > upper_boundary)
return outlier
# True와 False로 나타냄
outliersr_iqr = train.apply(detect_outlier_iqr)
print(outliersr_iqr)
# 적용
train = train[~outliersr_iqr.any(axis=1)]
train.shape
# train데이터에 이상치가 제거됨 확인 가능
표준 편차 기반 제거
# 함수 생성
def detect_outlier_zscore(column):
threshold = 3
mean = column.mean()
std_dev = column.std()
zscore = (column - mean) / std_dev
return sum(abs(zscore) > threshold)
# True와 False로 나타남
outliers_zscore = train.apply(detect_outlier_zscore)
print(outliers_zscore)
# 적용
train = train[~ outliers_zscore.any(axis=1)]
train.shape
# train데이터에 이상치가 제거됨 확인 가능
이상치 제거 방법 개념
'AI&ML > preprocessing' 카테고리의 다른 글
상관계수 code (0) | 2024.07.14 |
---|