knn算法和kmeans算法的区别是什么?

knn

算法思路:

如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

k近邻模型的三个基本要素:

  • k值的选择:k值的选择会对结果产生重大影响。较小的k值可以减少近似误差,但是会增加估计误差;较大的k值可以减小估计误差,但是会增加近似误差。一般而言,通常采用交叉验证法来选取最优的k值。

  • 距离度量:距离反映了特征空间中两个实例的相似程度。可以采用欧氏距离、曼哈顿距离等。

  • 分类决策规则:往往采用多数表决。

k-means

算法步骤:

1. 从n个数据中随机选择 k 个对象作为初始聚类中心;

2. 根据每个聚类对象的均值(中心对象),计算每个数据点与这些中心对象的距离;并根据最小距离准则,重新对数据进行划分;

3. 重新计算每个有变化的聚类簇的均值,选择与均值距离最小的数据作为中心对象;

4. 循环步骤2和3,直到每个聚类簇不再发生变化为止。

k-means方法的基本要素:

  • k值的选择:也就是类别的确定,与K近邻中k值的确定方法类似。

  • 距离度量:可以采用欧氏距离、曼哈顿距离等。

KNN和K-Means的区别

KNNK-Means
1.KNN是分类算法

2.监督学习

3.喂给它的数据集是带label的数据,已经是完全正确的数据

1.K-Means是聚类算法

2.非监督学习

3.喂给它的数据集是无label的数据,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序

没有明显的前期训练过程,属于memory-based learning有明显的前期训练过程
K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为cK的含义:K是人工固定好的数字,假设数据集合可以分为K个簇,由于是依靠人工定好,需要一点先验知识

KNN算法是分类算法,分类算法肯定是需要有学习语料,然后通过学习语料的学习之后的模板来匹配我们的测试语料集,将测试语料集合进行按照预先学习的语料模板来分类

Kmeans算法是聚类算法,聚类算法与分类算法最大的区别是聚类算法没有学习语料集合。

想要了解更多相关知识,请关注 html中文网!!

以上就是knn算法和kmeans算法的区别是什么?的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » 其他答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