餘弦相似度及其生物信息學應用

2021-02-13 生信菜鳥團

眾所周知,在R裡面使用cor函數可以計算兩個向量的相似情況,有兩個參數尤為需要注意:

其中method參數是:One of "pearson" (default), "kendall", or "spearman": can be abbreviated.
 
然後use參數是:This must be (an abbreviation of) one of the strings "everything", "all.obs", "complete.obs", "na.or.complete", or "pairwise.complete.obs".

本來呢,pearson,kendall以及spearman這3個相關性公式就讓人頭疼了,但是最近我在教程:比較不同的腫瘤somatic突變的signature 發現兩個不同算法的signature的相似性並不是和文章完全一致,原因是作者使用了一個cosine similarity(餘弦相似度)的概念

cosine similarity(餘弦相似度)如何計算

簡單搜索了一下它的介紹:

餘弦值的範圍在[-1,1]之間,值越趨近於1,代表兩個向量的方向越接近;越趨近於-1,他們的方向越相反;接近於0,表示兩個向量近乎於正交。

最常見的應用就是計算文本相似度。將兩個文本根據他們詞,建立兩個向量,計算這兩個向量的餘弦值,就可以知道兩個文本在統計學方法中他們的相似度情況。實踐證明,這是一個非常有效的方法。

第一次搜索它在R裡面的用法,發現了tcR包裡面的cosine.similarity函數,就簡單試用了一下。但是計算得到的結果很詭異,並不是範圍在[-1,1]之間。

再次嘗試搜索cosine similarity(餘弦相似度),發現在 The repertoire of mutational signatures in human cancer 文章裡面也提到了:

COSMIC資料庫的signature需要更新為何使用cosine similarity(餘弦相似度)而不是簡單的相關性係數呢?

前面我們搜索了解到,cosine similarity(餘弦相似度)最常見的應用就是計算文本相似度,那麼,為什麼生物信息學領域裡面的cosmic的signature的相似性要採用cosine similarity(餘弦相似度)而不是常見的簡單的相關性係數呢?

比如,同樣的是對cosmic內置的30個signature互相計算相關性,如下:

# https://cancer.sanger.ac.uk/cancergenome/assets/signatures_probabilities.txt
cosmic=read.table('https://cancer.sanger.ac.uk/cancergenome/assets/signatures_probabilities.txt',
                  header = T,sep = '\t')[,1:33]

head(cosmic[,1:4])
M=cor(cosmic[,4:33])
pheatmap::pheatmap(M)

出圖如下:


而計算cosine similarity(餘弦相似度)代碼如下;

# 具體數學公式參考:https://www.jianshu.com/p/a894ebba4a1a
cos=function(x,y){
  sum(x * y) / (sqrt(sum(x ^ 2)) * sqrt(sum(y ^ 2)));
}
M2=apply(cosmic[,4:33], 2, function(x){
  apply(cosmic[,4:33], 2, function(y){
    cos(x,y)
  }) 
})  
rownames(M2)=rownames(M)
pheatmap::pheatmap(M2)

出圖如下:


雖然我做了探索,但是我其實並不明白為什麼cosmic的signature的相似性要採用cosine similarity(餘弦相似度)而不是常見的簡單的相關性係數。

不過上面的代碼親測可以用,打開你的R即可,如果你覺得這些代碼很好玩,歡迎參加我們的生信技能樹官方舉辦的學習班:

文末友情推薦

要想真正入門生物信息學建議務必購買全套書籍,一點一滴攻克計算機基礎知識,書單在:什麼,生信入門全套書籍僅需160 。如果大家沒有時間自行慢慢摸索著學習,可以考慮我們生信技能樹官方舉辦的學習班:

如果你課題涉及到轉錄組,歡迎添加一對一客服:詳見:你還在花三五萬做一個單細胞轉錄組嗎?

號外:生信技能樹知識整理實習生招募,長期招募,也可以簡單參與軟體測評筆記撰寫,開啟你的分享人生!另外,:絕大部分生信技能樹粉絲都沒有機會加我微信,已經多次滿了5000好友,所以我開通了一個微信好友,前100名添加我,僅需150元即可,3折優惠期機會不容錯過哈。我的微信小號二維碼在:0元,10小時教學視頻直播《跟著百度李彥宏學習腫瘤基因組測序數據分析》

