- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个餐厅应用程序,用户可以在逻辑上对餐厅进行评分,例如 10 人的评分方程如下:
用户可以从 1 到 5 评分
9 评分为 5
1 已评价 1
方程是((9*5)+(1*1))/10(人的总和)=46/10=4.6
答案是 4.6,这是不公平的,因为 1 人的低利率使结果下降到 4.6 在我看来结果应该是 4.9 我搜索并发现了一个叫做算法偏差的东西我不太理解,zomato 应用公司找到了一个解决方案对于这种情况,喜欢在低评级和虚假评级中保持公平
所以谁能帮我一个公平的方程或算法
最佳答案
算法偏差
这个问题远非微不足道。事实上,它根本无法解决。至少不是你认为的数学方式。我将首先尝试通过几个示例来解释算法偏差:
亚马逊训练了一个人工智能来做出招聘决定。一段时间后,他们意识到人工智能更喜欢男性而不是女性申请人,因为这种偏见也出现在训练数据集中。在这种情况下,判断人工智能是否有不公平的偏见是相当微不足道的。
假设我设置了另一个 AI,它也决定邀请哪些申请人参加面试。现在我向亚马逊学习,并通过简单地删除性别、姓名或种族等细节来避免性别偏见。不,我的 AI 既不能是种族主义者,也不能是性别歧视者,所以应该是公平的,对吧?好吧,我的 AI 了解到,最好雇用 30 岁左右的申请人,因为他们有最先进技术的经验,而且对这个行业并不陌生。这对公司来说是理想的(可能至少——我会忽略那个细节,为了简单起见只是假设它)。但是现在我们忽略了新人和超过一定年龄的人。这公平吗?越来越模糊了
之前描述的 AI 被认为是不公平的,现在我还确保新的 AI 忽略了年龄。它现在对待新人的方式与对待 30 岁和年长者的方式相同。所以现在是公平的,对吧?但是现在它不太在乎申请人的经验,并且会给没有线索的人提供与投入时间和金钱来获得经验的人相同的机会。那么公平吗?好吧,我几乎无法回答这个问题
或者最后但并非最不重要的一点:对这个问题的评论已经表明定义什么是(不)公平是多么棘手。对于剩下的问题,我将假设您提出的评级方案是公平的。
修改评级评估的可能方法
有很多方法可以替代地编译评级。我只会展示两个简单的选项来实现你想要的,尽管肯定有很多方法可以用一点创造力来弄乱数字。
Median
中位数是一个很好的统计工具,可以消除由评级中的一些异常值引起的偏差。通常中位数计算为排序列表中间的值 - 或者如果评级数甚至是两个中间值的平均值。
def median(arr):
if len(arr) % 2 == 1:
return sorted(arr)[len(arr) // 2]
else:
i = len(arr) // 2
return sum(sorted(arr)[i - 1 : i + 1]) / 2
def weighted_rating(arr, w):
arithm = sum(arr) / len(arr)
m = median(arr)
return m * w + arithm * (1 - w)
w
应介于 0(仅算术平均值)和 1(仅中位数)之间。对于
w = 0.75
,评分为 4.9。因此,为了获得这样的评级,中位数的权重是平均值的两倍。
关于algorithm - 评价餐厅的抗偏算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568769/
我是一名优秀的程序员,十分优秀!