一种基于商业数据的聚类系统的制作方法

文档序号:11200818阅读:300来源:国知局

本发明涉及软件开发领域,尤其涉及一种基于商业数据的聚类系统。



背景技术:

数据挖掘是从海量的、有噪声干扰的、不完全的、模糊的、随机的数据中,提取隐含的、事先不知道的,而又潜在有用的信息和知识的—个过程。从商业的角度来说,数据挖掘为企业提供了许多商业价值。当今市场和信息渠道的多样化导致了市场的激烈竞争,企业正面临世界范围的竞争。又加之各个行业中的业务都进行计算机处理,在各个行业领域都产生了大量的相关数据,企业取得成功的关键是留住已有的客户并且吸引新的客户。企业需要对数据库中的海量业务数据进行有价值的数据抽取、分析转换和模型化处理后,·得到帮助判断的关键性数据,为商业决策提供真正有价值的信息,这有利于商业运作,提高竞争力,进而获得利润。比如国内外有些学者对金融、证券、保险等行业信息进行数据挖掘,研究客户的信用度,进而帮助商业管理者进行决策。

决策支持技术和数据挖掘技术是现代信息技术。现在这两种技术已经发展的比较完善了。现在决策支持技术大量的运用在各种的商业领域,如金融、证券以及其他的投资。数据挖掘技术也是现代非常热的一种分析技术。数据挖掘大量的运用在零售业,文本分析等。

数据挖掘技术是现代计算机领域常用的技术,开始时数据挖掘存在存在一些固定模式如:聚类分析比较多的用于人群的类别分析,关联分析大多是用于超市的购物篮分析,主成分分析比较多用于指标的降维。后来计算机人对数据挖掘技术进行了许多改进,并写出一些数据挖掘的改进算法。这使数据挖掘符合更多的行业。在国内外,数据挖掘技术已有许多用于房地产行业,用得比铰多的有客户关系管理中的客户对象分析,如客户聚类、商品房聚类等,并未用于对楼盘的销售,如楼盘的定价,楼盘的朝向,楼层等分析。

随着计算机学科的逢勃发展,计算机已越束越多地进入了决策领域,一门新的称之为“决策支持系统"(dss)的学科也随之应运而生,自70年代提出决策支持系统的概念以柬,决策支持系统在理论研究和应用研究方面都取得了长足的进展,许多院校都开始研究决策支持系统,许多企业在建立mis的过程中也同时建立dss。中国科学院的史忠植研究员把数据挖掘和决策支持系统结合使用,建立了许多人工智能的模型。随着多年的发展,如今决策支持技术已经大量使用金融,证券领域。在房地产领域也有许多研究者研究dss在这个领域上的应用。但大多数只用于国外的房地产金融投资决策,还未发现于用于房地产销售上的决策。

融合聚类挖掘分析算法,首先采用主成分分析方法进行特征选择,获取对算法有用的属性集合;然后以营销目标为约束条件,对商户进行聚类,获取营销目标下的不同商户分类群;再针对每一类商户,先从底层获取最基础的单层关联规则,然后再采用汇总的数据挖掘技术,获取高支持度和高置信度的强关联规则,作为营销决策依据。通过分析所挖掘出来的规则,对特定分类的商户进行针对性的商品推荐,同时为上层决策提供数据支撑。

目前现有针对商业数据的聚类分析的研究,多采用数据挖掘的思想,基于数据挖掘的营销策略是对终端客户进行分类,根据用户的销量和诚信记录把用户分为多个等级,但这种分级策略只能反应用户的销量信息,把这个分类作为营销策略依据太单薄,只能起一定的辅助作用。更深入地研究是根据客户的资料和历史订单数据对现有商户进行聚类,获取到自主的商户分类,但盲目的聚类会导致商户的分类没有实际意义,或获取的结果是无助于营销目的的。

智能化模糊聚类分析系统,应具有以下功能:

(1)通用性:能让各种用户使用该系统处理各种聚类分析问题。研究的对象可以是社会科学、经济学或自然科学方面的,对象的总体可以是简单的或复杂的。

(2)智能化:能让用户根据需求方便地使用菜单、提示、按钮等,完成对研究对象的数据文件所需进行的各种处理。

(3)自动化:能自动进行数据评判,剔除一些不合理的数据;并能进行模糊聚类分析;自动画出动态聚类分析图;自动确定最佳阈值。

