3.3模型开发

本课程深入探讨了K-最近邻(KNN)分类算法,介绍了算法的基本原理、步骤和应用场景。通过实例展示了如何使用Python和scikit-learn在字体图片数据集上实现KNN,讨论了K值对模型准确度的影响,并提供了课后习题进行巩固学习。
摘要由CSDN通过智能技术生成

1.课程目标

在本课程中,我们将探索如何使用Python和scikit-learn库在数字字体图片数据集上实现和评估K-最近邻(KNN)分类算法。我们希望通过这个课程,你能够理解分类算法的基本概念和原理,并通过实战项目提高你的数据处理和机器学习技能。

2.分类算法简介

分类算法是机器学习中的一种基本算法,它的目标是根据数据的特征,将数据划分到预先定义的类别中。常见的分类算法包括K-最近邻(KNN)、支持向量机(SVM)、决策树、随机森林等。

K-最近邻(KNN)算法是一种常用的机器学习算法,用于分类和回归问题。它的基本思想是根据样本之间的距离来确定新样本的类别。就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。

图中绿色的点就是我们要预测的那个点,假设K=3。那么KNN算法就会找到与它距离最近的三个点(这里用圆圈把它圈起来了),看看哪种类别多一些,比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角了。

但是,当K=5的时候,判定就变成不一样了。这次变成红圆多一些,所以新来的绿点被归类成红圆。从这个例子中,我们就能看得出K的取值是很重要的。

度量空间中点距离有好几种度量方式,比如常见的曼哈顿距离计算,欧式距离计算等等。不过通常KNN算法中使用的是欧式距离,拿二维平面为例,二维空间两个点的欧式距离计算公式如下:

这个高中应该就有接触到的了,其实就是计算(x1,y1)和(x2,y2)的距离。

拓展到多维空间,则公式为

KNN算法就是将预测点与所有点距离进行计算,然后保存并排序,选出前面K个值看看哪些类别比较多。

对于本章的案例,如果用数学公式表达,可以写成:

对于一个测试样本x,我们计算它与每一个训练样本xi的距离:

D(x, xi) = sqrt(sum((xj - xij)^2 for all j))

这里,j表示特征的索引,从X1到X64,xj表示测试样本x的第j个特征,xij表示训练样本xi的第j个特征。

然后,我们找出距离最小的K个训练样本,记作Nk(x)。

最后,我们预测测试样本x的标签y为:

y = argmax(v in Y)(sum(I(yi = v) for xi in Nk(x)))

这里,Y表示所

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

garyyu2200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值