基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)
聚類(Clustering)就是将資料對象分組成為多個類或者簇 (Cluster),它的目标是:在同一個簇中的對象之間具有較高的相似度,而不同簇中的對象差别較大。是以,在很多應用中,一個簇中的資料對象可以被作為一個整體來對待,進而減少計算量或者提高計算品質。
一、Kmeans+Canopy聚類算法實作原理
影響Kmeans聚類算法結果的因素有距離閥值、初始簇的選擇、周遊次數,其中距離閥值和周遊次數可通過不斷測試來實作最佳,但是初始簇的選擇如果是随機選擇,每次運作的結果差别可能會很大,使用Canopy聚類算法用于K均值聚類算法的預處理,用來找合适的k值和簇中心效果較好。
本文主要是java語言實作,1000個點(本文是二維向量,也可以是多元,實作原理和程式一樣),程式運作過程中會輸出每一次周遊點的簇中心,和簇中包含的點,并将最終結果通過插件在html中顯示。
二、Kmeans+Canopy聚類算法實作部分步驟
将本地檔案讀取到點集合中:
三、Kmeans+Canopy聚類算法實作結果
1、Canopy運算結果:
2、Kmeans+Canopy運算結果:
3、分布圖:
需要源代碼的朋友可聯系我們,也可以留言、私信交流。