2

Ich muss kommerzielle Produkte klassifizieren. Sie wissen, was Preisvergleichsmotoren tut.Unüberwachte Klassifizierung - Merkmal Vektoren erhalten

Wir haben die Merkmalsvektoren erhalten. Sie sind nicht die besten, aber ziemlich gut. Mein letzter Schritt ist, sie zu klassifizieren, ohne zu wissen, wie viele Cluster es gibt. Algorithmen wie k-means funktionieren nicht, da sie benötigen, wie viele Klassen es gibt.

Also hier Beispielsatz von Merkmalsvektoren. Sie sind hier (als Beispiel) in Ordnung, aber ich brauche einen Algorithmus, der nicht von irgendeiner Reihenfolge abhängt.

################################################# 
47 - ddr2;asus;1066;g41;am;p5qpl;775; 
48 - g41;p5qpl;asus;am;ddr2;vga;anakart; 
49 - intel;anakart;ddr2;1066;p5qpl;asus;am; 
50 - p5qpl;ddr2;asus;am;g41;vga;anakart; 
51 - ddr2;asus;1066;g41;am;p5qpl;775; 
52 - g41;p5qpl;1066;am;ddr2;asus;anakart; 
53 - p5qpl;ddr2;1066;am;g41;asus;sata; 
54 - g41;p5qpl;1066;am;asus;ddr2;sata; 
################################################### 
55 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
56 - 2di;karti;384bit;asus;engtx480;ekran;pci; 
57 - asus;engtx480;2di;vga;gddr5;384bit;16x; 
58 - 2di;karti;engtx480;384bit;asus;gddr5;1536mb; 
59 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
60 - engtx480;asus;384bit;2di;gddr5;vga;16x; 
#################################################### 
61 - ray;blu;ihbs112;siyah;bulk;dvd;sata; 
62 - ihbs112;ray;blu;on;lite;yazici;kutusuz; 
63 - ihbs112;blu;ray;lite;on;siyah;bulk; 
64 - blu;ihbs112;ray;lite;on;siyah;yazici; 
65 - liteon;ihbs112;bd;yazma;hizi;12x;max; 
66 - ihbs112;ray;blu;on;lite;bulk;dvd; 
67 - etau108;dvd;siyah;lite;on;rw;ihbs112; 
68 - ihbs112;liteon;bd;yazma;hizi;12x;max; 
69 - ihbs112;ray;blu;lite;on;siyah;bulk; 
##################################################### 

Wenn ein Mensch aussieht es einfach, Produkte mit nur mit diesen Merkmalsvektoren zu klassifizieren ist. Aber ich muss es über einen Algorithmus erreichen. Und ich muss es auch mit einem Algorithmus erreichen, der keine Vorinformation benötigt, sondern nur Merkmalsvektoren verwendet.

Aus dem obigen Merkmalsvektor der 47-54 ist ein Cluster, 55-60 ein weiterer Cluster und 61-69 eine andere Cluster (jeder Cluster bedeutet ein kommerzielles Produkt im realen Leben) gesetzt. Daher muss der Algorithmus diese korrekt klassifizieren, indem er einfach diese Art von Merkmalsvektoren verwendet.

Der Algorithmus kann nicht auf der Linie der Reihenfolge der Merkmalsvektoren oder wie viele Klassen es wird abgehangen. Wir wissen nichts und wir haben nur Feature-Vektoren.

Warten auf Ihre Vorschläge zu diesem Klassifizierungsproblem. Vielen Dank.

Antwort

2

Adaptive Resonance Theory ist die kurze Antwort auf Ihre Frage. Im Gegensatz zu KMeans müssen Sie die Anzahl der Cluster nicht im Voraus festlegen. Die Eingabe ist eine Menge von Merkmalsvektoren, entweder binär (ART 1 Algorithmus) oder kontinuierlich (ART -2A, ARTMAP etc.) und die Ausgabe ist die Klassifizierung von Dokumenten in Clustern.

+0

Überprüfen Sie jetzt. Vielen Dank. – MonsterMMORPG

+0

Überprüfen Sie auch http://drdobbs.com/architecture-and-design/184405174 für eine einfache Implementierung von ART 1 ABER für Binäreingaben. Sie werden ein Gefühl dafür bekommen, wie es funktioniert. – Yavar

+0

Ja, ich suchte nach einem Beispiel. Binäre Version sofort überprüfen. – MonsterMMORPG

0

Ich kann drei Hauptprobleme identifizieren, die angesprochen werden müssen.

1) Aus den von Ihnen bereitgestellten Beispielen scheint es, dass alle Ihre Vektoren eine Dimension von 7 haben. Wenn dies NICHT der Fall sein sollte, können Sie PCA verwenden, um die (unbekannte, aber begrenzte) Anzahl von Dimensionen auf einen festen Wert zu reduzieren Größe. Dies stellt sicher, dass Sie einen Clustering-Algorithmus ohne schwere Modifikationen verwenden können.

2) die Tatsache zu überwinden, dass Sie die Clustergröße nicht kennen, können Sie DBSCAN verwenden. Es erfordert zwei Parameter: Die minimale Clustergröße und die Umgebungsgröße.

3) Sie müssen einen Darstellungsraum mit der Dimensionalität von Schritt 1), auf das der Cluster-Algorithmus arbeiten kann. Dafür müssen Sie sich eine Möglichkeit überlegen, Merkmalsvektoren aus diesen Samples zu konstruieren. Aus den Beispielen, die Sie gezeigt haben, scheint es, dass die Trainingsvektoren nicht beliebig in Bezug auf Symbolizität gefüllt sind. Es scheint mir, dass Sie trotz allem, was Sie sagen, Heuristiken verwenden können. Wenn dies jedoch nicht möglich ist, wählen Sie eine numerische Darstellung als Feature-Werte.