python - Amazon SageMaker 如何预测新数据
问题描述
我在 Amazon SageMaker 中构建了模型,代码附在下面。现在我希望能够将新数据上传到 s3 并基于此模型获得预测,而不必每次都重新计算。
sess = sagemaker.Session()
bucket = "innogy-bda-germany-dev-landing-dc3-retailpl"
prefix = "sagemaker/xgboost-upsell"
role = get_execution_role()
container = sagemaker.image_uris.retrieve("xgboost", boto3.Session().region_name, "latest")
display(container)
train_path = 's3://innogy-bda-germany-dev-landing-dc3-retailpl/UPSELL/LIST/train.csv'
test_path = 's3://innogy-bda-germany-dev-landing-dc3-retailpl/UPSELL/LIST/validation.csv'
s3_input_train = sagemaker.TrainingInput(s3_data=train_path, content_type='csv')
s3_input_test = sagemaker.TrainingInput(s3_data=test_path, content_type='csv')
sess = sagemaker.Session()
xgb = sagemaker.estimator.Estimator(
container,
role,
instance_count=1,
instance_type="ml.m5.4xlarge",
output_path="s3://innogy-bda-germany-dev-landing-dc3-retailpl/UPSELL/LIST/output",
sagemaker_session=sess,
)
xgb.set_hyperparameters(
alpha= 1.340343927865692,
colsample_bytree= 0.525162855476281,
eta= 0.06451533130134757,
gamma= 0.9683995477068462,
max_depth= 10,
min_child_weight= 3.851108988963441,
num_round= 987,
subsample= 0.8725573749114485,
silent=0,
objective="binary:logistic",
early_stopping_rounds=50,
)
xgb.fit({"train": s3_input_train, "validation": s3_input_validation})
我要一个代码示例,现在如何将此模型从 s3 提取到新笔记本并使用它来预测新数据。
另外,我想知道为什么您在使用 sagemaker 中内置的 xgboost 模型时不丢弃目标变量,因为在对新集合进行预测时,我不会知道目标。
train_data, validation_data, test_data = np.split(df_smote.sample(frac=1, random_state=1729),[int(0.7 * len(df_smote)), int(0.9 * len(df_smote))],)
解决方案
您需要按照此处列出的步骤将模型部署到 EC2 实例,以便进行批量或按需预测。 https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-model-deployment.html
推荐阅读
- angular - PrimeNG 覆盖面板延迟
- python - 我的 Keras CNN 返回相同的输出值,我该如何修复/改进我的代码
- templates - 基于 Enterprise Bot 模板 (v4 SDK) 的来自 Bot 的 OAuth2 登录不适用于 MS Teams 桌面应用程序
- amazon-web-services - 拒绝对 EC2 实例的端口访问是否会阻止 DDOS?请求会发生什么?
- vue.js - Vue单元测试-无法读取未定义的属性't'
- sql-server - 使用 ASP Classic 写入 SQL 数据库
- c# - WEB API C# 中使用 HttpWebRequest 的基本授权
- javascript - 如何设置 jQuery 断点?
- sql - 多列的 Oracle SQL 'KEEP' 和一列的 'KEEP' 和其余的 GROUP BY 之间有区别吗?
- r - qwraps2 代码的输出与预期不符