处理来自多个容易出错的源的数据聚合的算法

时间:2011-05-25 03:14:07

标签: algorithm data-mining

我正在汇总来自几个不同来源的音乐会列表,其中没有一个都是完整和准确的。某些数据来自用户(例如last.fm),可能不正确。其他数据源非常准确,但可能不包含每个事件。我可以使用事件日期和城市/州等属性来尝试匹配来自不同来源的列表。我想合理地确定这些事件是有效的。看起来使用尽可能多的不同来源来验证容易出错的资源上的列表是一个很好的策略。

我不确定这个术语的含义是什么,因为我想进一步研究它。是数据挖掘吗?有没有现有的算法?我知道解决方案永远不会完全准确。

4 个答案:

答案 0 :(得分:3)

这是一种在统计数据中定位的方法 - 具体来说,它使用隐马尔可夫模型(http://en.wikipedia.org/wiki/Hidden_​​Markov_model):

1)使用匹配过程生成可能事件的清理列表。考虑将每个事件标记为“true”或“bogus”,即使标记对您是隐藏的。你可能会想到某些事件源会产生它们,根据一个未知参数的概率将它们生成为“true”或“bogus”。

2)将未知参数与每个列表来源相关联。这些提供了此源将报告事件源生成的真实事件的概率,以及它将报告源生成的虚假事件的概率。

3)请注意,如果您能看到“真实”或“虚假”的标记,您可以轻松找出每个来源的概率。不幸的是,当然,你看不到这些隐藏的标记。

4)让我们将这些隐藏的标记称为“潜在变量”,因为这样你就可以使用http://en.wikipedia.org/wiki/Em_algorithm来爬山从有意义的解决方案来解决这个问题,从随机开始。

5)通过将事件划分为类,并提供列表参数的来源,使得他们更有可能报告某些事件类别而不是其他事件,显然可以使问题更复杂。如果您拥有对某些事件非常可靠的源,这可能很有用。

答案 1 :(得分:1)

一个潜在的搜索词是“模糊逻辑”。

我使用float或double来存储某些事件详细信息正确的概率(0.0 =反驳...... 1.0 =已证实)。遇到消息来源时,请相应地调整概率。不过你可以考虑很多:

  • 尝试识别多个来源何时相互复制并减少其影响
  • 更加重视明确承认旧数据的最新数据或数据(例如,100%可靠的网站称“音乐会X将于8月4日举行”)以及一个未知的博客声称“音乐会X从8月4日开始到第9个“,你可能会保持这样一场音乐会的概率为100%但是有一个列表,其中包含两个日期以及你认为合适的任何概率......”
  • 注意假设事物是离散的;矛盾的信息可能反映了多个类似的事件,双重计费,同名的表演者等等 - 你对同一事物被引用的信心越大,数据组合起来就越能相互加强或否定
  • 你应该能够通过使用与一系列音乐会相关的数据来“回溯”你的演变逻辑,你现在已经完全了解他们的实际演出或缺乏演奏。在事件发生之前的各个截止日期之前发布的过程数据,以查看您获得的预测如何反映实际结果,调整和重复(可能是自动)

从您拥有的网站开始抓取可能是最实际的,然后考虑您所看到的信息类型的逻辑含义。然后可以确定使用模糊逻辑需要处理问题的哪些方面。进化方法可能意味着重新设计,但最终可能会比在模糊的设计阶段陷入困境更快。

答案 2 :(得分:1)

我相信你要找的词是Record Linkage -

  

将两个或多个与同一实体相关的记录汇集在一起​​的过程(例如,个人,家庭,事件,社区,商业,医院或地理区域)

This presentation (PDF)看起来像是对该领域的一个很好的介绍。您可能使用的一种算法是Fellegi-Holt - 一种编辑记录的统计方法。

答案 3 :(得分:0)

数据挖掘是关于从数据库等结构化资源中查找信息,或者是为您分隔字段的帖子。当你必须从自由文本中解析信息时,这里有一些文本挖掘。在任何一种情况下,您都可以跟踪有多少数据源同意节目作为置信度量。显示置信度量或使用它来确定您的数据是否足够好。有很多可玩的。拥有合法城市,场地和行为的列表可以帮助您确定字符串是否代表合法实体。您的列表甚至可能位于一个数据库中,可以让您比较城市和场地的一致性。