【发布时间】:2013-11-18 05:23:27
【问题描述】:
我正在研究一个机器学习问题,其中我有一个多标签目标,其中每个标签都是一个概率。 过去我曾处理过多标签问题,但每个标签都是二进制的。例如,如果目标是一系列书籍主题('Python'、'Machine Learning'、'Fairy Tales'、'Cooking'),则基于 Python scikit learn 的机器学习书籍的目标是 [1, 1, 0, 0]。
现在,对于我要解决的问题,我的目标不是二进制的。目标本身是一系列概率,如 [0.75, 0.25, 0, 0]。我认为目标是以众包方式产生的,这些概率反映了人们判断的可变性。 因此,除非我想在类中存储概率(即 p0,p>=0.5 ->1),否则我会遇到一个回归问题,即目标需要限制在 0 和 1 之间。 关于我可以尝试哪种算法的任何想法?我正在使用 Python 的 scikit learn。
谢谢!
【问题讨论】:
-
如果您只有一个具有概率的目标,我认为您 像您建议的那样卡住了分桶值。当然,逻辑回归确实适用于概率,但我不确定它是否完全适合您正在做的事情。
-
是否有来自众包标签的一小部分概率?人们倾向于评估接近整数的概率,例如您的 0.75、0.25、0、0 示例。如果您只看到使用了少量唯一概率,您可以有效地将它们视为标记者使用的任意词,并且“忘记”它们是概率。这对您的应用程序来说可能已经足够了。另一方面,如果您需要一种“预测” 4 向量的方法,以便条目在 4 个元素上形成有效的离散概率分布,那就更难了。
-
某种基于带标签的训练数据的狄利克雷先验贝叶斯方法在后一种情况下会更好。
-
根据我的经验,如果这些概率确实是基于判断的,则可以选择分桶,因为这些数据中的噪声量往往很大。但它也可以是一些 ML 生成的概率,来自 NN 或 LDA 或类似的东西。在后一种情况下,由您决定成本函数,因为
0.1与0.2不同,0.8与0.9的方式不同 -
@EMS:不,这些概率无处不在。
标签: python machine-learning scikit-learn