しきい値フィルター
重要
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 (クラシック) のしきい値フィルター モジュールを使用して、数値を指定した範囲に制限するフィルターを定義する方法について説明します。
しきい値フィルタは、デジタル信号処理でよく使用されます。 しきい値フィルターは、入力データセットの各値を調べ、境界条件を満たしていないすべての値を変更します。 通常、次のアプリケーションでは、この種類のフィルターを使用します。
- 負の符号が付くすべての測定値を 0 で置き換えます。
- すべてのピクセルに対して数値の境界値を定義することで、グレースケール イメージを黒と白の領域に変換します。
ニーズを満たすフィルターを定義したら、データセットとフィルターを [フィルターの適用] モジュールに接続することで、データに フィルターを適用 できます。
フィルターの適用モジュールの出力は、しきい値フィルターの設定で指定されたとおりに変換された、選択した列を含むデータセットです。
あるいは、[インジケーター] オプションを選択した場合、フィルター値を返す代わりに、各行の値が指定されたフィルター条件を満たしているかどうかを示すブール値を含む列が返されます。 これは、新しいフィルターをテストする場合に便利です。
ヒント
データセットからデータをフィルター処理するか、欠損値を削除する必要がありますか? 代わりに、次のモジュールを使用します。
- 欠損データのクリーンアップ: このモジュールを使用して、欠損値を削除するか、欠損値をプレースホルダーに置き換えます。
- パーティションとサンプル: このモジュールを使用して、日付の範囲、特定の値、正規表現などの条件でデータセットを分割またはフィルター処理します。
- クリップ値: このモジュールを使用して範囲を設定し、その範囲内の値のみを保持します。
しきい値フィルターを構成する方法
しきい値フィルター モジュールを実験に追加します。 このモジュールは、[ データ変換] の [ フィルター ] カテゴリにあります。
[ 種類] には、適用するフィルターの種類を指定します。
LessThan: 指定されたレベルより小さい値を境界レベルに変更し、他のすべての値を通過します。
GreaterThan: 指定したレベルより大きい値を境界レベルに変更し、他のすべての値を通過します。
MagnitudeLessThan: 指定したレベル未満の値を境界レベルに変更しますが、元の値の符号は保持されます。
MagnitudeGreaterThan: 指定したレベルより大きい値を境界レベルに変更しますが、元の値の符号は保持されます。
InRange: 指定した範囲内にあるすべての値を渡し、範囲外の値を最も近い境界値に変更します。
OutOfRange: 指定した範囲外のすべての値を渡し、範囲内の値を最も近い境界値に変更します。
InRangeWithStd: 標準偏差の指定範囲内にあるすべての値を渡し、範囲外の値を最も近い境界値に変更します。
OutOfRangeWithStd: 指定した標準偏差の範囲外にあるすべての値を渡し、範囲内の値を最も近い境界値に変更します。
[ レベル] に、しきい値の種類ごとに適用する境界値を入力します。
LessThan フィルターを選択すると、指定した数値によって、置換なしで渡すことができる最小値が定義されます。
GreaterThan フィルターを選択すると、指定した数値によって、置換せずに渡すことができる最大の値が定義されます。
[MagnitudeLessThan] フィルターを選択した場合は、[レベル] に正または負の 1 つの数値を入力します。 その値より小さい値は、レベル値に置き換えられます。
[MagnitudeGreaterThan] フィルターを選択した場合は、[レベル] に正または負の 1 つの数値を入力します。 その値より大きい値は、レベル値に置き換えられます。
フィルター ( InRange またはOutOfRange) を選択する場合は、上限または下限を指定します。 [下限] には、範囲に含める最小の数値を入力します。 [上限] には、範囲内に含める最も大きい数値を入力します。
標準偏差を使用するフィルターの種類 (InRangeWithStd、 OutOfRangeWithStd) のいずれかを選択した場合は、 Alpha 定数を指定する必要があります。 偏差のアルファ時間の値は、フィルター結果の計算に使用されます。
必要に応じて、[ インジケーター ] オプションを選択して、値がフィルターの影響を受けるかどうかを示す列のみを生成します。 インジケーターをオフのままにすると、フィルターによって置換値が生成されます。
フィルターをConnectしてフィルターを適用し、データセットを接続します。
列セレクターを使用して、フィルターを適用する列を指定します。 既定では、[ フィルターの適用] モジュールは、選択したすべての数値列にフィルター変換を適用します。
実験を実行します。
データセットを Apply Filter モジュールに接続して実験を実行するまで、計算は実行されません。 その時点で、指定した変換が選択した数値列に適用されます。
例
機械学習でフィルターを使用する方法の例については、 Azure AI ギャラリーで次の実験を参照してください。
- フィルター: この実験では、エンジニアリングされた波形データセットを使用して、すべてのフィルターの種類を示します。
インジケーター値の例
次の例では、下限が 2 で上限が 4 の範囲を指定するしきい値フィルターを適用することを前提としています。
値 | インジケーター | 置換後の文字列 |
---|---|---|
1 | FALSE | 2 |
2 | TRUE | 2 |
3 | true | 3 |
4 | true | 4 |
5 | FALSE | 4 |
フィルターの大きさの例
フィルターの種類 は MagnitudeLessThan と MagnitudeGreaterthan で、最初に指定したレベルに対して値が評価された後、元の値の符号によって異なる置換値を指定します。
マグニチュード フィルターの例
フィルターの種類 は MagnitudeLessThan と MagnitudeGreaterthan で、最初に指定したレベルに対して値が評価された後、元の値の符号によって異なる置換値を指定します。
たとえば、次の表は、値が 5 と -5 の MagnitudeLessThan フィルターを使用した場合の結果を示しています。
送信元の値 | Level | 新しい値 |
---|---|---|
3.07 | 5 | 5 値が 5 未満です。したがって、値は Level に置き換えられます |
3.07 | -5 | 3.07 値が -5 より小さい値ではありません。したがって、値は置き換えされません |
-3.93 | 5 | -5 値が 5 未満です。したがって、値は Level に置き換えられますが、元の値の符号は保持されます |
-3.93 | -5 | -3.93 値が -5 より小さい値ではありません。したがって、値は置き換えされません |
5.75 | 5 | 5.75 値が -5 より小さい値ではありません。したがって、値は置き換えされません |
-5.75 | -5 | -5.75 値が -5 より小さい値ではありません。したがって、値は置き換えされません |
テクニカル ノート
このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。
実装の詳細
しきい値フィルター モジュールは次のメソッドを使用してしきい値を定義します。これはフィルターの種類によって異なります。
LessThan: より小さいモードは次のように定義されます。
MagnitudeLessThan: 大きさより小さいモードは次のように定義されます。
複雑な入力では、各要素の絶対値は次の式のように制約されます。
MagnitudeGreaterThan: 大きさより大きいモードは次のように定義されます。
複雑な入力では、各要素の絶対値は次の式のように制約されます。
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
Type | Any | ThresholdType | LessThan | 使用するしきい値メソッドを選択します |
インジケーター | Any | Boolean | false | フィルター処理された値ではなく、値がフィルター条件を満たしているかどうかを示す True または False の値を含む列を返す場合は、このオプションを選択します。 |
Level | Any | Float | 0.0 | 置換する値を設定します |
下限境界 | Any | Float | -1.0 | 範囲の下限境界を指定します |
上限境界 | Any | Float | 1.0 | 範囲の上限境界を指定します |
Alpha | Any | Float | 3.0 | この値 (計算された標準偏差で乗算) をしきい値として使用します |
出力
名前 | Type | 説明 |
---|---|---|
Assert | IFilter インターフェイス | フィルターの実装 |