【数据聚类】基于粒子群算法之聚类设计matlab源码

一、简介

粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等 开发的一种新的进化算法(Evolutionary Algorithm - EA)。PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的"交叉"(Crossover) 和"变异"(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。

二、源代码

%Kmeans Cluster Algorithm Based on Particle Optimization Algorithm
clc;
clear all;
format long;
tic
data=[1702.8 1639.79 2068.74 
1877.93 1860.96 1975.3 
867.81 2334.68 2535.1 
1831.49 1713.11 1604.68 
460.69 3274.77 2172.99 
2374.98 3346.98 975.31 
2271.89 3482.97 946.7
1783.64 1597.99 2261.31 
198.83 3250.45 2445.08
1494.63 2072.59 2550.51
1597.03 1921.52 2126.76
1598.93 1921.08 1623.33 
1243.13 1814.07 3441.07
2336.31 2640.26 1599.63 
354 3300.12 2373.61 
2144.47 2501.62 591.51 
426.31 3105.29 2057.8 
1507.13 1556.89 1954.51 
343.07 3271.72 2036.94 
2201.94 3196.22 935.53
2232.43 3077.87 1298.87 
1580.1 1752.07 2463.04 
1962.4 1594.97 1835.95 
1495.18 1957.44 3498.02 
1125.17 1594.39 2937.73 
24.22 3447.31 2145.01 
1269.07 1910.72 2701.97 
1802.07 1725.81 1966.35 
1817.36 1926.4 2328.79 
1860.45 1782.88 1875.13];
%--------参数设定-----------
N=70;%粒子数
c1=1.6;c2=1.6;%设定学习因子值(速度更新参数)
wmax=0.9;wmin=0.4;%设定惯性权重初始及终止值
M=1600;%最大迭代数
K=4;%类别数
[S D]=size(data);%样本数和特征维数
%--------初始化----------------
for i=1:N
clmat(i,:)=randperm(S);%随机取整数
end
clmat(clmat>K)=fix(rand*K+1);%取整函数
fitt=inf*ones(1,N);%初始化个体最优适应度
fg=inf;%初始化群体最优适应度
fljg=clmat(1,:);%当前最优分类
v=rand(N,K*D);%初始速度
x=zeros(N,K*D);%初始化粒子群位置
y=x;%初始化个体最优解
pg=x(1,:);%初始化群体最优解
cen=zeros(K,D);%类别中心定维
fitt2=fitt;%粒子适应度定维

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ1575304183

往期回顾>>>>>>

【数据分析】时变参数随机波动率向量自回归模型(TVP-VAR)

【信号处理】基于ICA算法信号分离matlab源码

【数据分析】模糊二元决策树matlab源码

【数据聚类】基于遗传算法之聚类设计matlab源码

【数据聚类】基于蚁群算法聚类matlab源码

【数据聚类】基于模拟退火算法聚类设计matlab源码

猜你喜欢

转载自blog.csdn.net/qq_34763204/article/details/113618003