データの分割

データセットの複数の行を 2 つのセットにパーティション分割します

カテゴリ: データ変換/サンプルと分割

注意

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

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

モジュールの概要

このトピックでは、Azure Machine Learning Studio (クラシック) の データの分割 モジュールを使用して、データセットを2つの異なるセットに分割する方法について説明します。

このモジュールは、データをトレーニング セットとテスト セットに分割する必要がある場合に特に便利です。 データが分割される方法をカスタマイズすることもできます。 データのランダム化をサポートするオプションもあれば、特定のデータの種類またはモデルの種類に合わせて調整されるオプションもあります。

データの分割を構成する方法

ヒント

分割モードを選択する前に、すべてのオプションに目を通して、ご自分で必要とする分割の種類を決定してください。 分割モードを変更すると、その他のすべてのオプションがリセットされる可能性があります。

  1. データの 分割 モジュールを実験に studio で追加します。 このモジュールは、[Data Transformation](データ変換)[Sample and Split](サンプルおよび分割) カテゴリにあります。

  2. [分割モード]: 使用するデータの種類と分割方法に応じて、次のいずれかのモードを選択します。 各分割モードには、さまざまなオプションがあります。 詳細な手順と例については、次のトピックをクリックしてください。

    • [行の分割]: データを2つの部分に分割するだけの場合は、このオプションを使用します。 各分割に配置するデータの割合を指定できます。既定では、データは 50 対 50 の割合で分割されます。

      また、各グループでの行の選択をランダム化し、層化サンプリングを使用することもできます。 層化サンプリングでは、2 つの結果データセット間で値を均等に分配する対象とする 1 つのデータ列を選択する必要があります。

    • レコメンダー Split: レコメンダーシステムで使用するデータを準備する場合は、常にこのオプションを選択します。 データセットをトレーニンググループとテストグループに分割し、ユーザーと項目のペアや評価などの重要な値がグループ間で均等に分割されていることを確認するのに役立ちます。

    • [正規表現の分割]: 1 つの列の値をテストしてデータセットを分割する場合に、このオプションを選択します。

      たとえば、センチメントを分析する場合は、テキスト フィールド内に特定の製品名が存在するかどうかを確認してから、目的の製品名が含まれる行とそれが含まれない行にデータセットを分割することが可能です。

    • 相対式の分割: 数値列に条件を適用する場合に、このオプションを使用します。 数値は日付/時刻フィールドや、年齢または金額を含む列、または割合にもなることがあります。 たとえば、アイテムのコスト、年齢の範囲別のグループ ユーザー、またはカレンダー日付別に異なるデータに応じて、データ セットを分割する場合があります。

必要条件

  • データの分割 では、一度に最大2つのデータセットセットを作成できます。これらのセットは排他的である必要があります。

    そのため、複数の条件と出力を含む複雑な分割がある場合は、複数の 分割データ モジュールを連結する必要がある場合があります。

    または、CASE ステートメントと SQL 変換の適用 モジュールを使用することもできます。

  • このモジュールは、データを削除したり、データセットからデータを削除したりすることはありません。これは、モジュールの1番目と2番目の出力で指定されたとおりにデータを分割するだけです。

  • レコメンダーシステムのデータを分割するには、いくつかの追加要件があります。 一般に、データセットは、ユーザーと項目のペアまたはユーザー項目の評価3要素でのみ構成できます。 したがって、 データの分割 モジュールは、特徴の型のデータと混同しないように、3つ以上の列を含むデータセットでは機能しません。 データセットに含まれる列の数が多すぎると、次のエラーが発生する可能性があります。

    エラー 0022: 入力データセットで選択された列の数が x と等しくありません

    回避策として、 データセット内の 列の選択を使用していくつかの列を削除した後、[ 列の追加] を使用して列を追加します。 または、モデルで使用する多くの機能がデータセットに含まれている場合は、別のオプションを使用してデータセットを分割し、マッチボックスレコメンダーをトレーニングするのではなく、トレーニングモデルを使用してモデルをトレーニングします。

データの分割モジュールを使用する方法の例については、 Azure AI Galleryを参照してください。

  • 二項分類のクロス検証: 成人データセット: 20% のサンプリングレートが適用され、より小さなランダムサンプリングデータセットが作成されます。 (元の国勢調査データセットには 30,000 を超える行がありました。トレーニング データセットでは約 6500 です)。 データセットの欠損値はクリーニングされ、トレーニングとクロス検証のために 5 つの異なるモデルに渡されます。

テクニカル ノート

次の要件は、 データの分割のすべての使用に適用されます。

  • 入力データセットには、少なくとも2つの行が含まれている必要があります。または、エラーが発生します。
  • このオプションを使用して必要な行数を指定する場合、指定する数は正の整数とし、さらにデータセット内の行の総数よりも小さくする必要があります。
  • 数をパーセンテージとして指定する場合 (つまり、"%" 文字を含む文字列を使用する場合)、値はパーセンテージとして解釈されます。 パーセンテージ値はすべて、0 ~ 100 の範囲内 (0 と 100 は含まない) とする必要があります。
  • 指定する数またはパーセンテージが 1 未満の浮動小数点数であり、パーセント記号 "%" を使用しない場合、数は比例値として解釈されます。
  • 層化 split に対してオプションを使用する場合は、[ata] 列を選択して、出力データセットをサブグループ別にさらに分割できます。

想定される入力

名前 Type 説明
データセット データ テーブル 分割するデータセット

モジュールのパラメーター

名前 Type Range 省略可能 説明 Default
分割モード 分割モード 行の分割、レコメンダー Split、正規表現、または相対式 必須 Split Rows (行の分割) データセットを分割する方法を選択します

出力

名前 Type 説明
結果のデータセット 1 データ テーブル 選択した行を含むデータセット
結果のデータセット 2 データ テーブル その他のすべての行を含むデータセット

関連項目

サンプルと分割
パーティションとサンプル
モジュールの一覧 (アルファベット順)