二者区别

K均值和KNN算法(学习笔记)

(上图参考https://www.cnblogs.com/peizhe123/p/4619066.html

K均值

学完吴恩达机器学习K均值算法的课程,做一下总结。

首先k-means是一个聚类算法,属于无监督学习。我们只知道数据,但没有任何标签,需要我们找出数据本身的data structure。

---------------------------------------------------------------------------------------------------------

先确定一个K值(分成K类,可能不是最优,后期可调整)后具体实现方法是:

1. 随机初始化K个μ

    建议直接选择样本点,即K均值和KNN算法(学习笔记)

2. 循环两个步骤

    (1)根据已经标记好的μ(1到k)更新每一个样本x(i)的类别c(i),且该样本点的所属均值为μc(i)。

    (2)重新计算新的μ(1到k)。

3. 优化代价函数至收敛

    K均值和KNN算法(学习笔记)

-------------------------------------------------------------------------------------------------------

至于怎么选择合适的K值,可以尝试不同的K值,然后看谁的J比较小。(感觉很坑)

见下图,随机初始化很影响最后的分类,同一个K值需要尝试多次初始化。(同感觉很坑)

K均值和KNN算法(学习笔记)

KNN

KNN是一个监督的算法,但没有学习的能力,原有的样本是有标签的,所以在判断新的未知类别的样本点时,计算离它最近的K样本,这K个样本中哪个类别多,新样本属于哪个类别。所以有时候不同的K值很影响新样本的类别。

K均值和KNN算法(学习笔记)

图中已知标签的为蓝色和红色的样本,先需要判断绿色点属于蓝色还是红色,可以看到不同K值,结果不同。(感觉就是一个充满了坑的算法)

但是有理论能够证明KNN的合理性,一种证明方法是用密度估计证明,以后有空再更。

相关文章: