不确定类标签的分类器

机器算法验证 分类 威卡 不确定
2022-03-17 08:00:29

假设我有一组带有关联类标签的实例。如何标记这些实例并不重要,重要的是它们的类成员身份的确定程度每个实例恰好属于一个类。假设我可以用从 1 到 3 的名义属性来量化每个类成员的确定性(分别是非常确定到不确定)。

是否有某种分类器考虑了这种确定性度量,如果是,它是否在 WEKA 工具包中可用?

我想这种情况经常发生,例如当人类对实例进行分类时,并不总是完全确定。就我而言,我必须对图像进行分类,有时一张图像可能属于多个类别。如果发生这种情况,我会给这个类一个很高的不确定性,但仍然只将它分类为一个类。

或者在没有专门的分类器的情况下,有没有其他方法可以解决这个问题?例如,只采用“某些”分类进行训练?我担心在这种情况下,会出现更多的错误分类,因为没有涵盖“边界”案例。

4个回答

首先,正如@Marc Claesen 已经解释的那样,半监督分类是处理您知道类别确实不同但您不确定案例实际属于哪个类别的情况的技术之一。

但是,也有相关的情况,其中“现实”并不那么清楚,并且没有满足具有真正不同类的假设:边界案例可能是“物理”现实(有关应用程序的论文,请参见下文我们遇到了这样的条件)。

对于半监督分类器,您需要确保满足一个关键假设:假设在特征空间中,类边界伴随着低样本密度这被称为集群假设。
即使您的数据背后的现实具有不同的类别,您的数据集也可能具有不成比例的更多边界案例:例如,如果您的分类技术旨在对困难案例进行分类,而对清晰和简单的案例不感兴趣,并且您的训练数据已经反映了这一点情况。

只采用“某些”分类进行训练?我担心在这种情况下,会出现更多的错误分类,因为没有涵盖“边界”案例。

我完全同意你的观点,排除边缘情况通常是一个坏主意:通过删除所有困难的情况,你最终会得到一个人为的简单问题。恕我直言,更糟糕的是,排除边界案例通常不会随着模型训练而停止,但边界案例也被排除在测试之外,因此仅使用简单案例来测试模型。这样一来,您甚至都不会意识到该模型在临界情况下表现不佳。

这是我们写的两篇关于与您的不同的问题的论文,因为在我们的应用程序中,现实也可以有“混合”类(您的问题的更一般版本:参考标签的不确定性也包括在内)。

链接转到我为进行性能计算而开发的 R 包的项目页面。官方网页和我的论文手稿都有进一步的链接。虽然到目前为止我还没有使用过 Weka,但我知道 R 的接口是可用的


实际考虑:

  • 虽然复制和标记不同的方法很简单,但它在实践中并不适用于所有分类器和实现。例如,AFAIK 无法libSVM通过交叉验证告诉调整每个数据点的所有副本都需要保存在相同的交叉验证折叠中。因此libSVM,调整可能会产生一个大规模的过拟合模型。
  • 同样对于逻辑回归,我发现许多实现不允许我需要的部分成员标签。
  • 我在上面的论文中使用的实现实际上是一个没有隐藏层的人工神经网络,它使用逻辑作为 sigmoidal 链接函数 ( nnet::multinom)。

这是半监督学习中处理的分类的概括之一。如果您有确定性的衡量标准,则可以使用允许对训练实例进行加权的方法。确定性越高,对应的实例权重越大。此类方法的示例包括实例加权 SVM 和逻辑回归。

我确信 weka 已经实现了这些算法。如果所有其他方法都失败了,请从具有高确定性的实例中采样多个实例。您可以将此方法用于传统的 SVM 或 LR。

示例:支持向量机

如果我没记错的话,weka 有LIBSVM的接口。LIBSVM 允许您解决其所有版本中的类加权 SVM,以及每个版本的特殊版本中的实例加权 SVM。我将假设 weka 不支持后者(这是您所需要的)。

类加权 SVM 最小化以下目标函数: 其中是特征空间中的分离超平面,松弛变量(模型训练错误分类)和分别属于正类和负类的支持向量集。使用权重,您可以在类之间分配不同的错误分类惩罚。

minw,ξw2+CposiPξi+CnegiNξi,
wξPNCposCneg

根据您的问题,理想情况下您似乎希望使用 6 种不同的权重(2 类 3 确定性级别)。您可以通过以高确定性复制点的样本来实现许多方法。×

例如,就 SVM 而言,使用相同的数据实例两次会产生相同的解决方案,以将其关联的值加倍。这是为某些数据实例分配高错误分类惩罚的一种非常简单的方法。您可以按照相同的方法进行逻辑回归。C

问题的难度很大程度上取决于不确定标签的错误程度。如果不确定的标签是正确的,比如说,90% 的时间,你可能只使用逻辑回归就可以逃脱。另一方面,如果标签几乎有一半是错误的,您可能需要求助于一些特殊技术。是我在一个非常相似的问题上遇到的一个问题。(我们对每个标签进行了多次观察,但除此之外,设置非常相似。)

我对图像识别和分类进行了短暂的磨合。

随机森林是一种易于使用的技术。我已经在 R 上实现了它,它也应该在 Weka 上可用。不过,易用性胜过预测准确性。如果你有足够大的训练集,它可以对多个标签进行分类。

它可以很好地识别手写数字,但是如果您的图像更复杂,那么只有试用才能告诉您它是否做得很好。