02聚類演算法-相似度距離公式、維度災難
聚類就是對__大量未知標註__的資料集,按照資料__內部存在的資料特徵__將資料集劃分為__多個不同的類別__,使__類別內的資料比較相似__,__類別之間的資料相似度比較小__。
聚類演算法的重點是計算樣本項之間的__相似度__,有時候也稱為樣本間的距離。
PS: 補充一個維度災難的概念
資料維度高,資料量大,這種時候樣本在空間中比較密集,這種情況不太好劃分。只有當資料相對比較鬆散的時候,才能做到有效的聚類分析。
維度高,資料量大的時候人工看就要看半天。
用幾何來理解,1維空間可以解釋100%的資料。2維空間是一個正方形,能解釋的資料可能只是正方形中的一個圓,其他部分解釋不到。3維空間是一個正方體,能解釋的資料是一個球體。在2維中不能解釋的資料是正方形靠近四個角附近的區域,在3維中不能解釋的是靠近正方體8個頂點附近的體積。隨著維度的增大,不能解釋的量也越來越大(聚集在超矩形體的頂點附近),當維度越接近無窮維的時候,分類的結果自然就差了。
一、相似度距離公式
1、閔可夫斯基距離(Minkowski)
當p為1的時候是曼哈頓距離(Manhattan)
當p為2的時候是歐式距離(Euclidean)
當p為無窮大的時候是切比雪夫距離(Chebyshev)
2、標準化歐式距離(Standardized Euclidean Distance)
左邊公式是對樣本所有的特徵值做標準化,得到新的特徵值。
中間公式裡的__s標準__差怎麼來的?
特徵x1,對應了很多樣本。所有樣本的1號特徵的均值即標準差,記為s1;
若每組樣本有n個特徵,那麼就對應n個標準差 s1,s2 , … , sn;
3、夾角餘弦相似度(Cosine):
挖掘資料內在關聯的時候可能會用到。
4、KL距離(相對熵)
用來度量兩個分佈的相似程度。P(X)和Q(X)是兩個分佈。求出來的是P相對於Q的相似度。
物理意義:在一個事件空間中,P(X)的事件空間,若用Q(X)這個概率分佈進行編碼的時候(Q來描述P),平均每一個基本事件的編碼長度增加了多少位元。回顧之前資訊熵的概念:《01 決策樹 – 數學理論概述 – 熵》
或者也可以這樣理解:已知了Q的分佈,用Q近似得去估計P,使得P的不確定度減少了多少。即,用一個分佈來保證另一個分佈的額外不確定度。
當P(X) = Q(X)時,表示兩個分佈完全相等。那麼相對熵=0;
當P(X)和Q(X)的相似度差異很大,那麼意味著相對熵的距離就越大。
Jaccard、Pearson這兩個相似度的度量公式偏重於統計學。 在機器學習中用的比較少,但是可以直接計算得到結果。
5、傑卡德相似係數(Jaccard)
如果J(A,B) 越趨近於1,表示A和B集合完全重合。如果J(A,B) 趨近於0,表示A和B集合幾乎沒有相交。
即J(A,B) 越接近於1,越相似。距離和相似程度反比,距離越小,相似程度越大。所以用 1-J(A,B) 來表示度量函式時,值越大,相似度越大。
6、Pearson相關係數
回顧: 標準差、方差、協方差的公式。
E[(X-E(X))(Y-E(Y))]稱為隨機變數X和Y的協方差
即 __COV(X,Y)=E(XY)-E(X)E(Y)__;
協方差、方差都是描述的是資料的波動程度。
如一組資料:A:[0.00038、0.00001、0.00031];
第1個資料的大小是第二個資料的38倍,但是從絕對數值大小上來看,兩者只相差了0.00037,方差看上去不大。
現在有另一組資料:B:[100000,1000020,1000010];
是A資料的方差大還是B資料的方差大?
絕對數值上是B的方差大,但是從波動範圍來看,A資料的波動更大。所以用方差或者協方差來描述資料的波動情況不是很好的選擇。
所以在計算相對資料波動大小的時候,我們要將資料標準化。
即:__兩個資料的協方差/兩個資料的標準差的乘積__ = Cov(X,Y) / √D(X) √D(Y)
衡量兩個特徵相似度的指標,我們把指標縮放到了[-1,1]之間。
具體計算公式如下:
一般情況下:
若:|PXY|<0.3 則:X和Y不相關;
若:0.3<|PXY|<0.7 則: X和Y弱相關
若:0.7<|PXY|<1 則:X和Y強相關;
若:PXY>0 則:正相關;
若:PXY<0 則:負相關;
相關文章
- 難度2:素數距離問題
- 機器學習中的維度災難機器學習
- 機器學習基礎:相似度和距離度量究竟是什麼機器學習
- 經緯度距離換算
- 根據經緯度計算兩點之間的距離的公式公式
- 怎樣衡量兩個字串的相似度(編輯距離動態規劃求解)字串動態規劃
- Spark/Scala實現推薦系統中的相似度演算法(歐幾里得距離、皮爾遜相關係數、餘弦相似度:附實現程式碼)Spark演算法
- 聚類演算法——DBSCAN演算法原理及公式聚類演算法公式
- 為什麼說K-Means是基於距離的聚類演算法?聚類演算法
- 影象相似度中的Hash演算法演算法
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值 2022-02-14 0Java
- 文章相似度檢測,相似度檢測工具,原創度檢測工具
- elasticsearch演算法之詞項相似度演算法(二)Elasticsearch演算法
- elasticsearch演算法之詞項相似度演算法(一)Elasticsearch演算法
- JAVA計算兩經緯度間的距離Java
- 移動端影像相似度演算法選型演算法
- 最小距離分類器,互動式選取影像樣本分類資料,進行最小距離分類(實現歐式距離,馬氏距離,計程距離)
- 編輯距離及編輯距離演算法演算法
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- 文章相似度檢測工具哪個好?怎麼讓文章相似度變低?
- 透過經緯度計算距離獲取附近商家
- elasticsearch演算法之推薦系統的相似度演算法(一)Elasticsearch演算法
- 編輯距離演算法演算法
- 1123:影像相似度(C C++)C++
- 中文標題相似度檢測
- 通過sql 計算兩經緯度之間的距離SQL
- NLP 中文形近字相似度演算法開源實現演算法
- 距離-有這麼多類
- 聚類演算法聚類演算法
- 字串相似度演算法完全指南:編輯、令牌與序列三類演算法的全面解析與深入分析字串演算法
- 使用MySQL的geometry型別處理經緯度距離問題MySql型別
- Elasticsearch 7.2 在 Laravel 中實踐 --經緯度及距離查詢ElasticsearchLaravel
- 聚類(part3)--高階聚類演算法聚類演算法
- 聚類之K均值聚類和EM演算法聚類演算法
- 降水強度計算公式公式
- 演算法金 | 歐氏距離演算法、餘弦相似度、漢明、曼哈頓、切比雪夫、閔可夫斯基、雅卡爾指數、半正矢、Sørensen-Dice演算法
- L2-005 集合相似度【集合】
- 大規模文字相似度計算