主要内容
模糊C-均值聚类,也称FCM,是比较常用的一种聚类算法,该算法利用几何贴进度的概念将不同数据分配到不同聚类群中,但是作为局部搜索优化算法,初值选择不当会影响收敛效果,因此,需要结合一些其他算法以实现更好的聚类算法。本次分享的代码是基于模拟退火算法和遗传算法结合的综合优化算法来实现FCM聚类分析,以全年风电数据作为分析对象,进行聚类分析,程序采用matlab编写,程序模块化好,注释清晰,方便学习!
基于遗传模拟退火算法的风电功率聚类分析流程图如下:
FCM算法:
FCM算法通过反复修改聚类中心、数据隶属度和进行分类,当算法收敛时,就能得到各类的聚类中心以及各样本对于各类的隶属度,从而完成模糊聚类划分。
部分代码
%% 第一步:
M=length(LB);%决策变量的个数
%种群初始化,每一列是一个样本
farm=zeros(M,N);
for i=1:M
x=unifrnd(LB(i),UB(i),1,N);
farm(i,:)=x;
end
%输出变量初始化
ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体
ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值
BESTX=cell(K,1);%细胞结构,每一个元素是M×1向量,记录每一代的最优个体
BESTY=zeros(K,1);%K×1矩阵,记录每一代的最优个体的评价函数值
k=1;%迭代计数器初始化
%% 第二步:迭代过程
while k<=K
%% 以下是交叉过程
newfarm=zeros(M,2*N);
Ser=randperm(N);%两两随机配对的配对表
结果一览
“阅读原文”获取程序源码