由於資料特性的不同,也代表著分群的複雜性,要如何找出一種叢集演算法可以應 用於各種資料集上,仍是目前科學家所在研究的。而目前使用較廣泛且較有概觀性的分 群法則中,比較有名也較常被使用的就是c-means法則[1]。c- means詳細的演算法如下:
首先起始條件是輸入欲分類的資料群N個,以及需求的叢集數C。接著將N分配給距離 最近的叢集,當全部的N都分完後,再重新計算各個叢集,也就是取該樣本群中的平均 值,即為新的叢集中心點,如此反覆做下去,直到滿足收斂條件為止。此外,資料集與 叢集的 距 離 有相 當多 種 的 算 法, 最 基 本的 作 法就 是計 算歐 幾 里 得距離 (Euclidean distance)。
雖然 c-means 有著簡單的計算與快速收斂的優點,但缺點是分群的中心相當易受起 始位置的影響,也就是通常只能尋找到區域的最佳解。Fuzzy c- means(FCM)[10]的法則 在於資料點 x 不會絕對地屬於任何叢集,而是以一個介於 0-1 之間的數字來表示 x 隸屬 於某個叢集的程度,而且將每個資料點 x 對於不同叢集的 membership 值加起來會得到 1。但如果資料的雜訊過多,FCM 會使得某資料點雖然實際上為雜訊,但對於不同叢集 的 membership 相加仍會得到 1,故對於叢集中心點的移動產生影響力,而造成叢集中 心的錯誤。Possibilistic c- means(PCM)[11]便可以解決這類雜訊問題,它與 FCM 不同的 是,資料點不是相對的去跟每個叢集做比較,資料點 x 離某叢集愈近,則它的距離就會 愈短隸屬於此群的程度就會愈高。PCM 採用一個叫做 η 值的參數,它的用途在於掌控 每個叢集的偵測範圍,避免不正確的情形發生。舉例來說:資料群 A 和資料群 B,叢 集在偵測的時候,因為雛型離 A 比較近,因此會忽略了 B 的存在,但是可能 B 群才是 叢集所要搜尋的正確資料,為了避免這樣的情形發生,加入η 值能讓較遠的資料點不容
易被忽略,然而 PCM 所存在的問題,在於分群結果容易受初始位置所影響,因為資料 點 x 對於不同叢集的 membership 加起來不一定是 1,因此叢集與叢集間不會知道對方 的偵測情況,容易造成叢集的偵測重複。
對於 shell cluster 的研究,Dave 所提出 fuzzy c-shall(FCS)[3][4] 叢集演算法,藉由 半徑扣除叢集與資料點的距離,使我們可以針對圓形的資料分佈做偵測。隨後又提出了 針對橢圓形的叢集類型做偵測的[5][6][14][17],也有針對矩形的資料形態作偵測[7],此 時 不 但 要 計 算 圖 形 的 位 移 量 , 也 要 注 意 圖 形 的 旋 轉 。 [7] 中 後 半 段 所 提 到 的 2-Rectangular,是藉由將兩個矩形重疊,所產生的橢圓形偵測法。對於降低分群的計算 量,也有學者著手研究,論文[16]即為改善 FCS 的一個例子。諸如此類解決 shell cluster 的方法很多,但對於過於複雜的形狀,即便是上面的演算法,也沒有辦法偵測完全。
為了解決更複雜的shell cluster問題,此時樣板[8][9]就相當的重要,在初始便輸入 一種特定的形狀,之後演算法便按照此種形狀去做偵測,因此藉由輸入形狀的多樣化,
所能偵測的形狀也更多,在[9]中還可以將此形狀放大縮小和旋轉更可以將之變形扭曲 以達到更高的辨識效率,但是由於無法利用單一中心點來詮釋整個圖形,所以樣板的計 算量會較其他演算法來的龐大。
由於 FCM 和 PCM 演算法的能力以及缺失剛好相反,因此有許多的學者便開始著 手於 FCM 和 PCM 的混合理論,希望能夠使得優缺點互補,對於偵測分群達到更好的 效益。Fuzzy-possibilistic c-means(FPCM)[15]即為一種混合性叢集演算法,它的混合理 念在於將 FCM 和 PCM 所求得的 membership 和 typicality 值做相加,所得的值視為 FPCM 的 membership 值。然而這樣的做法有一個需要探討的問題,相加過後的值如果超過 1 會不會對分群有所影響,因此 possibilistic fuzzy c-means(PFCM)[12]便因此產生。PFCM 是由 Pal 等人所研發出來的一種新的叢集演算法,主要宗旨在於改善 FPCM 的問題,在
混合 FCM 和 PCM 的 membership 和 typicality 值時,同時利用 a 和 b 兩值來區別不同的 membership 所佔的比例,此一改善不但解決了 FPCM 本身的問題,還可以依據更改 a 和 b 值 讓 演 算 法更 富有 彈 性, 能 夠運 用在 不 同 的需 求 上。 Improved possibilistic c-means(IPCM)[13]也為一種混合性叢集分群演算法,它本身的目的在於改善 PCM 演算 法所帶來的問題,主要是分群容易受初始位置影響和叢集容易重疊,所以希望在求得 PCM 的 typicality 值後,乘上一個額外計算的 FCM membership 值做為調和,改善 PCM 的問題。然而 PFCM 和 IPCM 在往後也常常被其他學者做引用,例如將 PFCM 套用在 kernel method[18],方便解決高維度的分群,或是把 IPCM 和 PFCM 做比較分析的對象 [19][20],藉此得知自身演算法的偵測效率。