首页 > 编程知识 正文

k均值聚类算法实例,kmeans图像分割

时间:2023-05-05 04:05:13 阅读:152282 作者:979

本科的毕业设计,在这里进行总结。

1. 聚类概念

目前学术界对聚类没有具体的定义。 目前认知度最高的观点是聚类是一种无监督的分类手段。 无标签数据集可以按照聚类分析中设置的相似性度量进行分类,形成多个聚类,满足实验的分析需要。 聚类本身是一种主观的、有效益的研究手段,没有严格意义上的对错之分,只有“类内相似与类外隔绝”的基本标准。 1974年,Everitt对聚类做出了基础性定义。 基于任一相似度准则,同一类型聚类的样本数据具有相似特性,不同类型聚类的样本数据不相似。 相似度的标准取决于研究所需的实验效果。 集群是数据集中相似采样点的集合。 集群要求同类型集群中点相对密集,不同类型集群之间的点最小距离大于任意两个同类型集群点的距离。

1.1 基于划分的聚类算法

基于划分的聚类算法的基本思想是将数据集内的采样点划分为若干子集(聚类),每个采样点只属于一个子集(聚类),数学表达如下。 要划分簇,需要预先给出簇的数量或簇中心,然后根据相似性度量取值的结果进行划分,使数据值接近簇中心。 设定聚类收敛准则,通过迭代计算更新聚类中心,进一步划分数据,在目标函数收敛时达到理想的聚类效果。

1.2 基于层次的聚类算法

基于层次的聚类算法的基本思想是对数据样本进行层次分解。 该算法是一种树结构算法,基本思想是通过计算所属不同类簇的数据之间的相似性度量,构建嵌套簇树。 根据树型结构,可以分为凝聚型层次聚类(agglomerativehierarchicalclustering )和分裂型层次聚类(integrativehierarchicalclustering )两种类型。 凝聚型层次聚类运算形式为自下而上,即每个数据对象配置成不同的聚类,通过相似性度量计算逐渐融合相近的聚类,融合成一个类,或达到某个阈值后结束。 相比之下,分裂型层次集群是自上而下的,所有数据对象都放在同一个集群中,每次运算都将较大的集群分类为较小的集群。 通过将每个数据对象放在不同的类中或迭代直到达到收敛条件来完成。 数学的形式如下。

1.3 基于密度的聚类算法

基于密度的聚类算法创新性地提出了数据集是低密度区域和高密度类簇集合的新识别角度。 基于密度的聚类算法的核心思想是,如果数据样本之间的密度高于一定阈值,则继续进行分割。 这意味着每个群集必须包含一定密度的数据点。

1.4基于网格的聚类算法

基于网格的聚类算法将整个数据集划分为数量有限的独立单元,构成可以实现聚类的网络结构。 所有的数据处理都是在网络结构上实现的。 该算法的优点是运算速度快,可以组合多种聚类算法形成不同的聚类结果。

2 基于K-Means算法的图像分割实验

k均值算法属于基于划分的聚类算法,具有易实现、分割效果好等优点,在各个领域具有广阔的应用前景。 k均值算法的基本步骤如下。

(1)根据样本特征设置k个聚类中心。

(2)计算每个聚类中心附近的像素及其中心的相似性度量,将像素分割为相似性度量值最大的聚类,计算每个聚类的数据平均值。

)3)将该平均值作为新的聚类中心,进行迭代计算。 当优化函数满足收敛条件时,即聚类中心点不再更新时,停止计算,得到聚类结果。

该算法以误差平方和作为判定聚类中心是否发生了变化的评价标准。 计算与每个簇内所含采样点中心的欧式距离的平方,即每个簇的误差。 根据初始设定的集群数,分类的集群不同。 在两次初始参数设置不同的实验中,误差平方和越小分割效果越好。 在同一实验中,前后2次的误差平方和在很小的范围内变动时,视为已收敛并结束运算。 算法如下。

3. 实验结果

取每张样品图像的聚类数从2到9,逐一比较叶图像的分割结果,实验结果如图所示。

稍后传递matlab代码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。