クリップの値

外れ値を検出して、値のクリップまたは置換を行います

カテゴリ: データ変換/スケールと縮小

注意

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

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

モジュールの概要

この記事では、Azure Machine Learning Studio (クラシック) の クリップ値 モジュールを使用して、指定したしきい値を上回るか下回るデータ値を特定し、必要に応じて置換する方法について説明します。 これは、外れ値を削除したり、平均、定数、またはその他の代替値で置き換えたりする場合に便利です。

クリップする数値があるデータセットにモジュールを接続し、操作する列を選択してから、しきい値または値の範囲、および置換方法を設定します。 モジュールは、結果のみ、または変更された値を元のデータセットに追加したもののいずれかを出力できます。

クリップ値を構成する方法

開始する前に、クリップする列と使用する方法を識別します。 どのクリップ方法も、最初はデータの小さなサブセットに対してテストすることをお勧めします。

モジュールは、選択に含める すべて の列に同じ基準と置換方法を適用します。 そのため、変更したくない列は必ず除外してください。

クリップ方法または異なる基準を一部の列に適用する必要がある場合は、類似の列のセットごとに [Clip Values](クリップ値) の新しいインスタンスを使用する必要があります。

  1. クリップの モジュールを実験に追加し、変更するデータセットに接続します。 このモジュールは、[Data Transformation](データ変換)[Scale and Reduce](拡大縮小) カテゴリにあります。

  2. [List of columns](列の一覧) で、列セレクターを使用して [Clip Values](クリップ値) が適用される列を選択します。

  3. [Set of thresholds](しきい値のセット) には、ドロップダウン リストから次のいずれかのオプションを選択します。 これらのオプションは、許容値とクリップする必要がある値の上限と下限の設定方法を決定します。

    • Clippeaks: ピークで値をクリップする場合は、上限の境界のみを指定します。 この境界値より大きい値は、置換または削除されます。

    • Clipsubpeaks: サブピークで値をクリップする場合は、下限の境界だけを指定します。 この境界値よりも小さい値は、置換または削除されます。

    • ClipPeaksAndSubpeaks: ピーク時およびサブピーク時に値をクリップする場合、上限と下限の両方を指定できます。 範囲外の値は、置換または削除されます。 境界値に一致する値は変更されません。

  4. 前の手順での選択に応じて、次のしきい値を設定できます。

    • 下限しきい値: clipsubpeaks を選択した場合にのみ表示されます
    • 上限しきい値: clippeaks を選択した場合にのみ表示されます
    • しきい値: ClipPeaksAndSubPeaks を選択した場合にのみ表示されます。

    しきい値の種類ごとに、[定数] または [Percentile](パーセンタイル) を選択します。

  5. [定数] を選択した場合は、テキスト ボックスに最大値または最小値を入力します。 たとえば、値 999 がプレースホルダー値として使用されたことがわかっているとします。 上限しきい値には 定数 を選択し、上限しきい値 の定数値 に「999」と入力します。

  6. [Percentile](パーセンタイル) を選択した場合、列の値をパーセンタイルの範囲に制限します。

    たとえば、10 ~ 80 パーセンタイル範囲内の値のみを保持し、他のすべてを置き換えたいとします。 パーセンタイル を選択し、下限しきい値の百分位数 として「10」を入力し、[上限しきい値] の百分位数 に「80」と入力します。

    パーセンタイル範囲の使用方法の例については、パーセンタイルに関するセクションを参照してください。

  7. 代替値を定義します。

    指定した境界と完全に一致する数値は、許可されている値の範囲内であると見なされます。したがって、置換も削除もされません。 指定された範囲に収まらない数値はすべて、代替値に置き換えられます。

    • ピークの代替値: 指定されたしきい値を超えるすべての列値の代わりに使用する値を定義します。
    • Subpeaks の代替値: 指定されたしきい値未満のすべての列値の代用として使用する値を定義します。
    • ClipPeaksAndSubpeaks オプションを使用する場合、上限と下限のクリップ値に別々の代替値を指定できます。

    次の置換値がサポートされています。

    • Threshold: クリップされた値を、指定したしきい値に置き換えます。

    • 平均: クリップされた値を列の値の平均で置き換えます。 平均は、値がクリップされる前に計算されます。

    • Median: クリップされた値を列の値の中央値に置き換えます。 中央値は、値がクリップされる前に計算されます。

    • ありませ ん。 クリップされた値を欠落している (空の) 値に置き換えます。

  8. [インジケーター列の追加]: 指定したクリッピング操作がその行のデータに適用されたかどうかを示す新しい列を生成する場合に、このオプションを選択します。 このオプションは、クリッピングと置換値の新しいセットをテストする場合に特に便利です。

  9. Overwrite フラグ: 新しい値を生成する方法を示します。 既定では、[Clip Values](クリップ値) はピーク値が目的のしきい値にクリップされた新しい列を作成します。 新しい値は元の列を上書きします。

    元の列を保持し、クリップされた値で新しい列を追加するには、このオプションの選択を解除します。

  10. 実験を実行します。

    [Clip Values](クリップ値) モジュールの出力を右クリックし、[視覚化] を選択して値を確認し、クリップ操作が期待どおりであることを確認します。

