机器学习之:K-近邻算法

本文介绍了K-近邻(kNN)算法的基本概念、工作原理和一般流程,强调了其在分类问题中的应用。通过Python代码展示了如何实现kNN算法,并对算法进行了简单的测试。文章末尾提到,接下来会利用kNN进行手写数字识别的实战项目。
摘要由CSDN通过智能技术生成
 k-近邻算法(简称kNN)是易于理解和实现的算法,也是非常容易掌握的一种机器学习算法。
本文是学习Machine Learning in Action一书的成果,在此向著作此书的Peter Harrington 致敬。

01 什么是kNN

  简单说,kNN算法采用计算不同特征值之间的距离进行分类的算法。kNN算法的模型就是整个训练数据集。当需要对一个未知数据实例进行预测时,kNN算法会在训练数据集中搜寻k个最相似实例。对k个最相似实例的属性进行归纳,将其作为对未知实例的预测。

优点:精度高,对异常值不敏感,无数据输入假定。

缺点:计算复杂度高,空间复杂度高。

02k NN工作原理

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

03 k-近邻算法的一般流程

(1) 收集数据:可以使用任何方法。

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

(3) 分析数据:可以使用任何方法。

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

(5) 使用算法࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值