<jupyter_start><jupyter_text>Scikit-Learn을 사용한 머신러닝 01장. 분류의 기초 6. 분류 성능 평가    - Confusion Matrix : 원래는 row, 예측은 column        - Binary Confusion Matrix : 클래스가 0, 1 두종류만 있는 경우    - 평가점수        - Accuracy        - Precision        - Recall        - Fall-out        - F1 score    - ROC 커브    - AUC 커브 : ROC 커브의 면적  Confusion Matrix<jupyter_code>from sklearn.metrics import confusion_matrix
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]

confusion_matrix(y_true, y_pred)

# 진짜 0은 2개, 1은 1개, 2는 3개<jupyter_output><empty_output><jupyter_text>Binary Confusion Metrix    클래스가 0과 1 두 종류 밖에 없는 경우에는 일반적으로 클래스 이름을 "Positive"와 "Negative"로 표시한다. 조금 더 희귀한 경우를 1 positive로 둔다.  평가 점수    - Accuracy 정확도 : 맞춘것/전체    - Precision : 실제 P / 예측 P    - Recall : 예측 P/ 실제 P    - Fall out : 예측 P / 실제 N    - F1 score : 2 (precision*recall) / precision+recall, 가중 조화 평균 둘중 큰값보다 작은 값으로 더 가깝게 측정이 된다.     sklearn 의 metrics 패키지에서 precision, recall, F1 score 를 구하는 classification_report 명령을 제공한다.        각각의 클래스를 양성으로 보았을 때의 정밀도 재현율 F1 스코어 구하고 평균값으로 전체 모형의 성능을 평가한다.        다중 클래스의 경우 전체 모형에 대해 정밀도, 재현율, 위양성률 구할 수 없기 때문에 OvR 문제를 풀고 각각에 대해 값을 구한다.<jupyter_code>from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
y_true = [0, 0, 0, 1, 1, 0, 0]
y_pred = [0, 0, 0, 0, 1, 1, 1]
confusion_matrix(y_true, y_pred)
print(classification_report(y_true, y_pred, target_names=['class 0', 'class1']))
y_true = [0, 0, 1, 1, 2, 2, 2]
y_pred = [0, 0, 1, 2, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names = target_names))<jupyter_output>precision    recall  f1-score   support

    class 0       1.00      1.00      1.00         2
    class 1       0.50      0.50      0.50         2
    class 2       0.67      0.67      0.67         3

avg / total       0.71      0.71      0.71         7
{'fraction_non_alphanumeric': 0.09592711682743837, 'fraction_numerical': 0.05787781350482315, 'mean_word_length': 2.3822463768115942, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '357845', 'license': 'MIT', 'n_tokens_mistral': 1030, 'n_tokens_neox': 1111, 'n_words': 259, 'path': '09_classification/00_basis_of_classification/06_classification_performance_test.ipynb', 'repo_name': 'hyelansgithub/fastcampus-math', 'size': '1866'}