【机器学习实战 1】、KNN实现手写体识别(二)

k-邻近算法的深入思考

k值

        knn算法通过选出k个与预测样本的欧式距离最近的类别,将数量最多的类别作为预测样本的类别,通过下图了解k值对结果的影响
在这里插入图片描述
        可以看到当k值不同时,正方形代表的预测数据的结果不同。

        所以knn算法中,k值是一个影响预测结果的超参数。

        K值较小,则模型复杂度较高,容易发生过拟合,学习的估计误差会增大,预测结果对近邻的实例点非常敏感。
        K值较大 , 可以减少学习的估计误差,但是学习的近似误差会增大,与输入实例较远的训练实例也会对预测起作用,使预测发生错误,k值增大模型的复杂度会下降。

近似误差:可以理解为对现有训练集的训练误差。
估计误差:可以理解为对测试集的测试误差。

        在应用中,k值一般取一个比较小的值,通常采用交叉验证法来来选取最优的K值。

距离度量

        在上篇博客通过knn实现手写体识别,使用的是欧式距离,对于其他类型的分类问题不一定表现很好,再介绍其他几个距离度量。

欧氏距离
        欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
适用于空间问题。

曼哈顿距离
        出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。 曼哈顿距离是欧氏距离在欧几里得空间的固定直角坐标系上所形成的线段对轴产生的投影的距离总和。
适用于路径问题。

切比雪夫距离
        在数学中,切比雪夫距离是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值。
切比雪夫距离会用在计算法网格中两点之间的距离,比如:棋盘、仓储物流等应用。
对一个网格,和一个点的切比雪夫距离为1的点为此点的Moore型邻居
使用于在网格中计算距离的问题

时间复杂度

knn算法的流程
        先拥有m个训练样本维度为n,设置k值,使用测试集进行测试,查看效果,优化k值。

训练的时间复杂度:O(1)
        在knn算法中没有训练过程,直接设置k值,可将训练样本理解为模型的一部分,将测试集与训练样本计算,观察k值是否合适,已适时调整,所以训练的时间复杂度未O(1);

测试的时间复杂度:O(m*n)
        将一个测试样本输入进模型中,将分别与m个训练样本在n个维度上进行计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值