들어가기 전!
데이터 분석시 자주 쓰이는 간단한 수학 표기를 알아봅시다.
표기법 |
의미 |
$$I_n$$ |
n*n 차원 항등행렬 |
$$\mathbb{R}^n$$ |
n차원 실수 벡터 집합 |
$$A^T$$ |
행렬 A의 전치 |
$$A^{-1}$$ |
행렬 A의 역행렬 |
$$tr(A)$$ |
행렬 A의 대각성분 합 |
$$\frac{\partial f}{\partial x}$$ |
함수 f의 x에 대한 미분 |
$$\frac{\partial f}{\partial x_i}$$ |
다차원 입력 함수 f의 xi에 대한 편미분 |
$$\bigtriangledown f$$ |
함수 f의 기울기 |
$$P(X)$$ |
조건 X가 일어날 확률 |
$$P(X|Y)$$ |
Y가 참일 때 X가 일어날 조건부 확률 |
1. 기계학습(Machine Learning)의 종류
(1-1) 지도 학습(supervised learning)
입력(문제)과 대응하는 출력(답)을 데이터로 제공하고 대응관계의 함수 또는 패턴을 찾는 것
분류와 회귀가 이에 해당한다.
- 분류(classification): 출력이 정해진 부류(class, category) 중 하나로 결정
- 회귀 분석(regression): 출력이 연속인 영역의 값 결정
(1-2) 비지도 학습(unsupervised learning)
답이 없고 문제들만 있는 데이터들로부터 패턴을 추출하는 것(데이터만 주어진 상태, 출력에 대한 정보 없음)
지도학습과 달리, 외부에서 정답이 주어지지 않고 학습 알고리즘이 스스로 입력으로부터 구조를 발견하는 학습
- 군집화: 주어진 데이터를 특성에 따라 둘 이상의 그룹으로 나누는 것
(1-3) 반지도 학습(semi-supervised learning)
입력에 대한 결과값이 없는 미분류 데이터를 학습 데이터로 사용하는 방법
분류 경계가 인접한 데이터들이 동일한 집단에 소속하도록 학습
일부 학습 데이터들만 출력값이 주어진 상태
(1-4) 강화학습(reinforcement learning)
문제에 대한 직접적인 답을 주지 않음. 경험을 통해 기대 보상이 최대가 되는 정책을 찾는 학습
학습/행동의 주체(agent)가 환경과 상호작용한 뒤 보상에 따라 행동을 결정하는 정책을 바꾸어 나가는 방식
2. 모델의 성능 평가
모델의 성능 평가는 예측모델의 성능평가와 분류모델의 성능평가로 나눌 수 있다.
(2-1) 예측모델의 성능평가
들어가기 전 간단한 용어 설명 시간
알고 있다면 넘어가자.
더보기
편차(deviation): $(x_i-x)$
설명: 자료가 평균을 중심으로 얼마나 광범위하게 분포하고 있는지 나타낸다.
잔차(residuals): $e_i=y_i-\hat{y_i}$
설명: 회귀모형에서 사용(회귀모형의 적합도 평가)
오차(error): $e_i=y_i-\hat{y_i}$
설명: 데이터마이닝 성능평가에서 사용(모형의 성능 평가)
예측모델의 평가 척도는 아래 3개를 사용한다.
➊ 평균오차(Average Error; AE): $AE=\frac{1}{n}\sum_{i=1}^{n}e_i$
예측이 평균적으로 반응의 예측을 초과하는지(미달하는지) 확인
➋ 절대평균오차(Mean absolute Error; MAE): $MAE=\frac{1}{n}\sum_{i=1}^{n}|e_i|$
평균절대오차의 크기
➌ 평균백분율오차(Mean Percentage Error; MPE): $MPE=100\times\frac{1}{n}\sum_{i=1}^{n}\frac{e_i}{y_i}$
오차의 방향을 고려하여 예측이 실제 값에서 얼마나 벗어나는지에 대한 백분율
(2-2) 분류모델의 성능평가
분류모델의 성능평가는 정오행렬에서 기반한 척도를 사용한다.
잠깐! 정오행렬이란? 이진 분류기의 성능 평가 시 사용하는 혼동행렬(confusion matrix)이다.
|
예측 |
|
|
양성 |
음성 |
실제 |
양성 |
진양성(TP) |
위음성(FN) |
음성 |
위양성(FP) |
진음성(TN) |
- 민감도(sensitivity)/재현율(recall)/진양성율(TPR) = $\frac{TP}{TP+FN}$
- 특이도(specificity)/진음성률(TNR) = $\frac{TN}{FP+TN}$
- 정밀도(precision) = $\frac{TP}{TP+FP}$
- 음성 예측도 = $\frac{TN}{TN+FN}$
- 위양성률 = 1-특이도 = $\frac{FP}{FP+TN}$
- 위발견률 = 1-정밀도 = $\frac{FP}{TP+FP}$
- 정확도 = $\frac{TP+TN}{TP+FP+FN+TN}$
- F1 score = $2\frac{(정밀도)*(재현율)}{(정밀도)+(재현율)}$
- ROC 곡선: (위양성률 FPR, 민감도 TPR) 그래프
- AUC: ROC 곡선에서 곡선 아래 부분의 면적으로, 클수록 좋은 모델이다.
출처: 네이버 지식백과
추가 동영상
더보기
ROC 곡선의 X축과 Y축은 각각 FPR, TPR이다. 이것은 무엇을 의미하냐면...
TPR: 실제로 양성인 개체 중 예측을 양성으로 한 것(민감도)
FPR: 실제로 음성인 개체 중 예측을 양성으로 한 것(1-특이도)
그렇기 때문에 ROC곡선이 직선의 형태이면 최악의 상태인 것
더보기
재현율과 정밀도의 비교
재현율=민감도: 실제로 양성인 개체 중 예측을 양성으로 한 것
정밀도: 예측을 양성으로 한 개체 중 실제로 양성인 것
3. 훈련과 검증
이상적인 분류기는... 학습에 사용되지 않은 데이터에 대해 분류를 잘 하는 것!
즉 일반화 능력이 좋은 것을 목표로 한다.
(3-1) 데이터의 구분
➊ 학습 데이터: 분류기를 학습하고 모델을 구축하는 데 사용하는 데이터 집합, 많을수록 유리하다
➋ 테스트 데이터: 예측 및 분류의 성능을 평가하는 데 사용되는 데이터 집합. 학습에 사용x
➌ 검증 데이터: 학습데이터로 구축된 여러 모델의 성능을 비교하는 데 사용되는 데이터 집합. 특정 알고리즘(의사결정나무, K-최근접이웃 등)
(3-2) K-겹 교차검증(K-fold cross validation)
언제? 데이터가 부족한 경우
어떻게? 전체 데이터를 k등분, 각 등분을 한 번씩 test data로 사용하여 성능 평가 후 평균값 선택
(3-3) 적합
➊ 과잉 적합(Overfitting): 학습 데이터에서는 성능이 뛰어나지만 일반화했을 때 성능이 잘 나오지 않는 모델
원인: 학습에 사용된 데이터가 너무 적음, 모델이 너무 복잡함(학습용 데이터에 완전히 적합)
➋ 과소 적합(Underfitting): 학습 데이터에서도 성능이 좋지 않은 모델(모델 자체가 적합하지 않음)
원인: 모델이 지나치게 단순한 경우, 예측을 제대로 할 수 없는 특징들만 제공
➌ 일반화(Generalization): 학습을 통해 모델의 파라미터를 결정, 학습하지 않은 데이터에 모델을 적용하여 값을 예측하거나 분류를 수행하는 것