일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 딥러닝
- 파이썬간단한게임
- 기본기
- 독학
- 파이썬
- 파이썬독학
- 머신러닝
- Selenium
- STT
- 구글일정
- 빅데이터
- 간단한파이썬게임
- 파이썬게임
- 오늘배워오늘쓰는
- 소스코드
- Ai
- Python
- OpenAPI
- 구글캘린더
- 크롤링
- 구글
- 인공지능
- 파이썬게임만들기
- kakao
- 자동화
- 카카오
- 음성인식
- Quickstart
- 웹크롤링
- 업무자동화
Archives
- Today
- Total
ai-creator
[머신러닝 기초] 다중분류(multi-class) 성능평가 - recall과 precision 본문
데이터 분석/왕초보를 위한 머신러닝
[머신러닝 기초] 다중분류(multi-class) 성능평가 - recall과 precision
ai-creator 2021. 10. 16. 10:12반응형
class가 3개 이상인 경우 다중분류라고 하는데, 이때의 confusion matrix와 recall, precision을 구해보자. 원리는 binary 분류와 동일하다.
기본 개념이 없다면, binary분류부터 확인하고 온다.
> https://ai-creator.tistory.com/578?category=875603
1) 다중분류
고양기, 강아지, 물고기 이렇게 3종류를 분류하는 알고리즘이 있다.
그리고, 예측값과 실제값이 아래와 같다고 가정해보자.
다중 클래스는 OvR(One-vs.-Rest) 문제로 자기 클래스는 Positive, 나머지는 모두 Negative로 하여 계산을 하면 된다.
2) Precision, Recall 구하기
지난 시간에 accuracy, precision, recall을 아래와 같이 배웠다.
2-1) 재현율(Recall)
고양이라고 잘 맞췄으면 TP, 아니면 모두 FP로 분리하면 된다.
(녹색은 TP, 빨간색은 FP로 표기하였다.)
그렇다면, 고양이의 재현율은 1/2가 된다.
이와 동일하게 강아지, 물고기도 구해보자
그렇다면, 이 재현율을 어떻게 하면 좋을까? 평균을 내면 된다!
((1/2)+(1/2)+(2/3))/3 = 0.555 가 나온다.
2-2) 정밀도(Precision)
정밀도도 동일한 방식으로 계산을 하면 된다.
최종 정밀도는 이 값을 평균을 내면 된다.
((1/1)+(1/3)+(2/3))/3 =0.666
3) Sklearn에서 구현
precision_score, recall_score를 호출할 시에는 average 파라메터를 "macro"로 세팅을 해주면, "평균"을 의미한다.
from sklearn.metrics import precision_score , recall_score , confusion_matrix
y_true = [0, 0, 1, 1, 2, 2, 2]
y_pred = [0, 1, 1, 2, 2, 2, 1]
print(confusion_matrix(y_true, y_pred))
precision = precision_score(y_true, y_pred,average= "macro")
recall = recall_score(y_true, y_pred,average= "macro")
print('정밀도: {0:.4f}, 재현율: {1:.4f}'.format(precision, recall))
결과
반응형
'데이터 분석 > 왕초보를 위한 머신러닝' 카테고리의 다른 글
Comments