行の分割を使用したデータの分割
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
この記事では、Machine Learning Studio (クラシック) のデータの分割モジュールで行の分割オプションを使用する方法について説明します。 このオプションは、トレーニングとテストに使用されるデータセットをランダムまたはいくつかの条件で分割する必要がある場合に特に便利です。
注意
適用対象: Machine Learning Studio (クラシック)のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
行の分割オプションでは、ランダム分割と層化分割の両方がサポートされます。 たとえば、70-30 の分割を指定したり、両方のデータセットで同じようにターゲット変数を使用して10-90 を分割したりすることができます。
機械学習の実験でのデータのパーティション分割に関する一般的な情報については、「データとパーティションの分割と分割」を参照してください。
関連タスク
データの分割モジュールの他のオプションでは、さまざまな方法でデータを分割できます。
正規表現を使用してデータを分割する: 1 つのテキスト列に正規表現を適用し、結果に基づいてデータセットを分割します。
相対式を使用してデータを分割する: 数値列に式を適用し、結果に基づいてデータセットを分割します。
Split レコメンダー dataset: 推奨モデルで使用されるデータセットを分割します。 データセットには、項目、ユーザー、評価の3つの列が必要です。
データセットを2つのグループに分割する
データの 分割 モジュールを Studio (クラシック) の実験に追加し、分割するデータセットを接続します。
[Splitting mode]\(分割モード\) として、[Split rows]\(行の分割\) を選択します。
Fraction of rows in the first output dataset (最初の出力データセット内の行の割合)。 このオプションを使用して、最初 (左側) の出力に送る行の数を決定します。 その他の行はすべて、2 つ目 (右側) の出力に送られます。
比率は、最初の出力データセットに送信される行の割合を示します。したがって、0 から 1 までの 10 進数を入力する必要があります。
たとえば、値として「0.75」と入力した場合、データセットは 75:25 の比率で分割され、最初の出力データセットに 75% の行が送信され、2 番目の出力データセットに 25% の行が送信されます。
2 つのグループに送信するデータの選択をランダム化する場合は、[Randomized spli]\(ランダム分割\) オプションを選択します。 これは、トレーニング用およびテスト用データセットを作成するときに推奨されるオプションです。
ランダムシード: 使用するインスタンスの擬似乱数のシーケンスを初期化する、負でない整数値を入力します。 この既定のシードは、乱数を生成するすべてのモジュールで使用されます。
シードを指定すると、通常、結果は再現可能なものとなります。 分割操作の結果を繰り返す必要がある場合は、乱数ジェネレーターに対してシードを指定する必要があります。 指定しない場合、ランダム シードの既定値は 0 になります。これは、初期のシード値がシステム クロックから取得されることを意味します。 その結果、分割を実行するたびに、データの配分が若干異なる可能性があります。
[Stratified split]\(階層分割\) : このオプションを [True] に設定すると、2 つの出力データセットには、"階層列" または "階層キー列" 内の代表的なサンプル値が確実に含められます。
階層サンプリングの場合、各出力データセットに含められる各ターゲット値の割合がほぼ同じになるようにデータが分割されます。 たとえば、トレーニングセットとテストセットが結果に関してほぼバランスが取れていること、または性別などの他の列についてのバランスが取れていることを確認する必要がある場合があります。
実験を実行するか、モジュールを右クリックして [ 選択したものを実行] を選択します。
例
次の例では、 分割行 モードを使用して単純な分割を実行する方法を示します。
2つの等しい部分に分割
データセットの後に データの分割 モジュールを追加します。その他の変更はありません。 既定では、このモジュールはデータセットを同等な 2 つの部分に分割します。 データの行数が奇数の場合、余りの行は 2 番目の出力に含まれます。
3分の1に分割
データセットを2つの部分に分割するとします。3番目のデータはトレーニングに使用され、残りはテスト用または追加の分割用です。
これを行うには、 データの分割 モジュールを追加し、 最初の出力の行の割合 を0.33 に設定します。 2 番目の出力には、残りの 3 分の 2 が含まれます。
2番目の出力を等しい部分に分割するには、 データの分割 モジュールの別のインスタンスを追加します。今回は、50-50 split の既定値を使用します。
テクニカル ノート
このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。
実装の詳細
このモジュールでは、データセットに少なくとも2つの行が含まれている必要があります。それ以外の場合は、エラーが発生します。
このオプションを使用して必要な行数を指定する場合、指定する数は正の整数とし、さらにデータセット内の行の総数よりも小さくする必要があります。
すべてのパーセンテージ値は、0 ~ 1 の範囲で指定する必要があります。
数値または割合を1未満の浮動小数点数として指定し、パーセント記号 (%) を使用しない場合、数値は比例値として解釈されます。
層化サンプリングの追加要件
Streata 列には、公称データまたはカテゴリデータのみを含めることができます。 列に連続する数値データが含まれている場合は、エラーメッセージが生成されます。
一意の値が多すぎる列は、層化には適していません。 いくつかのカテゴリまたはグループ化の値を事前に折りたたむことをお勧めします。