2016-04-23 17 views
-1

Ich habe eine Frage über Kmeans Algorithmus in opencv. Ich habe eine Aufgabe, neurales Netz zu schulen, um weiße Räume unter Buchstaben zu erkennen und für das Training von whitespaces habe ich einen Code wie dieses w_space_group = max(enumerate(k_means.cluster_centers_), key = lambda x: x[1])[0], der Gruppen bilden und einzelne Buchstaben vom Leerzeichen trennen und Gruppen von whitespaces machen sollte.KMeans Algorithmus in opencv

Könnte mir jemand erklären, was das bedeutet key=lambda x:x[1])[0]? Also, was bedeutet cluster_centers_, gibt es eine andere Eigenschaft von k_means? Weiß k_means automatisch, dass es seine Aufgabe ist, Buchstaben von Leerzeichen zu trennen? Vielen Dank im Voraus :)

Antwort

0

enumerate erzeugt Tupel von (index, k_means.cluster_centers_[index]). Der Parameter key weist die Funktion max an, den zweiten Eintrag dieses Tupels für die Suche nach dem Maximum zu verwenden. (Anstatt den Index zu verwenden, der nicht viel Sinn machen würde)

k-Means weiß nicht, dass Sie Whitespace von Daten trennen möchten. Was es tut, ist k Cluster in Ihren Daten zu finden. Was das Ergebnis bedeutet, hängt vollständig von der Eingabe ab, die Sie k-Means geben.