k均值聚类算法优缺点_K-均值聚类算法(K-Means)
一种无监督学习方法称为k均值聚类(k-means),它专门用于分析未预先分组的数据集(即没有被指定类别或群组标识的数据)。k均值算法的主要目标是识别出数据中具有代表性的k个群组(其中k是一个预先设定的参数)。为了实现这一目标,该算法通过反复利用提供的特征信息来进行迭代优化,在每一步都将每个样本分配至这k个簇中的某一个。根据样本之间的相似度特性来进行分组。最终得到的k均值聚类结果是:
1.K簇的质心,可用于标记新数据
2.训练数据的标签(每个数据点分配给一个集群)
一、k-means简述
1、聚类
"类别"是指具有相似特征的群组;"聚类"则是指将待处理的数据按照某种标准划分为若干类别;使得同一类别内的数据尽可能地相似;而不同类别之间的数据差异较大;这样的过程属于无监督学习范畴;而"聚类分析"则是一种基于相似性度量的方法;它旨在使同类别的对象在属性空间中具有较高的相似度;而异类别的对象则呈现出较大的差异性。
2、K-Means
对样本集D = {x1,x2,…,xm}.K-Means算法就是针对聚类划分C = {C1,C2,…,Ck}最小化平方误差;

其中

μ_{i}表示的是数据集中的第i个簇C_{i}的所有样本点的均值向量。通过分析下面所述的公式(1),可以看出该公式反映了数据点在围绕其所在簇中心(即均值向量)分布的情况。其中J(C_{i}, μ_{i})的具体计算方法如式(1)所示:J(C_{i}, μ_{i}) = \frac{1}{|C_{i}|} \sum\limits_{x∈C_i} ||x - μ_i||^2当J(C_{i}, μ_{i})较小时,则表明同一簇中的样本之间具有较高的相似性。
基于最小二乘法和拉格朗日乘数法原理的基础上,在每个类别中取所有数据点的算术平均作为各类别聚类中心的位置参数,并以确保算法收敛为目标,在迭代过程中要求最终确定的各类别聚类中心保持稳定不变
三、工作流程
随机选取K个样本作为聚类中心;
计算各样本与各个聚类中心的距离;
将各样本回归于与之距离最近的聚类中心;
求各个类的样本的均值,作为新的聚类中心;
当类中心不再变化或达到预设迭代次数时,则算法终止;否则返回第二步
四、k-means算法的描述如下
每当某一点的聚类分配结果发生变化时,在整个数据集中依次针对每个质心计算其与对应数据点之间的距离,并根据这些距离将该数据点重新分配到最近的那个簇中;接着在每一个新的簇中重新计算其成员的所有平均位置,并将此平均位置作为新的质心位置
二、wine数据集的红酒K-Means聚类
导入数据

数据预处理

数据聚类

(1)对比真实标签和聚类标签求取FMI

(2)在聚类数目为2~10类时,确定最优聚类数目

数据越接近1更好所以由上图可得聚类最优为3类,与k-means聚类结果相同
