複数の入力と複数の出力 | MATLAB は PSO-LSSVM 粒子群最適化の最小二乗サポート ベクター マシンを実装します 複数の入力と複数の出力
目次
予測効果
基本的な紹介
MATLAB は PSO-LSSVM 粒子群最適化最小二乗サポート ベクター マシンを実装しています。多入力多出力
1.data は 10 個の入力特徴量と 3 個の出力変数を含むデータ セットです。
2.main.m はメイン プログラム ファイルです。
3. コマンド ウィンドウは MBE、MAE、R2 を出力し、データとプログラム コンテンツをダウンロード領域で取得できます。
プログラミング
- 完全なプログラムとデータをダウンロードする方法: PSO-LSSVM 粒子群最適化最小二乗サポート ベクター マシンの複数入力と複数出力を実装するためにブロガーが MATLAB に返信するプライベート メッセージ。
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 参数初始化
c1 = 4.494; % 学习因子
c2 = 4.494; % 学习因子
maxgen = 50; % 种群更新次数
sizepop = 5; % 种群规模
Vmax = 1.0; % 最大速度
Vmin = -1.0; % 最小速度
popmax = 1.0; % 最大边界
popmin = -1.0; % 最小边界
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
for i = 1 : sizepop
pop(i, :) = rands(1, numsum); % 初始化种群
V(i, :) = rands(1, numsum); % 初始化速度
fitness(i) = fun(pop(i, :), hiddennum, net, p_train, t_train);
end
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 个体极值和群体极值
[fitnesszbest, bestindex] = min(fitness);
zbest = pop(bestindex, :); % 全局最佳
gbest = pop; % 个体最佳
fitnessgbest = fitness; % 个体最佳适应度值
BestFit = fitnesszbest; % 全局最佳适应度值
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 迭代寻优
for i = 1 : maxgen
for j = 1 : sizepop
% 速度更新
V(j, :) = V(j, :) + c1 * rand * (gbest(j, :) - pop(j, :)) + c2 * rand * (zbest - pop(j, :));
V(j, (V(j, :) > Vmax)) = Vmax;
V(j, (V(j, :) < Vmin)) = Vmin;
% 种群更新
pop(j, :) = pop(j, :) + 0.2 * V(j, :);
pop(j, (pop(j, :) > popmax)) = popmax;
pop(j, (pop(j, :) < popmin)) = popmin;
% 适应度值
fitness(j) = fun(pop(j, :), hiddennum, net, p_train, t_train);
end
for j = 1 : sizepop
% 个体最优更新
if fitness(j) < fitnessgbest(j)
gbest(j, :) = pop(j, :);
fitnessgbest(j) = fitness(j);
end
end
BestFit = [BestFit, fitnesszbest];
end
過去のハイライト
MATLAB は RBF 動径基底ニューラル ネットワークの多入力多出力予測を実装します。
MATLAB は BP ニューラル ネットワークの多入力多出力予測を実装します。
MATLAB は DNN ニューラル ネットワークの多入力多出力予測を実装します。
参考文献
[1] https://blog.csdn.net/kjm13182345320/article/details/116377961
[2] https://blog.csdn.net/kjm13182345320/article/details/127931217
[3] https://blog.csdn .net/kjm13182345320/article/details/127894261