mango:机器学习超参数优化利器
mango Parallel Hyperparameter Tuning in Python 项目地址: https://gitcode.com/gh_mirrors/mango38/mango
项目介绍
Mango 是一个 Python 库,旨在帮助用户找到机器学习分类器的最优超参数。它通过并行优化连续、离散和分类值的复杂搜索空间,使得超参数调优过程更加高效。Mango 不仅易于定义与 scikit-learn 兼容的复杂搜索空间,还拥有一种新颖的、无需梯度的优化器,支持多种计算基础设施上的任务调度。
项目技术分析
Mango 的技术架构充分考虑了机器学习超参数调优的需求。它的核心功能包括:
- 并行优化:Mango 能够在本地、集群或云基础设施上并行执行任务,大大提高了搜索效率。
- 搜索空间定义:兼容 scikit-learn 的参数空间定义,支持整数、分类和分布等类型的搜索空间。
- 无需梯度优化器:Mango 拥有一种新颖的梯度-free 优化器,适用于连续、离散和分类值。
项目技术应用场景
Mango 适用于多种机器学习应用场景,包括但不限于:
- 机器学习模型训练:通过自动调优超参数,提高模型准确率。
- 特征选择:在特征选择过程中,寻找最优的特征组合。
- 模型性能提升:通过优化超参数,提升现有模型的性能。
项目特点
Mango 项目的特点如下:
- 易用性:Mango 的设计让用户能够轻松定义复杂的搜索空间,并与 scikit-learn 无缝集成。
- 高效性:通过并行计算,Mango 能够在短时间内找到最优超参数。
- 可扩展性:Mango 支持多种计算基础设施,包括本地、集群和云环境。
- 鲁棒性:内置的应用层故障检测机制,确保了在通用硬件上的可扩展性。
- 持续更新:由于在生产环境中的测试和使用,Mango 不断添加新功能,以满足用户需求。
下面,我们将通过具体的代码示例,来展示 Mango 的强大功能。
搜索空间定义
Mango 支持多种类型的搜索空间定义,包括整数、分类和分布等。
# 整数搜索空间示例
param_space = dict(x=range(-10, 11))
# 分类搜索空间示例
param_space = dict(color=['red', 'blue', 'green'])
# 分布搜索空间示例
from scipy.stats import uniform
param_space = dict(a=uniform(-1, 2))
超参数调优示例
以下是一个使用 Mango 对 KNN 分类器超参数进行调优的示例:
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
from mango import Tuner, scheduler
# 定义 KNN 分类器的搜索空间
param_space = dict(n_neighbors=range(1, 50),
algorithm=['auto', 'ball_tree', 'kd_tree', 'brute'])
# 定义目标函数
@scheduler.serial
def objective(**params):
X, y = datasets.load_breast_cancer(return_X_y=True)
clf = KNeighborsClassifier(**params)
score = cross_val_score(clf, X, y, scoring='accuracy').mean()
return score
# 初始化和运行调优器
tuner = Tuner(param_space, objective)
results = tuner.maximize()
print('best parameters:', results['best_params'])
print('best accuracy:', results['best_objective'])
以上代码将输出最佳的参数组合和对应的准确率。
总结而言,Mango 是一个功能强大、易于使用的机器学习超参数优化库。它通过并行计算和高效搜索算法,帮助用户快速找到最优超参数,提升机器学习模型的性能。无论是学术研究还是工业应用,Mango 都是一个值得推荐的开源项目。
mango Parallel Hyperparameter Tuning in Python 项目地址: https://gitcode.com/gh_mirrors/mango38/mango
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考