算法基础 |【01】K-近邻算法

概念

在一个样本空间中的k个最相似(特征空间中最近邻)的样本中的大多数属于某一个类别

API的使用

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)

参数:n_neighbors:默认为5

距离度量

1、欧式距离

即高中所学的俩点之间的距离公式

在这里插入图片描述
2、曼哈顿距离

用以标明两个点在标准坐标系上的绝对轴距总和

在这里插入图片描述
3、切比雪夫距离

是向量空间中的一种度量,二个点之间的距离定义是其各坐标数值差绝对值的最大值。类似于人走格子,直行、横行、斜行

在这里插入图片描述
4、闵可夫斯基距离

缺点:将各个分量的单位都相同看待,未考虑各个分量的分布(方差…)可能是不同的

在这里插入图片描述
5、标准化欧式距离

对数值进行标准化
在这里插入图片描述

6、余弦距离

高中所学的余弦定理

在这里插入图片描述
7、汉名距离

字符串替换所做的最小替换次数

8、杰卡德距离
在这里插入图片描述

K值的选择

k值的影响

过小易受异常点影响 整体模型变得复杂, 容易过拟合
过大受到样本均衡问题 模型变简单

误差

近似误差过拟合 在训练集表现好,而测试集中表现不佳
估计误差:误差小,说明对未知数据的预测能力好,模型接近最佳

kd树

概念

原理:若A和B很远,B和C很近,则A和C也很远;对值进行排序,然后切割,分区域

在这里插入图片描述

使用方法

构建树 - 最近邻搜索

eg: list = {(2,3),(5,4),(9,6),(4,7),(8,1),(7,2)} 
#### 选择x、y轴哪个方差大,就对哪个先切割
###  选择一个根节点
【1】构建树
	第一次:可知x轴的方差较大
		x轴 -- 2,5,9,4,8,7 --> 2,4,5,7,8,9
		y轴 -- 3,4,6,7,1,2 --> 1,2,3,4,6,7
		则选择x轴,找中间点【(5,4)或(7,2)】任意一个都可以
	第二次:选择(7,2)
		左边:(2,3),(4,7),(5,4) --> 3,4,7
		右边:(8,1),(9,6) --> 1, 6
		左边选(5,4),右边选(9,6)
	按步选择	...

总结

优点
  • 简单有效
  • 重新训练代价低
  • 适合类域交叉样本
  • 适合大样本自动分类
缺点
  • 惰性学习
  • 类别评分不是规格化
  • 输出可解释性不强
  • 对不均衡的样本不擅长:收集到的数据每个占比严重失衡
  • 计算量较大
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jxiepc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值