深度结合K‑means和PSO的聚类方法与流程

文档序号:11234468阅读:5960来源:国知局
深度结合K‑means和PSO的聚类方法与流程

本发明涉及一种聚类方法,具体地涉及一种深度结合k-means和pso的聚类方法,具有更好的聚类效果和收敛速度。



背景技术:

聚类分析直观来说就是将众多对象聚为一个个的簇,其中有相同聚类特征的在同一个簇,特征差异明显的对象居于不同的簇。聚类分析适用于很多不同类型的数据集合。模式识别、数据分析、图像处理和市场研究等众多应用领域对聚类算法提出了迫切需求。聚类分析的主要目标是得到一个全局较优聚类结果。作为无监督学习一个典型的面向原型的聚类算法,k-means算法虽然简单实用,但不可避免存在一些初始化方法等导致的缺陷。许多改进算法譬如k-meas++、二分k-means等已经相继被提出。预处理技术也是其中频繁使用的提高全局收敛性的一种方法。

作为一种典型的基于群体智能的全局优化算法,粒子群算法(pso)起源于的对鸟群觅食的行为研究。它是一种具有较强的全局收敛性和鲁棒性的全局随机搜索算法,并且已经被广泛应用到数据挖掘、机器学习、化学工程、经济调度分配以及非线性规划等众多优化领域。

omran等在2002年提出了一种基于pso的无监督图像聚类算法,它是最早的基于pso的聚类算法。merwe等随后提出了一种结两种算法的基本策略,并且组合均值聚类和粒子群算法进行聚类分析,取得了较好的聚类效果。但是存在以下缺陷:

1、pso算法在迭代过程中种群多样性会丧失;

2、多种群构建必然导致复杂的时间复杂度和较慢的收敛速度;

3、往往没有过多考虑实际场景,实际应用效果差。



技术实现要素:

针对上述存在的技术问题,本发明目的是:提供了一种深度结合k-means和pso的聚类方法,使用k-means进行初始化,利用聚类过程中的簇构建多种群pso算法,采用轻量级的多种群pso,并且采用恰当方式对粒子速度进行限幅,具有更好的聚类效果和收敛速度。

本发明的技术方案是:

一种深度结合k-means和pso的聚类方法,包括以下步骤:

s01:使用k-means算法对粒子群算法中的粒子进行初始化;

s02:根据适应度函数计算适应度值,更新粒子群算法迭代的学习部分和均值部分;

s03:利用簇构建多种群pso算法,用簇中心代表一个簇,更新粒子速度和位置;

s04:判断是否满足迭代停止条件,若满足,输出最优粒子;否则返回步骤s02,继续迭代。

优选的,所述步骤s02中适应度函数为:

mj,d(zp,mj)分别表示簇的中心和欧氏距离,nc,cj分别表示簇的总个数及分属于各个簇的对象数量。

优选的,所述步骤s02中粒子群算法的核心迭代方程为:

vi(t+1)=vi(t)+c1r1(pbesti(t)-xi(t))+c2r2(gbest(t)-xi(t))

xi(t+1)=x(t)+v(t+1)

其中,c1,c2是学习因子,r1,r2是[0,1]间的随机数,vi(t)和xi(t)分别表示粒子i第t代的速度和位置,pbesti(t)和gbesti(t)分别表示粒子i第t代的历史最优位置和种群最优位置。

优选的,所述步骤s03中粒子速度核心迭代方程变为如下部分:

其中,cbesti(t)表示每个子群的历史最优部分,每次迭代由均值的适应度决定更新与否,viold(t)表示上文所述经典粒子速度的更新公式,本发明在其基础上增加了一项cbesti(t),c3,r3分别是学习因子和[0,1]之间的随机数。

优选的,对粒子速度和位置进行限幅,限幅方式为:计算训练样本的位置空间为[-xmax,xmax],如果迭代过程中粒子位置超过这个范围,则设为区间端点;粒子最大速度设为vmax=vk×xmax,vk代表速度限幅系数,那么粒子更新的速度由以下公式决定:

优选的,所述停止条件为给定的迭代次数或全局最优值不在变化。

本发明首先通过实验过程初步验证pso及k-means算法的有效性,然后分别采用本发明中的算法及其他相关联的三种算法对有标签数据及无标签数据进行有监督学习和无监督学习,并通过熵、sse等指标评估算法优劣。

与现有技术相比,本发明的优点是:

1、使用二分k-means方法初始化簇中心,能大大提高收敛速度。

2、再结合pso算法优化k-means的过程中,充分利用k-means表现出的多种群特征,构建多种群pso算法,能大大降低优化过程中种群多样性的丧失,提高粒子群算法的全局收敛性。

3、在计算细节上,首先在构建多种群的迭代过程中,采用轻量级但行而有效的计算方法;其次是对粒子飞行速度和位置进行限幅以适应实际情况。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为本发明聚类方法的流程图;

图2为k-means方法的流程图;

图3为pso优化案例图;

图4为pso的收敛结果;

