机器学习 面试题-第八章 KNN(大厂必问,历经半年整理)

老铁们✌,重要通知🙌!福利来了!!!😉

【计算机视觉 复习流程剖析及面试题详解 】
【深度学习算法 最全面面试题(30 页)】
【机器学习算法 最全面面试题(61页)】

8.KNN

在这里插入图片描述

8.1 简述一下KNN算法的原理?

利用训练数据集对特征向量空间进行划分。KNN算法的核心思想是在一个含未知样本的空间,可以根据样本最近的k个样本的数据类型来确定未知样本的数据类型。 该算法涉及的3个主要因素是:k值选择,距离度量,分类决策。

8.2 如何理解kNN中的k的取值?

在应用中,k值一般取比较小的值,并采用交叉验证法进行调优。

8.3 在kNN的样本搜索中,如何进行高效的匹配查找?

线性扫描(数据多时,效率低) 构建数据索引——Clipping和Overlapping两种。前者划分的空间没有重叠,如k-d树;后者划分的空间相互交叠,如R树。(对R树了解很少,可以之后再去了解)

8.4 KNN算法有哪些优点和缺点?

在这里插入图片描述

8.5 不平衡的样本可以给KNN的预测结果造成哪些问题,有没有什么好的解决方式?

输入实例的K邻近点中,大数量类别的点会比较多,但其实可能都离实例较远,这样会影响最后的分类。
可以使用权值来改进,距实例较近的点赋予较高的权值,较远的赋予较低的权值。

8.6 为了解决KNN算法计算量过大的问题,可以使用分组的方式进行计算,简述一下该方式的原理。

先将样本按距离分解成组,获得质心,然后计算未知样本到各质心的距离,选出距离最近的一组或几组,再在这些组内引用KNN。
本质上就是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本,该方法比较适用于样本容量比较大时的情况。

8.7 如何优化Kmeans?

使用Kd树或者Ball Tree :将所有的观测实例构建成一颗kd树,之前每个聚类中心都是需要和每个观测点做依次距离计算,现在这些聚类中心根据kd树只需要计算附近的一个局部区域即可。

8.8 在k-means或kNN,我们是用欧氏距离来计算最近的邻居之间的距离。为什么不用曼哈顿距离?

曼哈顿距离只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计算问题。
在这里插入图片描述

绿色的线为欧式距离的丈量长度,红色的线即为曼哈顿距离长度,
蓝色和黄色的线是这两点间曼哈顿距离的等价长度。
欧式距离:两点之间的最短距离;
曼哈顿距离:投影到坐标轴的长度之和;又称为出租车距离.
切比雪夫距离:各坐标数值差的最大值;

8.9 参数说明以及调参

n_neighbors:邻居节点数量
weights:设为distance(离一个簇中心越近的点,权重越高);
p=1为曼哈顿距离, p=2为欧式距离。默认为2
leaf_size:传递给BallTree或者KDTree,表示构造树的大小,默认值是30
n_jobs:并发执行的job数量,用于查找邻近的数据点。默认值1,选取-1占据CPU比重会减小,但运行速度也会变慢。
在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cc13186851239

觉得不错的,鼓励一下我,奥利给

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

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

打赏作者

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

抵扣说明:

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

余额充值