我正在处理一个机器学习问题,其中我的目标是一个多标签目标,每个标签都是一个概率。过去我处理过多标签问题,但每个标签都是二元的。例如,如果目标是一系列书籍主题(’Python’、’机器学习’、’童话’、’烹饪’),那么基于Python的scikit-learn的机器学习书籍的目标将是[1, 1, 0, 0]。
现在,对于我试图解决的问题,我的目标不是二元的。目标本身是一系列概率,如[0.75, 0.25, 0, 0]。我认为这些目标是以众包的方式产生的,这些概率反映了人们判断的变异性。因此,除非我想将概率分成类别(即p<0.5 ->0, p>=0.5 ->1),否则我面临一个回归问题,其中目标需要限制在0和1之间。有什么算法建议吗?我使用的是Python的scikit-learn。
谢谢!
回答:
你能将这些众包概率视为标签权重吗?然后你可以考虑训练能够考虑标签权重的算法,例如线性分类器或提升算法。
例如,如果使用朴素贝叶斯分类器,我们过去将每个标签的标签权重视为1,现在每个标签都有一个分数标签权重。如果这是文档分类的应用,我们可能有两组训练实例的真实标签集如下:
1. {新闻: 0.8, 体育: 0.5}2. {新闻: 0.1, 体育: 0.8}
假设你有一个单词w1
,它在第一个实例中出现5次,在第二个实例中出现2次。
当你计算给定类别标签的单词w1
的概率时,你执行以下操作:
P(w1 | 新闻) = (5*0.8 + 2*0.1) / (所有新闻文档中所有单词的加权出现次数)P(w1 | 体育) = (5*0.5 + 2*0.8) / (所有体育文档中所有单词的加权出现次数)
请注意,当我们学习模型时,如何考虑标签权重。基本上,单词出现的次数会得到一个折扣信用。