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데이터에 이상치가 제거됨 확인 가능
이상치 제거 방법 개념
이상치 제거 방법
IQR (Interquartile Range) 방법 주로 데이터 분포가 정규분포를 따르지 않을 때, 대부분의 데이터가 중앙에 몰려 있지 않고 극단적인 값을 갖는 경우에 유용 장점: 이상치를 식별하기 위한 단순하고 직
ornni.tistory.com
'AI&ML > preprocessing' 카테고리의 다른 글
상관계수 code (0) | 2024.07.14 |
---|