这是什么类型的 ML?从池中重复选择 1 个正确候选人的算法(或 none)

What type of ML is this? Algorithm to repeatedly choose 1 correct candidate from a pool (or none)

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

每个人都很好地将最佳候选人排名最高,但他们并不总是一致——我想找到如何将分数组合在一起以获得最佳元分数,以便在候选人池中, 元得分最高的通常是实际 correct 候选人。

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

如果最高分太低(或者两个最高分太接近),我就放弃说'none'。

所以对于每个试验,我的输入是一组这些得分向量,输出是哪个向量对应于实际的正确答案,或 'none'。这有点像技术面试,一群候选人被几个可能有不同意见的人面试,但通常每个人 倾向于 更喜欢最好的候选人。我自己的应用程序有一个 objective 最佳候选人。

我想最大限度地提高正确答案并最大限度地降低误报率。

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

的许多实例

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

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

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

谢谢

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

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

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

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

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

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

OnevsAll 是一种 class 化技术,其中输出层中有多个单元格,每个单元格在其中一个 classes 与所有其他人相比。最后,概率最高的 sigmoid 被分配为 1,其余为零。

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

希望我的回答对您有所帮助。:)