ML 분류 평가지표 - 정확도 Accuracy
머신러닝은 데이터 가공/변환 ▶ 모델 학습/예측 ▶ 평가 로 구성
<분류의 성능 평가 지표>
- 정확도 (Accuracy)
- 오차행렬 (Confusion Matrix)
- 정밀도 (Precision)
- 재현율 (Recall)
- F1 스코어
- ROC AUC
<정확도(Accuracy)>

- 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표
- 이진 분류의 경우 이거 하나만 하지 않는다. 왜냐면 성능을 왜곡할 수 있기 때문에.
> 타이타닉 예시를 보면 여자가 남자보다 생존확률이 높았다보니
무조건 여자가 생존, 남자가 사망으로 예측해도 꽤나 높은 정확도가 나올 수 있음.
그래서 한번 코드를 통해 살펴 보자면 ▼ ▼

분류를 하는데 fit을 하지 않고 'Sex' 피처가 1이면 0, 그렇지않으면 0으로 예측하는 단순한 Classifier,
'MyDummyClassifier'라는 클래스를 입력해보았다.
BaseEstimator가 무엇인지 궁금해서 찾아보니 Classifier를 비슷하게 구현하기 위해 상속받기 위해 불러온 API였다.
그래서 이렇게 생성된 것을 토대로 예측해보았다.

그저 0과 1로만 했을뿐인데도 정확도는 78%나 나왔음.
▶ 이렇게 불균형한 레이블 값 분포에서는 정확도는 적절한 평가 지표가 아니다.
불균형한 데이터 세트일 때 예측과 평가 또다른 예시 - MNIST

와아.. 내가 다 육성으로 놀램
90%나 나오다니 ㅎㅎㅎㅎㅎㅎㅎ
75-76행에서 만든 걸로 모든 결과를 0으로 반환했음에도 불구하고 정확도가 90%나 나왔다!
▶ ▶ ▶ 잊지말자, 불균형한 레이블 데이터 세트에서는 정확도를 성능 수치로 사용하면 안된다.
그래서 알아보기 오차행렬.
ADsP할때도 열심히 외웠고, 수업시간에도 했었던 Confusion Matrix. 혼동행렬.
이미 한차례 정리를 했었다. https://dev-adela.tistory.com/163
그렇지만 좀 더 꼼꼼히 공부해보쟈