之前写了一篇pso工程上使用方法,这一篇使用布谷鸟算法,相关的原理也比较多的介绍了。目前实验结果还是pso快一点。

一、布谷鸟算法介绍

布谷鸟搜索算法,是 由剑 桥 大 学YANG等在文献 中提出的一种群智能优化算法,它也是一种新型元启发式搜索算法。其思想主要基于两个策略:布谷鸟的巢寄生性和莱维飞行机 制。通过随机游走的方式搜索得到一个最优的鸟窝来孵化自己的鸟蛋,这种方式可以达到一种高效的寻优模式。CS算法主要优点是参数少、操作简单、易实现、随机搜索路径优和寻优能力强等,备受学者关注。

二、代码关键实现

使用布谷鸟算法的代码如下:

from cso import CSO
CSO(fitness=best_model, bound=[(0.2, 0.5), (0.0008, 0.003)]).execute()

best_model的返回值依旧是使用accuracy

下面是训练best_model的代码:

def best_model(x,count=1):print(x)model = model_design(x)history = model.fit(X_train,Y_train,batch_size=10,epochs=1,verbose=2,validation_data=(X_test, Y_test),#validation_split = 0.3,callbacks = [keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),keras.callbacks.EarlyStopping(monitor='val_loss', patience=10, verbose=0, mode='auto')])train_loss, train_acc = model.evaluate(X_train, Y_train, verbose=0)print(f"Train Accuracy:{train_acc} Train Loss: {train_loss}")test_loss, test_acc = model.evaluate(X_test, Y_test, verbose=0)print(f"Test Accuracy:{test_acc} Test Loss: {test_loss}")model.save(f"model-{count}-{round(test_acc, 3)}-{round(test_loss, 3)}--Units-{x[0]}--Learning_rate-{x[1]}")np.savetxt(f"data-{count}.csv", x, delimiter=',')count = counttest_acc_list = []test_loss_list = []count_no = []test_units = []test_learning_rate = []if test_acc > 0 :# Plot the graphmodel.predict(X_test)#这个是预测print('我满足终止条件了')sys.exit()count = count - 1count_no.append(count)test_acc_list.append(test_acc)test_loss_list.append(test_loss)test_units.append(x[0])test_learning_rate.append(x[1])global resultresult = pd.DataFrame()result["count_no"] = count_noresult["Test_Acc"] = test_acc_listresult["Test_Loss"] = test_loss_listresult["Units"] = test_unitsresult["Learning_rate"] = test_learning_rate#描述训练集的lossval_loss_list = history.history['val_loss']loss_list = history.history['loss']plt.plot(range(len(loss_list)), val_loss_list)plt.plot(range(len(loss_list)), loss_list)plt.show()return test_acc

以上是使用cso算法进行神经网络优化的实现代码。具体全部代码的内容可以去我的github获取:

https://github.com/cyjack/cso-deeplearning.git

三、相关信息

如果有关于cso(布谷鸟算法)进行模型参数优化的问题,可以来咨询我~微信:Paper_pass_a

cso(布谷鸟)算法优化神经网络参数相关推荐

  1. 【预测模型】基于布谷鸟算法优化BP神经网络实现数据预测matlab代码

    1 简介 针对当前智能算法对股票市场预测精度不高的问题,提出使用布谷鸟算法优化神经网络(CS-BP)的方法,对股票市场进行预测.并与粒子群算法优化神经网络模型(PSO-BP)和遗传算法优化神经网络模型 ...

  2. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  3. 【BP预测】基于布谷鸟算法优化BP神经网络数据回归预测含Matlab源码

    1 简介 锂电池健康状态(SOH)的预测是电动汽车锂电池管理系统的最重要的关键技术之一;传统的误差逆向传播(BP)神经网络容易使权值和阈值陷入局部最优,从而导致预测结果不精确;结合布谷鸟搜索算法(CS ...

  4. 贝叶斯优化神经网络参数_贝叶斯超参数优化:神经网络,TensorFlow,相预测示例

    贝叶斯优化神经网络参数 The purpose of this work is to optimize the neural network model hyper-parameters to est ...

  5. 【LSTM回归预测】基于matlab布谷鸟算法优化LSTM回归预测【含Matlab源码 2037期】

    一.布谷鸟算法优化LSTM预测 1 布谷鸟搜索算法 布谷鸟算法是一种新型的群智能搜索算法,布谷鸟算法具有参数数目少.鲁棒性强.通用性好和全局寻优能力突出等多方面综合优势.布谷鸟算法以寻得全局最优鸟窝为 ...

  6. 【Matlab优化预测】布谷鸟算法优化灰色模型预测【含源码 1244期】

    一.代码运行视频(哔哩哔哩) [Matlab优化预测]布谷鸟算法优化灰色模型预测[含源码 1244期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]屈迟文,傅 ...

  7. 蚁群算法优化神经网络matlab源程序,粒子群优化神经网络的程序大集合

    粒子群程序集合 866867259psobp psobp.m pso(粒子群算法)优化神经网络 粒子群算法(PSO)应用于神经网络优化[matlab] PSOt A Particle Swarm Op ...

  8. 粒子群算法优化PID参数实例

    粒子群优化算法(PSO)以及Matlab实现 1.粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法的基础上加上了一定的寻优机制.试想一下枚举法,假设问题的解空间很小,比如一 ...

  9. 【BP数据预测】布谷鸟算法优化BP神经网络数据预测【含Matlab源码 1121期】

    ⛄一.布谷鸟算法简介 布谷鸟算法,英文叫做Cuckoo search (CS algorithm).首先还是同样,介绍一下这个算法的英文含义, Cuckoo是布谷鸟的意思,啥是布谷鸟呢,是一种叫做布谷 ...

  10. 【灰色神经预测】基于布谷鸟算法优化灰色神经网络模型实现数据回归预测含Matlab源码

    1 简介 人工神经网络已成功应用到许多领域,如模式识别.机器学习.信号处理和信息融合等,但是,如果神经网络的学习算法或拓扑结构选择不当,可能导致出现神经网络的预测准确度低的问题.为此,许多研究者开始将 ...

最新文章

  1. 博士后小姐姐把“二次元老婆生成器”升级了:这一次可以指定画风
  2. cordova 不打开浏览器_[Cordova inAppBrowser 在App内打开浏览器]
  3. hive 插入数据映射到hbase_大数据基础知识:Hadoop分布式系统介绍
  4. 阿里产品专家杨文韬:你想了解的1688都在这里
  5. 【tomcat】手动部署动态JavaWeb项目到tomcat
  6. AQS(CountdownLatch、CyclicBarrier、Semaphore)、FutureTask、BlockingQueue、ForkJoin
  7. [ZZ]在争议中逐渐成熟 电力线通信填平信息鸿沟
  8. printf输出格式总结
  9. jar中没有主清单属性
  10. Paused before potential out-of-memory crash页面崩溃
  11. mysql表join和union_mysql – 使用JOIN和UNION组合来自不同表的记录
  12. 能快速修改视频格式的工具分享
  13. 简单易用的APIv3版微信支付SDK
  14. WebSocket接收多种子协议
  15. java calendar星期_java 日历 Calendar 获取当前时间是星期几
  16. 2021国家网络安全等级保护工作协调小组办公室推荐测评机构名单(未删减版)
  17. PPa-HA/NH2/NHS/MAL焦脱镁叶绿酸-a修饰叶酸/氨基/活性酯/马来酰亚胺的反应
  18. 菜刀php教程,中国菜刀的功能介绍和使用方法(黑站利器与后门利用测试工具)
  19. 微积分位于基础数学的核心部分
  20. 【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(中国区域高精度同化气象站CMADS)

热门文章

  1. 常说的七侠五义到底是什么?
  2. 漂亮的CSS背景颜色
  3. V10抢单系统源码(新增连单管理功能)
  4. pandas最快入门(一)-读取与数据结构
  5. 使用TMT工具进行威胁分析及风险评估(TARA)
  6. android oppo 模拟器,小姚Android构建VIVO华为魅族OPPO小米联想手游Android模拟器
  7. 提取文件原生ico图标
  8. 卡特兰数(Catalan)
  9. 蚂蚁金服测试开发实习面经
  10. 关于Spring Bean的生命周期