更新指标归因 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新指标归因

更新指标归因时,您可以添加和移除指标以及修改其输出配置。您可以使用 Amazon Personalize 控制台或 Amazon SDK 更新指标归因。 Amazon Command Line Interface

更新指标归因(控制台)

要使用 Amazon Personalize 控制台更新指标归因,您可以在指标归因页面上进行更改。

更新指标归因
  1. 打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home),并登录您的账户。

  2. 选择您的数据集组。

  3. 在导航窗格中,选择指标归因

  4. 在底部,选择指标属性选项卡或指标归因配置选项卡,以开始进行更改。

    • 要添加或删除指标,请选择指标属性选项卡,然后选择编辑属性。在编辑指标属性页面上进行更改,然后选择更新以保存更改。

    • 要更改 Amazon S3 输出存储桶或 IAM 服务角色,请选择编辑指标归因配置选项卡,然后在编辑归因配置页面上进行更改。单击更新以保存您的更改。

更新指标归因 (Amazon CLI)

创建指标归因后,您可以使用 Amazon Command Line Interface (Amazon CLI) 添加和移除指标以及修改其输出配置。以下代码显示了如何使用 update-metric-attribution 命令删除指标:

aws personalize update-metric-attribution \ --metric-attribution-arn metric attribution arn \ --remove-metrics metricName1 metricName2

以下代码显示了如何添加其他指标和指定新的输出配置:

aws personalize update-metric-attribution \ --metric-attribution-arn metric attribution arn \ --metrics-output-config "{\"roleArn\": \"new role ARN\", \"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://new-bucket-name/new-folder-name/\"}}" \ --add-metrics "[{ \"eventType\": \"event type\", \"expression\": \"SUM(DatasetType.COLUMN_NAME)\", \"metricName\": \"metric name\" }]"

如果成功,则 Amazon Personalize 会返回您更新的指标归因的 ARN。要获得所有参数的完整列表,请参阅 UpdateMetricAttribution

更新指标归因 (Amazon SDK)

创建指标归因后,您可以添加或移除指标以及修改其输出配置。以下代码显示了如何从指标归因中移除指标。

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') metricsToRemove = ["metricName1", "metricName2"] response = personalize.update_metric_attribution( metricAttributionArn = "metric attribution ARN", removeMetrics = metricsToRemove )
SDK for Java 2.x
public static void removeMetrics(PersonalizeClient client, String metricAttributionArn, String metric1Name, String metric2Name) { ArrayList<String> metricsToRemove = new ArrayList<>(Arrays.asList(metric1Name, metric2Name)); try { UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder() .metricAttributionArn(metricAttributionArn) .removeMetrics(metricsToRemove) .build(); UpdateMetricAttributionResponse response = client.updateMetricAttribution(request); System.out.println(response); } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import {UpdateMetricAttributionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the update request param export const updateMetricAttributionParam = { metricAttributionArn: "METRIC_ATTRIBUTION_ARN", /* required */ removeMetrics: ["METRIC_NAME_1", "METRIC_NAME_2"] /* specify list of names of metrics to delete */ }; export const run = async () => { try { const response = await personalizeClient.send( new UpdateMetricAttributionCommand(updateMetricAttributionParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

以下代码显示了如何添加其他指标和指定新的输出配置:

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') newMetrics = [{ "eventType": "event type", "expression": "SUM(DatasetType.COLUMN_NAME)", "metricName": "metric name" }] newOutputConfig = { "roleArn": "Amazon Personalize service role ARN", "s3DataDestination": { "kmsKeyArn": "key ARN", "path": "s3://<name of your S3 bucket>/<folder>" } } response = personalize.update_metric_attribution( metricAttributionArn = "metric attribution arn", metricsOutputConfig = newOutputConfig, addMetrics = newMetrics )
SDK for Java 2.x
public static void addMetricsAndUpdateOutputConfig(PersonalizeClient personalizeClient, String metricAttributionArn, String newMetric1EventType, String newMetric1Expression, String newMetric1Name, String newMetric2EventType, String newMetric2Expression, String newMetric2Name, String roleArn, String s3Path, String kmsKeyArn) { try { MetricAttribute newAttribute = MetricAttribute.builder() .eventType(newMetric1EventType) .expression(newMetric1Expression) .metricName(newMetric1Name) .build(); MetricAttribute newAttribute2 = MetricAttribute.builder() .eventType(newMetric2EventType) .expression(newMetric2Expression) .metricName(newMetric2Name) .build(); ArrayList<MetricAttribute> newAttributes = new ArrayList<>(Arrays.asList(newAttribute, newAttribute2)); S3DataConfig newDataDestination = S3DataConfig.builder() .kmsKeyArn(kmsKeyArn) .path(s3Path) .build(); MetricAttributionOutput newOutputConfig = MetricAttributionOutput.builder() .roleArn(roleArn) .s3DataDestination(newDataDestination) .build(); UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder() .metricAttributionArn(metricAttributionArn) .metricsOutputConfig(newOutputConfig) .addMetrics(newAttributes) .build(); UpdateMetricAttributionResponse response = personalizeClient.updateMetricAttribution(request); System.out.println("New metrics added!"); System.out.println(response); } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import {UpdateMetricAttributionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); export const updateMetricAttributionParam = { metricAttributionArn: "METRIC_ATTRIBUTION_ARN", addMetrics: [ { eventType: "EVENT_TYPE", /* required for each metric */ expression: "SUM(DatasetType.COLUMN_NAME)", /* required for each metric */ metricName: "METRIC_NAME", /* required for each metric */ } ], metricsOutputConfig: { roleArn: "ROLE_ARN", /* required */ s3DataDestination: { kmsKeyArn: "KEY_ARN", /* optional */ path: "s3://<name of your output S3 bucket>/<folderName>/", /* optional */ }, } }; export const run = async () => { try { const response = await personalizeClient.send( new UpdateMetricAttributionCommand(updateMetricAttributionParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

如果成功,则 Amazon Personalize 会返回您更新的指标归因的 ARN。要获得所有参数的完整列表,请参阅 UpdateMetricAttribution