Sie müssen eine Distanzfunktion finden, die für Ihre Daten funktioniert. Die Verwendung binärer Indikatorvariablen löst dieses Problem implizit. Dies hat den Vorteil, dass Sie Ihre wahrscheinlich matrixbasierte Implementierung mit dieser Art von Daten fortsetzen können, aber ein viel einfacherer Weg - und für die meisten entfernungsbasierten Methoden geeignet - ist es, nur eine modifizierte Distanzfunktion zu verwenden.
Es gibt eine unendliche Anzahl solcher Kombinationen. Sie müssen experimentieren, was am besten für Sie funktioniert. Im Wesentlichen möchten Sie vielleicht eine klassische Metrik für die numerischen Werte verwenden (normalerweise mit angewendeter Normalisierung; aber es könnte sinnvoll sein, diese Normierung auch in die Entfernungsfunktion zu verschieben), plus eine Distanz für die anderen Attribute, die entsprechend skaliert werden.
In den meisten realen Anwendungsdomänen von entfernungsbasierten Algorithmen ist dies der schwierigste Teil, der Ihre domänenspezifische Abstandsfunktion optimiert. Sie können dies als Teil der Vorverarbeitung sehen: Definition der Ähnlichkeit.
Es gibt viel mehr als nur euklidische Entfernung. Es gibt verschiedene mengentheoretische Maßnahmen, die in Ihrem Fall viel geeigneter sein können. Zum Beispiel, Tanimoto-Koeffizient, Jaccard-Ähnlichkeit, Würfelkoeffizient und so weiter. Cosine könnte auch eine Option sein.
Es gibt ganze Konferenzen zu den Themen Ähnlichkeitssuche gewidmet - niemand behauptet, dies alles andere als euklidische Vektorräume trivial ist (und eigentlich gar nicht da): http://www.sisap.org/2012
Sie Frage ist sehr vage. Bitte fügen Sie einige Beispiele hinzu, um es konkreter zu machen: Was genau sind die Daten, mit denen Sie es zu tun haben? Welche Art von Clustern erwarten Sie? Nach welchen Kriterien? Welche Algorithmen verwendest du? – Shai
In Bezug auf die Umwandlung kategorischer Daten in binäre Werte: siehe http://arxiv.org/pdf/1210.7070v3.pdf der Beginn der sek. 2 beschreiben diese Umwandlung. – Shai
Ich verwende k-nearest neighbor clustering. Ich möchte einen Cluster von k = 20 Punkten um einen Testpunkt unter Verwendung mehrerer Parameter/Dimensionen erzeugen (Alter, Geschlecht, Bank, Gehalt, Kontotyp). Für Kontoart, z. B. haben Sie Girokonto, Konto und Sparkonto (kategorische Daten). Das Gehalt ist jedoch kontinuierlich (numerisch). Wie verwende ich kategorische Felder mit kontinuierlichen Feldern, um KNN-Clustering durchzuführen? – Graham