这是什么类型的机器学习?从一组中反复选择一个正确候选人(或无)

我有一组3到5个黑盒评分函数,它们为候选人分配正实数得分。

每个函数在将最佳候选人排在最高位置方面都表现不错,但它们并不总是意见一致——我想找出如何将这些得分结合起来,形成一个最佳的元得分,使得在一组候选人中,得分最高的那个通常是实际的正确候选人。

所以它们是普通的R^n向量,但每个维度单独来看,通常对于正确候选人的值更高。我可以简单地将各个分量相乘,但希望有更巧妙的方法可以从中受益。

如果最高得分太低(或者可能是两个最高得分太接近),我就放弃并说‘无’。

所以在每次试验中,我的输入是一组这些得分向量,输出是哪个向量对应实际的正确答案,或‘无’。这有点像技术面试,一组候选人被几个人面试,这些人可能有不同的意见,但总的来说,每个人倾向于偏好最佳候选人。我自己的应用有一个客观的最佳候选人。

我希望最大化正确答案并最小化误报。

更具体地说,我的训练数据可能看起来像是很多实例的

{[0.2, 0.45, 1.37], [5.9, 0.02, 2], …} -> i

其中i是输入集合中第i个候选向量。

所以我想学习一个函数,倾向于最大化输入中实际最佳候选人的得分向量。没有最佳程度的等级。这是二元的对或错。然而,这似乎不像传统的二元分类,因为在一组输入向量中,最多只能有一个被“分类”为正确,其余的都是错误的。

谢谢


回答:

你的问题并不完全属于机器学习的范畴。乘法方法可能会更有效。你也可以尝试不同的统计模型来生成你的输出函数。

机器学习,尤其是分类问题,需要训练数据,让你的网络能够从中学习数据中存在的任何模式,并使用这些模式为输入向量分配特定的类别。

如果你真的想使用分类,我认为你的问题可以归入一对多分类的范畴。你需要一个网络(或只是一个输出层),其单元/激活单元的数量等于你的候选人数量(每个代表一个)。请注意,这里你的候选人数量将是固定的。

你可以将整个候选向量作为输入输入到网络的所有单元中。输出可以使用独热编码指定,例如00100,如果你的第3号候选人是实际的正确候选人;如果没有正确候选人,输出将是00000。

为了使其工作,你需要一个包含你的候选向量和相应实际正确候选人的大型数据集。对于这些数据,你要么需要一个函数(再次如乘法),要么你可以自己分配输出,在这种情况下,系统将学习你如何根据不同输入对输出进行分类,并以同样的方式对新数据进行分类。这样,它将最大化正确输出的数量,但这里正确性的定义将是你如何对训练数据进行分类。

你也可以使用另一种类型的输出,其中输出层的每个单元对应于你的评分函数,00001意味着你的第5个评分函数选择的候选人是正确的。这样你的候选人就不必是固定的。但同样,你将不得不手动设置训练数据的输出,以便你的网络能够学习它。

一对多是一种分类技术,输出层中有多个单元,每个单元执行一个类别与其他所有类别之间的二元分类。最后,概率最高的激活函数被赋值为1,其余为零。

一旦你的系统通过训练数据学会了你如何分类数据,你就可以输入新数据,它将以相同的方式给出输出,例如01000等。

希望我的回答能帮到你。:)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注