Bedeutung von "seed" im weka-K-means-clustering
Den weka SimpleKMeans - Implementierung erlaubt dem Benutzer, geben Sie einen "Startwert" mit der option -s. Ich verstehe nicht, was es bedeutet. In dieser link, Mark Hall, der weka Architekt, sagt, dass es eigentlich um Zufallszahlen zu generieren.
Weka-Umsetzung soll Folgen das Papier auf KMenas++ (wie in der Dokumentation erwähnt), und wenn ich es verstanden habe, cluster-centroid-Punkte beschlossen werden unter Verwendung der Gleichung 1b, Abschnitt 2.2, Seite 3 in der oben genannten Papier, und es gibt keine andere Quelle des Zufalls.
Kann bitte jemand darauf hinweisen, dass, was immer ich bin falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine gemeinsame best-Practice - mit k-means-Algorithmus (Hinweis: es ist mehr als ein Algorithmus für k-means; Sie sind Heuristiken, wie die Suche nach der optimalen Lösung, so wird berichtet, NP-hart) zu mehrere Iterationen mit unterschiedlichen zufälligen Initialen Zentren.
Also die Zufälligkeit ist Häufig beteiligt, mit der Wahl der ersten Zentren. K-means++ ist eine Alternative Art und Weise der Auswahl ersten Samen, die zum Glück ist immer noch randomisiert (es gibt einige, die sind nicht randomisierte, so dass Sie nicht mehr versuchen zu verbessern Sie Ihre Ergebnisse mit mehreren läuft dann), aber versucht zu wählen, eine bessere Ausgangssituation.
Warum sind Sie auf der Suche nach anderen Quelle des Zufalls als der inital bedeutet?
Ich nicht empfehlen Weka für das clustering. Es ist okay für die Einstufung, aber es hat ziemlich eingeschränkte Unterstützung für clustering und andere unüberwachten Methoden. Stattdessen haben Sie einen Blick auf ELKI. Ihre k-means-Paket zum Beispiel ist Recht erschöpfend. Sie haben ~6 verschiedene Methoden für die Auswahl der ersten bedeutet. Die meisten sind zufällig. Die einfachste und häufigste Initialisierung ist wahrscheinlich nur starten mit k zufällige Objekte aus der Datenbank. Wenn ich mich Recht erinnere, MacQueen verwendet die ersten k Objekte, so dass die Variante ist nicht zufällig (es sei denn, mischen Sie Ihre Daten zuerst gesetzt wird, das eigentlich eine gute Idee für einige algorithmen - verwenden Sie niemals sortierten Daten!)
Die meisten dieser Initialisierungen wird sich also mit einem parameter
-kmeans.seed
die - na was wohl - ermöglicht Ihnen die Steuerung der Zufallsgenerator seeding, für reproduzierbare Ergebnisse.