跳轉到內容

R 中的資料探勘演算法/聚類/相異矩陣計算

來自華夏公益教科書,開放的書籍,面向開放的世界

相異性可以定義為兩個樣本在某個標準下的距離,換句話說,這兩個樣本有多不同。考慮到笛卡爾平面,可以說兩點之間的歐幾里得距離是其相異性的度量。相異性指數也可以定義為一個組必須移動到另一個組的百分比,以便樣本達到均勻分佈。

相異矩陣是一個矩陣,它表示兩個集合之間成對的相似性。它是方陣且對稱的。對角元素定義為零,這意味著零是元素與其自身之間相異性的度量。因此,矩陣中包含的資訊可以被視為三角矩陣。MARCHIORO 等人(2003)[1] 使用相異矩陣來確定燕麥樣本之間的差異,並發現未來世代的良好基因型。

相異性的概念可以更一般地使用,來確定樣本之間的成對差異。例如,這被 da Silveira 和 Hanashiro(2009)[2] 用於研究上級和下級之間相似性和相異性對他們關係質量的影響。相似性的概念是聚類的一個關鍵概念,用於在觀察集合時決定哪些聚類應該合併或拆分。為了實現最佳聚類,合適的度量使用是策略性的,因為它直接影響聚類的形狀。相異矩陣(或距離矩陣)被用於許多基於密度的和層次聚類的演算法中,如 LSDBC。

例如,相異矩陣計算可用於查詢燕麥基因型之間的遺傳相異性[1]。在生物資訊學中,排列蛋白質、RNA 和 DNA 序列以識別可能是序列之間關係結果的相似區域的方式被稱為序列比對。序列比對是基因組組裝的一部分,其中序列被比對以查詢重疊,以便可以形成長序列。

演算法

[編輯 | 編輯原始碼]

該矩陣可以透過遍歷每個元素並計算其與所有其他元素的相異性來計算。令 A 為大小為 NxN 的相異矩陣,B 為 N 個元素的集合。Aij 是元素 Bi 和 Bj 之間的相異性。


   for i = 0 to N do
       for j = 0 to N do
           Aij = Dissimilarity(Bi,Bj)
       end-for
   end-for

其中函式 Dissimilarity 定義如下

Dissimilarity(a,b) =
    0, if a = b
    ApplyDissimilarityCriterion(a,b), otherwise

ApplyDissimilarityCriterion 是一個函式,它根據定義的標準計算兩個元素之間的相異性。以下是一些標準的列表

  • 歐幾里得距離
  • 歐幾里得距離平方
  • 曼哈頓距離
  • 最大距離
  • 馬氏距離
  • 餘弦相似度

R 中的實現

[編輯 | 編輯原始碼]

聚類分析,從 Peter Rousseeuw、Anja Struyf 和 Mia Hubert 的擴充套件版本而來。

: cluster
版本: 1.12.1
優先順序: 推薦
依賴: R (>= 2.5.0)、stats、graphics、utils
釋出時間: 2009-10-06
作者: Martin Maechler,基於 Peter Rousseeuw、Anja.Struyf@uia.ua.ac.be 和 Mia.Hubert@uia.ua.ac.be 的 S 原版,以及 Kurt.Hornik@R-project.org 的初始 R 移植版本
維護者: Martin Maechler <maechler at stat.math.ethz.ch>
許可證: GPL (>= 2)
引用: cluster 引用資訊
檢視中: Cluster、Environmetrics、多元
CRAN 檢查: cluster 結果

該包可以從 CRAN 網站下載。它可以使用 install.packages() 函式在 R 環境中直接安裝。daisy 函式用於計算相異矩陣。它可以在 cluster 包中找到。

相異性物件是相異矩陣的表示。該矩陣是對稱的,對角線並不重要,因此下三角形由一個向量表示以節省儲存空間。要生成相異矩陣,必須使用 daisy 函式,如下所示

用法

daisy(x, metric = c("euclidean", "manhattan", "gower"), stand = FALSE, type = list())

引數

  • x: 數值矩陣或資料框。相異性將在 x 的行之間計算。
  • metric: 指定要使用的度量的字串。目前可用的選項是“euclidian”(預設)、“manhattan”和“gower”。
  • stand: 邏輯標記:如果值為真,則在計算相異性之前將 x 中的測量值進行標準化。
  • type: 列表,指定 x 中變數(列)的一些或所有型別。選項包括:“ordratio”(按比例縮放的變數,被視為普通變數)、“logicalratio”(必須進行對數變換的按比例縮放的變數)、“asymm”(非對稱二進位制變數)和“symm”(對稱二進位制變數)。每個條目都是一個向量,包含 x 的相應列的名稱或編號。

返回值

該函式返回一個相異性物件。

有關更多資訊,請參閱 daisy 文件


視覺化

[編輯 | 編輯原始碼]

對於示例,我們將使用 R 中可用的農業資料集。

