最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

聚類分析之k-means

2022-11-01 20:35 作者:生信小院  | 我要投稿


聚類分析,是我們在各種組學(xué)分析中經(jīng)常需要使用到的一種方法。它包括兩類聚類方法,分別為層次聚類和非層次聚類。層次聚類包括合并法、分解法和樹狀圖,非層次聚類則包括劃分聚類和譜聚類。k-means聚類屬于非層次聚類法,已經(jīng)在多篇文獻中被使用,是一種最常見的聚類分析方法。正好,本公眾號最近在寫一篇轉(zhuǎn)錄組的文章,需要使用到這一方法。因而,本文將結(jié)合文獻解讀和代碼解讀相結(jié)合的方式來介紹其中的一種聚類方法k-means。

百度百科對k-means的定義為:k均值聚類算法(k-means clustering algorithm)是一種迭代求解的聚類分析算法,其步驟是,預(yù)將數(shù)據(jù)分為K組,則隨機選取K個對象作為初始的聚類中心,然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對象就代表一個聚類。聽起來好像很復(fù)雜,但其實原理很簡單。抽象來看,就是預(yù)先設(shè)置幾個點,再計算其余點與這幾個點的距離,從而對這些點進行分析。隨后,計算已經(jīng)分類的這幾個點的中心,再重新對這些點進行再分類,直到滿足某一條件從而終止。終止的條件可以是所有點不會被分配給不同的聚類或者聚類中心不發(fā)生變化。

實現(xiàn)這一方法的途徑有很多,本公眾號則希望介紹兩種比較具有代表性的實現(xiàn)方法:一是直接使用mev軟件進行k-means分類;二是通過編寫python腳本實現(xiàn)k-means分類。

一、使用Mev軟件進行k-means分類

MeV(MultiExperiment Viewer),通用微陣列分析工具,是一款TIGR推出的微陣列分析軟件包之一。該軟件可以運用各種算法對格式化好的微陣列數(shù)據(jù)進行聚類、統(tǒng)計、顯示、分析,這其中也包括了k-means分類。發(fā)表在Journal of Plant GrowthRegulation期刊的“Regulatory Factors of Leaf Senescence areAffected in Arabidopsis Plants Overexpressing the Histone MethyltransferaseSUVH2”、Journal of Experimental Botany期刊的“Systems analysis of cis-regulatory motifs in C4 photosynthesis genesusing maize and rice leaf transcriptomic data during a process of de-etiolation”、Journal of Plant Physiology期刊的“Transcriptomicanalysis reveals the contribution of auxin on the differentially developedcaryopses on primary and secondary branches in rice”和發(fā)表在Frontierin plant scenice期刊的“Genome-Wide Identification of lncRNAs Involved in FertilityTransition in the Photo-Thermosensitive Genic Male?Sterile Rice Line”等一系列的文章都有使用到mev軟件進行k-means分類。這也表明使用Mev進行k-means分析是可靠的。那么我們該如何使用這一軟件呢?。接下來,本文將就使用Mev軟件進行詳細(xì)的介紹。

1、打開mev軟件,選擇方框1中‘File->Load Data’選項。

圖1

2、彈出圖2的對話框,點擊方框2中的Browse選項。


圖2

3、彈出圖3的文件選擇對話框,在文件名即方框3中填入文件的絕對路徑。

圖3

4、接著圖4中會加載相應(yīng)的數(shù)據(jù),其中方框4顯示的文件路徑,方框5顯示的是文件內(nèi)容。

圖4

5、接著圖5中會加載相應(yīng)的數(shù)據(jù),其中方框6就是以熱圖的形式顯示你所選擇的數(shù)據(jù)。

圖5

6、在圖6的方框7中選擇Analysis->Clustering->FOM選項。


圖6

7、在圖7的方框8中點擊ok選項。


圖7

8、在圖8的方框9中則可以選擇彈出FOM圖,其中方框10中展示的FOM圖,在這里我們選擇下降趨勢變緩的最優(yōu)簇數(shù),即9。


圖8

9、在圖9的方框11中則可以選擇“Cluster->k-Means/Medians Cluster”選項,彈出相應(yīng)對話框。

圖9

10、在圖10的方框12中的“Number of clusters”中填入上一步確定的cluster數(shù),而在“Maximum iterations”中填入迭代次數(shù),這里選擇的是默認(rèn)值。

圖10

11、在圖11的方框13中的展示的是各簇的表達情況,而在方框13中的方框14展示的則是所有簇的表達情況。

圖11

最終,通過上述步驟即可完成相應(yīng)的k-means分類。

二、編寫python腳本實現(xiàn)k-means分類

