机器学习实战之k-近邻算法(KNN)识别手写数字
《机器学习实战》第2章k-近邻算法之识别手写数字
k-近邻算法原理
- 通过计算目标元素与已知类别元素的距离,距离越小,表示元素之间越相似
- 取距离最近的k个元素
- 这k个元素中,出现次数最多的类别,则为目标元素的类别
代码及解释
import numpy as np
from os import listdir #用于获取文件夹下的文件名
#对目标元素进行分类
def classify0(X, dataset, labels, k):
size = dataset.shape[0]
dis = np.sqrt(np.sum(np.square(dataset-X), axis=1)) #差值后平方、求和、开方
sort_index = np.argsort(dis) #按照距离排序,返回的是排序后的索引
label_count = {
}
for i in range(k):
label