資料探勘演算法之聚類分析(二)canopy演算法

2022-05-06 05:45:05 字數 1111 閱讀 4212

canopy是聚類演算法的一種實現

它是一種快速,簡單,但是不太準確的聚類演算法

canopy通過兩個人為確定的閾值t1,t2來對資料進行計算,可以達到將一堆混亂的資料分類成有一定規則的n個資料堆

由於canopy演算法本身的目的只是將混亂的資料劃分成大概的幾個類別,所以它是不太準確的

但是通過canopy計算出來的n個類別可以用在kmeans演算法中的k值的確定(因為人為無法準確的確定k值到底要多少才合適,而有kmeans演算法本身隨機產生的話結果可能不是很精確。有關kmeans演算法的解釋請看點選開啟鏈結)

canopy演算法流程如下:

(1)確定兩個閾值t1,t2(確保t1一定大於t2)

(2)從資料集合中隨機選出乙個資料,計算這個資料到canopy的距離(如果當前沒有canopy,則該點直接作為canopy)

(3)如果這個距離小於t1,則給這個資料標上弱標記,將t1加入這個canopy中(同時這個資料可以作為新的canopy來計算其他資料到這個點的距離)

(4)如果這個距離小於t2,則給這個資料標上強標記,並將其中資料集合中刪除,此時認為這個資料點距離該canopy已經足夠近了,不可能在形成新的canopy

(5)重複2-4的過程,直至資料集合中沒有資料

這裡的canopy指的是作為要劃分資料的中心點,以這個canopy為中心,t2為半徑,形成乙個小圓。t1為半徑,形成乙個大圓。在小圓範圍內的資料點被認為一定屬於這個canopy,不能作為乙個新的canopy來劃分資料,而小圓範圍外,大圓範圍內的資料則又可以作為新的canopy來劃分資料

劃分完之後的資料類似下圖

虛線的圈是t2,實線的圈是t1

可以看到canopy演算法將可以將一堆雜亂的資料大致的劃分為幾塊

所以canopy演算法一般會和kmeans演算法配合使用來到達使用者的目的

在使用canopy演算法時,閾值t1,t2的確定是十分重要的

t1的值過大,會導致更多的資料會被重複迭代,形成過多的canopy;值過小則導致相反的效果

t2的值過大,會導致乙個canopy中的資料太多,反之則過少

這樣的情況都會導致執行的結果不準確

資料探勘 聚類分析例項

在之前,我們已經學過了四大類聚類分析及其典型演算法。本文,我們將使用劃分方法中的k 均值演算法和層次聚類方法以乙個例項進行完整的聚類分析演示。例題 為研究我國31個省 市 自治區2007年的城鎮居民生活消費的規律,根據調查資料作區域消費型別劃分。原始資料表1所示 問題 針對上述問題,採用k mean...

資料探勘之聚類分析學習筆記 2

聚類分析中的資料型別 假設要聚類的資料集合包含 n 個資料物件,許多基於記憶體的聚類演算法選擇如下兩種有代表性的資料結構 資料矩陣 data matrix 或稱為物件屬性結構 它用 p 個變數 也稱為屬性 來表現 n 個物件,例如用年齡,身高,性別,種族等屬性來表現物件 人 這種資料結構是關係表的形...

聚類分析之k prototype演算法解析

k prototype是處理混合屬性聚類的典型演算法。繼承kmean演算法和kmode演算法的思想。並且加入了描述資料簇的原型和混合屬性資料之間的相異度計算公式。常規定義 x 表示資料集 含有n個資料 其中資料有m個屬性。資料xi aj表示屬性j dom aj 表示屬性j的值域 對於數值屬性,值域d...