聚类算法的分类整理
1、基于劃分的聚類算法
基于劃分的聚類算法 主要通過聚類中心的迭代重置,直到達(dá)到“簇內(nèi)點(diǎn)足夠近,簇間點(diǎn)足夠遠(yuǎn)”的目標(biāo)效果,完成樣本集的最優(yōu)化分。其算法優(yōu)點(diǎn)是時(shí)間、空間復(fù)雜度低,可以處理大規(guī)模數(shù)據(jù)集。缺點(diǎn)包括容易陷入局部最優(yōu),對(duì)初始聚類中心的選取十分敏感,無法處理噪聲和離群點(diǎn),不能解決非凸數(shù)據(jù)等。其代表算法包括K-means、CLARANS和 CLARA。以 K-means 為例,算法流程為:
- 步驟 1:初始的類簇中心采用隨機(jī)選擇的方式選取,一般人為設(shè)定為 K 個(gè);
- 步驟 2:對(duì)剩余對(duì)象,計(jì)算其與選取的各類簇中心的距離,將其分配給距離最近的簇;
- 步驟 3:重新計(jì)算每個(gè)簇的平均值,將其作為新的聚類中心;
- 步驟 4:重復(fù)步驟 2 和 3,直到聚類結(jié)果不再變化;
2、基于密度的聚類算法
基于密度的聚類算法其算法原理是通過計(jì)算數(shù)據(jù)樣本分布的疏密情況,將高密度區(qū)域的點(diǎn)劃分為同一個(gè)類簇。這種方式可以處理具有復(fù)雜形狀的類簇和噪聲數(shù)據(jù)。DBSCAN 算法是典型的基于密度的聚類算法,能夠有效識(shí)別任意形狀的類簇。缺點(diǎn)是聚類的結(jié)果與參數(shù)有很大的關(guān)系,對(duì)于稀疏度差異很大的數(shù)據(jù)集無法取得很好的聚類效果。其算法步驟為:
- 步驟 1:從數(shù)據(jù)集中任選一個(gè)對(duì)象 p;
- 步驟 2:尋找對(duì)象 p 的直接密度可達(dá)的數(shù)據(jù)點(diǎn);
- 步驟 3:若對(duì)象 p 存在直接密度可達(dá)數(shù)據(jù)點(diǎn),則合并生成一個(gè)類簇,若不存在,將 p 作為一個(gè)邊界點(diǎn)選取下一個(gè)對(duì)象;
- 步驟 4:重復(fù)步驟 2 和 3,直到所有點(diǎn)都被處理。
3、基于層次的聚類算法
基于層次的聚類算法無需預(yù)先設(shè)置類簇個(gè)數(shù),而是通過對(duì)數(shù)據(jù)集在不同層次上進(jìn)行劃分來獲得樹狀聚類結(jié)構(gòu)。一般分為兩種類型:合并的層次聚類和分裂的層次聚類。前者是一種自底向上的層次聚類算法,從最底層開始,每一次通過合并最相似的類簇來形成上一層次的類簇,直到滿足終止條件。后者則是采用自頂向下的方法,從一個(gè)包含全部數(shù)據(jù)點(diǎn)的聚類開始,然后把根節(jié)點(diǎn)分裂為一些子類簇,每個(gè)子類簇再遞歸地分裂下去,直到出現(xiàn)只包含一個(gè)數(shù)據(jù)點(diǎn)的類簇出現(xiàn)。這種算法的優(yōu)點(diǎn)是處理速度很快,僅與類簇個(gè)數(shù)有關(guān),與數(shù)據(jù)個(gè)數(shù)無關(guān),可以解決非球形簇的聚類。其缺點(diǎn)是算法具有明顯的貪心特征,一個(gè)數(shù)據(jù)點(diǎn)分配錯(cuò)誤,將會(huì)出現(xiàn)連帶性錯(cuò)誤。代表算法包括 BIRCH算法、CURE 算法和 CHAMELEON 算法等。以自底向上的層次聚類算法為例,其算法步驟如下:
- 步驟 1:將每個(gè)對(duì)象看作一個(gè)類簇,計(jì)算兩兩之間的相似性;
- 步驟 2:將相似性最高的兩個(gè)類簇進(jìn)行合并成為一個(gè)新的類簇;
- 步驟 3:重新計(jì)算新的類簇與所有類簇的相似性;
- 步驟 4:重復(fù)步驟 2 和 3,直到不再有可合并類簇或者類簇?cái)?shù)滿足預(yù)先設(shè)定值。
在第二步中使用到的相似性度量方法,有很多算法,常見的有如下 5 種方法,其中 Ward 法與 Average Linkage 法比較常見:
3.1 單連接算法(SingleLinkage)
對(duì)于類 和 ,選擇這兩個(gè)類之間的任意兩個(gè)對(duì)象的最小距離作為他們合并的相似性度量方式,如公式所示:
?
3.2 全連接算法(CompleteLinkage)
該算法是單連接算法的反面,對(duì)于對(duì)于類 和 選取兩個(gè)類中距離最遠(yuǎn)的任意兩個(gè)負(fù)荷曲線對(duì)象作為兩個(gè)類之間的距離度量方式,如公式所示。然后選取類間距最小的類進(jìn)行合并。
?
3.3 平均連接算法(Average-linkage)
該算法的計(jì)算量較大,對(duì)于類和 ?,求兩個(gè)類之間所有對(duì)象兩兩之間的距離,然后再計(jì)算平均值作為兩個(gè)類的距離。然后選取所有類之間距離最小的兩個(gè)進(jìn)行合并,具體如公式:
?
3.4? Ward法
選擇合并之后的類導(dǎo)致的類內(nèi)離差平方和增加量最小的兩個(gè)類進(jìn)行合并。
3.5? 質(zhì)心連接(CentroidLinkage)
對(duì)于類類和 ? ,類之間的距離為聚類中心距離的平方作為距離度量:
?
4、基于網(wǎng)格的聚類算法
基于網(wǎng)格的聚類算法利用多分辨率形式的網(wǎng)格結(jié)構(gòu)將數(shù)據(jù)空間劃分為一個(gè)個(gè)的網(wǎng)格單元,并在網(wǎng)格單元上進(jìn)行類簇劃分。優(yōu)點(diǎn)是處理速度快,與數(shù)據(jù)對(duì)象個(gè)數(shù)無關(guān)。缺點(diǎn)是參數(shù)敏感,無法處理不規(guī)則分布的數(shù)據(jù),處理精度也不高。這類算法通常與基于密度的聚類算法結(jié)合從而提高聚類準(zhǔn)確度,代表算法有 STING 算法、CLIQUE算]和 WAVE-CLUSTER 算法等。這些算法采用了不同的網(wǎng)格劃分方法,但其核心步驟差異不大,如下所示。
- 步驟 1:將數(shù)據(jù)空間劃分為多個(gè)互不重疊的網(wǎng)格;
- 步驟 2:對(duì)網(wǎng)格內(nèi)數(shù)據(jù)進(jìn)行統(tǒng)計(jì);
- 步驟 3:通過統(tǒng)計(jì)信息找到高密度網(wǎng)格單元;
- 步驟 4:將相連的高密度網(wǎng)格單元合并為一個(gè)類簇;
- 步驟 5:將低密度網(wǎng)格單元?jiǎng)澐纸o距離最近的高密度網(wǎng)格單元所在類簇中。
5、基于模型的聚類算法
基于模型的聚類算法為每個(gè)類簇假設(shè)了一個(gè)模型,然后利用一個(gè)判斷機(jī)制尋找數(shù)據(jù)與給定模型的最佳擬合,最后完成聚類。這一類算法主要包括基于概率的模型聚類和基于神經(jīng)網(wǎng)絡(luò)的模型聚類。基于概率的模型聚類主要采用了概率生成方法,假定同一類簇中的數(shù)據(jù)按照同一種概率分布,最常用的即為高斯混合模型(Gaussian Mixture Models, GMM)。基于神經(jīng)網(wǎng)絡(luò)的模型聚類最常見的是 SOM 模型,其可以保持原始數(shù)據(jù)的拓?fù)涮卣?#xff0c;把相似的數(shù)據(jù)分配到同一類。這類算法的優(yōu)點(diǎn)是其對(duì)數(shù)據(jù)點(diǎn)所屬類簇的劃分以概率的形式表現(xiàn),每一類的特征也可用參數(shù)表達(dá)。缺點(diǎn)是處理效率不高,特別是數(shù)據(jù)量很少時(shí),聚類效果很差。以 SOM 模型為例,其算法流程如下:
- 步驟 1:先將網(wǎng)絡(luò)初始化,給輸出層的每個(gè)節(jié)點(diǎn)權(quán)重賦值;
- 步驟 2:從輸入樣本中隨機(jī)選擇一個(gè)輸入向量,找到與該輸入向量距離最小的權(quán)重向量;
- 步驟 3:定義獲勝單元,在獲勝單元的領(lǐng)域內(nèi)調(diào)整權(quán)重使其向輸入向量靠近;
- 步驟 4:提供新樣本,再次進(jìn)行訓(xùn)練;
- 步驟 5:使鄰域半徑收縮,降低學(xué)習(xí)率,重復(fù)步驟 2-4,直到滿足輸出條件,得到聚類結(jié)果。
總結(jié)
- 上一篇: 诸暨婚俗
- 下一篇: centos7安装DHCP服务器