《数据分析实战》总结二之聚类算法:K-Means,EM

1 K-Means

K-Means 是一种非监督学习,解决的是聚类问题。
K 代表的是 K 类,Means 代表的是中心,本质是确定 K 类的中心点,当找到了这些中心点,也就完成了聚类。

需要解决三个问题:

1 如何确定 K 类的中心点?

其中包括了初始的设置,以及中间迭代过程中中心点的计算。
在初始设置中,会进行 n_init 次的选择,然后选择初始中心点效果最好的为初始值。
在每次分类更新后都需要重新确认每一类的中心点,一般采用均值的方式进行确认。

2 如何将其他点划分到 K 类中?

可以采用欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离等。
对于点的划分,就看它离哪个类的中心点的距离最近,就属于哪一类。

3 如何区分 K-Means 与 KNN?

第一,这两个算法解决数据挖掘的两类问题:K-Means 是聚类算法,KNN 是分类算法。

第二,这两个算法分别是两种不同的学习方式:K-Means 是非监督学习,也就是不需要事先给出分类标签,而 KNN 是有监督学习,需要给出训练数据的分类标识。

第三,K 值的含义不同。K-Means 中的 K 值代表 K 类。KNN 中的 K 值代表 K 个最接近的邻居。

例子:Kmeans是选老大,风水轮流转,直到选出最佳中心老大;Knn则是小弟加队伍,离那个班相对近,就是那个班的

工作原理:

1 选取 K 个点作为初始的类中心点,这些点一般都是从数据集中随机抽取的;

2 将每个点分配到最近的类中心点,这样就形成了 K 个类,然后重新计算每个类的中心
点;

3 重复第二步,直到类不发生变化,或者你也可以设置最大迭代次数,这样即使类中心点
发生变化,但是只要达到最大迭代次数就会结束。

2 EM聚类

EM 的英文是 Expectation Maximization,也叫最大期望算法。

工作流程:

三个步骤:初始化参数、观察预期、重新估计。

以等分某种东西为例:先分一部分到容器 A 中,然后再把剩余的分到容器 B 中,再来观察 A 和 B 里的东西是否一样多,哪个多就匀一些到少的里面去,然后再观察 A 和 B 里的是否一样多……整个过程一直重复下去,直到份量不发生变化为止。

可以看到,首先是先给每个容器初始化一些菜量,然后再观察预期,这两个步骤实际上就是期望步骤(Expectation)。
如果结果存在偏差就需要重新估计参数,这个就是最大化步骤(Maximization)。
这两个步骤加起来就是 EM 算法的过程。

概念:最大似然,就是最大可能性的意思,指的就是一件事情已经发生了,然后反推更有可能是什么因素造成的。用一男一女比较身高为例,假设有一个人比另一个人高,反推他可能是男性;
最大似然估计是一种通过已知结果,估计参数的方法。

EM 算法原理:这是一种求解最大似然估计的方法,通过观测样本,来找出样本的模型参数;(E 步骤通过旧的参数来计算隐藏变量,M 步骤通过得到的隐藏变量的结果来重新估计参数。直到参数不再发生变化,得到我们想要的结果。)
再回过来看等分某种东西这个例子,实际上最终我们想要的是容器A 和容器B中的份量,可以把它们理解为想要求得的模型参数,然后通过 EM 算法中的 E 步来进行观察,然后通过 M 步来进行调整 A 和 B 的参数,最后让容器 A 和容器 B 的参数不再发生变化为止。

EM聚类原理:EM 算法最直接的应用就是求参数估计;
如果把潜在类别当做隐藏变量,样本看做观察值,就可以把聚类问题转化为参数估计问题,这也就是 EM 聚类的原
理。

发布了235 篇原创文章 · 获赞 264 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41594698/article/details/102768754