kNN分類演算法的Python實現

2021-09-08 08:30:54 字數 1433 閱讀 6972

from numpy import *

import operator

def createdataset():

group = array([[1.0, 1.1], [2.0, 2.0], [0, 0], [4.1, 5.1]])

labels = ['a', 'b', 'c', 'd']

return group, labels

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

""":param inx: 用於分類的輸出向量

:param dataset:輸入的樣本集

:param labels:標籤向量

:param k:用於選擇最近鄰居的樹目

:return:

"""datasetsize = dataset.shape[0] # 得到資料集的行數

diffmat = tile(inx, (datasetsize, 1)) - dataset # tile生成和訓練樣本對應的矩陣,並與訓練樣本求差

sqdiffmat = diffmat ** 2

sqdistances = sqdiffmat.sum(axis=1) # 將矩陣的每一行相加

distances = sqdistances ** 0.5

sorteddistindicies = distances.argsort() # 從小到大排序 返回對應的索引位置

classcount = {}

for i in range(k):

voteilabel = labels[sorteddistindicies[i]] # 找到該樣本的型別

classcount[voteilabel] = classcount.get(voteilabel, 0) + 1 # 在字典中將該型別加一

sortedclasscount = sorted(classcount.items(), key=operator.itemgetter(1), reverse=true) # reverse = true代表降序

return sortedclasscount[0][0] # 排序並返回出現最多的那個型別

import knn

group,labels = knn.createdataset()

print(knn.classify0([0,0],group,labels,3))

print(knn.classify0([1,2],group,labels,3))

print(knn.classify0([3,3],group,labels,3))

print(knn.classify0([5,5],group,labels,3))

cab

d實驗環境:ubuntu18.04+pycharm+python3.6+numpy

Python 實現 KNN 分類演算法

2.python 實現 本文將詳細講述 knn 演算法及其 python 實現 knn k nearest neighbour 即 k最近鄰,是分類演算法中最簡單的演算法之一。knn 演算法的核心思想是如果乙個樣本在特徵空間中的 k 個最相鄰的樣本中的大多數屬於某乙個類別,則將該樣本歸為該類別 有 ...

python實現KNN分類演算法

k近鄰演算法,簡稱knn演算法,作用就是分類 三大要素 import numpy import matplotlib.pyplot as plt 已知訓練集和訓練集類別 測試集 1.測試集廣播和訓練集一樣的規格 2.計算距離 3.對距離列表排序返回最近的k個點的下標 4.有幾個類別就設幾個標籤用來統...

python實現KNN分類演算法

import sklearn import numpy as np from sklearn.neighbors import kneighborsclassifier import sklearn.datasets as data import matplotlib as mpl import m...