導航:首頁 > 源碼編譯 > 尺度計演算法大全

尺度計演算法大全

發布時間:2024-04-27 02:05:47

1. 全面歸納距離和相似度計算方法

距離(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]:

閱讀全文

與尺度計演算法大全相關的資料

熱點內容
超短macd源碼 瀏覽:163
群暉怎麼設置用戶訪問指定文件夾 瀏覽:555
安卓怎麼測觸摸屏 瀏覽:593
javastring原理 瀏覽:315
如何關閉手機dhcp伺服器 瀏覽:981
php免費ide 瀏覽:200
程序員詞句 瀏覽:976
伺服器如何禁止某個ip段 瀏覽:329
便簽手機文件夾 瀏覽:768
gameloft的java游戲 瀏覽:110
神佑釋放怎麼轉伺服器 瀏覽:735
洋蔥app軟體怎麼登錄 瀏覽:788
兩相電空氣壓縮機 瀏覽:396
基於51單片機的智能語音密碼鎖設計 瀏覽:845
mac如何用ssh登錄伺服器 瀏覽:446
appstore怎麼設置 瀏覽:954
在哪個app買韓國女裝 瀏覽:111
php寫入文件換行 瀏覽:749
dsp實現fft演算法 瀏覽:485
棋牌源碼轉讓交易手續費 瀏覽:293