Benutzerprofile mit Mahout aus dem kategorisierten Benutzerverhalten

9

Ich versuche, Benutzer mit Mahout zu bündeln und zu klassifizieren. Im Moment, in dem ich in der Planungsphase bin, sind meine Ideen völlig durcheinander, und da ich relativ neu in diesem Bereich bin, stecke ich bei der Datenformatierung fest.

Nehmen wir an, wir haben zwei Datentabellen (groß genug). In der ersten Tabelle gibt es Benutzer und ihre Aktionen. Jeder Benutzer hat mindestens eine Aktion und sie können auch zu viele Aktionen haben. Ungefähr 10000 verschiedene user_actions und Millionen von Datensätzen sind in der Tabelle.

%Vor%

In der anderen Tabelle gibt es Aktionskategorien. Jede Aktion darf keine oder mehrere Kategorien haben. Es gibt 60 Kategorien.

%Vor%

Ich werde versuchen, ein Benutzerklassifizierungsmodell mit Mahout zu erstellen, aber ich habe keine Ahnung, was ich tun soll. Welche Art von Benutzervektoren sollte ich erstellen? Oder brauche ich wirklich Benutzervektoren?

Ich denke, ich muss etwas wie erstellen;

%Vor%

Problem hier, einige Benutzer haben mehr als 100000 Aktionen ausgeführt (einige von ihnen sind die gleichen Aktionen)

Also; das ist nützlicher, denke ich;

%Vor%

Die Dinge, um die ich mich auch Sorgen mache, sind

  • Wie sollte ich Kategorien für Nutzer gewichten? Zum Beispiel hat u1 mindestens drei Aktionen, die sich auf cat1 beziehen, während u3 nur 1 hat. Diese sollte anders sein?
  • Wie kann ich den Unterschied zwischen aktiven und passiven Nutzern verringern? Wie u1 hat zu viele Aktionen und so Kategorien, u3 hat nur 1.

Jede Anleitung ist willkommen.

    
Turcia 29.06.2015, 23:11
quelle

1 Antwort

1

Ich würde eine Zeile pro Benutzer erstellen, wie Sie es tun, und ich würde eine Spalte für jede der Kategorien haben; Dies würde zu 60 Spalten führen, wenn ich Ihr Beispiel richtig verstehe. Die Werte der Spalten reichen von 0 bis zur maximalen Anzahl, wie oft die Kategorie für den Benutzer gesehen wurde. Das Ergebnis wären 60 Zahlen für jeden Benutzer, von denen die meisten 0 sind.

Es könnte notwendig sein, eine Art Normalisierung in den Zeilen durchzuführen. In Analogie zu dem, was zum Erzeugen von Dokumentenvektoren im Text-Mining getan wird, könnte etwas wie Term-Frequenznormierung auf die Zeile angewendet werden. Für jede Spalte ist möglicherweise auch eine Normalisierung erforderlich.

Von hier aus könnte das Clustering mit dem von Ihnen gewählten Algorithmus durchgeführt werden, mit Clustern der Validitätsmaße, die Ihnen bei der Auswahl der interessantesten Clustering helfen.

Es liegt in der Natur der Sache, dass Sie den Prozess iterativ wiederholen müssten, um die Eingabedaten vielleicht auf neue Weise darzustellen.

    
awchisholm 02.07.2015 20:33
quelle