计算提供的分类器标签正确的概率

机器算法验证 机器学习 可能性 分类 支持向量机
2022-04-05 16:13:44

二元 SVM 分类器提供标签yc(i)对于每个i- 提供的样本。这不能保证与它的真实标签相对应y(i),因为分类器可能已经计算出一个对某些样本进行错误分类的边界。

让我们假设以某种方式,例如在线性内核的情况下,我能够找到距离d在。。之间i-th 样本和边界,如图所示。

在此处输入图像描述

这个距离以某种方式告诉我分类器在说明i-th 样本属于所选类别(正样本或负样本)。

我的问题

当一堂课C提供(即,要么C=Y或者C=N对于二进制分类),如何计算以下概率?

Pr(y(i)=C|yc(i))

即:概率C是真正的标签i-th 个样本,假设分类器给出了意见yc(i)样品上。

我的解决方案(以及为什么它不起作用)

我尝试通过使用分类器的真阳性率进行概括,即:

Pr(y(i)=C|yc(i))=nC,yc(i)CnC,yc(i)

在哪里nC,yc(i)是类的样本数C分类器分类为yc(i). 但是,对于集合中的每个样本,此度量保持不变。

我想拥有什么

相反,我想要一个取决于分类器置信度的度量,或者,不知何故,取决于距离d在边界上计算。

你能提供一些建议吗?

2个回答

SVM 确实产生了一个决策函数,但它并不直接对应于概率。在 LibSVM(和 sklearn 使用它的底层)中有一种方法可以使用Platt 缩放来获得概率,这听起来就像您正在寻找的那样。有关其工作原理的更多详细信息如下:

sklearn.svm.svc 的函数 predict_proba() 如何在内部工作?

将 LinearSVC 的决策函数转换为概率

你想要的听起来类似于精确召回 (PR) 曲线。PR 曲线显示精度 (TP / (TP + FP)) 作为召回率 (TP / (TP + FN)) 的函数。每个 PR 点对应一个阈值T在 SVM 的输出上d(到超平面的有符号距离),如果dT否则为负。

因此,您可以创建一个图形,将精度描述为决策阈值的函数。这个图的大体形状会类似于 PR 曲线,只是它会被水平拉伸(因为不是每个唯一的决策值都对应一个唯一的召回率,所以 PR 曲线在水平方向上更密集)。

必须注意,也许与直觉相反,对于最大的决策值,精度不一定最高(d)。