

# 指导查找匹配项转换
<a name="machine-learning-teaching"></a>

必须为每个 `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` 转换遵守标签，请在 **FindMatchesParameter** 中选择 **EnforceProvidedLabels**。

**当 ML 转换将项目标识为非真匹配项的匹配项时，您可以使用哪些方法？**  
您可以使用以下方法：
+ 将 `precisionRecallTradeoff` 增至更大的值。这最终会导致找到较少的匹配项，但是当它达到足够高的值时，它也应分解您的大集群。
+ 接受与错误结果对应的输出行并将其重新格式化为标签集（删除 `match_id` 列并添加 `labeling_set_id` 和 `label` 列）。如有必要，可拆分（细分）成多个标签集，以确保贴标签者在分配标签时能记住每个标签集。然后，正确标记匹配集，上传标签文件并将其附加到现有标签。这可能会让您的转换器充分了解它需要什么来理解模式。
+ （高级）最后，查看该数据以了解是否存在可以检测到系统未注意到的模式。通过使用标准 AWS Glue 函数*规范化*数据来预处理数据。通过将重要程度不同的数据分离到它们自己的列中，突出显示您希望算法从中学到的内容。或者，从已知其数据相关的列构造组合列。