1. 程式人生 > >sklearn聚類模型:基於密度的DBSCAN;基於混合高斯模型的GMM

sklearn聚類模型:基於密度的DBSCAN;基於混合高斯模型的GMM

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聚類
from
sklearn.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