机器学习系列 - 1.K近邻算法
1. KNN算法原理:
基本原理:有监督的机器学习算法。
分类 - 未标记的样本的类别,由距离他最近的K个邻居投票来决定;回归 - 挑选最近的K个点的值,然后计算这K个点的均值作为回归预测值。
用途:分类(多分类),回归
优点:准确度高,但对异常点不敏感
缺点:一旦特征或者样本的数目特别的多,KNN的时间复杂度将会非常的高
2.模型3个基本要素:
(1).距离度量(欧式距离)计算公式:
(2).K值
(3).分类决策规则 - 在分类任务中可以使用‘投票法’,在回归任务中可使用‘平均法’
3.自定义时 - 算法流程:
(1).计算测试对象到训练集中每个对象的距离。
(2).按照距离的远近排序
(3).选取与当前测试对象最近的K的训练对象,作为该测试对象的邻居
(4).统计这K个邻居的类别频次
(5).K个邻居里频次最高的类别,即为测试对象的类别。
4.如何在SKlearn里面调用?
分类:
(1).引用包:
from sklearn.neighbors import KNeighborsClassifier
(2).生成一个KNN_classifier实例:
KNeighborsClassifier(n_neighbors=k) #邻居数据,默认是5
(3).模型拟合:调用fix函数
(4).预测:调用predict(输出标签)/predict_proba(输出概率估值)
回归:
(1).引用包:
from sklearn.neighbors import KNeighborsRegressor
(2).生成一个KNN_Regressor实例
KNeighborsRegressor(n_neighbors=2)
5.如何选定K值:
用交叉验证来选定K值。
注意:k值尽量选择为奇数,且不要是分类结果的偶数倍,否则会出现同票的情况。
6.相关参考资料:
https://mp.weixin.qq.com/s?__biz=MzI4MjkzNTUxMw==&mid=2247483857&idx=1&sn=c888f2c4d40fb64eec5f5e78a3467b1a&chksm=eb932867dce4a171e5e9dba9f46a4e46127f063d1f9e817d250c5a5c18c1dd55f2acfa3c2662&token=2129819246&lang=zh_CN#rd
https://www.cnblogs.com/gemine/p/11130032.html