KNN(K近邻算法)

knn算法
1.knn的优缺点
knn又叫k近邻算法,顾名思义k近邻算法突出近邻一词,也就是neighbor,knn算法是一种重预测轻训练的算法,算法的核心在于预测,所以很可能预测过程会非常缓慢,所以在使用knn算法时,对数据的预处理非常重要,因为预测速度过慢所以knn往往不能处理数据特征过多的数据,对于大多取值为0的稀疏矩阵数据集来说,效果尤其不好。
2.knn算法参数
在KNeighborsClassfier中有两个重要参数
第一个参数n_neighbors是K值得选择,k值一般选择不超过20数字,通常为样本数的开平方,在knn算法中k值的选择通常会影响整个算法的准确率(score),我们通常也是使用score函数在确定模型的准确率
而第二个重要参数为knn算法邻数据点到数据点的度量方法,KNeighbor默认使用的是欧几里距离公式,而我们在平常的使用中通常会调节这个参数,以得到最合适距离公式,保证算法的针对性与优越的性能。
1.欧几里距离
最常见的度量公式
因为使用的是各维度特征的绝对值,所以要保证每个维度特征指标度量是一样的情况下,如果出现比如身高和体重两个不同度量的值,可能会导致预测失败
明可夫斯基距离(Minkowski Distance)
在这里插入图片描述
这里的p值是一个变量,当p=2的时候就得到了上面的欧氏距离。

2.曼哈顿距离(Manhattan Distance)

曼哈顿距离来源于城市区块距离,是将多个维度上的距离进行求和后的结果,即当上面的明氏距离中p=1时得到的距离度量公式,如下:
在这里插入图片描述
3.切比雪夫距离(Chebyshev Distance)

切比雪夫距离起源于国际象棋中国王的走法,我们知道国际象棋国王每次只能往周围的8格中走一步,那么如果要从棋盘中A格(x1, y1)走到B格(x2, y2)最少需要走几步?扩展到多维空间,其实切比雪夫距离就是当p趋向于无穷大时的明氏距离:
在这里插入图片描述
4.马哈拉诺比斯距离(Mahalanobis Distance)

既然欧几里得距离无法忽略指标度量的差异,所以在使用欧氏距离之前需要对底层指标进行数据的标准化,而基于各指标维度进行标准化后再使用欧氏距离就衍生出来另外一个距离度量——马哈拉诺比斯距离(Mahalanobis Distance),简称马氏距离。
5.相似度度量

相似度度量(Similarity),即计算个体间的相似程度,与距离度量相反,相似度度量的值越小,说明个体间相似度越小,差异越大
6.向量空间余弦相似度(Cosine Similarity)

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。公式如下:
在这里插入图片描述
7.皮尔森相关系数(Pearson Correlation Coefficient)

即相关分析中的相关系数r,分别对X和Y基于自身总体标准化后计算空间向量的余弦夹角。公式如下:
在这里插入图片描述
3.knn算法原理过程
如果样本过多则将样本拆分成相应合适比例的样本集和测试集
在这里插入图片描述
1.k直线求未知点到样本的距离
2.对样本到直线的距离进行排序
3.得到所需的K值
4.对这前K个样本的标签进行分析,如果某一样本标签占优势那么未知点就属于该标签的类别

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值