クリップの値
重要
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 (クラシック) の Clip Values モジュールを使用して、指定されたしきい値を超えるデータ値またはしきい値を必要に応じて置き換える方法について説明します。 これは、外れ値を削除したり、平均値、定数、または他の代替値に置き換える場合に便利です。
クリップする数値があるデータセットにモジュールを接続し、操作する列を選択してから、しきい値または値の範囲、および置換方法を設定します。 モジュールは、結果のみ、または変更された値を元のデータセットに追加したもののいずれかを出力できます。
クリップ値を構成する方法
開始する前に、クリップする列と使用する方法を識別します。 どのクリップ方法も、最初はデータの小さなサブセットに対してテストすることをお勧めします。
モジュールは、選択に含めるすべての列に同じ基準と置換方法を適用します。 そのため、変更したくない列は必ず除外してください。
クリップ方法または異なる基準を一部の列に適用する必要がある場合は、類似の列のセットごとに [Clip Values]\(クリップ値\) の新しいインスタンスを使用する必要があります。
Clip Values モジュールを 実験に追加し、変更するデータセットに接続します。 このモジュールは、[Data Transformation]\(データ変換\) の [Scale and Reduce]\(拡大縮小\) カテゴリにあります。
[List of columns]\(列の一覧\) で、列セレクターを使用して [Clip Values]\(クリップ値\) が適用される列を選択します。
[Set of thresholds]\(しきい値のセット\) には、ドロップダウン リストから次のいずれかのオプションを選択します。 これらのオプションは、許容値とクリップする必要がある値の上限と下限の設定方法を決定します。
ClipPeaks: ピークによって値をクリップする場合、上限のみを指定します。 その境界値より大きい値は置き換えられるか、削除されます。
ClipSubpeaks: サブピークで値をクリップする場合は、下限のみを指定します。 その境界値より小さい値は置き換えられるか、削除されます。
ClipPeaksAndSubpeaks: ピークとサブピークで値をクリップする場合は、上限と下限の両方を指定できます。 その範囲外の値は置き換えられるか、削除されます。 境界値に一致する値は変更されません。
前の手順での選択に応じて、次のしきい値を設定できます。
- Lower threshold (下限しきい値) : ClipSubPeaks を選択した場合にのみ表示されます
- Upper threshold (上限しきい値) : ClipPeaks を選択した場合にのみ表示されます
- Threshold (しきい値) : ClipPeaksAndSubPeaksを選択した場合にのみ表示されます
しきい値の種類ごとに、[定数] または [Percentile]\(パーセンタイル\) を選択します。
[定数] を選択した場合は、テキスト ボックスに最大値または最小値を入力します。 たとえば、値 999 がプレースホルダー値として使用されたことがわかっているとします。 上限しきい値 として [定数 ] を選択し、[上限しきい値の定数値] に「999 」と入力します。
[Percentile]\(パーセンタイル\) を選択した場合、列の値をパーセンタイルの範囲に制限します。
たとえば、10 ~ 80 パーセンタイル範囲内の値のみを保持し、他のすべてを置き換えたいとします。 [ Percentile] を選択し、[ Percentile value of lower threshold]/(低いしきい値の Percentile 値)に「10」と入力し、[ Percentile value of upper threshold]/(上限しきい値の Percentile 値)に「80」と入力します。
パーセンタイル範囲の使用方法の例については、パーセンタイルに関するセクションを参照してください。
代替値を定義します。
指定した境界と完全に一致する数値は、許容される値の範囲内にあると見なされ、置き換えられるか削除されません。 指定された範囲に収まらない数値はすべて、代替値に置き換えられます。
- Substitute value for peaks (ピークの代替値) : 指定されたしきい値よりも大きいすべての列値を置き換える値を定義します。
- Substitute value for subpeaks (サブピークの代替値) : 指定されたしきい値よりも小さいすべての列値の代替値として使用する値を定義します。
- ClipPeaksAndSubpeaks オプションを使用する場合、上限と下限のクリップ値に別々の代替値を指定できます。
次の置換値がサポートされています。
Threshold (しきい値) : クリップされた値を指定されたしきい値に置き換えます。
Mean (中間値) : クリップされた値を列値の中間値で置き換えます。 平均は、値がクリップされる前に計算されます。
Median (中央値) : クリップされた値を列値の中央値で置き換えます。 中央値は、値がクリップされる前に計算されます。
[Missing]\(欠落\) 。 クリップされた値を欠落している (空の) 値に置き換えます。
Add indicator columns (インジケーター列の追加) :指定したクリップ操作がその行のデータに適用されたかどうかを示す新しい列を生成する場合は、このオプションを選択します。 このオプションは、クリッピング値と置換値の新しいセットをテストする場合に特に便利です。
Overwrite flag (フラグの上書き) :新しい値を生成する方法を指定します。 既定では、[Clip Values]\(クリップ値\) はピーク値が目的のしきい値にクリップされた新しい列を作成します。 新しい値は元の列を上書きします。
元の列を保持し、クリップされた値で新しい列を追加するには、このオプションの選択を解除します。
実験を実行します。
[Clip Values]\(クリップ値\) モジュールの出力を右クリックし、[視覚化] を選択して値を確認し、クリップ操作が期待どおりであることを確認します。
例
このモジュールが機械学習の実験でどのように使用されるのかについては、次の記事を Azure AI Gallery。
- フォレストの火災の外れ値: データ サイエンスの EdX コーズのこの例では、Forest Fires サンプル データセットを使用したクリッピング方法を示します。
パーセントを使用したクリッピング
パーセンタイルによるクリップのしくみを理解するために、10 行のデータセットがあり、各行に 1 つのインスタンスがあってそれぞれの値が 1 ~ 10 であるとします。
パーセンタイルを上限しきい値として使用している場合、90 番目のパーセンタイルの値では、データセット内のすべての値の 90% がその値よりも小さくなければなりません。
パーセンタイルを下限しきい値として使用している場合、10 番目のパーセンタイルの値では、データセット内のすべての値の 10% がその値よりも小さくなければなりません。
[しきい値のセット] で [ClipPeaksAndSubPeaks] を選択します。
[Upper threshold]\(上限しきい値\) には [Percentile]\(パーセンタイル\) を選択し、[Percentile number]\(パーセンタイル数\) には 90 と入力します。
[上限の代替値] で [欠損値] を選択します。
[下限のしきい値] で [百分位] を選択し、[百分位値] に「10」を入力します。
[下限の代替値] で [欠損値] を選択します。
[Overwrite flag]\(上書きフラグ\) オプションを選択解除し、[Add indicator columns]\(インジケーター列を追加\) オプションを選択します。
ここで、百分位の上限しきい値として 60 および下限のしきい値として 30 を使用する同様の実験を行い、置換値としてしきい値を使用してみます。 次の表では、これら 2 つの結果を比較しています。
欠損値で置換: 上限しきい値 = 90、下限しきい値 = 10
しきい値で置換: 上限しきい値 = 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 が含まれます。
想定される入力
名前 | 型 | 説明 |
---|---|---|
データセット | データ テーブル | 入力データセット |
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
インジケーター列の追加 | TRUE または FALSE | Boolean | FALSE | 値のクリッピングのインジケーターを追加するかどうか |
下側のしきい値の定数値 | any | Float | -1 | サブキーがクリップされる下の値 |
上側のしきい値の定数値 | any | Float | 1 | ピークがクリップされる上の値 |
下側のしきい値の定数値 | any | Float | -1 | サブキーがクリップされる下の値 |
上側のしきい値の定数値 | >=1 | Float | 1 | ピークがクリップされる値を上回る値 |
列の一覧 | ColumnSelection | クリップする列の一覧 | ||
下側の代替値 | しきい値 平均 中央値 Missing |
SubstituteValues | しきい値 | クリッピング サブキーに使用される値 |
下側のしきい値 | 定数 パーセンタイル |
しきい値モード | 定数 | サブキーがクリップ モードになる以下の値 |
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 | 使用するしきい値の種類を指定します |
ピークの代替値 | しきい値 平均 中央値 Missing |
SubstituteValues | しきい値 | クリッピング ピーク時に使用される値 |
サブピークの代替値 | しきい値 平均 中央値 Missing |
SubstituteValues | しきい値 | クリッピング サブキーの間に使用される値 |
しきい値 | 定数 パーセンタイル |
しきい値モード | 定数 | ピークがクリップ モードになる上と下の値 |
上側の代替値 | しきい値 平均 中央値 Missing |
しきい値 | しきい値 | クリッピング ピークに使用される値 |
上側のしきい値 | 定数 パーセンタイル |
しきい値モード | 定数 | ピークがクリップ モードになる値を上回る値 |
出力
名前 | 型 | 説明 |
---|---|---|
結果のデータセット | データ テーブル | クリップされた列を含むデータセット |
例外
例外 | 説明 |
---|---|
エラー 0011 | 渡された列セット引数がデータセットのどの列にも適用されない場合、例外が発生します。 |
エラー 0017 | 指定した 1 つ以上の列の型が現在のモジュールでサポートされていない場合に、例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「エラー コードMachine Learning参照してください。
API の例外の一覧については、「エラー コードMachine Learning REST API参照してください。