レシピ形式リファレンス - Amazon Machine Learning

Amazon Machine Learning サービスの更新や、その新しいユーザーの受け入れは行っていません。このドキュメントは既存のユーザー向けに提供されていますが、更新は終了しています。詳細については、「Amazon Machine Learning とは」を参照してください。

レシピ形式リファレンス

Amazon ML レシピには、機械学習プロセスの一部としてデータを変換する手順が含まれています。レシピは JSON に似た構文を使用して定義されていますが、通常の JSON の制限の上に追加の制限があります。レシピには以下のセクションがあり、ここに示す順序で表示される必要があります。

  • グループ は、複数の変数をグループ化でき、変換の適用がしやすくなります。たとえば、ウェブページのフリーテキスト部分 (タイトル、本文) と関係があるすべての変数のグループを作成し、これらのすべての部分を一度に変換することができます。

  • 割り当ては、処理中に再利用できる中間の名前付き変数の作成ができます。

  • 出力は、学習プロセスで使用される変数と、これらの変数に適用される変換 (存在する場合) を定義します。

グループ

グループ内のすべての変数を一括して変換したり、これらの変数を変換せずに機械学習に使用するために、変数のグループを定義できます。デフォルトでは、Amazon ML は以下のグループを作成します。

ALL_TEXT、ALL_NUMERIC、ALL_CATEGORICAL、ALL_BINARY –データソーススキーマで定義された変数に基づくタイプ固有のグループ。

注記

ALL_INPUTS でグループを作成することはできません。

これらの変数は、定義されていないレシピの出力セクションで使用できます。また、既存のグループに変数を追加または削除することで、または、変数のコレクションから直接、カスタムグループを作成することもできます。次の例では、3 つすべてのアプローチとグループ化の割り当ての構文を示します。

"groups": { "Custom_Group": "group(var1, var2)", "All_Categorical_plus_one_other": "group(ALL_CATEGORICAL, var2)" }

グループ名はアルファベット文字で始まる必要があり、長さは 1 〜 64 文字です。グループ名がアルファベット文字で始まらない場合、または特殊文字 (, ' " \t \r \n ( ) \) が含まれている場合は、その名前を引用符で囲んでレシピに含める必要があります。

割り当て

利便性と可読性のために、1 つまたは複数の変換を中間変数に割り当てることができます。たとえば、email_subject という名前のテキスト変数があり、それに小文字の変換を適用すると、結果の変数に email_subject_lowercase という名前を付けることができ、レシピ内のどこでもその変数を簡単に追跡することができます。また、割り当てを連鎖させて、指定した順序で複数の変換を適用することもできます。次の例は、レシピ構文の単一および連鎖の割り当てを示しています。

"assignments": { "email_subject_lowercase": "lowercase(email_subject)", "email_subject_lowercase_ngram":"ngram(lowercase(email_subject), 2)" }

中間変数はアルファベット文字で始まる必要があり、長さは 1 〜 64 文字です。名前がアルファベットで始まらない場合、または特殊文字 (, ' " \t \r \n ( ) \) が含まれている場合は、その名前を引用符で囲んでレシピに含める必要があります。

[Outputs] (出力)

出力セクションは、どの入力変数が学習プロセスに使用されるか、どの変換が適用されるかを制御します。空の、または、存在しない出力セクションは、学習プロセスにデータが渡されないため、エラーとなります。

最も単純な出力セクションには、定義済みの ALL_INPUTS グループが含まれていて、Amazon ML が学習用にデータソースで定義されているすべての変数を使用するように指示します。

"outputs": [ "ALL_INPUTS" ]

出力セクションは、Amazon ML にこれらのグループのすべての変数を使用するように指示することで、他の定義済みグループを参照することもできます。

"outputs": [ "ALL_NUMERIC", "ALL_CATEGORICAL" ]

出力セクションはカスタムグループを参照することもできます。次の例では、前の例のグループ割り当てセクションで定義されたカスタムグループの 1 つのみが機械学習に使用されます。他のすべての変数は削除されます。

"outputs": [ "All_Categorical_plus_one_other" ]

出力セクションは、割り当てセクションで定義された変数割り当てを参照することもできます。

"outputs": [ "email_subject_lowercase" ]

また、入力変数または変換は、出力セクションで直接定義できます。

"outputs": [ "var1", "lowercase(var2)" ]

出力は、学習プロセスで使用できると予想されるすべての変数と変換された変数を明示的に指定する必要があります。たとえば、var1 と var2 のデカルト積を出力に含めるとします。raw 変数 var1 と var2 の両方も含める場合は、出力セクションに raw 変数を追加する必要があります。

"outputs": [ "cartesian(var1,var2)", "var1", "var2" ]

出力には、変数とともにコメントテキストを追加して、読みやすくするためのコメントを含めることができます。

"outputs": [ "quantile_bin(age, 10) //quantile bin age", "age // explicitly include the original numeric variable along with the binned version" ]

出力セクション内でこれらのアプローチをすべて組み合わせて利用することができます。

注記

レシピを追加するときに Amazon ML コンソールでコメントを入力することはできません。

完全なレシピの例

以下の例は、前述の例で紹介されたいくつかのビルトインデータプロセッサを示しています。

{ "groups": { "LONGTEXT": "group_remove(ALL_TEXT, title, subject)", "SPECIALTEXT": "group(title, subject)", "BINCAT": "group(ALL_CATEGORICAL, ALL_BINARY)" }, "assignments": { "binned_age" : "quantile_bin(age,30)", "country_gender_interaction" : "cartesian(country, gender)" }, "outputs": [ "lowercase(no_punct(LONGTEXT))", "ngram(lowercase(no_punct(SPECIALTEXT)),3)", "quantile_bin(hours-per-week, 10)", "hours-per-week // explicitly include the original numeric variable along with the binned version", "cartesian(binned_age, quantile_bin(hours-per-week,10)) // this one is critical", "country_gender_interaction", "BINCAT" ] }