日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

***K近邻Survey-Distance总结

發布時間:2023/12/31 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ***K近邻Survey-Distance总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一):漫談knn:原文鏈接:http://www.kankanews.com/ICkengine/archives/103938.shtml?? 看引擎...有點對不起作者,不過沒有辦法,聯系不到啊....

????? 什么是KNN算法呢?顧名思義,就是K-Nearest neighbors Algorithms的簡稱。我們可能都知道最近鄰算法,它就是KNN算法在k=1時的特例,也就是尋找最近的鄰居。

關于分類問題:KNN為空間類別判別提供了最終的原型...

? ? ? 首先我要說的是為什么我們要尋找鄰居啊,古話說的好,人以類聚,物以群分,要想知道一個人怎么樣,去看看他的朋友就知道了,其實這個過程就蘊含了KNN的算法核心思想,我們如果要判斷一個樣本點的類別,去看看和它相似的樣本點的類別就行了,If it walks like a duck, quacks like a duck, then it is probably a duck,如圖1所示:

? 好了,在深入了解KNN之前有必要了解一下分類算法的大致情況以及其完整定義。圖2所示的是一般的分類模型建立的步驟,分類一般分為兩種:

? 積極學習法 (決策樹歸納):先根據訓練集構造出分類模型,根據分類模型對測試集分類。

? 消極學習 (基于實例的學習法):推遲建模, 當給定訓練元組時,簡單地存儲訓練數據 (或稍加處理),一直等到給定一個測試元組。

?? 消極學習法在提供訓練元組時只做少量工作,而在分類或預測時做更多的工作。KNN就是一種簡單的消極學習分類方法,它開始并不建立模型,而只是對于給定的訓練實例點和輸入實例點,基于給定的鄰居度量方式以及結合經驗選取合適的k值,計算并且查找出給定輸入實例點的k個最近鄰訓練實例點,然后基于某種給定的策略,利用這k個訓練實例點的類來預測輸入實例點的類別。算法的過程如圖3所示:

?? 了解了KNN的主體思想以后,接下來我們就來逐一的探討和回答我在第一章所提出的四個問題,第一個就是如何度量鄰居之間的相識度,也就是如何選取鄰居的問題,我們知道相似性的度量方式在很大程度上決定了選取鄰居的準確性,也決定了分類的效果,因為判定一個樣本點的類別是要利用到它的鄰居的,如果鄰居都沒選好,準確性就無從談起。因此我們需要用一個量來定量的描述鄰居之間的距離,也可以形象的表述為鄰居之間的相似度,具體的距離度量方式有很多,不同的場合使用哪種需要根據不同問題具體探討,具體的我就不羅嗦,在這篇博文http://www.cnblogs.com/v-July-v/archive/2012/11/20/3125419.html中有詳細的闡述。以下給出了使用三種距離(歐式距離,曼哈頓距離,還有切比雪夫距離)的對glass數據集測試的例子,測試結果如圖4所示:紅線指的是實驗使用的距離度量方式,黃線指的是實驗的結果,可以看出使用曼哈頓距離分類效果明顯好于其他兩種。

?? 在給定了度量方式以后,我們自然而然會遇到一個問題就是到底要找多少個鄰居才合適了,如圖5所示 ,X是待分類樣本,‘,’和‘-’是樣本類別屬性,如果K選大了的話,可能求出來的k最近鄰集合可能包含了太多隸屬于其它類別的樣本點,最極端的就是k取訓練集的大小,此時無論輸入實例是什么,都只是簡單的預測它屬于在訓練實例中最多的累,模型過于簡單,忽略了訓練實例中大量有用信息。如果K選小了的話,結果對噪音樣本點很敏感。那么到底如何選取K值,其實我在前面也說了,其實完全靠經驗或者交叉驗證(一部分樣本做訓練

集,一部分做測試集)的方法,就是是K值初始取一個比較小的數值,之后不段來調整K值的大小來時的分類最優,得到的K值就是我們要的,但是這個K值也只是對這個樣本集是最優的。一般采用k為奇數,跟投票表決一樣,避免因兩種票數相等而難以決策。下面我們可以通過交叉驗證的方式求出最合適的K值,對iris數據(UCI Machine Learning Repository下載)用kNN算法進行分類,通過交叉驗證(10次)的方式,對k取不同值時進行了實驗,實驗結果如圖5所示,其中紅線指的是實驗選用的K值,黃線指的是實驗的結果,我們發現在我所選取的k值中,當k=17時效果最好,在k=1時,即用最近鄰來進行分類的效果也不錯,實驗結果呈現一個拋物線,與我們之前分析的結果相吻合。

