데이터 이상치, 3가지 탐지부터 제거·대체까지 실전 완벽 가이드!
게시일:
작성자: 자청의 유튜브 추출기
이상치, 너 정체가 뭐니? 🧐
저번 시간에 데이터에 빠진 값, 즉 결측치에 대해 알아봤지? 이번 시간에는 데이터에서 다른 값들과 너무 동떨어진, 이상치라는 녀석들을 어떻게 다룰지 배울 거야.
이상치, 왜 생기는 걸까? 🤔
이상치는 말 그대로 다른 값들과 비교했을 때 엄청나게 크거나 작은 값을 말해. 왜 생기냐면,
- 입력 실수: 데이터를 입력하다가 오타를 낸 경우
- 측정 오류: 기계나 사람이 측정할 때 잘못된 경우
- 특별한 상황: 값 자체는 맞지만, 정말 특이하고 특별한 상황이라서 다른 값들과 많이 다른 경우
이런 이상치들은 우리가 데이터를 분석하거나 모델을 만들 때 결과에 큰 영향을 줄 수 있어. 그래서 데이터를 깨끗하게 정리하는 과정에서 꼭 확인하고 처리해줘야 해.
이상치, 어떻게 찾지? 👀
이상치를 찾는 방법은 여러 가지가 있는데, 대표적인 것들을 알아볼게.
-
박스 플롯 (Box Plot):
- 데이터의 분포를 그림으로 보여주는 거야.
- 보통 데이터들이 모여있는 상자(박스)와 거기서 길게 뻗어 나온 수염(whisker)이 있어.
- 이 수염 밖으로 점으로 찍혀서 나오는 값들이 바로 이상치야!
- 나이 데이터에서 2개, 소득 데이터에서 2개, 그리고 아래쪽에도 1개가 이상치로 나왔네.
-
IQR (사분위수 범위):
- 데이터를 4등분했을 때, 가운데 두 개(25% ~ 75%)의 범위를 말해.
- 이 IQR 범위를 벗어나는 값들을 이상치로 볼 수 있어.
- 보통 IQR의 1.5배를 기준으로, 이보다 더 작거나 더 큰 값들을 이상치로 판단해.
- 계산을 통해 이상치의 범위를 구하고, 그 범위를 벗어나는 값들을 찾아낼 수 있어.
-
Z-스코어 (Z-score):
- 어떤 값이 평균으로부터 표준편차 몇 개만큼 떨어져 있는지를 나타내는 값이야.
- 예를 들어, 평균 나이가 35인데 어떤 사람 나이가 45라면, 표준편차가 5라면 평균에서 2개 표준편차만큼 떨어져 있는 거지. 이때 Z-스코어는 2가 돼.
- 일반적으로 Z-스코어의 절댓값이 3보다 크면 이상치로 간주해.
- 나이에 90과 95를 넣었더니 Z-스코어 절댓값이 3보다 큰 두 개의 값이 정확하게 찾아졌어.
IQR vs Z-스코어:
- IQR: 데이터 분포가 정규분포가 아니어도 괜찮고, 극단적인 값에 덜 영향을 받아.
- Z-스코어: 계산이 빠르고 좋지만, 데이터가 정규분포를 따른다고 가정할 때 더 잘 맞아.
이상치, 어떻게 처리하지? 🛠️
이상치를 찾았다면 이제 어떻게 할지 결정해야 해. 크게 두 가지 방법이 있어.
-
삭제 (Deletion):
- 이상치를 그냥 데이터에서 없애버리는 거야.
- 예를 들어, 50개의 데이터 중에 3개의 이상치를 삭제했더니 47개가 남았어.
- 이상치를 삭제한 후에 박스 플롯을 다시 그려보니 이상치가 사라진 걸 볼 수 있지!
-
대체 (Imputation):
- 이상치를 삭제하는 것보다 대체하는 방법을 더 많이 사용해. 왜냐하면 이상치라고 해서 무조건 잘못된 값은 아닐 수 있거든.
- 평균값이나 중앙값으로 이상치를 바꿔주는 거야.
- 소득 데이터에서 이상치를 중앙값으로 대체했더니, 이상치가 있던 부분이 골고루 채워진 걸 볼 수 있어.
실제 데이터로 연습해보기! 🚢
이제 타이타닉 데이터를 가지고 이상치를 찾아볼 거야.
- 먼저 박스 플롯으로 이상치가 어떻게 분포하는지 확인해봤어.
- IQR 방식으로 이상치를 찾아봤더니 총 116개의 이상치가 검출되었대.
- 이 116개를 제거했더니 원래 891개 데이터에서 775개가 남았어.
마무리하며 💡
오늘 우리는 이상치가 무엇인지, 왜 생기는지, 어떻게 찾고 처리하는지에 대해 배웠어.
- 이상치 탐지: 박스 플롯, IQR, Z-스코어 등
- 이상치 처리: 삭제 또는 대체 (대체가 더 많이 쓰임!)
기억해야 할 점:
- 이상치는 오류가 아닐 수도 있으니 맥락을 고려해서 처리해야 해.
- 단순히 삭제하는 것보다 대체하는 것이 더 좋은 경우가 많아.
- 두 가지 이상의 방법으로 이상치를 탐지하면 더 믿을 수 있는 결과를 얻을 수 있어.
- 시각화 (박스 플롯, 히스토그램)를 통해 데이터 분포를 확인하는 것도 중요해.
결측치에 이어 이상치까지 배웠으니, 이제 데이터를 더 깨끗하게 만들 준비가 된 거야! 수고 많았어!