2009-05-06 12 views
9

Kennt jemand einen guten Algorithmus für Clustering auf diskrete und kontinuierliche Attribute? Ich arbeite an einem Problem der Identifizierung einer Gruppe von ähnlichen Kunden und jeder Kunde hat sowohl diskrete als auch kontinuierliche Attribute (Think Art der Kunden, Höhe des Umsatzes von diesem Kunden, geographische Lage und etc ..)Clustering-Algorithmus mit diskreten und kontinuierlichen Attributen?

Traditionell Algorithmus wie K-means oder EM arbeiten für kontinuierliche Attribute, was ist, wenn wir eine Mischung aus kontinuierlichen und diskreten Attributen haben?

Antwort

5

Wenn ich mich richtig erinnere, könnte COBWEB-Algorithmus mit diskreten Attributen arbeiten.

Und Sie können auch verschiedene 'Tricks' zu den diskreten Attributen machen, um sinnvolle Distanzmetriken zu erstellen.

Sie könnten nach Clustering von kategorischen/diskreten Attributen googlen, einer der ersten Treffer: ROCK: A Robust Clustering Algorithm for Categorical Attributes.

0

Sie könnten auch affinity propagation als eine mögliche Lösung betrachten. Um das kontinuierliche/diskrete Dilemma zu überwinden, müssen Sie jedoch eine Funktion definieren, die die diskreten Zustände bewertet.

0

Ich würde den Benutzern tatsächlich Paare der diskreten Attribute präsentieren und sie bitten, ihre Nähe zu definieren. Sie würden sie mit einer Skala präsentieren, die von [Synonym .. sehr fremd] oder ähnlichem reicht. Wenn viele Leute dies tun, werden Sie eine weithin akzeptierte Näherungsfunktion für die nichtlinearen Attributwerte erhalten.

1

R ist ein großartiges Tool für das Clustering - der Standardansatz wäre die Berechnung einer Unähnlichkeitsmatrix in Ihren gemischten Daten unter Verwendung von daisy und die anschließende Clusterbildung mit dieser Matrix unter Verwendung von agnes.

Die cba module on CRAN enthält eine Funktion zum Clustern von binären Prädiktoren basierend auf ROCK.

0

Wie wäre es, jedes Ihrer kategorialen Attribute in eine Reihe von N-1 binären Indikatorattributen umzuwandeln (wobei N die Anzahl der Kategorien ist)? Sie sollten keine Angst vor hoher Dimensionalität haben, da eine spärliche Darstellung (wie Mahouts SequentialAccessSparseVector kann verwendet werden). Sobald Sie das tun, können Sie eine klassische K-Mittel oder was auch immer Standard nur numerische Clustering-Algorithmus verwenden.

Verwandte Themen