相關焦點

  • AI產品經理需要了解的數據知識:餘弦相似度
    本文概括介紹了餘弦相似度是什麼、如何應用以及案例說明,目的是希望我們產品經理在設計相關跟相似度功能或是利用相似性功能解決某一業務的場景時能利用上餘弦相似度,並希望您讀完對自己在設計相關推薦業務、搜索業務、識別業務時能有更深層次的理解。
  • 餘弦定理測量相似度
    今日簡述餘弦定理不只停留在高中的試卷上,它也可以去測量兩個文本,圖片,用戶個體等等之間的相似度哦?看看簡單的原理,以及文末圖片的檢測。距離 vs 方向兩點之間的差異衡量直接想到的方法是距離度量,比如說歐式距離,從不同維度的數值絕對差異體現兩個個體的差異。
  • 中藥指紋圖譜相似度評價方法各有千秋
    對從整體上表現中藥複雜體系所含化學成分的變化情況,指紋圖譜的相似度評價起著非常關鍵的作用。根據文獻報導,相似度的評價方法主要有峰重疊率法(Nei係數法)、相關係數法、距離係數法、向量夾角餘弦法和峰重疊率與共有峰強度結合法(改進的Nei係數法)等方法。些方法都有各自的特點和應用範圍。實際應用中,針對實際問題如何選用合適的相似度評價方法是亟須解決的問題。
  • 中藥指紋圖譜相似度評價方法作用各一
    清華大學藥物研究所的研究人員,對各種指紋圖譜的相似度評價方法進行了比較,強調在實際應用中,應針對不同的實際問題,採用適合的相似度評價方法,以便更好的用於中藥質量控制。    研究人員先通過理論分析,比較了各種相似度係數的計算方法。如距離係數法、夾角餘弦法、相關係數法、Nei係數法、改進Nei係數法。
  • 餘弦定理及其應用的深入剖析
    1.對餘弦定理的四點說明(1)勾股定理指出了直角三角形中三邊平方之間的關係,餘弦定理則指出了一般三角形中三邊平方之間的關係,餘弦定理是勾股定理的推廣,勾股定理是餘弦定理的特例.(2)與正弦定理一樣,餘弦定理揭示了三角形的邊角之間的關係,是解三角形的重要工具之一.(3)餘弦定理的三個等式中,每一個都包含四個不同的量,它們是三角形的三邊和一個角,知道其中的三個量,代入等式,就可以求出第四個量.(4)運用餘弦定理時,若已知三邊(求角)或已知兩邊及夾角(求第三邊),則由三角形全等的判定定理知,三角形是確定的,所以解也是唯一的.
  • 郭茂祖——哈爾濱工業大學——人工智慧及其應用、生物信息學...
    職稱: 教授       招生專業: 模式識別與智能系統 研究領域: 人工智慧及其應用、生物信息學、近似算法與隨機算法
  • 常見的距離算法和相似度計算方法
    (係數)算法2.1 餘弦相似度(Cosine Similarity)餘弦相似度是用向量空間中兩個向量夾角的餘弦值作為衡量兩個個體間差異的大小的度量。是餘弦相似性的一種形式。皮爾遜相關係數具有平移不變性和尺度不變性,計算出了兩個向量(維度)的相關性。在各個領域都應用廣泛,例如,在推薦系統根據為某一用戶查找喜好相似的用戶,進而提供推薦,優點是可以不受每個用戶評分標準不同和觀看影片數量不一樣的影響。
  • 機器學習基礎:相似度和距離度量究竟是什麼
    在任意類型的算法中,最常見的相似度度量是向量之間夾角的餘弦,即餘弦相似度。設 A 為用戶的電影評分 A 列表,B 為用戶的電影評分 B 列表,那麼它們之間的相似度可以這樣計算:從數學上看,餘弦相似度衡量的是投射到一個多維空間中的兩個向量之間的夾角的餘弦。當在多維空間中繪製餘弦相似度時,餘弦相似度體現的是每個向量的方向關係(角度),而非幅度。
  • 餘弦定理的證明方法大全
    餘弦定理定理證明
  • 相似度距離度量公式
    常用的相似度度量距離有:歐幾裡得距離、餘弦相似度距離、曼哈頓距離、閔可夫斯基距離、切比雪夫距離、Jaccard相似係數、皮爾森相關係數。
  • 白芍HPLC指紋圖譜相似度的分析
    本實驗通過用RP-HPLC方法建立白芍的指紋圖譜,並將聚類分析和相似度分析的數據分析技術應用於白芍的指紋圖譜,考察了白芍藥材與產地及炮製之間的數據關係為全面控制白芍的質量提供了方法    1 儀器與試藥    日本島津公司LC一LOAD液相色譜儀,SPD一10A檢測器,C一R6A數據理機1甲醇、乙睛為色譜純,雙蒸水,其他試劑均為分析純。
  • 常用的相似度和距離計算方法
    與Jaccard 係數相關的指標叫做Jaccard 距離,用於描述集合之間的不相似度。Jaccard 距離越大,樣本相似度越低。>餘弦相似度是用向量空間中兩個向量夾角的餘弦值作為衡量兩個個體間差異的大小的度量。
  • 一文講述常見的文本相似度計算方法
    作者 | LU_ZHAO責編 | 徐威龍前言在自然語言處理中,我們經常需要判定兩個東西是否相似。比如,在微博的熱點話題推薦那裡,我們需要比較微博之間的相似度,讓相似度高的微博聚集在一起形成一個簇,提出一個主題。
  • AI產品經理必修——揭開算法的面紗(餘弦定理)
    餘弦定理作為初中課本就學過的知識,AI產品經理將會把它運用到相似度計算當中。在數據採集及大數據處理的時候,數據排重、相似度計算是很重要的一個環節,由此引入相似度計算算法。但你知道我們在初中課本中學過的餘弦定理是如何完成相似度計算的嗎?要揭開謎底,我們先來「三步走」。一、TF-IDF單文本詞彙頻率/逆文本頻率值1.
  • 構造法求15度角的餘弦值
    例如求15度角的餘弦值問題,就可以用構造法來解決這樣的問題。下面我用兩種方法來求一下15度角的餘弦值.(方法1)已知在直角三角形ABC中,∠C=15度,∠A=90度,求角C的餘弦值.我們可以採用構造法,找到BC的中點E,作DE垂直於BC,交AC於點D,連接BD,這樣我們就在三角形ABC中構造出一個30度60度90度的直角三角形,我們可以設AB=a,進而通過特殊三角形,以及勾股定理,表示出其他線段的長度,進而可以求出15度角的餘弦值.
  • 《相關文摘》:中藥指紋圖譜相似度評價方法的比較
    清華大學藥物研究所;【刊名】中成藥 , 編輯部郵箱 2005年 03期   中文核心期刊要目總覽  ASPT來源刊  CJFD收錄刊【英文刊名】Chinese Traditional Patent Medicine【中文關鍵詞】中藥指紋圖譜; 相似度評價
  • 餘弦定理知識點總結及典型例題
    餘弦定理和正弦定理是高中階段解三角形的理論基礎,上期分享了正弦定理的基礎知識和常見題型,本期小編和大家分享一下餘弦定理的基礎知識和基本題型及常用解題技巧。一、基礎知識二、典型例題題型一、餘弦定理的基本概念總結:(1)在解三角形的時候,我們什麼時候選擇正弦定理什麼時候選擇餘弦定理呢?
  • ...信息學,基因晶片相關信息學技術,藥物基因組信息學和系統生物學
    職稱: 教授       招生專業: 計算機應用技術 研究領域: 複雜疾病基因連鎖定位作圖方法, 生物醫學信息學,基因晶片相關信息學技術,藥物基因組信息學和系統生物學
  • 宏程序——三角函數正弦SIN 餘弦COS的理解與實例應用
    舉報   來源:頭條號BOBO先生  通過前幾期的文章可以看出三角函數在宏程序中應用常見
  • Python自然語言處理實戰:兩篇文章相似度清晰透明
    Python自然語言處理實戰:兩篇文章相似度清晰透明 工程師譚軍 發表於 2018-07-09 09:22:58 此書專注於中文的自然語言處理,以Python及其相關框架為工具,以實戰為導向,詳細講解了自然語言處理的各種核心技術