Scikit-learn 是開源的 Python 庫,通過統(tǒng)一的界面實現(xiàn)機器學(xué)習(xí)、預(yù)處理、交叉驗證及可視化算法。這一方法也被發(fā)表在Plant Journal期刊的“Transcriptome and epigenome analyses of vernalization in Arabidopsisthaliana”和發(fā)表在planta期刊的“TranscriptionFactor Networks in Leaves of Cichorium endivia: New Insights into theRelationship between Photosynthesis and Leaf Development”所使用。因為,本推文也將介紹如何使用python編寫腳本,從而實驗k-means分類。

對于k-means分類而言,其中最難的一點就是如何確定最優(yōu)簇數(shù)。上文提高的Mev軟件使用的是FOM進行最優(yōu)簇數(shù)的確定,而對于自己編寫腳本而言,如何得到最優(yōu)簇數(shù)呢。這里主要介紹兩種鑒定最優(yōu)簇數(shù)的方法,一種是SSE(Sum of Square Error)即誤差平方和法,一種輪廓法。輪廓分析可用于研究生成的聚類之間的分離距離。對于輪廓法而言,輪廓系數(shù)更加偏向于接近于1,則表明該簇數(shù)最優(yōu)。而對于SSE計算方法而言,通常來說SSE越小,精確度越高。

接下來,我們將使用sikit-learn包并結(jié)合輪廓系數(shù)和SSE兩者對數(shù)據(jù)進行k-means分類。

1、加載相應(yīng)的包

2、定義相應(yīng)的函數(shù)其中,float_f函數(shù)用于將數(shù)值轉(zhuǎn)換為浮點數(shù),line_strip函數(shù)用于將文件每行的換行符去除,write_line_end函數(shù)用于添加相應(yīng)的換行符,savefile2函數(shù)用于保存數(shù)據(jù),loaddatas16函數(shù)用于加載數(shù)據(jù),其中加載完數(shù)據(jù),會輸出三個對象,分別為head,charac,target,其中head是首行,charac則是用于分類的元數(shù)據(jù),target則對應(yīng)相應(yīng)的基因。

所有的分析都離不開數(shù)據(jù),因此,準(zhǔn)備數(shù)據(jù)就是非常重要的一件事了。對于本推文而言,數(shù)據(jù)中首行(T_1至T_8)為用于分類的指標(biāo),首列(gene1_gene3)為分類的數(shù)據(jù),具體的格式詳見下表:

3、輪廓系數(shù)和SSE計算

本步驟得到的輪廓數(shù)值如下表,其中首列為假定的分類數(shù),第二類則為假定分類數(shù)下計算得到的輪廓系數(shù),第三列則為假定分類數(shù)下計算得到的SSE。比如本例中就設(shè)定了2-18簇,那么就會依次計算2-18簇的輪廓系數(shù)和SSE。


4、根據(jù)輪廓系數(shù)和SSE數(shù)值對數(shù)據(jù)進行k-means分類。

這一步輸出的結(jié)果文件為cluster分類的結(jié)果,其中,第一列為分類的數(shù)據(jù),而第二列則為分類的簇數(shù)。部分?jǐn)?shù)據(jù)如下表:

如果需要對數(shù)據(jù)進行可視化,可以參照官方指南對進行https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html。但是這一步非必須,所以本文未進行展示。但是對于本文的結(jié)果而言,如果展示分為9簇的輪廓圖則為下圖:


圖12

最后,綜上所示,即可完成k-means的分類。

三 慣例小結(jié)


本公眾號開發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。文末是本公眾號在其他平臺的賬戶,也歡迎大家關(guān)注并多提意見。


簡書:WJ的生信小院


博客園:生信小院


最后,也歡迎各位大佬能夠在本平臺上:1傳播和講解自己發(fā)表的論文;2:發(fā)表對某一科研領(lǐng)域的看法;3:想要達成的合作或者相應(yīng)的招聘信息;4:展示自己以尋找博后工作或者博士就讀的機會;5:博導(dǎo)提供博后工作或者博士攻讀機會,都可以后臺給筆者留言。希望本平臺在進行生信知識分享的同時,能夠成為生信分析者的交流平臺,能夠?qū)崿F(xiàn)相應(yīng)的利益互補和雙贏(不一定能實現(xiàn),但是夢想總得是有的吧)。



聚類分析之k-means的評論 (共 條)

分享到微博請遵守國家法律
洛隆县| 韩城市| 中阳县| 崇义县| 盱眙县| 额尔古纳市| 辽阳县| 阿拉善左旗| 平远县| 金山区| 屏边| 和平区| 黔西| 张家港市| 东兴市| 章丘市| 海兴县| 娱乐| 海口市| 台山市| 松溪县| 通山县| 兴业县| 泽普县| 饶河县| 广元市| 长寿区| 日喀则市| 同仁县| 巨野县| 西乌珠穆沁旗| 乾安县| 灯塔市| 嘉义市| 吴川市| 陇西县| 驻马店市| 双流县| 乌拉特前旗| 大英县| 南充市|