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

37个视图(过去30天)
Tad2020
Tad2020 2020年1月19日
评论: Tad20202020年1月28日
我想在matlab中使用遗传算法执行非线性多元回归。
我有五个自变量和一个回答。如何使用遗传算法在matlab中通过最小化均方误差来进行非线性回归?
R=f(x1,x2,x3,x4)
我想将数据拟合到类似下面的方程:
1.Png.
因此,我的目标是通过最小化实际响应和模型响应之间的差异,在matlab中使用GA找到常数C1、C2、C3、…、C21。

接受的答案

明星黾
明星黾 2020年1月19日
一个(非常基本的)方法:
xd=兰特(10,1);%创建依赖变量
xi =兰特(10,4);%创建自变量矩阵
R=@(b,x)b(1)。*sin(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);%遗传算法调用
该想法是创建一个独立变量的矩阵,然后通过各自列(我的偏好)引用它们。
有很多方法可以定制 GA. 人口和其他参数,以获得临时输出并创建特定的初始人口。这个 GA. 功能将搜索最佳集的参数空间,因此才严格定义它们的范围,只有在它们的预期幅度广泛变化。
10评论
明星黾
明星黾 2020年1月26日
最小化均方误差应该同时做到这两个方面。

登录评论。

更多答案(1)

亚历克斯·沙
亚历克斯·沙 2020年1月28日
Matlab中的遗传算法工具箱不是一个理想的曲线拟合工具,其目标是全局优化结果。参考下面的结果,它应该是GA可能永远无法得到的全局解。
均方误差(RMSE):0.00114090675219561
总和平方残差:0.000298082021740069
相关性Coef。(r):1
R-正方形:1
调整R-正方形:1
决心Coef。(DC):1
卡方:1.30802089664868 e-6
f统计量:1.9563957244377 e19
范围最佳估计
---------- -------------
C1.1.21488501004067
C2.1.45076972134303
C3.2.07995659264768
C41.69518420103036
C51.97997575301966
C61.97999531406562
C76.30000528873042
C89.02324638354842
3评论
Tad2020
Tad2020 2020年1月28日
再次感谢。如果软件可用,我将尝试获取该软件。

登录评论。

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!