如何在 SKLearn Estimator 上使用 Sagemaker HyperparameterTuner?

问题描述 投票:0回答:1

我正在关注 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 估计器中传递的超参数的信息。我也没有找到最佳超参数存储在哪里,因此我可以将它们用于最终模型。有人可以告诉这是否可能,或者如果有另一种更简单的方法可以提供替代方案吗?

amazon-web-services machine-learning scikit-learn amazon-sagemaker hyperparameters
1个回答
0
投票

请参阅以下示例,了解使用 HPTuner 的 Sklearn 估计器的端到端用法。

© www.soinside.com 2019 - 2024. All rights reserved.