python 機器學習KNN分類演算法

2021-07-24 20:25:23 字數 1266 閱讀 5754

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...