Azure Open Datasets から Azure Machine Learning データセットを作成する

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

この記事では、Azure Machine Learning データセットと Azure Open Datasets を使用して、ローカルまたはリモートの機械学習の実験にキュレーションされたエンリッチメント データを取り込む方法について説明します。

Azure Machine Learning データセットを作成すると、データ ソースの場所への参照とそのメタデータのコピーを作成できます。 データセットは遅延評価され、データは既存の場所に残るため:

  • 追加のストレージ コストは発生しません。
  • 意図せずに元のデータ ソースを変更するリスクはありません。
  • ML ワークフローのパフォーマンスが向上します。

Azure Machine Learning のデータ アクセス ワークフロー全体におけるデータ セットの位置付けの詳細については、データへの安全なアクセスに関するページを参照してください。

Azure Open Datasets は、シナリオ固有の機能を追加して予測ソリューションを強化し、精度を向上させるために使用できる、キュレーションされたパブリック データセットです。 機械学習モデルのトレーニングに役立つパブリック ドメイン データについては、Open Datasets カタログを参照してください。次に例を示します。

Open Datasets はクラウドにある Microsoft Azure 上にあり、Azure Machine Learning Python SDK および Azure Machine Learning Studio の両方に含まれています。

前提条件

この記事では、以下が必要です。

注意

一部の Dataset クラスは、azureml-dataprep パッケージに依存しています。これは、64 ビットの Python とのみ互換性があります。 Linux ユーザーの場合、これらのクラスは次のディストリビューションでのみサポートされています。Red Hat Enterprise Linux (7、8)、Ubuntu (14.04、16.04、18.04)、Fedora (27、28)、Debian (8、9)、および CentOS (7)

SDK を使用してデータセットを作成する

Python SDK の Azure Open Datasets クラスを使用して Azure Machine Learning データセットを作成するには、pip install azureml-opendatasets でパッケージがインストールされていることを確認します。 個々のデータセットは、SDK で独自のクラスによって表され、特定のクラスは Azure Machine Learning TabularDatasetFileDataset、またはその両方として使用できます。 opendatasets クラスの完全な一覧については、リファレンス ドキュメントを参照してください。

特定の opendatasets クラスは、ファイルを直接操作したり、ダウンロードしたりできる、TabularDataset または FileDataset として取得できます。 他のクラスは、Python SDK の Dataset クラスの get_tabular_dataset() または get_file_dataset() 関数を使用してのみ、データセットを取得できます。

次のコードは、MNIST opendatasets クラスで TabularDataset または FileDataset のいずれかを返すことができることを示しています。

from azureml.core import Dataset
from azureml.opendatasets import MNIST

# MNIST class can return either TabularDataset or FileDataset
tabular_dataset = MNIST.get_tabular_dataset()
file_dataset = MNIST.get_file_dataset()

この例では、Diabetes opendatasets クラスは TabularDataset としてのみ使用できるため、get_tabular_dataset() が使用されます。


from azureml.opendatasets import Diabetes
from azureml.core import Dataset

# Diabetes class can return ONLY TabularDataset and must be called from the static function
diabetes_tabular = Diabetes.get_tabular_dataset()

データセットを登録する

Azure Machine Learning データセットをワークスペースに登録すると、他のユーザーと共有したり、ワークスペース内の実験間で再利用したりすることができます。 Open Datasets から作成された Azure Machine Learning データセットを登録すると、データはすぐにはダウンロードされませんが、中央の保存場所から要求したとき (たとえばトレーニング中に) にデータにアクセスできます。

データセットをワークスペースに登録するには、register() メソッドを使用します。

titanic_ds = titanic_ds.register(workspace=workspace,
                                 name='titanic_ds',
                                 description='titanic training data')

Studio を使用してデータセットを作成する

Azure Machine Learning Studio を使用して、Azure Open Datasets から Azure Machine Learning データセットを作成することもできます。これは、あらゆるスキル レベルのデータ サイエンス実務者がデータ サイエンス シナリオを実行するための機械学習ツールを含む統合 Web インターフェイスです。

注意

Azure Machine Learning Studio を介して作成されたデータセットは、自動的にワークスペースに登録されます。

  1. ワークスペースで、 [資産] の下にある [データセット] タブを選択します。 [データセットの作成] ドロップダウンをクリックし、 [From Open Datasets](Open Datasets から) を選択します。

    UI と Open Dataset

  2. データセットを、そのタイルを選択して選択します (検索バーを使用してフィルター処理をするオプションがあります)。 [次へ] を選択します。

    データセットを選択する

  3. データセットの登録先の名前を選択し、必要に応じて、使用可能なフィルターを使用してデータをフィルター処理します。 この例では、Public Holidays データセットについて、期間を 1 年に、国番号を米国のみにしてフィルター処理します。 フィールドの説明や日付範囲などのデータの詳細については、Azure Open Datasets カタログを参照してください。 [作成] を選択します

    データセット パラメーターを設定してデータセットを作成する

    この時点で、データセットはワークスペース内の [データセット] の下で利用できます。 これを、自分で作成した他のデータセットと同じ方法で使用できます。

実験用のデータセットにアクセスする

ML モデルのトレーニングのために、機械学習の実験でデータセットを使用します。 データセットを使ってトレーニングする方法の詳細をご覧ください

サンプルの Notebook

Open Datasets 機能の例とデモについては、これらのサンプル ノートブックを参照してください。

次のステップ