콘텐츠로 이동

Chapter 15: 이상값 탐지 - 데이터 속 특별한 순간 찾기

🎯 이 장에서 배우는 것

  • [ ] 정상 범위와 이상값의 개념을 설명할 수 있다
  • [ ] 평균과 표준편차로 이상값을 탐지할 수 있다

⏱️ 예상 학습 시간: 약 15분


📚 핵심 개념

개념: 이상값(Outlier)

비유: 이상값은 마치 반 평균 키가 160cm인데 혼자 190cm인 친구와 같아요!

정확한 정의: 대부분의 데이터와 동떨어진 튀는 값

flowchart LR A[보통 데이터] --> B[평균 근처] C[이상값] --> D[평균에서 멀리!] style C fill:#ffcdd2,stroke:#c62828 style D fill:#ffcdd2,stroke:#c62828

판단 기준: 평균 ± (표준편차 × 2) 범위를 벗어나면 이상값!


🔨 따라하기

Step 1: 온도 데이터에서 이상값 찾기

코드:

import numpy as np

# 온도 데이터 (하나가 이상함!)
temps = [22, 23, 21, 22, 35, 23, 22]

mean = np.mean(temps)      # 평균
std = np.std(temps)        # 표준편차

print(f"평균: {mean:.1f}°C")
print(f"정상 범위: {mean-2*std:.1f} ~ {mean+2*std:.1f}°C")

# 이상값 찾기
for t in temps:
    if abs(t - mean) > 2 * std:
        print(f"🚨 이상값 발견: {t}°C")

실행 결과:

평균: 24.0°C
정상 범위: 14.5 ~ 33.5°C
🚨 이상값 발견: 35°C

Step 2: 의미 해석하기

35°C가 발견됐어요! 왜 그랬을까요? - 에어컨 고장? 🔧 - 창문 열림? 🪟 - 센서 오류? ⚠️

💡 이상값은 오류일 수도, 중요한 사건일 수도 있어요!


📝 전체 코드

import numpy as np

temps = [22, 23, 21, 22, 35, 23, 22]
mean = np.mean(temps)
std = np.std(temps)

for t in temps:
    if abs(t - mean) > 2 * std:
        print(f"🚨 이상값: {t}°C")

⚠️ 주의할 점

데이터가 너무 적으면 평균/표준편차가 부정확해요. 최소 10개 이상 권장!


✅ 점검하기

  1. 이상값이란 무엇인가요?
정답 확인대부분의 데이터와 동떨어진 튀는 값
  1. 평균 ± 2×표준편차를 벗어나면?
정답 확인이상값으로 판단합니다

🔗 다음 장 미리보기

데이터 시각화를 배워요. 이상값을 그래프로 한눈에 확인해볼까요? 📊