栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习之KNN算法(学习笔记)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习之KNN算法(学习笔记)

机器学习之KNN算法
  • KNN算法的定义及原理
    • 距离公式的使用
    • 注意k的取值
  • 鸢尾花种类预测案例
  • 优缺点
    • 优点
    • 缺点
    • 使用场景
    • 优化方案

KNN算法的定义及原理

K—近邻算法(K Nearest Neighbor)算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
其定义为:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

距离公式的使用

两个样本的距离可以通过欧式距离公式计算。
比如说,a(a1,a2,a3),b(b1,b2,b3),则

d = s q r t (( a 1 − b 1 ) 2 + ( a 2 − b 2 ) 2 + ( a 3 − b 3 ) 2 ) d = sqrt((a1-b1)^2+(a2-b2)^2+(a3-b3)^2) d=sqrt((a1−b1)2+(a2−b2)2+(a3−b3)2)
也可使用曼哈顿距离公式
曼哈顿距离和欧氏距离都是明可夫斯基距离公式的特殊情况

注意k的取值

k值取的过大,易受到样本不均衡的影响
k值取的过小,易受到异常点的影响


鸢尾花种类预测案例

具体代码如下

1

具体使用Iris数据集,训练集与测试集均要标准化
代码中需要注意的是,对测试集所做的标准化要用transform而不是fit_transform,用训练集的平均值和标准差对测试集进行标准化,以达到进行相同的标准化操作的目的


优缺点 优点

简单,易于理解,易于实施,无需训练

缺点

1.懒惰算法,对测试样本分类时的计算量大,内存开销大
2.必须指定k值,k值选择不当则分类精度不能保证

使用场景

小数据场景,几千-几万样本,具体场景具体业务去测试

优化方案

使用起参数搜索——网络搜索(Grid Search),人为定义多个k值,在代码中添加相关内容,机器自动通过各组的交叉验证来进行评估,最后选出最优参数组合建立模型。


  1. 图片来自b站网课代码截屏内容 ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号