主题:【有问题不留到牛年】删帖评定规则的一个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 帖 引用 (帖内工具实现)
处罚结果不公平,搞得自己都晕乎乎的。
照我看,一共有三位监察,分别可以发表五种监察意见,也就是30种不同组合,直截了当的列一个表查一查,应该是又简单又方便又准确的办法。
先排序,再查表(是35种组合,不是30种)的效率要低于公式计算。而且要存储一个35 X 4的表格。
如果为了程序效率,存储一个125 X 4的表格,查找的效率固然提高,存储的负担更重。
更重要的,即使用查表的方法,我帖子提出的问题仍然存在,只不过现在是后台处理先设计表格而已。
而且,直接公式计算的方法编程效率高。
注:我把建议方法的伪代码附在原帖末尾了,可以看一看效率如何。
今天又发现这样的现象,看来老铁的程序还是没改啊
违规。建议删帖。2.1.1 具有人身攻击意味,污言秽语、涉嫌挑拨
违规。建议删帖并短封。2.1.1 具有人身攻击意味,污言秽语、涉嫌挑拨
违规。建议删帖。2.1.1 具有人身攻击意味,污言秽语、涉嫌挑拨
帖作者:XXXX 系统综合判定:违规。建议删帖。
违规。建议删帖并短封。2.1.1 具有人身攻击意味,污言秽语、涉嫌挑拨
恶意举报不违反河规
违规。建议删帖。2.1.1 具有人身攻击意味,污言秽语、涉嫌挑拨
帖作者:XXXX 系统综合判定:违规。建议删帖并短封。
估计他要攒一起改。