이상치는 '틀린 값'이 아니다
이번 실습의 출발점은 관점의 전환이었다. 이상치(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): 경계값으로 눌러 담음 — 데이터 수는 유지, 극단만 완화
정답은 없고 맥락에 달렸다는 것, 그리고 처리 전/후 분포를 반드시 비교해 영향을 확인해야 한다는 것을 배웠다.
정리
"면적은 큰데 싼 집"처럼 이상치 뒤에는 종종 설명 가능한 이야기가 있다. 기계적으로 지우기 전에 산점도로 한 번 들여다보는 습관 — 이게 이후 EDA로 자연스럽게 이어졌다.