データの結合
重要
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 (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
2 つのデータセットを結合します
カテゴリ: データ変換/操作
注意
適用対象: Machine Learning Studio (クラシック) のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) でデータの結合モジュールを使用して、データベース スタイルの結合操作を使用して 2 つのデータセットをマージする方法について説明します。
2 つのデータセットで結合を実行するには、1 つのキー列で関連 付けする 必要があります。 複合キーはサポートされません。
[Join Data]\(データの結合\) を構成する方法
[Machine Learning Studio (クラシック) で、結合するデータセットを追加し、[データの結合] モジュールを実験にドラッグします。
このモジュールは、 [操作] の下の [データ変換] カテゴリ内にあります。
データセットを [Join Data]\(データの結合\) モジュールに接続します。
データ 結合モジュール は右外部結合をサポートしないので、特定のデータセットの行が出力に含まれるようしたい場合は、そのデータセットが左側の入力に含まれている必要があります。
[ 列セレクターの起動] をクリックして、左側の入力でデータセットの 1 つのキー列を選択します。
[ 列セレクターの起動] をクリックして、適切な入力でデータセットの 1 つのキー列を選択します。
テキスト列 で結合 し、結合で大文字と小文字の区別が維持される場合は、 [大文字と小文字の一致] オプションを選択します。
たとえば、このオプションを選択した場合、
A1000
は とは異なるキー値と見なされますa1000
。このオプションをオフにすると、
A1000
大文字と小文字の区別は適用されません。これは と同じと見なされます。a1000
[結合の種類] ドロップ ダウン リストを使用してデータセットの結合方法を指定します。 種類:
内部結合: 内部 結合が 一般的な結合操作です。 キー列の値が一致する場合にのみ、結合された行が返されます。
左外部結合:"左外部結合" では、左側のテーブルのすべての行について結合された行が返されます。 右側のテーブル内の行と一致する行が左側のテーブルにない場合、欠損値に対する置換値を指定していない限り、返される行には右側のテーブルに由来するすべての列の欠損値が含まれます。
完全外部結合:"完全外部結合" では、左側のテーブル (table1) と右側のテーブル (table2) のすべての行が返されます。
右側のテーブルに一致する行がない左側のテーブル内の各行について、結合結果には、右側のテーブルの欠損値を含む行が含まれます。
左側のテーブルに一致する行がない右側のテーブル内の各行について、結合結果には、左側のテーブルのすべての列の欠損値を含む行が含まれます。
左半結合:"左半結合" では、キー列の値が一致すると、左側のテーブルの値のみが返されます。
オプションについては、結合 されたテーブルに適切なキー 列を保持します。
- 結果に 1 つのキー列を取得するオプションの選択を解除します。
- 両方の入力テーブルのキーを表示するには、 オプションを選択したままにします。
実験を実行するか、[データの結合] モジュールを選択し、[選択した 実行] を選択して結合を実行します。
結果を表示するには、[データの結合] モジュールを右 クリックし、[ 結果データセット] を選択して、[視覚化] をクリック します。
例
このモジュールの使用例については、次のAzure AI Gallery。
がんの検出: 結合データを 使用して、陽性のトレーニング ケースと、ケースの割合が調整された後の負のトレーニング ケースを組み合わせます。
映画の推奨事項: 2 つのデータセットが結合され、映画 ID ではなく、推奨される映画タイトルを提示できます。
学生のパフォーマンスの予測: このサンプルでは、 データの結合 を使用して新機能を取り込む。
テクニカル ノート
このセクションでは、実装の詳細と、よく寄せられる質問への回答について説明します。
制限
同じ名前を持つ 2 つの列を結合されたデータセットに含めることはできません。 左右のデータセットに重複する列名がある場合は、数値サフィックスが右側のデータセットの列名に追加され、一意になります。
たとえば、両方のデータセットに Month という名前の列がある場合、左側のデータセットの列はそのまま残り、右側のデータセットの列の名前は Month (1) になります。
キー値の比較に使用されるアルゴリズムは、ハッシュ強制です。
結合されたデータセットの各列では、入力データセットの対応する列がカテゴリの場合にカテゴリ型が保持されます。
左外部結合で欠損値がある場合、欠損値に対するカテゴリ レベルが左側のデータセット内に作成されます。 これは、結合した (右の) データセットに欠損値がない場合でも同様です。
複合キーのテーブルを結合する方法
複合キーを使用するテーブルを結合する必要がある場合 (つまり、主キーは 2 つの独立した列に依存します)、次のようなモジュールを使用して 2 つのキー列の内容を連結します。
-
たとえば、R スクリプト内の follwing のようなコードを使用して、ハイフンを区切り記号として使用して入力データフレームの最初と 2 番目の列を連結します。
paste(inputdf$Col1,inputdf$Col2,sep="-")
-
SQLite の連結演算子は です
||
。
キーを持つテーブルを結合する方法
データセットにキー列がない場合でも、キーを生成するか、列の追加モジュールを使用して、別のデータセットと結合できます。
列 の追加モジュール は R のように動作し、データセットの行数が同じ場合は、2 つのデータセットを行単位でマージできます。 データセットのサイズが異なる場合は、エラーが発生します。
想定される入力
名前 | 型 | 説明 |
---|---|---|
データセット 1 | データ テーブル | 結合する最初のデータセット |
データセット 2 | データ テーブル | 結合する 2 番目のデータセット |
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
L 結合キー列 | Any | ColumnSelection | 最初のデータセットの結合キー列を選択します。 | |
R 結合キー列 | Any | ColumnSelection | 2 番目のデータセットの結合キー列を選択します。 | |
[大文字と小文字を区別する] | Any | Boolean | True | キー列で大文字と小文字を区別する比較を許可するかどうかを示します。 |
結合の種類 | 一覧 | 型 | 内部結合 | 結合の種類を選択します。 |
右側のキー列を結合テーブルで維持する | Any | Boolean | True | 結合したデータセットで 2 つ目のデータセットからのキー列を保持するかどうかを示します。 |
出力
名前 | 型 | 説明 |
---|---|---|
結果のデータセット | データ テーブル | 結合操作の結果 |
例外
例外 | 説明 |
---|---|
エラー 0001 | データセットで 1 つ以上の指定した列が見つからない場合に、例外が発生します。 |
エラー 0003 | 1 つ以上の入力が null または空の場合に、例外が発生します。 |
エラー 0006 | パラメーターが指定された値以上の場合に、例外が発生します。 |
エラー 0016 | モジュールに渡される入力データセットが互換性のある種類の列を持つ必要がある場合、互換性がないと例外が発生します。 |
エラー 0017 | 1 つ以上の指定した列に現在のモジュールでサポートされていない型がある場合に、例外が発生します。 |
エラー 0020 | モジュールに渡された一部のデータセットの列数が少なすぎる場合に、例外が発生します。 |
エラー 0028 | 列セットに重複する列名が含まれるが、それが許可されていない場合に、例外が発生します。 |
エラー 0011 | 渡された列セットの引数がデータセットのどの列にも適用されない場合に、例外が発生します。 |
エラー 0027 | 同じサイズにする必要がある 2 つのオブジェクトのサイズが異なる場合に、例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください。
API の例外の一覧については、「エラー コードMachine Learning REST API参照してください。