Canopy算法是基於Kmeans算法的一種優化的聚類方法。算法
優化體如今:性能
1.前期能經過一些低性能的算法,快速的獲取聚類中心優化
2.分好的每一個聚類內部在進行k-means計算(不一樣聚類之間不進行類似度計算)spa
算法步驟:orm
(1 ) 將數據集向量化,而後放到list集合中,同時設定兩個距離閾(yu)值:T1和T2ci
(2)循環從list中去取一個,做爲一個聚類中心,放到centerlist中,並從list中移除該點it
(3)循環從centerlist中 比較 與周圍的點於閾(yu)值之間的關係,小於最小T1閾值,說明兩個值類似,放到一個聚類中,並從list中移除;若是大於最大閾值T2,那麼就單獨做爲一個聚類中心,並從list中移除;不然在T1和T2之間就不分別加到各個聚類中心去,但依然保留在list中原理
(4)迭代2~3步直至list中元素爲null,算法結束。循環
僞代碼:(借鑑於煉數成金)方法
Canopy算法的優缺點:
1.不須要事先指定k值(即clustering的個數)
2.精度較低,但其速度上有很大的優點
3.前期能夠使用Canopy聚類先對數據進行「粗」聚類,獲得k值後再使用K-means進行進一步的「細」聚類