KNN原理及python實現 kd樹

2021-08-03 08:50:29 字數 851 閱讀 1135

覺得自己完全看懂和做出來是兩回事,希望自己可以堅持將機器學習演算法基本都復現出來,並有時間進行時間空間複雜度的優化,用matlab梳理完思路後有時間再用python寫一遍,畢竟我是乙個厲害的小女子哈哈哈。

如果你閱讀我的文章有什麼疑問,或是任何學術討論,歡迎和我交流:****[email protected]

訓練集是很多有特徵有label的資料,當送進來乙個沒有label的資料需要判斷時,選訓練集中k個和這個資料最相似的資料,再將這k個資料的label以某種規則賦值給這個測試資料(比如規則為出現最多的label)。

這裡的「相似「就是用距離進行度量。(歐式距離,曼哈頓距離等等)使用不同的距離確定的最近鄰點是不同的,最後得到的label肯定也是不同的。

所以我們可以總結出,knn演算法的三個基本要素是:

k值的選取

距離的度量方式

分類決策規則

當這三個要素確定之後,模型完全確定,對於任何乙個新的輸入例項,它所屬的類唯一確定。

k值的選擇

k值的選取對knn的結果造成了較大的影響,如果k取的很小,那麼只有和測試資料非常近的資料才能對結果產生影響,對近鄰資料點非常敏感,但是如果此時近鄰資料是雜訊,那麼就會造成過擬合。

也就是說,k值越小,建立的模型越複雜,越容易發生過擬合,k值越大,建立的模型越簡單,即會選擇性地丟掉一些資訊,k值最大就是選取整個訓練資料集中資料個數n,這時不管測試資料是什麼都會被判定為訓練資料集中最多label 的那個(假設決策規則是少數服從多數原則),這時的模型過於簡單,完全沒有考慮到值得考慮的因素。

在實際中,k一般取乙個比較小的數值,通常採用交叉驗證法來選取最優的k值。

kd樹的構建和搜尋

這篇博文寫的非常清楚。

K近鄰(KNN)演算法原理及python實現

knn是乙個極其簡單的演算法,工作流程如下 距離計算公式可以使用歐幾里得距離,曼哈頓距離,閔可夫斯基距離等等,展示為了簡單使用歐幾里得距離。函式功能 knn分類器 引數說明 inx 需要 分類的樣本 dataset 已知分類標籤的資料集 訓練集 k k 近鄰演算法引數,選擇距離最小的k個點 返回 r...

Knn原理及Python實現 資料展示

knn演算法又稱為k近鄰分類 k nearest neighbor classification 演算法。演算法原理是,從訓練集中找到和新資料距離最接近的k條記錄,然後根據這k條記錄的分類來決定新資料的類別。所以knn的關鍵是,訓練集與測試集 距離或相似的衡量 k的大小及分類決策規則。一旦他們確定了...

KNN(一) 簡單KNN原理及實現

原文 1.knn演算法介紹 鄰近演算法,或者說k最近鄰 knn,k nearestneighbor 分類演算法可以說是整個資料探勘分類技術中最簡單的方法了。所謂k最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用她最接近的k個鄰居來代表。knn演算法的核心思想是如果乙個樣本在特徵空間中的k個最...