AutoML 提供工具,以极少的用户干预即可为数据集自动发现良好的机器学习模型管道。
它非常适合机器学习新手领域的专家或希望在预测建模任务中快速获得良好结果的机器学习从业者。
Open-source 库可用于使用流行的 Python 机器学习库(例如 scikit-learn 机器学习库)上的 AutoML 方法。
在本教程中,您将了解如何使用 Python 中 scikit-learn 的顶级开源 AutoML 库。
完成本教程后,您将了解:
- AutoML 是用于自动快速发现用于预测建模任务的性能良好的机器学习模型管道的技术。
- Scikit-Learn 最流行的三个 AutoML 库是 Hyperopt-Sklearn、Auto-Sklearn 和 TPOT。
- 如何使用 AutoML 库来发现 Python 中用于预测建模任务的性能良好的模型。
让我们开始吧。

Python 的自动化机器学习 (AutoML) 库
照片作者:Michael Coghlan,部分权利保留。
教程概述
本教程分为四个部分;它们是
- 自动化机器学习
- Auto-Sklearn
- 基于树的管道优化工具 (TPOT)
- Hyperopt-Sklearn
自动化机器学习
自动化机器学习,简称 AutoML,涉及为预测建模任务自动选择数据准备、机器学习模型和模型超参数。
它指的是允许半专业的机器学习从业者和非专家在几乎没有其他干预的情况下(仅提供数据集)快速发现机器学习任务的良好预测模型管道的技术。
…用户只需提供数据,AutoML 系统就会自动确定最适合此特定应用程序的方法。因此,AutoML 使对应用机器学习感兴趣但没有资源详细了解其背后技术领域数据的领域科学家能够接触到最先进的机器学习方法。
— 第 ix 页,自动化机器学习:方法、系统、挑战,2019。
该方法的核心是定义一个大型的层次化优化问题,该问题涉及识别数据转换和机器学习模型本身,以及模型的超参数。
许多公司现在提供 AutoML 作为服务,用户可以上传数据集并下载模型管道,或者通过 Web 服务(即 MLaaS)进行托管和使用。流行的例子包括来自 Google、Microsoft 和 Amazon 的服务。
此外,还提供开源库,这些库实现了 AutoML 技术,专注于搜索空间中使用的特定数据转换、模型和超参数以及用于导航或优化可能性搜索空间的算法类型,其中贝叶斯优化的版本最为常见。
有许多开源 AutoML 库,尽管在本教程中,我们将重点介绍可以与流行的 scikit-learn Python 机器学习库结合使用的最佳库。
它们是:Hyperopt-Sklearn、Auto-Sklearn 和 TPOT。
我错过了你最喜欢的 scikit-learn AutoML 库吗?
在下面的评论中告诉我。
我们将仔细研究每个库,为您评估和考虑哪个库适合您的项目提供基础。
Auto-Sklearn
Auto-Sklearn 是一个开源 Python 库,用于使用 scikit-learn 机器学习库中的机器学习模型进行 AutoML。
它由Matthias Feurer 等人开发,并在他们 2015 年题为“高效且鲁棒的自动化机器学习”的论文中进行了描述。
…我们介绍了一个基于 scikit-learn 的新的鲁棒 AutoML 系统(使用 15 个分类器、14 个特征预处理方法和 4 个数据预处理方法,从而产生了具有 110 个超参数的结构化假设空间)。
— 高效且鲁棒的自动化机器学习,2015。
第一步是安装 Auto-Sklearn 库,可以使用 pip 完成,如下所示
1 |
sudo pip install autosklearn |
安装后,我们可以导入该库并打印版本号以确认安装成功
1 2 3 |
# 打印 autosklearn 版本 import autosklearn print('autosklearn: %s' % autosklearn.__version__) |
运行示例会打印版本号。您的版本号应相同或更高。
1 |
autosklearn: 0.6.0 |
接下来,我们可以演示在合成分类任务上使用 Auto-Sklearn。
我们可以定义一个 AutoSklearnClassifier 类来控制搜索,并将其配置为运行两分钟(120 秒),并终止任何评估时间超过 30 秒的单个模型。在运行结束时,我们可以报告搜索统计信息,并在保留数据集上评估性能最佳的模型。
完整的示例如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 用于分类数据集的 auto-sklearn 示例 from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from autosklearn.classification import AutoSklearnClassifier # 定义数据集 X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_redundant=5, random_state=1) # 拆分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1) # 定义搜索 model = AutoSklearnClassifier(time_left_for_this_task=2*60, per_run_time_limit=30, n_jobs=8) # 执行搜索 model.fit(X_train, y_train) # 总结 print(model.sprint_statistics()) # 评估最佳模型 y_hat = model.predict(X_test) acc = accuracy_score(y_test, y_hat) print("Accuracy: %.3f" % acc) |
运行该示例大约需要两分钟,考虑到我们对运行设置了硬性限制。
运行结束后,将打印摘要,显示评估了 599 个模型,最终模型的估计性能为 95.6%。
1 2 3 4 5 6 7 8 9 |
auto-sklearn 结果 数据集名称:771625f7c0142be6ac52bcd108459927 指标:准确率 最佳验证分数:0.956522 目标算法运行次数:653 成功的目标算法运行次数:599 崩溃的目标算法运行次数:54 超过时间限制的目标算法次数:0 超过内存限制的目标算法次数:0 |
然后我们在保留数据集上评估模型,发现分类准确率达到了 97%,这是一个相当有用的结果。
1 |
准确率:0.970 |
有关 Auto-Sklearn 库的更多信息,请参阅
基于树的管道优化工具 (TPOT)
基于树的管道优化工具,简称TPOT,是一个用于自动化机器学习的 Python 库。
TPOT 使用基于树的结构来表示预测建模问题的模型管道,包括数据准备和建模算法,以及模型超参数。
…一种称为基于树的管道优化工具 (TPOT) 的进化算法,可自动设计和优化机器学习管道。
— 用于自动化数据科学的基于树的管道优化工具的评估,2016。
第一步是安装 TPOT 库,可以使用 pip 完成,如下所示
1 |
pip install tpot |
安装后,我们可以导入该库并打印版本号以确认安装成功
1 2 3 |
# 检查 tpot 版本 import tpot print('tpot: %s' % tpot.__version__) |
运行示例会打印版本号。您的版本号应相同或更高。
1 |
tpot: 0.11.1 |
接下来,我们可以演示在合成分类任务上使用 TPOT。
这包括配置 TPOTClassifier 实例,设置进化搜索的种群大小和代数,以及用于评估模型的交叉验证程序和指标。然后,算法将运行搜索过程并将发现的最佳模型管道保存到文件中。
完整的示例如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 用于分类数据集的 tpot 示例 from sklearn.datasets import make_classification from sklearn.model_selection import RepeatedStratifiedKFold from tpot import TPOTClassifier # 定义数据集 X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_redundant=5, random_state=1) # 定义模型评估 cv = RepeatedStratifiedKFold(n_splits=10, n_repeats=3, random_state=1) # 定义搜索 model = TPOTClassifier(generations=5, population_size=50, cv=cv, scoring='accuracy', verbosity=2, random_state=1, n_jobs=-1) # 执行搜索 model.fit(X, y) # 导出最佳模型 model.export('tpot_best_model.py') |
运行该示例可能需要几分钟,您将在命令行上看到一个进度条。
沿途将报告性能最佳模型的准确率。
由于搜索过程的随机性,您的具体结果可能会有所不同。
1 2 3 4 5 6 7 |
第 1 代 - 当前最佳内部 CV 分数:0.9166666666666666 第 2 代 - 当前最佳内部 CV 分数:0.9166666666666666 第 3 代 - 当前最佳内部 CV 分数:0.9266666666666666 第 4 代 - 当前最佳内部 CV 分数:0.9266666666666666 第 5 代 - 当前最佳内部 CV 分数:0.9266666666666666 最佳管道:ExtraTreesClassifier(input_matrix, bootstrap=False, criterion=gini, max_features=0.35000000000000003, min_samples_leaf=2, min_samples_split=6, n_estimators=100) |
在此案例中,我们可以看到性能最佳的管道实现了约 92.6% 的平均准确率。
性能最佳的管道然后保存到名为“tpot_best_model.py”的文件中。
打开此文件,您可以看到一些用于加载数据集和拟合管道的通用代码。下面列出了一个示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import numpy as np import pandas as pd from sklearn.ensemble import ExtraTreesClassifier from sklearn.model_selection import train_test_split # 注意:请确保结果列在数据文件中标记为 'target' tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64) features = tpot_data.drop('target', axis=1) training_features, testing_features, training_target, testing_target = \ train_test_split(features, tpot_data['target'], random_state=1) # 训练集上的平均 CV 分数:0.9266666666666666 exported_pipeline = ExtraTreesClassifier(bootstrap=False, criterion="gini", max_features=0.35000000000000003, min_samples_leaf=2, min_samples_split=6, n_estimators=100) # 修复导出估计器的随机状态 if hasattr(exported_pipeline, 'random_state'): setattr(exported_pipeline, 'random_state', 1) exported_pipeline.fit(training_features, training_target) results = exported_pipeline.predict(testing_features) |
然后,您可以检索创建模型管道的代码,并将其集成到您的项目中。
有关 TPOT 的更多信息,请参阅以下资源
- 用于自动化数据科学的基于树的管道优化工具的评估, 2016.
- TPOT 文档.
- TPOT GitHub 项目.
Hyperopt-Sklearn
HyperOpt 是一个由James Bergstra 开发的开源 Python 库,用于贝叶斯优化。
它专为具有数百个参数的模型的超大规模优化而设计,并允许跨多个核心和多个机器进行优化过程的扩展。
HyperOpt-Sklearn 封装了 HyperOpt 库,并允许自动搜索用于分类和回归任务的数据准备方法、机器学习算法和模型超参数。
…我们介绍 Hyperopt-Sklearn:一个项目,它将自动算法配置的优点带给 Python 和 scikit-learn 的用户。Hyperopt-Sklearn 使用 Hyperopt 来描述 Scikit-Learn 组件(包括预处理和分类模块)的可能配置的搜索空间。
— Hyperopt-Sklearn:Scikit-Learn 的自动超参数配置,2014。
现在我们熟悉了 HyperOpt 和 HyperOpt-Sklearn,让我们看看如何使用 HyperOpt-Sklearn。
第一步是安装 HyperOpt 库。
可以使用 pip 包管理器完成,如下所示
1 |
sudo pip install hyperopt |
接下来,我们必须安装 HyperOpt-Sklearn 库。
也可以使用 pip 安装,但是我们必须通过克隆存储库并从本地文件运行安装来手动执行此操作,如下所示
1 2 3 4 |
git clone git@github.com:hyperopt/hyperopt-sklearn.git cd hyperopt-sklearn sudo pip install . cd .. |
我们可以通过以下命令检查版本号来确认安装成功
1 |
sudo pip show hpsklearn |
这将总结 HyperOpt-Sklearn 的已安装版本,确认正在使用现代版本。
1 2 3 4 5 6 7 8 9 10 |
名称:hpsklearn 版本:0.0.3 摘要:Scikit-Learn 的超参数优化 主页:http://hyperopt.github.com/hyperopt-sklearn/ 作者:James Bergstra 作者邮箱:anon@anon.com 许可证:BSD 位置:... 要求:nose, scikit-learn, numpy, scipy, hyperopt 所需通过 |
接下来,我们可以演示在合成分类任务上使用 Hyperopt-Sklearn。
我们可以配置一个 HyperoptEstimator 实例,该实例运行搜索,包括搜索空间中要考虑的分类器、预处理步骤以及要使用的搜索算法。在这种情况下,我们将使用 TPE(即 Parzen 估计器树),并执行 50 次评估。
在搜索结束时,将评估性能最佳的模型管道并进行总结。
完整的示例如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 用于分类数据集的 hyperopt-sklearn 示例 from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from hpsklearn import HyperoptEstimator from hpsklearn import any_classifier from hpsklearn import any_preprocessing from hyperopt import tpe # 定义数据集 X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_redundant=5, random_state=1) # 拆分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1) # 定义搜索 model = HyperoptEstimator(classifier=any_classifier('cla'), preprocessing=any_preprocessing('pre'), algo=tpe.suggest, max_evals=50, trial_timeout=30) # 执行搜索 model.fit(X_train, y_train) # 总结性能 acc = model.score(X_test, y_test) print("Accuracy: %.3f" % acc) # 总结最佳模型 print(model.best_model()) |
运行该示例可能需要几分钟。
搜索的进度将被报告,您会看到一些可以安全忽略的警告。
在运行结束时,性能最佳的模型将在保留数据集上进行评估,并打印发现的管道以供以后使用。
由于学习算法和搜索过程的随机性,您的具体结果可能会有所不同。尝试运行几次示例。
在此案例中,我们可以看到所选模型在保留测试集上的准确率约为 84.8%。管道涉及 SGDClassifier 模型,没有预处理。
1 2 3 4 5 6 7 8 9 |
准确率:0.848 {'learner': SGDClassifier(alpha=0.0012253733891387925, average=False, class_weight='balanced', early_stopping=False, epsilon=0.1, eta0=0.0002555872679483392, fit_intercept=True, l1_ratio=0.628343459087075, learning_rate='optimal', loss='perceptron', max_iter=64710625.0, n_iter_no_change=5, n_jobs=1, penalty='l2', power_t=0.42312829309173644, random_state=1, shuffle=True, tol=0.0005437535215080966, validation_fraction=0.1, verbose=False, warm_start=False), 'preprocs': (), 'ex_preprocs': ()} |
然后可以直接使用打印出的模型,例如将代码复制粘贴到另一个项目中。
有关 Hyperopt-Sklearn 的更多信息,请参阅
总结
在本教程中,您了解了如何使用 Python 中 scikit-learn 的顶级开源 AutoML 库。
具体来说,你学到了:
- AutoML 是用于自动快速发现用于预测建模任务的性能良好的机器学习模型管道的技术。
- Scikit-Learn 最流行的三个 AutoML 库是 Hyperopt-Sklearn、Auto-Sklearn 和 TPOT。
- 如何使用 AutoML 库来发现 Python 中用于预测建模任务的性能良好的模型。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
也请查看 AutoGluon:https://autogluon.mxnet.io/
感谢分享。
你好,Jason。我使用命令“pip install autosklearn”,它未能安装 scikit-learn 的 AutoML 库。请告诉我为什么?
我很抱歉听到这个消息。
我不知道为什么它失败了,也许可以试试在 stackoverflow.com 上发帖询问你的错误?
pip install auto-sklearn
如何在 Google Colab 上使用 autosklearn?
我做了这个
> ! pip install autosklearn
以下是输出。
>
Collecting autosklearn
Using cached https://files.pythonhosted.org/packages/33/c3/bca73d2b9d839bdeb1a68aa9e15f90c5dccb2cbc7426262e188c80e7413b/autosklearn-0.1.1.tar.gz
Building wheels for collected packages: autosklearn
Building wheel for autosklearn (setup.py) … error
ERROR: Failed building wheel for autosklearn
Running setup.py clean for autosklearn
Failed to build autosklearn
Installing collected packages: autosklearn
Running setup.py install for autosklearn … error
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘”‘”‘/tmp/pip-install-34fbo8pn/autosklearn/setup.py'”‘”‘; __file__='”‘”‘/tmp/pip-install-34fbo8pn/autosklearn/setup.py'”‘”‘;f=getattr(tokenize, ‘”‘”‘open'”‘”‘, open)(__file__);code=f.read().replace(‘”‘”‘\r\n'”‘”‘, ‘”‘”‘\n'”‘”‘);f.close();exec(compile(code, __file__, ‘”‘”‘exec'”‘”‘))’ install –record /tmp/pip-record-lt1zshky/install-record.txt –single-version-externally-managed –compile Check the logs for full command output.
这是我在这里回答的一个常见问题
https://machinelearning.org.cn/faq/single-faq/do-code-examples-run-on-google-colab
很棒的博客 Jason!!!!
如果我们有这样的工具,是否意味着学习“应用 ML”没有多大价值?
我现在正在学习 Python 中的 ML。我是一名多年的程序员。
我学习了应用 ML 管道,如下所示。
1. 读取数据
2. 检查数据
3. 进行一些必要的数据预处理
(类别到数字转换、fillna、drop、分箱)
4. 分割数据
5. 使用几种算法在训练数据上进行拟合,在验证数据上进行预测
使用选定的评估方法(准确率、FScore、AUC……)
了解模型的性能(例如 AUC 超过 0.92)
6. 在测试数据上进行预测
7. 提交给 Kaggle,例如(获得 0.8xxx)
但我在第 7 步的结果比第 5 步差。
我猜我需要改进数据预处理。
但特征工程对于初学者来说非常困难。
看起来这个 AutoML 会解决这个问题。这是正确的吗?
同时,我突然觉得,学习“应用 ML”值得吗?
第 3 步是 ML 的核心。但要对所有事物都拥有领域知识非常困难。
我想在工作中应用 ML,而不是成为一名 ML 研究员。
你觉得呢?
谢谢。
没有万能药。AutoML 可以帮助您快速获得良好结果,但无法赢得比赛。
出现以下错误
[ERROR] [2020-09-18 16:16:25,132:AutoML(1791095845):77b13f0bfe0702b784d576f1db1241bb] 'generator' object is not subscriptable
回溯(最近一次调用)
File “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/automl.py”, line 615, in fit
_proc_smac.run_smbo()
File “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/smbo.py”, line 358, in run_smbo
metalearning_configurations = self.get_metalearning_suggestions()
文件 “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/smbo.py”,第 547 行,在 get_metalearning_suggestions 中
meta_base = MetaBase(self.config_space, self.metadata_directory)
文件 “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/metalearning/metalearning/meta_base.py”,第 40 行,在 __init__ 中
aslib_reader = aslib_simple.AlgorithmSelectionProblem(self.aslib_directory)
文件 “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py”,第 33 行,在 __init__ 中
self._read_files()
文件 “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py”,第 73 行,在 _read_files 中
read_func(file_)
文件 “/home/gautqm/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py”,第 79 行,在 _read_algorithm_runs 中
if arff_dict[“attributes”][0][0].upper() != “INSTANCE_ID”
TypeError: ‘generator’ 对象不可订阅
—————————————————————————
TypeError Traceback (most recent call last)
in
10 model = AutoSklearnClassifier(time_left_for_this_task=2*60, per_run_time_limit=30, n_jobs=8)
11 # 执行搜索
—> 12 model.fit(X_train, y_train)
13 # 汇总
14 print(model.sprint_statistics())
~/py37/lib/python3.8/site-packages/autosklearn/estimators.py in fit(self, X, y, X_test, y_test, feat_type, dataset_name)
682 self.target_type = target_type
683
–> 684 super().fit(
685 X=X,
686 y=y,
~/py37/lib/python3.8/site-packages/autosklearn/estimators.py in fit(self, **kwargs)
430 processes.append(p)
431 p.start()
–> 432 _fit_automl(
433 automl=self._automl[0],
434 kwargs=kwargs,
~/py37/lib/python3.8/site-packages/autosklearn/estimators.py in _fit_automl(automl, kwargs, load_models)
14
15 def _fit_automl(automl, kwargs, load_models)
—> 16 return automl.fit(load_models=load_models, **kwargs)
17
18
~/py37/lib/python3.8/site-packages/autosklearn/automl.py in fit(self, X, y, X_test, y_test, feat_type, dataset_name, only_return_configuration_space, load_models)
1154 self._metric = accuracy
1155
-> 1156 return super().fit(
1157 X, y,
1158 X_test=X_test,
~/py37/lib/python3.8/site-packages/autosklearn/automl.py in fit(self, X, y, task, X_test, y_test, feat_type, dataset_name, only_return_configuration_space, load_models)
613 try
614 self.runhistory_, self.trajectory_, self._budget_type = \
–> 615 _proc_smac.run_smbo()
616 trajectory_filename = os.path.join(
self._backend.get_smac_output_directory_for_run(self._seed),
~/py37/lib/python3.8/site-packages/autosklearn/smbo.py in run_smbo(self)
356 # 初始化一些SMAC依赖项
357
–> 358 metalearning_configurations = self.get_metalearning_suggestions()
359
360 if self.resampling_strategy in [‘partial-cv’,
~/py37/lib/python3.8/site-packages/autosklearn/smbo.py in get_metalearning_suggestions(self)
545 self.logger.info(‘元数据目录:%s’,
self.metadata_directory)
–> 547 meta_base = MetaBase(self.config_space, self.metadata_directory)
548
549 metafeature_calculation_time_limit = int(
~/py37/lib/python3.8/site-packages/autosklearn/metalearning/metalearning/meta_base.py in __init__(self, configuration_space, aslib_directory)
38 self.aslib_directory = aslib_directory
39
—> 40 aslib_reader = aslib_simple.AlgorithmSelectionProblem(self.aslib_directory)
41 self.metafeatures = aslib_reader.metafeatures
42 self.algorithm_runs = aslib_reader.algorithm_runs
~/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py in __init__(self, directory)
31 # 读取ASLib文件
32 self._find_files()
—> 33 self._read_files()
34
35 def _find_files(self)
~/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py in _read_files(self)
71 read_func = self.read_funcs.get(os.path.basename(file_))
72 if read_func
—> 73 read_func(file_)
74
75 def _read_algorithm_runs(self, filename)
~/py37/lib/python3.8/site-packages/autosklearn/metalearning/input/aslib_simple.py in _read_algorithm_runs(self, filename)
77 arff_dict = arff.load(fh)
78
—> 79 if arff_dict[“attributes”][0][0].upper() != “INSTANCE_ID”
80 self.logger.error(
“instance_id as first attribute is missing in %s” % (filename))
TypeError: ‘generator’ 对象不可订阅
我很遗憾听到这个消息,这可能会给你一些提示
https://machinelearning.org.cn/faq/single-faq/why-does-the-code-in-the-tutorial-not-work-for-me
对于所有安装失败的人
auto-sklearn 目前仅在 Linux 系统上运行顺畅。请查看 Windows/Mac 的选项:https://automl.net.cn/auto-sklearn/master/installation.html#windows-osx-compatibility。
听到这个消息我很难过。
在我几个月前撰写这篇教程时,它似乎在 macOS 和 Linux 上直接安装并运行。
好文章!
截至 0.11.6 版本,TPOT 现在通过 RAPIDS cuML 和 DMLC XGBoost 提供对 GPU 加速模型的原生支持,这可以节省大量时间,甚至可以为中大型数据集带来更好的 ML 管道。
如果您有兴趣了解更多信息,这里有一篇带有小型案例研究的博文:https://medium.com/rapids-ai/faster-automl-with-tpot-and-rapids-758455cd89e5
谢谢分享 Nick。
哇,这内容太棒了。
谢谢!
Autosklearn 库不支持 Windows
请参阅此帖子
https://stackoverflow.com/questions/54817301/installing-autosklearn-in-anaconda-environment
感谢分享。
非常感谢您提供的所有宝贵教程!它们很棒!请继续努力!
不客气!
嗨 Jason!非常感谢您提供如此精彩的内容。精彩的介绍。继续努力!
不客气!
当我运行您在 notebook 中展示的 Hyperopt 示例时,遇到了问题。
TypeError: __init__() got an unexpected keyword argument ‘presort’
也许这些提示会有所帮助
https://machinelearning.org.cn/faq/single-faq/why-does-the-code-in-the-tutorial-not-work-for-me