標籤:方法 應用 image nic 階段 其他 bsp 精度 osc
一、概念
與傳統的聚類演算法(比如K-means)不同,Canopy聚類最大的特點是不需要事先指定k值(即clustering的個數),因此具有很大的實際應用價值。與其他聚類演算法相比,Canopy聚類雖然精度較低,但其在速度上有很大優勢,因此可以使用Canopy聚類先對資料進行“粗”聚類,得到k值後再使用K-means進行進一步“細”聚類。這種Canopy+K-means的混合聚類方式分為以下兩步:
Step1、聚類最耗費計算的地方是計算對象相似性的時候,Canopy聚類在第一階段選擇簡單、計算代價較低的方法計算對象相似性,將相似的對象放在一個子集中,這個子集被叫做Canopy ,通過一系列計算得到若干Canopy,Canopy之間可以是重疊的,但不會存在某個對象不屬於任何Canopy的情況,可以把這一階段看做資料預先處理;
Step2、在各個Canopy 內使用傳統的聚類方法(如K-means),不屬於同一Canopy 的對象之間不進行相似性計算。
從這個方法起碼可以看出兩點好處:首先,Canopy 不要太大且Canopy 之間重疊的不要太多的話會大大減少後續需要計算相似性的對象的個數;其次,類似於K-means這樣的聚類方法是需要人為指出K的值的,通過Stage1得到的Canopy 個數完全可以作為這個K值,一定程度上減少了選擇K的盲目性。
二、聚類精度
對傳統聚類來說,例如K-means、Expectation-Maximization、Greedy Agglomerative Clustering,某個對象與Cluster的相似性是該點到Cluster中心的距離,那麼聚類精度能夠被很好保證的條件是:
對於每個Cluster都存在一個Canopy,它包含所有屬於這個Cluster的元素。
如果這種相似性的度量為當前點與某個Cluster中離的最近的點的距離,那麼聚類精度能夠被很好保證的條件是:
對於每個Cluster都存在若干個Canopy,這些Canopy之間由Cluster中的元素串連(重疊的部分包含Cluster中的元素)。
資料集的Canopy劃分完成後,類似於:
三、Canopy演算法流程
(1)、將資料集向量化得到一個list後放入記憶體,選擇兩個距離閾值:T1和T2,其中T1 > T2,對應,實線圈為T1,虛線圈為T2,T1和T2的值可以用交叉校正來確定;
(2)、從list中任取一點P,用低計算成本方法快速計算點P與所有Canopy之間的距離(如果當前不存在Canopy,則把點P作為一個Canopy),如果點P與某個Canopy距離在T1以內,則將點P加入到這個Canopy;
(3)、如果點P曾經與某個Canopy的距離在T2以內,則需要把點P從list中刪除,這一步是認為點P此時與這個Canopy已經夠近了,因此它不可以再做其它Canopy的中心了;
(4)、重複步驟2、3,直到list為空白結束。
Canopy聚類演算法