(4)开放性:系统是开放的,可让用户根据需要随时增加新的功能。

以下就是对数据挖掘中的聚类分析的一些典型要求。

(1)可扩展性。许多聚类算法在小数据集(少于200个数据对象)时可以工作很好,但一个大数据库可能会包含数以百万的对象,利用采样方法进行聚类分析可能得到一个有偏差的结果,这时就需要可扩展的聚类分析算法。

(2)处理不同类型属性的能力。许多算法是针对基于区间的数值属性而设计的。但是有些应用需要对其它类型数据,如:二值类型、符号类型、顺序类型,或这些数据类型的组合。

(3)发现任意形状的聚类。许多聚类算法是根据欧氏距离和manhattan距离来进行聚类的。基于这类距离的聚类方法一般只能发现具有类似大小和密度的圆形或球状聚类。而实际上一个聚类是可以具有任意形状的,因此设计出能够发现任意形状类集的聚类算法是非常重要的。

(4)需要(由用户)决定的输入参数最少。许多聚类算法需要用户输入聚类分析中所需要的一些参数(如:期望所获聚类的个数)。聚类结果通常都与输入参数密切相关,而这些参数常常也很难决定,特别是包含高维对象的数据集。这不仅构成了用户的负担,而且也使得聚类质量难以控制。

(5)处理噪声数据的能力。大多数现实世界的数据库均包含异常数据、不明确数据、数据丢失和噪声数据,有些聚类算法对这样的数据非常敏感并会导致获得质量较差的聚类结果。

(6)对输入记录顺序不敏感。一些聚类算法对输入数据的顺序敏感也就是不同的数据输入会导致获得非常不同的结果。因此设计对输入数据顺序不敏感的聚类算法也是非常重要的。

(7)高维问题。一个数据库或一个数据仓库或许包含若干维或属性。许多聚类算法在处理低维数据时(仅包含二到三个维)时表现很好。人的视觉也可以帮助判断多至三维的数据聚类分析质量。然而设计对高维空间中的数据对象,特别是对高维空间稀疏和怪异分布的数据对象,能进行较好聚类分析的聚类算法已成为聚类研究中的一项挑战。

聚类分析是数据挖掘过程中的一种重要手段和工具,聚类分析将数据对象划分为不同类簇,从而使得同一个簇中对象之间具有较高的相似度而不同簇之间相似度较小,它可以发现隐含在数据集中的簇,标识出感兴趣的分布或模式。聚类是一种无监督学习方法,与分类不同,聚类不依赖预定义的类和类标号的训练实例,由于这个原因,聚类是观察式学习,而不是示例式学习。聚类分析已经成功地应用于包括模式识别、数据分析、图像处理、生物基因信息处理以及市场营销等许多领域。我们可以通过聚类分析能够识别对象空间中密集的和稀疏的区域,从而发现隐含在其中的全局的分布规律以及数据属性之间有趣的相互关系。

综上所述,针对现有技术存在的缺陷,特别需要一种基于商业数据的聚类系统,以解决现有技术的不足。



技术实现要素:

本发明的目的是提供一种基于商业数据的聚类系统,自动化程度强,能够对商业数据进行分析,给出准确的判定结果,实用性能优。

本发明为解决其技术问题所采用的技术方案是,

一种基于商业数据的聚类系统,包括以下几个步骤:

1)特征选择或抽取:特征选择从特征集合中选择有效的特征而特征抽取通过一些映射变换方法产生一些新的有用的特征,它们对聚类应用的有效性十分重要,一般来说,理想的特征应该能区分属于不同类簇的模式,抗噪能力强并且容易提取与解释,特征选取的优劣将直接影响后续的分析与决策;

2)聚类算法选择与设计:这一步包含相关的相似度度量方法与聚类准则函数的构建,样本按照它们之间的相似程度被划分为不同类簇,相似度度量方法直接影响聚类的结果,聚类算法都直接与相似性度量相关,有的算法直接在相似度矩阵上进行计算,确定了距离度量方法后,准则函数的构建将聚类划分转为一个最优化问题,聚类算法种类繁多,针对不同领域的不同问题有着不同的相应聚类方法,不同的算法有不同的特性,对相同的数据输入,不同的算法会产生出不同的聚类结果,不同的算法对参数的敏感性不同,参数的好坏对结果的影响往往都比较显著,因此需要对具体问题的特点进行分析,选择和设计合适的聚类策略;

