Momentan habe ich nur Zeit für eine sehr kurze Antwort, aber ich werde später versuchen, sie zu erweitern.
Was Sie tun möchten, ist ein Clustering , da Sie einige Bezeichnungen für Ihre Daten ermitteln möchten. (Im Gegensatz zu einer Klassifizierung, bei der Sie zumindest für einen Teil der Daten Beschriftungen haben und den Rest beschriften möchten).
Um ein Clustering für Ihre Benutzer durchzuführen, müssen Sie sie als eine Art Punkt in einem abstrakten Raum haben. Dann messen Sie Entfernungen zwischen Punkten und sagen, dass Punkte, die "nahe" sind, "ähnlich" sind, und kennzeichnen sie entsprechend ihrer Position in diesem Raum.
Sie müssen Ihre Daten in ein Benutzerprofil umwandeln, dh eine Benutzer-ID, gefolgt von einem Zahlenvektor, der die Funktionen dieses Benutzers darstellt. In Ihrem Fall könnte jede Funktion eine "Kategorie der Website" oder eine "Kategorie des Produkts" sein, und die Zahl könnte der Betrag sein, der für diese Funktion ausgegeben wird. Oder ein Feature könnte natürlich eine Kombination aus Web und Produkt sein.
Stellen wir uns als Beispiel das Benutzerprofil mit nur drei Funktionen vor:
- Dollar ausgegeben in "techy" Netze,
- Dollar für "Mode" -Produkte ausgegeben,
- und Dollar, die für "aggressive" Videospiele auf "familienorientierten" Websites ausgegeben werden (wer weiß).
Um diese Profile zu erstellen, müssen Sie die vorhandenen "Kategorien" und "Stichwörter", die zu zahlreich sind, den Funktionen zuordnen, die Sie für relevant halten. Schauen Sie sich dazu die Themenmodellierung oder semantische Ähnlichkeit an. Sobald diese Karte erstellt ist, wird angegeben, dass alle Dollars, die für Websites mit den Schlüsselwörtern "Gadget", "Elektronik", "Programmierung" und X anderen ausgegeben werden, in unserem ersten Feature zusammengefasst werden sollen. und so weiter.
Haben Sie keine Angst, die Funktionen "aufzuerlegen"! Sie müssen sie verfeinern und möglicherweise vollständig ändern, sobald Sie die Benutzer gruppiert haben.
Sobald Sie Benutzerprofile haben, gruppieren Sie diese mit k-means oder was auch immer Sie sonst für interessant halten. Unabhängig davon, welche Technik Sie verwenden, werden Sie daran interessiert sein, den "repräsentativen" Punkt für jeden Cluster zu ermitteln. Dies ist normalerweise die geometrische "Mitte" der Punkte in diesem Cluster.
Zeichnen Sie diese "repräsentativen" Punkte und zeichnen Sie auch auf, wie sie mit anderen Clustern verglichen werden. Die Verwendung einer Radarkarte ist hier sehr nützlich. Überall dort, wo es ein hervorstechendes Merkmal gibt (etwas in dem Vertreter, das sehr ausgeprägt ist und auch im Vergleich zu anderen Clustern sehr hervorsticht), ist es ein guter Kandidat, um Ihnen zu helfen, den Cluster mit einem einprägsamen Satz ("Nerds", "Fashionistas") zu kennzeichnen. , "aggressive Mütter" ...).
Denken Sie daran, dass ein Clustering-Problem ein offenes Problem ist, es gibt also keine "richtige" Lösung! Und ich denke, meine Antwort ist schon ziemlich lang; Überprüfen Sie auch die Normalisierung der Profile und filtern Sie Ausreißer.