我们不再更新 Amazon Machine Learning 服务,也不再接受新用户使用该服务。本文档可供现有用户使用,但我们不会再对其进行更新。有关更多信息,请参阅什么是 Amazon Machine Learning。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
请求 Real-time 预测
实时预测是对 Amazon Machine Learning (Amazon ML) 的同步调用。在 Amazon ML 收到请求时做出预测,并立即返回响应。 Real-time 预测通常用于在交互式 Web、移动或桌面应用程序中启用预测功能。您可以使用低延迟 Predict API,查询使用 Amazon ML 创建的 ML 模型进行实时预测。Predict 操作接受请求负载中的单个输入观察并在响应中同步返回预测。这使其有别于批量预测 API,后者使用指向输入观察位置的 Amazon ML 数据源对象的 ID 进行调用,并异步返回 URI,指向包含所有这些观察的预测的文件。Amazon ML 响应大多数实时预测请求的时间不超过 100 毫秒。
您可以在 Amazon ML 控制台中尝试实时预测而不产生任何费用。如果您随后决定使用实时预测,您必须首先为生成实时预测而创建终端节点。您可以在 Amazon ML 控制台中或者使用 CreateRealtimeEndpoint API 执行此操作。在您有终端节点之后,使用实时预测 API 来生成实时预测。
注意
在您为模型创建实时终端节点之后,您将开始产生基于模型大小的容量预留费用。有关更多信息,请参阅定价DeleteRealtimeEndpoint 操作删除实时终端节点。
有关 Predict 请求和响应的示例,请参阅 Amazon Machine Learning API 参考中的预测。要查看使用您模型的确切响应格式的示例,请参阅尝试 Real-Time 预测。
主题
尝试 Real-Time 预测
为了帮助您决定是否启用实时预测,Amazon ML 允许您尝试针对单个数据记录生成预测,而不会产生与设置实时预测终端节点相关的额外费用。要试用实时预测,您必须拥有 ML 模型。要创建更大规模的实时预测,请使用 Amazon Machine Learning API 参考中的预测 API。
尝试实时预测
-
登录 AWS 管理控制台 并打开 Amazon Machine Learning 控制台,网址为https://console.aws.amazon.com/machinelearning/
。 -
在导航栏的 Amazon Machine Learning 下拉菜单中,选择 ML 模型。
-
从教程中选择您试用实时预测所要使用的模型,例如
Subscription propensity model。 -
在 ML 模型报告页面的预测下,选择摘要,然后选择尝试实时预测。
Amazon ML 显示变量列表,这些变量组成了 Amazon ML 训练您模型时使用的数据记录。
-
您可以继续在表单的各个字段中输入数据,或者以 CSV 格式粘贴单个数据记录到文本框中。
要使用表单,对于各个值字段,输入您希望用于测试实时预测的数据。如果您输入的数据记录不包含一个或多个数据属性的值,请将条目字段留空。
要提供数据记录,请选择粘贴记录。将单 CSV-formatted 行数据粘贴到文本字段中,然后选择 “提交”。Amazon ML 自动为您填充值字段。
注意
数据记录中的数据必须与训练数据具有相同的列数,并且按相同顺序排列。唯一例外是您应省略目标值。如果您包括目标值,Amazon ML 将忽略它。
-
在页面底部,选择创建预测。Amazon ML 立即返回预测。
在预测结果窗格中,您可以看到
PredictAPI 调用返回的预测对象,以及 ML 模式类型、目标变量的名称以及预测的类别或值。有关解释结果的更多信息,请参阅解释二进制分类 ML 模型的批量预测文件的内容。
创建 Real-Time 终端节点
要生成实时预测,您需要创建实时终端节点。要创建实时终端节点,您必须已经有要用于生成实时预测的 ML 模型。您可以使用 Amazon ML 控制台或者调用 CreateRealtimeEndpoint API 来创建实时终端节点。有关使用 CreateRealtimeEndpoint API 的更多信息,请参阅《Amazon Machine Learning API 参考》中的 https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateRealtimeEndpoint.html。
创建实时终端节点
-
登录 AWS 管理控制台 并打开 Amazon Machine Learning 控制台,网址为https://console.aws.amazon.com/machinelearning/
。 -
在导航栏的 Amazon Machine Learning 下拉菜单中,选择 ML 模型。
-
选择要生成实时预测的模型。
-
在 ML 模型摘要页面上的预测下,选择创建实时终端节点。
此时会显示一个对话框,说明如何为实时预测定价。
-
选择创建。实时终端节点请求发送到 Amazon ML 并进入队列中。实时终端节点的状态为正在更新。
-
实时终端节点就绪之后,状态更改为准备就绪,并且 Amazon ML 显示终端节点 URL。使用终端节点 URL 可通过
PredictAPI 创建实时预测请求。有关使用PredictAPI 的更多信息,请参阅《Amazon Machine Learning API 参考》中的 https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_Predict.html。
定位 Real-time 预测终端节点(控制台)
要使用 Amazon ML 控制台查找 ML 模型的终端节点 URL,请导航到模型的 ML 模型摘要页面。
查找实时终端节点 URL
-
登录 AWS 管理控制台 并打开 Amazon Machine Learning 控制台,网址为https://console.aws.amazon.com/machinelearning/
。 -
在导航栏的 Amazon Machine Learning 下拉菜单中,选择 ML 模型。
-
选择要生成实时预测的模型。
-
在 ML 模型摘要页面上,向下滚动直至您看到预测部分。
-
Real-time 预测中列出了模型的端点 URL。使用 URL 作为您实时预测调用的终端节点 Url。有关如何使用终端节点生成预测的信息,请参阅《Amazon Machine Learning API 参考》中的 https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_Predict.html。
定位 Real-time 预测端点 (API)
在您使用 CreateRealtimeEndpoint 操作创建实时终端节点时,在响应中向您返回终端节点的 URL 和状态。如果您使用控制台创建实时终端节点,或者如果您希望检索以前创建的终端节点的 URL 和状态,请使用您要用来查询实时预测的模型的 ID 调用 GetMLModel 操作。终端节点信息包含在响应的 EndpointInfo 部分中。对于关联了实时终端节点的模型,EndpointInfo 可能类似于:
"EndpointInfo":{ "CreatedAt": 1427864874.227, "EndpointStatus": "READY", "EndpointUrl": "https://endpointUrl", "PeakRequestsPerSecond": 200 }
没有实时终端节点的模型将返回以下内容:
EndpointInfo":{ "EndpointStatus": "NONE", "PeakRequestsPerSecond": 0 }
创建 Real-time 预测请求
示例 Predict 请求有效负载可能类似于下面这样:
{ "MLModelId": "model-id", "Record":{ "key1": "value1", "key2": "value2" }, "PredictEndpoint": "https://endpointUrl" }
PredictEndpoint 字段必须对应于 EndpointInfo 结构的 EndpointUrl 字段。Amazon ML 使用此字段将请求路由到实时预测队列中的相应服务器。
MLModelId 是以前训练的模型(带有实时终端节点)的标识符。
Record 是变量名到变量值的映射。每一对表示一个观察。Record 映射包含对 Amazon ML 模型的输入。这类似于训练数据集中无目标变量的单行数据。无论在训练数据中使用哪种值类型,Record 都包含字符串到字符串映射。
注意
您可以忽略您没有值的变量,不过这可能会减少预测的准确性。您包括的变量越多,模型就越准确。
Predict 请求返回的响应格式取决于进行预测时查询的模型类型。在所有情况下,details 字段包含有关预测请求的信息,特别是包括带有模型类型的 PredictiveModelType 字段。
以下示例显示二进制模型的响应:
{ "Prediction":{ "details":{ "PredictiveModelType": "BINARY" }, "predictedLabel": "0", "predictedScores":{ "0": 0.47380468249320984 } } }
请注意包含预测标签的 predictedLabel 字段,在本例中为 0。Amazon ML 将预测分数与分类截断值进行比较来计算预测标签。
-
您可以检查
GetMLModel操作的响应中的ScoreThreshold字段,或者在 Amazon ML 控制台中查看模型信息,来获取当前与 ML 模型关联的分类截断值。如果您未设置分数阈值,Amazon ML 会使用默认值 0.5。 -
您可以通过检查
predictedScores映射来获取二进制分类模型的确切预测分数。在此映射中,预测标签与确切的预测分数成对使用。
有关二进制预测的更多信息,请参阅解释预测。
以下示例显示来自递归模型的响应。请注意在 predictedValue 字段中找到的预测数值:
{ "Prediction":{ "details":{ "PredictiveModelType": "REGRESSION" }, "predictedValue": 15.508452415466309 } }
以下示例显示多类别模型的响应:
{ "Prediction":{ "details":{ "PredictiveModelType": "MULTICLASS" }, "predictedLabel": "red", "predictedScores":{ "red": 0.12923571467399597, "green": 0.08416014909744263, "orange": 0.22713537514209747, "blue": 0.1438363939523697, "pink": 0.184102863073349, "violet": 0.12816807627677917, "brown": 0.10336143523454666 } } }
与二元分类模型类似,预测 label/class 值可以在predictedLabel现场找到。您可以通过查看 predictedScores 映射,进一步了解预测与各分类相关联的强度。此映射中某个分类的分数越高,预测与该分类的相关性就越强,最高值最终被选择作为 predictedLabel。
有关多分类预测的更多信息,请参阅多类别模型洞察。
删除 Real-Time 终端节点
当您完成实时预测时,请删除实时终端节点以避免产生额外的费用。在您删除终端节点之后,立即停止产生费用。
删除实时终端节点
-
登录 AWS 管理控制台 并打开 Amazon Machine Learning 控制台,网址为https://console.aws.amazon.com/machinelearning/
。 -
在导航栏的 Amazon Machine Learning 下拉菜单中,选择 ML 模型。
-
选择不再需要实时预测的模型。
-
在 ML 模型报告页面上的预测下,选择摘要。
-
选择删除实时终端节点。
-
在删除实时终端节点对话框中,选择删除。