Ich habe das folgende Problem und dachte, ich könnte maschinelles Lernen verwenden, aber ich bin mir nicht ganz sicher, ob es für meinen Anwendungsfall funktioniert.Verwenden von maschinellem Lernen zum Duplizieren von Daten
Ich habe einen Datensatz von etwa hundert Millionen Datensätzen mit Kundendaten einschließlich Namen, Adressen, E-Mails, Telefone usw. und möchte einen Weg finden, diese Kundendaten zu bereinigen und mögliche Dubletten im Datensatz zu identifizieren.
Die meisten Daten wurden manuell mit einem externen System ohne Validierung eingegeben, so dass viele unserer Kunden mehr als ein Profil in unserer Datenbank hatten, manchmal mit unterschiedlichen Daten in jedem Datensatz.
Zum Beispiel Wir könnten 5 verschiedene Einträge für einen Kunden John Doe haben, jeder mit anderen Kontaktdaten.
Wir haben auch den Fall, in dem mehrere Datensätze, die verschiedene Kunden repräsentieren, in Schlüsselfeldern wie E-Mail übereinstimmen. Zum Beispiel, wenn ein Kunde keine E-Mail-Adresse hat, aber das Datenerfassungssystem es erfordert, verwenden unsere Berater eine zufällige E-Mail-Adresse, was zu vielen verschiedenen Kundenprofilen führt, die dieselbe E-Mail-Adresse verwenden, das gleiche gilt für Telefone, Adressen usw.
Alle unsere Daten werden in Elasticsearch indiziert und in einer SQL Server-Datenbank gespeichert. Mein erster Gedanke war, Mahout als Machine-Learning-Plattform (da dies ein Java-Shop ist) zu verwenden und vielleicht H-Base zu verwenden, um unsere Daten zu speichern (nur weil es mit dem Hadoop Ecosystem zusammenpasst, nicht sicher, ob es wirklich wertvoll ist)), aber je mehr ich darüber lese, desto verwirrter bin ich, wie es in meinem Fall funktionieren würde. Für den Anfang bin ich mir nicht sicher, welche Art von Algorithmus ich verwenden könnte, da ich nicht sicher bin, wo dieses Problem liegt. kann ich einen Clustering-Algorithmus oder einen Klassifizierungsalgorithmus verwenden? und natürlich müssen bestimmte Regeln verwendet werden, was die Einzigartigkeit eines Profils ausmacht, d. h. welche Felder.
Die Idee ist, dies zunächst als Customer Profile De-Duplicator Service der Art zu implementieren, dass unsere Dateneingabesysteme verwenden können, um mögliche Duplikate bei der Eingabe eines neuen Kundenprofils zu validieren und zu erkennen und in Zukunft vielleicht zu einem Analyseplattform, um Einblicke in unsere Kunden zu gewinnen.
Jede Rückmeldung wird sehr geschätzt werden :)
Vielen Dank.
'manchmal mit unterschiedlichen Daten in jedem Datensatz.', wie sollte also ein maschineller Lernalgorithmus Duplikate finden? Woher weißt du auch, ob John Doe die gleiche Person ist, wenn er mit fast den gleichen Daten hinzugefügt wurde? IMHO Sie werfen Schlagworte und alles, was Sie brauchen, ist eine enge relationale Modell in Ihrer Kundendatenbank. –
@thomas Es stimmt, dass ich wirklich Schlagworte schreibe, die Wahrheit ist, dass ich versuche, in große Daten zu kommen und dachte, dies wäre eine gute Gelegenheit zu lernen, deshalb sagte ich, ich wüsste nicht, ob das überhaupt funktionieren würde . Die Idee ist, dass ich auf Schlüsselfeldern wie E-Mail zum Beispiel passen müsste, die Einzigartigkeit darstellen, so weit das Geschäft geht, dachte, dass es nicht immer wahr ist. Danke für Ihre Eingabe. –
Nicht sicher, welche Edition Ihr Sql-Server ist, aber möglicherweise können Sie die Datenbereinigungsumwandlungen in SSIS (unscharfe Gruppierung und unscharfe Suche) nutzen: http://msdn.microsoft.com/en-us/magazine/cc163731. aspx –