Github项目推荐 | mlrose 机器学习随机优化和搜索算法包

mlrose是用于实现大量机器学习,随机优化和SEarch算法的Python包。

Website:

https://mlrose.readthedocs.io/

Github项目地址:

2019/20190426A/F0119953

mlrose是一个Python包,可以将一些最常见的随机优化和搜索算法应用于离散和连续值参数空间中的一系列不同的优化问题。

项目背景

mlrose最初是为了支持佐治亚理工学院(Georgia Tech)OMSCS/OMSA提供的《CS 7641:机器学习》课程而开发的。

它包括本课程中所教授的所有随机优化算法的实现,以及将这些算法应用于整数字符串优化问题的功能,例如N-Queens和背包问题;连续值优化问题,如神经网络权重问题;以及巡回优化问题,例如旅行推销员问题(行商问题/最短路径问题)。 它还具有解决用户自定义的优化问题的灵活性。

在开发时,还没有一个单独的Python包可以将所有这些功能集中在一个位置。

主要特点随机优化算法

  • 实现了:爬山算法、随机爬山算法、模拟退火算法、遗传算法和(离散)MIMIC;
  • 解决了最大化和最小化问题;
  • 定义算法的初始状态或从随机状态开始;
  • 定义自己的模拟退火衰减计划或使用三种预定义的可定制衰减计划之一:几何衰减、算术衰减或指数衰减。

问题类型

  • 解决离散值(位串和整数串)、连续值和巡回优化(旅行销售员)问题;
  • 定义自己的适应度函数进行优化或使用预定义函数。
  • 预定义的适应度函数可用于解决:One Max、Flip Flop、Four peak、Six peak、Continuous peak、背包、旅行推销员、N-Queens和Max- k颜色优化问题。

机器学习权重优化

  • 使用随机爬山、模拟退火、遗传算法或梯度下降算法来优化神经网络、线性回归模型和逻辑回归模型的权重;
  • 支持分类和回归神经网络。

安装

mlrose是用Python 3编写的,使用环境需要:NumPy,SciPy和Scikit-Learn(sklearn)。

最新发行的版本可以在Python包索引中找到,可以使用pip安装:

pipinstall mlrose 文档

官方mlrose文档可参阅这里

此处还提供了包含文档中使用示例的Jupyter笔记本

许可、作者、致谢

mlrose由Genevieve Hayes编写,并根据3-Clause BSD许可证分发。

你可以在研究方面的出版物和报告中按以下格式引用mlrose:

  • Hayes, G. (2019). mlrose: Machine Learning, Randomized Optimization and SEarch package for Python. 2019/20190426A/F0119953. Accessed: day month year.

BibTeX条目:

@misc{Hayes19,

author = {Hayes, G},

title = {{mlrose: Machine Learning, Randomized Optimization and SEarch packageforPython}},

year = 2019,

howpublished = {url{https: //github.com/gkhayes/mlrose}},

note = {Accessed: day month year}

}