k近鄰法


    k近鄰法(k nearest neighbor algorithm,k-NN)是機器學習中最基本的分類算法,在訓練數據集中找到k個最近鄰的實例,類別由這k個近鄰中占最多的實例的類別來決定,當k=1時,即類別為最近鄰的實例的類別。

                                               

    如上圖所示(引自wiki),當k=3時,此時紅色的個數為2,則綠色的輸入實例的類別為紅色的三角形,當k=5時,此時藍色的個數為3,輸入實例的類別為藍色的四邊形。
    在分類過程中,k值通常是人為預先定義的常值,從上圖可以看出,k值的選取對會對結果有很多的影響。大的k值可以減小噪聲對分類的影響,但是和實例較遠的實類會對判決起作用,通常采用交叉驗證的方式來選取最優的k值。

    通常實類間的距離通常采用歐氏距離,這主要面向的是連續的特征變量,對於文本分類問題,可以采用漢明距離(Hamming distance),定義為兩個字符串對應位置的不同字符的個數。對距離的度量很多,往往按照應用來決定。
    k近鄰法的最簡單的實現就是線性掃描,當訓練集的數據很大,特征的維度很高的時候,計算量就會過於巨大,可以通過建立k-d tree進行快速搜索k近鄰。

繼續閱讀

http://blog.csdn.net/hust_core/article/details/7628177

http://www.cnblogs.com/eyeszjwang/articles/2429382.html

http://www.cnblogs.com/eyeszjwang/articles/2432465.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM