インジケーター値への変換

列内のカテゴリ値をインジケーター値に変換します

カテゴリ: データ変換/操作

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

モジュールの概要

この記事では、Azure Machine Learning Studio (クラシック) の [ インジケーター値への変換 ] モジュールを使用する方法について説明します。 このモジュールの目的は、カテゴリ値を含む列を、機械学習モデルの特徴として簡単に使用できる一連のバイナリインジケーター列に変換することです。

インジケーター値への変換を構成する方法

  1. [ インジケーター値への変換 ] モジュールを Azure Machine Learning 実験に追加し、変換する列を含むデータセットに接続します。 このモジュールは、[ データ変換] の [ 操作 ] カテゴリで確認できます。

  2. [列セレクター] を使用して、1 つまたは複数のカテゴリ列を選択します。

    選択した列がカテゴリであることを確認するには、実験のインジケーター値に変換する前にメタデータの編集を使用し、ターゲット列をカテゴリとしてマークします。

  3. 新しいブール値の列 のみ を出力する場合は、 [カテゴリ列を上書き] オプションを選択します。

    既定では、このオプションはオフになっています。これにより、ソースであるカテゴリ列と、関連するインジケーター列が表示されます。

    ヒント

    上書きするオプションを選択した場合、ソース列が実際に削除または変更されるわけではありません。 代わりに、新しい列が生成され、出力データセットに表示されます。ソース列は引き続きワークスペースで使用できます。 元のデータを参照する必要がある場合は、いつでも [列の追加] モジュールを使用して、ソース列を元に戻すことができます。

  4. 実験を実行します。

結果

たとえば、サーバーの障害が高、中、または低い可能性があるかどうかを示すスコアを持つ列があるとします。

サーバー ID 失敗スコア
10301
10302 Medium
10303

インジケーターの値に変換を適用すると、ラベルの1つの列がブール値を含む複数の列に変換されます。

サーバー ID 失敗スコア - 低 失敗スコア - 中 失敗スコア - 高
10301 1 0 0
10302 0 1 0
10303 0 0 1

変換のしくみは次のとおりです。

  • リスクについて記述する 失敗スコア の列には、3 つの可能な値 (高、中、低) のみがあり、欠損値はありません。 したがって、3つの新しい列が作成されます。

  • 新しいインジケーター列には、ソース列の列見出しと値に基づいて、 <source column>- <data value> というパターンを使用して名前が付けられます。

  • インジケーター列が1つだけ存在し、他のすべてのインジケーター列には0が含まれている必要があります。 これは、各サーバーが1つのリスク評価のみを持つことができるためです。

3つのインジケーター列を特徴として使用し、異なるリスクレベルに関連付けられている他のプロパティとの相関関係を分析できるようになりました。

使用例

このモジュールの使用方法の例については、 Azure AI Galleryを参照してください。

  • より ast のがん検出: 患者の ID 番号に基づいて患者をグループに分け、インジケーターの値 を使用して患者が属するグループにフラグを付けます。 そのグループのインジケーターが、後でモデルのスコア付けに使用されます。

  • ダイレクトマーケティング: [ 算術演算の適用] を使用すると、確率が定数と比較され、スコアが定数の上または下のどちらであるかを示す [はい/いいえ] の値が新しいインジケーター列に変換されます。

  • ネットワーク侵入検出: ログデータは Azure storage から読み込まれます。 クラスの変数 (たとえば、攻撃がルートキットか、バッファー オーバーフローかなどを説明する) は、カテゴリ列に変換され、複数のインジケーター値に拡張されます。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

使用上のヒント

  • カテゴリとマーク付けされている列のみをインジケーター列に変換できます。 このエラーが表示される場合は、選択した列の1つがカテゴリではない可能性があります。

    Error 0056 (エラー 0056):<column name> という名前の列は、許可されたカテゴリに含まれていません。

    既定では、ほとんどの文字列型の列は文字列機能として処理されるので、 メタデータの編集を使用して明示的にカテゴリとしてマークする必要があります。

  • 少なくとも1つのカテゴリ列を選択しないと、エラーが表示されます。

  • インジケーター列に変換できる列数に制限はありません。 ただし、値の各列で複数のインジケーター列が生成される可能性があるため、一度にいくつかの列だけを変換して確認することができます。

  • 列に欠損値が含まれている場合は、 <source column>- Missing という名前で、欠損カテゴリに対して個別のインジケーター列が作成されます。

  • インジケーター値に変換する列に数値が含まれている場合、他の機能列と同様にカテゴリとしてマーク付けされている必要があります。 それを行った後、数値は不連続値として扱われます。 たとえば、範囲が 25 ~ 30 の MPG 値を持つ数値列がある場合、不連続値ごとに新しいインジケーター列が作成されます。

    Make 高速道路燃費 (マイル/ガロン) -25 高速道路燃費 (マイル/ガロン) -26 高速道路燃費 (マイル/ガロン) -27 高速道路燃費 (マイル/ガロン) -28 高速道路燃費 (マイル/ガロン) -29 高速道路燃費 (マイル/ガロン) -30
    Alfa ロミオ 0 0 0 0 0 1

    インジケーター列の数が膨大にならないように、まず列の値の数を確認し、データを適切にビン分割または量子化することをお勧めします。

想定される入力

名前 Type 説明
データセット データ テーブル カテゴリ列を含むデータセット

モジュールのパラメーター

名前 Range Type Default 説明
変換するカテゴリ列 Any ColumnSelection インジケーターのマトリックスに変換するカテゴリ列を選択します。
カテゴリ列を上書きする Any Boolean false True の場合は選択したカテゴリ列を上書きし、それ以外の場合は、結果として得られるインジケーターのマトリックスをデータセットに追加します。

出力

名前 Type 説明
結果のデータセット データ テーブル インジケーターのマトリックスに変換されるカテゴリ列を含むデータセット

関連項目

操作性
データ変換
モジュールの一覧 (アルファベット順)