機械学習の実験でこのモジュールを使用する方法については、 Azure AI Galleryを参照してください。

  • フォレストの火災外れ値: データサイエンスの EdX couse のこの例では、フォレストを使用したクリッピングメソッドを示しています。サンプルデータセットを使用します。

パーセンタイルを使用したクリッピング

パーセンタイルによるクリップのしくみを理解するために、10 行のデータセットがあり、各行に 1 つのインスタンスがあってそれぞれの値が 1 ~ 10 であるとします。

  • パーセンタイルを上限しきい値として使用している場合、90 番目のパーセンタイルの値では、データセット内のすべての値の 90% がその値よりも小さくなければなりません。

  • パーセンタイルを下限しきい値として使用している場合、10 番目のパーセンタイルの値では、データセット内のすべての値の 10% がその値よりも小さくなければなりません。

  1. [しきい値のセット] で [ClipPeaksAndSubPeaks] を選択します。

  2. [Upper threshold](上限しきい値) には [Percentile](パーセンタイル) を選択し、[Percentile number](パーセンタイル数) には 90 と入力します。

  3. [上限の代替値] で [欠損値] を選択します。

  4. [下限のしきい値] で [百分位] を選択し、[百分位値] に「10」を入力します。

  5. [下限の代替値] で [欠損値] を選択します。

  6. [Overwrite flag](上書きフラグ) オプションを選択解除し、[Add indicator columns](インジケーター列を追加) オプションを選択します。

ここで、百分位の上限しきい値として 60 および下限のしきい値として 30 を使用する同様の実験を行い、置換値としてしきい値を使用してみます。 次の表では、これら 2 つの結果を比較しています。

  1. 欠損値で置換: 上限しきい値 = 90、下限しきい値 = 10

  2. しきい値で置換: 上限しきい値 = 60、下限しきい値 = 30

元のデータ 欠落値で置換 しきい値で置換
1

2

3

4

5

6

7

8

9

10
TRUE

TRUE

3, FALSE

4, FALSE

5, FALSE

6, FALSE

7, FALSE

8, FALSE

9, FALSE

TRUE
4, TRUE

4, TRUE

4, TRUE

4, TRUE

5, FALSE

6, FALSE

7, TRUE

7, TRUE

7, TRUE

7, TRUE

テクニカル ノート

  • クリップの値 は、数値または日付/時刻値を含む列に対してのみ使用できます。

  • 文字列またはカテゴリ データが含まれる列を追加した場合、その列はスキップされます。

  • 列の平均値または中央値を計算する場合、欠損値は無視されます。

  • [値のクリップ] は序数をサポートしていません。

  • 欠損値は、出力データセットに反映されると変更されません。 クリップされた値を示す列には、欠損値として常に FALSE が含まれます。

想定される入力

名前 Type 説明
データセット データ テーブル 入力データセット

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

名前 Range Type Default 説明
インジケーター列の追加 TRUE または FALSE Boolean false 値のクリッピングを示すインジケーターを追加するかどうか
下側のしきい値の定数値 any Float -1 サブピークをクリップする値
上側のしきい値の定数値 any Float 1 ピークがクリップされる前の値
下側のしきい値の定数値 any Float -1 サブピークをクリップする以下の値
上側のしきい値の定数値 >=1 Float 1 ピークをクリップする値
列の一覧 ColumnSelection クリップする列の一覧
下側の代替値 Threshold

平均

中央値

Missing
SubstituteValues Threshold サブピークのクリッピングに使用される値
下側のしきい値 定数

パーセンタイル
しきい値モード 定数 サブピークがクリップモードになる下の値
Overwrite flag (上書きフラグ) TRUE または FALSE Boolean TRUE クリップデータ列で入力データ列を上書きする必要があるかどうか
下側のしきい値の百分位数 [1; 99] Integer 1 サブピークをクリップするパーセンタイル番号
上側のしきい値の百分位数 [1; 99] Integer 99 ピークがクリップされる前の百分位数
下側のしきい値の百分位数 [1; 99] Integer 1 サブピークをクリップするパーセンタイル番号
上側のしきい値の百分位数 [1; 99] Integer 99 ピークがクリップされる前の百分位数
しきい値のセット ClipPeaks

ClipSubPeaks

ClipPeaksAndSubPeaks
しきい値の設定 ClipPeaks 使用するしきい値の種類を指定します
ピークの代替値 Threshold

平均

中央値

Missing
SubstituteValues Threshold クリッピングのピーク時に使用される値
サブピークの代替値 Threshold

平均

中央値

Missing
SubstituteValues Threshold クリッピングサブピーク中に使用される値
Threshold 定数

パーセンタイル
しきい値モード 定数 ピークがクリップモードになる上と下の値
上側の代替値 Threshold

平均

中央値

Missing
Threshold Threshold ピークのクリッピングに使用される値
上側のしきい値 定数

パーセンタイル
しきい値モード 定数 ピークがクリップモードになる前の値

出力

名前 Type 説明
結果のデータセット データ テーブル クリップされた列を含むデータセット

例外

例外 説明
エラー 0011 渡された列セット引数がデータセットのどの列にも適用されない場合、例外が発生します。
エラー 0017 指定した 1 つ以上の列の型が現在のモジュールでサポートされていない場合に、例外が発生します。

Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。

API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。

関連項目

スケールと縮小
モジュールの一覧 (アルファベット順)