在对 "best" 候选人进行排名时如何确定最佳变量权重

How do I determine the optimum variable weights when ranking the "best" candidate for a prize

假设我正在编写一个程序,目的是 select 成为比赛的赢家。有 'n' 位人类评委秘密地为 'm' 名候选人中的前三名候选人分配第 1、2、3 名的排名。

然后节目必须经过评委的决定,根据分配给第一名、第二名和第三名的权重,每个候选人将根据他们获得的第一名、第二名和第三名的票数进行评分, 乘以每个完成位置的适当评级。

然而,一开始,程序并不知道什么权重是合适的,所以我创建了一个自动化“程序”,旨在根据评委如何挑选获胜者来“发现”合适的权重来自假设情况。

我给出一个 table,其中横轴包含完成位置和裁判代码(例如裁判 W、裁判 X、裁判 Y、裁判 Z)。纵轴有三行(第1位、第2位、第3位),在每行的交叉点Judge/Row,我随机生成了一个候选ID(从集合A到F)。

渲染 table 之后,我会问法官他们会选择谁作为获胜者(如果没有足够的信息可供选择,法官可以选择通过)。

在通过适当数量的场景判断 运行 之后,我现在希望获取各种 运行 的结果并使用该信息来确定“最适合”的权重第 1、2 和 3 个位置。

假设其中一个假设的网格如下所示:

<table border="1"><tbody><tr><th>Position</th><th>Judge 'W'</th><th>Judge 'X'</th><th>Judge 'Y'</th><th>Judge 'Z'</th></tr><tr><td>1st</td><td><center>A</center></td><td><center>F</center></td><td><center>C</center></td><td><center>B</center></td></tr><tr><td>2nd</td><td><center>D</center></td><td><center>B</center></td><td><center>E</center></td><td><center>D</center></td></tr><tr><td>3rd</td><td><center>C</center></td><td><center>E</center></td><td><center>B</center></td><td><center>C</center></td></tr></tbody></table>

然后人类法官选出候选人“B”作为获胜者。我的程序应该通过计算 (w1 + w2 + w3) > (w1 + 2w3) (即 B 优于 C)和 (w1 + w2 + w3) > (2 w2 )(即B优于D)等

根据这些不同的代数比较,在许多“假设场景”中,我希望能够计算出 w1、w2 和 w3 的最佳值。然后,当有足够多的“好”数据时,我希望能够使用这些“发现”的权重来回溯训练数据,找出人类判断可能犯错的区域。

我正在使用 PHP 作为编程语言,但不知道哪些函数或可能的现有库适合解决这种“模糊”方程式。

我正在寻找一些方向来帮助我解决这个问题。

感谢您的帮助。

为获胜的候选人计算他在每个位置出现的次数,然后为所有其他候选人做同样的事情。然后为每个候选人写下以下公式:

   GoodForJ=w1*nw1+w2*nw2+w3*nw3>w1*nj1+w2*nj2+w3*nj3

其中nw1-3是获胜者在每个位置出现的次数,nj1-3是第j个候选人在每个位置出现的次数。 如果所有候选人的 goodForJ 都为真,这意味着权重元组是好的。现在您只需要尝试一系列重量组合并找出适合的重量。尝试 1 到 10 之间的所有权重组合需要 1000 次迭代。 为了让事情变得更加模糊,对于每次尝试,您可以计算有多少次 goodForJ 为真,并选择产生最高分数的权重。