主题:【有问题不留到牛年】删帖评定规则的一个Bug和修改建议 -- frnkl
我曾在这个帖子frnkl:【讨论】解读老铁的举报删帖规则(Updated)里讨论过老铁的删帖判定规则。老铁的反馈铁手:非常感谢对这个功能的关注和建议是这个解读差不离儿。既然老铁说了还是Beta版,我就冒昧再提一点修改的建议。
现在这个判定规则在公平性上有个小Bug,一个例子是如果三个监察意见是{“恶意举报”,“建议删帖”,“建议删帖并短封”},则系统判定为“建议删帖并短封”;而如果三个监察意见是{“建议删帖”,“建议删帖”,“建议删帖并短封”},则系统判定为“建议删帖”。直觉上,后者的处罚应该比前者重,但系统判定的结果恰好相反。为了修正这个Bug,我曾经建议用简单的中位数判定代替现在的系统,见frnkl:老铁请看:一点小建议(修改版)。不过老铁没有采纳,我想原因是中位数判定没有最大限度利用所有监察提供的信息。例如{“建议删帖”,“建议删帖”,“建议删帖”}与{“建议删帖”,“建议删帖”,“建议删帖并长封”}在中位数规则下判定结果都是“建议删帖”,这样就浪费了后者“建议删帖并长封”的强烈意见。这种考虑也并非没有道理。
那么简单的计算平均值来决定处罚行不行(这样公平性的问题能解决)?不好!我举一个例子。现在监察能提供五种处理意见{“恶意举报”(分值=1),“不违规”(分值=2),“建议删帖”(分值=3),“建议删帖并短封”(分值=4),“建议删帖并长封”(分值=5)}。如果三位监察的处理意见是{“恶意举报”,“建议删帖”,“建议删帖”},则平均值为2.33,四舍五入为2(“不违规”);这与直觉上判罚应该是“建议删帖”(少数服从多数) 矛盾。
要想既有公平又要避免采用上述简单均值方案出现的问题,解决的办法不复杂。如果三个监察的意见全部 >= 3 或 全部 < 3,则直接计算均值,四舍五入决定最终处理;如果两个监察的意见 >= 3,一个意见 < 3,则小于三的意见自动变为 3,然后计算均值,四舍五入决定最终处理;反过来,如果两个监察的意见 < 3,一个意见 >= 3,则大于等于三的意见自动变为 2,然后计算均值,四舍五入决定最终处理。
为了西西河的健康发展,希望听到河友的宝贵意见。
------------算法实现-----------
输入:x1,x2,x3
主体:(1)x1,x2,x3由小到大排序,结果为y1,y2,y3;(2)if y3 <= 2 or y1 > 2, then sum = y1+y2+y3; else if y2 <= 2, then sum = y1+y2+2; else sum = 3+y2+y3
返回值:floor(sum/3+0.5)。
-------------------------------
注:中位数规则的返回值是 y2。
本帖一共被 3 帖 引用 (帖内工具实现)
- 相关回复 上下关系5
🙂【有问题不留到牛年】删帖评定规则的一个Bug和修改建议
🙂记得老兄有这么个帖子 3 珍珠土老鼠 字536 2009-06-13 07:19:24
🙂老铁太忙,暂时顾不上 frnkl 字18 2009-06-13 08:35:34
🙂何必那么复杂呢?还要做一次分值转换,还要担心 雷冬 字166 2009-01-23 16:46:11
🙂从编程的角度 1 frnkl 字359 2009-01-23 17:43:59