十三: 聚类

tech2024-07-17  72

1 无监督学习

我们有一些没有带任何标签的数据,即系列样本x并没有对应的y,我们需要将这些x输入到一个算法中,去寻找数据的内部结构;

                                                    

如上图,训练数据点可以分为两个数据点集(簇),这类点集分类算法成为聚类算法

 

2 K-Means算法

概念:最普遍的迭代式聚类算法,输入未标记的数据集合,通过算法将数据聚类成不同的组;

算法实现流程:

    1. 选取k个随机点(聚类中心)

    2. 对每一个样本数据,将其与距离最近的聚类中心关联,关联于同一个点的数据归为一组

    3. 计算组平均值,将组中心点移动到平均值的位置

    4. 重复2-3步骤直至均值稳定

伪代码:

      

       (c(i)代表第i个样本距离最近的簇索引, 代表聚类中心)

示例,如下数据集经多次迭代后可分为三个组:

   

 

 

3 优化目标

代价函数(畸变函数):

                  

                            (c(i)代表第i个样本距离最近的簇索引, 代表聚类中心)

目标为:             

算法中的两个迭代即是对c和μ的代价降低;

 

 

4 随机初始化

选择建议:

   1. K<m

   2. 随机选取K个样本,设定其为K个聚类中心

建议在训练时选取不同随机初始中心,多次运行算法,选取代价函数最小的结果,因为单次结果可能只会停留在局部最小值如下图,但是在K较大的情况下,也不一定有很好的效果:

                             

 

 

5  选择聚类数

方式一: 人工按照算法需求确认,如衣物号码目标为S,M,L,可选取聚类数3.

方式二:肘部法则,通过更新K数目,计算其相应的代价,可观察到在某一个数目之后,其代价降低变缓,那么我们可以选取这个节点数为较为合适的聚类数

                                  

 

 

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

文章内容学习整理于吴教授公开课课程与黄博士笔记,感谢!

 

最新回复(0)