データのインポート
重要
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 (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
Web 上の外部ソースからデータを読み込みます。テーブル、BLOB、SQL データベースなど、Azure のさまざまな形式のクラウドベースのストレージ、およびオンプレミスのSQL Server データベースから
カテゴリ: データの入力と出力
注意
適用対象: Machine Learning Studio (クラシック) のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) のデータのインポート モジュールを使用して、既存のクラウド データ サービスから機械学習実験にデータを読み込む方法について説明します。
このモジュールにはストレージ オプションの選択と既存のサブスクリプションとアカウントからの選択を支援するウィザードが追加され、すべてのオプションを簡単に構成できるようになりました。 既存のデータ接続を編集する必要はありますか? 問題はありません。このウィザードで前の構成詳細がすべて読み込まれます。一からやり直す必要はありません。
必要なデータを定義してソースに接続した後、データのインポートは、データに含まれる値に基づいて各列のデータ型を推測し、Machine Learning Studio (クラシック) ワークスペースにデータを読み込みます。 データのインポートからは、あらゆる実験で使用できるデータセットが出力されます。
重要
現在、サポートされているストレージ アカウントの種類には制限があります。 詳細については、 テクニカル ノートを参照してください。
ソース データが変更された場合は、 データのインポートを再実行することで、データセットを更新し、新しいデータを追加できます。 ただし、実験を実行するたびにソースから再び読み込むことを望まない場合、[Use cached results]\(キャッシュされた結果を使用する\) オプションを TRUE に設定します。 このオプションを選択すると、このモジュールでは、同じソースと同じ入力オプションで実験が前に実行されているかどうかが確認されます。 以前の実行が見つかった場合は、ソースからデータを再読み込みする代わりに、キャッシュ内のデータが使用されます。
注意
このモジュールは、以前は Reader という名前でした。 実験で既に 閲覧者 モジュールを使用していた場合は、実験を更新するときにデータの インポート に名前が変更されます。
データ ソース
データのインポート モジュールでは、次のデータ ソースがサポートされています。 リンクをクリックすると、各データ ソースの使用方法とサンプルが表示されます。
データを格納する方法や場所がわからない場合は、データ サイエンス プロセスの一般的なデータ シナリオ(Machine Learningの高度な分析のシナリオ)に関するこのガイドを参照してください。
データ ソース | 用途 |
---|---|
HTTP を使用する Web URL | HTTP を使用し、CSV、TSV、ARFF、または SvmLight 形式で指定されている Web URL でホストされているデータを取得する |
Hive クエリ | Hadoop の分散ストレージからデータを取得します。 HiveQL 言語を使用して必要なデータを指定する |
Azure SQL Database | Azure SQL DatabaseまたはAzure SQL Data Warehouseからデータを取得する |
Azure Table | Azure Table Service に格納されているデータを取得する |
Azure Blob Storage からのインポート | Azure BLOB サービスに格納されているデータを取得する |
データ フィード プロバイダー | OData 形式のフィードとして公開されるデータを取得する |
オンプレミスの SQL Server データベースからのインポート | Microsoft データ管理 Gateway を使用してオンプレミスのSQL Server データベースからデータを取得する |
Azure Cosmos DB | Azure Cosmos DB に JSON 形式で格納されたデータを取得します。 |
ヒント
JSON 形式でデータをインポートする必要がありますか? R と Python はどちらも REST API をサポートしているため、Python スクリプトの実行モジュールまたは R スクリプト実行モジュールを使用してデータを解析し、Azure ML データセットとして保存します。
または、MongoDBを含む複数の JSON ストアをサポートする SQL DB API for CosmosDB を使用して、Azure Cosmos DB からのインポート オプションを使用してデータを読み取ります。 詳細については、「Azure Cosmos DB からのインポート」を参照してください。
データのインポートを使用する方法
データのインポート モジュールを実験に追加します。 このモジュールは、Studio (クラシック) の [データ入力と出力] カテゴリにあります。
[Launch Data Import Wizard]\(データのインポート ウィザードを起動する\) をクリックし、ウィザードを使用してデータ ソースを構成します。
このウィザードによりアカウント名と資格情報が取得されます。また、他のオプションの構成が支援されます。 既存の構成を編集する場合、まず、現在の値が読み込まれます。
このウィザードを使用しない場合、[データ ソース] をクリックし、読み込み元のクラウドベース ストレージの種類を選択します。
追加の設定は、選択したストレージの種類と、ストレージがセキュリティで保護されているかどうかに依存します。 場合によっては、アカウント名、ファイルの種類、資格情報を指定する必要があります。 一部のソースでは認証が要求されません。認証を必要とするソースの場合、アカウント名、キー、コンテナー名を把握しておく必要があります。
詳細については、 データ ソースの一覧を参照してください。
連続する実行で再利用するためにデータセットをキャッシュする場合は、[ キャッシュされた結果 を使用する] オプションを選択します。
モジュール パラメーターに他の変更がなければ、実験では、モジュールの初回実行時にのみデータが読み込まれ、その後はキャッシュしたデータセットが使用されます。
実験を実行するたびにデータを再読み込みする場合、このオプションの選択を解除してください。
実験を実行します。
データのインポートは、Studio (クラシック) にデータを読み込むときに、含まれる値 (数値またはカテゴリ) に基づいて、各列のデータ型を推測します。
ヘッダーが存在する場合、出力されるデータセットの列に名前を付ける際、ヘッダーが使用されます。
データに既存の列ヘッダーがない場合、「col1, col2,…, ,coln.
結果
インポートが完了したら、出力されたデータセットをクリックし、 [Visualize]\(視覚化\) を選択し、データが正常にインポートされたかどうかを確認します。
実験を実行するたびに新しいデータセットをインポートせず、再利用のためにデータを保存する場合、出力を右クリックし、[データセットとして保存] を選択します。 データセットの名前を選択します。 保存されたデータセットは保存時にデータを保持し、実験内のデータセットが変更された場合でも、実験の再実行時にデータは更新されません。 データのスナップショットを作成する場合に便利です。
データのインポート後、モデル化と分析のために追加の準備が必要になることがあります。
列名を変更したり、列を別のデータ型として処理したり、一部の列がラベルまたはフィーチャーであることを指定したりするには、メタデータの編集を使用します。
変換する、またはモデル化で使用する列のサブセットを選択するには、[データセット内の列の選択] を使用します。 変換または削除された列は、列の 追加 モジュールまたは データ結合 モジュールを使用して、元のデータセットに簡単に再結合できます。
データセットを分割したり、サンプリングを実行したり、上位 n 行を取得したりするには、[パーティションとサンプル] を使用します。
Apply SQL Transformation を使用して、SQL ステートメントを使用してデータ、フィルター、または変換を集計します。
次のモジュールを使用して、テキスト列をクリーンアップし、新しいテキスト機能を生成します。
- テキストの前処理
- テキストからの N-gram 特徴抽出
- 名前付きエンティティの認識
- nltk に基づいてカスタム NLP を実装するには、Python スクリプトを実行します。
テクニカル ノート
このセクションでは、 データのインポート モジュールに関する既知の問題と、ソースの種類に固有ではない一般的なトラブルシューティング情報の一覧を示します。
サポートされているアカウントの種類
Azure では、新しいサービスまたは新しいストレージの種類が頻繁にリリースされます。ただし、新しいアカウントの種類のサポートが Machine Learning Studio (クラシック) に実装されている間、通常は遅延が発生します。
現在、Machine Learningでは、ゾーン冗長ストレージ (ZRS) を使用するアカウントを除く、すべての汎用ストレージ アカウントがサポートされています。
ローカル冗長ストレージ (LRS) と geo 冗長ストレージ オプションがサポートされています。
ブロック BLOB はサポートされていますが、追加 BLOB はサポートされていません。
一般的な質問と問題
このセクションでは、いくつかの既知の問題、一般的な質問、回避策について説明します。
ヘッダーは 1 行にする必要があります
CSV ファイルからインポートする場合は、Machine Learningで 1 つのヘッダー行が許可されていることに注意してください。 複数行のヘッダーを挿入することはできません。
インポート時にサポートされているがエクスポートではサポートされていないカスタム区切り記号
データのインポート モジュールでは、セミコロン (;)など、ヨーロッパでよく使用される代替の列区切り記号を使用するデータのインポートがサポートされています。 外部ストレージ内の CSV ファイルからデータをインポートする場合は、[ エンコード付き CSV ] オプションを選択し、サポートされているエンコードを選択します。
ただし、[ CSV に変換 ] モジュールを使用してエクスポート用のデータを準備するときに、代替の区切り記号を生成することはできません。
コンマを含む文字列データの列の分離が不十分
列区切り記号 (タブ、スペース、コンマなど) として指定できるほぼすべての文字は、テキスト フィールドでもランダムに見つけることができます。 CSV からテキストをインポートするには、不要な新しい列間でテキストを分離しないように注意する必要があります。 テキスト処理では、さまざまな方法で発生し、処理される可能性がある一般的な問題です。
コンマを含む文字列データの列をエクスポートしようとすると、問題が発生する可能性もあります。 Machine Learningでは、文字列を引用符で囲むなど、特別な処理やこのようなデータの特別な翻訳はサポートされていません。 また、コンマの前にエスケープ文字を使用して、コンマがリテラル文字として処理されるようにすることはできません。 その結果、文字列フィールドで検出されたコンマごとに、出力ファイルに新しいフィールドが作成されます。
エクスポート時の問題を回避するには、 テキストの前処理 モジュールを使用して、文字列フィールドから句読点文字を削除します。
また、カスタム R スクリプト または Python スクリプト を使用して複雑なテキストを処理し、データを正しくインポートまたはエクスポートできるようにすることもできます。
UTF-8 エンコードが必要
Machine Learningには UTF-8 エンコードが必要です。 インポートするデータが別のエンコードを使用している場合、または別の既定のエンコードを使用するデータ ソースからエクスポートされた場合、テキストにさまざまな問題が表示されることがあります。
たとえば、次の図には、Excelからエクスポートされ、ファイルの種類とエンコードの 4 つの異なる組み合わせでMachine Learningにインポートされた同じ多言語データセットが含まれています。
3 番目の例は、csv 形式でExcelから保存中に失われたデータを表します。これは、その時点で正しいエンコードが指定されていないためです。 したがって、問題が発生した場合は、インポート元のファイルだけでなく、ファイルがソースから正しくエクスポートされたかどうかを確認してください。
データセットに列名がありません
インポートするデータセットに列名がない場合は、必ず "ヘッダーなし" オプションのいずれかを指定してください。 その場合、 データのインポート では、Col1、Col2 などの形式を使用して既定の列名が追加されます。 後でメタデータ の編集 を使用して列名を修正します。
データセットを CSV ファイルにエクスポートする場合は、 メタデータの編集 を使用して列名を追加してから、変換またはエクスポートします。
サポートされていないデータ ソースの回避策
一覧にないソースからデータを取得する必要がある場合は、さまざまな回避策を試すことができます。
コンピューター上のファイルからデータをアップロードするには、[Studio (クラシック) で 新規作成 ] をクリックし、[ データセット] を選択して、[ ローカル ファイルから] を選択します。 ファイルを見つけて、形式 (TSV、CSV など) を指定します。 詳細については、「 Studio (クラシック) にトレーニング データをインポートする」を参照してください。
R または Python を使用します。 R スクリプトの実行モジュールを適切な R パッケージと共に使用して、他のクラウド データベースからデータを取得できます。
Python スクリプトの実行モジュールでは、さまざまなソースからデータを読み取って変換することもできます。 Cortana インテリジェンス ギャラリーで、Microsoft データ サイエンティストの次の例を参照してください。
AWS クラスターからデータを取得します。 WebHCatまたは HCatalog エンドポイントが有効になっている汎用 Hive クラスターに対してクエリを実行できます。 または、ページとして発行し、Web URL から読み取ります。
MongoDBからデータを取得します。 Azure Cosmos DB のデータ移行ユーティリティでは、さまざまなソースと形式がサポートされています。 詳細と例については、「Azure Cosmos DB: データ移行ツール」を参照してください
その他のアイデアと回避策については、Machine Learning フォーラムまたは Azure AI ギャラリーを参照してください。
モジュールのパラメーター
各データ ソースは、異なるオプションを使用して構成する必要があります。 次の表に、すべてのデータ ソースに共通するオプションのみを示します。
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
データ ソース | List | データ ソースまたはシンク | Azure Storage の BLOB サービス | データ ソースには、HTTP、匿名 HTTPS、BLOB サービスまたは Table service 内のファイル、Azure のSQL データベース、Azure SQL Data Warehouse、Hive テーブル、または OData エンドポイントを指定できます。 |
キャッシュされた結果を使用する | TRUE または FALSE | Boolean | FALSE | TRUE の場合、モジュールは、同じソースと同じ入力オプションを使用して実験が以前に実行されたかどうかを確認し、以前の実行が見つかった場合は、キャッシュ内のデータが使用されます。 FALSE の場合、または変更が見つかった場合は、ソースからデータが再読み込みされます。 |
出力
名前 | Type | 説明 |
---|---|---|
結果のデータセット | データ テーブル | ダウンロードしたデータを含むデータセット |
例外
例外 | 説明 |
---|---|
エラー 0027 | 同じサイズが必要である 2 つのオブジェクトのサイズが異なる場合に、例外が発生します。 |
エラー 0003 | 1 つ以上の入力が null または空の場合に、例外が発生します。 |
エラー 0029 | 無効な URI が渡された場合に、例外が発生します。 |
エラー 0030 | ファイルをダウンロードできない場合は例外が発生します。 |
エラー 0002 | 1 つ以上のパラメーターが解析できなかった、または指定した型から対象のメソッドの種類で必要な型に変換されなかった場合に、例外が発生します。 |
エラー 0009 | Azure ストレージのアカウント名またはコンテナー名が正しく指定されていない場合、例外が発生します。 |
エラー 0048 | ファイルを開けない場合、例外が発生します。 |
エラー 0015 | データベース接続に失敗した場合に、例外が発生します。 |
エラー 0046 | 指定したパスにディレクトリを作成できない場合に、例外が発生します。 |
エラー 0049 | ファイルを解析できない場合、例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「Machine Learningエラー コード」を参照してください。
API 例外の一覧については、「REST API エラー コードMachine Learning」を参照してください。