在分類聚類算法,推薦系統中,常要用到兩個輸入變量(一般是特徵向量的形式)距離的計算,即類似性度量.不一樣類似性度量對於算法的結果,有些時候,差別很大.所以,有必要根據輸入數據的特徵,選擇一種合適的類似性度量方法.php
令X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T爲兩個輸入向量,算法
1.歐幾里得距離(Euclidean distance)-EuclideanDistanceMeasure.ide
至關於高維空間內向量說表示的點到點之間的距離。
因爲特徵向量的各份量的量綱不一致,一般須要先對各份量進行標準化,使其與單位無關,好比對身高(cm)和體重(kg)兩個單位不一樣的指標使用歐式距離可能使結果失效。
優勢:簡單,應用普遍(若是也算一個優勢的話)
缺點:沒有考慮份量之間的相關性,體現單一特徵的多個份量會干擾結果。性能
2.馬氏距離(Mahalanobis distance)-MahalanobisDistanceMeasureidea
C=E[(X-X平均)(Y-Y平均)]爲該類輸入向量X的協方差矩陣.(T爲轉置符號,E取平均時是樣本所以爲n-1)3d
適用場合:
1)度量兩個服從同一分佈而且其協方差矩陣爲C的隨機變量X與Y的差別程度
2)度量X與某一類的均值向量的差別程度,判別樣本的歸屬。此時,Y爲類均值向量.
優勢:
1)獨立於份量量綱
2)排除了樣本之間的相關性影響。
缺點:不一樣的特徵不能差異對待,可能誇大弱特徵。blog
3.閔可夫斯基距離(Minkowsk distance)-MinkowskiDistanceMeasure(默認p=3)ci
可當作是歐氏距離的指數推廣,尚未見到過很好的應用實例,但一般,推廣都是一種進步,特別的,字符串
當p=1,也成作曼哈頓距離,也稱絕對距離,曼哈頓距離來源於城市區塊距離,是將多個維度上的距離進行求和後的結果。ManhattanDistanceMeasure.get
當q=∞時,稱爲切比雪夫距離,ChebyshevDistanceMeasure
切比雪夫距離起源於國際象棋中國王的走法,咱們知道國際象棋國王每次只能往周圍的8格中走一步,那麼若是要從棋盤中A格(x1, y1)走到B格(x2, y2)最少須要走幾步?擴展到多維空間,其實切比雪夫距離就是當p趨向於無窮大時的明氏距離:
4.漢明距離(Hamming distance)-Mahout無
在信息論中,兩個等長字符串之間的漢明距離是兩個字符串對應位置的不一樣字符的個數。換句話說,它就是將一個字符串變換成另一個字符串所須要替換的字符個數。
例如:
1011101 與 1001001 之間的漢明距離是 2。
2143896 與 2233796 之間的漢明距離是 3。
"toned" 與 "roses" 之間的漢明距離是 3。
5.Tanimoto係數(又稱廣義Jaccard係數)-TanimotoDistanceMeasure.
一般應用於X爲布爾向量,即各份量只取0或1的時候。此時,表示的是X,Y的公共特徵的佔X,Y所佔有的特徵的比例。
5.Jaccard係數
Jaccard係數主要用於計算符號度量或布爾值度量的個體間的類似度,由於個體的特徵屬性都是由符號度量或者布爾值標識,所以沒法衡量差別具體值的大小,只能得到「是否相同」這個結果,因此Jaccard係數只關心個體間共同具備的特徵是否一致這個問題。若是比較X與Y的Jaccard類似係數,只比較xn和yn中相同的個數,公式以下:
7.皮爾遜相關係數(Pearson correlation coefficient)-PearsonCorrelationSimilarity
即相關分析中的相關係數r,分別對X和Y基於自身整體標準化後計算空間向量的餘弦夾角。公式以下:
8.餘弦類似度(cosine similarity)-CosineDistanceMeasure
就是兩個向量之間的夾角的餘弦值。
餘弦類似度用向量空間中兩個向量夾角的餘弦值做爲衡量兩個個體間差別的大小。相比距離度量,餘弦類似度更加註重兩個向量在方向上的差別,而非距離或長度上。
優勢:不受座標軸旋轉,放大縮小的影響。
9.調整餘弦類似度-Adjusted Cosine Similarity
雖然餘弦類似度對個體間存在的偏見能夠進行必定的修正,可是由於只能分辨個體在維之間的差別,無法衡量每一個維數值的差別,會致使這樣一個狀況:好比用戶對內容評分,5分制,X和Y兩個用戶對兩個內容的評分分別爲(1,2)和(4,5),使用餘弦類似度得出的結果是0.98,二者極爲類似,但從評分上看X彷佛不喜歡這2個內容,而Y比較喜歡,餘弦類似度對數值的不敏感致使告終果的偏差,須要修正這種不合理性,就出現了調整餘弦類似度,即全部維度上的數值都減去一個均值,好比X和Y的評分均值都是3,那麼調整後爲(-2,-1)和(1,2),再用餘弦類似度計算,獲得-0.8,類似度爲負值而且差別不小,但顯然更加符合現實。
調整餘弦類似度和餘弦類似度,皮爾遜相關係數在推薦系統中應用較多。在基於項目的推薦中,GroupLens有篇論文結果代表調整餘弦類似度性能要優於後二者。
10.基於權重的距離計算方法:
WeightedDistanceMeasure、WeightedEuclideanDistanceMeasure 、 WeightedManhattanDistanceMeasure
歐氏距離與餘弦類似度
藉助三維座標系來看下歐氏距離和餘弦類似度的區別:
根據歐氏距離和餘弦類似度各自的計算方式和衡量特徵,分別適用於不一樣的數據分析模型:歐氏距離可以體現個體數值特徵的絕對差別,因此更多的用於須要從維度的數值大小中體現差別的分析,如使用用戶行爲指標分析用戶價值的類似度或差別;而餘弦類似度更多的是從方向上區分差別,而對絕對的數值不敏感,更多的用於使用用戶對內容評分來區分用戶興趣的類似度和差別,同時修正了用戶間可能存在的度量標準不統一的問題(由於餘弦類似度對絕對數值不敏感)。