k-近鄰(k-Nearest Neighbor)

一. k-NN算法【有監(jiān)督】

1. 概念

(1) 原理:K近鄰是一種多類劃分的模型蛛枚,基于實(shí)例棍弄,不需要訓(xùn)練该园。當(dāng)一個(gè)樣本與數(shù)據(jù)集中的k個(gè)樣本最相近時(shí)兆解, 若這k個(gè)樣本中的大多數(shù)屬于某一個(gè)類別, 則該樣本也應(yīng)該屬于這個(gè)類別亲雪。


(2) 兩類問題

在分類問題中勇凭,KNN用來預(yù)測(cè)種類。使用“投票法”义辕,選擇這k個(gè)樣本中出現(xiàn)最多的類別來作為測(cè)試樣本的類別虾标。

在回歸問題中,KNN用來預(yù)測(cè)一個(gè)值灌砖。使用“平均法”璧函,將k個(gè)樣本的實(shí)值輸出的平均值作為測(cè)試樣本的輸出。


2. 算法流程

(1) 輸入:載入數(shù)據(jù)基显,并初始化k值

(2) 計(jì)算測(cè)試數(shù)據(jù)到每一個(gè)訓(xùn)練數(shù)據(jù)的距離

(3) 按距離排序蘸吓,取 TOP k 個(gè)最近的訓(xùn)練數(shù)據(jù)

(4) 取頻率最高的類作為測(cè)試數(shù)據(jù)的預(yù)測(cè)類別


3. 算法的泛化誤差

給定測(cè)試樣本x,設(shè)其最近鄰樣本為z撩幽,最近鄰(1-NN)出錯(cuò)率就是x與z類別標(biāo)記不同的概率

P_{error}=1-∑P(c|x)P(c|z)≈1-∑P^2(c|x)≤1-P^2(c^*|x)≤2*(1-P(c^*|x))

即库继,1NN的泛化錯(cuò)誤率≤2倍的貝葉斯最優(yōu)分類器錯(cuò)誤率

c*=argmax P(c*|x)????為貝葉斯最優(yōu)分類器的結(jié)果


二. 距離度量

1. 歐氏距離(Euclidean Distance)

兩點(diǎn)間的最短距離,它將樣本的不同屬性(即各指標(biāo)或各變量量綱)之間的差別等同看待窜醉,這一點(diǎn)有時(shí)不能滿足實(shí)際要求宪萄。

? ??????????????????????????????????????????????d_p=\sqrt{(x_1-y_1)^2+...+(x_n-y_n)^2}


2.?曼哈頓距離(Manhattan Distance)

也叫L1距離,指在曼哈頓從一個(gè)十字路口開車到另外一個(gè)十字路口的實(shí)際距離榨惰。依賴座標(biāo)系統(tǒng)的轉(zhuǎn)度拜英,當(dāng)坐標(biāo)軸變動(dòng)時(shí),點(diǎn)間的距離就會(huì)不同琅催。

? ?????????????????????????????????????????d_∞(i,j)=|x_1-y_1|+|x_2-y_2|+...+|x_n-y_n|

綠色為歐氏距離居凶,其余為曼哈頓距離


3.?切比雪夫距離(Chebyshev Distance)

又叫“棋盤距離”,“軸上最長(zhǎng)距離”恢暖,指“王”在棋盤上移動(dòng)的距離(可以朝任意方向走)

? ?????????????????????????????????????????????????????d(x,y)= max(∣x_i?y _i∣)


4.閔可夫斯基距離(Minkowski Distance)

不是一種距離,而是距離的定義狰右。

定義兩點(diǎn):A=(x _1?	 ,x _2?	 ,…,x _n)? ?以及 ?B=(y _1 ,y _2 ,…,y _n?	 )

則????????????????L_p(x_i,x_j)=(\sum_{l=1}^n {|x_i?x_j|}^p)^\frac{1}{p}  ? ? (p是一個(gè)變參數(shù))


(1) p=1時(shí)杰捂,曼哈頓距離(對(duì)應(yīng)L1-范數(shù))

(2)?p=2時(shí),歐氏距離(對(duì)應(yīng)L2-范數(shù))

