카테고리 없음

[요약] 핸즈온 머신러닝 - 03. 분류

소년택이 2022. 5. 4. 00:14
  • MNIST
  • MNIST 는 손으로 쓴 숫자 70000개 데이터로 ML 계의 hello world 라고 할 법 하다.
  • 70,000개 (훈련 60천개, 테스트 10천개)의 28 * 28 이미지와 레이블로 구성되어있다.
  • https://openml.org 을 통해 제공받을 수 있다.
  • sklearn 은 fetch_openml 함수를 제공한다.

 

이진 분류기 훈련

확률적 경사하강법 (SGD)

  • 경사하강법의 한계 인식
    • 학습률 작으면 : 시간 많이 걸리고, 지역 최적값에 수렴할 위험.
    • 학습률이 크면 : 시간이 적게 걸리지만, 발산할 위험 있음.
  • 매 배치마다 랜덤하게 선택한 점을 대상으로 경사 하강법을 수행.
  • 경사하강법 대비 매우 빠르지만, 매우 불안정함.
  • 불안정한 대신 지역 최적값을 회피할 가능성이 높음.
  • 랜덤 데이터 --> GPU 최적화 X.

 

이진 분류기의 성능 측정

교차 검증

  • recall vs precision 문제 발생.
  • "모든 숫자가 5가 아니다" 고 예측하는 경우 
    • accuracy 는 90%!!!
    • 하지만 전혀 precision 하지 않다.
  • 따라서 교차 검증으로는 이진 분류기를 제대로 평가할 수 없다.

 

오차 행렬

오차 행렬의 구성

False positive, False negative 를 고려하기 위해 {행:실제 클래스 / 열:예측한 클래스} 로 행렬을 구성한다.

실제 클래스 \ 예측한 클래스 FALSE TRUE
FALSE TN FP
TRUE FN TP

 

정밀도

$precision=\frac{TP}{TP+FP}$

정밀도: 얼마나 정확하게 Positive 를 짚어냈는가.

 

재현율

$recall=\frac{TP}{TP+FN}$

얼마나 많은 Positive 를 짚어냈는가.

 

F 점수

$F_{score}=\frac{1}{\frac{\alpha}{precision}+\frac{1-\alpha}{recall}}=(\beta^2+1)*\frac{precision*recall}{\beta^2*precision+recall}$

이때 $\beta^2=\frac{1-\alpha}{\alpha}$

정밀도와 재현율의 조화 평균. 정밀도와 재현율이 비슷할 수록 F1 점수가 높다. 하지만 모델의 특성에 따라 precision 이나 recall 중 어느 한쪽이 상대적으로 더 중요할 수 도 있다. Fscore에서 ${beta}$가 1 보다 크면 recall 을, 1 보다 작으면 precision 을 강조하며, ${beta}=1$ 일때 $F_{1}$ score 라고 한다.

 

트레이드오프

시스템의 목표마다 precision 이나 recall 중 우선시 하는 요소가 다르다. 둘 다를 완벽하게 만족할 수는 없으니, 어느것에 더 가중치를 두는가에 대한 선택 - trade off - 이 필요하다.

결정함수

분류 대상인 각 샘플의 점수.

결정임계값

positive, negative 를 구분하는 기준점. 점수가 결정임계값 보다 크다면 양성, 작다면 음성으로 판별한다. 일반적으로 결정임계값이 높아질 수록 precision 은 높아지고, recall 은 낮아지며 결정입계값이 낮아지면 반대의 양상을 띈다.

참고.
결정임계값이 높아져도 precision 이 낮아질 수 있다 : 5개의 샘플이 점수 순서대로 TFTTT 로 존재한다면? 현상태의 precision은 80% 지만 결정임계값을 높이면 FTTT 가 되어 오히려 75%로 낮아진다. 하지만 전체적인 추세로 볼때 일관성을 유지한다.

판단 도구

PR 곡선

  • Precision vs. Recall 그래프.
  • 재현율이 높아질때 정밀도가 어떻게 변하는지 추이를 나타낸다.
  • 추세를 보고 적당한 선에서 타협한 임곗값을 선택한다.

ROC 곡선

  • Receiver Operating Characterstic (수신기 조작 특성)
  • 거짓양성비율(FPR) vs. 진짜양성비율(TPR).
  • FPR = 1 - TNR(진짜음성비율, 특이도)
  • 곡선이 좌상귀 쪽에 다가갈 수록, 곡선 아래 면적(AUC)이 넓을 수록 좋은 특성을 지닌 분류기라고 할 수 있다.

어떤걸 선택할 것인가?

  • 양성 클래스가 드물다 : PR 곡선. 재현율이 현저히 떨어질 수 있다.
  • 거짓 양성이 더 중요하다 : PR 곡선. ROC 는 거짓 양성 비율에 대한 해상도가 낮다.
  • 그 외 : ROC 곡선.

 

다중분류

두개 이상의 클래스를 구별할 수 있는 분류기. 분류기를 구성하는 방법에 따라 크게 두가지로 나뉜다.

OvA (One-Versus-All) 또는 OvR (One-Versus-the-Rest)

  • N 개의 클래스를 분류하기 위한 N 개의 분류기를 묶은 형태.
  • N 개의 분류기 중 최고점을 받은 클래스를 선택하는 전략.
  • OvO 대비 간단한 구조.

 

OvO (One-Versus-One)

  • 두개의 클래스를 비교하는 NC개의 분류기를 묶은 형태.
  • NC개의 분류기 중 최고점을 받은 클래스를 선택하는 전략.
  • 비교 대상인 두 클래스의 데이터만 필요하므로, 하나의 분류기가 학습하는데 OvA 대비 상대적으로 적은 데이터가 필요함.
    -> 데이터 크기에 민감한 분류기에 유리.

 

에러분석

  • 정답을 제대로 내었는지 검토하는것 만큼, 오답을 검토하는것도 중요하다.
  • 분류기 마다 특성이 다르므로, 유의미한 오답을 통해 적절한 분류기를 선택하기위한 통찰을 얻을 수 있다.
  • 필요하다면 전처리 과정을 고려할 수 도 있다.

 

그 외 분류기

다중 레이블 분류

하나의 샘플에 여러개의 클래스를 할당하는 경우.

 

다중 출력 분류

T.B.D