3)聚类有效性验证:给定一个数据集,聚类算法不管结果是否合理总是能给出一个划分,不同的方法会产生不同的划分,对于同一方法,不同的参数设置和不同的样本输入顺序都会影响聚类划分的结果,因此,需要一种有效的评价标准给用户一个聚类结果的可信程度的的度量,这种评估应该是客观并且不偏好某种算法,评估主要有3种:外部有效性评估、内部有效性评估和相关性测试评估;

4)聚类结果解释:聚类的目的是为用户提供有意义的知识,用户希望聚类结果是可理解的、可用的和可解释的从而帮助他们有效解决相关问题,这就要求相关领域专家和领域知识对划分结果进行解释和描述;

快速粒子群优化聚类算法中粒子通过不断调整自己的位置来搜索新解,每个粒子都能记住自己搜索到的最优解,记作pid,以及整个粒子群的最优解pgd,每个粒子都有一个速度,记作vid:

vid(t+1)=ωvid(t)+c1rand()(pid(t)-xid(t))+c2rand()(pgd(t)-xid(t))

其中vid是粒子i在t时刻第d维上的速度,ω为用来控制粒子飞行速度的惯性权重,c1和c2为调节认知成分pid和社会成分pgd对速度更新的贡献的加速度常量,xid为粒子i在t时刻第d维上的位置,rand()为在[0,1]中均匀取值随机数生成函数,则粒子i在t+1时刻的位置为:

xid(t+1)=xid(t)+vid(t+1);

粒子速度向量是驱动整个优化进程的动力,它反映了粒子本身的经验知识以及与其周围邻居之间的社会交互信息,速度更新由三部分组成:第一部分先前速度项vid(t),反映粒子当前速度的影响,联系粒子当前的状态,这一项也被称作动量项,可以防止粒子大幅度的改变搜索方向,平衡全局和局部搜索,第二部分认知成分c1rand()(pid(t)-xid(t)),量化了粒子对于自己先前经验的依赖,从某种意义上说,认知成分类似于个体对于最有利位置的记忆,这一成分影响着粒子朝向自己经验最优值方向搜索,第三部分社会成分c2rand()(pgd(t)-xid(t)),反映整个群体中粒子间的信息共享的影响,引导粒子飞向群体中的最优位置,在这三部分的共同作用下,粒子根据自己的历史经验并利用种群信息共享机制,不断调整自己的位置,以期找到问题的最优解。

进一步,对粒子群优化算法性能影响最为显著的参数为:惯性权重ω、最大速度vmax和加速常数c1,c2:

惯性权重ω:权重函数ω对于粒子群优化算法的收敛性影响较大,ω值大,全局寻优能力强,局部寻优能力弱;反之,则局部寻优能力增强,而全局寻优能力减弱,通过调整ω的大小来控制以前速度对当前速度的影响,通常在算法开始时,可以给ω赋予一较大正值,随着搜索的进行,可以线性地使ω逐渐减小,使粒子群在前期具有较强的全局搜索能力,在后续迭代过程降低移动速度,能够在最优值的邻域内逐步逼近最优解,避免较大的移动速度在优化解邻域产生震荡;

最大速度vmax:由于pso中速度的变化通常是随机的,不受控制的粒子

运动轨迹会使问题空间不断扩大,并最终达到无穷,因此需要在粒子速度空间中的每一维上都设置一个最大速度限制值vmax,当vid>vmax,时,vid=vmax,当vid<-vmax,时,vid=-vmax,它用来对粒子的速度进行限制,使速度控制在[-vmax,vmax]范围内,vmax有利于防止搜索发散,并且可以控制粒子的搜索步长,vmax是一个非常重要的参数,如果vmax值太大,则粒子粒子可能会飞过最优解;若vmax值太小,则粒子可能就无法对局部最优区域以外的区域进行充分探测,导致陷入局部最优,在这里还要注意到惯性权重ω的引入可消除对vmax的需要,因为它们的作用都是维护全局和局部搜索能力的平衡,这样,当vmax增加时,可通过减小ω来达到平衡搜索,而ω的减小可使得所需的迭代次数变小,从这个意义上看,可以将vmax固定为每维变量的变化范围,只对ω进行调节;

