chapter2 机器学习之KNN(k-nearest neighbor algorithm)--K近邻算法从原理到实现
生活随笔
收集整理的這篇文章主要介紹了
chapter2 机器学习之KNN(k-nearest neighbor algorithm)--K近邻算法从原理到实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.引入
K近鄰算法作為數據挖掘十大經典算法之一,其算法思想可謂是intuitive,就是從訓練集里找離預測點最近的K個樣本來預測分類
因為算法思想簡單,你可以用很多方法實現它,這時效率就是我們需要慎重考慮的事情,最簡單的自然是求出測試樣本和訓練集所有點的距離然后排序選擇前K個,這個是O(nlogn)的,而其實從N個數據找前K個數據是一個很常見的算法題,可以用最大堆(最小堆)實現,其效率是O(nlogk)的,而最廣泛的算法是使用kd樹來減少掃描的點,這也就是這篇文章的主要內容,本文偏實現,詳細理論教程見july的文章 ,不得不服,july這篇文章巨細無遺!
二.前提:堆的實現
堆是一種二叉樹,用一個數組存儲,對于k號元素,k*2號是其左兒子,k*2+1號是其右兒子
而大根堆就是跟比左兒子和右兒子都大,小根堆反之。
要滿足這個條件我們需要通過up( index )操作和down( index )維護它的結構
當然講這個的文章實在有些多了,隨便搜一篇大家看看:
總結
以上是生活随笔為你收集整理的chapter2 机器学习之KNN(k-nearest neighbor algorithm)--K近邻算法从原理到实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贝叶斯学习举例--学习分类文本
- 下一篇: 决策树--从原理到实现