回歸預(yù)測 | MATLAB實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測
效果一覽
基本介紹
Matlab實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入回歸預(yù)測(完整源碼和數(shù)據(jù))
1.Matlab實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測(完整源碼和數(shù)據(jù))
2.輸入多個特征,輸出單個變量,多輸入單輸出回歸預(yù)測;
3.多指標評價,評價指標包括:R2、MAE、MSE、RMSE等,代碼質(zhì)量極高;
4.鯨魚算法優(yōu)化參數(shù)為:優(yōu)化參數(shù)為權(quán)值和閾值;
5.excel數(shù)據(jù),方便替換,運行環(huán)境2018及以上。文章來源:http://www.zghlxwxcb.cn/news/detail-616649.html
程序設(shè)計
- 完整程序和數(shù)據(jù)下載方式1(資源處直接下載):MATLAB實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測
- 完整程序和數(shù)據(jù)下載方式2(訂閱《ELM極限學習機》專欄,同時可閱讀《ELM極限學習機》專欄收錄的所有內(nèi)容,數(shù)據(jù)訂閱后私信我獲取):MATLAB實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測
- 完整程序和數(shù)據(jù)下載方式3(訂閱《智能學習》專欄,同時獲取《智能學習》專欄收錄程序3份,數(shù)據(jù)訂閱后私信我獲取):MATLAB實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測
%% 計算初始適應(yīng)度值
fitness = zeros(1, pop);
for i = 1 : pop
fitness(i) = fobj(pop_new(i, :));
end
%% 得到全局最優(yōu)適應(yīng)度值
[fitness, index]= sort(fitness);
GBestF = fitness(1);
%% 得到全局最優(yōu)種群
for i = 1 : pop
pop_new(i, :) = pop_lsat(index(i), :);
end
GBestX = pop_new(1, :);
X_new = pop_new;
%% 優(yōu)化算法
for i = 1: Max_iter
BestF = fitness(1);
R2 = rand(1);
for j = 1 : PDNumber
if(R2 < ST)
X_new(j, :) = pop_new(j, :) .* exp(-j / (rand(1) * Max_iter));
else
X_new(j, :) = pop_new(j, :) + randn() * ones(1, dim);
end
end
for j = PDNumber + 1 : pop
if(j > (pop - PDNumber) / 2 + PDNumber)
X_new(j, :) = randn() .* exp((pop_new(end, :) - pop_new(j, :)) / j^2);
else
A = ones(1, dim);
for a = 1 : dim
if(rand() > 0.5)
A(a) = -1;
end
end
AA = A' / (A * A');
X_new(j, :) = pop_new(1, :) + abs(pop_new(j, :) - pop_new(1, :)) .* AA';
end
end
Temp = randperm(pop);
SDchooseIndex = Temp(1 : SDNumber);
for j = 1 : SDNumber
if(fitness(SDchooseIndex(j)) > BestF)
X_new(SDchooseIndex(j), :) = pop_new(1, :) + randn() .* abs(pop_new(SDchooseIndex(j), :) - pop_new(1, :));
elseif(fitness(SDchooseIndex(j)) == BestF)
K = 2 * rand() -1;
X_new(SDchooseIndex(j), :) = pop_new(SDchooseIndex(j), :) + K .* (abs(pop_new(SDchooseIndex(j), :) - ...
pop_new(end, :)) ./ (fitness(SDchooseIndex(j)) - fitness(end) + 10^-8));
end
end
%% 邊界控制
for j = 1 : pop
for a = 1 : dim
if(X_new(j, a) > ub(a))
X_new(j, a) = ub(a);
end
if(X_new(j, a) < lb(a))
X_new(j, a) = lb(a);
end
end
end
%% 獲取適應(yīng)度值
for j = 1 : pop
fitness_new(j) = fobj(X_new(j, :));
end
%% 獲取最優(yōu)種群
for j = 1 : pop
if(fitness_new(j) < GBestF)
GBestF = fitness_new(j);
GBestX = X_new(j, :);
end
end
%% 更新種群和適應(yīng)度值
pop_new = X_new;
fitness = fitness_new;
%% 更新種群
[fitness, index] = sort(fitness);
for j = 1 : pop
pop_new(j, :) = pop_new(index(j), :);
end
%% 得到優(yōu)化曲線
curve(i) = GBestF;
avcurve(i) = sum(curve) / length(curve);
end
%% 得到最優(yōu)值
Best_pos = GBestX;
Best_score = curve(end);
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718文章來源地址http://www.zghlxwxcb.cn/news/detail-616649.html
到了這里,關(guān)于回歸預(yù)測 | MATLAB實現(xiàn)WOA-ELM鯨魚算法優(yōu)化極限學習機多輸入單輸出回歸預(yù)測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!