Processing math: 100%
본문 바로가기
python/핸즈온 머신러닝

[핸즈온 머신러닝] 3장. 분류

by _avocado_ 2021. 1. 31.
1. MNIST 데이터

0~9까지 손글씨 70000개의 데이터를 가지고 있다. (28*28)

 

픽셀은 흑백으로 0~255까지의 값을 갖는다.


2. 이진 분류

A or B, True or False 등 2가지 lable로 나누는 분류를 이진 분류라 한다.


3. 성능 검증 

▶ 오차 행렬

 

- 검증을 시행했을 때 결과를 행렬로 만든다.

 

오차 행렬

진짜 음성(TN) : 실제 FALSE를 FALSE로 예측한 경우

가짜 음성(FN) : 실제 TURE를 FALSE로 예측한 경우

가짜 양성(FP) : 실제 FALSE를 TURE로 예측한 경우

진짜 양성(TP) : 실제 TRUE를 TURE로 예측한 경우

 

정확도: 전체 중 맞춘 값(TN, TP)의 비율 = (TN+TP)/total

 

정밀도: TRUE로 예측한 것 중 맞춘 값(TP)의 비율 = TP/(TP+FP)

 

재현율: 실제 TRUE 중에서 맞춘 값(TP)의 비율 = TP/(TP+FN)

 

● 임계값(threshold)

 

분류에서 모델의 결과가 점수로 나오게 된다. (ex. 이 그림은 5일 가능성이 0.8이다.)

 

TRUE라고 판단하는 점수의 기준을 정해 문제에 맞는 모델로 사용할 수 있다.

 

임계값을 높이면 까다로운 모델이 된다.(정밀도가 높아진다.)

● 정밀도와 재현율 트레이드오프

 

훈련된 모뎅리 데이터를 분류할 때 결정 함수를 이용하여 샘들의 점수를 매긴 뒤 점수에 따라 분류한다.

 

기준점수를 조정하여 정밀도와 재현율을 조절할 수 있다. (결정 임계값)

 

기준 점수를 높이면 확실한 샘플만 TRUE로 분류하기 때문에 정밀도가 높아지지만 재현율은 떨어진다.

 

기준 점수를 낮추면 조금만 비슷해도 TRUE로 분류하기 때문에 재현율은 높아지지만 정밀도는 떨어진다.

 

정밀도와 재현율이 한쪽을 높이면 다른 쪽이 떨어지는 것을 트레이드 오프라 한다.

 

프로젝트마다 정밀도와 재현율 중 중요한 것에 초점을 맞추어 조절한다.

파랑: 정밀도, 초록: 재현율, X축: 결정임계값

 

● F score: 정밀도와 재현율의 가중 조화 평균 (중요한 것에 초점을 맞춘다.)

 

0 ~ 1 사이의 값을 가지며 1에 가까울수록 좋다. 

 

Fscore=2αpricision+1αrecall=(β2+1)×precision× recallβ2× precision+recall,(β2=1αα)

 

● ROC 곡선

 

가짜 양성 비율에 대한 진짜 양성 비율(재현율)의 곡선이다.

 

X축: 가짜 양성 비율, TRUE로 판단했으나 실제 FALSE인 경우

 

Y축: 진짜 양성 비율, TURE로 판단했고 실제 TRUE인 경우

 

곡선이 왼쪽 위로 갈수록 (직각삼각형에 가까울수록) 좋은 결과다.

 

AUC: 곡선 아래와 점선 사이의 넓이를 나타낸다. (0.5가 이상적인 분류기 결과)

ROC 곡선


 4. 다중 분류

lable의 종류가 3개 이상인 분류 문제를 말한다.

 

분류기 모델에 따라 다중 lable을 한 번에 처리하는 방식과 이진 분류기 여러 개를 합친 방식이 존재한다.

 

▶ OvR(or OvA)

 

lable의 개수만큼 이진 분류기를 훈련한 뒤 샘플에 대한 점수를 매기고 가장 높은 점수를 갖는 결과를 선택한다.

 

예) 0~9까지 0인지 아닌지, 1인지 아닌지 ··· 9인지 아닌지 (총 N개의 분류기를 훈련한다.)

 

▶ OvO

 

전체 lable에서 2개의 값을 구분하는 이진 분류기를 훈련한 뒤 그에 따른 점수를 통해 결과를 선택한다.

 

예) 0~9중 2개 선택, 0인지 1인지, 1인지 2인지 ··· 8인지 9인지 (총 N(N-1)/2개의 분류기를 훈련한다.)


5. 에러 분석

▶ 다중 분류에 대한 오차 행렬을 만들어 확인한다.

 

행은 실제값, 열은 예측값을 나타낸다.

2가지 종류의 오차 행렬

왼쪽: 행 단위에서 비율을 계산하여 시각화, 밝을수록 해당 값의 비율이 높다.(대각선: 정답)

 

오른쪽: 대각선을 제외하고 행별 비율을 나타낸 오차 행렬, 오차 중 비율이 높은 것을 알 수 있다. 

 

오른쪽 그림에서 5행 8열이 밝다. 이는 실제값 5를 8로 잘못 예측한 비율이 높다는 것을 말한다.

 

오차 행렬을 통해 어떤 종류의 오차가 발생하는지를 알 수 있다.


6. 다중 레이블 분류와 다중 출력 분류

▶ 다중 레이블 분류: 이진 분류 lable이 여러 개인 분류이다.(ex. 사진에서 사람 A, B, C의 존재 유무 판단)

 

▶ 다중 출력 분류: 다중 분류 lable이 여러 개인 분류이다.(다중 출력 + 다중 레이블, ex. 이미지 잡음 처리)


7. 데이터 증식

훈련 데이터가 부족할 때 사용하는 방법이다.

 

이미지 분류에서 그림은 상하 좌우로 움직이거나 크기를 조절하는 등의 작업을 통해 데이터의 양을 늘릴 수 있다.

댓글