目录
1.聚类算法的简介
2.常见的聚类算法
K-MEANS聚类算法
均值偏移聚类算法
GMM的期望最大化聚类
1.聚类算法的简介
聚类算法是一种典型的无监督学习算法,将相似的样本自动归类到一个类别当中。
计算相似度的方法就包括了欧氏距离法。
2.常见的聚类算法
K-MEANS聚类算法
🖊假设有k个质心以及分布了很多个点,哪个点离哪个质心近就划分到那个质心对应的类中,然后之后再在每个类中再求平均值,确定新的质心,如此迭代下去直至收敛。
例子:
解决野火问题时,救活人员以及野火所在的位置大致可以看为一个整体,当我们要在野外部署EOC使得能够覆盖到的救活人员和野火要尽量的多的范围,而且我们要尽量减少成本,即EOC的数量应该尽可能的少。在这种情况下,我们使用K均值算法。假设有k个EOC,计算人员到达每个EOC的距离,距离短的就分到相应的类别里,在这些分类点中,我们通过取组中的所有向量的均值重新计算出EOC(质心)的位置。
步骤:
- 设置k个点作为聚类中心;
- 计算每个点到所有聚类中心的距离,其中距离最短的点就作为该点所属的类别,以此完成第一次分类;
- 在第一次分类后重新计算质心的距离,即求各个点位置坐标的平均值;
- 重复上述过程直至收敛。
模型评估
误差平方和
SSE是松散度的衡量,所以SSE越小越好。下图中,左边区域的SSE小于右边,所以左边更好。
均值偏移聚类算法
🖊均值偏移聚类算法是一种基于滑动窗口的算法,假设我们的窗口为一个以A点为中心,以r为半径的圆形区域,不断移动圆心从而使得圆形区域包围的点越来越多,直至收敛。其中移动圆心为圆形区域内的点的平均值,使得圆形区域逐渐向更高的点密度移动,直至圆形区域内包含的点数不再增加。
- 设置多个滑动窗口,通过计算滑动窗口里面点的平均位置确定新的圆心,不断移动圆心使得每个滑动窗口包含的点数尽量多。
- 当多个滑动窗口有重叠时,包含点数最多的保留。
- 数据点根据他们所在的滑动窗口聚类。
⭐:确定半径是关键!
GMM的期望最大化聚类
📕知识点解析:
1.极大似然估计:
设样本服从正态分布 N(μ,σ2) ,则似然函数为:
目的:求解参数μ,σ2
- 首先我们要对似然函数求对数
- 对参数求导,再令导数为0,这样求出的点是似然函数的极值点
解的:
- 求解似然函数导数方程
2.GMM原理
🖊不同于K-MEANS聚类算法,高斯混合模型是给出每个样本被分配到每个簇的概率,最后从中选取一个最大的概率对应的簇作为该样本被分配到的簇。
我们假设存在 k 个簇,且每一个簇均服从高斯分布。我们以概率
随机选择一个簇 k ,并从该簇的分布中采样样本点,如此得到观测数据X ,则其似然函数为:
参数计算方法参考EM算法与GMM(高斯混合聚类) - 知乎 (zhihu.com)
- 选择簇的数量并初始化每个簇的高斯分布参数(均值和方差);
- 给定每个簇的高斯分布,计算每个数据点属于每个簇的概率;
- 基于这些概率我们计算高斯分布参数使得数据点的概率最大化,可以使用数据点概率的加权来计算这些新的参数,权重就是数据点属于该簇的概率;
- 重复迭代2和3直到在迭代中的变化不大。