⑴ 怎麼計算兩組數據的相似程度
樓上比較方差(∑σ^2)做法不見得全面。所謂「數據相似」,應是「兩組數據在某個有序排列之下具有同等變化規律」的含義。比如,兩組數據是兩天的溫度變化曲線、試驗參數序列...
所以,按照以上假設,那麼需要採用「統計回歸處理」方法,看二者回歸後函數參量的相似性。其他數據處理手段還有:擬合(具體有很多種,應用於不同領域)、(等距序列)譜分析法...
建議搜索,關鍵詞:回歸處理 擬合演算法 傅立葉分析
⑵ 怎麼比較兩個向量組相似度
相關性是數據屬性相關性的度量方法,相似度是數據對象相似性度量的方法,數據對象由多個數據屬性描述,數據屬性的相關性由相關系數來描述,數據對象的相似性由某種距離度量。許多數據分析演算法會涉及相似性度量和相關性度量,如聚類、KNN等。
相關性度量
相關性用相關系數來度量,相關系數種類如下圖所示。相關系數絕對值越大表是相關性越大,相關系數取值在-1–1之間,0表示不相關。各系數計算表達式和取值范圍參考 相關性與相似性度量
這里寫圖片描述
相似性度量
相似度用距離來度量,相似度度量指標種類如下圖所示。相似度通常是非負的,取值在0-1之間。距離越大,相似性越小,在應用過程中要注意計算的是相似度還是距離。
這里寫圖片描述
Jaccard(傑卡德相似系數)
兩個集合A和B的交集元素在A,B的並集中所佔的比例 這里寫圖片描述
傑卡德距離用兩個集合中不同元素占所有元素的比例來衡量兩個集合的區分度這里寫圖片描述
Cosine(餘弦相似度)
在二維空間中向量A(x1,y1)與向量B(x2,y2)的夾角餘弦公式這里寫圖片描述
夾角餘弦取值范圍為[-1,1]。當兩個向量的方向重合時夾角餘弦取最大值1,當兩個向量的方向完全相反夾角餘弦取最小值-1,兩個方向正交時夾角餘弦取值為0.
Minkowski Distance(閔可夫斯基距離)
兩個n維變數間的閔可夫斯基距離定義為:這里寫圖片描述
當p=1時,就是曼哈頓距離,兩點間各邊距離之和
當p=2時,就是歐氏距離,兩點間直線距離
當p→∞時,就是切比雪夫距離,所有邊距離的最大值
閔氏距離的缺點(1)數據量綱不同,無法直接進行距離計算,需要先對數據進行歸一化(2)沒有考慮各個分量的分布(期望,方差等)。下圖展示了不同距離函數是怎麼逼近中心的在這里插入圖片描述
Mahalanobis Distance(馬氏距離)
馬氏距離計算公式為這里寫圖片描述
S為協方差矩陣, 若協方差矩陣是單位矩陣則變為歐式距離。馬氏距離的優點是量綱無關、排除變數之間的相關性的干擾。
Hamming distance(漢明距離)
兩個等長字元串s1與s2之間的漢明距離定義為將其中一個變為另外一個所需要作的最小替換次數。例如字元串「1111」與「1010」之間的漢明距離為2。信息編碼時為了增強容錯性,應使得編碼間的最小漢明距離盡可能大。
K-L散度(相對熵)
是衡量兩個分布(P、Q)之間的距離;越小越相似這里寫圖片描述
Hellinger距離
在概率論和統計理論中,Hellinger距離被用來度量兩個概率分布的相似度。它是f散度的一種(f散度——度量兩個概率分布相似度的指標)。
概率密度函數分別表示為 f 和 g,兩個概率密度函數的Hellinger距離的平方為
在這里插入圖片描述
具有混合類型屬性的對象可以將相同類型的屬性劃分為一組,對每組屬性分析繼續相似度度量,也可以分別對每個屬性進行相似度度量再加權。
其他類型的距離度量可以參考 18種和「距離(distance)」、「相似度(similarity)」相關的量的小結
⑶ 如何計算兩組數據的相似度
數據文件:x和group,8個個案。x的取值為4.5 5.6 7.9 5.2 4.6 5.4 6.4 6.2,group的取值為 1=A組,2=B組。
操作:菜單選擇
Analyze
Compare Means
Independent-Samples T Test
把x放入Test Variable(s)欄中,把group放入Grouping Variable,單擊Define Groups,分別輸入1,2,單擊Continue按鈕返回,單擊OK按鈕運行。
得t=0.178,P=0.865>0.05,2組數據間無差異。
⑷ 數組相似度計算
你是求一個相似度演算法:
如果一個公司真實排名為x1, 而你的打分排名是 x2,
怎麼搞一個合理的評分數呢?
對差值的絕對值進行打分
|x1-x2|=0 得14分(28的一半)
|x1-x2|>=14 得 0分
就是:|差值|>14 得0分,|差值|<=14,得 14-|差值|
滿分 14X28 分, 這樣對28個排名,就可以算出得分了
相似度=得分/(14x28) X 100 (%)
用C語言編個計算小程序很簡單。
⑸ 如何計算兩組數據的相似度
樓上比較方差(∑σ^2)做法不見得全面。所謂「數據相似」,應是「兩組數據在某個有序排列之下具有同等變化規律」的含義。比如,兩組數據是兩天的溫度變化曲線、試驗參數序列...
所以,按照以上假設,那麼需要採用「統計回歸處理」方法,看二者回歸後函數參量的相似性。其他數據處理手段還有:擬合(具體有很多種,應用於不同領域)、(等距序列)譜分析法...
建議搜索,關鍵詞:回歸處理
擬合演算法
傅立葉分析
⑹ 相似度計算
你是求一個相似度演算法:
如果一個公司真實排名為x1,
而你的打分排名是
x2,
怎麼搞一個合理的評分數呢?
對差值的絕對值進行打分
|x1-x2|=0
得14分(28的一半)
|x1-x2|>=14
得
0分
就是:|差值|>14
得0分,|差值|<=14,得
14-|差值|
滿分
14x28
分,
這樣對28個排名,就可以算出得分了
相似度=得分/(14x28)
x
100
(%)
用c語言編個計算小程序很簡單。
⑺ 請問如何用公式得到一組數據的相似度
你可以試下 EXCLE 公式 VLOOKUP 橫向匹配 , 希望能對你有幫助!
⑻ 全面歸納距離和相似度計算方法
距離(distance,差異程度)、相似度(similarity,相似程度)方法可以看作是以某種的距離函數計算元素間的距離,這些方法作為機器學習的基礎概念,廣泛應用於如:Kmeans聚類、協同過濾推薦演算法、相似度演算法、MSE損失函數等等。本文對常用的距離計算方法進行歸納以及解析,分為以下幾類展開:
對於點x=(x1,x2...xn) 與點y=(y1,y2...yn) , 閔氏距離可以用下式表示:
閔氏距離是對多個距離度量公式的概括性的表述,p=1退化為曼哈頓距離;p=2退化為歐氏距離;切比雪夫距離是閔氏距離取極限的形式。
曼哈頓距離 公式:
歐幾里得距離公式:
如下圖藍線的距離即是曼哈頓距離(想像你在曼哈頓要從一個十字路口開車到另外一個十字路口實際駕駛距離就是這個「曼哈頓距離」,此即曼哈頓距離名稱的來源,也稱為城市街區距離),紅線為歐幾里得距離:
切比雪夫距離起源於國際象棋中國王的走法,國際象棋中國王每次只能往周圍的8格中走一步,那麼如果要從棋盤中A格(x1,y1)走到B格(x2,y2)最少需要走幾步?你會發現最少步數總是max(|x2-x1|,|y2-y1|)步。有一種類似的一種距離度量方法叫切比雪夫距離。
切比雪夫距離就是當p趨向於無窮大時的閔氏距離:
距離函數並不一定是距離度量,當距離函數要作為距離度量,需要滿足:
由此可見,閔氏距離可以作為距離度量,而大部分的相似度並不能作為距離度量。
閔氏距離也是Lp范數(如p==2為常用L2范數正則化)的一般化定義。
下圖給出了一個Lp球( ||X||p = 1 )的形狀隨著P的減少的可視化圖:
距離度量隨著空間的維度d的不斷增加,計算量復雜也逐增,另外在高維空間下,在維度越高的情況下,任意樣本之間的距離越趨於相等(樣本間最大與最小歐氏距離之間的相對差距就趨近於0),也就是維度災難的問題,如下式結論:
對於維度災難的問題,常用的有PCA方法進行降維計算。
假設各樣本有年齡,工資兩個變數,計算歐氏距離(p=2)的時候,(年齡1-年齡2)² 的值要遠小於(工資1-工資2)² ,這意味著在不使用特徵縮放的情況下,距離會被工資變數(大的數值)主導, 特別當p越大,單一維度的差值對整體的影響就越大。因此,我們需要使用特徵縮放來將全部的數值統一到一個量級上來解決此問題。基本的解決方法可以對數據進行「標准化」和「歸一化」。
另外可以使用馬氏距離(協方差距離),與歐式距離不同其考慮到各種特性之間的聯系是(量綱)尺度無關 (Scale Invariant) 的,可以排除變數之間的相關性的干擾,缺點是誇大了變化微小的變數的作用。馬氏距離定義為:
馬氏距離原理是使用矩陣對兩兩向量進行投影後,再通過常規的歐幾里得距離度量兩對象間的距離。當協方差矩陣為單位矩陣,馬氏距離就簡化為歐氏距離;如果協方差矩陣為對角陣,其也可稱為正規化的歐氏距離。
根據向量x,y的點積公式:
我們可以利用向量間夾角的cos值作為向量相似度[1]:
餘弦相似度的取值范圍為:-1~1,1 表示兩者完全正相關,-1 表示兩者完全負相關,0 表示兩者之間獨立。餘弦相似度與向量的長度無關,只與向量的方向有關,但餘弦相似度會受到向量平移的影響(上式如果將 x 平移到 x+1, 餘弦值就會改變)。
另外,歸一化後計算歐氏距離,等價於餘弦值:兩個向量x,y, 夾角為A,歐氏距離D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA
協方差是衡量多維數據集中,變數之間相關性的統計量。如下公式X,Y的協方差即是,X減去其均值 乘以 Y減去其均值,所得每一組數值的期望(平均值)。
如果兩個變數之間的協方差為正值,則這兩個變數之間存在正相關,若為負值,則為負相關。
皮爾遜相關系數數值范圍也是[-1,1]。皮爾遜相關系數可看作是在餘弦相似度或協方差基礎上做了優化(變數的協方差除以標准差)。它消除每個分量標准不同(分數膨脹)的影響,具有平移不變性和尺度不變性。
卡方檢驗X2,主要是比較兩個分類變數的關聯性、獨立性分析。如下公式,A代表實際頻數;E代表期望頻數:
Levenshtein 距離是 編輯距離 (Editor Distance) 的一種,指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。允許的編輯操作包括將一個字元替換成另一個字元,插入一個字元,刪除一個字元。
像hallo與hello兩個字元串編輯距離就是1,我們通過替換」a「 為 」e「,就可以完成轉換。
漢明距離為兩個等長字元串對應位置的不同字元的個數,也就是將一個字元串變換成另外一個字元串所需要替換的字元個數。例如:1011101 與 1001001 之間的漢明距離是 2,「toned」 與 「roses」 之間的漢明距離是 3
另外的,對於字元串距離來說,不同字元所佔的份量是不一樣的。比如」我樂了「 與【「我怒了」,」我樂了啊」 】的Levenshtein 距離都是1,但其實兩者差異還是很大的,因為像「啊」這種語氣詞的重要性明顯不如「樂」,考慮字元(特徵)權重的相似度方法有:TF-IDF、BM25、WMD演算法。
Jaccard 取值范圍為0~1,0 表示兩個集合沒有重合,1 表示兩個集合完全重合。
但Dice不滿足距離函數的三角不等式,不是一個合適的距離度量。
基礎地介紹下信息熵,用來衡量一個隨機變數的不確定性程度。對於一個隨機變數 X,其概率分布為:
互信息用於衡量兩個變數之間的關聯程度,衡量了知道這兩個變數其中一個,對另一個不確定度減少的程度。公式為:
如下圖,條件熵表示已知隨機變數X的情況下,隨機變數Y的信息熵,因此互信息實際上也代表了已知隨機變數X的情況下,隨機變數Y的(信息熵)不確定性的減少程度。
JS 散度解決了 KL 散度不對稱的問題,定義為:
群體穩定性指標(Population Stability Index,PSI), 可以看做是解決KL散度非對稱性的一個對稱性度量指標,用於度量分布之間的差異(常用於風控領域的評估模型預測的穩定性)。
psi與JS散度的形式是非常類似的,如下公式:
PSI的含義等同P與Q,Q與P之間的KL散度之和。
DTW 距離用於衡量兩個序列之間的相似性,適用於不同長度、不同節奏的時間序列。DTW採用了動態規劃DP(dynamic programming)的方法來進行時間規整的計算,通過自動warping扭曲 時間序列(即在時間軸上進行局部的縮放),使得兩個序列的形態盡可能的一致,得到最大可能的相似度。(具體可參考[5])
圖結構間的相似度計算,有圖同構、最大共同子圖、圖編輯距離、Graph Kernel 、圖嵌入計算距離等方法(具體可參考[4][6])。
度量學習的對象通常是樣本特徵向量的距離,度量學習的關鍵在於如何有效的度量樣本間的距離,目的是通過訓練和學習,減小或限制同類樣本之間的距離,同時增大不同類別樣本之間的距離,簡單歸類如下[2]:
最後,附上常用的距離和相似度度量方法[3]:
⑼ 常見的相似度度量演算法
本文目錄:
定義在兩個向量(兩個點)上:點x和點y的歐式距離為:
常利用歐幾里得距離描述相似度時,需要取倒數歸一化,sim = 1.0/(1.0+distance),利用numpy實現如下:
python實現歐式距離
從名字就可以猜出這種距離的計算方法了。想像你在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是這個「曼哈頓距離」。而這也是曼哈頓距離名稱的來源, 曼哈頓距離也稱為城市街區距離(City Block distance)。
(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離
(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的曼哈頓距離
python實現曼哈頓距離:
國際象棋玩過么?國王走一步能夠移動到相鄰的8個方格中的任意一個。那麼國王從格子(x1,y1)走到格子(x2,y2)最少需要多少步?自己走走試試。你會發現最少步數總是max( | x2-x1 | , | y2-y1 | ) 步 。有一種類似的一種距離度量方法叫切比雪夫距離。
(1)二維平面兩點a(x1,y1)與b(x2,y2)間的切比雪夫距離
(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的切比雪夫距離
python實現切比雪夫距離:
閔氏距離不是一種距離,而是一組距離的定義。
兩個n維變數a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的閔可夫斯基距離定義為:
其中p是一個變參數。
當p=1時,就是曼哈頓距離
當p=2時,就是歐氏距離
當p→∞時,就是切比雪夫距離
根據變參數的不同,閔氏距離可以表示一類的距離。
閔氏距離,包括曼哈頓距離、歐氏距離和切比雪夫距離都存在明顯的缺點。
舉個例子:二維樣本(身高,體重),其中身高范圍是150 190,體重范圍是50 60,有三個樣本:a(180,50),b(190,50),c(180,60)。那麼a與b之間的閔氏距離(無論是曼哈頓距離、歐氏距離或切比雪夫距離)等於a與c之間的閔氏距離,但是身高的10cm真的等價於體重的10kg么?因此用閔氏距離來衡量這些樣本間的相似度很有問題。
簡單說來,閔氏距離的缺點主要有兩個:
(1)將各個分量的量綱(scale),也就是「單位」當作相同的看待了。
(2)沒有考慮各個分量的分布(期望,方差等)可能是不同的。
標准歐氏距離的定義
標准化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進方案。標准歐氏距離的思路:既然數據各維分量的分布不一樣,好吧!那我先將各個分量都「標准化」到均值、方差相等吧。均值和方差標准化到多少呢?這里先復習點統計學知識吧,假設樣本集X的均值(mean)為m,標准差(standard deviation)為s,那麼X的「標准化變數」表示為:
而且標准化變數的數學期望為0,方差為1。因此樣本集的標准化過程(standardization)用公式描述就是:
標准化後的值 = ( 標准化前的值 - 分量的均值 ) /分量的標准差
經過簡單的推導就可以得到兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的標准化歐氏距離的公式:
如果將方差的倒數看成是一個權重,這個公式可以看成是一種加權歐氏距離(Weighted Euclidean distance)。
有M個樣本向量X1~Xm,協方差矩陣記為S,均值記為向量μ,則其中樣本向量X到u的馬氏距離表示為:
而其中向量Xi與Xj之間的馬氏距離定義為:
若協方差矩陣是單位矩陣(各個樣本向量之間獨立同分布),則公式就成了:
也就是歐氏距離了。
若協方差矩陣是對角矩陣,公式變成了標准化歐氏距離。
馬氏距離的優缺點:量綱無關,排除變數之間的相關性的干擾。
幾何中夾角餘弦可用來衡量兩個向量方向的差異,機器學習中借用這一概念來衡量樣本向量之間的差異。
在二維空間中向量A(x1,y1)與向量B(x2,y2)的夾角餘弦公式:
兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角餘弦
類似的,對於兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用類似於夾角餘弦的概念來衡量它們間的相似程度。
即:
夾角餘弦取值范圍為[-1,1]。夾角餘弦越大表示兩個向量的夾角越小,夾角餘弦越小表示兩向量的夾角越大。當兩個向量的方向重合時夾角餘弦取最大值1,當兩個向量的方向完全相反夾角餘弦取最小值-1。
python實現餘弦相似度:
兩個等長字元串s1與s2之間的漢明距離定義為將其中一個變為另外一個所需要作的最小替換次數。例如字元串「1111」與「1001」之間的漢明距離為2。
應用:信息編碼(為了增強容錯性,應使得編碼間的最小漢明距離盡可能大)。
python實現漢明距離:
兩個集合A和B的交集元素在A,B的並集中所佔的比例,稱為兩個集合的傑卡德相似系數,用符號J(A,B)表示。
傑卡德相似系數是衡量兩個集合的相似度一種指標。
與傑卡德相似系數相反的概念是傑卡德距離(Jaccard distance)。傑卡德距離可用如下公式表示:
傑卡德距離用兩個集合中不同元素占所有元素的比例來衡量兩個集合的區分度。
可將傑卡德相似系數用在衡量樣本的相似度上。
樣本A與樣本B是兩個n維向量,而且所有維度的取值都是0或1。例如:A(0111)和B(1011)。我們將樣本看成是一個集合,1表示集合包含該元素,0表示集合不包含該元素。
p :樣本A與B都是1的維度的個數
q :樣本A是1,樣本B是0的維度的個數
r :樣本A是0,樣本B是1的維度的個數
s :樣本A與B都是0的維度的個數
這里p+q+r可理解為A與B的並集的元素個數,而p是A與B的交集的元素個數。
而樣本A與B的傑卡德距離表示為:
皮爾遜相關系數即為相關系數 ( Correlation coefficient )與相關距離(Correlation distance)
相關系數的定義
相關系數是衡量隨機變數X與Y相關程度的一種方法,相關系數的取值范圍是[-1,1]。相關系數的絕對值越大,則表明X與Y相關度越高。當X與Y線性相關時,相關系數取值為1(正線性相關)或-1(負線性相關)。
1. 機器學習中的相似性度量
2. 推薦演算法入門(1)相似度計算方法大全
3. Python Numpy計算各類距離
4. 皮爾遜積矩相關系數