一. KNN算法
KNN(K-Nearest Neighbor)最邻近分类算法是数据挖掘分类技术中最简单的算法之一,其指导思想是”近朱者赤,近墨者黑“,即由你的邻居来推断出你的类别。
实现原理:为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选取与未知样本距离最近的K个已知样本,
根据少数服从多数的投票法则(majority-voting),将未知样本与K个最邻近样本中所属类别占比较多的归为一类。
import numpy as np import collections as c data = np.array([ [154, 1], [126, 2], [70, 2], [196, 2], [161, 2], [371, 4] ]) # 输入值 feature = data[:, 0] # 结果 label = data[:, -1] #用-1,因为前面可以有很多列特征值,-1可以直接输出最后一列的label值 # 预测点 predictPoint = 300 # 计算每个投掷点距离预测点的距离 distance = list(map(lambda x: abs(predictPoint-x), feature)) print(distance) # 对distance的集合元素从小到大排序(返回的是下标) sortIndex = np.argsort(distance) # 用排序的sortIndex来操作label集合 sortedLabel = label[sortIndex] # knn算法的k取最近的三个邻居 k = 3 print(c.Counter(sortedLabel[0:k]).most_common(1)[0][0])
标签:distance,机器,sortIndex,样本,笔记,label,学习,np,data From: https://www.cnblogs.com/ztzzh-1/p/18119903