图5为kmeans、pso、bpsokm、dypsokm(本发明)聚类结果收敛速度效果图;

图6为4种典型的聚类结果效果图。

具体实施方式

以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。

实施实例:

如图1所示,本发明的一种深度结合k-means和pso的聚类方法主要分为数据处理、粒子初始化、算法迭代,算法评估四大部分。

一、首先是数据处理部分,选取数据集,评估数据集分为有标签数据集和无标签数据集。选取的主要数据集特征如下表:

二、使用k-means对粒子群算法中一个粒子进行初始化。k-means算法的主要流程图如图2所示。为展示k-means算法陷入局部最优的缺陷,设定k=4,运行k-means算法。

k-means算法中对象与簇中心的距离为dist(ci,x)=||ci,x||、簇中心计算公式为判别准则sse:

上式中,||ci,x||表示对象和簇中心的欧拉距离,m表示簇ci的对象数量,sse表示k个簇种误差平方和。

根据适应度函数计算适应度值,更新粒子群算法迭代的学习部分和均值部分;

适应度函数如下:

mj,d(zp,mj)分别表示簇的中心和欧氏距离;nc,cj分别表示簇的总个数及分属于各个簇的对象数量。适应度函数与sse本质上并无不同,同样是表征簇的聚合度的函数。

粒子群算法的核心迭代方程为:

vi(t+1)=vi(t)+c1r1(pbesti(t)-xi(t))+c2r2(gbest(t)-xi(t))

xi(t+1)=x(t)+v(t+1)

其中,c1,c2是学习因子,r1,r2是[0,1]间的随机数,vi(t)和xi(t)分别表示粒子i第t代的速度和位置,pbesti(t)和gbesti(t)分别表示粒子i第t代的历史最优位置和种群最优位置。

粒子更新速度由3部分决定。第一部分是粒子上代最优位置,能够平衡算法的全局搜索和局部开发能力;第二部分是粒子历史最优部分,第三部分是全局最优部分,分别表现了粒子向历史学习和社会学习趋向。简称为自知部分、历史部分、社会部分。这正是粒子群算法群体智能的体现。

三、利用簇构建多种群pso算法,用簇中心代表一个簇,更新粒子速度和位置;利用均值聚类中表现出的多种群特性,构建多种群粒子群算法对粒子进行迭代,以提高聚类效果。每一个簇代表一个种群,而且每个簇的中心能粗密度地代表一个簇,用一个簇的中心代表一个簇很多情况下能够起到相当好的效果,可以起到计算复杂度以及收敛速度和聚类效果的综合平衡。

粒子速度的核心迭代方程变为如下部分:

其中,cbesti(t)表示每个子群的历史最优部分,每次迭代由均值的适应度决定更新与否,viold(t)表示上文所述经典粒子速度的更新公式,本发明在其基础上增加了一项cbesti(t),c3,r3分别是学习因子和[0,1]之间的随机数。

四、判断是否满足迭代停止条件,若满足,输出最优粒子;否则返回步骤s02,继续迭代。停止条件为给定的迭代次数或全局最优值不在变化。

五、算法评估

采用有监督评估和无监督评估两类方法。无监督评估将采用sse、ssb、tss、熵、纯度等方法;有监督评估将统计四种方法聚类效果图样。

ssb、tss分别表示组平方和及总平方和,定义分别如下:

tss=ssb+sse

整个聚簇结果的熵由以下3个公式决定:

pij=mij/mi

其中,mi和mij分别表示属于簇i的对象数量和簇i中实际属于簇j的对象数量;每个簇的熵由ei决定,e代表整个分簇的熵。

聚簇的纯度由以下两个公式决定:

因为本发明算法主体将采用pso算法优化,为了显示pso算法有着更好的全局收敛性,特别选取一个有4个局部最优解、一个全局最优解的函数进行实验,函数图示如图3,图4显示了pso的收敛结果,可以看出在拥有众多局部最优解的情况下,pso算法还是收敛到全局最优解。

将分别采用合适的数据集对所述四种方法kmeans、pso、bpsokm、dypsokm(本发明方法)进行聚类,最后比较它们的收敛速度和聚类效果。其聚类效果分别采用有监督的和无监督的方法进行评估。在这之前,必须对算法所涉及到的参数进行设置,见下表:

其中n代表种群规模,k代表聚类个数,vk代表速度限幅系数。限幅方式为:计算训练样本的位置空间为[-xmax,xmax],如果迭代过程中粒子位置超过这个范围,则设为区间端点;粒子最大速度设为vmax=vk×xmax,那么粒子更新的速度由以下公式决定:

图5给出4种算法的收敛速度曲线图,可以看出dypsokm算法较其它算法有着更快的收敛速度和更小的收敛值。

下表给出了评估聚类有效性的所有结果:

同样的,本发明的算法有较小的sse、较大的ssb、较高的熵和纯度,表明聚类结果有更高的凝聚度和分离度。

图6给出聚类过程中4种聚类效果散点图,并统计10次实验中各个算法出现的频率,见下表。

从中也能看出本发明算法有着更优的性能。

上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1