day12 k近鄰演算法KNN

2021-09-02 13:49:24 字數 1044 閱讀 6923

k近鄰演算法的三個基本要素:

def createdataset():

group = np.array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])

labels = [『a』,『a』,『b』,『b』]

return group,labels

def classify(inx,dataset,labels,k):

datasetsize = dataset.shape[0]

diffmat = np.tile(inx,(datasetsize,1))-dataset #距離相減

sqdiffmat = diffmat2 #平方

sqdistances = sqdiffmat.sum(axis=1) #對每一行的距離進行求和

distance = sqdistances0.5 #開根號

sorteddistindicies = distance.argsort()

classcount = {}

for i in range (k):

votelabel = labels[sorteddistindicies[i]]

classcount[votelabel] = classcount.get(votelabel,0)+1

sortedclasscount = sorted(classcount.items(),key=operator.itemgetter(1),reverse=true)

return sortedclasscount[0][0]

ifname==『main』: #寫主函式,呼叫上面寫的分類器

group,labels = createdataset()

test = classify([0.1,0.3],group,labels,3) #輸入乙個點,判斷它的類別

print(test)

#注意:python3以後,都是item(),只有python2裡才有iteritems()

K 近鄰演算法 KNN

knn k nearest neighbor 假設訓練集有記錄 r1 r2,rn共n條,訓練集的特徵向量及其對應的類別都是已知的,每個記錄的特徵向量為 t1 t2,tk共k個特徵,待測試的記錄為ru 1 計算ru 的特徵向量與訓練集的每條記錄 即r1 r2,rn 的特徵向量的歐式距離,選取距離最小的...

k近鄰演算法 kNN

核心思想 前k個最相似資料中出現次數最多的類別,作為新資料的類別。核心函式 計算距離函式,投票函式 coding utf 8 import random import sys from collections import counter from operator import itemgette...

K近鄰演算法 KNN

k近鄰演算法 knn 何謂k近鄰演算法,即k nearest neighbor algorithm,簡稱knn演算法,單從名字來猜想,可以簡單粗暴的認為是 k個最近的鄰居,當k 1時,演算法便成了最近鄰演算法,即尋找最近的那個鄰居。為何要找鄰居?打個比方來說,假設你來到乙個陌生的村莊,現在你要找到與...