美文网首页
KNN与K-Means对比

KNN与K-Means对比

作者: 吕不韦 | 来源:发表于2018-01-17 12:15 被阅读47次

    Kmeans算法的缺陷

    聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适

    Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。(可以使用Kmeans++算法来解决)

    KNN是一种memory-based learning,也叫instance-based learning,属于lazy learning。即它没有明显的前期训练过程,而是程序开始运行时,把数据集加载到内存后,不需要进行训练,就可以开始分类了。

    具体是每次来一个未知的样本点,就在附近找K个最近的点进行投票。

    再举一个例子,Locally weighted regression (LWR)也是一种 memory-based 方法,如下图所示的数据集。

    用任何一条直线来模拟这个数据集都是不行的,因为这个数据集看起来不像是一条直线。但是每个局部范围内的数据点,可以认为在一条直线上。每次来了一个位置样本x,我们在X轴上以该数据样本为中心,左右各找几个点,把这几个样本点进行线性回归,算出一条局部的直线,然后把位置样本x代入这条直线,就算出了对应的y,完成了一次线性回归。也就是每次来一个数据点,都要训练一条局部直线,也即训练一次,就用一次。LWR和KNN很相似,都是为位置数据量身定制,在局部进行训练。

    相关文章

      网友评论

          本文标题:KNN与K-Means对比

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