knn-偽代碼與實現過程


knn特點

優點:精度高,對異常值不明感,無數據輸入嘉定

缺點:計算復雜度高,空間復雜度高

適用范圍:數值型和標稱型

knn算法的偽代碼

1、計算已知類別數據集中的點與當前之間的距離

2、按照距離遞增次序排序

3、選取與當前點距離最6,小的k個點

4、確定前k個點所在的類別的出現頻率

5、返回前k個點出現頻率最高的類別作為當前點的預測分類

 

示例:knn最近鄰算法改進約會網站的匹配記錄

1、收集數據:提供文本文件

  *做數據歸一化

2、准備數據:python解析數據:包括數據錄入與調用knn算法

3、分析數據:使用matplotlib畫二位散點圖

4、訓練算法:此步驟不適用k-nn算法

5、測試算法:使用海倫通的部分數據作為測試樣本;測試樣本和非測試樣本的區別在於:測試樣本是已經完成分類的數據,如果預測分類與實際類別不同,則標記錯誤。

  *歸一化處理特征(改造分類可以使用的特征值)

  *計算測試向量的數量(決定了那些數據用測試,哪些用於訓練樣本),然后輸入到原始的knn分類器函數classfy0中,最后計算錯誤率,並輸出

6、使用算法:產生raw_input,輸入一些所獲得的某個特殊值,產生二位散點圖,並用顏色標記方法進行處理

7、注意:涉及到數值歸一化問題,knn的缺點是無法給出任何數據的基礎結構信息,新詞我們無法知曉平均示例樣本和典型實例樣本具有什么特征,但概率測量方法可以處理分類問題。

 

手寫系統示例:

1、收集數據:提取文件

2、准備數據:編寫函數classfy0(),將圖片轉換為分類器使用的list格式

 *將二進制圖形舉證轉化為1*1024的向量

 *打開文件,循環文件前32行,並將每行的頭32個字符值存放在Numpy中

3、分析數據:在python命令提示符中檢查數據,確保符合要求

  *獲取目錄內容

  *從文件名解析數字分類,主要是匹配訓練集的向量相似性

4、訓練數據:knn不適合

5、測試數據:編寫函數使用提供的部分數據及作為測試樣本,測試樣本和費測試樣本的區別在於測試樣本是已經完成的分為類數據,如果預測分類和實際類別不同,則標記為一個錯誤

6、使用算法:

 


免責聲明!

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



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