연재 데이터 항해 훈련 일지

약 1분

데이터 척도와 IQR로 이상치 다루기

House Prices 데이터의 이상치를 Boxplot·Scatter로 눈으로 찾고 IQR로 경계를 계산했다. 제거할지 클리핑할지 판단하며 처리 전/후 분포를 비교했다.

TrainingDataPreprocessing

이상치는 '틀린 값'이 아니다

이번 실습의 출발점은 관점의 전환이었다. 이상치(outlier)는 무조건 지워야 할 오류가 아니라, 왜 튀는지 먼저 물어봐야 할 신호다.

눈으로 먼저 확인

  • describe() 로 어느 변수가 오른쪽 꼬리가 긴 분포인지 파악 (SalePrice가 대표적)
  • SalePrice, LotArea, GrLivArea, GarageArea 를 각각 Boxplot 으로
  • GrLivArea vs SalePrice Scatter 로 "면적은 큰데 이상하게 싼 집"을 찾기

IQR로 경계 계산

Q1 = df["SalePrice"].quantile(0.25)
Q3 = df["SalePrice"].quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR

이 범위를 벗어나는 행의 개수와 전체 대비 비율(%) 을 구했다. 여러 면적 변수에 같은 절차를 반복 적용하며 손에 익혔다.

제거 vs 클리핑

핵심 의사결정.

  • 제거(drop): 이상치 행을 통째로 버림 — 데이터가 줄지만 깔끔
  • 클리핑(clip): 경계값으로 눌러 담음 — 데이터 수는 유지, 극단만 완화

정답은 없다. 이 데이터에서 무엇을 보려는지가 정한다. 그래서 처리 전/후 분포를 나란히 놓고 영향을 확인했다.

정리