统计学习方法3 - k近邻法

主要参考:
k近邻法介绍:
https://blog.csdn.net/Smile_mingm/article/details/108385312

  • k近邻法:判别模型

  • 模型:
    y = a r g m a x c j ∑ x i ∈ N k ( x ) I ( y i = c j ) , i = 1 , 2 , . . . , N ; j = 1 , 2 , . . . , K y = arg \underset{cj}{max}\sum_{x_{i}\in N_{k}(x)}^{}I(y_{i}=c_{j}),i=1,2,...,N;j=1,2,...,K y=argcjmaxxiNk(x)I(yi=cj),i=1,2,...,N;j=1,2,...,K
    I I I为指示函数,即当 y i = c j y_{i}=c_{j} yi=cj I I I为1,否则 I I I就为 0 0 0

  • 基本思想:在要预测的点画一个圈(也就是离该点距离最近的K个点作为一个邻域),然后看这个邻域中K个点属于哪个类别的多就判断该预测点为哪个类。

  • 三要素:k值的选择、距离度量、分类决策规则
    - 当k=1时,称为最近邻法
    - 较小的k值:
    - 优:只有与实例相近的训练实例才会对预测结果起作用。近似误差会减小。
    - 缺:预测结果会对邻近的实力点敏感。估计误差会变大。
    - 较大的k值:
    - 优:减少了估计误差。
    - 缺:与输入实例较远的(不相关的)点也会起作用。近似误差会变大。

  • 距离度量:对两点之间的距离,度量方式有多种,如平时常用的欧式距离,还有曼哈顿距离(直接坐标减,不平方)等。

  • 分类决策规则:多数表决规则,也就是圈子里哪个类别多,就预测为该类。

kd树:
https://zhuanlan.zhihu.com/p/53826008
kd树算法流程
构建kd树-> 选择切分域、切分点

查找->
1 寻找近似点-寻找最近邻的叶子节点作为目标数据的近似最近点。

2 回溯-以目标数据和最近邻的近似点的距离沿树根部进行回溯和迭代。

作业中的代码解释参考:
作业:https://blog.csdn.net/sdu_hao/article/details/103055338
zip: https://www.runoob.com/python/python-func-zip.html
plt.subplots(): https://www.cnblogs.com/komean/p/10670619.html

flatten()函数用法:
https://www.cnblogs.com/yvonnes/p/10020926.html

numpy.meshgrid():
https://zhuanlan.zhihu.com/p/41968396

代码大致解释:
https://blog.csdn.net/smallcases/article/details/78236412

猜你喜欢

转载自blog.csdn.net/weixin_48760912/article/details/114579079