Ich bin neu im maschinellen Lernen, versuche also, Literatur zu finden, bin mir aber nicht einmal sicher, wofür Google zuständig ist. Meine Daten haben folgende Form:
User A performs Action P
User B performs Action Q
User C performs Action R
...
User C performs Action X
User A performs Action Y
User B performs Action Z
...
Wobei jede Aktion bestimmte Merkmale aufweist (Datum, Uhrzeit, Kunde usw.). Es gibt ungefähr 300 Benutzer und wir haben ungefähr 20.000 Aktionen.
Frage :
Ich möchte herausfinden, ob es eine Kausalität / Korrelation zwischen Benutzeraktionen gibt. Beispiel: "Jedes Mal, wenn Benutzer E Aktion T ausführt, führt Benutzer G 2 Tage später Aktion V aus." Dazwischen könnten jedoch viele andere Benutzer viele andere Aktionen ausführen, und es ist möglich, dass keine Korrelation gefunden werden kann. Es ist auch möglich, dass einige Benutzer korreliert sind, andere jedoch völlig unabhängig. Ist dies etwas, das maschinelles Lernen für mich finden könnte? Gibt es einen bestimmten Algorithmus oder eine Reihe von Algorithmen, die mir helfen könnten?
Ich habe über die Assoziationsanalyse und den Apriori-Algorithmus gelesen, aber ich glaube nicht, dass dies mir das geben wird, was ich brauche, da es als Eingabe bekannte, gut abgegrenzte Datensätze zu erfordern scheint, während ich nur einen langen Strom scheinbar zufälliger Benutzer habe Aktionen. Anregungen, was zu sehen wäre, wäre sehr dankbar!
P
Antworten:
Ich denke, Sie müssen einige Daten vorbereiten, bevor Sie einen Algorithmus verwenden, um häufig gesetzte Elemente und Zuordnungsregeln zu finden.
Siehe die Transaktionstabelle in diesem Artikel: market basket analysys
In Ihrem Fall müssen Sie eine maximale Zeitspanne zwischen den zu erwartenden Interaktionen festlegen (und genau abstimmen), dann können Sie einen häufigen Benutzer auswählen und für jede von ihm durchgeführte Transaktion (oder eine Stichprobe) eine hinzufügen Einzeldatensatz 2 Tage einer anderen Benutzertransaktion. Attribute sollten boolesch sein wie
quelle
Eine Möglichkeit zum Durchsuchen Ihrer Daten besteht darin, eine Tabelle der vorherigen Aktion x der nächsten Aktion zu erstellen. Suchen Sie also für jedes Ereignis die nächste Aktion desselben Benutzers. Sie können auch die vorherige Aktion X Verzögerung bis zur nächsten Aktion tabellieren.
Dann können Sie untersuchen, ob die vorherige Aktion die nächste beeinflusst. Wenn nicht, sind Ihre Benutzer "zustandslos".
Eine weitere mögliche Vereinfachung besteht darin, die Benutzer-IDs zu ignorieren und zu fragen, ob die Häufigkeit jeder Aktion im Zeitverlauf gleich ist oder variiert. und wenn es variiert, ob es zyklisch ist oder einen Trend zeigt.
Die Antworten auf diese Fragen zeigen möglicherweise, dass Ihre Daten wenig strukturiert sind. Alternativ könnten sie einige neue zu testende Hypothesen aufstellen.
quelle
Das ist eine interessante Frage. Der beste Ansatz besteht darin, den gesamten Datensatz zu untersuchen und eine Häufigkeitstabelle zu erstellen. Beispiel: Benutzer A führt Aktion P aus und Y Benutzer B führt Aktion Q und Z aus, Benutzer C führt Aktion R und X aus. In ähnlicher Weise führen mehr Benutzer mehr Aktionen aus. Es gibt also verschiedene Ansätze, um mit diesem Datensatz umzugehen. 1) Cluster-Algorithmus, um ähnliche Elemente in verschiedenen Buckets zu gruppieren
Ohne den gesamten Datensatz durchzugehen, wird nicht empfohlen, für diese Art von Fragen einen bestimmten Algorithmus vorzuschreiben.
quelle