Canopy聚類算法是一個將對象分組到類的簡單、快速、精確地方法。每個對象用多維特徵空間裏的一個點來表示。這個算法使用一個快速近似距離度量和兩個距離閾值 T1>T2來處理。
基本的算法是:從一個點集合開始並且隨機刪除一個,創建一個包含這個點的Canopy,並在剩餘的點集合上迭代。對於每個點,如果它與這個Canopy的距離小於T1,那麼就將這個點就加入這個Canopy中。除此之外,如果這個距離<T2,那麼就將這個點從這個集合中刪除。這樣非常靠近原點的點將避免所有的未來處理。這個算法循環到初始集合爲空爲止,聚集一個集合的Canopies,每個可以包含一個或者多個點。每個點可以包含在多於一個的Canopy中。
while(list不爲空)
{
1:隨機從list中刪除一個點並創建這個點的Canopy;
2:從list中剩餘的點的第一個開始,如果這個點與Canopy的距離<T1,則將這個點加入到Canopy;如果這個點與Canopy的距離<T2,
那麼將這個點從list中刪除。
}