📜  在Python中计算分类报告和混淆矩阵(1)

📅  最后修改于: 2023-12-03 15:37:38.561000             🧑  作者: Mango

在Python中计算分类报告和混淆矩阵

在机器学习中,我们通常会用到分类算法来对数据进行分类,分类的结果可以用分类报告和混淆矩阵来评估算法的性能。在Python中,可以使用一些库来计算分类报告和混淆矩阵。

分类报告

分类报告包含准确率(precision)、召回率(recall)、F1值(F1-score)和支持度(support)。其中,准确率表示预测为正例的样本中,实际为正例的比例;召回率表示实际为正例的样本中,被预测为正例的比例;F1值是准确率和召回率的调和平均数,支持度表示每个类别中的样本数。

下面是使用scikit-learn库来计算分类报告的示例代码:

from sklearn.metrics import classification_report

y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]

target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))

运行结果:

              precision    recall  f1-score   support

     class 0       0.67      1.00      0.80         2
     class 1       0.00      0.00      0.00         2
     class 2       0.00      0.00      0.00         2

    accuracy                           0.33         6
   macro avg       0.22      0.33      0.27         6
weighted avg       0.22      0.33      0.27         6
混淆矩阵

混淆矩阵是一种用表格形式表示分类模型性能的矩阵。行表示实际类别,列表示预测类别。矩阵的对角线上的元素表示正确分类的样本数,非对角线上的元素表示错误分类的样本数。

下面是使用scikit-learn库来计算混淆矩阵的示例代码:

from sklearn.metrics import confusion_matrix

y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]

confusion_mat = confusion_matrix(y_true, y_pred)

print(confusion_mat)

运行结果:

[[2 0 0]
 [2 0 0]
 [1 1 0]]

以上就是在Python中计算分类报告和混淆矩阵的介绍。使用scikit-learn库可以方便地计算分类报告和混淆矩阵,对于评估分类算法的性能非常有帮助。