Wenn wir Klassifizierungen und Regressionen durchführen, legen wir normalerweise Test- und Trainingssätze fest, um Modelle zu erstellen und zu verbessern.
Müssen wir beim Clustering jedoch auch Test- und Trainingssätze festlegen? Warum?
Wenn wir Klassifizierungen und Regressionen durchführen, legen wir normalerweise Test- und Trainingssätze fest, um Modelle zu erstellen und zu verbessern.
Müssen wir beim Clustering jedoch auch Test- und Trainingssätze festlegen? Warum?
Antworten:
Ja, da Clustering auch unter Überanpassungsproblemen leiden kann. Beispielsweise erhöht eine zunehmende Anzahl von Clustern immer die Leistung.
Hier ist eine Demo mit K-Means-Clustering:
Die Zielfunktion von K-means ist (Notationsdetails finden Sie hier )
Mit einem solchen Ziel bedeutet das niedrigere "besseres" Modell.
Angenommen, wir haben folgende Daten (Irisdaten). Wenn Sie die Anzahl der Cluster als auswählen, ist dies immer "besser" als wenn Sie die Anzahl der Cluster als auswählen . Dann ist die Auswahl von Clustern besser als die Auswahl von Clustern. Wir können diesen Weg fortsetzen und am Ende Kosten haben: Stellen Sie einfach die Nummer des Clusters gleich der Anzahl der Datenpunkte und platzieren Sie das gesamte Clusterzentrum auf den entsprechenden Punkten.
d=iris[,c(3,4)]
res4=kmeans(d, 4,nstart=20)
res3=kmeans(d, 3,nstart=20)
par(mfrow=c(1,2))
plot(d,col=factor(res4$cluster),
main=paste("4 clusters J=",round(res4$tot.withinss,4)))
plot(d,col=factor(res3$cluster),
main=paste("3 clusters J=",round(res3$tot.withinss,4)))
Wenn wir Daten zum Testen zurückhalten, wird eine Überanpassung verhindert. Nehmen wir im selben Beispiel an, wir wählen Cluster mit großer Anzahl aus und platzieren jedes Clusterzentrum in den Trainingsdatenpunkten. Der Testfehler ist groß, da sich die Testdatenpunkte nicht mit den Trainingsdaten überschneiden.
Nein, dies ist normalerweise nicht möglich.
Es gibt sehr wenige Clusterungen , dass Sie könnte wie ein Klassifikator verwenden. Nur mit k-means, PAM usw. konnte man die "Generalisierung" bewerten, aber das Clustering ist seitdem viel vielfältiger (und interessanter) geworden. Tatsächlich lässt sich selbst das alte hierarchische Clustering nicht gut auf "neue" Daten verallgemeinern. Clustering ist keine Klassifizierung. Viele Methoden aus der Klassifizierung lassen sich nicht gut auf Clustering übertragen. einschließlich Hyperparameteroptimierung.
Wenn Sie Daten nur teilweise beschriftet haben, können Sie diese Beschriftungen verwenden, um Parameter zu optimieren. Das allgemeine Szenario für das Clustering besteht jedoch darin, dass Sie mehr über Ihren Datensatz erfahren möchten. Sie führen Clustering also mehrmals durch, untersuchen die interessanten Cluster (da einige Cluster normalerweise eindeutig zu klein oder zu groß sind, um interessant zu sein!) und notieren einige der Erkenntnisse, die Sie erhalten haben. Clustering ist ein Werkzeug, mit dem der Mensch einen Datensatz erkunden kann , nicht automatisch. Sie werden jedoch kein Clustering "bereitstellen". Sie sind zu unzuverlässig, und ein einziges Clustering wird niemals "die ganze Geschichte erzählen".
Nein. Sie verwenden Training und Tests nicht für unbeaufsichtigtes Lernen. Es gibt keine objektive Funktion beim unbeaufsichtigten Lernen, um die Leistung des Algorithmus zu testen.