欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

机器学习系列 - 1.K近邻算法

最编程 2024-02-08 22:26:21
...

1. KNN算法原理:

基本原理:有监督的机器学习算法。

分类 - 未标记的样本的类别,由距离他最近的K个邻居投票来决定;回归 - 挑选最近的K个点的值,然后计算这K个点的均值作为回归预测值。

用途:分类(多分类),回归

优点:准确度高,但对异常点不敏感

缺点:一旦特征或者样本的数目特别的多,KNN的时间复杂度将会非常的高

2.模型3个基本要素:

(1).距离度量(欧式距离)计算公式:\sqrt{\sum_{i=1}^n(x_{i} -y_{i}) ^2}

(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