加速常数c1,c2:c1,c2是控制粒子的个体经验与社会经验在其运动中所起作用的权重,其中c1控制认知成分对粒子飞行速度的影响,又被称为“认知系数”;c2则反映了社会成分对粒子飞行速度的影响,又称为“社会学习系数”,如果c1=0,则粒子没有自身经验,只有“社会经验”,它的收敛速度可能较快,但在处理较复杂的问题时,容易陷入局部最优,如果c2=0,则粒子没有群体共享信息,只有“自身经验”,这样很难达到全局最优解,然而,较小的c1,c2值使得粒子在离最优解较远的目标区域内徘徊,而较大的c1,c2值则可能导致越过目标区域,大量的实验表明,通常取c1=c2=2.0时算法收敛效果较好。

进一步,基本粒子群算法的流程如下:

step1.初始化粒子种群,随机设定各粒子的初始位置和初始速度;

step2.计算每个粒子的适应度值;

step3.对于每个粒子,将其适应度值与该粒子所经历过的自身最好位置的适应;

度值进行比较,若较好,则将其作为当前粒子的最好位置;

step4.对每个粒子,将其适应度值与全局所经历的最好位置的适应值进行比;较,若较好,则将其作为当前整个种群的全局最好位置;

step5.更新粒子的速度和位置;

step6.如达到结束条件(通常为足够好的适应度值或达到一个预设最大代数);

则停止计算,输出全局最优适应度值,否则返回step2。

进一步,粒子群优化聚类算法;最优化问题根据其目标函数、约束函数的性质以及优化变量的取值等可以分成许多类型,每一种类型的最优化问题根据其性质的不同都有其特定的求解方法,不失一般性,设最优化问题为:

miny=f(x)s.t.x∈s={x|gi(x)≤0i=1,…,m)

其中,yf(x)为目标函数,ig(x)为约束函数,s为约束域,x为n维优化变量,通常最大化问题很容易转换为最小化问题(yf(x)),对于0ig(x)的约束和等式约束也可转换为-0ig(x)的约束。

进一步,混沌思想的粒子群优化聚类算法中混沌运动具有遍历性、随机性和规律性等特点,能在一定范围内按其自身规律不重复地遍历所有状态,因此,利用混沌序列进行优化搜索,其结果优于随机搜索;

混沌搜索过程如下:

第一步,产生一个d维的随机初始向量m0(m01,m02,m03,,md0),其中:m0k∈[0,1],并且各个值之间的差异较小;

第二步,基于初始向量m0,使用logistic方程式迭代产生混沌序列m0,m1,...,mn;

mj+1=μmi(1-mi);

第三步,利用混沌序列公式遍历粒子xi的领域,得到更好的位置xi’;

x′i=xi+r×rand()×mt

其中rand()是随机函数,能产生[-1,1]之间的值,t[0,n],r是粒子xi的领域半径。

进一步,粒子群优化中所有粒子适应度的整体变化情况就可以跟踪和判断粒子群的收敛情况,设粒子群的粒子数目为n,fi为第i个粒子的适应度,favg为粒子群的平均适应度,粒子群的群体适应度方差反映的是粒子群中所有粒子的收敛程度,定义如下:

其中f是归一化定标因子,其作用是限制σ2的大小,f取值可以采用如下公式:

越小,则粒子群越趋向于收敛;σ2为零,则群体适应度几乎相同,表示粒子群优化陷入早熟收敛或者达到全局收敛;反之,适应度不同,则表示粒子群处于随机搜索阶段,由于阈值对于不同问题取值不同,降低了算法的伸缩性,变化情况来发现早熟状态,当σ2的值连续n次未发生变化,则认为粒子群优化算法陷入了早熟,此时对所有粒子的搜索位置进行混沌变异搜索,方法如下:

将当前粒子i位置向量xi通过映射到logistic方程的定义域[0,1]

上,k为层聚类后生成的子簇的数目;

将yi=(yi1,yi2,…,yid)通过logistic方程yn+1=4yn(1-yn),计算得到混沌序列然后映射回原解空间,从而产生一个混沌变量可行解序列当前粒子i位置向量xi混沌转化,公式整理后如式所示:

本发明的优点在于:能自动进行数据评判,剔除一些不合理的数据;并能进行模糊聚类分析;自动画出动态聚类分析图;自动确定最佳阈值,能让用户根据需求方便地使用菜单、提示、按钮等,完成对研究对象的数据文件所需进行的各种处理,适应社会发展的需要,利于社会的发展。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合图示与具体实施例,进一步阐述本发明。

