国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
聚類算法實(shí)踐(3)——PCCA、SOM、Affinity Propagation

6、PCCA

      PCCA算法的全稱是Perron Cluster Cluster Analysis,名稱里有兩個(gè)cluster是因?yàn)檫@樣簡(jiǎn)寫就可以和PCA區(qū)分開(kāi)來(lái)(無(wú)語(yǔ)……)。PCCA并不是設(shè)計(jì)來(lái)處理傳統(tǒng)的聚類問(wèn)題的,而是專門用于得到馬爾科夫鏈中的cluster。當(dāng)然,對(duì)于一般的聚類問(wèn)題,只要根據(jù)系統(tǒng)特點(diǎn)構(gòu)造出一個(gè)概率轉(zhuǎn)移矩陣,也可以使用PCCA算法。

       要解釋馬爾科夫模型中的cluster,讓我們想象有一只跳蚤在了數(shù)據(jù)點(diǎn)間跳躍轉(zhuǎn)移。它下一個(gè)時(shí)刻跳到特定數(shù)據(jù)點(diǎn)上的概率,只跟它當(dāng)前落在哪個(gè)數(shù)據(jù)點(diǎn)上有關(guān),這顯然是一個(gè)經(jīng)典的馬爾可夫過(guò)程。再讓我們假定,跳蚤在點(diǎn)與點(diǎn)之間的躍遷概率跟數(shù)據(jù)點(diǎn)的“距離”成反比。如果數(shù)據(jù)點(diǎn)可以分成幾個(gè)分界明顯的cluster,跳蚤大多數(shù)時(shí)間就只會(huì)在某個(gè)cluster內(nèi)部的數(shù)據(jù)點(diǎn)間轉(zhuǎn)移,在cluster之間的跳躍則相對(duì)罕見(jiàn)。

       先解釋一下馬爾科夫模型的一些性質(zhì)。馬爾科夫模型需要的是一個(gè)轉(zhuǎn)移矩陣A,元素A(i,j)表示系統(tǒng)從狀態(tài)i轉(zhuǎn)移到狀態(tài)j的概率。矩陣的每一列元素之和必須為1,這是因?yàn)檗D(zhuǎn)移概率總和必須為1。轉(zhuǎn)移矩陣有一個(gè)本征值為1的本征矢量,對(duì)應(yīng)著系統(tǒng)的穩(wěn)態(tài),亦即系統(tǒng)到達(dá)這個(gè)狀態(tài)后,它在各個(gè)狀態(tài)的概率分布就不會(huì)再發(fā)生變化。

       為了說(shuō)明PCCA的原理,我們直接來(lái)考慮最為極端的情況,也就是系統(tǒng)由幾個(gè)完全分離的cluster所構(gòu)成。對(duì)于最為極端的情況,如果系統(tǒng)只能在cluster內(nèi)部轉(zhuǎn)移,而完全不會(huì)在cluster之間轉(zhuǎn)移,那么轉(zhuǎn)移矩陣A就會(huì)是分塊矩陣的形式,比如下面的系統(tǒng)就可以分為兩個(gè)完全不連通的cluster,如下面的矩陣。

      這樣的一個(gè)矩陣存在著不止一個(gè)本征值為1的本征矢量,因?yàn)樗拿總€(gè)分塊都可以看做一個(gè)轉(zhuǎn)移矩陣,都會(huì)對(duì)應(yīng)著一個(gè)穩(wěn)態(tài)。比如對(duì)于上面的矩陣A,下面兩個(gè)本征矢的本征值都為1。

      

      如果我們得到的矢量都是這樣的理想形式,那么聚類就很簡(jiǎn)單了,只要得到本征值為1的全部本征矢,把對(duì)應(yīng)的元素大于0的數(shù)據(jù)點(diǎn)歸為一類就可以。十分可惜的是,由于這兩個(gè)本征矢量是簡(jiǎn)并的,它們線性疊加產(chǎn)生的矢量也是矩陣的本征值為1的本征矢量,比如這個(gè)矢量:

      因此PCCA算法的思路,就是要從計(jì)算得到實(shí)際本征矢量,反推得到理想矢量,從而實(shí)現(xiàn)聚類。

       如果將計(jì)算得到的k個(gè)本征值為1的本征列矢量并排合并,成為一個(gè)N*k的矩陣,那么矩陣的每一行可以看成對(duì)應(yīng)與數(shù)據(jù)點(diǎn)的一個(gè)坐標(biāo)。對(duì)于理想本征矢(對(duì)應(yīng)下圖藍(lán)色基矢),數(shù)據(jù)點(diǎn)都是落在坐標(biāo)軸上(因?yàn)槌怂鶎俚腸luster所對(duì)應(yīng)的那個(gè)本征值,其余的維度都是0),比如下圖的紅色和黃色的數(shù)據(jù)點(diǎn)。但是由于實(shí)際得到的本征矢量是理想本征矢的線性疊加,所以基矢就發(fā)生了旋轉(zhuǎn)(對(duì)應(yīng)黑色基矢)。

      盡管如此,每個(gè)cluster的數(shù)據(jù)點(diǎn)落在一條直線上的性質(zhì)并沒(méi)有發(fā)生改變?,F(xiàn)在的問(wèn)題就變成了如何找到這些直線的方向。PCCA首先找到離原點(diǎn)最遠(yuǎn)的數(shù)據(jù)點(diǎn),這個(gè)點(diǎn)相對(duì)于原點(diǎn)的矢量,就對(duì)應(yīng)了一個(gè)理想本征矢。然后每一次都找與已知的理想矢量垂直(相對(duì)原點(diǎn)),而又離原點(diǎn)最遠(yuǎn)的數(shù)據(jù)點(diǎn)。只要找k次,就能找到所有的理想矢量。最后看數(shù)據(jù)點(diǎn)落在哪個(gè)方向上,就可以知道它們屬于哪個(gè)cluster。實(shí)際情況下,矩陣并不會(huì)是完全的分塊矩陣,所以除了第一個(gè)本征矢,其余本征矢量對(duì)應(yīng)的本征值不會(huì)完全為1,而是接近于1。cluster之間的轉(zhuǎn)移幾率越小,這個(gè)算法的準(zhǔn)確性自然越高。

