KNN 是一种非参数的懒惰的监督学习算法.算法
非参数的意思是,模型不会对基础数据分布作出任何假设。换句话说,模型的结构是根据数据肯定的。懒惰的意思是没有或者只有不多的训练过程.app
KNN 算法既能够处理分类问题,测试数据的类型由全部 K 个最近邻点投票决定,也能够处理回归问题,测试数据的值是全部 K 个最近邻点的值的均值或众数.学习
KNN 的算法很是简单.测试
例如,对于分类问题,算法流程以下,ui
对须要预测的每一个数据依次执行如下操做:人工智能
须要注意的是,要对数据进行特征缩放.下面两张图很好的阐释了缩放的重要性.spa
那么KNN在实际使用中有哪些优势和缺点呢?3d
它的优势有:rest
它的缺点是blog
在实际的使用过程当中,可能会遇到以下的问题.
k 近邻的类别出现了平局的状况. 例如在二分类中,正负类型的近邻数相同,使用奇数个近邻能够解决此问题,可是没法解决多分类的问题.这个时候能够
2.训练数据的缺失值如何处理.若是不处理缺失值,则没法计算距离.对于缺失值的处理的核心原则是,尽量小的影响距离的计算.一个合理的解决办法是,使用训练数据的平均值来填充缺失值.
最后附上实现代码,登陆以后就能查看了。
电脑端查看源码
参考资料
————————————————————————————————————Mo (网址:momodel.cn )是一个支持 Python 的人工智能建模平台,能帮助你快速开发训练并部署 AI 应用。