Die K-Means-Methode kann nicht mit anisotropen Punkten umgehen. Das DBSCAN- und Gaussian Mixture-Modell scheint damit nach scikit-learn arbeiten zu können. Ich habe versucht, beide Ansätze zu verwenden, aber sie funktionieren nicht für meine dataset.Anistropische Punkte Clustering
DBSCAN
I verwendet, um den folgenden Code:
db = DBSCAN(eps=0.1,min_samples=5).fit(X_train,Y_train)
labels_train=db.labels_
# Number of clusters in labels, ignoring noise if present.
n_clusters_ = len(set(labels_train)) - (1 if -1 in labels_train else 0)
print('Estimated number of clusters: %d' % n_clusters_)
und nur 1-Cluster (Geschätzte Anzahl der Cluster: 1) nachgewiesen wurde, wie here gezeigt.
Gaussian Mixture Model
Der Code war wie folgt:
gmm = mixture.GaussianMixture(n_components=2, covariance_type='full')
gmm.fit(X_train,Y_train)
labels_train=gmm.predict(X_train)
print(gmm.bic(X_train))
Die beiden Cluster nicht unterschieden here wie gezeigt werden konnte.
Wie kann ich zwei Cluster erkennen?