聚類結(jié)果

       PCCA算法的一個(gè)優(yōu)點(diǎn)就是,它可以根據(jù)本征值來(lái)直接得到cluster的數(shù)目,有多少個(gè)接近于1的本征值就應(yīng)該分多少個(gè)cluster。當(dāng)然這也是一個(gè)限制,聚類數(shù)目不能隨意給定,完全由數(shù)據(jù)性質(zhì)決定,如果cluster的分界不明顯,那么可能聚類就完全無(wú)效。

       下面是PCCA對(duì)樣品1的聚類結(jié)果。第一幅圖是由算法自動(dòng)判定聚類數(shù)目,正好為3,聚類十分成功;第二幅圖是人為地要求分為4個(gè)cluster,結(jié)果算法就基本失效了。

       PCCA是除了Chameleon算法外,對(duì)樣品2聚類結(jié)果最好的一個(gè)算法。不過(guò)它并不能正確地判斷出cluster的數(shù)目,總共劃分出了7個(gè)cluster,這里顯示了前5個(gè)。

       PCCA可以自動(dòng)判定cluster數(shù)目,而且也能得到非凸型的cluster,還可以適用于概率轉(zhuǎn)移矩陣的聚類,看上去確實(shí)是一個(gè)性能比較好的聚類算法。不過(guò),PCCA對(duì)數(shù)據(jù)的性質(zhì)特征有比較強(qiáng)的預(yù)設(shè),當(dāng)數(shù)據(jù)性質(zhì)偏離理想狀況較遠(yuǎn)時(shí),算法的穩(wěn)定性有待考驗(yàn)。

7、SOM

      之所以嘗試SOM聚類,主要是因?yàn)檫@是基于神經(jīng)網(wǎng)絡(luò)的一種算法,而神經(jīng)網(wǎng)絡(luò)本身又是機(jī)器學(xué)習(xí)中的一個(gè)重要方法,所以就自己實(shí)踐一下體會(huì)體會(huì)。

       所謂SOM指的是Kohonen提出的競(jìng)爭(zhēng)網(wǎng)絡(luò),全稱是self-organizing map。這個(gè)算法有著非常多的改進(jìn)和變種,在網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、節(jié)點(diǎn)之間的反饋方式等方面各有不同。更一般地說(shuō),SOM應(yīng)該是一個(gè)降維算法,它可以將高維的數(shù)據(jù)投影到節(jié)點(diǎn)平面上,實(shí)現(xiàn)高維數(shù)據(jù)可視化,然后也可以繼續(xù)根據(jù)降維之后的數(shù)據(jù)再進(jìn)行聚類,就像譜聚類一樣。不過(guò),因?yàn)檫@里僅僅是個(gè)人的算法嘗試,所以我就使用最簡(jiǎn)單的方式,直接使用SOM進(jìn)行聚類。

       競(jìng)爭(zhēng)網(wǎng)絡(luò),顧名思義就是網(wǎng)絡(luò)節(jié)點(diǎn)相互競(jìng)爭(zhēng)。對(duì)于每一個(gè)輸入的數(shù)據(jù)點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn)都要進(jìn)行競(jìng)爭(zhēng),最后只有一個(gè)節(jié)點(diǎn)獲勝。獲勝節(jié)點(diǎn)會(huì)根據(jù)贏得的數(shù)據(jù)點(diǎn)進(jìn)行演化,變得與這個(gè)數(shù)據(jù)點(diǎn)更匹配。如果數(shù)據(jù)可以明顯地分為多個(gè)cluster,節(jié)點(diǎn)變得跟某個(gè)cluster內(nèi)的數(shù)據(jù)點(diǎn)更為匹配,一般而言就會(huì)跟其它c(diǎn)luster不太匹配,這樣其它節(jié)點(diǎn)就會(huì)贏得了其它c(diǎn)luster的數(shù)據(jù)點(diǎn)。如此反復(fù)學(xué)習(xí),每個(gè)節(jié)點(diǎn)就會(huì)變得只跟特定的一個(gè)cluster匹配,這樣就完成了數(shù)據(jù)點(diǎn)的聚類。

       SOM需要輸入數(shù)據(jù)點(diǎn)的坐標(biāo)矩陣,對(duì)應(yīng)的,每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)也有一個(gè)坐標(biāo),初始時(shí)刻隨機(jī)賦值。每次輸入一個(gè)數(shù)據(jù)點(diǎn),與這個(gè)數(shù)據(jù)距離最近的節(jié)點(diǎn)獲勝,獲勝點(diǎn)的坐標(biāo)向著這個(gè)數(shù)據(jù)點(diǎn)的方向偏移。聰明的看官們肯定發(fā)現(xiàn)了,這個(gè)簡(jiǎn)單化的SOM算法跟K-means算法思路基本一致,確實(shí)一些文章也提到,在節(jié)點(diǎn)數(shù)目偏少的情況下SOM的結(jié)果就類似于K-means。

