K - 邻近算法



K - 邻近算法

1. 算法描述

K-邻近算法(K Nearest Neighbor, KNN)分类算法,是最简单的机器学习算法。


工作原理:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类对应的关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最邻近)的分类标签。一般来说,我们只选择样本数据集中前k个最相似数据,这就是k-邻近算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类。

    简单的说,k-邻近算法采用测量不同特征值之间的距离方法进行分类。


2. K - 邻近算法的一般流程

(1)收集数据:可以使用任何方法。比如:通用数据库,网络爬虫等。

(2)准备数据:距离计算所需要的数值,最好是结构化的数据格式。

距离计算一般选择欧氏距离:

d = [(xA0 - xB0)2 + (xA1 - xB1)2]1/2

注:计算特征之间的距离时,要将每个特征都归一化,以消除数据差异对结果的影响。公式如下:

newValue = (oldValue - min) / (max - min)

其中min和max分别是数据集中的最小特征值和最大特征值。

(3)分析数据:可以使用任意方法。比如:使用Matplotlib制作原始数据的散点图,以发现特征之间的关系。

(4)训练算法:此步骤不适用于k-邻近算法。

(5)测试算法:计算错误率。

对于分类器来说,错误率就是分类器给出错误结果的次数除以测试数据的总数。

(6)使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-邻近算法判定输入数据分别属于哪个分类,最后应用对计算出的分类执行后续的处理。


3. Python平台

(1)使用Matplotlib创建散点图

	import matplotlib 
	import matplotlib.pyplot as plt
	fig = plt.figure()
	ax = fig.add_subplot(111)
	ax.scatter(datingDataMat[:,1], datingDataMat[:,2])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值