0

Ich habe mehrere Posts über 1D-Array-Clustering gelesen, in denen Leute sagen, dass Clustering nicht für 1D-Array geeignet ist und dass stattdessen Kerndichteschätzung verwendet werden sollte. Niemand hat jedoch erklärt, wie man clusterstring mit Hilfe von kde accvalent durchführt, wie man Cluster-Labels für Eingabedaten abruft.Wie benutzt man KDE (Kernel Density Estimation) für eindimensionales Array Clustering, in scikit-learn?

In Scikit-lernen, habe ich Kernel-Dichte-Schätzung für meine univariaten (eindimensionalen) Daten.

Wie kann ich es jetzt für das Clustering verwenden, nämlich, wie Cluster-Labels für Eingabedaten abgerufen werden?

Ich habe zwei mögliche Ansätze in Betracht gezogen: a) Um Kde zu verwenden, um neue 2D-Eingabedaten für einige Clustering Estimator (z. B. Kmeans) zu erhalten. Ich wollte ein 2D-Datenfeld in Form eines Histogramms ([Wert, Häufigkeit]) abrufen, aber ich weiß nicht, wie ich es von KDE aus machen soll. Ist es möglich, kde als neues Eingabe-Dataset für einen Cluster-Algorithmus zu verwenden, sagen wir für einen kmeans-Schätzer? Wenn ja, wie? Wie kann ich einen Datensatz von KDE bekommen? b) Kde direkt berechnen, um die Grenze zwischen den Clustern zu berechnen. In meinem speziellen Fall weiß ich, dass es zwei Cluster gibt und ich möchte eine Grenze zwischen ihnen finden. Und ich muss es rechnerisch tun, nicht manuell, indem ich in Diagramm ...

schauen
+0

Verwenden Sie einfach X_samples = kde.sample (n_samples = X). Dann können Sie Kmeans anpassen. – sascha

+0

@sascha, was ist "X" in deinem Ausdruck? Wie bekomme ich es? – zlatko

+0

Sie entnehmen Werte aus Ihrem erlernten KDE. n_samples ist nur die Anzahl der zu nehmenden Samples. – sascha

Antwort

0

Sie führen keinen Gruppierungsalgorithmus auf einer Dichteabschätzung durch.

Sie möchten lokale Minima und Maxima in der Dichte finden, um herauszufinden, wo die Daten aufgeteilt werden sollen.