基于Kmeans+Canopy聚類的協(xié)同過(guò)濾算法代碼實(shí)現(xiàn)(輸出聚類計(jì)算過(guò)程,分布圖展示)
聚類(Clustering)就是將數(shù)據(jù)對(duì)象分組成為多個(gè)類或者簇 (Cluster),它的目標(biāo)是:在同一個(gè)簇中的對(duì)象之間具有較高的相似度,而不同簇中的對(duì)象差別較大。所以,在很多應(yīng)用中,一個(gè)簇中的數(shù)據(jù)對(duì)象可以被作為一個(gè)整體來(lái)對(duì)待,從而減少計(jì)算量或者提高計(jì)算質(zhì)量。
一、Kmeans+Canopy聚類算法實(shí)現(xiàn)原理
影響Kmeans聚類算法結(jié)果的因素有距離閥值、初始簇的選擇、遍歷次數(shù),其中距離閥值和遍歷次數(shù)可通過(guò)不斷測(cè)試來(lái)實(shí)現(xiàn)最佳,但是初始簇的選擇如果是隨機(jī)選擇,每次運(yùn)行的結(jié)果差別可能會(huì)很大,使用Canopy聚類算法用于K均值聚類算法的預(yù)處理,用來(lái)找合適的k值和簇中心效果較好。
本文主要是java語(yǔ)言實(shí)現(xiàn),1000個(gè)點(diǎn)(本文是二維向量,也可以是多維,實(shí)現(xiàn)原理和程序一樣),程序運(yùn)行過(guò)程中會(huì)輸出每一次遍歷點(diǎn)的簇中心,和簇中包含的點(diǎn),并將最終結(jié)果通過(guò)插件在html中顯示。
二、Kmeans+Canopy聚類算法實(shí)現(xiàn)部分步驟
將本地文件讀取到點(diǎn)集合中:

三、Kmeans+Canopy聚類算法實(shí)現(xiàn)結(jié)果
1、Canopy運(yùn)算結(jié)果:

2、Kmeans+Canopy運(yùn)算結(jié)果:



3、分布圖:


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