微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scipy Opt 遗传算法优化均方误差

如何解决Scipy Opt 遗传算法优化均方误差

我正在尝试使用遗传算法找到模型的最佳 5 个参数(微分方程的解)来拟合时间序列。

我使用 Scikit-Opt 遗传算法 (https://scikit-opt.github.io/scikit-opt/#/en/README) 执行此操作,如下所示:

  1. 定义模型 --> model(a,b,c,d,e) 拟合时间序列 --> series

(model 给出了一个微分方程的解:一个与该系列长度相同的时间序列)

  1. 将算法的适应度函数定义为模型系列
  2. 的解之间的均方误差

def fitness_func(a,e): error = sklearn.metrics.mean_squared_error(model(a,e),series) return error

  1. 使用 lb(下限)和 ub(上限)等一些参数构建 GA,这两个边界通过手动拟合已知:

sko.GA.GA(func = fitness_func0,n_dim = 5,size_pop = 100,max_iter = 50,lb = [-0.5,-0.3,0.01,0.0001,0.1],ub = [-0.01,-0.01,0.5,0.0625,10],precision = 1e-4,prob_mut = 0.2)

  1. 运行 GA:

best_x,best_y = ga.run()

bext_x 是使均方误差最小化的 5ple 参数 (a,e)best_y 是模型的 best_x 参数的均方误差值

当我运行代码时,它可以工作(我的意思是,生成 5 个参数,求解模型并计算解与 系列间的均方误差以找到最小化它的参数)但是它没有优化错误并且给出的参数也不适合该系列。

我绘制结果并发现:

enter image description here

即使我进行手动拟合,我也发现了比遗传算法发现的最佳均方误差

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?