sklearn聚類模型:基於密度的DBSCAN;基於混合高斯模型的GMM
阿新 • • 發佈:2019-03-13
type 依次 imp style wid -m ict ria htm
1 sklearn聚類方法詳解
2 對比不同聚類算法在不同數據集上的表現
3 用scikit-learn學習K-Means聚類
4 用scikit-learn學習DBSCAN聚類 (基於密度的聚類)
5 DBSCAN密度聚類算法
6 混合高斯模型Gaussian Mixture Model(GMM)
#===============================================
從左到右依次為: k-means聚類, DBSCAN聚類 , GMM聚類
對應代碼:
# kmeans聚類 fromsklearn.cluster import KMeans estimator = KMeans(n_clusters=2)#構造聚類器 y_pred =estimator.fit_predict(X_train_2)#聚類 clr = [‘b‘ if i==0 else ‘y‘ if i==1 else ‘r‘ for i in y_pred] plt.scatter(X_train[:,0],X_train[:,1],c=clr) # DBSCAN(Density-Based Spatial Clustering of Application with Noise)基於密度的空間聚類算法from sklearn.cluster import DBSCAN dbs1 = DBSCAN(eps=0.5, # 鄰域半徑 min_samples=5 ) # 最小樣本點數,MinPts y_pred = dbs1.fit_predict(X_train_2) #訓練集的標簽 clr = [‘b‘ if i==0 else ‘y‘ if i==1 else ‘r‘ for i in y_pred] plt.scatter(X_train_2[:,0],X_train_2[:,1],c=clr) #混合高斯模型Gaussian Mixture Model(GMM)聚類from sklearn import mixture clf = mixture.GaussianMixture(n_components=2,covariance_type=‘full‘) clf.fit(X_train_2) #.fit_predict y_pred = clf.predict(X_train_2) #預測 clr = [‘b‘ if i==0 else ‘y‘ if i==1 else ‘r‘ for i in y_pred] plt.scatter(X_train_2[:,0],X_train_2[:,1],c=clr)
sklearn聚類模型:基於密度的DBSCAN;基於混合高斯模型的GMM