離散値の置換
重要
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 (クラシック) の [不連続値の置換] モジュールを使用して、不連続値を表す確率スコアを生成する方法について説明します。 このスコアは、不連続値の情報値を理解するために役立ちます。
動作のしくみ:
不連続 (またはカテゴリ別) の値を含む列を選択し、参照に使用する別の列を選択します。
2 番目の列がカテゴリか非カテゴリかによって、モジュールは次のいずれかの値を計算します。
- 最初 の列の 値を指定した 2 番目の列の条件付き確率。
- 最初 の 列 の値 の各グループの平均と標準偏差。
このモジュールは、スコアを含むデータセットと、保存して他のデータセットに適用できる関数の両方を出力します。
不連続値の置換を構成する方法
ヒント
一度に 1 組の列のみを操作することをお勧めします。 分析する複数の列を選択しても、モジュールでエラーは発生しない。 ただし、実際には、複数の列を選択すると、選択の順序ではなく、内部ヒューリスティックによって一致します。
そのため、1 組の列を選択することをお勧めします。1 つは個別の列用、もう 1 つは置換列用です。
複数の列のスコアを生成する必要がある場合は、個別の値の置換の個別の インスタンスを使用します。
[不連続 値の置換] モジュール を実験に追加します。 このモジュールは、Machine Learning Studio (クラシック) の実験項目一覧の [統計関数] グループで確認できます。
Connectデータの少なくとも 1 つの列を含むデータセットを作成します。
不連続列: [ 列セレクターの起動] を クリックして、不連続 (またはカテゴリ別) の値を含む列を選択します。
選択する不連続列はカテゴリ型である必要があります。 エラーが発生した場合は、メタデータの編集モジュール を使用 して列の種類を変更します。
置換列: [ 列セレクターの起動] をクリックして、置換スコアの計算に使用する値を含む列を選択します。
不連続列に対して複数の列 を選択する場合は、同数の置換列を選択する必要があります。
実験を実行します。
注意
適用する統計関数を選択することはできません。 モジュールは、[置換] 列に選択された列のデータ型に基づいて、適切なメジャー を計算します。
結果
モジュールは、列のペアごとに次のいずれかの値を計算します。
2 番目の列にカテゴリ値が含まれている場合、モジュールは、最初の列の値を指定して、2 番目の列の条件付き確率を計算します。
たとえば、国勢調査
occupation
データセットからgender
不連続列を選択し、置換列として を選択したとします。 モジュールの出力は次の結果です。P(gender | occupation)
2 番目の列に数値に変換できる非カテゴリ値 (カテゴリとしてマークされていない数値やブール値など) が含まれている場合、モジュールは最初の列の値の各グループの平均値と標準偏差を出力します。
たとえば、 を Discrete 列として
occupation
使用し、もう一方の列が数値列 であるとしますhours-per-week
。 モジュールでは、次の新しい値が出力されます。Mean(hours-per-week | occupation)
Std-Dev(hours-per-week | occupation)
確率スコアに加えて、モジュールは変換されたデータセットも出力します。 このデータセットでは、置換列として選択された 列は、 計算されたスコアを含む列に置き換えられる。
ヒント
ソース データセット内の列は、操作によって実際には変更または削除されません。スコア列は、ソース データではなく、モジュールと出力によって生成される新しい列です。
ソース値を確率スコアと共に表示するには、列の追加 モジュールを使用 します。
例
不連続値の 置換の使用方法 は、いくつかの簡単な例で示できます。
例 1 - カテゴリ値を確率スコアに置き換える
次の表には、カテゴリ列 X と True または False 値 (カテゴリ値として処理される) を持つ列 Y が表示されています。 [不連続値 の置換] を使用すると、3 番目の列に示すように、指定された X の Y の確率の条件付き確率スコアが計算されます。
X | Y | P(Y|X) |
---|---|---|
青 | 0 | P(Y=0|X=Blue) = 0.5 |
青 | 1 | P(Y=1|X=Blue) = 0.5 |
[緑] | 0 | P(Y=0|X=Green) = 2/3 |
[緑] | 0 | P(Y=0|X=Green) = 2/3 |
[緑] | 1 | P(Y=1|X=Green) = 1/3 |
[赤] | 0 | P(Y=0|X=Red) = .75 |
[赤] | 0 | P(Y=0|X=Red) = .75 |
[赤] | 1 | P(Y=1|X=Red) = .25 |
[赤] | 0 | P(Y=0|X=Red) = .75 |
例 2 - 非分類列に基づいて平均と標準偏差を計算する
2 番目の列が数値の場合、 不 連続値の置換では、条件付き確率スコアではなく平均と標準偏差が計算されます。
次の例は、Auto Prices サンプル データセットに基づいており、次のように簡略化されています。
列の小さなサブセットが選択されました。
パーティションとサンプル モジュールの [ヘッド] オプションを使用して、上位 30 行だけが抽出されました。
[不連続値の置換] モジュールは、車両の曲線重量の平均値と標準偏差を計算するために使用しました。 カテゴリ列 の場合は
num-of-doors
。
結果を次の表に示します。
本文 | ドア数 | 車両重量 | 平均(車両重量|ドア数) | 標準偏差(車両重量|ドア数) |
---|---|---|---|---|
標準 | two | 2548 | 2429.785714 | 507.45699 |
標準 | 4 | 2337 | 2625.6 | 493.409877 |
標準 | two | 2507 | 2429.785714 | 507.45699 |
ターボ | 4 | 3086 | 2625.6 5 | 493.409877 |
標準 | 4 | 1989 | 2625.6 | 493.409877 |
ターボ | 2191 | |||
標準 | 4 | 2535 | 2625.6 | 493.409877 |
Excel の関数を使用 AVERAGEIF
すると、値の各グループの平均値を確認できます。
例 3-欠損値の処理
この例では、条件付き確率スコアが計算されたときに欠損値 (null) が結果に反映される方法を示します。
離散値の列と計算の参照列に欠損値が含まれる場合は、欠損値が新しい列に反映されます。
離散値の列に欠損値のみが含まれている場合、モジュールは列を処理できずにエラー メッセージが表示されます。
X | Y | P(Y|X) |
---|---|---|
1 | 正しい | P(Y=true|X=1) = 1/2 |
1 | False | P(Y=false|X=1) = 1/2 |
2 | True | P(Y=true|X=2) = 1/3 |
2 | False | P(Y=false|X=2) = 1/3 |
2 | Null | P(Y=null|X=2) = null |
テクニカル ノート
置き換える離散列はいずれもカテゴリになっている必要があり、そうでない場合、モジュールはエラーを返します。 これを行うには、 メタデータの編集 モジュールを使用します。
2 番目の列にブール値が含まれている場合、True/False 値は数値として処理されます。FALSE と TRUE はそれぞれ 0 と 1 に相当します。
標準偏差列の式は、母集団の標準偏差を計算します。 したがって、N は (N-1) ではなく分母で使用されます。
2番目の列に非カテゴリデータ (数値またはブール値) が含まれている場合、モジュールは、指定された X の値に対して Y の平均と標準偏差を計算します。
つまり、によって
i
インデックスが作成されたデータセットの行ごとに、次のようになります。Mean(Y│X)i = Mean(Y│X = Xi)
StdDev(Y│X)i = StdDev(Y│X = Xi)
2番目の列にカテゴリデータまたは数値でもブール値でもない値が含まれている場合、モジュールは、指定された X の値に対して Y の条件付き確率を計算します。
2 番目の列内のブール型の値は、数値データとして処理されます。FALSE と TRUE はそれぞれ 0 と 1 に相当します。
2 番目の列に欠損値を含む行が存在するクラスが離散列にある場合、クラス内の条件付き確率の合計は 1 より小さくなります。
想定される入力
名前 | 型 | 説明 |
---|---|---|
データセット | データ テーブル | 入力データセット |
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
不連続列 | Any | ColumnSelection | 離散値を含む列を選択します | |
置換列 | Any | ColumnSelection | 離散値の代わりに使用するデータを含む列を選択します |
出力
名前 | 型 | 説明 |
---|---|---|
補完されたデータセット | データ テーブル | 置換されたデータを含むデータセット |
変換関数 | ITransform インターフェイス | 変換関数の定義。これは他のデータセットに適用できます |
例外
例外 | 説明 |
---|---|
エラー 0001 | データセットで 1 つ以上の指定した列が見つからない場合に、例外が発生します。 |
エラー 0003 | 1 つまたは複数の入力が null または空の場合、例外が発生します。 |
エラー 0020 | モジュールに渡された一部のデータセットの列数が少なすぎる場合に、例外が発生します。 |
エラー 0021 | モジュールに渡された一部のデータセットの行数が少なすぎる場合に、例外が発生します。 |
エラー 0017 | 指定した 1 つまたは複数の列に、現在のモジュールでサポートされていない型がある場合、例外が発生します。 |
エラー 0026 | 同じ名前の列が許可されていない場合に、例外が発生します。 |
エラー 0022 | 入力データセットの選択した列の数が、必要な数と等しくない場合に、例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください。
API の例外の一覧については、「エラー コードMachine Learning REST API参照してください。