一种基于商业数据的聚类系统,包括以下几个步骤:

1)特征选择或抽取:特征选择从特征集合中选择有效的特征而特征抽取通过一些映射变换方法产生一些新的有用的特征,它们对聚类应用的有效性十分重要,一般来说,理想的特征应该能区分属于不同类簇的模式,抗噪能力强并且容易提取与解释,特征选取的优劣将直接影响后续的分析与决策;

2)聚类算法选择与设计:这一步包含相关的相似度度量方法与聚类准则函数的构建,样本按照它们之间的相似程度被划分为不同类簇,相似度度量方法直接影响聚类的结果,聚类算法都直接与相似性度量相关,有的算法直接在相似度矩阵上进行计算,确定了距离度量方法后,准则函数的构建将聚类划分转为一个最优化问题,聚类算法种类繁多,针对不同领域的不同问题有着不同的相应聚类方法,不同的算法有不同的特性,对相同的数据输入,不同的算法会产生出不同的聚类结果,不同的算法对参数的敏感性不同,参数的好坏对结果的影响往往都比较显著,因此需要对具体问题的特点进行分析,选择和设计合适的聚类策略;

3)聚类有效性验证:给定一个数据集,聚类算法不管结果是否合理总是能给出一个划分,不同的方法会产生不同的划分,对于同一方法,不同的参数设置和不同的样本输入顺序都会影响聚类划分的结果,因此,需要一种有效的评价标准给用户一个聚类结果的可信程度的的度量,这种评估应该是客观并且不偏好某种算法,评估主要有3种:外部有效性评估、内部有效性评估和相关性测试评估;

4)聚类结果解释:聚类的目的是为用户提供有意义的知识,用户希望聚类结果是可理解的、可用的和可解释的从而帮助他们有效解决相关问题,这就要求相关领域专家和领域知识对划分结果进行解释和描述;

受对自然界中群居生物如鸟群、蚁群、鱼群和蜂群等的群体行为研究的启发,人们已经发明了许多群体智能计算模型。在这些模型中,尽管群体中每个个体都非常简单,但是这些简单个体组成的一个群体却表现出十分复杂的涌现行为,这些行为已被广大研究人员成功建模并用于求解大量的复杂的实际问题。

群体智能正是研究这种基于群体行为模型的计算建模和实现的方法。文献指出群体智能的发挥应该遵循以下准则:近邻原则、品质原则、反应多样性、稳定性和适应性原则。典型的群体智能方法有j.kennedy与r.eberthart于1995年提出的粒子群优化算法(pso)和m.dorigo于1997年提出的蚁群算法(aco)。两种算法都体现了群体智能的协作性、简单性、分布性、适应性和鲁棒性等特点,基本模型都是采用启发式随机搜索算法,在全局寻优的过程中,不依赖于梯度信息,对目标函数没有特殊要求,在没有集中控制的情况下,依靠群体之间的信息共享来求解复杂问题。这些方法为模式识别、函数优化、组合优化、数据聚类、图像处理、np问题等复杂问题的求解提供了新的思路。经过十多年的发展,群体智能已经逐渐成为现代计算智能领域的主要研究热点,受到越来越多相关领域的研究人员的关注。特别是粒子群优化和蚁群优化算法已经在很多领域得到了运用,并取得了不错的效果。很多欧美国家都有专门研究群体智能的组织,资助和群体智能有关的科研项目。

粒子群优化(pso)算法作为一种通过对鸟类觅食现象的模拟而提出的群体智能算法,具有记忆粒子最佳位置的能力和粒子间信息共享的机制,即通过种群间个体的合作与竞争来实现对优化问题的求解。在pso算法中,每个优化问题的潜在解可以类比为搜索空间中的一只鸟,称之为“粒子”。所有的粒子都有一个由优化目标函数决定的适应值,每个粒子还有一个速度决定它们飞翔的方向和每一步的位移。然后粒子们就追随当前的最优粒子在解空间中搜索。pso算法需要初始化一群随机粒子(随机解),然后通过迭代找到最优解,在每一次迭代中,粒子通过跟踪两个―极值||来更新自己。第一个就是粒子本身所找到的最优解,称为个体极值。另一个是整个种群目前找到的最优解,称为全局极值。

