層次聚類(hierarchical clustering)算法極為簡(jiǎn)單:有N多節(jié)點(diǎn),最開(kāi)始認(rèn)為每個(gè)節(jié)點(diǎn)為一類,然后找到距離最近的節(jié)點(diǎn)“兩兩合并”,合并后的兩個(gè)節(jié)點(diǎn)的平均值作為新的節(jié)點(diǎn),繼續(xù)兩兩合并的過(guò)程,直到最后都合并成一類。
下圖表明了聚類的過(guò)程,距離最近的節(jié)點(diǎn)合并(第一步中,如果有兩對(duì)節(jié)點(diǎn)距離一樣,那就同時(shí)合并)
如果用數(shù)據(jù)挖掘工具來(lái)做(如SPSS),一般會(huì)生成一個(gè)樹(shù)形圖,那么我們可以根據(jù)分析問(wèn)題的具體情況,選擇到底最終要聚成幾類:
如果從純理論上講,判斷聚成幾類可以參考每一步合并的“距離”是不是有明顯差距,我們的例子中:
第一步:A和B,C和D合并時(shí)候,距離很近,就算大概是1(就是肉眼估算,沒(méi)有什么測(cè)量)
第二步:CD和E合并,距離其實(shí)也很近,大概2
第三步:CDE和F合并,距離遠(yuǎn)了,大概8
第四步:CDEF和AB合并,距離大概9
可見(jiàn),第二步到第三步,距離有了一個(gè)質(zhì)的提升,說(shuō)明相對(duì)接近的都已經(jīng)合成一推兒,開(kāi)始遠(yuǎn)距離“結(jié)合”了,因此,就在第二步的地方結(jié)束,應(yīng)該是一個(gè)較好的聚類選擇,也就是聚成3類。
當(dāng)然,真正聚成幾類一定不要從理論出發(fā),還是要看實(shí)際案例中,聚成幾類最合理,最好解釋,最能說(shuō)明問(wèn)題
層次聚類運(yùn)算速度比較慢,因?yàn)橐看味家?jì)算多個(gè)cluster內(nèi)所有數(shù)據(jù)點(diǎn)的兩兩距離,處理大量數(shù)據(jù)時(shí)非常吃力,最大的優(yōu)點(diǎn),就是它一次性地得到了整個(gè)聚類的過(guò)程,只要得到了上面那樣的聚類樹(shù),想要分多少個(gè)cluster都可以直接根據(jù)樹(shù)結(jié)構(gòu)來(lái)得到結(jié)果,改變 cluster數(shù)目不需要再次計(jì)算數(shù)據(jù)點(diǎn)的歸屬。