面试回答:KNN和K-Means的区别?

一、KNN和K-Means的区别?

区别

  1. KNN是一种监督学习算法,解决分类问题,而K-Means是非监督学习算法,解决聚类问题。
  2. KNN是人为选定k,含义是考察k个最近的样本,决定未知样本的所属分类,没有明显的训练过程。
  3. K-Means也是人为选定k,含义是k个聚类中心,计算样本到聚类中心的距离,得到初步的聚类结果,再由聚类结果更新聚类中心,迭代直至聚类中心不再变化为止。

相似点

  1. k值得选取会影响到分类/聚类结果。
  2. 都利用到了最近邻的思想(NN,Nears Neighbor)。

二、KNN的三要素是什么并解释?

  1. K值的选取。
    如下图所示,绿色圆形未知样本的分类与k值得选取密切相关。默认未知样本属于多数样本规则的前提下,当k选3,时结果为三角形,当k取5时,结果为正方形。
    面试回答:KNN和K-Means的区别?_第1张图片
    k值的选择还影响到模型的复杂度,k越小模型越复杂,k越大模型越简单。考虑极端情况,k选择整个数据集,如果用多数表决法,距离都不用算,未知样本一定属于占比最多的那类样本,模型就简单,因为每次结果都一样的。

  2. 距离的度量。
    即采用什么样的距离度量标准,因为不同的距离计算公式,会决定未知样本最近的样本是哪些,进而影响到最终的分类结果。

    常见的距离度量标准

    欧式距离
    空间中有两个点A(x1,y1) B(x2,y2),距离d(A, B)=sqrt((x1-x2)^2 + (y1-y2)^2)。

    曼哈顿距离
    空间中有两个点A(x1,y1) B(x2,y2),距离d(A, B)=|x1−x2|+|y1−y2|。

  3. 分类决策规则的选择

    k值选好了,距离算出来了,怎么决定未知样本的分类呢?

    默认的分类决策规则是多数表决法,就是前面用到的,谁多,未知样本就是谁那一类的。所谓近朱者赤近墨者黑。

    有人可能会觉得这个规则不合理,直观上觉得绿色圆就应该属于三角形,因为图里那两个三角形离它太近了。所以又有新的分类决策规则:

    加权多数表决法。

    也就是说,不光考虑数量,还得考虑距离,距离近的样本获得的权重大,影响就大,远的样本权重小,影响就小。

你可能感兴趣的:(算法)