快速粒子群优化聚类算法中粒子通过不断调整自己的位置来搜索新解,每个粒子都能记住自己搜索到的最优解,记作pid,以及整个粒子群的最优解pgd,每个粒子都有一个速度,记作vid:

vid(t+1)=ωvid(t)+c1rand()(pid(t)-xid(t))+c2rand()(pgd(t)-xid(t))

其中vid是粒子i在t时刻第d维上的速度,ω为用来控制粒子飞行速度的惯性权重,c1和c2为调节认知成分pid和社会成分pgd对速度更新的贡献的加速度常量,xid为粒子i在t时刻第d维上的位置,rand()为在[0,1]中均匀取值随机数生成函数,则粒子i在t+1时刻的位置为:

xid(t+1)=xid(t)+vid(t+1);

粒子速度向量是驱动整个优化进程的动力,它反映了粒子本身的经验知识以及与其周围邻居之间的社会交互信息,速度更新由三部分组成:第一部分先前速度项vid(t),反映粒子当前速度的影响,联系粒子当前的状态,这一项也被称作动量项,可以防止粒子大幅度的改变搜索方向,平衡全局和局部搜索,第二部分认知成分c1rand()(pid(t)-xid(t)),量化了粒子对于自己先前经验的依赖,从某种意义上说,认知成分类似于个体对于最有利位置的记忆,这一成分影响着粒子朝向自己经验最优值方向搜索,第三部分社会成分c2rand()(pgd(t)-xid(t)),反映整个群体中粒子间的信息共享的影响,引导粒子飞向群体中的最优位置,在这三部分的共同作用下,粒子根据自己的历史经验并利用种群信息共享机制,不断调整自己的位置,以期找到问题的最优解。

对粒子群优化算法性能影响最为显著的参数为:惯性权重ω、最大速度vmax和加速常数c1,c2:

惯性权重ω:权重函数ω对于粒子群优化算法的收敛性影响较大,ω值大,全局寻优能力强,局部寻优能力弱;反之,则局部寻优能力增强,而全局寻优能力减弱,通过调整ω的大小来控制以前速度对当前速度的影响,通常在算法开始时,可以给ω赋予一较大正值,随着搜索的进行,可以线性地使ω逐渐减小,使粒子群在前期具有较强的全局搜索能力,在后续迭代过程降低移动速度,能够在最优值的邻域内逐步逼近最优解,避免较大的移动速度在优化解邻域产生震荡;

最大速度vmax:由于pso中速度的变化通常是随机的,不受控制的粒子

运动轨迹会使问题空间不断扩大,并最终达到无穷,因此需要在粒子速度空间中的每一维上都设置一个最大速度限制值vmax,当vid>vmax,时,vid=vmax,当vid<-vmax,时,vid=-vmax,它用来对粒子的速度进行限制,使速度控制在[-vmax,vmax]范围内,vmax有利于防止搜索发散,并且可以控制粒子的搜索步长,vmax是一个非常重要的参数,如果vmax值太大,则粒子粒子可能会飞过最优解;若vmax值太小,则粒子可能就无法对局部最优区域以外的区域进行充分探测,导致陷入局部最优,在这里还要注意到惯性权重ω的引入可消除对vmax的需要,因为它们的作用都是维护全局和局部搜索能力的平衡,这样,当vmax增加时,可通过减小ω来达到平衡搜索,而ω的减小可使得所需的迭代次数变小,从这个意义上看,可以将vmax固定为每维变量的变化范围,只对ω进行调节;

加速常数c1,c2:c1,c2是控制粒子的个体经验与社会经验在其运动中所起作用的权重,其中c1控制认知成分对粒子飞行速度的影响,又被称为“认知系数”;c2则反映了社会成分对粒子飞行速度的影响,又称为“社会学习系数”,如果c1=0,则粒子没有自身经验,只有“社会经验”,它的收敛速度可能较快,但在处理较复杂的问题时,容易陷入局部最优,如果c2=0,则粒子没有群体共享信息,只有“自身经验”,这样很难达到全局最优解,然而,较小的c1,c2值使得粒子在离最优解较远的目标区域内徘徊,而较大的c1,c2值则可能导致越过目标区域,大量的实验表明,通常取c1=c2=2.0时算法收敛效果较好。

进一步,基本粒子群算法的流程如下:

step1.初始化粒子种群,随机设定各粒子的初始位置和初始速度;

step2.计算每个粒子的适应度值;

step3.对于每个粒子,将其适应度值与该粒子所经历过的自身最好位置的适应;

