LoginSignup
2
0

Azure Data Scientist(DP-100)に合格後、学んだ内容を整理してみた

Last updated at Posted at 2024-04-18

今年の春、Azure Data Scientist(DP-100)に合格しました。学んだ内容を忘れないように、書き留めたいと思います。

これから受験してみようと考えている方の参考になればと思います。

データセットを結合するためのアプローチには、どんなものがあり、どのように利用するのか?

Azure Machine Learning Designerでは、複数のデータセットを結合するためにさまざまな方法が利用できます。
https://azure.microsoft.com/ja-jp/products/machine-learning/designer/
Azure Machine Learning デザイナーは、Azure Machine Learning ワークスペースで機械学習パイプラインを構築するためのドラッグ アンド ドロップ UI インターフェイスです
image.png

  1. Merge モジュール
    Merge モジュールを使用して、共通の列を指定してデータを結合できます。このアプローチは、共通の列が存在し、それをキーとして使用できる場合に有効です。

  2. Append モジュール
    Append モジュールを使用して、2つのデータセットを単純に結合することができます。このアプローチは、データセットが同じ構造を持ち、列の順序が一致している場合に有効です。

問いを考えてみる

次の入力データセットDataset1 Dataset2を使用して、Azure Machine Learning デザイナーで、次の出力データセットを作成してください。これを行う際、どんなコンポーネントを使いますか?
「Join Data」コンポーネントですか?それとも、「Add Rows」コンポーネントですか?

Dataset1

column1, column2, column3
1, 2, 3
4, 5, 6

Dataset2

column4, column5, column6
7, 8, 9
10, 11, 12

出力データセット

column1, column2, column3, column4, column5, column6
1, 2, 3, 7, 8, 9
4, 5, 6, 10, 11, 12

答え

この問題は、Azure Machine Learning デザイナーの 「Add Rows」 コンポーネントを使用して解決できます。

  1. Azure Machine Learning デザイナーで実験を開きます。
  2. キャンバスに Add Rows コンポーネントをドラッグアンドドロップします。
  3. 「Inputs」ポートに Dataset1Dataset2 を接続します。
  4. 実験を実行します。

実行すると、指定された出力データセットが作成されます。

解答の解説

「Add Rows」 コンポーネントは、同じスキーマを持つ複数のデータセットの行を単純に連結するコンポーネントです。この問題では、入力データセット Dataset1Dataset2 は同じスキーマを持つため、「Add Rows」コンポーネントを使用して、両方のデータセットのすべての行を単純に連結することができます。

他の解答として、「Join Data」コンポーネントを使用する方法も挙げられます。ただし、「Join Data」コンポーネントを使用する場合は、join type を「Inner Join」に設定する必要があります。これにより、両方のデータセットに共通する行のみが結合されます。

各モジュールの使用方法について説明します。

  1. Merge モジュール
    Merge モジュールを使用すると、特定の共通の列を指定してデータを結合できます。以下は、共通の列(キー列)を指定してデータを結合する例です。

    import pandas as pd
    # データの読み込み
    df1 = pd.read_csv("Dataset1.csv")
    df2 = pd.read_csv("Dataset2.csv")
    # 共通の列を指定して結合
    merged_df = pd.merge(df1, df2, on="common_column")
    
  2. Append モジュール:
    Append モジュールは、2つのデータセットを単純に縦に結合します。列の順序や構造が一致している必要があります。

    import pandas as pd
    # データの読み込み
    df1 = pd.read_csv("Dataset1.csv")
    df2 = pd.read_csv("Dataset2.csv")
    # データの縦結合
    appended_df = pd.concat([df1, df2], ignore_index=True)
    

Append モジュールを使用した例(この例では、2つのデータセットを垂直に結合しています。)

+---------------+      +---------------+
|   Dataset1    |      |   Dataset2    |
+---------------+      +---------------+
| A | B | C | D |      | A | B | C | D |
+---------------+      +---------------+
| 1 | 2 | 3 | 4 |      | 5 | 6 | 7 | 8 |
| 9 |10 |11 |12 |      |13 |14 |15 |16 |
+---------------+      +---------------+
         |                        |
         v                        v
+---------------+
|    Appended   |
+---------------+
| A | B | C | D |
+---------------+
| 1 | 2 | 3 | 4 |
| 9 |10 |11 |12 |
| 5 | 6 | 7 | 8 |
|13 |14 |15 |16 |
+---------------+

Append モジュールを使用して Dataset1Dataset2 を結合しています。
同じ列構造を持つデータセットが垂直に結合され、新しいデータセットが作成されます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0