統(tǒng)計學習方法之kNN算法

k 近鄰是什么

k 近鄰法是機器學習中最基本的分類和回歸方法,也稱為kNN算法。通常k近鄰法用于分類問題。
k近鄰法假定給定一個訓練數(shù)據(jù)集汹族,其中實例類別已定讼昆。分類時托享,對新的實例,根據(jù)其K個最近鄰的訓練實例類別浸赫,一般通過多數(shù)表決的方式來進行預測闰围。

例如,有兩堆水果既峡,一堆是橙子羡榴,一堆是柚子,新拿到一個水果运敢,判斷是橙子還是柚子校仑。一般來說忠售,柚子更大更紅。那么判斷和該水果最相近的 3 個水果是什么迄沫,比如 3 個最近的鄰居是柚子稻扬,那么我們可以判斷新拿到的水果是柚子,這就是 kNN 算法羊瘩。

k近鄰算法

k近鄰算法簡單泰佳,直觀有效。
輸入:給定一個訓練數(shù)據(jù)集T={(x1, y1), (x2, y2), ..., (xn, yn)}, 其中xi為實例的特征向量尘吗,yi為實例的類別乐纸。
輸出:實例x所屬的類y。

  1. 根據(jù)給定的距離度量摇予, 在訓練集T中尋找與x最近鄰的k個點汽绢,涵蓋這k個點的x的鄰域記作Nk(x)
  2. 在Nk(x)中根據(jù)分類決策規(guī)則(如多數(shù)表決)決定x的類別y:


    其中I為指示函數(shù),當yi = cj時I為1侧戴,否則I為0

特別的宁昭,當k=1時,稱為最近鄰算法酗宋。注意积仗,k近鄰法沒有顯示的學習過程。

K近鄰模型

k近鄰模型對應于特征空間的劃分蜕猫。模型由3個基本要素構成:

  • K值選擇
  • 距離度量
  • 分類決策規(guī)則

訓練集寂曹,距離度量k值以及分類決策規(guī)則確定后回右,對于新輸入的任何一個實例隆圆,它所屬的類別唯一的確定。

距離度量

特征空間中的兩個實例點是兩個實例點相似程度的反映.k近鄰模型的特征空間一般是n維的實數(shù)向量空間翔烁。



當p=2時渺氧,則是歐式距離。即:


當p=1時蹬屹,則為曼哈頓距離


當p=∞時侣背,則是各個坐標距離的最大值。


k值選擇

k值的選擇會對k近鄰的結果產(chǎn)生重大影響慨默。
如果選擇較小的k值贩耐,則學習的近似誤差減小,估計誤差增大厦取,預測結果會對近鄰的實例點非常敏感潮太。如果近鄰點的實例點是噪聲點,則預測會出錯蒜胖。因此消别,較小的k值意味著整體模型會變得復雜,容易過擬合台谢。
如果選擇較大的k值寻狂,則學習的近似誤差增大,估計誤差減小朋沮。預測結果也會受到與輸入實例較遠的實例點的影響蛇券,造成預測錯誤。因此樊拓,較大的k值意味著整體模型變得簡單纠亚,容易欠擬合。

在應用中筋夏,一般k值選用一個比較小的數(shù)值蒂胞,通常采用交叉驗證法來選取最優(yōu)值。

分類決策規(guī)則

k近鄰法中的分類決策規(guī)則往往是多數(shù)表決条篷,即由輸入實例的 k 個鄰近的訓練實例的多數(shù)類決定輸入實例的類別骗随。

多數(shù)表決規(guī)則解釋如下: 如果分類損失函數(shù)為 0-1 損失函數(shù),分類函數(shù)為:


那么誤分類的概率是:


對給定的實例 x 屬于特征向量集赴叹,最近鄰的 k 個訓練實例點構成集合 Nk(x). 如何涵蓋 Nk(x)的區(qū)域的類別是 cj鸿染,那么誤分類是:


