天天看點

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

聚類(Clustering)就是将資料對象分組成為多個類或者簇 (Cluster),它的目标是:在同一個簇中的對象之間具有較高的相似度,而不同簇中的對象差别較大。是以,在很多應用中,一個簇中的資料對象可以被作為一個整體來對待,進而減少計算量或者提高計算品質。

一、Kmeans+Canopy聚類算法實作原理

影響Kmeans聚類算法結果的因素有距離閥值、初始簇的選擇、周遊次數,其中距離閥值和周遊次數可通過不斷測試來實作最佳,但是初始簇的選擇如果是随機選擇,每次運作的結果差别可能會很大,使用Canopy聚類算法用于K均值聚類算法的預處理,用來找合适的k值和簇中心效果較好。

本文主要是java語言實作,1000個點(本文是二維向量,也可以是多元,實作原理和程式一樣),程式運作過程中會輸出每一次周遊點的簇中心,和簇中包含的點,并将最終結果通過插件在html中顯示。

二、Kmeans+Canopy聚類算法實作部分步驟

将本地檔案讀取到點集合中:

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

三、Kmeans+Canopy聚類算法實作結果

1、Canopy運算結果:

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)
基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

2、Kmeans+Canopy運算結果:

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)
基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

3、分布圖:

基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)
基于Kmeans+Canopy聚類的協同過濾算法代碼實作(輸出聚類計算過程,分布圖展示)

需要源代碼的朋友可聯系我們,也可以留言、私信交流。

繼續閱讀