Python實現KNN演算法

2021-09-28 15:31:29 字數 655 閱讀 8873

一. 作業題目:原生python實現knn分類演算法,用鳶尾花資料集。

二.演算法設計

knn演算法核心思想:如果乙個樣本在特徵空間中的k個最相似(最近臨)的樣本中大多數屬於某個類別,則該樣本也屬於這個類別。

knn(k-nearest neighbor)工作原理:存在乙個樣本資料集合,也稱為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類對應的關係。輸入沒有標籤的資料後,將新資料中的每個特徵與樣本集中資料對應的特徵進行比較,提取出樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k近鄰演算法中k的出處,通常k是不大於20的整數。最後選擇k個最相似資料**現次數最多的分類作為新資料的分類。

演算法原理:

(1)準備資料集和標籤

(2)計算測試資料與訓練資料之間的距離

(3)將這些距離公升序排列

(4)確定前k個最近點

(5)返回類別出現頻率最高的元素類別

三.源**

import numpy as np

import random

import math

from sklearn.datasets import load_iris#呼叫load_iris函式載入資料

#原生python實現knn過程

Python實現KNN演算法

from numpy import import operator def creatdataset group array 1.0,1.1 1.0,1.0 0,0 0,0.1 lables a a b b return group,lables def classify0 inx,dataset,...

python實現knn演算法

importnumpyasnp importoperator defcreatedataset group np.array 1.0 1.1 1.0 1.0 0.0 0.0 0.0 0.1 labels a a b b returngroup,labels 分類演算法 inx待分類的點 defcla...

python實現KNN演算法

具體 如下 import numpy as np import matplotlib.pyplot as plt class myknn def init self,k self.k k def compute self,x train,y train,x test dist i 0 計算歐式距離 ...