一、演算法原理與模型
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演算法是一種有監督的分類演算法,輸入同樣為樣本特徵值向量以及對應的類標籤,輸出則為具有分類功能的模型,能夠根據輸入的特徵值 分類結果。核心原理就是,與待分類...