《機器學習實戰》第二章 k 近鄰演算法 筆記

2021-08-28 13:01:19 字數 1656 閱讀 1558

在看這一章的書之前,在網上跟著博主jack-cui的部落格學習過,非常推薦。

《python3《機器學習實戰》學習筆記(一):k-近鄰演算法(史詩級乾貨長文)》

講述的非常細緻,文字幽默有趣,演算法細節也講述的非常清楚,較書中而言還有sklearn調庫的補充內容。

因此,在這裡,我只總結自己的筆記。

2.k-近鄰演算法:採用測量不同特徵值之間的距離方法進行分類。

優點:精度高、對異常值不敏感、無資料輸入假定。

缺點:計算複雜度高、空間複雜度高。

適用資料範圍:數值和標稱型。

3.k-近鄰演算法工作原理:存在乙個樣本資料集合,也稱做訓練樣本集,並且樣本集中每個資料都有標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。通常k是不大於20的整數,最後選擇k個最相似資料中出現次數最多的分類,作為新資料的分類。

4.k-近鄰演算法一般流程

1)收集資料:可以使用任何方法。

2)準備資料:距離計算所需要的數值,最好是結構化的資料格式。

3)分析資料:可以使用任何方法。

4)訓練演算法:此步驟不適用於k-近鄰演算法。

5)測試演算法:計算錯誤率。

6)使用演算法:首先需要輸入樣本資料和結構化的輸出結果,然後執行k-近鄰演算法判定輸入資料分別屬於哪個分類,最後應用對計算出的分類執行後續的處理。

5.錯誤率是常用的評估方法,主要用於評估分類器在某個資料集上的執行效果。

6.在處理不同取值範圍的特徵值時,我們通常採用的方法是將數值歸一化

7.機器學習乙個很重要的工作就是評估演算法的正確率,通常我們只提供已有資料90%作為訓練樣本來訓練分類器,而使用其餘的10%資料(隨機選擇)去測試分類器,檢測分類器的正確率。

3)分析資料:使用matplotlib畫二維擴散圖;

4)訓練演算法:此步驟不適用於k-近鄰演算法;

5)測試演算法:使用海倫提供的部分資料作為測試樣本。

測試樣本和非測試樣本的區別在於:測試樣本是已經完成分類的資料,如果**分類與實際類別不同,則標記為乙個錯誤。

6)使用演算法:產生簡單的命令列程式,然後海倫可以輸入一些特徵資料以判斷對方是否為自己喜歡的型別。

9.示例2:使用k-近鄰演算法的手寫識別系統

2)準備資料:編寫函式classify0(),將影象格式轉換為分類器使用的list格式;

3)分析資料:在python命令提示符中檢查資料,確保它符合要求;

4)訓練演算法:此步驟不適用於k-近鄰演算法;

5)測試演算法:編寫函式使用提供的部分資料集作為測試樣本,測試樣本與非測試樣本的區別在於測試樣本是已經完成分類的資料,如果**分類與實際類別不同,則標記為乙個錯誤。

6)使用演算法:本章未涉及。

10.k-近鄰演算法是分類資料最簡單最有效的演算法,但是在使用時我們必須有接近實際資料的訓練樣本資料,必須儲存全部資料集,如果訓練資料集很大,必須使用大量的儲存空間。此外,由於必須對資料集中的每個資料計算距離值,實際使用時可能非常耗時。k-近鄰演算法另乙個缺陷是它無法給出任何資料的基礎結構資訊,因此我們也無法知曉平均例項樣本和典型例項樣本具有什麼特徵。

機器學習實戰 第二章 K 近鄰演算法

本系列目的在於總結每乙個分類器的特點 優點 缺點 使用資料型別 使用時的注意事項等 相關 自己搜。python 建議使用2.7 python常用函式庫 numpy scikit learn等 python整合環境 anaconda 優點 1 對異常值不敏感 2 無資料輸入假設 缺點 1 計算複雜度高...

第二章 K 近鄰演算法

步驟 1 收集資料 2 準備資料 3 分析資料 4 訓練資料 5 測試演算法 6 適用演算法 對未知類別屬性的資料集中的每個點一次執行以下操作 1 計算一直類別資料集中的點與當前點之間的距離 2 按照距離遞增次序排序 3 選取與當前點距離最小的k個點 4 確定前k個點所在類別出現的頻率 5 返回前k...

《機器學習實戰》 K 近鄰演算法

基本原理 通過計算新資料與給定的樣本資料之間的距離,來確定相似度排名 然後取前k個最相似的樣本,統計這k 一般不大於20 個樣本中出現最多的分類,設為新資料的分類。新資料,訓練樣本集,樣本資料標籤 即分類 最近鄰 前k個最相似資料 最近鄰標籤 演算法實施 首先提取要比較的特徵,確定各特徵的權重,進行...