如何计算随机基线?

机器算法验证 机器学习
2022-03-24 21:18:28

我对如何计算随机基线有点困惑。如果我理解正确,随机基线是通过将所有类的概率平方相加来计算的。因此,随机基线分类器随机选择一个类别,而不是选择最频繁的类别。

我有 7 个班级,每个班级都有 # 个项目,总共有 X 个。我如何找到概率?

1个回答

当训练集和测试集中的类分布相同时(机器学习通常假设),可以使用您引用的公式。

采取 7 个类别:A、B、C、D、E、F、G。您的数据集中将有带有标签 A 的#A 实例。当然,#A + #B + #C + #D + #E + #F + #G = X

遇到带有标签A的实例的机会,即A类的概率,pA,等于#A/X。

现在,如果您考虑一个随机基线系统,该系统将根据这些概率为实例分配标签。因为标签是根据概率分配的,所以每次让系统为实例添加标签时,都会产生不同的结果。多数系统或基于 SVM 的系统将产生相同的结果,无论它们应用的频率如何。随着随机基线系统的无限次运行,平均而言,将发生以下情况:

给定一个带有金色标签 A 的实例,这个实例将被标记为 pA 乘以 A,pB 乘以 B,等等。这意味着我们有一个(分数)真阳性计数等于概率 pA。有 #A 个实例带有金色标签 A,标签 A 的总真阳性计数变为 #A*pA。这可以为每个标签完成。真阳性总数 TP 变为:

TP = #A*pA + #B*pB + #C*pC + #D*pD + #E*pE + #F*pF + #G*pG

而这个基线系统的平均准确率变成了 acc = TP/X

acc = 1/X * (#A*pA + #B*pB + #C*pC + #D*pD + #E*pE + #F*pF + #G*pG)

如果 X 分布在不同的项上,并使用概率的定义,则变为:

加速度 = pA*pA + pB*pB + pC*pC + pD*pD + pE*pE + pF*pF + pG*pG

这是您参考的公式。


如前所述,对于基于 SVM 的系统或多数系统,平均准确度等于单次运行的准确度。这意味着可以将单次运行的准确性与随机基线公式的结果进行比较。

如果您的机器学习器每次运行产生的结果略有不同(因为它包含随机元素),您应该计算无限次运行的平均准确度。但这是理想情况,可能无法计算。在实践中,差异可能非常小,大多数人坚持使用单次运行的结果进行比较。