本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 AWS Glue 中优化机器学习转换
您可以在 AWS Glue 中优化机器学习转换来改进数据清理作业的结果,从而实现您的目标。要改进转换,您可以通过生成标记集,添加标签,然后重复这些步骤几次,直到获得所需结果来指导转换。您也可以通过更改一些机器学习参数来进行优化。
有关机器学习转换的更多信息,请参阅使用 AWS Lake Formation 匹配记录FindMatches。
机器学习测量值
要了解用于优化机器学习转换的测量值,您应熟悉以下术语:
- 真阳性 (TP)
-
转换正确找到的数据中的匹配项有时称作命中。
- 真阴性 (TN)
-
转换正确拒绝的数据中的不匹配项。
- 假阳性 (FP)
-
转换错误地分类为匹配项的数据中的不匹配项有时称作假警报。
- 假阴性 (FN)
-
转换未找到的数据中的匹配项有时称作未命中。
有关机器学习中使用的术语的更多信息,请参阅 Wikipedia 中的 混淆矩阵
要优化您的机器学习转换,您可以在转换的 Advanced properties (高级属性) 中更改以下测量值。
在查准率和查全率之间做出决定
每个 FindMatches
转换均包含一个 precision-recall
参数。您可以使用此参数指定下列项之一:
-
如果您更关心转换错误地报告两个记录匹配,而实际上它们不匹配,则您应强调 precision (查准率)。
-
如果您更关心转换未能检测到真正匹配的记录,则您应强调 recall (查全率)。
您可以在 AWS Glue 控制台上或使用 AWS Glue 机器学习 API 操作进行此权衡。
何时倾向于查准率
如果您更关注风险,则注重精度 FindMatches
会在实际与不匹配时产生一对匹配记录。 为了提高精度,请选择 更高 精确回调折现值。对于较大的值,FindMatches
转换需要更多的证据来决定是否应匹配一对记录。将转换调整为偏向于表示记录不匹配。
例如,假设您使用 FindMatches
检测视频目录中的重复项,并且您向转换提供更大的查准率-查全率值。如果您的转换错误地检测到 星球大战: 新的希望 与 星球大战: 帝国烈焰,想要 新的希望 可能 帝国烈焰. 这将是一个糟糕的客户体验。
但是,如果转换无法检测到 星球大战: 新的希望 和 星球大战: 发作IV—新希望 是同一项,客户可能最初混淆,但最终可能将其识别为同一项。这将是一个错误,但不像以前的情况那么糟糕。
何时倾向于查全率
如果您更关心风险,请进行回想, FindMatches
转换结果可能无法检测到实际上与匹配的一对记录。 要赞成回忆,请选择 较低 精确回调折现值。对于较小的值,FindMatches
转换需要更少的证据来决定是否应匹配一对记录。将转换调整为偏向于表示记录匹配。
例如,这可能是安全组织的优先事项。假设您将客户与一系列已知的欺诈者进行匹配,并且确定客户是否为欺诈者非常重要。您使用 FindMatches
将欺诈者名单与客户名单进行匹配。每当 FindMatches
检测到两个名单之间的匹配项时,都会指派一名审计人员来验证该人员实际上是否为欺诈者。您的组织可能更愿意选择查全率而不是查准率。换句话说,当客户不是欺诈者时,您宁愿让审计人员手动审查并拒绝某些情况,而不是未能识别出客户实际上在欺诈者名单上。
如何倾向于查准率和查全率
提高查准率和查全率的最佳方法是标记更多数据。在标记更多数据时,FindMatches
转换的总体准确性将提高,从而提高查准率和查全率。然而,即使对于最准确的转换,也始终存在一个灰色区域,您需要在该区域中尝试倾向于查准率或查全率,或者在中间选择一个值。
在准确性和成本之间做出决定
每个 FindMatches
转换均包含一个 accuracy-cost
参数。您可以使用此参数指定下列项之一:
-
如果您更关心准确报告两个记录匹配的转换,则应强调准确性。
-
如果您更关心转换的运行成本或速度,则应强调更低成本。
您可以在 AWS Glue 控制台上或使用 AWS Glue 机器学习 API 操作进行此权衡。
何时倾向于准确性
如果您更关心 find
matches
结果不包含匹配项的风险,则倾向于准确性。要倾向于准确性,请选择较大 准确性-成本权衡值。对于较大的值,FindMatches
转换需要更多时间来更详细地搜索正确匹配的记录。请注意,此参数不会使错误地将不匹配记录对称为匹配项的可能性降低。转换将调整为倾向于花更多时间查找匹配项。
何时倾向于成本
如果您更关心运行 find
matches
转换的成本,而不是找到多少匹配项,请倾向于成本。要倾向于成本,请选择较小 准确性-成本权衡值。对于较小的值,运行 FindMatches
转换所需的资源更少。转换将调整为倾向于查找更少的匹配项。如果在倾向于较低成本时结果是可接受的,请使用此设置。
如何倾向于准确性和较低成本
检查更多记录对以确定它们是否匹配需要更多的机器时间。如果您想减少成本而不降低质量,则可执行以下几个步骤:
-
消除数据源中您不关心匹配的记录。
-
从您的数据源中消除您确信在做出匹配/不匹配决策时没有用的列。确定这一点的一个好方法是消除您认为不会影响您就一组记录是否“相同”做出决定的列。
指导查找匹配项转换
必须为每个 FindMatches
转换指导什么应被视为匹配项,什么不应被视为匹配项。您可以通过将标签添加到文件并将您的选择上传到 AWS Glue 来指导您的转换。
您可以在 AWS Glue 控制台上或使用 AWS Glue 机器学习 API 操作来编排此标签。
我应添加多少次标签? 我需要多少个标签?
这些问题的答案主要取决于您。您必须评估 FindMatches
是否提供您所需的准确性,以及您是否认为额外的标签工作对您来说是值得的。决定这一点的最佳方法是查看“查准率”、“查全率”和“查准率查全率曲线下的面积”指标,您可以在
AWS Glue 控制台上选择 Estimate quality (估计质量) 时生成这些指标。在标记多组任务后,请重新运行这些指标并验证它们是否已得到改进。如果在标记几组任务后,您没有看到您关注的指标有所改进,则转换质量可能已达到稳定水平。
为何需要真阳性和真阴性标签?
FindMatches
转换需要阳性和阴性示例来了解您认为的匹配项。如果标记 FindMatches
生成的训练数据(例如,使用 I do not have labels (我没有标签) 选项),则 FindMatches
会尝试为您生成一组“标签集 ID”。在每个任务中,您向一些记录添加相同的“标签”,向其他记录添加不同的“标签”。换句话说,任务通常不是完全相同的,也不是完全不同的(但如果某个特定任务完全“相同”或完全“不相同”,也没关系)。
如果您使用 Upload labels from S3 (从 S3 上传标签) 选项指导 FindMatches
转换,请尝试同时包含匹配记录和不匹配记录的示例。仅具有一种类型是可以接受的。这些标签可帮助您构建更准确的 FindMatches
转换,但您仍需使用 Generate labeling file (生成标签文件) 选项来为生成的部分记录添加标签。
如何强制转换过程与我必须的内容完全匹配?
FindMatches
转换从您提供的标签中学习,因此它可能会生成不遵循提供的标签的记录对。要强制 FindMatches
转换尊重您的标签,选择 EnforceProvidedLabels 英寸 FindMatchesParameter.
当 ML 转换将项目标识为非真匹配项的匹配项时,您可以使用哪些方法?
您可以使用以下方法:
-
将
precisionRecallTradeoff
增至更大的值。这最终会导致找到较少的匹配项,但是当它达到足够高的值时,它也应分解您的大集群。 -
接受与错误结果对应的输出行并将其重新格式化为标签集(删除
match_id
列并添加labeling_set_id
和label
列)。如有必要,可拆分(细分)成多个标签集,以确保贴标签者在分配标签时能记住每个标签集。然后,正确标记匹配集,上传标签文件并将其附加到现有标签。这可能会让您的转换器充分了解它需要什么来理解模式。 -
(高级)最后,查看该数据以了解是否存在可以检测到系统未注意到的模式。通过使用标准 AWS Glue 函数规范化 数据来预处理数据。通过将重要程度不同的数据分离到它们自己的列中,突出显示您希望算法从中学到的内容。或者,从已知其数据相关的列构造组合列。