我有一个问题,想用机器学习来解决,但不确定它是否适用于我的用例。
我有一个包含约1亿条记录的数据集,其中包括客户数据,包括姓名、地址、电子邮件、电话等,希望找到一种清理客户数据并识别可能重复的数据的方法。
大部分数据是使用外部系统手动输入的,没有经过验证,因此我们的许多客户在我们的数据库中拥有一个以上的档案,有时每个记录中的数据都不同。例如,我们可能会为客户John Doe拥有5个不同的条目,每个条目都具有不同的联系方式。
我们还有这样一种情况,即代表不同客户的多个记录在关键字段(如电子邮件)上匹配。例如,当客户没有电子邮件地址,但数据输入系统需要它时,我们的顾问将使用随机的电子邮件地址,导致许多不同的客户档案使用相同的电子邮件地址,电话号码,地址等。
我们所有的数据都在Elasticsearch中进行索引,并存储在SQL Server数据库中。我的第一个想法是使用Mahout作为机器学习平台(因为这是一个Java商店),也许使用H-base来存储我们的数据(只是因为它符合Hadoop生态系统,不确定它是否真正有价值),但我越看越糊涂,因为我不确定它会在我的情况下起作用,首先我不确定我可以使用什么样的算法,因为我不确定这个问题属于哪种算法类型,我能使用聚类算法或分类算法吗?当然,一定要使用某些规则来确定档案的唯一性,即哪些字段。
想法是最初部署此服务作为客户档案去重器,我们的数据输入系统可以使用它来验证并检测可能的重复项,并在将来将其发展成一个分析平台,以收集有关我们的客户的见解。
任何反馈都将不胜感激:)
谢谢。