美文网首页
机器学习笔记(7):K近邻

机器学习笔记(7):K近邻

作者: 链原力 | 来源:发表于2020-03-01 01:05 被阅读0次

    本文来自之前在Udacity上自学机器学习的系列笔记。这是第7篇,介绍了监督学习中的K近邻模型。

    K近邻

    K近邻模型理解起来非常简单。假设我们已经知道下面地图中红点、蓝点和绿点表示的房子的价格了,我们想要预估新的一座房子(用黑点表示)的价格,我们可以选取距离这座房子最近的K个房子,然后按照占大多数类别的点所对应的价格作为这所新房子的价格。

    image.png

    K近邻算法与之前介绍的线性回归有本质的区别。线性回归是通过一组数据得到拟合这些数据点的函数。对于这个函数来说,输入某个已知的特征,得到的输出很可能并不是完全与已知数据一致的,它只是趋近而不是记住已知数据。而K近邻是将数据完全记住,已知数据通过模型计算会得到源数据的结果。所以这里有个范式转移,线性回归是基于参数的,而K近邻是基于实例的模型。

    模型

    1. 给定数据集D=(x^{(i)}, y^{(i)}), 距离函数d(q,x),近邻的数量为k, 需要求解q的分类或预测值;
    2. 根据已知数据求得最近邻的k个数据点集合NN=\{i:d(q, x^{(i)})\}
    3. 根据问题的类型,对集合NN进行结果的判断。如果是回归问题,我们可以取结果的平均值;如果是分类问题,我们可以根据集合中票数最多的类别作为q的类别。另外,如果存在多个同样多票数的结果,我们可以进行加权平均,比如说乘以距离的倒数,这样距离越远,权重越低。

    距离函数
    上面提到的距离函数常用的有以下几种。
    假设x \in R^n
    欧氏距离:
    d(q, x) = \sqrt{(q_1-x_1)^2+(q_2-x_2)^2+ {\cdots} +(q_n-x_n)^2}

    曼哈顿距离:
    d(q, x) = |q_1-x_1| + |q_2-x_2| +{\cdots} + |q_n-x_n|

    在sklearn上有更加深入的介绍:
    https://scikit-learn.org/stable/modules/neighbors.html#classification

    相关文章

      网友评论

          本文标题:机器学习笔记(7):K近邻

          本文链接:https://www.haomeiwen.com/subject/wyxohhtx.html