5

我正在开发一个用于对汽车照片进行分类的 Web 应用程序。用户将看到各种车辆的照片,并被要求回答一系列关于他们所看到的问题。结果将被记录到数据库中,平均并显示。

我正在寻找算法来帮助我识别经常不与该组投票的用户,这表明他们可能没有注意照片,或者他们对所看到的内容撒谎。然后,我想排除这些用户,并重新计算结果,这样我就可以有把握地说,这张特定的照片显示了这样和那样的车辆。

这个问题要问所有计算机科学的人,在哪里可以找到这样的算法,或者给我自己设计这样的算法的理论背景。我假设我将不得不学习一些概率和静态,也许是一些数据挖掘。一些书籍推荐会很棒。谢谢!

PS 这些是多项选择题。

这些都是很好的建议。谢谢!我希望有一种方法可以在堆栈溢出时选择多个正确答案,以便更多人的贡献得到认可!

4

7 回答 7

3

阅读The Elements of Statistical Learning,这是一本关于数据挖掘的伟大纲要。

您可能对无监督算法特别感兴趣,例如聚类。假设大多数人不撒谎,那么最大的集群是对的,其余的都是错误的。相应地标记人们,然后应用一些贝叶斯统计数据,你就完成了。

当然,大多数数据挖掘技术都是实验性的,所以不要指望它们总是正确的……甚至在大多数情况下。

于 2009-11-01T20:33:13.950 回答
2

我相信您所描述的可以使用outlier/anomaly detection解决。存在多种技术:

  • 基于统计的方法
  • 基于距离的方法
  • 基于模型的方法

我建议你看看这些来自优秀书籍Introduction to Data Mining的幻灯片

于 2009-11-01T20:57:56.070 回答
0

如果你知道你期待什么答案,你为什么要让人们投票?通过排除某些值,您基本上可以将投票投给喜欢的东西。汽车给不同的人留下不同的印象。如果 100 个人喜欢一辆车,那么当有人来说他/她不喜欢它时,你会排除投票吗?

但无论如何,考虑到您仍然想这样做,首先您需要大量来自“受信任”选民的数据。这会给你一个“好”答案的想法,从这一点上你可以选择排除阈值。

如果没有初始数据集,您将无法应用任何算法,因为您会得到错误的结果。仅考虑从 0 到 100 的范围内的 100 票。第二票是“1”。您将排除此票,因为距离平均值太远。

于 2009-11-01T19:58:23.583 回答
0

我认为一个非常简单的算法可以为你完成这个。您可以通过计算标准偏差等来尝试变得更漂亮,但我不会打扰。

这是一个应该足够的简单方法:

对于您的每个用户,计算他们回答的问题数量以及他们为该问题选择最受欢迎答案的次数。选择热门答案与您可以猜到的总答案的比例最低的用户提供了虚假数据。

您可能不想从只回答少数问题的用户那里丢弃数据,因为他们可能只是在一些问题上不同意,而不是输入虚假数据。

于 2009-11-01T19:59:15.267 回答
0

他们是什么类型的问题(是/否,或 1 到 10?)。

您可以通过使用平均值而不是平均值来避免不丢弃任何东西。如果响应中有极端异常值,则使用平均值可能会影响平均值,但如果您使用中位数,您可能会得到更好的答案。因此,例如,如果您有 5 个答案,请订购它们并选择中间的一个。

于 2009-11-01T20:03:15.197 回答
0

我认为您的意思是您担心某些人是“异常值”,他们会在您的数据中添加噪音,从而降低分类的可靠性。所以,如果你有一辆雪佛兰科迈罗,大多数人说它不是小马车、肌肉车或跑车,但你有一些傻瓜说这是一辆家用轿车,你会希望尽量减少他的影响。投票。

您可以做的一件事是为用户提供类似于 Stack Overflow 的信誉评分:

  • 用户与其他用户的“一致”越多,他或她的得分就越高。对于给定的用户(用户 X),这可以通过简单计算回答问题的用户选择与用户 X 相同类别的百分比来确定,然后对所有回答的问题取平均值。
  • 您可能希望将此值乘以回答的问题总数,以鼓励人们回答尽可能多的问题。(注意:如果您选择这样做,则相当于只是将百分比一致性分数相加,而不是平均它们。)
  • 您可以向用户展示最终的信誉分数,并确保向他们解释他们的回答与其他用户的回答有多一致而将获得奖励。这将鼓励人们回答更多的问题,但同时也要注意他们的回答。
  • 最后,您可以通过将所有选择给定类别的人的总声誉得分相加来计算给定类别的确定性得分。

其中一些想法可能需要一些改进,特别是因为我不知道你的确切情况。当然,如果人们可以在投票前看到其他人的选择,那么玩这个系统就太容易了。

于 2009-11-01T20:35:17.750 回答
0

如果您要收集诸如“从 1 到 10 的等级,您如何评价这辆车”之类的选票,您可能可以使用简单的平均值和标准差:标准差越小,您的选民之间的普遍共识就越一致,并且您可以标记平均水平为 3 位标准开发人员的用户。

对于多项选择,您需要更加小心。简单地丢弃除投票最多的选项之外的所有选项只会让选民不满。您需要建立衡量获胜者对其他选项的重要性的衡量标准,例如标记投票给选项的选项少于获胜选项计数的 1/3 的用户。

请注意,我写的是“标记用户”,而不是丢弃选票。如果您放弃投票,您无法说出您对结果的信心(“91% 的人认为这是一辆福特野马”)。如果用户标记了超过一定百分比的选票 - 好吧,这取决于您。

然而,您最棘手的问题可能是收集足够的选票。根据多项选择问题的简单程度,每张照片您可能需要几倍的选项作为投票数。否则统计是没有意义的。

于 2009-11-01T21:15:16.673 回答