聚類結(jié)果

       SOM的聚類結(jié)果確實(shí)跟K-means比較類似,不過(guò)當(dāng)聚類數(shù)目取為4時(shí),經(jīng)常也能正確的結(jié)果,而不會(huì)聚成4個(gè)cluster,這個(gè)跟學(xué)習(xí)時(shí)間以及節(jié)點(diǎn)的初始值有關(guān)。這應(yīng)該是因?yàn)镾OM的學(xué)習(xí)方式與K-means直接求平均不同。至于對(duì)樣品2的聚類,SOM也跟K-means類似,就不貼出來(lái)了。

       這個(gè)SOM聚類只是個(gè)人試水,并不能真正代表SOM聚類的最佳效果,僅作參考。

8、Affinity Propagation

       Affinity Propagation(簡(jiǎn)稱AP)是一個(gè)比較新的算法,在07年發(fā)表在Science上面,可見(jiàn)肯定是有一些獨(dú)到之處的。

       個(gè)人認(rèn)為,AP算法的具體實(shí)現(xiàn)步驟沒(méi)有很直觀的物理意義,大致上就是一個(gè)網(wǎng)絡(luò)自動(dòng)演化的過(guò)程,實(shí)現(xiàn)起來(lái)也并不復(fù)雜。感興趣的童鞋可以直接到算法作者的網(wǎng)頁(yè),上面也提供了各個(gè)版本的實(shí)現(xiàn)程序,可以直接拿來(lái)使用。

        

這里我就不詳細(xì)地?cái)⑹鏊惴ǖ膶?shí)現(xiàn)步驟了,只是介紹一下這個(gè)算法的一些特點(diǎn)。

1)AP只要求輸入數(shù)據(jù)點(diǎn)之間相似性矩陣,而且還不需要是對(duì)稱陣。從這個(gè)角度來(lái)說(shuō),適用范圍非常大。

2)AP算法的核心是對(duì)于每個(gè)cluster找到一個(gè)代表數(shù)據(jù)點(diǎn)exemplar,使得cluster內(nèi)其它數(shù)據(jù)點(diǎn)到這個(gè)點(diǎn)的距離平方和最小。這是AP算法的一個(gè)很大的優(yōu)點(diǎn),因?yàn)樗粌H能完成聚類,還可以給出這個(gè)類別的代表。很多時(shí)候我們聚類也就是為了找出代表而已。

3)AP算法不能直接知道聚類的數(shù)目,它不僅不能判定合適的聚類數(shù)目,甚至在聚類完成前,用戶都不知道這次會(huì)聚出多少個(gè)cluster來(lái),只能自己慢慢調(diào)整參數(shù),多次嘗試……

       AP算法的目標(biāo)函數(shù)跟K-means類似,不過(guò)中心點(diǎn)不是平均值,而是真實(shí)的一個(gè)數(shù)據(jù)點(diǎn)。其實(shí)這個(gè)算法可以說(shuō)是K-centers的一個(gè)高效實(shí)現(xiàn),但歸根到底得到的也就是K-centers最佳情況下的結(jié)果而已,跟K-means也類似,都是大小接近的凸型cluster,所以我就不貼結(jié)果了??梢哉f(shuō),當(dāng)你想得到K-centers的結(jié)果時(shí),AP算法是你的最佳選擇,但如果你的目標(biāo)不在于此,那就不要用這個(gè)方法了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基因芯片數(shù)據(jù)分析中的標(biāo)準(zhǔn)化算法和聚類算法
AIops | 一文了解日志異常檢測(cè)
四種聚類方法之比較
R語(yǔ)言使用自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)進(jìn)行客戶細(xì)分
我們?yōu)槟憧偨Y(jié)了這篇社區(qū)發(fā)現(xiàn)算法綜述
(數(shù)據(jù)科學(xué)學(xué)習(xí)手札09)系統(tǒng)聚類算法Python與R的比較
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服