基于遗传算法的非线性多元回归

35次浏览(最近30天)
Tad2020
Tad2020 2020年1月19日
评论道: Tad20202020年1月28日
我想在matlab中使用遗传算法执行非线性多元回归。
我有5个自变量和1个响应。如何通过使用遗传算法在matlab中最小化均方误差来进行非线性回归?
R = f (x1, x2, x3, x4)
我想将数据拟合到类似下面的方程:
1. png
因此,我的目标是找到常数C1 C2 C3…, C21using the GA in matlab by minimizing the difference between the actual response and the response from the model.

接受的答案

明星黾
明星黾 2020年1月19日
一个(非常基本的)方法:
xd =兰德(10,1);%创建因变量
ξ=兰德(10、4);%创建独立变量矩阵
R = @ (b, x) b(1)。*罪(b(2)。* x (: 1)) + b(3)。* exp (b(4)。* x (:, 2)) + b(5)。* cos (b(6)。* x (:, 3)) - b(7)。* x (:, 4);%目标函数
ftnsfcn = @(b) norm(xd - R(b,xi));%适应度函数
B = ga(ftnsfcn, 7);%遗传算法调用
这个想法是创建一个独立变量的矩阵,然后通过它们各自的列引用它们(我的偏好)。
有很多方法可以定制 遗传算法 人口和其他参数,以获得临时输出并创建一个特定的初始人口等。的 遗传算法 函数将在参数空间中搜索最佳集合,因此只有在它们的预期振幅有很大变化时,才需要严格定义它们的范围。
10评论
明星黾
明星黾 2020年1月26日
最小化均方误差应该做到这两点。

登录评论。

答案(1)

亚历克斯·沙
亚历克斯·沙 2020年1月28日
在以全局优化结果为目标的曲线拟合中,Matlab中的遗传算法工具箱并不是理想的工具。参考下面的结果,它应该是GA可能永远得不到的全局解决方案。
均方根误差(RMSE): 0.00114090675219561
总和平方残差:0.000298082021740069
相关系数。(R): 1
r平方:1
调整r平方:1
的决心系数。(直流):1
卡方:1.30802089664868 e-6
f统计量:1.9563957244377 e19
参数最佳估计
---------- -------------
c11.21488501004067
c21.45076972134303
c32.07995659264768
c41.69518420103036
c51.97997575301966
c61.97999531406562
c76.30000528873042
c89.02324638354842
3评论
Tad2020
Tad2020 2020年1月28日
再次感谢。如果有可用的软件,我会试着得到它。

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!