度值进行比较,若较好,则将其作为当前粒子的最好位置;

step4.对每个粒子,将其适应度值与全局所经历的最好位置的适应值进行比;较,若较好,则将其作为当前整个种群的全局最好位置;

step5.更新粒子的速度和位置;

step6.如达到结束条件(通常为足够好的适应度值或达到一个预设最大代数);

则停止计算,输出全局最优适应度值,否则返回step2。

所谓最优化问题,就是寻找一组满足一定约束条件的参数值,以使某些最优性度量得到满足,即使系统的某些性能指标达到最大或最小。目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如工程技术、经济管理、计算机技术、运输调度、生产控制等,并取得了显著的经济效益和社会效益。随着算法复杂性理论的完善,人们意识到要精确求某些复杂的问题,如np难求解问题的全局最优解,计算代价太大。近年来,随着并行计算、人工智能等计算机技术的发展,如果只是要得到问题的近似最优解或者满意解的话,则可以利用计算机等相关技术加以解决,如何利用计算机求解优化问题的方法研究受到了广泛的关注和研究。

粒子群优化聚类算法;最优化问题根据其目标函数、约束函数的性质以及优化变量的取值等可以分成许多类型,每一种类型的最优化问题根据其性质的不同都有其特定的求解方法,不失一般性,设最优化问题为:

miny=f(x)s.t.x∈s={x|gi(x)≤0i=1,…,m}

其中,yf(x)为目标函数,ig(x)为约束函数,s为约束域,x为n维优化变量,通常最大化问题很容易转换为最小化问题(yf(x)),对于0ig(x)的约束和等式约束也可转换为-0ig(x)的约束;所描述的最优化问题不失一般性。真正有效且具有普遍适应性的随机全局优化方法是近十多年来人们模拟自然界的自然现象而发展起来的一系列仿生型智能优化算法,如群体智能算法、遗传算法、进化算法、模拟退火算法等等。优化过程中如何避免早熟陷入局部最优,如何快速有效地找到全局最优解却是各种优化方法的共同追求目标。

混沌现象是自然界中一种常见的非线性现象,1963年美国气象学家爱德华·诺顿·劳仑次提出混沌理论(chaos),非线性系统具有多样性和多尺度性。混沌理论解释了决定系统可能产生随机结果。理论的最大的贡献是用简单的模型获得明确的非周期结果。在气象、航空及航天等领域的研究里有重大的作用。混沌理论认为在混沌系统中,初始条件十分微小的变化,经过不断放大,对其未来状态会造成极其巨大的差别。

混沌思想的粒子群优化聚类算法中混沌运动具有遍历性、随机性和规律性等特点,能在一定范围内按其自身规律不重复地遍历所有状态,因此,利用混沌序列进行优化搜索,其结果优于随机搜索;

混沌搜索过程如下:

第一步,产生一个d维的随机初始向量m0(m01,m02,m03,,md0),其中:m0k∈[0,1],并且各个值之间的差异较小;

第二步,基于初始向量m0,使用logistic方程式迭代产生混沌序列m0,m1,…,mn;

mi+1=μmi(1-mi);

第三步,利用混沌序列公式遍历粒子xi的领域,得到更好的位置xi’;

x′i=xi+r×rand()×mt

其中rand()是随机函数,能产生[-1,1]之间的值,t[0,n],r是粒子xi的领域半径。

通过分析粒子群优化算法的特点和混沌优化具有遍历性的优点。算法根据混沌运动的遍历性特点,以当前整个粒子群搜索到的最优位置为基础产生混沌序列,把当前粒子群中的一个粒子位置随机用产生的混沌序列中的最优位置粒子代替。本节提出的方法也将混沌搜索的思想融入到粒子群优化聚类算法中。根据上一步基于层次凝聚聚类算法中获得数据集子簇的特点,通过将数据集中子簇按顺序编号为1到k(k为子簇的总数),直接根据编号选择m个子簇作为粒子的初始聚类中心。在聚类过程中,通过根据编号直接从相异度矩阵中查找相异度值来计算样本和聚类中心的距离。

