k近鄰演算法是機器學習中最簡單的演算法,其可以做最基本的分類操作,偽**如下:
對未知類別屬性的資料集中的每個點依次執行以下操作:
(1)計算已知類別資料集中的每個點與當前點之間的距離;
(2)按照距離遞增次序排序;
(3)選怒與當前點距離最小的k個點
(4)確定前k個點所在類別出現的頻率;
(5)返回前k個點出現頻率最高的類別作為當前點的**分類。
具體python**如下:
from numpy import *
import operator
def createdataset():
group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
labels = ['a', 'a', 'b', 'b']
return group, labels
def classify0(inx, dataset, labels, k):
datasetsize = dataset.shape[0]
diffmat = tile(inx, (datasetsize, 1)) - dataset
sqdiffmat = diffmat ** 2
sqdistances = sqdiffmat.sum(axis=1)
distances = sqdistances ** 0.5
sorteddistindicies = distances.argsort()
classcount = {}
for i in range(k):
voteilabel = labels[sorteddistindicies[i]]
classcount[voteilabel] = classcount.get(voteilabel, 0) + 1
sortedclasscount = sorted(classcount.iteritems(),
key=operator.itemgetter(1), reverse=true)
return sortedclasscount[0][0]
if __name__ == '__main__':
group,labels = createdataset()
result = classify0([1.2,1.5],group,labels,3)
print result
機器學習 K NN分類
一 定義 1 k nn分類全稱為k近鄰法 k nearest neighbor 是一種基本回歸與分類方法 給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最近的k個例項,這k個例項中多數例項屬於某一類,就把該輸入例項分為這一類。2 好比說,你周圍的同學大都是些好學生,你也會被認為是好學...
機器學習 K NN分類 回歸
k近鄰 從字面上理解,就是 近朱者赤,近墨者黑。和誰離得近和誰歸為一類。1 演算法原理 1 計算測試資料與各個訓練資料之間的距離,方法 閔可夫斯基距離 2 按照距離的遞增順序排序 3 選取距離最小的k個點 4 確定前k個點所在類別的出現頻率 即為各個類別出現次數 5 返回前k個點所在類別的出現頻率,...
機器學習 KNN分類演算法(上)
k近鄰演算法是機器學習演算法最簡單的演算法,流程如下 1 計算測試物件到訓練集中每個物件的距離 2 按照距離的遠近排序 3 選取與當前測試物件最近的k個物件,作為該測試物件的鄰居 4 統計這k個鄰居的類別頻率 5 k個鄰居裡頻率最高的類別,即為測試物件的類別 1 自實現knn演算法import nu...