【问题标题】:What type of ML is this? Algorithm to repeatedly choose 1 correct candidate from a pool (or none)这是什么类型的机器学习?从池中重复选择 1 个正确候选者(或无)的算法
【发布时间】:2016-10-29 01:37:31
【问题描述】:

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

每个人在将最佳候选人排名最高方面都不错,但他们并不总是同意 - 我想找到如何将分数组合在一起以获得最佳元分数,以便在一组候选人中,具有最高元分数的人通常是实际的正确候选人。

所以它们是普通的R^n 向量,但每个维度对于正确的候选者来说往往具有更高的价值。天真地我可以将组件相乘,但我希望有一些更微妙的东西可以从中受益。

如果最高分太低(或者两个最高分太接近),我就放弃并说“无”。

因此,对于每次试验,我的输入是一组这些分数向量,输出是哪个向量对应于实际正确答案,或者“无”。这有点像技术面试,一群候选人被几个可能有不同意见的人面试,但总的来说,每个人倾向于选择最好的候选人。我自己的应用程序有一个客观的最佳候选人。

我想最大限度地提高正确答案并尽量减少误报。

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

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

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

所以我想学习一个函数,该函数倾向于从输入中最大化实际最佳候选人的得分向量。没有最好的程度。这是二元对或错。但是,它看起来不像传统的二元分类,因为在一组输入向量中,最多可以有 1 个“分类”为正确,其余为错误。

谢谢

【问题讨论】:

    标签: machine-learning classification regression


    【解决方案1】:

    您的问题不完全属于机器学习类别。乘法方法可能效果更好。您还可以为输出函数尝试不同的统计模型。

    ML,更具体地说是分类问题,需要训练数据,您的网络可以从中学习数据中的任何现有模式,并使用它们将特定类分配给输入向量。

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

    您可以使用整个候选向量作为网络所有单元的输入。可以使用 one-hot 编码指定输出,即 00100 如果您的候选人没有。 3 是实际正确的候选者,如果没有正确的候选者,输出将为 00000。

    为此,您需要一个包含候选向量和相应的实际正确候选的大数据集。对于这些数据,您将需要一个函数(再次像乘法一样),或者您可以自己分配输出,在这种情况下,系统将学习如何在给定不同输入的情况下对输出进行分类,并以与您相同的方式对新数据进行分类。这样,它将最大化正确输出的数量,但此处正确的定义将是您对训练数据进行分类的方式。

    您还可以使用不同类型的输出,其中输出层的每个单元格对应于您的评分函数,并且 00001 表示您选择的第 5 个评分函数的候选者是正确的。这样你的候选人就不必被固定了。但同样,您必须手动设置训练数据的输出以供网络学习。

    OnevsAll 是一种分类技术,其中输出层中有多个单元,每个单元在其中一个类与所有其他类之间执行二元分类。最后,概率最高的 sigmoid 被分配为 1,其余为 0。

    一旦您的系统了解了如何通过训练数据对数据进行分类,您就可以输入新数据,它会以相同的方式为您提供输出,例如 01000 等。

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

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2023-03-23
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 2019-01-01
      • 2018-10-01
      • 1970-01-01
      • 2011-07-21
      相关资源
      最近更新 更多