由于pso算法依靠的是群体之间的合作和竞争,粒子本身没有变异机制,因此单个粒子一旦受某个局部极值约束后本身较难逃出局部极值的约束,此时各粒子的位置停滞在某特定位置即各粒子最优适应度不再变化,为此本节引入了混沌变异搜索思想,在每次出现早熟收敛现象时进行混沌变异,更新粒子的位置,从而使得粒子群跳出局部最优解的束缚。混沌运动具有遍历性、随机性和规律性等特点,能在一定范围内按其自身规律不重复地遍历所有状态。因此,利用混沌序列进行优化搜索,其结果优于随机搜索。文献根据群体适应度变化率的情况,在种群进入局部收敛后对性能较差的粒子以及全局最优值进行混沌变异,以提高pso跳出局部最优的能力。根据粒子群优化中所有粒子适应度的整体变化情况就可以跟踪和判断粒子群的收敛情况。

粒子群优化中所有粒子适应度的整体变化情况就可以跟踪和判断粒子群的收敛情况,设粒子群的粒子数目为n,fi为第i个粒子的适应度,favg为粒子群的平均适应度,粒子群的群体适应度方差反映的是粒子群中所有粒子的收敛程度,定义如下:

其中f是归一化定标因子,其作用是限制σ2的大小,f取值可以采用如下公式:

越小,则粒子群越趋向于收敛;σ2为零,则群体适应度几乎相同,表示粒子群优化陷入早熟收敛或者达到全局收敛;反之,适应度不同,则表示粒子群处于随机搜索阶段,由于阈值对于不同问题取值不同,降低了算法的伸缩性,变化情况来发现早熟状态,当σ2的值连续n次未发生变化,则认为粒子群优化算法陷入了早熟,此时对所有粒子的搜索位置进行混沌变异搜索,方法如下:

将当前粒子i位置向量xi通过映射到logistic方程的定义域[0,1]

上,k为层聚类后生成的子簇的数目;

将yi=(yi1,yi2,…,yid)通过logistic方程yn+1=4yn(1-yn),计算得到混沌序列然后映射回原解空间,从而产生一个混沌变量可行解序列当前粒子i位置向量xi混沌转化,公式整理后如式所示:

根据上节提出的简化的粒子编码引入混沌搜索思想的粒子群优化聚类算法流程如下:

输入:样本数据集,样本总数k,聚类数目m,粒子种群大小m,最大迭代次数maxiter,加速常数c1、c2,惯性权重。

输出:数据集的m个类簇划分,最优适应度值及其对应的粒子所代表的初始聚类中心。

begin

初始化:设定层次聚类获得数据集子簇的编号为1..k.则粒子的位置zi的搜索空间为[1,k];

粒子的速度vi的搜索空间为[-vmax,+vmax]设定vmax=k;

初始化种群p(0);

fort=1to最大迭代次数do

计算粒子群体p(t)中各粒子个体的k均值划分的适应度,计算并保存粒子群的群体适应度方差;

if粒子适应度值<pid的适应度值

更新pid;

end

if粒子适应度值<pgd的适应度值

更新pgd;

end

if粒子群的群体适应度方差连续n次未发生变化

进行混沌搜索,更新粒子位置;

else

分别更新粒子速度和粒子位置;

endfor

输出整个搜索空间找到的最小适应度值所对应的类簇划分;

end

k均值划分算法和适应度计算公式如下:

步骤1.根据粒子编码位置各维中包含的初始聚类中心子簇编号初始化k个聚类中心,若编码中某一维值不是整数,则进行四舍五入取整。

步骤2.根据计算将数据集中的样本与m个类簇的相异度,将样本划分到最相似的类簇中。

步骤3.根据计算聚类结果的适应度值,其中s(i,j)为数据集相异度矩

阵s中样本di,dj的相异度值

其中,s(d,c)为样本d与类簇c之间的相异度,n为类簇c中样本的个数,s(d,k)为数据集中样本d与类簇c中的样本k之间的相异度值;

由于采用欧氏距离计算样本间相异度,算法通过最小化所有类簇中样本与类

簇中心的相异度之和来寻找最优聚类。

通过直接用子簇编号进行编码,消除了样本属性维数对算法复杂度的影响,直接将一个子簇作为粒子的初始聚类中心比现有直接用样本各维对粒子进行编码更加合理,可以有效减小噪声点、边界点对聚类结果的影响,避免陷入局部最优。本节样本与样本、样本与子簇间的距离都通过预先计算得到的样本间的相异度矩阵直接索引或者累加来计算,避免了迭代计算过程中样本间相异度的重复计算,有效地减小了计算量。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

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