我有(多类)训练数据,其中通过聚合手标记数据来学习类,因此一些行将具有类似[0,0,0,0.4,0.6]的值。无论如何,直接将其用作分类器的训练数据。我宁愿不去学习5个回归模型,或者只是将数据设置为[0,0,0,0,1]。两者看起来都比直接学习更糟糕。我知道这应该至少可以用于逻辑回归,但是没有api似乎支持它。 (另外,我更喜欢使用比这更好的分类器。)
答案 0 :(得分: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]它会尝试区分它们。这同样适用于任何多元回归方法。
答案 1 :(得分:1)
目前还没有支持此功能的估算工具。如果这是可能的话,它实际上是模型依赖的。例如,对于随机森林或决策树,这与学习回归模型没有太大差别(不确定什么是真正好的分裂标准)。
我认为我们很快就会在sklearn中找到api。您可以修改随机森林,最近邻居或神经网络(即将推出)以处理此设置。
通过一些工作,您可能还可以更改SGDClassifier,但您说您不需要线性模型。你认为什么是“更好”的分类器?