使用 Python 进行超参数调优:第 2 部分
使用 Python 进行超参数调优:第 2 部分
执行部分!
在里面 第一部分 在本系列博文中,我们讨论了很多与您在进行超参数调优实验之前需要了解的概念相关的内容,包括:
- 评估机器学习模型
- 介绍超参数调优
- 探索详尽的搜索
- 探索贝叶斯优化
- 探索启发式搜索
- 探索多保真优化
在本文中,我们将更多地讨论如何利用几个强大的包来实现上一部分中讨论的所有超参数调整方法。我们将讨论第二部分的总结 使用 Python 进行超参数调优 本书由4章组成:
- 第 7 章,通过 scikit-learn 进行超参数调优
- 第 8 章,通过 Hyperopt 进行超参数调优
- 第 9 章,通过 Optuna 进行超参数调优
- 第 10 章,使用 DEAP 和 Microsoft NNI 进行高级超参数调优
[
使用 Python 进行超参数调优:通过……提高机器学习模型的性能
Amazon.com:使用 Python 进行超参数调优:通过超参数提高机器学习模型的性能……
www.amazon.com
不再浪费时间,让我们深吸一口气,让自己舒服点,准备好学习如何在 Python 中实现众多超参数调优方法!
通过 scikit-learn 进行超参数调优
Scikit-学习 (Sklearn) 是数据科学家使用最多的 Python 包之一。该软件包提供了一系列与机器学习 (ML) 相关的模块,这些模块可以轻松使用,包括用于超参数调整的任务。这个包的主要卖点之一是它在许多实现的类中的一致接口,几乎每个数据科学家都喜欢!
除了 Sklearn 之外,还有其他用于超参数调整任务的包构建在 Sklearn 之上或模仿 Sklearn 的界面,例如 scikit 优化 和 scikit-hyperband .
在本章中,我们将了解与 scikit-learn、scikit-optimize 和 scikit-hyperband 相关的所有重要内容,以及如何利用它们来实现我们在前几章中学到的超参数调整方法.我们将学习如何实现以下超参数调整方法:
- 网格搜索
- 随机搜索
- 粗到细搜索
- 连续减半
- 超频带
- 贝叶斯优化高斯过程
- 贝叶斯优化随机森林
- 贝叶斯优化梯度提升树
我们将首先介绍如何安装每个包。然后,我们不仅会学习如何使用这些包的默认配置,还会讨论可用的配置及其用法。此外,我们将讨论超参数调整方法的实现如何与我们在前几章中学习的理论相关联,因为在实现中可能存在一些细微的差异或调整。
最后,借助前几章的知识,您还可以了解出现错误或意外结果时发生的情况,并了解如何设置方法配置以匹配您的具体问题。
[
scikit-学习
“我们使用 scikit-learn 来支持前沿基础研究 [...]”
scikit-learn.org
](https://scikit-learn.org/stable/)
[
scikit-optimize:Python 中基于序列模型的优化 - scikit-optimize 0.7.3…
编辑描述
scikit-optimize.github.io
](https://scikit-optimize.github.io/stable/)
[
scikit-hyperband,scikit-learn 兼容的 hyperband 实现,下载scikit-hyperband的源码_GitHub_帮酷
超频带的 scikit-learn 兼容实现。克隆 git 存储库 git clone...
github.com
](https://github.com/thuijskens/scikit-hyperband)
通过 Hyperopt 进行超参数调整
超光速 是 Python 中的一个优化包,它提供了多种超参数调整方法的实现,包括随机搜索、模拟退火 (SA)、树结构 Parzen 估计器 (TPE) 和自适应 TPE (ATPE)。它还支持具有范围类型采样分布的各种类型的超参数。
在本章中,我们将介绍 Hyperopt 包,首先介绍它的功能和限制,如何利用它来执行超参数调整,以及您需要了解的有关 Hyperopt 的所有其他重要事项。我们不仅将学习如何利用 Hyperopt 以默认配置执行超参数调整,还将讨论可用配置及其用法。此外,我们将讨论超参数调整方法的实现是如何相关的
对于我们在第一部分中了解的理论(参见本系列博客文章的第一部分),因为在实现中可能已经进行了一些细微的差异或调整。
[
使用 Python 进行超参数调优:第 1 部分
进行超参数调优实验前需要了解的概念
louisowen6.medium.com
](/hyperparameter-tuning-with-python-part-1-7aabc622140e)
在本章结束时,您将能够了解您需要了解的有关 Hyperopt 的所有重要事项,并能够实现该软件包中提供的各种超参数调整方法。您还将能够了解其类的每个重要参数,并
它们与我们在前几章中学到的理论有什么关系。最后,结合前几章的知识,您将能够了解如果出现错误或意外结果会发生什么,以及如何设置方法配置以使其与您的具体问题相匹配。
[
Hyperopt 文档
从 PyPI pip install hyperopt 安装 hyperopt 以运行您的第一个示例 # 定义目标函数 def...
hyperopt.github.io
](https://hyperopt.github.io/hyperopt/)
通过 Optuna 进行超参数调整
选择 是一个 Python 包,提供各种超参数调整方法的实现,包括但不限于网格搜索、随机搜索和树结构 Parzen 估计器 (TPE)。这个包还使我们能够创建自己的超参数调优方法类,并将其与其他流行的超参数调优包集成,例如 scikit 优化 .
在本章中,您将了解 Optuna 包,首先介绍它的众多功能、如何利用它来执行超参数调整,以及您需要了解的有关 Optuna 的所有其他重要事项。我们将学习如何实现以下超参数调整方法:
- 树结构 Parzen 估计器 (TPE)
- 随机搜索
- 网格搜索
- 模拟退火
- 连续减半
- 超频带
Optuna 有两个主要类别,即采样器和修剪器。 采样器 负责执行超参数调优优化,而 修枝剪 负责根据报告的值判断我们是否应该对试验进行修剪。换句话说,修剪器就像早期停止方法一样,只要看起来继续该过程没有额外的好处,我们就会停止超参数调整迭代。
值得注意的是,Optuna 对 Succesive Halving 和 Hyper Band 的实现与 scikit 不同。在这里,Optuna 将这些方法用作修剪器,这将支持正在使用的主要超参数调整方法,即采样器。
在本章结束时,您将能够了解您需要了解的有关 Optuna 的所有重要信息,并实现此软件包中提供的各种超参数调整方法。您还将能够理解这些类的每个重要参数,以及它们与我们在前几章中学到的理论之间的关系。最后,借助前几章的知识,您还可以了解出现错误或意外结果时发生的情况,并了解如何设置方法配置以匹配您的具体问题。
[
Optuna - 超参数优化框架
Optuna 是一个自动超参数优化软件框架,专为机器学习而设计。它…
optuna.org
使用 DEAP 和 Microsoft NNI 进行高级超参数调整
Python 中的分布式进化算法 ( 德普 ) 和 微软 NNI 是提供各种超参数调整方法的 Python 包,这些方法在我们在第 7-9 章中讨论过的其他包中未实现,包括:
- 遗传算法
- 粒子群优化
- 梅蒂斯
- 顺序模型算法配置 (SMAC)
- 贝叶斯优化超频带 (BOHB)
- 基于人群的培训
DEAP 是一个 Python 包,允许您实现各种进化算法,包括(但不限于)遗传算法 (GA) 和粒子群优化 (PSO)。 DEAP 允许您以非常灵活的方式制定进化算法优化步骤。
[
DEAP 文档 — DEAP 1.3.3 文档
DEAP 是一种新颖的进化计算框架,用于快速原型设计和想法测试。它旨在使……
deap.readthedocs.io
](https://deap.readthedocs.io/en/master/)
神经网络智能 (NNI) 是由微软开发的一个包,不仅可以用于超参数调整任务,还可以用于神经架构搜索、模型压缩、
和特征工程。
[
NNI 文档 — 神经网络智能
培训服务 AutoML 实验需要多次试验来探索可行且可能表现良好的模型……
nni.readthedocs.io
](https://nni.readthedocs.io/en/stable/)
在本章中,我们将学习如何使用 DEAP 和 Microsoft NNI 包执行超参数调整,首先要熟悉这些包,以及我们需要了解的重要模块和参数。我们不仅将学习如何利用 DEAP 和 Microsoft NNI 以默认配置执行超参数调整,还将讨论其他可用配置及其用法。
在本章结束时,您将能够了解所有需要了解的有关 DEAP 和 Microsoft NNI 的重要信息,并能够实现这些包中可用的各种超参数调整方法。您还将能够理解这些类的每个重要参数,以及它们与我们在前几章中学到的理论之间的关系。最后,有了前几章的知识,你也能明白
如果出现错误或意外结果会发生什么,并了解如何设置方法配置以匹配您的特定问题。
你可以从书中得到什么
[
使用 Python 进行超参数调优:通过……提高机器学习模型的性能
Amazon.com:使用 Python 进行超参数调优:通过超参数提高机器学习模型的性能……
www.amazon.com
全书共14章,分为3个部分。本书涵盖了您需要了解的有关超参数调优的所有重要内容,从概念和理论、实现以及如何将其付诸实践开始。除了深入解释每种方法的工作原理外,您还将使用 ** 决策图** 这可以帮助您确定满足您要求的最佳调优方法。本书还附有代码实现,您可以从 GitHub 自由
[
GitHub - PacktPublishing/Hyperparameter-Tuning-with-Python: 使用 Python 进行超参数调整
这是 Packt 发布的使用 Python 进行超参数调优的代码库。提升您的机器学习能力……
github.com
](https://github.com/PacktPublishing/Hyperparameter-Tuning-with-Python)
本书适用于使用 Python 并希望通过使用适当的超参数调整方法进一步提高其 ML 模型性能的数据科学家和机器学习工程师。您需要对 ML 以及如何在 Python 中编码有基本的了解,但不需要事先了解 Python 中的超参数调整。
关于作者
路易斯·欧文 是一位来自印度尼西亚的数据科学家/人工智能工程师,他总是渴望新知识。在他的整个职业生涯中,他曾在多个行业领域工作过,包括非政府组织、电子商务、对话式人工智能、OTA、智慧城市和金融科技。工作之余,他喜欢通过他的文章或辅导课程帮助数据科学爱好者成为数据科学家。他还喜欢在业余时间做他的爱好:看电影和进行业余项目。
目前,Louis 是 Yellow.ai 的 NLP 研究工程师 , 世界领先的客户体验自动化平台。查看 路易斯的网站 了解更多关于他的信息!最后,如果您有任何疑问或任何要讨论的主题,请通过以下方式与 Louis 联系 领英 .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明