使用歐幾里得度量,相異矩陣可以使用以下命令計算:daisy(agriculture, metric = "euclidean")。

計算結果將直接顯示在螢幕上,如果您想重新使用它,只需將其分配給一個物件:x <- daisy(agriculture, metric = "euclidean")。

daisy 函式返回的物件是一個相異性物件,在此文字中之前已定義。

要視覺化矩陣,請使用以下命令:as.matrix(x)

> as.matrix(x)
            B        DK         D        GR         E         F       IRL
B    0.000000  5.408327  2.061553 22.339651  9.818350  3.448188 12.747549
DK   5.408327  0.000000  3.405877 22.570113 11.182576  3.512834 13.306014
D    2.061553  3.405877  0.000000 22.661200 10.394710  2.657066 13.080138
GR  22.339651 22.570113 22.661200  0.000000 12.567418 20.100995  9.604166
E    9.818350 11.182576 10.394710 12.567418  0.000000  8.060397  3.140064
F    3.448188  3.512834  2.657066 20.100995  8.060397  0.000000 10.564563
IRL 12.747549 13.306014 13.080138  9.604166  3.140064 10.564563  0.000000
I    5.803447  5.470832  5.423099 17.383325  5.727128  2.773085  7.920859
L    4.275512  2.220360  2.300000 24.035391 12.121056  4.060788 14.569145
NL   1.649242  5.096077  2.435159 20.752349  8.280097  2.202272 11.150785
P   17.236299 17.864490 17.664088  5.162364  7.430343 15.164432  4.601087
UK   2.828427  8.052950  4.850773 21.485344  8.984431  5.303772 12.103718
            I         L        NL         P        UK
B    5.803447  4.275512  1.649242 17.236299  2.828427
DK   5.470832  2.220360  5.096077 17.864490  8.052950
D    5.423099  2.300000  2.435159 17.664088  4.850773
GR  17.383325 24.035391 20.752349  5.162364 21.485344
E    5.727128 12.121056  8.280097  7.430343  8.984431
F    2.773085  4.060788  2.202272 15.164432  5.303772
IRL  7.920859 14.569145 11.150785  4.601087 12.103718
I    0.000000  6.660330  4.204759 12.515990  6.723095
L    6.660330  0.000000  4.669047 19.168985  7.102112
NL   4.204759  4.669047  0.000000 15.670673  3.124100
P   12.515990 19.168985 15.670673  0.000000 16.323296
UK   6.723095  7.102112  3.124100 16.323296  0.000000

要獲取儲存在矩陣中的資料的摘要,可以使用:summary(x)

> summary(x)
66 dissimilarities, summarized :
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
 1.6492  4.3569  7.9869  9.5936 13.2500 24.0350
Metric :  euclidean
Number of objects : 12

您也可以在 print 方法中使用相異矩陣來獲取矩陣的下三角形(重要的部分,已儲存)

> print(x)
Dissimilarities :
            B        DK         D        GR         E         F       IRL
DK   5.408327                                                            
D    2.061553  3.405877                                                  
GR  22.339651 22.570113 22.661200                                        
E    9.818350 11.182576 10.394710 12.567418                              
F    3.448188  3.512834  2.657066 20.100995  8.060397                    
IRL 12.747549 13.306014 13.080138  9.604166  3.140064 10.564563          
I    5.803447  5.470832  5.423099 17.383325  5.727128  2.773085  7.920859
L    4.275512  2.220360  2.300000 24.035391 12.121056  4.060788 14.569145
NL   1.649242  5.096077  2.435159 20.752349  8.280097  2.202272 11.150785
P   17.236299 17.864490 17.664088  5.162364  7.430343 15.164432  4.601087
UK   2.828427  8.052950  4.850773 21.485344  8.984431  5.303772 12.103718
            I         L        NL         P
DK                                         
D                                          
GR                                         
E                                          
F                                          
IRL                                        
I                                          
L    6.660330                              
NL   4.204759  4.669047                    
P   12.515990 19.168985 15.670673          
UK   6.723095  7.102112  3.124100 16.323296

Metric :  euclidean
Number of objects : 12


案例研究

[編輯 | 編輯原始碼]

為了說明相異矩陣技術,將展示一個簡單的案例研究。


在物種改良計劃中,理想情況下要獲得高度異質的世代,以便能夠誘導所需的性狀。在試圖誘導給定的性狀集時,有必要選擇一個親本樣本,以產生下一代。

遺傳相異性測量已成為許多作者(Santos 等人,1997;Gaur 等人,1978;Casler,1995)感興趣的領域,用於描述和識別不同物種的遺傳貢獻。作為相異性測量值,以顯示遺傳變異強度,歐幾里得距離和馬氏距離是植物遺傳改良計劃中最常用的。目標是選擇可能透過其後代產生優良組合的基因組成。


輸入資料

[編輯 | 編輯原始碼]

此處使用的資料摘自 MARCHIORO 等人 (2003)。對 18 種燕麥基因型進行了多方面的測量,以便進行比較。這裡我們使用受殺菌劑影響的基因型的開花時間 (DUF)。

