粒子群优化算法解决聚类集成问题?

问题描述:

粒子群优化算法解决聚类集成问题?
我用了kmeans等聚类方法对iris进行聚类,得到不同聚类分类号,其中一个算法得到的结果是
Columns 1 through 16
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Columns 17 through 32
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Columns 33 through 48
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Columns 49 through 64
1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Columns 65 through 80
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Columns 81 through 96
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Columns 97 through 112
2 2 1 2 3 2 3 2 3 3 2 2 2 3 2 2
Columns 113 through 128
3 2 2 3 2 3 3 2 3 2 3 2 3 3 2 2
Columns 129 through 144
2 3 3 3 2 2 2 3 3 2 2 3 3 3 2 3
Columns 145 through 150
3 3 2 2 3 2
不同算法得到的结果都是类似这种,假如现在有20*150维的类标号矩阵,我的想法是把这个矩阵当成是PSO的初始种群,利用基本的PSO算法实验了一下,速度随机取值,学习因子c1=1.49445; c2=1.49445;maxgen=300; %迭代次数,其中适应度函数取类标号与数据集标准分类号的正确率,然后利用算法迭代寻优,在实验过程中,迭代起不了任何作用,我怀疑是参数设置出了问题,再追加50分
我想在这20*150维矩阵中找到最优或者通过PSO算法粒子与速度更新得到最优的类标号,使得分类正确率高于 kmeans等算法得到的结果(也就是20*150的结果)
1个回答 分类:综合 2014-12-11

问题解答:

我来补答
kmeans 给出的是150个样本的聚类后所属类别.你的样本是150*20的,也就是说,样本个数150,维数20.
用粒子群做聚类的方法是,采用粒子群迭代的方法优化得到N个最优位置,这N个位置对应N个聚类的中心,本题N=3. 然后通过计算每个样本与N个中心间之间的距离,取距离最短的聚类中心,认为样本跟此聚类中心是一类的,这样每个样本就被归为了N类.
针对你的问题,首先说参数没问题(也可以把c1=c2=2)检查你的聚类过程,是否把20当做了训练样本(这个虽然低级,但是初学的特别容易犯),你要初始化的是3个中心位置,每个位置20维,总共60. 即初始化一个60维的种群.如果1检查无误的话可能就是你的程序问题了,对照网上的粒子群算法的公式检查下程序吧.

再问: 你好,谢谢你的答案,对聚类集成了解吗?我在用PSO算法的时候,前几天确实不是你这么做的,我把20*150个类标号组成的聚类作为粒子的初始种群,没有涉及到聚类中心,昨天觉得这种方法不可行,试用聚类中心解决问题,但是在粒子的适应度函数方面,也想选用最近距离,现在正在实验中,方便加qq吗?464419229 验证问题 张广江
 
 
展开全文阅读
剩余:2000