【选择自由,免费下载】Python版215种群智能优化算法

引言

各位小伙伴们对Python的需求越来越强烈,今天分享一个群智能优化算法Python宝库-MEALPY(地址:https://github.com/thieu1995/mealpy)。MEALPY库是最大的群智能优化算法python库。

免费软件:GNU通用公共许可证(GPL) V3许可证
算法总数:目前有215个(官方(原始,混合,变种),25开发)。

按分类有基于生物的bio_based,进化的evolutionary_based,人类的human_based,数学的math_based,音乐的music_based,物理的physics_based,群体的swarm_based,系统的system_based。

图片

图片

支持Python版本:3.7,3.8.x,3.9.x,3.10.x,3.11.x
支持项:numpy, scipy, pandas, matplotlib

图片

图片

02. 安装及使用

使用pip安装:

pip install mealpy==3.0.1

从源代码安装
如果你想直接从源代码安装,使用:

git clone https://github.com/thieu1995/mealpy.gitcd mealpypython setup.py install

完成后,您可以像导入任何其他Python模块一样导入Mealpy:

import mealpy

以黏菌算法SMA算法为例:

求解自定义函数:

from mealpy import FloatVar, SMA # 从mealpy 导入 SMAimport numpy as np# 定义目标函数def objective_function(solution):    return np.sum(solution**2)# 优化问题problem = {    "obj_func": objective_function,    "bounds": FloatVar(lb=(-100., )*30, ub=(100., )*30),    "minmax": "min",    "log_to": None,}
# 调用算法 运行model = SMA.OriginalSMA(epoch=100, pop_size=50, pr=0.03)g_best = model.solve(problem)print(f"Best solution: {g_best.solution}, Best fitness: {g_best.target.fitness}")

还包括求解约束基准函数,多目标基准函数。

可视化:

图片

Mealpy运用:

Mealpy +神经网络(取代梯度下降优化器)

Mealpy +神经网络(优化神经网络超参数)

其他应用:

  • Mealpy解决背包问题(离散问题)

  • Mealpy优化支持向量机SVM (SVC)模型

from sklearn.svm import SVCfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn import datasets, metrics
from mealpy import FloatVar, StringVar, IntegerVar, BoolVar, MixedSetVar, SMA, Problem

# Load the data set; In this example, the breast cancer dataset is loaded.X, y = datasets.load_breast_cancer(return_X_y=True)
# Create training and test splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1, stratify=y)
sc = StandardScaler()X_train_std = sc.fit_transform(X_train)X_test_std = sc.transform(X_test)
data = {    "X_train": X_train_std,    "X_test": X_test_std,    "y_train": y_train,    "y_test": y_test}

class SvmOptimizedProblem(Problem):    def __init__(self, bounds=None, minmax="max", data=None, **kwargs):        self.data = data        super().__init__(bounds, minmax, **kwargs)
    def obj_func(self, x):        x_decoded = self.decode_solution(x)        C_paras, kernel_paras = x_decoded["C_paras"], x_decoded["kernel_paras"]        degree, gamma, probability = x_decoded["degree_paras"], x_decoded["gamma_paras"], x_decoded["probability_paras"]
        svc = SVC(C=C_paras, kernel=kernel_paras, degree=degree,                   gamma=gamma, probability=probability, random_state=1)        # Fit the model        svc.fit(self.data["X_train"], self.data["y_train"])        # Make the predictions        y_predict = svc.predict(self.data["X_test"])        # Measure the performance        return metrics.accuracy_score(self.data["y_test"], y_predict)
my_bounds = [    FloatVar(lb=0.01, ub=1000., name="C_paras"),    StringVar(valid_sets=('linear', 'poly', 'rbf', 'sigmoid'), name="kernel_paras"),    IntegerVar(lb=1, ub=5, name="degree_paras"),    MixedSetVar(valid_sets=('scale', 'auto', 0.01, 0.05, 0.1, 0.5, 1.0), name="gamma_paras"),    BoolVar(n_vars=1, name="probability_paras"),]problem = SvmOptimizedProblem(bounds=my_bounds, minmax="max", data=data)model = SMA.OriginalSMA(epoch=100, pop_size=20)model.solve(problem)
print(f"Best agent: {model.g_best}")print(f"Best solution: {model.g_best.solution}")print(f"Best accuracy: {model.g_best.target.fitness}")print(f"Best parameters: {model.problem.decode_solution(model.g_best.solution)}")

  • Mealpy优化线性回归模型

  • Mealpy解决旅行商(Travelling Salesman Problem,TSP)问题

  • Mealpy解决特征选择问题

视频教程:

https://mealpy.readthedocs.io/en/latest/pages/general/video_tutorials.html

请引用:

@article{van2023mealpy,  title={MEALPY: An open-source library for latest meta-heuristic algorithms in Python},  author={Van Thieu, Nguyen and Mirjalili, Seyedali},  journal={Journal of Systems Architecture},  year={2023},  publisher={Elsevier},  doi={10.1016/j.sysarc.2023.102871}}
@article{van2023groundwater,  title={Groundwater level modeling using Augmented Artificial Ecosystem Optimization},  author={Van Thieu, Nguyen and Barma, Surajit Deb and Van Lam, To and Kisi, Ozgur and Mahesha, Amai},  journal={Journal of Hydrology},  volume={617},  pages={129034},  year={2023},  publisher={Elsevier},  doi={10.1016/j.jhydrol.2022.129034}}

Python代码下载

微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

Amazing!Python版215种群智能优化算法

点击链接跳转:


matlab版的340种基础优化算法免费下载

cec2017测试函数使用教程及matlab代码免费下载

cec2018测试函使用教程及matlab代码免费下载

cec2019测试函使用教程及matlab代码免费下载

cec2020测试函使用教程及matlab代码免费下载

cec2021测试函使用教程及matlab代码免费下载

cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!

175种群智能优化算法python库

超175+种群智能优化算法Python库!!!icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484577&idx=1&sn=ed0b2e27b73e738c094c7534a63a2cda&chksm=c12be8a4f65c61b2f3d90e2b4d1f480f8d0bb038b6598828ebf2434006e07925f8102af9795f&scene=21#wechat_redirect

求解cec测试函数-matlab

最新最火!cec2022测试函数来了(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484693&idx=1&sn=ce311acb26bee2894db6fe90776288bd&chksm=c12be910f65c6006af080b1e97ad5514eee06b64d2caeeac2008b8c06fdc3ba379455e9ca709&scene=21#wechat_redirect

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

一网打尽!170+种优化算法求解11种cec测试函数(附Python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484745&idx=1&sn=1957f7c9b44c47f171c1cd46054d1679&chksm=c12be94cf65c605a5e0f8404e6c90964ce0743b7c25ff5f98a03dedc77e5eec5b48bf0c0e782&token=681266555&lang=zh_CN#rd

解决12种工程设计优化问题-python

大放送!170+种优化算法解决12种工程设计问题(附python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485068&idx=1&sn=c913be0f2445f8b4d3e944569f5e599f&chksm=c12bea89f65c639f1df0f8e6cacffc1fdffa96683d10743094435ee6b0b55573a5bc8eec7eb3&token=681266555&lang=zh_CN#rd

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486215&idx=2&sn=58f1a69175b0d6431a4c7cdfa114b84d&chksm=c12be702f65c6e14e6bd1ddc33b9cec74991d93303c325853049b7e4afd09039b13083fa79c5&token=25423484&lang=zh_CN#rd

沙场大点兵:24种信号分解方法(附matlab代码) 

沙场大点兵:24种信号分解方法(附matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd

 沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd

  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值