Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 机器学习多标签目标是一系列的概率_Python_Machine Learning_Scikit Learn - Fatal编程技术网

Python 机器学习多标签目标是一系列的概率

Python 机器学习多标签目标是一系列的概率,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我正在研究一个机器学习问题,其中我有一个多标签目标,其中每个标签都是一个概率。 过去我处理过多标签问题,但每个标签都是二进制的。例如,如果目标是一系列书籍主题(“Python”、“机器学习”、“童话”、“烹饪”),那么基于Python的scikit learn的机器学习书籍的目标是[1,1,0,0] 现在,对于我要解决的问题,我的目标不是二进制的。目标本身是一系列概率,如[0.75,0.25,0,0]。我认为目标是以众包的方式产生的,这些概率反映了人们判断的可变性。 因此,除非我想在类中存储概率

我正在研究一个机器学习问题,其中我有一个多标签目标,其中每个标签都是一个概率。 过去我处理过多标签问题,但每个标签都是二进制的。例如,如果目标是一系列书籍主题(“Python”、“机器学习”、“童话”、“烹饪”),那么基于Python的scikit learn的机器学习书籍的目标是[1,1,0,0]

现在,对于我要解决的问题,我的目标不是二进制的。目标本身是一系列概率,如[0.75,0.25,0,0]。我认为目标是以众包的方式产生的,这些概率反映了人们判断的可变性。 因此,除非我想在类中存储概率(即p0,p>=0.5->1),否则我会陷入一个回归问题,其中目标需要限制在0和1之间。 你知道我可以尝试什么样的算法吗?我正在使用Python的scikit学习

谢谢

一个选项是使用a,因为它不需要二进制目标值,并且可以轻松处理限制在[0,1]范围内的目标值(即,当使用sigmoid或tanh激活函数时)。您还可以规范化输出,以确保多个类的概率总和为一

有关其他信息,web上有许多资源(尝试搜索术语“多层感知器概率输出”),但您可以开始或。

一个选项是使用,因为它不需要二进制目标值,并且可以轻松处理限制在[0,1]范围内的目标值(即,当使用sigmoid或tanh激活函数时)。您还可以规范化输出,以确保多个类的概率总和为一


关于更多信息,网络上有很多资源(尝试搜索术语“多层感知器概率输出”)但是,你可以开始或。

< P>你可以将这些人群来源的概率作为标签权重吗?然后你可以考虑可以考虑标签权重的训练算法,例如线性分类器或Boosting算法。 例如,如果使用朴素贝叶斯分类器,我们过去会处理标签权重为1的每个标签,现在每个标签都有一个关联的分数标签权重。如果这是文档分类的应用程序,我们可能会为两个训练实例设置一组基本真理标签,如下所示:

1. {News: 0.8, Sports: 0.5}
2. {News: 0.1, Sports: 0.8}
假设您有一个单词
w1
,它在第一个实例中出现5次,在第二个实例中出现2次

在计算给定类别标签的word
w1
的概率时,执行以下操作:

P(w1 | News) = (5*0.8 + 2*0.1) / (#of weighted occurrences of all words in all your News docs)
P(w1 | Sports) = (5*0.5 + 2*0.8) / (# weighted occurrences of all words in all your Sports docs)

<>注意当我们学习模型时如何考虑标签权重。基本上单词出现的次数会有折扣。

你能把那些人群来源的概率当作标签权重吗?然后你可以考虑可以考虑标签权重的训练算法,例如线性分类器或B。oosting算法

例如,如果使用朴素贝叶斯分类器,我们过去会处理标签权重为1的每个标签,现在每个标签都有一个关联的分数标签权重。如果这是文档分类的应用程序,我们可能会为两个训练实例设置一组基本真理标签,如下所示:

1. {News: 0.8, Sports: 0.5}
2. {News: 0.1, Sports: 0.8}
假设您有一个单词
w1
,它在第一个实例中出现5次,在第二个实例中出现2次

在计算给定类别标签的word
w1
的概率时,执行以下操作:

P(w1 | News) = (5*0.8 + 2*0.1) / (#of weighted occurrences of all words in all your News docs)
P(w1 | Sports) = (5*0.5 + 2*0.8) / (# weighted occurrences of all words in all your Sports docs)

注意我们学习模型时如何考虑标签权重。从本质上讲,一个单词出现的次数会得到折扣积分。

如果你只有一个概率目标,我认为你会像你建议的那样,陷入不确定的值。当然,逻辑回归确实适用于概率,但我不确定它是否正确完全适合你正在做的事情。是否有来自众包标签商的一小部分概率?人们倾向于评估接近整数的概率,比如你的例子0.75、0.25、0、0。如果你只看到使用了少量的唯一概率,你可以有效地将它们视为使用的任意词y标签并“忘记”它们是概率。这对于您的应用程序来说可能已经足够好了。另一方面,如果您需要一种“预测”的方法4-向量,使得条目在4个元素上形成有效的离散概率分布,这要困难得多。在后一种情况下,使用基于标记训练数据的Dirichlet先验的某种贝叶斯方法会更好。正如我的经验所表明的,如果这些概率确实是基于judjment的,则bucketing是一种选择,因为这些数据中的噪声t往往是巨大的。但它也可能是一些ML生成的概率,来自NN或LDA或类似的东西。在后一种情况下,由您决定成本函数,因为假设
0.1
0.2
不同,与
0.9
0.8
不同。EMS:no,这些概率到处都是联系。如果你只有一个概率目标,我想你会像你建议的那样坚持价值观。当然,逻辑回归确实适用于概率,但我不确定它是否完全适合你所做的事情。是否有一小部分来自众包标签商的概率?人们倾向于sess概率接近整数,如您的示例0.75、0.25、0、0。如果您只看到少量使用的唯一概率,您可以有效地将其视为标签商使用的任意词和“忘记”它们是概率。这对于你的应用来说可能已经足够好了。另一方面,如果你需要一种方法来“预测”4个向量,使得条目在4个元素上形成有效的离散概率分布