首页 文章

使用机器学习来重复数据

提问于
浏览
21

我有以下问题,并认为我可以使用机器学习但我不完全确定它将适用于我的用例 .

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

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

对于实例我们可能为客户John Doe提供5个不同的条目,每个条目都有不同的联系方式 .

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

我们的所有数据都在Elasticsearch中编制索引并存储在SQL Server数据库中 . 我的第一个想法是使用Mahout作为机器学习平台(因为这是一个Java商店)并且可能使用H-base来存储我们的数据(仅仅因为它适合Hadoop生态系统,不确定它是否具有任何实际 Value ),但是我读到的越多,我对它如何在我的情况下工作就越困惑,对于初学者我不知道我可以使用什么样的算法,因为我不确定这个问题在哪里,我可以使用聚类算法或分类算法吗?当然,必须使用某些规则来确定概况的独特性,即哪些领域 .

我们的想法是最初将其部署为客户配置文件重复数据删除服务,我们的数据输入系统可以在输入新的客户配置文件时用于验证和检测可能的重复项,并且将来可能将其开发成分析平台以进行收集关于我们客户的见解 .

任何反馈将不胜感激:)

谢谢 .

2 回答

  • 15

    实际上已经对此进行了大量研究,人们已经使用了许多不同类型的机器学习算法 . 我个人试过genetic programming,效果相当不错,但我个人仍然喜欢手动调整匹配 .

    我有一些关于这个主题的研究论文的参考资料 . StackOverflow不需要太多的链接,但这里是使用Google应该足够的参考书目信息:

    • 链接发现配置的无监督学习,Andriy Nikolov,Mathieu d'Aquin,Enrico Motta

    • 基于相似度量的实例匹配机器学习方法,舒荣1,邢牛1,Evan Wei Xiang2,王浩芬1,杨强2,雍宇1

    • 记录联系的学习阻止方案,Matthew Michelson和Craig A. Knoblock

    • 使用遗传编程的学习联系规则,Robert Isele和Christian Bizer

    那个's all research, though. If you'正在为你的问题寻找一个实用的解决方案我为这种类型的重复数据删除构建了一个开源引擎,名为Duke . 它使用Lucene对数据进行索引,然后在进行更详细的比较之前搜索匹配项 . 它需要手动设置,尽管有一个脚本可以使用遗传编程(参见上面的链接)为您创建设置 . 还有一个人想为Duke制作一个ElasticSearch插件(see thread),但到目前为止还没有做任何事情 .

    无论如何,这是我在你的情况下采取的方法 .

  • 10

    刚遇到类似的问题,所以谷歌做了一点 . 找一个名为"Dedupe Python Library" https://dedupe.io/developers/library/en/latest/的图书馆

    该库的文档详细介绍了重复数据删除时的常见问题和解决方案以及重复数据删除领域的论文 . 因此,即使您没有使用它,仍然可以阅读该文档 .

相关问题