在此页面上,W3schools.com 与纽约数据科学院,为我们的学生提供数字培训内容。
它是一个用于分类问题的表格,用于评估模型中出现错误的位置。
这些行代表结果应有的实际类别。各列代表我们所做的预测。使用此表可以轻松看出哪些预测是错误的。
可以通过逻辑回归的预测来创建混淆矩阵。
现在,我们将利用 NumPy 生成实际值和预测值:
import numpy
接下来,我们需要生成 "actual" 和 "predicted" 值的数字。
actual = numpy.random.binomial(1, 0.9, size = 1000)
predicted = numpy.random.binomial(1, 0.9, size = 1000)
为了创建混淆矩阵,我们需要从 sklearn 模块导入指标。
from sklearn import metrics
导入指标后,我们可以对实际值和预测值使用混淆矩阵函数。
confusion_matrix = metrics.confusion_matrix(actual, predicted)
为了创建更易于解释的视觉显示,我们需要将表格转换为混淆矩阵显示。
cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [False, True])
可视化显示需要我们从 matplotlib 导入 pyplot。
import matplotlib.pyplot as plt
最后,为了显示绘图,我们可以使用 pyplot 中的函数plot()和show()。
cm_display.plot()
plt.show()
查看整个示例的实际效果:
import matplotlib.pyplot as plt
import numpy
from sklearn import metrics
actual = numpy.random.binomial(1,.9,size = 1000)
predicted = numpy.random.binomial(1,.9,size = 1000)
confusion_matrix = metrics.confusion_matrix(actual, predicted)
cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix, display_labels = [False, True])
cm_display.plot()
plt.show()
创建的混淆矩阵有四个不同的象限:
假阴性(左上象限)
误报(右上象限)
真阴性(左下象限)
真阳性(右下象限)
True 表示值被准确预测,False 表示存在错误或错误的预测。
现在我们已经制作了混淆矩阵,我们可以计算不同的度量来量化模型的质量。首先,让我们看看准确性。
广告
该矩阵为我们提供了许多有用的指标,帮助我们评估分类模型。
不同的衡量标准包括:准确度、精确度、灵敏度(召回率)、特异性和 F 分数,如下所述。
准确性衡量模型正确的频率。
(真阳性 + 真阴性)/总预测
在预测的阳性结果中,真正阳性的百分比是多少?
真阳性 /(真阳性 + 假阳性)
Precision 不评估正确预测的负例:
在所有阳性病例中,预测呈阳性的百分比是多少?
灵敏度(有时称为召回率)衡量模型预测积极结果的能力。
这意味着它会考虑真阳性和假阴性(即被错误预测为阴性的阳性)。
真阳性 /(真阳性 + 假阴性)
敏感性有助于理解模型对积极事物的预测效果:
该模型预测负面结果的能力如何?
特异性与敏感性类似,但从阴性结果的角度来看。
真阴性/(真阴性+假阳性)
由于它与 Recall 正好相反,因此我们使用recall_score 函数,取相反的位置标签:
F 分数是精度和灵敏度的"harmonic mean"。
它考虑了误报和漏报情况,并且适用于不平衡的数据集。
2 * ((精度 * 灵敏度) / (精度 + 灵敏度))
该分数未考虑真阴性值:
所有计算合而为一:
#metrics
print({"Accuracy":Accuracy,"Precision":Precision,"Sensitivity_recall":Sensitivity_recall,"Specificity":Specificity,"F1_score":F1_score})
运行示例 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!