python实现K近邻算法

        k近邻算法是机器学习中一种基础的分类与回归算法,通过输入新实例的特征向量,计算与新实例距离最为接近的k个训练集样本,之后在k个训练集样本中通过一定的选举策略确定出新实例的类别或者数值,从而达到分类或者回归的目的。

        在知道了k近邻算法的大体思路后,便可以总结出k近邻算法的三要素。

1 k值的选取

        对于k近邻算法而言,新实例受到样本点的影响取决于k值的大小,当k值很小时,决策新实例的样本点的个数就会很少,新实例受到距离较近的样本点的影响就越大,而当新实例附近的样本点刚好是噪音,那么就会导致新实例的预测值出错、模型过拟合。当k值过大时,决策新实例的样本点的个数就会越多,模型复杂度就会越简单,而此时距离新实例较远的样本点也会影响到新实例的预测,从而导致预测值的出错。因此在k值的选取上应对不同的k值采取交叉验证的方式计算出各个k值的正确率从而选取正确率最大的那一个k值。

2 样本点与实例之间如何度量

        在确定好距离实例最近的k个样本点的个数之后,接下来就是要寻找距离最近的k个样本,而衡量最近的k个样本的依据就是样本点到实例之间的距离。对于每一个样本点而言其可能具有多个特征向量,并且每个特征向量可能拥有不同的定义域,因此对于数值型的特征向量而言在计算距离时需要先对特征向量做归一化操作,从而使每一维度的特征向量对距离的影响相同。对于非数值型的特征向量,如图片类型,可先对图片做灰度处理,从而转化成为数值类型数据。

        在计算距离时通常采用欧氏距离,对于样本点X_{I}的特征向量可表示为\left \{ x^{1}_{i},x^{2}_{i}...x^{n}_{i}\right \},那么样本点X_{i}相对于样本点X_{j}的距离可表示为如下公式。当p=2时此距离为欧氏距离。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值