要使誤分類率最小即經(jīng)驗風險最小, 就要使 ∑I(yi=cj)最大乞巧,所以多數(shù)表決規(guī)則等價于經(jīng)驗風險最小化

kd樹

kd樹是一種對k維空間中實例點進行存儲以便對其進行快速檢索的樹形數(shù)據(jù)結構涨椒。kd樹是二叉樹,表示對k維空間的一個劃分绽媒。構造kd樹相當于不斷地用垂直于坐標軸的超平面將k維空間切分蚕冬,構成一系列的k維超矩形區(qū)域。kd樹的每個結點對應于一個k維超矩形區(qū)域是辕。

搜索 kd 樹

kd 樹的最近鄰搜索算法:
輸入:已構造 kd 樹播瞳;目標點 x
輸出: x 的最近鄰
1.在 kd 樹種找到含目標點 x 的葉結點: 從根節(jié)點處罰,遞歸地向下訪問 kd 樹免糕。若目標點 x 當前維的坐標小于切分店的坐標赢乓,移動到左子結點,否則移動到右子節(jié)點石窑,直到子節(jié)點為葉節(jié)點為止牌芋。
2.以此葉結點為"當前最近點"
3.遞歸地向上回退,在每個節(jié)點如下操作:

  • 如果該結點保存的實例點比當前最近點距離目標點更近松逊,則以該實例點為"當前最近點"
  • 檢查該子節(jié)點的父節(jié)點對應的另一子節(jié)點對應的區(qū)域是否有更近的點躺屁。
    4.當回退到根節(jié)點時,搜索結束经宏。最后的"當前最近點"即為 x 的最近鄰點

一般犀暑,實例點是隨機分布的驯击,kd 樹搜索的平均計算復雜度是 O(logN). kd 樹更適應于訓練實例數(shù)遠大于空間維數(shù)時的 k 近鄰搜索。

總結

下一篇文章會用 kNN 分類器來實現(xiàn)一個推薦系統(tǒng)引擎系統(tǒng)耐亏,敬請期待徊都。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市广辰,隨后出現(xiàn)的幾起案子暇矫,更是在濱河造成了極大的恐慌,老刑警劉巖择吊,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件李根,死亡現(xiàn)場離奇詭異,居然都是意外死亡几睛,警方通過查閱死者的電腦和手機房轿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來所森,“玉大人冀续,你說我怎么就攤上這事”胤澹” “怎么了洪唐?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吼蚁。 經(jīng)常有香客問我凭需,道長,這世上最難降的妖魔是什么肝匆? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任粒蜈,我火速辦了婚禮,結果婚禮上旗国,老公的妹妹穿的比我還像新娘枯怖。我一直安慰自己,他們只是感情好能曾,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布度硝。 她就那樣靜靜地躺著,像睡著了一般寿冕。 火紅的嫁衣襯著肌膚如雪蕊程。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天驼唱,我揣著相機與錄音藻茂,去河邊找鬼。 笑死,一個胖子當著我的面吹牛辨赐,可吹牛的內容都是我干的优俘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼掀序,長吁一口氣:“原來是場噩夢啊……” “哼帆焕!你這毒婦竟也來了?” 一聲冷哼從身側響起森枪,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤视搏,失蹤者是張志新(化名)和其女友劉穎审孽,沒想到半個月后县袱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡佑力,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年式散,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打颤。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡暴拄,死狀恐怖,靈堂內的尸體忽然破棺而出编饺,到底是詐尸還是另有隱情乖篷,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布透且,位于F島的核電站撕蔼,受9級特大地震影響,放射性物質發(fā)生泄漏秽誊。R本人自食惡果不足惜鲸沮,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锅论。 院中可真熱鬧讼溺,春花似錦、人聲如沸最易。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽藻懒。三九已至敬肚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間束析,已是汗流浹背艳馒。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弄慰。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓第美,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陆爽。 傳聞我的和親對象是個殘疾皇子什往,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容