3.3 분류기의 성능측정
3.3.1 교차검증을 사용한 정확도 측정
분류기의 정확도 성능지표의 단점 : MNIST의 경우 0~9의 category가 있고, 5인지 아닌지를 판단하는 분류기의 경우,
5가 아닐확률이 90%의 확률이므로 굉장히 불균형한 데이터셋이다. 이런 데이터셋을 다룰 때 특히 정확도를 성능 측정 지표로 선호하지 않는다.
3.3.2 오차 행렬
분류기의 성능평가는 오차 행렬confusion matrix을 이용한다.
아이디어는 오차 행렬에 A 샘플이 B로 분류된 횟수를 저장한다. -> 5가 3으로 인식된 경우 : 행렬의 5행 3열을 관찰한다.
오차행렬을 통한 정밀도precision 측정 : TP / TP + FP (TP : 양성의 수, FP : 거짓 양성의 수)
재현율recall = 민감도sensitivity = 진짜 양성 비율True Positive Rate(TPR) : TP / TP + FN (FN : 거짓 음성의 수)
ex) 5인지 판별하는 분류기의 경우
양성의 수 TP : 5를 5로 정확히 판별한 경우
음성의 수 TN : 5가 아닌 수를 5로 판별하지 않은 경우
거짓 양성의 수 FP : 5가 아닌수를 5로 판별한 경우
거짓 음성의 수 FN : 5를 정확히 판별하지 못한 경우
정확도와 재현율을 F1 점수라는 하나의 숫자로 만든다.
정밀도와 재현율이 비슷하게 높으면 F1 점수도 올라간다. 하지만 이것이 절대적인 점수인건 아니다.
상황에 따라 정밀도가, 재현율이 중요할 수 있다.
ex) 어린아이에게 나쁜 동영상을 필터링해주는 경우, 재현율 보다는 정밀도가 더 중요시된다. 나쁜 동영상을 제대로 판단하는 것이 중요하기 때문에.
3.3.4 정밀도 / 재현율 트레이드 오프
SGDClassifier 는 결정함수decision function을 사용하여 각 샘플의 점수를 계산한다. 결정 임계값decision threshold이 올라가면 정밀도가 높아지고 재현율이 줄어든다. 반대로 내려가면 정밀도가 낮아지고 재현율이 올라간다.
적당한 임계값 : 재현율에 대한 정밀도 그래프를 보면, 80%부근에서 급격하게 하강하는 부분이 있는데, 하강 직전의 값이 가장 적합하다. 약 60%부근
낮은 재현율에서의 높은 정밀도는 의미없다!
3.3.5 ROC 곡선
수신기 조작 특성Receiver Operating Characteristic(ROC) : 이진 분류에서 널리 사용하는 거짓 양성 비율(False Positive Rate)에 대한 진짜 양성 비율(True Positive Rate) 곡선이다.
거짓 양성 비율FPR = FP / FP + TN
진짜 양성 비율TPR = TP / TP + FN : 재현율
진짜 음성 비율TNR = TN / FP + TN = 1 - FPR = 특이도specificity
트레이드 오프
TPR재현율 이 높을수록, 분류기가 만드는 거짓 양성 비율FPR이 늘어난다.
좋은 분류기는 진짜 양성 비율 = 거짓 양성 비율 인 선에서 최대한 멀리 떨어져야한다.
곡선아래의면적area under curveAUC을 측정하면 분류기들을 비교할수 있다.
ROC vs PR 곡선
양성 클래스가 드물거나, 거짓 음성보다 거짓 양성이 더 중요할때 PR 곡선을 이용하고, 그이외에 ROC곡선을 사용한다.
ROC의 경우 양성클래스가 드물면 좋은 분류기 처럼보인다.
3.4 다중 분류
다중분류기multiclass classifier는 2개 이상의 클래스를 구별하는 분류기이다.
SGD, RandomForest, naive Bayes 분류기 같은 일부 알고리즘은 여러개의 클래스를 직접 처리가능하지만,
로지스틱 회귀, 서포트 벡터 머신같은 분류기는 이진 분류만 가능하다.
이진분류기를 여러개 사용해서 다중클래스를 분류하는 방법도 있다.
- 이미지를 분류시 각 분류기의 결정 점수 중 가장 높은 것을 클래스로 선택한다. 이를 One-Verus-the-Rest라고 한다.
- 0과 1구별, 0과 2구별, .... N개의 클래스라면 N(N-1)/2 개의 분류기가 필요하다. One-Verus-One
ovo의 장점 : 전체 훈련 세트를 사용할 필요없이 해당하는 2개의 클래스만 가지고 훈련시키면 된다.
3.5 에러 분석
분류의 경우 confusion_matrix를 통해서 이미지의 에러를 파악한다.
에러가 많은 클래스에 이미지가 부족하거나, 클래스를 잘 분류하지 못하는 경우를 확인한다.
confusion_matrix에서 파악한 에러 클래스를 추출해서 어떤 이유로 혼동하는지 파악한다.
에러를 파악했으면 예를 들어, 5인 이미지를 8로 혼동한다고 하면, 8처럼 생겼지만 8은 아닌 이미지를 추가하거나,
5의 이미지를 추가하거나, 분류기에 도움이 될만한 알고리즘을 추가한다.
또는, 이미지를 전처리하여 이미지를 중앙에 위치시키고, 회전되어 있지않도록 전처리하는 방법도 있다.
3.6 다중 레이블 분류
분류기가 샘플마다 여러 개의 클래스를 출력한다.
ex 여러 사람의 사진을 통해, 여러 인물의 존재여부를 나타내야 하는경우.
평가방법 :
각 레이블의 F1 점수 혹은 이진 분류지표를 사용하여 전체 평균 점수를 계산한다.
모든 레이블의 가중치가 같을수도 있지만, 보통 샘플수가 다르다면 많은 샘플이 더 높은 가중치를 가지게된다.
해결 : 레이블에 클래스 지지도support(타깃 레이블에 대한 샘플수)를 가중치로 주는 방법이 있다.
3.7 다중 출력 분류
다중 출력 다중 클래스 분류multiouput-multiclass classification, 다중 출력 분류multioutput-classification
한 레이블이 다중 클래스가 될 수 있도록 일반화 한것. 즉, 여러개의 레이블을 가지고 각 레이블은 여러개의 클래스를 가진다.
ex) 이미지 잡음 제거 시스템 :
입력 : 숫자 이미지
출력 : 픽셀의 강도를 담은 배열 -> 픽셀의 개수 = 레이블의 개수 , 각 픽셀의 값은 0~255의 값을 가짐.
결론
분류작업에서, 더좋은 측정지표, 정밀도/재현율 트레이드오프를 골라, 분류기를 선택한다.
여러종류의 분류작업에서, 적합한 분류시스템을 구축한다.