機器學習筆記之K近鄰演算法

2022-09-07 12:12:09 字數 1286 閱讀 1054

今天學習的是機器學習中最為簡單的乙個演算法:k近鄰演算法,簡稱knn。由於學習主要參照《機器學習實戰》這本書進行,本系列文章中涉及到的概念與例項絕大部分**於此。

本文主要從knn演算法概述,使用k-近鄰演算法改進約會網**的配對效果,手寫識別函式三個方面來展開,本文的主要用意在於闡釋《機器學習實戰》中源**的涉及到的函式,以及

通過實踐將本書中涉及到的只能在python2中執行的源**轉為在python3下能夠成功執行的**。

資料視覺化   資料歸一化   python3     

環境:  anaconda

python3.6

一、knn演算法概述

1.1 工作原理

存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的

新資料後,將新資料的每

個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇

樣本資料集中前k個最相似的資料,選擇這k個數

據**現次數最多的分類,作為新資料的分類。

1.2 python匯入資料

為了簡單演示k近鄰演算法的實現過程,在這一部分匯入了乙個最簡單的資料樣本集。

新建乙個py檔案命名為knn.py(注意k為小寫),在該檔案下寫入下述**,儲存該檔案至python的工作路徑。

1

from numpy import *

2import

operator

3def

createdataset():

4 group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])

5 labels = ['

a','

a','

b','b'

]6return group, labels

array函式只有在import numpy 的條件下才能使用,需要注意其與預設資料型別list的區別。至此,我們已經完成了createdateset()函式的編寫,在python開發環境中,我們只需要

輸入下述命令列即可完成資料的匯入。

1 >>>import

knn2 >>>group,labels = knn.createdataset()

1.3 knn分類器的實現

完成了資料匯入工作後,接下來需要考慮的就是如何用**實現分類器了。首先給出分類器實現的一般步驟:

機器學習之k 近鄰演算法

k nearest neighbor演算法又叫knn演算法,這個演算法是機器學習裡面乙個比較經典的演算法,總體來說knn演算法是相對比較容易理解的演算法 定義 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別 2 相似度 就是指兩個點之...

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

k 近鄰演算法工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的資料進行比較,然後演算法提取樣本集中特徵最相似資料 最鄰近 的分類標籤。一般來說,我們只選取樣本資料集...

機器學習(一)之k近鄰演算法

1.knn k nearest neighbor 工作原理 存在乙個樣本資料集 訓練樣本集 且樣本集中每個資料都存在標籤,即我們知道樣本集中每個資料與所屬分類的對應關係。輸入沒有標籤的新資料後將新資料的每個特徵和樣本集裡的資料對應的特徵作比較,然後演算法提取樣本集中特徵最相似資料的分類標籤 最近 一...