

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 教導尋找相符項目轉換
<a name="machine-learning-teaching"></a>

每個 `FindMatches` 轉換都必須經過教導，來了解哪些項目應視為相符項目，哪些項目又應視為不相符的項目。您可以透過新增標籤至檔案，並將您的選擇上傳至 AWS Glue 來教導您的轉換。

您可以在 AWS Glue 主控台中協調此標記，或是使用 AWS Glue 機器學習 API 操作。

**我應該新增多少次標籤？ 我需要多少標籤？**  
這些問題的解答大部分都取決於您。您必須評估 `FindMatches` 是否交付了您所需要的正確性等級，以及您是否認為進行更多標記對您來說確實有價值。決定這一點的最佳方式是查看在 AWS Glue 主控台中選擇 **Estimate quality (估計品質)** 時可以產生的「Precision (精確度)」、「Recall (取回)」和「Area under the Precision-Recall curve (精確度取回率曲線下方的區域)」指標。在您標記更多組任務後，請重新執行這些指標並驗證他們是否獲得改善。若在標記幾組任務之後，您仍然沒有在您關注的指標上看到改善，表示轉換的品質可能已到達極限。

**為何同時需要真肯定和真否定標籤？**  
`FindMatches` 轉換需要肯定和否定範例，才能了解您視為相符的項目有哪些。若您標記 `FindMatches` 產生的培訓資料 (例如使用 **I do not have labels (我沒有標籤)** 選項)，`FindMatches` 會嘗試為您產生一組「標籤組 ID」。在每個任務中，您都會將相同的「標籤」給予一些記錄，並將不同的「標籤」給予其他記錄。換句話說，任務通常不是全部相同或是全部不同 (但若特定任務為全部「相同」或全部「不同」也沒什麼問題)。

如果您正在使用 **Upload labels from S3 (從 S3 上傳標籤)** 選項教導您的 `FindMatches` 轉換，請嘗試同時包含相符記錄和不相符記錄的範例。您也可以只擁有一個類型。這些標籤可協助您建置更正確的 `FindMatches` 轉換，但您仍然需要使用 **Generate labeling file (產生標記檔案)** 選項標記一些您產生的記錄。

**我該如何強制讓轉換完全照我教導的方式進行比對？**  
`FindMatches` 轉換會從您提供的標籤學習，因此它可能會產生與您所提供標籤不相符的記錄對。若要強制 `FindMatches` 轉換遵守您的標籤，請選取 **FindMatchesParameter** 中的 **EnforceProvidedLabels**。

**當機器學習轉換將實際上不相符的項目識別為相符項目時，您可以使用哪些技術？**  
您可以使用下列技術：
+ 將 `precisionRecallTradeoff` 提高到更高的值。這最後會導致尋找到的相符項目數減少，但應該也會在到達夠高的值時細分您的龐大叢集。
+ 擷取對應至不正確結果的輸出資料列，然後將他們重新格式化成標記集 (移除 `match_id` 資料行並新增 `labeling_set_id` 和 `label` 資料行)。若有需要，請分散 (細分) 成多個標記集，確保標記程式能在指派標籤時記住每個標記集。然後，正確地標記相符的資料集、上傳標籤檔案，然後將它附加到您現有的標籤。這可能會足以教導您的轉換程式要了解模式時應尋找的項目為何。
+ (進階) 最後，請觀察該資料，查看是否有您可以偵測，但系統並未注意到的模式。使用標準 AWS Glue 函數預先處理該資料，來「正常化」**資料。分離您知道對其自身資料行而言重要程度不同的資料，來強調您希望演算法學習的內容。或是從您知道其資料彼此相關的資料行建構合併資料行。