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개 이상 권장!
✅ 점검하기¶
- 이상값이란 무엇인가요?
정답 확인
대부분의 데이터와 동떨어진 튀는 값평균 ± 2×표준편차를 벗어나면?
정답 확인
이상값으로 판단합니다🔗 다음 장 미리보기¶
데이터 시각화를 배워요. 이상값을 그래프로 한눈에 확인해볼까요? 📊