機器學習演算法初識 k近鄰演算法knn

2021-08-16 00:12:15 字數 1002 閱讀 8398

knn

演算法思想:

k近鄰演算法用於分類,首先收集大量資料作為模型(不用訓練,包括特徵變數和所屬分類兩部分),待測試資料(需要分類的資料)輸入後計算輸入資料和已有模型中各個資料的(特徵變數)距離,距離的計算可以根據實際情況採用不同的計算方法,一般採用歐式距離。選取距離中最近的k個模型,在選取的k個模型中模型所屬分類最多的乙個類別就認為是當前輸入資料的類別。

程式實現過程(主要的遇到的問題):

1.讀入模型數劇:每組資料特徵值為一列,得到總的特徵屬性(記做dataset);每組資料對應的標籤單獨存為乙個一列的矩陣。

2.利用python的shape函式得到整個模型的個數(行數,也就是一共有多少個資料)。a.shape()得到矩陣各個維度的長度,shape[0]表示得到矩陣的第一維度的大小,shape[1]得到矩陣第二維度的大小。在此用shape[0]即得到資料的個數。

4.選擇k個距離最近的值。python的argsort函式可以對資料排序,argsort函式回返回資料從小到大的索引值。

5.找出k個最近的距離所對應的模型資料類別。因為模型資料和其對應的類別在行上是一一對應的,根據前k個argsort返回的索引值即可知道該資料的類別是標籤中同樣索引值對應的類別。

6.統計k個類別中每種分類的個數,最多的一種即可認為是輸入資料的型別。首先建立空字典,遍歷k個類別,利用python的字典get函式判斷該類別是否存在,不存在即儲存該key值,value值預設設為1,若存在則得到該key值當前的value,並將value+1儲存為新的value。

7.得到分類。用sorted函式將上述字典中安value進行降序排序,排序後取第乙個的key值,即所屬分類。

至此整個過程基本結束。

注意:計算距離時由於不同特徵的量綱不同,直接計算會出現較大的誤差,因此在計算前需要先將資料歸一化,下面的公式可以將資料轉換到0~1之間的數值:

newvalue = (oldvalue-minvalue)/(maxvalue-minvalue)

其中minvalue和maxvalue是某一特徵的取值最大值和最小值。

機器學習 k 近鄰演算法

一.k 近鄰演算法概述 簡單地說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類。k 近鄰演算法 knn 它的工作原理是 存在乙個樣本資料集,也稱訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將資料的每個特徵與樣本集合中資...

機器學習 K近鄰演算法

用例一 from sklearn.neighbors import nearestneighbors import numpy as np x np.array 1,1 2,1 3,2 1,1 2,1 3,2 nbrs nearestneighbors n neighbors 2,algorithm...

機器學習 K近鄰演算法

工作原理 存在乙個訓練樣本資料集合,每組資料對應乙個標籤及分類 比如下邊例子為前兩個資料都為a類 輸入測試樣本後通過計算求出測試樣本與訓練樣本的歐氏距離d,取前k個最小的值,這k組資料對應的標籤分類最多的那種,就是測試樣本的標籤。訓練樣本資料 1.0,1.1 1.0,1.0 0,0 0,0.1 歐氏...