我正在关注 Amazon Sagemaker 研讨会,尝试利用 Sagemaker 的多个实用程序,而不是像我目前所做的那样在笔记本上运行所有内容。
问题是,在研讨会上,他们教您如何使用来自 AWS 的现成 XGBoost 图像来使用 HyperparameterTuner,而我的大多数管道都使用 Scikit-Learn 模型,例如 GradientBoostingClassifier 或 RandomForest,所以我实例化了一个估计器,例如以下此示例文件:
sklearn = SKLearn(entry_point="train.py",
framework_version="1.2-1",
instance_type="ml.m5.xlarge",
role=role,
hyperparameters=fixed_hyperparameters
)
之后,我使用刚刚创建的估计器实例化 HyperparameterTuner 作业,其中包含我想要测试的超参数范围。
hyperparameters_ranges = {
"n_estimators": ContinuousParameter(100, 500),
"learning_rate": ContinuousParameter(1e-2, 1e-1),
"max_depth": IntegerParameter(2, 5),
"subsample": ContinuousParameter(0.6, 1),
"max_df": ContinuousParameter(0.4, 1),
"max_features": IntegerParameter(5, 25),
"use_idf": CategoricalParameter([True, False])
}
metric = "validation:f1"
tuner = HyperparameterTuner(
sklearn,
metric,
hyperparameters_ranges,
max_jobs=2,
max_parallel_jobs=2
)
我的问题是,我没有找到任何有关如何访问“train.py”文件内 SKLearn 估计器中传递的超参数的信息。我也没有找到最佳超参数存储在哪里,因此我可以将它们用于最终模型。有人可以告诉这是否可能,或者如果有另一种更简单的方法可以提供替代方案吗?
请参阅以下示例,了解使用 HPTuner 的 Sklearn 估计器的端到端用法。