为什么分类问题中的序数目标需要特别注意?

机器算法验证 机器学习 分类 序数数据 有序的logit 多项式logit
2022-04-01 21:28:34

我一直在研究一个机器学习问题,在这个问题中我想预测一个钱的间隔,比如a、b、c、d,考虑到它的信用档案,它可能借给客户,这些金额表示在有序的箱子上,即a < b < c < d。

首先,我将这个问题作为一个多类分类问题来面对,即使我没有获得“好”的表现,我从没想过这可能是因为我的目标的固有顺序。

在谷歌搜索之后,我发现了一篇论文,其中开发了一种对序数目标进行分类的方法,但我仍然不确定这种情况的含义是什么,甚至为什么它需要特别注意。

在那篇论文中说:

通过丢弃类属性中的排序信息,可以将标称类的标准分类算法应用于序数预测问题。但是,这样做会丢失一些信息,这些信息可能会提高分类器的预测性能。

但这并没有向我澄清这一点。

你能帮我理解序数目标的含义吗?当应用逻辑回归、集成方法或任何其他分类模型不考虑此顺序时,此顺序是否会导致多类分类任务的性能不佳?

2个回答

戴夫的评论是正确的。我将尝试扩展它们。

序数回归介于分类和实值回归之间。当您对序数数据执行多类分类时,无论何时分类器预测错误的类,无论是哪一类,您都会分配相同的惩罚。

例如,假设在您的某个输入向量的问题中,正确的预测是假设您正在训练两个分类器第一个预测,而另一个预测在多元分类器的意义上,距离一样远,它们错过了正确的类别。但从序数回归的角度来看,显然比好,因为它只错过了一个正确的“类”,而不是三个。xaC1C2bdC1C2C1C2

为了将这一点推向极端,想象一下执行非常多类分类而不是回归。即你有预测变量和一个实值响应变量您可以将的值视为类:是一个类,是另一个类,依此类推。如果您有个观察值,您可能有个不同的类(假设所有都不同)。你可以尝试训练一个多类分类器,但你很可能会失败,因为每个类只有一个观察值。即使你成功了(因为你很幸运拥有相同的xyyy=3.14159y=1.4142NNyy的重复多次),您实际上将拥有许多独立的模型,其中每个模型只会预测其自己的类别,而不会太在意其他模型。

这样的模型集合也将非常复杂。如果每个模型都有个参数,并且如果你有个类来预测,那么你的集成将有个参数。相反,回归模型的复杂性可能与不同值的数量无关。您会提前选择线性、二次或任何函数来拟合您的数据,并且函数的形式将决定参数的数量。MK(K<N)MKy

在序数回归中,例如比例优势逻辑回归,通常具有所有“类”(即序数值)共有的一组参数(向量)和一组标量来区分各个序数值。这同样适用于支持向量序数回归(参见例如http://www.gatsby.ucl.ac.uk/~chuwei/paper/svor.pdf),你有相同的模型,由相同的 ' s (拉格朗日系数)用于所有“类”,并且仅通过相应的(每个“类”一个)来区分类。αb

我认为丢弃排序信息并仅运行多类回归有两个潜在的并发症:

  1. 模型复杂性:每个类别的预测参数不会以任何方式联系在一起。因此,该模型试图学习如何将类别 a、b、c 和 d 预测为四个单独的问题,而没有意识到存在某种结构(例如,a 类的示例看起来与 b 类的示例比与类的示例更相似)绳索)。这可能会导致在相对较小的数据集上表现不佳。

  2. 正如上面评论中提到的,多类损失函数不考虑排序。大概在您的应用程序中,将 a 类错误预测为 b 类比将其错误预测为 c 类要好。

我可以想到一些可能的解决方案来解决这些问题。一种选择是以某种方式跨条件定义相似性矩阵。这可能来自类别之间的某种不确定性度量(例如,来自人类标签的混淆矩阵),或者与错误预测的后果有关(例如,如果 d 类是获得特殊信用评分的非常精英类,则可以指定与其他类不太相似)。如果将这种相似性矩阵用于正则化(鼓励相似的类具有相似的参数)和损失(对相似类的错误预测不那么严厉的惩罚),则可以使用这种相似性矩阵来解决上面列出的两个问题。

另一个可能的答案是完全放弃序数预测,并尝试将金额预测为一个连续值(如果你愿意,你可以将其离散到 bin 中)。您仍然可能需要仔细考虑损失函数(例如,如果这些值跨越多个数量级,您可能希望惩罚值对数的平方损失,而不是值本身)。