반응형
정확도(accuracy), 정밀도(precision), 재현율(recall)
이번 실습에서는 간단한 분류 결과 확인 및 비교를 통해 분류 알고리즘 평가 지표인 정확도, 정밀도, 재현율 결과를 직접 계산해보겠습니다.


실습
10명의 친구들이 모여서 ‘마피아 게임’을 진행하려고 합니다. 게임의 룰은 마피아의 수가 시민 수보다 적어야 하며, 숫자는 정해지지 않았기 때문에 마피아의 수를 생각하고 정확히 마피아를 찾아서 없애야 게임에서 승리할 수 있습니다. 추리를 통해 예측된 결과와 실제 값을 비교하여 혼동행렬을 출력해보고, 결과를 분석해 보겠습니다.
- 실행 버튼을 클릭하여 마피아(mafia)와 시민(not mafia)으로 분류된 혼동 행렬을 확인합니다.
- 실행 결과값을 토대로 마피아를 제대로 분석했는지에 대한 accuracy, precision, recall을 계산하여, 각각 변수에 저장합니다.
import pandas as pd
def main():
# 실제 값
y_true = pd.Series(
["not mafia", "not mafia", "mafia", "not mafia", "mafia",
"not mafia", "not mafia", "mafia", "not mafia", "not mafia"]
)
# 예측된 값
y_pred = pd.Series(
["mafia", "mafia", "not mafia", "not mafia", "mafia",
"not mafia", "not mafia", "mafia", "not mafia", "not mafia"]
)
print("1. 혼동 행렬 :\n",pd.crosstab(y_true, y_pred, rownames=['실제'], colnames=['예측'], margins=True))
"""
1. 실행 버튼을 클릭하여
마피아(mafia)와 시민(not mafia)으로 분류된 혼동 행렬을 확인합니다.
"""
"""
2. 실행 결과값을 토대로
마피아를 제대로 분석했는 지에 대한
accuracy, precision, recall을 구합니다.
"""
accuracy = (2+5)/10
precision = 2/4
recall = 2/3
print("\naccuracy : ", accuracy)
print("precision : ", precision)
print("recall : ", recall)
return accuracy, precision, recall
if __name__ == "__main__":
main()
반응형
'AI & 머신러닝 coding skill' 카테고리의 다른 글
머신러닝 분류 - 혼동 행렬(Confusion matrix) (0) | 2022.05.24 |
---|---|
머신러닝 분류 - 사이킷런을 활용한 나이브 베이즈 분류 (0) | 2022.05.24 |
머신러닝 분류 - 나이브 베이즈 분류 (0) | 2022.05.24 |
머신러닝 분류 - SVM(Support Vector Machine) (0) | 2022.05.24 |
머신러닝 Decision tree - 앙상블(Ensemble) 기법 - Bagging (0) | 2022.05.24 |
머신러닝 Decision tree - 앙상블(Ensemble) 기법 - Voting (0) | 2022.05.24 |
머신러닝 의사결정 나무(DecisionTree Classifier) - 분류 (0) | 2022.05.24 |
머신러닝 의사결정 나무(DecisionTree Regressor) - 회귀 (0) | 2022.05.24 |