??? 好了,到這一步工作已經做了一半了,接下來就是如何去尋找這k個鄰居了,因為對每一個待測樣本點來說,我們都要對整個樣本集逐一的計算其與待測點的距離,計算并存儲好以后,接下來就是查找K近鄰,這是最簡單,也是最笨的方法,計算量太大了。因此KNN的一大缺點需要存儲全部訓練樣本,以及繁重的距離計算量,有沒有簡單的一點的方法可以避免這種重復的運算啊,改進的方案有兩個,一個是對樣本集進行組織與整理,分群分層,盡可能將計算壓縮到在接近測試樣本鄰域的小范圍內,避免盲目地與訓練樣本集中每個樣本進行距離計算。另一個就是在原有樣本集中挑選出對分類計算有效的樣說本,使樣本總數合理地減少,以同時達到既減少計算量,又減少存儲量的雙重效果。KD樹方法采用的就是第一個思路,關于KD樹及其擴展可以參看博文http://www.cnblogs.com/v-July-v/archive/2012/11/20/3125419.html,它對其進行了詳細的闡述,我就不啰嗦了。我想補充的是壓縮近鄰算法,它采用的思路是第二種方案,利用現有樣本集,逐漸生成一個新的樣本集,使該樣本集在保留最少量樣本的條件下,仍能對原有樣本的全部用最近鄰法正確分類,那么該樣本集也就能對待識別樣本進行分類,并保持正常識別率。它的步驟如下:

?? 首先定義兩個存儲器,一個用來存放即將生成的樣本集,稱為Store;另一存儲器則存放原樣本集,稱為Grabbag。其算法是:

1.?? 初始化。Store是空集,原樣本集存入Grabbag;從Grabbag中任意選擇一樣本放入Store中作為新樣本集的第一個樣本。

2.?? 樣本集生成。在Grabbag中取出第i個樣本用Store中的當前樣本集按最近鄰法分類。若分類錯誤,則將該樣本從Grabbag轉入Store中,若分類正確,則將該樣本放回Grabbag中。

3.?? 結束過程。若Grabbag中所有樣本在執行第二步時沒有發生轉入Store的現象,或Grabbag已成空集,則算法終止,否則轉入第二步。?

?? 當然解決的方案很多,還有比如剪輯近鄰法,快速搜索近鄰法等等很多,就不一一介紹了。下面測試了一下不同最近鄰搜索算法(線性掃描,kd樹,Ball樹,Cover樹)所花費的時間,如表1所示:

??? 到這一步基本上是萬事俱備,只欠東風啦。K近鄰(通俗的來說就是某人的k個最要好的朋友都找出來啦)都求出來啦,接下來就是要朋友們利用手中的投票器為其投票啦。一般的做法就是一人一票制,少數服從多數的選舉原則,但是當和我測試對象離的近的數量少,而離得遠的數量多時,這種方法可能就要出錯啦,那咋辦呢,看過歌唱選秀節目的人應該清楚,評審分為兩種,一種是大眾評審一人一票,一種是專家評審,一人可能有很多票,我們也可以借鑒這個思想,為每個鄰居賦予一定的投票權重,通過它們與測試對象距離的遠近來相應的分配投票的權重,最簡單的就是取兩者距離之間的倒數,距離越小,越相似,權重越大,將權重累加,最后選擇累加值最高類別屬性作為該待測樣本點的類別。我用不同的權重方式對UCI中的glass數據集進行測試,圖7顯示的是直接不采用權重的實驗結果,圖8顯示的是權重為距離的倒數,圖9顯示的是權重為1減去歸一化后的距離,紅線指的是實驗使用的權重賦值方式,“0”指的是不采用權重,“0 -I”指的是取距離倒數,“0-F”指的是1減去歸一化后的距離,深紅線指的是實驗的結果,我們可以看出采用了權重的總體上來說比不使用權重要好。

