knn算法python理解与预测_机器学习模型1 K-Nearest Neighbor(KNN)算法-基于Python sklearn的实现...

K-Nearest Neighbor(KNN)算法是一种常见的监督学习方法,基于距离度量找到最近的k个训练样本,通过“投票法”或“平均法”进行预测。本文详细介绍了KNN的原理、注意点、相关概念,以及Python中使用sklearn库的实现步骤,包括KNeighborsClassifier和KNeighborsRegressor的选择,以及参数如n_neighbors、weights和algorithm的含义。同时,讨论了维度灾难和降维方法,如主成分分析,并给出了KNN模型的训练和预测示例。
摘要由CSDN通过智能技术生成

1、模型原理

(一)原理

1、原理:是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。也有无监督的最近邻,暂不讨论。

2、判定方法主要有两种:

(1)在分类任务中的可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;

(2)在回归任务中可使用“平均法”,即将这k个样本的标记平均值作为预测结果。

(3)还可以根据距离远近,对样本进行加权,实现加权平均或加权投票。

(二)注意点:

1、距离度量方法不同,找到的“近邻”也可能有显著区别,进而导致分类结果不同。通常是用欧式距离,即平方和开根号。

2、k在其中是一个相当重要的参数,k取值不同时,分类结果会有显著不同。

3、

(三)相关概念

1、“维度灾难”,如果样本的属性维度过多,在这种高维情况下,会出现数据样本稀疏(不密集,太过分散),距离计算困难等问题,这是所有机器学习方法共同面对的问题,被称为维度灾难。

2、由于这种情况,就需要进行降维。在低维空间中保持样本点间的距离不变,最简单的是对原始的高维空间进行线性变换,主成分分析就是最常见的一种线性降维方法。

有时,需要非线性映射才能找到恰当的低维嵌入,就会采用比如“核技巧”等非线性降维方法。

这里引申出来了“主成分分析”方法,可以在下面做补充。

(四)Python实现步骤

(1)计算已知类别数据集

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值