0

我有(多类)训练数据,其中的类是通过聚合手工标记的数据来学习的,因此某些行的值将类似于 [0, 0, 0, 0.4, 0.6]。无论如何,是否可以直接将其用作分类器的训练数据。我宁愿不求助于学习 5 个回归模型,或者只是将该数据设置为 [0, 0, 0, 0, 1]。两者似乎都比直接学习做得更糟。我知道这至少应该可以用于逻辑回归,但似乎没有 api 支持它。(而且我更喜欢使用比这更好的分类器。)

4

2 回答 2

1

这是一个模型相关的问题。特别是 - 如果您想将 SVM 用于此类任务,您将需要 K SVMa,其中 K = 标签数(因为 SVM 是二元模型,而不是因为您想使用概率)。一旦你这样做了,你就可以使用“样本加权”来包含你正在谈论的这种知识。所以对于 SVM 来说,答案是肯定的,这是可能的,而且很容易做到。特别是 scikit-learn 实现了每个样本的加权。

它也可以以自然的方式并入朴素贝叶斯。

在不同的模型中它可能更复杂,例如,您可以训练具有预期输出 [0,0,0,0.4,0.6] 而不是二进制向量的神经网络,但这可能会导致过度拟合(因为这并不意味着“类4 肯定是 40%”,而是“尝试以这种方式建模,利用这个样本你准确地回答 [0,0,0,0.4,0.6]”,所以如果有一个类似的样本具有 [0 ,0,0,1,1] 它将尝试区分它们。这同样适用于任何多元回归方法。

于 2013-10-29T06:30:40.473 回答
1

目前没有支持这一点的估算器。如果这可能的话,它真的取决于模型。例如对于随机森林或决策树,这与学习回归模型没有太大区别(但不确定什么是真正好的分割标准)。

我认为我们不会很快在 sklearn 中有一个 api。不过,您可以修改随机森林、最近邻或神经网络(即将推出)来处理此设置。

通过一些工作,您可能还可以更改 SGDClassifier,但您说您不想要线性模型。您认为什么是“更好”的分类器?

于 2013-10-30T05:07:52.797 回答