基因型 DUF(天)
UPF 7。 104
UPF 15。 100
UPF 16。 97
UPF 17。 96
UPF 18。 102
UPF 19。 98
UFRGS 7。 95
UFRGS 14。 99
UFRGS 15。 101
UFRGS 16。 101
UFRGS 17。 100
UFRGS 18。 105
UFRGS 19。 92
URS 20。 97
URS 21。 93
IAC 7。 91
OR 2。 97
OR 3。 98

此資料是 daisy 函式的輸入,用於計算差異矩陣。從結果中可以確定最佳親本,以獲得高度異質的未來世代。


在 R 中構建資料

DUF <- c(104,100, 97, 96, 102, 98, 95, 99, 101, 101, 100, 105, 92, 97, 93, 91, 97, 98)
Genotype <- c("UPF 7", "UPF 15", "UPF 16", "UPF 17", "UPF 18", "UPF 19", "UFRGS 7", "UFRGS 14", "UFRGS 15", "UFRGS 16", "UFRGS 17", "UFRGS 18", "UFRGS 19", "URS 20", "URS 21", "IAC 7", "OR 2", "OR 3")

myframe <- data.frame(DUF)

rownames(myframe) <- Genotype

要確定本案例研究中所選資料的差異矩陣,請使用以下命令

dis_mat <- daisy(myframe, metric = "euclidean", stand = FALSE)

儲存在 dis_mat 中的差異矩陣可以視覺化,如下所示

> as.matrix(dis_mat)
         UPF 7 UPF 15 UPF 16 UPF 17 UPF 18 UPF 19 UFRGS 7 UFRGS 14 UFRGS 15 UFRGS 16 UFRGS 17 UFRGS 18 UFRGS 19 URS 20 URS 21 IAC 7 OR 2 OR 3
UPF 7        0      4      7      8      2      6       9        5        3        3        4        1       12      7     11    13    7    6
UPF 15       4      0      3      4      2      2       5        1        1        1        0        5        8      3      7     9    3    2
UPF 16       7      3      0      1      5      1       2        2        4        4        3        8        5      0      4     6    0    1
UPF 17       8      4      1      0      6      2       1        3        5        5        4        9        4      1      3     5    1    2
UPF 18       2      2      5      6      0      4       7        3        1        1        2        3       10      5      9    11    5    4
UPF 19       6      2      1      2      4      0       3        1        3        3        2        7        6      1      5     7    1    0
UFRGS 7      9      5      2      1      7      3       0        4        6        6        5       10        3      2      2     4    2    3
UFRGS 14     5      1      2      3      3      1       4        0        2        2        1        6        7      2      6     8    2    1
UFRGS 15     3      1      4      5      1      3       6        2        0        0        1        4        9      4      8    10    4    3
UFRGS 16     3      1      4      5      1      3       6        2        0        0        1        4        9      4      8    10    4    3
UFRGS 17     4      0      3      4      2      2       5        1        1        1        0        5        8      3      7     9    3    2
UFRGS 18     1      5      8      9      3      7      10        6        4        4        5        0       13      8     12    14    8    7
UFRGS 19    12      8      5      4     10      6       3        7        9        9        8       13        0      5      1     1    5    6
URS 20       7      3      0      1      5      1       2        2        4        4        3        8        5      0      4     6    0    1
URS 21      11      7      4      3      9      5       2        6        8        8        7       12        1      4      0     2    4    5
IAC 7       13      9      6      5     11      7       4        8       10        10       9       14        1      6      2     0    6    7
OR 2         7      3      0      1      5      1       2        2        4        4        3        8        5      0      4     6    0    1
OR 3         6      2      1      2      4      0       3        1        3        3        2        7        6      1      5     7    1    0

輸出表明基因型之間存在高度差異。這與 MARCHIORO 等人 (2003) 的結果一致[1]。雜交這些基因型,有可能在下一代獲得高度差異,這是非常好的,因為遺傳改良計劃可以有更多遺傳組合可供探索。

參考文獻

[編輯 | 編輯原始碼]
  1. a b c MARCHIORO, Volmir Sergio, DE CARVALHO, Fernando Irajá Félix, DE OLIVEIRA, Antônio Costa CRUZ, Pedro Jacinto, LORENCETTI, Claudir, BENIN, Giovani, DA SILVA, José Antônio Gonzales, SCHMIDT, Douglas A. M., 燕麥基因型的遺傳差異,Ciênc. agrotec.,拉夫拉斯。V.27,n.2,p.285-294,mar./abr.,2003
  2. DA SILVEIRA, Nereida Salette Paulo, HANASHIRO, Darcy Mitiko Mori, 上級和下級之間的相似性和差異及其對二元關係質量的影響,RAC,庫裡提巴,v. 13,n. 1,art. 7,p. 117-135,Jan./Mar. 2009
華夏公益教科書