聚类问题是机器学习中无监督学习的典型代表,在数据分析、模式识别的很多实际问题中得到了应用。我们知道,分类问题是机器学习中最常见的一类问题,它的目标是确定一个物体所属的类别。分类问题和聚类问题一个最重要的区别在于分类问题有标签,学习过程实际就是程序不断学习各个标签特点的过程,而聚类问题是一种无监督学习问题,我们事先并不知道这些事物一共多少个类,每个事物的所属类别,我们需要让程序基于一定的规则,自动地将事物分为我们需要的类。
我们在进行聚类分析的时候,需要确定无监督学习算法需要决定的三个问题:
1.分成几类?
2.样本之间的距离度量方式?
3.聚类策略?
下面,我们来看一些常用的聚类算法:
一、K-Means
K-Means聚类又叫K均值聚类,是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
K-Means算法过程:
1.输入数据 D={
x1,x2,x3,...,xm}D=\begin{Bmatrix}x_1,x_2,x_3,...,x_m\end{Bmatrix}D={
x1,x2,x3,...,xm},聚类的簇数为K,最大迭代次数为N;
2.从DDD中随机选择K个样本作为初始的k个质心:{
u1,u2,u3,...,uk}\begin{Bmatrix}u_1,u_2,u_3,...,u_k\end{Bmatrix}{
u1,u2,u3,...,uk};
3.对于n=1,2,3,...,Nn=1,2,3,...,Nn=1,2,3,...,N:
a.将簇划分CCC初始化为:Ct=∅,t=1,2,...,KC_t=\varnothing,t=1,2,...,KCt=∅,t=

本文详细介绍了K-Means聚类算法及其变种,包括K-Means++、elkan K-Means和MiniBatch K-Means。K-Means是迭代求解的聚类算法,依赖初始质心选择,存在K值选择困难和计算量大的问题。K-Means++通过优化质心选择降低随机性。elkan K-Means利用三角不等式提高效率。MiniBatch K-Means通过抽样加速收敛,适合大数据集。
最低0.47元/天 解锁文章
591

被折叠的 条评论
为什么被折叠?



