이상치는 '틀린 값'이 아니다
이번 실습의 출발점은 관점의 전환이었다. 이상치(outlier)는 무조건 지워야 할 오류가 아니라, 왜 튀는지 먼저 물어봐야 할 신호다.
눈으로 먼저 확인
describe()로 어느 변수가 오른쪽 꼬리가 긴 분포인지 파악 (SalePrice가 대표적)SalePrice,LotArea,GrLivArea,GarageArea를 각각 Boxplot 으로GrLivAreavsSalePriceScatter 로 "면적은 큰데 이상하게 싼 집"을 찾기
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): 경계값으로 눌러 담음 — 데이터 수는 유지, 극단만 완화
정답은 없다. 이 데이터에서 무엇을 보려는지가 정한다. 그래서 처리 전/후 분포를 나란히 놓고 영향을 확인했다.