knn演算法原理與實現(1)

2021-08-31 01:29:14 字數 1130 閱讀 9801

一、演算法原理與模型

knn演算法即最近鄰演算法,其原理非常簡單即根據給定的資料集,計算資料集中點的特徵到待分類資料的歐氏距離,然後選擇距離最近的k個作為判斷依據,這k個資料中出現類別最多的作為新輸入資料的label。模型用公式表示如下:

二、python**實現

__author__ = 'gujun(bill)'

#knn code

#2018/03/07

import numpy as np

import random as rd

def countdistance(x1,x2):#計算歐氏 距離

dim = len(x1)

distance = 0

for i in range(dim):

distance += (x1[i]-x2[i])*(x1[i]-x2[i])

return np.sqrt(distance)

def do_predict(datamax,sorteddistanceindex,k):

temp = dict()#用字典儲存對應的標籤出現的次數

for i in range(k) :

temp[datamax[sorteddistanceindex[i]][-1]] += 1

return max(temp, key=temp.get) #出現頻率最高的那個鍵的名字

def predict(datamax,inputvec,k):

vec_num = datamax.shape[0]

distances = vec_num*[0]

for i in range(vec_num):

distances[i] = countdistance(vec_num[i][:,-1])

sorteddistanceindex = np.argsort(distances)

class_lable = do_prodict(datamax,sorteddistanceindex,k)

print("分類結果:",class_lable)

KNN演算法原理與實現

knn k nearest neighbors 演算法不需要訓練過程,直接利用樣本之間的距離進行分類。演算法的基本過程是 給定乙個測試樣例,分別計算它與訓練集中所有樣本之間的距離,選取距離最小的k個訓練樣本對測試樣例的類別進行投票,最後將得票最多 在k個樣本中最多的類別 作為測試樣例的 類別。需要注...

KNN演算法原理與自實現

1.計算已知類別資料集中的點與當前點之間的距離 2.按照距離遞增次序排序 3.選擇與當前距離最小的k個點 4.確定前k個點所在類別的出現概率 5.返回前k個點出現頻率最高的類別作為當前點的 分類 距離計算 param v1 第乙個點的位置 param v2 第二個點的位置 return distan...

KNN演算法原理與python實現

knn演算法python實現 參考文獻 knn k nearest neighbor 演算法,顧名思義,其原理也就是 近朱者赤,近墨者黑 knn演算法是一種有監督的分類演算法,輸入同樣為樣本特徵值向量以及對應的類標籤,輸出則為具有分類功能的模型,能夠根據輸入的特徵值 分類結果。核心原理就是,與待分類...