之前那篇文章,手工打造 1-NN 的算法,来实现水果的分类;
今天来主要总结一下 k-NN的算法原理,以及基于 sklearn 实现鸢尾花分类。
目录
1、k近邻算法原理
2、优缺点分析
3、应用——鸢尾花分类
一、k近邻算法原理
原理图参考 机器学习100天——第7天k-NN
k近邻是一种简单的但也常用的分类算法,也可以应用到回归计算。
k近邻是无参数学习,没有假设函数,它是基于实例的,在一个有监督的环境下使用。
做出预测
首先输入训练样本,然后让你准备测试的样本去循环遍历每一个训练样本,找到K个与测试样本距离最近的训练样本,以这几个训练样本大多数的分类为最后的预测值。
距离度量
- 欧式距离(最常用)坐标点的平方根
- 汉明距离
- 曼哈顿距离
- 闵氏距离
K的取值
k太小:容易受到异常值的影响
k太大:计算成本太高
二、优缺点分析
1、优点
- 简单,易于实现
- 易于理解
- 无需训练