2016-08-09 41 views
-4

Ich bin neu in Kmeans Clustering-Methode. Ich versuche, eine 1-dimensionale String-Array-Daten in Python zu clustern.Python Kmeans auf Zeichenfolge

Im Folgenden finden Sie meine Daten:

expertise=[' 
Bioactive Surfaces and Scaffolds for Regenerative Medicine', 
'Drug/gene delivery science', 
'RNA nanomedicine', 'Immuno/bio/nano-engineering', 'Biomaterials', 'Nanomedicine', 
'Biobased Chemicals and Polymers', 
'Membranes Science & Technology', 
'Modeling of Infectious and Lifestyle-related Diseases'] 

km = KMeans(n_clusters=2) 
km.fit(expertise) 

und i Valueerror erhalten: string nicht konvertieren konnte zu schweben:

so frage ich mich, wie KMeans auf String-Daten anzuwenden oder ist es eine Möglichkeit, die ich ändern kann die Daten in zwei Dimensionen?

+3

Was soll ein Cluster von Strings bedeuten? – polku

+0

Ich habe Koordinaten auf Kmeans versucht und es funktioniert perfekt. so frage ich mich, ist String Daten arbeiten oder nicht – AAron

+0

Nun, genau das ist nicht 'String-Daten', sondern nur Strings. Es ist sicherlich möglich, "Cluster von Strings" zu erstellen, wenn Sie einen Weg finden, um Daten von ihnen zu erhalten (wie die Hamming-Distanz oder etwas Ähnliches), aber sklearn kann das nicht für Sie tun, NLTK hat vielleicht so etwas. – polku

Antwort

0

müssen Sie zuerst definieren, wie Sie Ihre Daten gruppieren möchten. Das einfache KMeans-Clustering von scikit-learn wurde entwickelt, um mit Zahlen zu arbeiten. Scikit-learn kann jedoch auch verwendet werden, um Dokumente nach Themen mit einem Bag-of-Word-Ansatz zu bündeln. Dies wird durch Extraktion der Merkmale durchgeführt unter Verwendung von scipy.sparse Matrix statt Standard numpy Arrays

Einer der Demo-Beispiel ist hier gegeben: http://scikit-learn.org/stable/auto_examples/text/document_clustering.html

0

Es gibt fast keinen Sinn in dem, was Sie zu tun versuchen. Wie sollen zwei geclusterte Gruppen aussehen?

Wenn Sie Daten nicht plotten können, können Sie sie nicht clustern. Suchen Sie nach Möglichkeiten, Strings numerisch darzustellen (z. B. Länge, Auftreten von Buchstaben, je nachdem, was Sie erhalten möchten) und clustern Sie dann diese numerischen Daten.