「一致の検索」変換のトレーニング
一致と不一致を見分けられるように各 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
変換をトレーニングする場合は、一致レコードと不一致レコードの両方を含めるようにしてください。1 つのタイプのみを使用することもできます。これらのラベルはより正確な FindMatches
変換の構築に役立ちますが、[Generate labeling file (ラベリングファイルの生成)] オプションを使用して生成する一部のレコードには依然としてラベル付けを行う必要があります。
どうしたら、ユーザーがトレーニングしたとおりのマッチングを変換に実行させることができるか?
FindMatches
変換は、ユーザーが指定したラベルから学習するため、指定したラベルを優先しないレコードのペアが生成される場合があります。ユーザーのラベルを優先するように FindMatches
変換を強制するには、 [FindMatchesParameter] の [EnforceProvidedLabels] を選択します。
ML 変換が真の一致ではない項目を一致として識別した場合、どのように対策できますか?
以下の対策を実行できます。
precisionRecallTradeoff
の値をより高くします。これにより、検出される一致の数が減りますが、十分に高い値に達すると、大きなクラスターの分割も行われます。不正確な結果に対応する出力行を取得し、これらの行をラベリングセットとして再フォーマットします (
match_id
列を削除し、labeling_set_id
列およびlabel
列を追加します)。必要に応じて、複数のラベリングセットに分割 (再分割) し、ラベラーが各ラベリングセットに留意しながらラベルの割り当てができるようにします。次に、一致するセットに正しくラベル付けを行い、ラベルファイルをアップロードして既存のラベルに付加します。これにより、パターンを理解するためにどのようなデータが必要であるかについてトランスフォーマーが十分にトレーニングされます。(高度) 最後に、そのデータを確認し、システムが気付いていないパターンを検出できるかどうかを判断します。標準の AWS Glue 関数を使用してそのデータを事前処理し、データを正規化します。データの種類が十分に異なることが判明している場合は、データを種類別に分離し、アルゴリズムに学習させるデータを明確にします。または、複数の列のデータが関連していることが判明している場合は、これらの列を結合します。