Python 优化均方误差的Scipy-Opt遗传算法
我试图用遗传算法找到模型的最佳5个参数(微分方程的解)来拟合时间序列 我使用Scikit Opt遗传算法()执行以下操作:Python 优化均方误差的Scipy-Opt遗传算法,python,genetic-algorithm,mean-square-error,scikit-optimize,Python,Genetic Algorithm,Mean Square Error,Scikit Optimize,我试图用遗传算法找到模型的最佳5个参数(微分方程的解)来拟合时间序列 我使用Scikit Opt遗传算法()执行以下操作: 定义模型-->模型(a、b、c、d、e)以适应时间序列-->序列 (模型给出了一个微分方程的解:与该序列长度相同的时间序列) 将算法的适应度函数定义为模型和序列解之间的均方误差 def fitness_func(a、b、c、d、e):error=sklearn.metrics.mean_squared_error(模型(a、b、c、d、e)、series)返回错误 使用lb
def fitness_func(a、b、c、d、e):error=sklearn.metrics.mean_squared_error(模型(a、b、c、d、e)、series)返回错误
sko.GA.GA(func=fitness\u func0,n\u dim=5,size\u pop=100,max\u iter=50,lb=[-0.5,-0.3,0.01,0.0001,0.1],ub=[-0.01,-0.01,0.5,0.0625,10],精度=1e-4,概率=0.2)
best\u x,best\u y=ga.run()
bext_x是使均方误差最小的5个参数(a、b、c、d、e)和
best_y是具有模型最佳参数的均方误差值
当我运行代码时,它是有效的(我的意思是,生成5个参数,求解模型,计算解决方案和序列之间的均方误差,以找到使其最小化的参数),但它没有优化误差,给出的参数也不适合序列
我绘制了结果,发现:
甚至当我进行手动拟合时,我发现了一个比遗传算法发现的最大均方误差