??? 至此關于KNN算法的描述就到此結束了。可以看出算法的思想是十分簡單的,我們自然而然的就會想這個算法的準確率到底是多少,有沒有啥科學的證明,其實最初的近鄰法是由Cover和Hart于1968年提出的,隨后得到理論上深入的分析與研究,是非參數法中最重要的方法之一,它在論文Nearest Neighbor Pattern Classification中給出了算法準確率的相信描述。最近鄰法的錯誤率是高于貝葉斯錯誤率的, ?其中代表的是貝葉斯誤差率,由于一般情況下P*很小,因此又可粗略表示成:,對于kNN來說,當樣本數量N→∞的條件下,k-近鄰法的錯誤率要低于最近鄰法,具體如圖10所示:


1.2 K值對訓練的影響:

一個選擇多少個鄰居,即K值定義為多大的問題。不要小看了這個K值選擇問題,因為它對K近鄰算法的結果會產生重大影響。如李航博士的一書「統計學習方法」上所說:

  • 如果選擇較小的K值,就相當于用較小的領域中的訓練實例進行預測,“學習”近似誤差會減小,只有與輸入實例較近或相似的訓練實例才會對預測結果起作用,與此同時帶來的問題是“學習”的估計誤差會增大,換句話說,K值的減小就意味著整體模型變得復雜,容易發生過擬合;
  • 如果選擇較大的K值,就相當于用較大領域中的訓練實例進行預測,其優點是可以減少學習的估計誤差,但缺點是學習的近似誤差會增大。這時候,與輸入實例較遠(不相似的)訓練實例也會對預測器作用,使預測發生錯誤,且K值的增大就意味著整體的模型變得簡單。
  • K=N,則完全不足取,因為此時無論輸入實例是什么,都只是簡單的預測它屬于在訓練實例中最多的類,模型過于簡單,忽略了訓練實例中大量有用信息。
  • 在實際應用中,K值一般取一個比較小的數值,例如采用交叉驗證法(簡單來說,就是一部分樣本做訓練集,一部分做測試集)來選擇最優的K值。

    (二):從K近鄰算法、距離度量談到KD樹、SIFT+BBF算法?

    原文鏈接:http://blog.csdn.net/v_july_v/article/details/8203674/

    1.1一個人堅持自己的興趣是比較難的,因為太多的人太容易為外界所動了,而尤其當你無法從中得到多少實際性的回報時,所幸,我能一直堅持下來。畢達哥拉斯學派有句名言:“萬物皆數”,最近讀完「微積分概念發展史」后也感受到了這一點。同時,從算法到數據挖掘、機器學習,再到數學,其中每一個領域任何一個細節都值得探索終生,或許,這就是“終生為學”的意思。

    本文各部分內容分布如下:

  • 第一部分講K近鄰算法,其中重點闡述了相關的距離度量表示法,
  • 第二部分著重講K近鄰算法的實現--KD樹,和KD樹的插入,刪除,最近鄰查找等操作,及KD樹的一系列相關改進(包括BBF,M樹等);
  • 第三部分講KD樹的應用:SIFT+kd_BBF搜索算法。
  • ? ? 同時,你將看到,K近鄰算法同本系列的前兩篇文章所講的決策樹分類貝葉斯分類,及支持向量機SVM一樣,也是用于解決分類問題的算法,

    ??

    ? ? 而本數據挖掘十大算法系列也會按照分類,聚類,關聯分析,預測回歸等問題依次展開闡述。

    1.2、近鄰的距離度量表示法

    ? ? 上文第一節,我們看到,K近鄰算法的核心在于找到實例點的鄰居,這個時候,問題就接踵而至了,如何找到鄰居,鄰居的判定標準是什么,用什么來度量。這一系列問題便是下面要講的距離度量表示法。但有的讀者可能就有疑問了,我是要找鄰居,找相似性,怎么又跟距離扯上關系了?

    ? ? 這是因為特征空間中兩個實例點的距離和反應出兩個實例點之間的相似性程度。K近鄰模型的特征空間一般是n維實數向量空間,使用的距離可以使歐式距離,也是可以是其它距離,既然扯到了距離,下面就來具體闡述下都有哪些距離度量的表示法,權當擴展。

    • 1. 歐氏距離,最常見的兩點之間或多點之間的距離表示法,又稱之為歐幾里得度量,它定義于歐幾里得空間中,如點 x = (x1,...,xn) 和 y = (y1,...,yn) 之間的距離為:

    (1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離

    (2)三維空間兩點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:

    (3)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

      也可以用表示成向量運算的形式:

    其上,二維平面上兩點歐式距離,代碼可以如下編寫:

    //unixfy:計算歐氏距離 double euclideanDistance(const vector<double>& v1, const vector<double>& v2) {assert(v1.size() == v2.size());double ret = 0.0;for (vector<double>::size_type i = 0; i != v1.size(); ++i){ret += (v1[i] - v2[i]) * (v1[i] - v2[i]);}return sqrt(ret);}
    • 2. 曼哈頓距離,我們可以定義曼哈頓距離的正式意義為L1-距離或城市區塊距離,也就是在歐幾里得空間的固定直角坐標系上兩點所形成的線段對軸產生的投影的距離總和。例如在平面上,坐標(x1,?y1)的點P1與坐標(x2,?y2)的點P2的曼哈頓距離為:,要注意的是,曼哈頓距離依賴座標系統的轉度,而非系統在座標軸上的平移或映射。?
    通俗來講,想象你在曼哈頓要從一個十字路口開車到另外一個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。而實際駕駛距離就是這個“曼哈頓距離”,此即曼哈頓距離名稱的來源, 同時,曼哈頓距離也稱為城市街區距離(City?Block?distance)。 (1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離? (2)兩個n維向量a(x11,x12,…,x1n)與?b(x21,x22,…,x2n)間的曼哈頓距離?

    ? ? ? ? ? ? ? ? ? ? ? ? ??

    • 3. 切比雪夫距離若二個向量或二個點p?、and?q,其座標分別為及,則兩者之間的切比雪夫距離定義如下:,
    這也等于以下Lp度量的極值:,因此切比雪夫距離也稱為L∞度量。
    以數學的觀點來看,切比雪夫距離是由一致范數(uniform?norm)(或稱為上確界范數)所衍生的度量,也是超凸度量(injective?metric?space)的一種。 在平面幾何中,若二點p及q的直角坐標系坐標為及,則切比雪夫距離為:。
    玩過國際象棋的朋友或許知道,國王走一步能夠移動到相鄰的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)間的切比雪夫距離?   這個公式的另一種等價形式是?
    • 4.?閔可夫斯基距離(Minkowski?Distance)閔氏距離不是一種距離,而是一組距離的定義。
    (1)?閔氏距離的定義??????? 兩個n維變量a(x11,x12,…,x1n)與?b(x21,x22,…,x2n)間的閔可夫斯基距離定義為:? 其中p是一個變參數。 當p=1時,就是曼哈頓距離 當p=2時,就是歐氏距離 當p→∞時,就是切比雪夫距離??????? 根據變參數的不同,閔氏距離可以表示一類的距離。?
    • 5.?標準化歐氏距離?(Standardized?Euclidean?distance?)
    • 標準化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進方案。標準歐氏距離的思路:既然數據各維分量的分布不一樣,那先將各個分量都“標準化”到均值、方差相等。至于均值和方差標準化到多少,先復習點統計學知識。
      假設樣本集X的數學期望或均值(mean)為m,標準差(standard?deviation,方差開根)為s,那么X的“標準化變量”X*表示為:(X-m)/s,而且標準化變量的數學期望為0,方差為1。
      即,樣本集的標準化過程(standardization)用公式描述就是:
      標準化后的值?=??(?標準化前的值??-?分量的均值?)?/分量的標準差  
      經過簡單的推導就可以得到兩個n維向量a(x11,x12,…,x1n)與?b(x21,x22,…,x2n)間的標準化歐氏距離的公式:  
      如果將方差的倒數看成是一個權重,這個公式可以看成是一種加權歐氏距離(Weighted?Euclidean?distance)。?
    • 6.?馬氏距離(Mahalanobis?Distance) (1)馬氏距離定義 ? ? ??
      有M個樣本向量X1~Xm,協方差矩陣記為S,均值記為向量μ,則其中樣本向量X到u的馬氏距離表示為:?
      協方差矩陣中每個元素是各個矢量元素之間的協方差Cov(X,Y),Cov(X,Y) =?E{ [X-E(X)] [Y-E(Y)]},其中E為數學期望) 而其中向量Xi與Xj之間的馬氏距離定義為:? ??
      若協方差矩陣是單位矩陣(各個樣本向量之間獨立同分布),則公式就成了:? ? ? ?
      也就是歐氏距離了?! ?br /> 若協方差矩陣是對角矩陣,公式變成了標準化歐氏距離。
      (2)馬氏距離的優缺點:量綱無關,排除變量之間的相關性的干擾。? 「微博上的seafood高清版點評道:原來馬氏距離是根據協方差矩陣演變,一直被老師誤導了,怪不得看Killian在05年NIPS發表的LMNN論文時候老是看到協方差矩陣和半正定,原來是這回事
    • 7、巴氏距離(Bhattacharyya?Distance
    • 在統計中,Bhattacharyya距離測量兩個離散或連續概率分布的相似性。它與衡量兩個統計樣品或種群之間的重疊量的Bhattacharyya系數密切相關。Bhattacharyya距離和Bhattacharyya系數以20世紀30年代曾在印度統計研究所工作的一個統計學家A. Bhattacharya命名。同時,Bhattacharyya系數可以被用來確定兩個樣本被認為相對接近的,它是用來測量中的類分類的可分離性。
    (1)巴氏距離的定義 對于離散概率分布?p和q在同一域?X,它被定義為: 其中: 是Bhattacharyya系數。 對于連續概率分布,Bhattacharyya系數被定義為: 在這兩種情況下,巴氏距離并沒有服從三角不等式.(值得一提的是,Hellinger距離不服從三角不等式)。? 對于多變量的高斯分布?, ,
    和是手段和協方差的分布。 需要注意的是,在這種情況下,第一項中的Bhattacharyya距離與馬氏距離有關聯。? (2)Bhattacharyya系數 Bhattacharyya系數是兩個統計樣本之間的重疊量的近似測量,可以被用于確定被考慮的兩個樣本的相對接近。 計算Bhattacharyya系數涉及集成的基本形式的兩個樣本的重疊的時間間隔的值的兩個樣本被分裂成一個選定的分區數,并且在每個分區中的每個樣品的成員的數量,在下面的公式中使用 考慮樣品a?和?b?,n是的分區數,并且,被一個?和?b?i的日分區中的樣本數量的成員。更多介紹請參看:http://en.wikipedia.org/wiki/Bhattacharyya_coefficient
    • 8. 漢明距離(Hamming distance), 兩個等長字符串s1與s2之間的漢明距離定義為將其中一個變為另外一個所需要作的最小替換次數。例如字符串“1111”與“1001”之間的漢明距離為2。應用:信息編碼(為了增強容錯性,應使得編碼間的最小漢明距離盡可能大)。
    或許,你還沒明白我再說什么,不急,看下上篇blog中第78題的第3小題整理的一道面試題目,便一目了然了。如下圖所示: <span style="font-size:12px;">//<strong>動態規劃: </strong></span>//f[i,j]表示s[0...i]與t[0...j]的最小編輯距離。 f[i,j] = min { f[i-1,j]+1, f[i,j-1]+1, f[i-1,j-1]+(s[i]==t[j]?0:1) } //分別表示:添加1個,刪除1個,替換1個(相同就不用替換)。 與此同時,面試官還可以繼續問下去:那么,請問,如何設計一個比較兩篇文章相似性的算法?(這個問題的討論可以看看這里:http://t.cn/zl82CAH,及這里關于simhash算法的介紹:http://www.cnblogs.com/linecong/archive/2010/08/28/simhash.html),接下來,便引出了下文關于夾角余弦的討論。 (上篇blog中第78題的第3小題給出了多種方法,讀者可以參看之。同時,程序員編程藝術系列第二十八章將詳細闡述這個問題)
    • 9.?夾角余弦(Cosine) 幾何中夾角余弦可用來衡量兩個向量方向的差異,機器學習中借用這一概念來衡量樣本向量之間的差異。

    (1)在二維空間中向量A(x1,y1)與向量B(x2,y2)的夾角余弦公式:

    (2)?兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角余弦

    ?? ? ??

    類似的,對于兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n),可以使用類似于夾角余弦的概念來衡量它們間的相似程度,即:? ? ? ?

    夾角余弦取值范圍為[-1,1]。夾角余弦越大表示兩個向量的夾角越小,夾角余弦越小表示兩向量的夾角越大。當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向完全相反夾角余弦取最小值-1。?

    • 10.?杰卡德相似系數(Jaccard?similarity?coefficient)
    (1)?杰卡德相似系數??????? 兩個集合A和B的交集元素在A,B的并集中所占的比例,稱為兩個集合的杰卡德相似系數,用符號J(A,B)表示。    杰卡德相似系數是衡量兩個集合的相似度一種指標。 (2)?杰卡德距離??????? 與杰卡德相似系數相反的概念是杰卡德距離(Jaccard?distance)。 杰卡德距離可用如下公式表示:   杰卡德距離用兩個集合中不同元素占所有元素的比例來衡量兩個集合的區分度。 (3)?杰卡德相似系數與杰卡德距離的應用?????? 可將杰卡德相似系數用在衡量樣本的相似度上。
    舉例:樣本A與樣本B是兩個n維向量,而且所有維度的取值都是0或1,例如:A(0111)和B(1011)。我們將樣本看成是一個集合,1表示集合包含該元素,0表示集合不包含該元素。 M11 :樣本A與B都是1的維度的個數 M01:樣本A是0,樣本B是1的維度的個數 M10:樣本A是1,樣本B是0 的維度的個數 M00:樣本A與B都是0的維度的個數 依據上文給的杰卡德相似系數及杰卡德距離的相關定義,樣本A與B的杰卡德相似系數J可以表示為: 這里M11+M01+M10可理解為A與B的并集的元素個數,而M11是A與B的交集的元素個數。而樣本A與B的杰卡德距離表示為J':
    • 11.皮爾遜系數(Pearson Correlation Coefficient)
    ? ? 在具體闡述皮爾遜相關系數之前,有必要解釋下什么是相關系數 ( Correlation coefficient )與相關距離(Correlation distance)。 相關系數?(?Correlation?coefficient?)的定義是: ( 其中,E為數學期望或均值,D為方差,D開根號為標準差,E{ [X-E(X)] [Y-E(Y)]}稱為隨機變量X與Y的協方差,記為Cov(X,Y),即Cov(X,Y) =?E{ [X-E(X)] [Y-E(Y)]},而兩個變量之間的協方差和標準差的商則稱為隨機變量X與Y的相關系數,記為) 相關系數衡量隨機變量X與Y相關程度的一種方法,相關系數的取值范圍是[-1,1]。相關系數的絕對值越大,則表明X與Y相關度越高。當X與Y線性相關時,相關系數取值為1(正線性相關)或-1(負線性相關)。 具體的,如果有兩個變量:X、Y,最終計算出的相關系數的含義可以有如下理解:
  • 當相關系數為0時,X和Y兩變量無關系。
  • 當X的值增大(減小),Y值增大(減小),兩個變量為正相關,相關系數在0.00與1.00之間。
  • 當X的值增大(減小),Y值減小(增大),兩個變量為負相關,相關系數在-1.00與0.00之間。
  • 相關距離的定義是:
    OK,接下來,咱們來重點了解下皮爾遜相關系數。 在統計學中,皮爾遜積矩相關系數(英語:Pearson product-moment correlation coefficient,又稱作 PPMCC或PCCs, 用r表示)用于度量兩個變量X和Y之間的相關(線性相關),其值介于-1與1之間。

    通常情況下通過以下取值范圍判斷變量的相關強度:
    相關系數???? 0.8-1.0?????極強相關
    ???????????????? 0.6-0.8???? 強相關
    ???????????????? 0.4-0.6???? 中等程度相關
    ???????????????? 0.2-0.4???? 弱相關
    ???????????????? 0.0-0.2???? 極弱相關或無相關

    在自然科學領域中,該系數廣泛用于度量兩個變量之間的相關程度。它是由卡爾·皮爾遜從弗朗西斯·高爾頓在19世紀80年代提出的一個相似卻又稍有不同的想法演變而來的。這個相關系數也稱作“皮爾森相關系數r”。
    (1)皮爾遜系數的定義: 兩個變量之間的皮爾遜相關系數定義為兩個變量之間的協方差和標準差的商: 以上方程定義了總體相關系數, 一般表示成希臘字母ρ(rho)?;跇颖緦f方差和方差進行估計,可以得到樣本標準差, 一般表示成r: 一種等價表達式的是表示成標準分的均值。基于(Xi, Yi)的樣本點,樣本皮爾遜系數是
    ? ? ? ? ? ? ? ?其中、?及?,分別是標準分、樣本平均值和樣本標準差。

    或許上面的講解令你頭腦混亂不堪,沒關系,我換一種方式講解,如下:

    假設有兩個變量X、Y,那么兩變量間的皮爾遜相關系數可通過以下公式計算:

    • 公式一:
    注:勿忘了上面說過,“皮爾遜相關系數定義為兩個變量之間的協方差和標準差的商”,其中標準差的計算公式為:
    • 公式二:
    • 公式三:
    • 公式四:

    以上列出的四個公式等價,其中E是數學期望,cov表示協方差,N表示變量取值的個數。

    (2)皮爾遜相關系數的適用范圍
    當兩個變量的標準差都不為零時,相關系數才有定義,皮爾遜相關系數適用于:
  • 兩個變量之間是線性關系,都是連續數據。
  • 兩個變量的總體是正態分布,或接近正態的單峰分布。
  • 兩個變量的觀測值是成對的,每對觀測值之間相互獨立。
  • (3)如何理解皮爾遜相關系數

    rubyist皮爾遜相關系數理解有兩個角度

    其一, 按照高中數學水平來理解, 它很簡單, 可以看做將兩組數據首先做Z分數處理之后, 然后兩組數據的乘積和除以樣本數,Z分數一般代表正態分布中, 數據偏離中心點的距離.等于變量減掉平均數再除以標準差.(就是高考的標準分類似的處理)

    樣本標準差則等于變量減掉平均數的平方和,再除以樣本數,最后再開方,也就是說,方差開方即為標準差,樣本標準差計算公式為:

    所以, 根據這個最樸素的理解,我們可以將公式依次精簡為:

    其二, 按照大學的線性數學水平來理解, 它比較復雜一點,可以看做是兩組數據的向量夾角的余弦。下面是關于此皮爾遜系數的幾何學的解釋,先來看一幅圖,如下所示:


    回歸直線: y=gx(x) [紅色] 和 x=gy(y) [藍色]
    如上圖,對于沒有中心化的數據, 相關系數與兩條可能的回歸線y=gx(x) 和 x=gy(y) 夾角的余弦值一致。
    對于沒有中心化的數據 (也就是說, 數據移動一個樣本平均值以使其均值為0), 相關系數也可以被視作由兩個隨機變量 向量 夾角 的 余弦值(見下方)。
    舉個例子,例如,有5個國家的國民生產總值分別為 10, 20, 30, 50 和 80 億美元。 假設這5個國家 (順序相同) 的貧困百分比分別為 11%, 12%, 13%, 15%, and 18% 。 令 x 和 y 分別為包含上述5個數據的向量: x = (1, 2, 3, 5, 8) 和 y = (0.11, 0.12, 0.13, 0.15, 0.18)。
    利用通常的方法計算兩個向量之間的夾角 ?(參見 數量積), 未中心化 的相關系數是:

    我們發現以上的數據特意選定為完全相關: y = 0.10 + 0.01 x。 于是,皮爾遜相關系數應該等于1。將數據中心化 (通過E(x) = 3.8移動 x 和通過 E(y) = 0.138 移動 y ) 得到 x = (?2.8, ?1.8, ?0.8, 1.2, 4.2) 和 y = (?0.028, ?0.018, ?0.008, 0.012, 0.042), 從中

    (4)皮爾遜相關的約束條件

    從以上解釋, 也可以理解皮爾遜相關的約束條件:

    • 1 兩個變量間有線性關系
    • 2 變量是連續變量
    • 3 變量均符合正態分布,且二元分布也符合正態分布
    • 4 兩變量獨立

    在實踐統計中,一般只輸出兩個系數,一個是相關系數,也就是計算出來的相關系數大小,在-1到1之間;另一個是獨立樣本檢驗系數,用來檢驗樣本一致性。

    簡單說來,各種“距離”的應用場景簡單概括為,空間:歐氏距離,路徑:曼哈頓距離,國際象棋國王:切比雪夫距離,以上三種的統一形式:閔可夫斯基距離,加權:標準化歐氏距離,排除量綱和依存:馬氏距離,向量差距:夾角余弦,編碼差別:漢明距離,集合近似度:杰卡德類似系數與距離,相關:相關系數與相關距離。




    總結

    以上是生活随笔為你收集整理的***K近邻Survey-Distance总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。