1. 程式人生 > >初識分級聚類演算法

初識分級聚類演算法

  首先介紹一下聚類演算法。先來一段維基百科上扒下來的介紹:聚類分析(英語:Cluster analysis,亦稱為群集分析)是對於統計資料分析的一門技術,在許多領域受到廣泛應用,包括機器學習,資料探勘,模式識別,影象分析以及生物資訊。聚類是把相似的物件通過靜態分類的方法分成不同的組別或者更多的子集(subset),這樣讓在同一個子集中的成員物件都有相似的一些屬性,常見的包括在座標系中更加短的空間距離等。

  接著介紹今天需要講述的聚類演算法:分級聚類演算法。接著再來一段摘抄,這段來自集體智慧程式設計。分級聚類通過連續不斷的將最為相似的群組兩兩合併,來構造出一個群組的層級結構。其中的每個群組都是從一個簡單元素開始的。在每次迭代的過程中,分級聚類演算法會計算每兩個群組間的距離,並將最近的兩個群組合併成一個新的群組。這個過程一直重複下去,知道只剩下一個群組為止。

  接下來,以一維資料的形式講述這個演算法。以2、5、6、7、8、23為例子。如圖下圖所示:

  根據上面演算法的執行流程,我們可以發現,這個演算法有點類似於哈夫曼樹的構造:

    1,查詢節點集合中,距離最近的兩個節點。

    2,將找到的兩個節點合併為一個節點,新增到節點集合中,並將先前的兩個節點從節點集合中移除。

    3,重複第一步和第二步,直到節點集合中只剩下一個節點。

  根據上述演算法,我們可以得到一顆聚類二叉樹。

  當使用上述演算法的時候,距離是作為分類的基礎。在一維情況下,我們使用簡單的歐幾裡的距離能完成操作。當資料呈現多維的時候,歐幾裡的距離就顯得力不從心。下文將講解一些“距離”。

  首先是歐幾裡的距離。計算公式如下: 。當資料是二維時,計算公式即為兩點之間的直線距離,這個距離計算公式相對比較簡單。

  接著是皮爾遜相關度。皮爾遜相關度計算公式即為概率論中的相關係數的計算公式: