© DrHitch/Shutterstock.com
Apache Mahout

2 Finden von Ähnlichkeitsstrukturen in Kundenprofilen


Bei der weiter voranschreitenden Digitalisierung der Geschäftswelt steigt auch die Kundenanzahl in E-Commerce-Systemen immer weiter an. Wie soll man diese kontinuierlich steigende Anzahl an Kunden im Überblick behalten, verwalten und optimale Werbung anbieten? Eine Methode: das Bilden von Kundenclustern.

Im ersten Kapitel wurden personalisierte Produktempfehlungen mit Mahout [1] näher betrachtet, doch nicht immer sollen Kunden einzeln und persönlich angesprochen werden. Oft gibt es die Anforderung, Marketinginhalte nur einer bestimmten Gruppe von Kunden zugänglich zu machen. Standard-E-Commerce-Systeme wie Hybris oder IBM WebSphere Commerce können dabei einfache Kundensegmente selbst mithilfe demografischer Daten oder auf Basis des direkten Kaufverhaltens bilden. Abbildung 2.1 zeigt zum Beispiel die Anlage eines Kundensegments für weibliche Kunden zwischen 30 und 39 Jahren in IBM WebSphere Commerce. Interessant wird es aber, wenn man die Segmente nicht nur auf Basis von offensichtlichen Kriterien definieren möchte. Wie erkennt man zum Beispiel im B2B-Umfeld die Kundengruppe der Heizungsbauer und kann diese von der Kundengruppe der Elektroinstallateure unterscheiden?

brosseit_voigt_mahout2_1.png

Abbildung 2.1: Kundensegmente in IBM WebSphere Commerce

Hier stellt Clustering – also das Finden von Ähnlichkeitsstrukturen in einer Datenbasis – eine interessante Option dar. Im Gegensatz zur Klassifizierung, die im dritten Kapitel näher betrachtet werden soll, versucht man beim Clustern von Daten neue Gruppen zu identifizieren und nicht bestehende Daten bekannten Gruppen zuzuordnen. Der Fokus liegt für diesen Artikel wieder auf der Analyse des Kaufverhaltens von Kunden, wobei die Clusterbildung in Mahout dafür keine Einschränkungen vorgibt. Kunden, die dabei als ähnlich ermittelt werden, werden in einem Cluster verwaltet. Ziel dieser Clusterbildung soll beispielsweise sein, Kunden gezielter Werbung anzuzeigen und speziell zugeschnittene Sonderangebote zu unterbreiten.

Algorithmen zur Clusterbildung

Wie auch schon für die Produktempfehlungen gibt es für das Clustern eine Vielzahl an unterschiedlichen Algorithmen. Welcher Algorithmus in welchem Szenario die besten Ergebnisse liefert, sollte man über entsprechende Tests evaluieren. Tabelle 2.1 zeigt eine Übersicht der in Mahout vorhandenen Algorithmen für das Clustern von Daten. Der Vollständigkeit halber muss erwähnt werden, dass hinter den Algorithmen wieder verschiedene Implementierungen liegen können.

Algorithmus

Kurzbeschreibung

k-Means Clustering

k-Means ist einer der ältesten Algorithmen für die Clusterbildung. Hierbei werden einer bekannten Anzahl von Gruppen einzelne Elemente zugeordnet. In mehreren Durchläufen wird versucht, die Abstände der Gruppenmitglieder zu den Zentren der Clustergruppen zu minimieren.

Fuzzy k-Means

Fuzzy k-Means (oder auch Fuzzy c-Means) ist eine Erweiterung von k-Means, wobei hier mit weichen Clustergrenzen gearbeitet wird. k-Means versucht, jedes Element genau einem Cluster zuzuordnen, während Fuzzy k-Means auch überlappende Cluster bildet, sodass ein Element in mehreren Clustern enthalten sein kann.

Streaming k-Means

Diese Erweiterung von k-Means unterteilt die Clusterbildung in zwei Schritte. Der erste Schritt (Streaming Step) versucht, die Datenbasis vorzubereiten und eigenständig die Anzahl der möglichen Cluster zu bestimmen. Vereinfacht gesagt wird immer ein neuer Cluster erstellt, wenn der aktuelle Datensatz zu weit von den Zentren der bestehenden Cluster entfernt ist. Auf Basis des Ergebnisses des ersten Schritts wird dann über den BallKMeans-Algorithmus [2] die Analyse finalisiert.

Spectral Clustering

Bei diesem Algorithmus werden die Spektren (Eigenwerte) für Ähnlichkeiten verwendet. Die Analyse erfolgt über den Aufbau von Graphen, wobei die gewichteten Kanten für Distanzen/Unähnlichkeiten verwendet werden. Dieser Algorithmus kann insbesondere für das Clustern von Bildern verwendet werden [3].

Canopy Clustering (Deprecated!)

Dies ist ein einfacher Algorithmus, welcher Objekte als Punkte in einem mehrdimensionalen Merkmalsraum betrachtet. Der Algorithmus wird oft zur Aufbereitung von Daten verwendet, bevor diese mit k-Means geclustert werden. Mit der Einführung von Streaming k-Means wurde der Algorithmus in Mahout als deprecated markiert.

Tabelle 2.1: Clustering-Algorithmen

Als Beispiel soll nun k-Means näher betrachtet werden. Abbildung 2.2 zeigt exemplarisch die vereinfachte Arbeitsweise von k-Means: Es existiert eine Reihe von Objekten, welche geclustert werden soll. Für den Anfang wird die Anzahl der erwarteten Cluster genutzt, um daraus willkürlich Startpunkte für die Clusterbildung zu definieren. Als Nächstes werden die Abstände der einzelnen Objekte zu den Clusterzentren ermittelt und die Objekte entsprechend zugeordnet. Mit diesen Zuordnungen werden nun die neuen Zentren der einzelnen Cluster berechnet, sodass der Objektabstand zum Clusterzentrum möglichst minimal ist. Mit den jetzt ermittelten neuen Clusterzentren wird der Algorithmus von vorne gestartet. Durch die neuen Mittelpunkte können sich Objektzuordnungen entsprechend ändern und wied...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang