機器學習實戰 KNN

2021-08-29 02:17:09 字數 1119 閱讀 2817

import numpy as np

import operator

def createdataset():

group = np.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]

#返回乙個5行一列的矩陣,每行和inx相同

diffmat = np.tile(inx,(datasetsize,1)) - dataset

#矩陣求平方是對其中每乙個元素求平方

sqdiffmat = diffmat**2

#axis=1表示對列求和

sqdistance = sqdiffmat.sum(axis=1)

distance = sqdistance**0.5

#返回按值從小到大排列的原始下標陣列

sorteddistindicies = distance.argsort()

classcount = {}

for i in range(k):

votelable = labels[sorteddistindicies[i]]

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

#將字典元素按照第二項排序,sorted預設遞增排序,reverse取反

sortedclasscount = sorted(classcount.items(),

key = operator.itemgetter(1),reverse = true)

return sortedclasscount[0][0]

if __name__ == '__main__':

group,labels = createdataset()

labelpredict = classify0([0.5,0.6],group,labels,2)

print(labelpredict)

機器學習實戰 kNN

一 演算法過程 1 首先存在乙個資料集作為訓練樣本集dataset,比如訓練樣本的資料中,每一條資料都包含乙個城市的某一天空氣中的pm2.5,no2濃度等維度的特徵值。每一條資料同時包含乙個標籤,比如這一天的空氣質素是優,良,輕度汙染,中度汙染,重度汙染中的乙個。2 現在我們輸入一條資料inx,如包...

機器學習實戰 kNN

k 近鄰演算法 knn k nearest neighbors 測量不同特徵值之間的距離方法進行分類。有乙個樣本資料集 每個樣本都存在標籤 輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,提取樣本集中特徵最相似資料 最近鄰 的分類標籤。一般,只選擇樣本資料中前k個最相似的...

機器學習實戰 kNN演算法

今天看了第乙個機器學習演算法 k 鄰近演算法。大概意思就是,先根據已有分劃分好類別的資料集,然後輸入新的資料向量,就計算與資料集裡各個向量的距離,排序找到前k個資料,統計前k資料中各個類別 標籤 出現的次數,最多的那個類別 標籤 就是輸入向量所屬的類別,然後返回。哈哈get乙個機器學習的演算法開心。...