(3)?p→∞ 時(shí)棋蚌,切比雪夫距離


5.?標(biāo)準(zhǔn)化歐氏距離(Standardized Euclidean distance)

(1)?閔氏距離的缺點(diǎn):

① 將各個(gè)分量的量綱(scale)嫁佳,也就是“單位”當(dāng)作相同的看待了

② 沒有考慮各個(gè)分量的分布(期望、方差等)可能是不同的谷暮。

③?各個(gè)維度必須是互相獨(dú)立的蒿往,也就是“正交”的


(2) 改進(jìn):標(biāo)準(zhǔn)化歐氏距離

①?設(shè)樣本集X的均值為μ,標(biāo)準(zhǔn)差為σ

? ??標(biāo)準(zhǔn)化:????X^*=\frac{X-μ}{σ} ? ??????(數(shù)學(xué)期望為0湿弦,方差為1)

②加權(quán)歐式距離:d _{12} = \sqrt{\sum_{k=1}^n(\frac{  x _{1k}?x _{2k} }{s_k}) ^2}  ? ? (將方差的倒數(shù)看成是一個(gè)權(quán)重)


三. k值選取

1. 隨著k值增大瓤漏,分類界面更加平滑

(1) k值小:學(xué)習(xí)的近似誤差會(huì)減小,模型復(fù)雜蔬充,對(duì)近鄰的實(shí)例點(diǎn)分類敏感蝶俱,容易過擬合。

(2) k值大饥漫,學(xué)習(xí)的估計(jì)誤差會(huì)減小榨呆,模型簡(jiǎn)單,對(duì)輸入實(shí)例預(yù)測(cè)不準(zhǔn)確


2. 誤差

(1)?近似誤差:關(guān)注訓(xùn)練集庸队,如果k值小了會(huì)出現(xiàn)過擬合的現(xiàn)象积蜻,對(duì)現(xiàn)有的訓(xùn)練集能有很好的預(yù)測(cè),但是對(duì)未知的測(cè)試樣本將會(huì)出現(xiàn)較大偏差的預(yù)測(cè)彻消。模型本身不是最接近最佳模型竿拆。

(2)?估計(jì)誤差:關(guān)注測(cè)試集,估計(jì)誤差小了說明對(duì)未知數(shù)據(jù)的預(yù)測(cè)能力好证膨。模型本身最接近最佳模型如输。但K取太大并不能提高正確率,而且算法效率會(huì)低央勒。

(3)?在應(yīng)用中不见,K值一般取一個(gè)比較小的數(shù)值,通常采用交叉驗(yàn)證法來選取最優(yōu)的K值崔步。


四. kd樹(K-dimension tree)

1. kNN的缺點(diǎn)

K近鄰在高維情況下時(shí)稳吮,待預(yù)測(cè)樣本需要與依次與所有樣本求距離,則對(duì)于n個(gè)m維的樣本井濒,復(fù)雜度為O(mn)灶似,成為測(cè)試階段的嚴(yán)重瓶頸。


2. 使用kd樹優(yōu)化

(1) 定義:是一種以二叉樹的形式存儲(chǔ)數(shù)據(jù)的方法瑞你,表示對(duì)k維空間的一個(gè)劃分酪惭。用于高維空間中的搜索,比如范圍搜索和最近鄰搜索者甲。


(2) 原理:不斷用垂直于坐標(biāo)軸的超平面將K維空間劃分為兩部分春感,分別記作左子樹(<)右子樹(≥)虏缸,構(gòu)成一系列的K維超矩形區(qū)域鲫懒。


(3) 優(yōu)勢(shì):kd樹的每個(gè)結(jié)點(diǎn)對(duì)應(yīng)于一個(gè)k維超矩形區(qū)域。 利用kd樹可以省去對(duì)大部分?jǐn)?shù)據(jù)點(diǎn)的搜索刽辙, 從而減少搜索的計(jì)算量窥岩。


(4) 構(gòu)造方法

① 建立根節(jié)點(diǎn);?

② 選取方差最大的特征作為分割特征宰缤; (選擇較為分散的一維)

