データ再配置 - Amazon Machine Learning

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

データ再配置

データ再配置機能を使用すると、入力データの一部にのみ基づいてデータソースを作成できます。例えば、Amazon ML コンソールの [Create ML Model] (ML モデルの作成) ウィザードを使用して ML モデルを作成し、デフォルトの評価オプションを選択すると、Amazon ML は自動的に ML モデル評価のためにデータの 30% を予約して、残りの 70% をトレーニングに使用します。この機能は、Amazon ML のデータ再編成機能によって有効になります。

Amazon ML API を使用してデータソースを作成する場合は、入力データのどの部分に新しいデータソースが基づいているかを指定できます。これを行うには、DataRearrangement パラメータの指示を CreateDataSourceFromS3CreateDataSourceFromRedshift API、または CreateDataSourceFromRDS API に渡します。DataRearrangement 文字列の内容は、データの開始位置と終了位置を含む JSON 文字列で、パーセンテージ、補完フラグ、および分割戦略で表されます。たとえば、次の DataRearrangement 文字列は、最初の 70% のデータがデータソースの作成に使用されることを指定します。

{ "splitting": { "percentBegin": 0, "percentEnd": 70, "complement": false, "strategy": "sequential" } }

DataRearrangement パラメータ

Amazon ML がデータソースを作成する方法を変更するには、以下のパラメータを使用します。

PercentBegin (オプション)

percentBegin を使用して、データソースのデータの開始位置を指定します。percentBeginpercentEnd を指定しなければ、データソースの作成時に Amazon ML にすべてのデータが含まれます。

有効な値は 0100 です。

PercentEnd (オプション)

percentEnd を使用して、データソースのデータの終了位置を指定します。percentBeginpercentEnd を指定しなければ、データソースの作成時に Amazon ML にすべてのデータが含まれます。

有効な値は 0100 です。

補完 (オプション)

complement パラメータは、Amazon ML が percentBegin から percentEnd の範囲に含まれていないデータを使用してデータソースを作成するようにします。complement パラメータは、トレーニングと評価のための補完的なデータソースを作成する必要がある場合に便利です。補完的なデータソースを作成するには、percentBegin パラメータで percentEnd および complement と同じ値を使用します。

たとえば、次の 2 つのデータソースはデータを共有せず、モデルをトレーニングおよび評価するために使用できます。最初のデータソースには 25% のデータがあり、2 番目のデータソースは 75% のデータがあります。

評価のためのデータソース

{ "splitting":{ "percentBegin":0, "percentEnd":25 } }

トレーニングのためのデータソース

{ "splitting":{ "percentBegin":0, "percentEnd":25, "complement":"true" } }

有効な値は、true および false です。

戦略 (オプション)

Amazon ML がデータソースのデータをどのように分割するかを変更するには、strategy パラメータを使用します。

strategy パラメータのデフォルト値は sequential です。つまり、Amazon ML は、レコードが入力データに表示される順序で、データソースの percentBeginpercentEnd 間のすべてのデータレコードを取得します。

次の 2 つの DataRearrangement 行は、順番に順序付けられたトレーニングと評価のデータソースの例です。

評価のためのデータソース。{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential"}}

トレーニングのためのデータソース。{"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential", "complement":"true"}}

データをランダムに選択してデータソースを作成するには、strategy パラメータを random に設定し、ランダムデータ分割のシード値として使用する文字列を指定します (たとえば、データへの S3 パスをランダムなシード文字列として使用できます)。ランダムな分割戦略を選択した場合、Amazon ML は各データ行に擬似乱数を割り当て、percentBeginpercentEnd の間に割り当てられた数を持つ行を選択します。バイトオフセットをシードとして使用して疑似乱数が割り当てられるため、データを変更すると異なる分割が発生します。既存の順序はすべて保存されます。ランダムな分割戦略により、トレーニングデータと評価データの変数が同様に分散されます。入力データに暗黙的な並べ替え順序が含まれている場合に役立ちます。そうでない場合は、類似しないデータレコードを含むトレーニングおよび評価データソースが作成されます。

次の 2 つの DataRearrangement 行は、非連続的なトレーニングと評価のデータソースの例です。

評価のためのデータソース

{ "splitting":{ "percentBegin":70, "percentEnd":100, "strategy":"random", "strategyParams": { "randomSeed":"RANDOMSEED" } } }

トレーニングのためのデータソース

{ "splitting":{ "percentBegin":70, "percentEnd":100, "strategy":"random", "strategyParams": { "randomSeed":"RANDOMSEED" } "complement":"true" } }

有効な値は、sequential および random です。

(オプション) 戦略。RandomSeed

Amazon ML は [randomSeed] を使用してデータを分割します。API のデフォルトのシードは空の文字列です。ランダムな分割戦略のシードを指定するには、文字列を渡します。random Seed について詳しくは、「Amazon Machine Learning デベロッパーガイド」の「データのランダムな分割」を参照してください。

Amazon ML でクロスバリデーションを使用する方法を示すサンプルコードについては、「Github Machine Learning Samples」を参照してください。