gpt4 book ai didi

machine-learning - 使用机器学习来删除重复数据

转载 作者:行者123 更新时间:2023-11-30 08:21:11 25 4
gpt4 key购买 nike

我遇到以下问题,并认为我可以使用机器学习,但我不完全确定它是否适合我的用例。

我有一个包含大约一亿条记录的数据集,其中包含客户数据,包括姓名、地址、电子邮件、电话等,我希望找到一种方法来清理这些客户数据并识别数据集中可能的重复项。

大多数数据都是使用外部系统手动输入的,未经验证,因此我们的许多客户最终在我们的数据库中拥有多个配置文件,有时每条记录中都有不同的数据。

例如,对于客户 John Doe,我们可能有 5 个不同的条目,每个条目都有不同的联系方式。

我们还遇到这样的情况:代表不同客户的多个记录在电子邮件等关键字段上匹配。例如,当客户没有电子邮件地址但数据输入系统需要它时,我们的顾问将使用随机电子邮件地址,从而导致许多不同的客户资料使用相同的电子邮件地址,同样适用于电话、地址等。

我们的所有数据都在 Elasticsearch 中建立索引并存储在 SQL Server 数据库中。我的第一个想法是使用 Mahout 作为机器学习平台(因为这是一个 Java 商店),也许使用 H-base 来存储我们的数据(只是因为它适合 Hadoop 生态系统,不确定它是否有任何实际值(value)) ),但是我读得越多,我就越困惑它在我的情况下如何工作,对于初学者来说,我不确定我可以使用什么样的算法,因为我不确定这个问题属于哪里,我可以使用聚类算法或分类算法吗?当然,必须使用某些规则来确定配置文件的唯一性,即哪些字段。

我们的想法是最初将其部署为客户资料重复数据删除服务,我们的数据输入系统可以在输入新的客户资料时使用它来验证和检测可能的重复项,并在未来将其开发为分析工具收集有关客户的见解的平台。

任何反馈将不胜感激:)

谢谢。

最佳答案

实际上已经有很多这方面的研究,人们为此使用了许多不同类型的机器学习算法。我亲自尝试过genetic programming ,效果相当不错,但我个人仍然更喜欢手动调整匹配。

我有一些关于这个主题的研究论文的引用文献。 StackOverflow 不需要太多链接,但这里的引用书目信息对于使用 Google 来说应该足够了:

  • 链接发现配置的无监督学习,Andriy Nikolov、Mathieu d’Aquin、Enrico Motta
  • 基于相似性度量的实例匹配机器学习方法,Shu Rong1、Xing Niu1、Evan Wei Xian2、Haofen Wang1、Qiang Yang2 和 Yong Yu1
  • 学习 Record Linkage 的阻止方案,Matthew Michelson 和 Craig A. Knoblock
  • 使用遗传编程学习关联规则,Robert Isele 和 Christian Bizer

不过,这只是研究。如果您正在寻找解决问题的实用解决方案,我已经为此类重复数据删除构建了一个开源引擎,名为 Duke 。它使用 Lucene 对数据进行索引,然后在进行更详细的比较之前搜索匹配项。它需要手动设置,尽管有一个脚本可以使用遗传编程(请参阅上面的链接)为您创 build 置。还有一个人想要为 Duke 制作一个 ElasticSearch 插件( see thread ),但到目前为止什么也没做。

无论如何,这就是我在您的案例中采取的方法。

关于machine-learning - 使用机器学习来删除重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com