浅浅认识一下聚类算法

目录

1.聚类算法的简介

2.常见的聚类算法

K-MEANS聚类算法

均值偏移聚类算法

GMM的期望最大化聚类


1.聚类算法的简介

聚类算法是一种典型的无监督学习算法,将相似的样本自动归类到一个类别当中。

计算相似度的方法就包括了欧氏距离法

2.常见的聚类算法

K-MEANS聚类算法

假设有k个质心以及分布了很多个点,哪个点离哪个质心近就划分到那个质心对应的类中,然后之后再在每个类中再求平均值,确定新的质心,如此迭代下去直至收敛。

例子:

解决野火问题时,救活人员以及野火所在的位置大致可以看为一个整体,当我们要在野外部署EOC使得能够覆盖到的救活人员和野火要尽量的多的范围,而且我们要尽量减少成本,即EOC的数量应该尽可能的少。在这种情况下,我们使用K均值算法。假设有k个EOC,计算人员到达每个EOC的距离,距离短的就分到相应的类别里,在这些分类点中,我们通过取组中的所有向量的均值重新计算出EOC(质心)的位置。

浅浅认识一下聚类算法_第1张图片       浅浅认识一下聚类算法_第2张图片

 浅浅认识一下聚类算法_第3张图片         浅浅认识一下聚类算法_第4张图片

步骤:

  1. 设置k个点作为聚类中心;
  2. 计算每个点到所有聚类中心的距离,其中距离最短的点就作为该点所属的类别,以此完成第一次分类;
  3. 在第一次分类后重新计算质心的距离,即求各个点位置坐标的平均值;
  4. 重复上述过程直至收敛。

模型评估

误差平方和

SSE=\sum_{i=1}^{k}\sum_{p\in C_{i}} \mid{p-m_{i}}^{2}\mid

浅浅认识一下聚类算法_第5张图片

SSE是松散度的衡量,所以SSE越小越好。下图中,左边区域的SSE小于右边,所以左边更好。 


均值偏移聚类算法

均值偏移聚类算法是一种基于滑动窗口的算法,假设我们的窗口为一个以A点为中心,以r为半径的圆形区域,不断移动圆心从而使得圆形区域包围的点越来越多,直至收敛。其中移动圆心为圆形区域内的点的平均值,使得圆形区域逐渐向更高的点密度移动,直至圆形区域内包含的点数不再增加。

  1. 设置多个滑动窗口,通过计算滑动窗口里面点的平均位置确定新的圆心,不断移动圆心使得每个滑动窗口包含的点数尽量多。
  2. 当多个滑动窗口有重叠时,包含点数最多的保留。
  3. 数据点根据他们所在的滑动窗口聚类。

⭐:确定半径是关键!

GMM的期望最大化聚类

知识点解析:

1.极大似然估计:

设样本服从正态分布 N(μ,σ2) ,则似然函数为:

L\left(\mu, \sigma^{2}\right)=\prod_{i=1}^{N} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}}

目的:求解参数μ,σ2

  • 首先我们要对似然函数求对数

\ln L\left(\mu, \sigma^{2}\right)=\sum_{i=1}^{N} \ln \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}}

  • 对参数求导,再令导数为0,这样求出的点是似然函数的极值点

\left\{\begin{array}{l} \frac{\partial \ln L\left(\mu, \sigma^{2}\right)}{\partial \mu}=\frac{1}{\sigma^{2}} \sum_{i=1}^{n}\left(x_{i}-\mu\right)=0 \\ \frac{\partial \ln L\left(\mu, \sigma^{2}\right)}{\partial \sigma}=-\frac{n}{2 \sigma^{2}}+\frac{1}{2 \sigma^{4}} \sum_{i=1}^{n}\left(x_{i}-\mu\right)^{2} \end{array}\right.

       解的:

\left\{\begin{array}{l} \hat{\mu}=\bar{x}=\frac{1}{n} \sum_{i=1}^{N} x_{i} \\ \hat{\sigma}^{2}=\frac{1}{n} \sum_{i=1}^{N}\left(x_{i}-\bar{x}\right)^{2} \end{array}\right.

  •  求解似然函数导数方程

2.GMM原理

不同于K-MEANS聚类算法,高斯混合模型是给出每个样本被分配到每个簇的概率,最后从中选取一个最大的概率对应的簇作为该样本被分配到的簇

我们假设存在 k 个簇,且每一个簇均服从高斯分布。我们以概率 \pi_{k} 随机选择一个簇 k ,并从该簇的分布中采样样本点,如此得到观测数据X ,则其似然函数为:

\ln P(X \mid \theta)=\ln P\left(X \mid \pi, \mu, \sum\right)=\sum_{n=1}^{N} \ln \sum_{k=1}^{K} \pi_{k} N\left(x_{n} \mid \mu_{k}, \Sigma_{k}\right)

参数计算方法参考EM算法与GMM(高斯混合聚类) - 知乎 (zhihu.com)

  1. 选择簇的数量并初始化每个簇的高斯分布参数(均值和方差);
  2. 给定每个簇的高斯分布,计算每个数据点属于每个簇的概率;
  3. 基于这些概率我们计算高斯分布参数使得数据点的概率最大化,可以使用数据点概率的加权来计算这些新的参数,权重就是数据点属于该簇的概率;
  4. 重复迭代2和3直到在迭代中的变化不大。

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