KNN算法总结

K近邻法(KNN)既能用来做多分类也能用来做回归,但是一般用来做分类。K近邻算法采用测量不同特征值之间的距离进行分类。

1. KNN分类原理

    给定一个训练数据集,对新输入的实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例中大多数属于某一个类别,则该输入实例也属于这个类别。
​                       在这里插入图片描述
    如上图所示,训练数据集中有两类数据,一类是蓝色方框,另外一类是红色三角,中心的绿色圆圈是输入的实例,也就是需要进行分类的数据,图中的实线是K=3时的情形,虚线是K=5时的情形。当k=3时,这三个实例中有两个是红色三角,一个是蓝色方框,因此K=3时绿色圆圈属于红色三角分类。而当K=5时,这5个实例中有三个蓝色方框,两个红色三角,因此K=5时绿色圆圈属于蓝色方框分类。

2. K值的选择

    [1] K值过小导致近似误差小,估计误差大,容易发生过拟合。
    [2] K值过大导致估计误差小,近似误差会增大,与输入实例较远的训练实例也会对预测起作用,使预测发生错误。
    [3] K一般取较小值,通过交叉验证来获取K的最优值,通常取不大于20的整数。
    PS:近似误差:可以理解为对现有训练集的训练误差。 估计误差:可以理解为对测试集的测试误差。近似误差小,会出现过拟合的现象,即模型在训练集上预测误差小,在未知的测试集上则表现差,此时模型并非最优模型;估计误差小,则模型在未知的测试集上的误差小,模型接近于最优模型。

3.优点

    [1] 既能做分类也能做回归。
    [2] 不需要过多调节就可以得到不错的性能。
    [3] 对异常值不敏感。
    [4] 不需要进行参数估计。

4.缺点:

    [1] 特征数很多或者样本数很大时预测速度非常慢。
    [2] 对于有很多特征(几百或更多)的数据集往往效果不好,对于大多数特征的大多数取值都为 0 的数据集(所谓的稀疏数据集)来说,这一算法的效果尤其不好。
    [3] 由于预测速度慢且不能处理具有很多特征的数据集,所以在实践中往往不会用到。

5.参考文献

    [1] 李航. 统计学习方法[M]. 清华大学出版社, 2012.
    [2] Harrington P , 李锐 … [等. 机器学习实战[M]. 人民邮电出版社, 2013.
    [3] Andreas C. Müller , Sarah Guido Python. 机器学习基础教程[M]. 人民邮电出版社, 2018.
    [4] https://blog.csdn.net/dream_angel_z/article/details/45896449

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值