カウント変換の構築
重要
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 (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
複数のデータセットに変換を適用できるように、カウントテーブルを特徴に変換する変換を作成します。
カテゴリ:カウントを含むラーニング
注意
適用対象: Machine Learning Studio (クラシック)のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) のカウント変換の構築モジュールを使用して、トレーニングデータを分析する方法について説明します。 このデータから、モジュールは カウントテーブル と、予測モデルで使用できる カウントベースの特徴 のセットを構築します。
カウントテーブルには、指定されたラベル列に対して、すべての特徴列の結合分布が含まれます。 このような統計は、最も情報の価値がある列を特定するのに役立ちます。 カウントベースの特性付け は、このような機能は元のトレーニングデータよりもコンパクトであるため便利ですが、最も有用な情報がすべてキャプチャされます。 モジュールパラメーターを使用すると、カウントを新しい一連の機能に変換する方法をカスタマイズできます。
カウントを生成し、それらを機能に変換した後、関連するデータに再利用するための変換として、プロセスを保存できます。 新しい数のセットを生成することなく、一連の機能を変更したり、カウントや機能を別の数や機能にマージしたりすることもできます。
カウントベースの機能を再利用して再適用する機能は、次のようなシナリオで役立ちます。
- データセットのカバレッジまたはバランスを改善するために、新しいデータが使用できるようになります。
- 元のカウントと機能は、再処理する必要のない非常に大きなデータセットに基づいていました。 新しいデータで更新できる数をマージします。
- 実験で使用しているすべてのデータセットに、同じカウントベースの機能セットが適用されていることを確認する必要があります。
ビルドカウント変換を構成する方法
カウントベースの特徴変換をデータセットから直接作成し、実験を実行するたびに再実行することができます。 または、カウントのセットを生成し、それを新しいデータとマージして、更新されたカウントテーブルを作成することもできます。
-
前にカウントを作成していない場合は、ここから開始します。 カウントテーブルを作成し、一連の機能を自動的に生成するには、カウント 変換の構築 モジュールを使用します。
このプロセスでは、 変換の適用 モジュールを使用してデータセットに適用できる機能変換を作成します。
-
以前のデータセットからカウントテーブルを既に生成している場合は、新しいデータだけにカウントを生成するか、以前のバージョンの Machine Learning で作成した既存のカウントテーブルをインポートします。 次に、カウントテーブルの2つのセットをマージします。
このプロセスでは、 変換の適用 モジュールを使用してデータセットに適用できる新しい機能変換を作成します。
データセットからカウントベースの特徴を作成する
Machine Learning Studio (クラシック) で、[カウント変換のビルド] モジュールを実験に追加します。 モジュールは、[データ変換] の下の [カテゴリラーニング] の下にカウント付きで表示されます。
カウントベースの特徴の基礎として使用するデータセットを Connect します。
[ クラスの数 ] オプションを使用して、ラベル列の値の数を指定します。
- 二項分類の問題については、「」と入力
2
します。 - 2 つより多い出力を持つ可能性のある分類問題の場合、カウントするクラスの正確な数を事前に指定する必要があります。 実際のクラス数よりも小さい数値を入力すると、モジュールはエラーを返します。
- データセットに複数のクラス値が含まれており、クラスラベル値が連続していない場合は、[ メタデータの編集 ] を使用して、列にカテゴリ値が含まれることを指定する必要があります。
- 二項分類の問題については、「」と入力
オプションでは、 ハッシュ関数のビットは、値をハッシュするときに使用するビット数を示します。
多くの場合、カウントする値が多いことがわかっていて、より高いビット数が必要である場合を除き、通常は既定値をそのまま使用してもかまいません。
ハッシュ関数のシードでは、必要に応じて、ハッシュ関数をシードする値を指定できます。 シードを手動で設定するのは、通常、同じ実験の実行全体でハッシュの結果が決定的であることを確認する場合に行います。
[ モジュールの種類 ] オプションを使用して、ストレージモードに基づいて、カウントするデータの種類を指定します。
データセット: Machine Learning Studio (クラシック) にデータセットとして保存されているデータをカウントする場合は、このオプションを選択します。
Blob: カウントの構築に使用されるソースデータが Windows Azure storage にブロック Blob として格納されている場合は、このオプションを選択します。
MapReduce: データを処理するために Map/Reduce 関数を呼び出す場合は、このオプションを選択します。
このオプションを使用するには Windows Azure storage に新しいデータを blob として指定し、デプロイされた HDInsight クラスターへのアクセス権を持っている必要があります。 実験を実行すると、カウントを実行するために、Map/Reduce ジョブがクラスターで開始されます。
非常に大規模なデータセットの場合は、可能な限りこのオプションを使用することをお勧めします。 HDInsight サービスの使用には追加コストが発生する場合もありますが、大規模データセットの計算は HDInsight で実行した方がより高速になる可能性があります。
詳細については、「https://azure.microsoft.com/services/hdinsight/」を参照してください。
データストレージモードを指定したら、必要なデータの追加の接続情報を指定します。
- Hadoop または blob ストレージのデータを使用している場合は、クラスターの場所と資格情報を指定します。
- 実験で データのインポート モジュールを使用してデータにアクセスする場合は、アカウント名と資格情報を再入力する必要があります。 ビルドカウント変換モジュールは、データを読み取り、必要なテーブルを作成するために、データストレージに個別にアクセスします。
[ ラベル列またはインデックス] では、[ラベル] 列として1つの列を選択します。
ラベル列が必要です。 列が既にラベルとしてマークされているか、エラーが発生しています。
オプションを使用して、 カウントする列を選択し、カウントを生成する列を選択します。
一般に、高次元の列と、それらの列に関連付けられているその他の列を使用することをお勧めします。
カウントテーブルを格納するために使用する形式を指定するには、 count table type オプションを使用します。
Dictionary: 辞書カウントテーブルを作成します。 選択した列のすべての値は文字列として扱われ、31 ビット サイズまでのビット配列を使用してハッシュされます。 そのため、すべての列の値は負以外の 32 ビット整数で表されます。
一般に、小さいデータセット (1 GB 未満) ではこのオプションを使用し、大規模なデータセットには CMSketch オプションを使用する必要があります。
このオプションを選択した後、ハッシュ関数によって使用されるビット数を構成し、ハッシュ関数を初期化するためのシードを設定します。
CMSketch: カウント最小スケッチテーブルを作成します。 このオプションでは、メモリ効率を改善し、ハッシュの競合の可能性を低下させるために、より範囲の狭い、複数の独立したハッシュ関数が使用されます。 ハッシュのビットサイズとハッシュシードのパラメーターは、このオプションには影響しません。
実験を実行します。
モジュールは、変換の適用モジュールへの入力として使用できる特性付け変換を作成します。 変換の適用モジュールの出力は、モデルのトレーニングに使用できる変換されたデータセットです。
カウントベースの特徴のセットを別のカウントベースの特徴にマージする場合は、必要に応じて変換を保存できます。 詳細については、「 Merge Count Transform」を参照してください。
複数のデータセットのカウントと特徴のマージ
Machine Learning Studio (クラシック) で、[カウント変換のビルド] モジュールを実験に追加し、追加する新しいデータを含むデータセットを接続します。
新しいデータのソースを示すには、 Module type オプションを使用します。 さまざまなソースからのデータをマージできます。
データセット: 新しいデータが Machine Learning Studio (クラシック) でデータセットとして指定されている場合は、このオプションを選択します。
Blob: Windows Azure storage に新しいデータがブロック Blob として指定されている場合は、このオプションを選択します。
MapReduce: データを処理するために Map/Reduce 関数を呼び出す場合は、このオプションを選択します。
このオプションを使用するには Windows Azure storage に新しいデータを blob として指定し、デプロイされた HDInsight クラスターへのアクセス権を持っている必要があります。 実験を実行すると、カウントを実行するために、Map/Reduce ジョブがクラスターで起動されます。
詳細については、https://azure.microsoft.com/services/hdinsight/ を参照してください。
データストレージモードを指定した後、新しいデータに対して追加の接続情報を指定します。
Hadoop または blob ストレージのデータを使用している場合は、クラスターの場所と資格情報を指定します。
実験で データのインポート モジュールを使用してデータにアクセスする場合は、アカウント名と資格情報を再入力する必要があります。 これは、データを読み取り、必要なテーブルを作成するために、 ビルドカウント変換 モジュールがデータストレージに個別にアクセスするためです。
カウントをマージする場合、次のオプションは両方のカウントテーブルでまったく同じである必要があります。
- クラスの数
- ハッシュ関数のビット
- ハッシュ関数のシード
- カウントする列の選択
[ラベル] 列には、同じ数のクラスが含まれている限り、異なる値を指定できます。
[ テーブルの種類のカウント ] オプションを使用して、更新されたカウントテーブルの形式と変換先を指定します。
ヒント
マージする2つのカウントテーブルの形式は同じである必要があります。 つまり、 辞書 形式を使用して以前のカウントテーブルを保存した場合、 CMSketch 形式を使用して保存されたカウントと結合することはできません。
実験を実行します。
モジュールは、変換の適用モジュールへの入力として使用できる特性付け変換を作成します。 変換の適用モジュールの出力は、モデルのトレーニングに使用できる変換されたデータセットです。
カウントベースの既存の機能セットを使用してこの数のセットをマージするには、「 Merge Count Transform」を参照してください。
例
カウントアルゴリズムと、他の方法と比較したカウントベースのモデリングの有効性の詳細については、次の記事を参照してください。
Azure AI Galleryの次の実験では、カウントベースの学習を使用してさまざまな予測モデルを構築する方法を示します。
モジュールのパラメーター
次のパラメーターは、すべてのオプションで使用されます。
Name | 種類 | Range | 省略可能 | Default | 説明 |
---|---|---|---|---|---|
クラスの数 | Integer | >pcl | 必須 | 2 | ラベル用のクラスの数。 |
ハッシュ関数のビット | Integer | [12; 31] | 必須 | 20 | ハッシュ関数の範囲のビット数。 |
ハッシュ関数のシード | Integer | any | 必須 | 1 | ハッシュ関数のシード。 |
モジュールの種類 | 必須 | データセット | カウントテーブルを生成するときに使用するモジュールの種類。 | ||
カウント テーブルの種類 | CountTableType | リストから選択 | 必須 | Dictionary | カウントテーブルの形式を指定します。 |
Blobオプションを選択するときは、次のオプションが適用されます。
Name | 種類 | Range | 省略可能 | Default | 説明 |
---|---|---|---|---|---|
BLOB 名 | String | any | 必須 | 入力 blob の名前。 コンテナー名は含めないでください。 | |
アカウント名 | String | any | 必須 | ストレージ アカウントの名前。 | |
アカウント キー | SecureString | any | 必須 | ストレージ アカウントのキー。 | |
コンテナー名 | String | any | 必須 | 入力 blob を含む Azure blob コンテナー。 | |
カウント列 | String | any | 必須 | カウントを実行する列のグループの1から始まるインデックス。 | |
ラベル列 | Integer | >=1 | 必須 | 1 | ラベル列の1から始まるインデックス。 |
BLOB の形式 | any | 必須 | CSV | BLOB のテキスト ファイル形式。 |
次のパラメーターは、次のパラメーターを使用してMapReduceを生成するときに適用されます。
Name | 種類 | Range | 省略可能 | Default | 説明 |
---|---|---|---|---|---|
既定のストレージ アカウント名 | String | any | 必須 | なし | 入力 BLOB を含むストレージ アカウントの名前。 |
既定のストレージ アカウント キー | SecureString | any | 必須 | なし | 入力 BLOB を含むストレージ アカウントのキー。 |
既定のコンテナー名 | String | any | 必須 | なし | カウント テーブルを書き込む BLOB コンテナーの名前。 |
クラスター URI | String | any | 必須 | なし | HDInsight Hadoop クラスターの URI。 |
ユーザー名 | String | any | 必須 | なし | HDInsight Hadoop クラスターにログインするユーザー名。 |
次のパラメーターは、count テーブルの形式を定義します。
Name | 種類 | Range | 省略可能 | Default | 説明 |
---|---|---|---|---|---|
カウント テーブルの種類 | CountTableType | 一覧 | 必須 | Dictionary | カウント テーブルの型。 |
ラベル列のインデックスまたは名前 | ColumnSelection | Count テーブルがデータセットとして保存されている場合は必須 | なし | ラベル列を選択します。 | |
カウントする列の選択 | ColumnSelection | Count テーブルがデータセットとして保存されている場合は必須 | カウント用の列を選択します。 これらの列はカテゴリ特徴と見なされます。 | ||
CM スケッチ テーブルの深度 | Integer | >=1 | count テーブルが CMSketch 形式を使用する場合は必須 | 4 | CM スケッチ テーブルの深さ。ハッシュ関数の数と等しくなります。 |
CM スケッチ テーブルの幅 | Integer | [1;31] | count テーブルが CMSketch 形式を使用する場合は必須 | 20 | CM スケッチ テーブルの幅。ハッシュ関数の範囲のビット数です。 |
ラベル列インデックスまたは namecolumn | ColumnSelection | Count テーブルがデータセットとして保存されている場合は必須 | ラベル列を選択します。 | ||
カウントする列の選択 | ColumnSelection | Count テーブルがデータセットとして保存されている場合は必須 | カウントする列を選択します。 これらの列はカテゴリ特徴と見なされます。 | ||
カウント テーブルの種類 | Count テーブルがデータセットとして保存されている場合は必須 | Dictionary | カウント テーブルの型を指定します。 | ||
CM スケッチ テーブルの深度 | Integer | >=1 | カウント テーブルが CMSketch として保存されている場合は必須 | 4 | CM スケッチ テーブルの深さ。ハッシュ関数の数と等しくなります。 |
CM スケッチ テーブルの幅 | Integer | [1;31] | カウント テーブルが CMSketch として保存されている場合は必須 | 20 | CM スケッチ テーブルの幅。ハッシュ関数の範囲のビット数です。 |
出力
名前 | 型 | 説明 |
---|---|---|
カウント (変換を) | ITransform インターフェイス | カウント変換。 |
例外
例外 | 説明 |
---|---|
エラー 0003 | 1 つまたは複数の入力が null または空の場合、例外が発生します。 |
エラー 0004 | パラメーターが特定の値以下の場合、例外が発生します。 |
エラー 0005 | パラメーターが特定の値より小さい場合、例外が発生します。 |
エラー 0007 | パラメーターが特定の値より大きい場合、例外が発生します。 |
エラー 0009 | Azure ストレージ アカウント名やコンテナー名が正しく指定されていない場合に、例外が発生します。 |
エラー 0065 | 正しくない Azure BLOB 名が指定された場合、例外が発生します。 |
エラー 0011 | 渡された列セット引数がデータセットのどの列にも適用されない場合、例外が発生します。 |
エラー 0049 | ファイルを解析できない場合、例外が発生します。 |
エラー 1000 | 内部ライブラリの例外。 |
エラー 0059 | 列ピッカーで指定されている列インデックスを解析できない場合、例外が発生します。 |
エラー 0060 | 列ピッカーで範囲外の列範囲を指定すると、例外が発生します。 |
エラー 0089 | 指定されたクラスの数がカウントに使用されるデータセットの実際のクラスの数より少ない場合、例外が発生します。 |
Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。
API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。