相対式を使用してデータセットを分割する

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

この記事では、Machine Learning Studio (クラシック) の [データの分割] モジュールで [相対式の分割] オプションを使用する方法について説明します。 このオプションは、数値式を使用してデータセットをトレーニングデータセットとテスト データセットに分割する必要がある場合に役立ちます。 例:

  • 40 歳以上 40 歳以下
  • テスト スコアが 60 以上と 60 未満
  • ランク値 1 と他のすべての値

注意

適用対象: Machine Learning Studio (クラシック) のみ

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

データを分割するには、データ内で 1 つの数値列を選択し、各行の評価に使用する式を定義します。 相対式には、列名、値、および大なり、小なり、等しい、等しくないなどの演算子を含める必要があります。

このオプションでは、データセットが 2 つの グループに分割されます。

機械学習実験のデータ パーティション分割に関する一般的な情報については、「 データの分割 」と「 パーティション分割と分割」を参照してください。

データの分割モジュールのその他のオプション:

相対式を使用してデータセットを分割する

  1. Stuio の実験に データの分割 モジュールを追加し、分割するデータセットへの入力として接続します。

  2. [Splitting mode]\(分割モード\) として、[relative expression split]\(相対表現分割\) を選択します。

  3. [ リレーショナル式 ] テキスト ボックスに、1 つの列に対して数値比較操作を実行する式を入力します。

    • 列には、日付/時刻データ型など、任意の数値データ型の数値が含まれています。

    • 式では、1 つの列名の最大値を参照できます。

    • AND 演算にはアンパサンド文字 (&) を使用し、OR 演算にはパイプ文字 (|) を使用します。

    • サポートされている演算子は、<><=>===!= です。

    • () を使用して、演算をグループ化することはできません。

    アイデアについては、「例」セクション 参照してください。

  4. 実験を実行するか、モジュールを右クリックして [ 選択した実行] を選択します。

    式によってデータセットは 2 つの行セットに分割されます。一方は、条件と一致する値を含む行のセット、もう一方は残りのすべての行のセットです。

    追加の分割操作を実行する必要がある場合は、*Split Data の 2 番目のインスタンスを追加するか、 SQL 変換の適用 モジュールを使用して CASE ステートメントを定義します。

相対式の例

次の例では、データの分割モジュールの [相対式 ] オプションを使用してデータセットを 分割 する方法を示します。

暦年の使用

一般的なシナリオは、データセットを年で分割することです。 次の式を使うと、列 Year の値が 2010 より大きいすべての行が選択されます。

\"Year" > 2010

日付式は、データ列に含まれるすべての日付部分を考慮する必要があり、データ列の日付の形式は一貫している必要があります。

たとえば、 形式 mmddyyyyを使用する日付列では、式は次のようになります。

\"Date" > 1/1/2010

列インデックスの使用

次の式は、列インデックスを使用して、データセットの最初の列から 30 以下の値 (20 を除く) を含むすべての列を選択する方法を示しています。

(\0)<=30 & !=20

複数の分割を使用した時間値に対する複合演算

ログ データのテーブルを、実行に時間のかかるクエリのグループに分割するとします。 列 の次の相対式を使用して、 Elapsed1 分以上実行されたクエリを取得できます。

\"Elapsed" >00:01:00

応答時間が 1 分未満で 30 秒を超えるクエリを取得するには、右側の出力に Split Data の別のインスタンスを追加し、次のような式を使用します。

\"Elapsed" <:00:01:00 & >00:00:30

日付値でデータセットを分割する

次の相対式は、 列 の日付値を使用してデータセットを分割します dt1

\"dt1" > 10-08-2015

日付が 10-08-2015 より大きい行は、最初の (左) 出力データセットに追加されます。

日付が 10-08-2015 以前の行は、2 番目 (右) の出力データセットに追加されます。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

制限

データセットの相対式には、次の制限が適用されます。

  • 相対式は、数値データ型と日付/時刻データ型にのみ適用できます。
  • 相対表現が参照できる列名は最大で 1 つです。
  • AND 操作にはアンパサンド文字 (&)、OR 操作にはパイプ文字 (|) を使用します。
  • 相対式には、 の演算子を<>=><===使用できます。!=
  • かっこを使用したグループ化操作はサポートされていません。

こちらもご覧ください

サンプルおよび分割
パーティションとサンプル