③ 選擇該特征的中位數(shù)作為分割點(diǎn)颂翼; (交替x軸晃洒、y軸)

④ 將數(shù)據(jù)集中,該特征小于中位數(shù)的給左子樹疚鲤,大于中位數(shù)的傳遞給根節(jié)點(diǎn)的右子樹锥累;?

⑤ 重復(fù)②-④,直到所有數(shù)據(jù)都被建立到KD Tree的節(jié)點(diǎn)上為止集歇。


(5) 搜索方法

① 利用kd樹桶略,從根節(jié)點(diǎn)開始向下訪問,根據(jù)目標(biāo)★在分割特征中小于(大于)當(dāng)前節(jié)點(diǎn)诲宇,選擇向左(向右)移動(dòng)

② 遞歸:當(dāng)?shù)竭_(dá)葉節(jié)點(diǎn)际歼,就將其保存為 “當(dāng)前最近點(diǎn)”??

③ 回溯,從葉節(jié)點(diǎn)再返回到根節(jié)點(diǎn)姑蓝,若當(dāng)前節(jié)點(diǎn)更接近鹅心,那么它就更新為?“當(dāng)前最近點(diǎn)” ?

④ 檢查:作為父節(jié)點(diǎn)?是否有另一子樹更近,若有則更新為?“當(dāng)前最近點(diǎn)” ?

(以?到★的距離為半徑畫超球體纺荧,若與另一超平面空間相交旭愧,尋找該空間是否有更近點(diǎn)?)

⑤ 回溯:以?到★的距離為半徑畫超球體,若與節(jié)點(diǎn)?的父節(jié)點(diǎn)?被分割的超平面相交宙暇,說明當(dāng)前節(jié)點(diǎn)的兄弟節(jié)點(diǎn)所在子樹有可能含更近的點(diǎn)输枯,則需要對(duì)這個(gè)兄弟節(jié)點(diǎn)遞歸執(zhí)行①-④。若不相交占贫,則無需更新桃熄,繼續(xù)回溯。

⑥ 結(jié)束:當(dāng)回退到根節(jié)點(diǎn)時(shí)型奥,停止搜索瞳收。


參考:

[1]?機(jī)器學(xué)習(xí)之KNN(k近鄰)算法詳解——CSDN

[2]?樣本相似性度量_描繪自己的王國(guó)……—CSDN

[3]?KD Tree的原理及Python實(shí)現(xiàn) - 李小文的文章 - 知乎

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市厢汹,隨后出現(xiàn)的幾起案子螟深,更是在濱河造成了極大的恐慌,老刑警劉巖烫葬,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件界弧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡厘灼,警方通過查閱死者的電腦和手機(jī)夹纫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門咽瓷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來设凹,“玉大人,你說我怎么就攤上這事茅姜∩林欤” “怎么了月匣?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)奋姿。 經(jīng)常有香客問我锄开,道長(zhǎng),這世上最難降的妖魔是什么称诗? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任萍悴,我火速辦了婚禮,結(jié)果婚禮上寓免,老公的妹妹穿的比我還像新娘癣诱。我一直安慰自己,他們只是感情好袜香,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布撕予。 她就那樣靜靜地躺著,像睡著了一般蜈首。 火紅的嫁衣襯著肌膚如雪实抡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天欢策,我揣著相機(jī)與錄音吆寨,去河邊找鬼。 笑死猬腰,一個(gè)胖子當(dāng)著我的面吹牛鸟废,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姑荷,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盒延,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鼠冕?” 一聲冷哼從身側(cè)響起添寺,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懈费,沒想到半個(gè)月后计露,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡憎乙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年票罐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泞边。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡该押,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阵谚,到底是詐尸還是另有隱情掌猛,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布思犁,位于F島的核電站哎媚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冀痕。 院中可真熱鬧,春花似錦狸演、人聲如沸金度。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猜极。三九已至,卻和暖如春消玄,著一層夾襖步出監(jiān)牢的瞬間跟伏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工翩瓜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留受扳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓兔跌,卻偏偏與公主長(zhǎng)得像勘高,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坟桅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355