机器学习小石头

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

          前面,我们已经解释并实现了部分的sklean算法,下表展示了sklean所能使用的聚类算法

cluster.AffinityPropagation([damping, …]) Perform Affinity Propagation Clustering of data.
cluster.AgglomerativeClustering([…]) Agglomerative Clustering
cluster.Birch([threshold, branching_factor, …]) Implements the Birch clustering algorithm.
cluster.DBSCAN([eps, min_samples, metric, …]) Perform DBSCAN clustering from vector array or distance matrix.
cluster.FeatureAgglomeration([n_clusters, …]) Agglomerate features.
cluster.KMeans([n_clusters, init, n_init, …]) K-Means clustering
cluster.MiniBatchKMeans([n_clusters, init, …]) Mini-Batch K-Means clustering
cluster.MeanShift([bandwidth, seeds, …]) Mean shift clustering using a flat kernel.
cluster.SpectralClustering([n_clusters, …]) Apply clustering to a projection to the normalized laplacian.

   发现,还有几种未写出来,例如AP(亲和传播)聚类、FeatureAgglomeration聚类,以及我们的MInIBathK-means未单独写出来,代码和前面几篇类似。在这些算法中

  需要初始聚类个数 不需要初始聚类个数
初始点不同,精度相同 Birch、Hierarchical DBSCAN、MEAN-SHIFT、谱聚类
初始点不同,精度不同 k-means、miniBathK-means  

我们实验统一使用iris数据集,在这些算法中,我们发现谱聚类表现较好也较稳定,但是在速度上未有K-means好,所以我们如果拿到数据可以先尝试k-means,在尝试其他算法,当然了这里还有其他聚类算法未列出,例如基于网格划分、基于神经网络(SMO),基于蚁群算法....这将在以后继续补充。为什么说可以先尝试k-means呢,因为一些文章指出其他聚类算法可以看做k-means。例如Dhillon I S, Guan Y, Kulis B. Kernel k-means:spectral clustering and normalized cuts[C]// Tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2004:551-556.还有Ding C, He X. K-means clustering via principal component analysis[C]// International Conference on Machine Learning. ACM, 2004:29.等等

posted on 2017-08-18 20:59  机器学习小石头  阅读(1186)  评论(0编辑  收藏  举报