ユーザー定義フィルター
カスタムの有限または無限インパルス応答フィルターを作成します。
カテゴリ: データ変換/フィルター
注意
適用対象: Machine Learning Studio (クラシック) のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) でユーザー定義フィルター モジュールを使用し、有限インパルス応答 (FIR) フィルターまたは指定した係数を持つ無限インパルス応答 (IIR) フィルターを使用してカスタム フィルターを定義する方法について説明します。
フィルタは、入力信号を受け取り、フィルタ特性に基づいて出力信号を作成する伝達関数です。 デジタル信号処理におけるフィルタのユーザに関する一般的な情報については、 フィルタを参照してください。 このモジュールは、既に派生している一連のフィルター係数をデータに適用する場合に特に便利です。
ニーズに合ったフィルターを定義したら、データセットとフィルターを [フィルターの適用] モジュールに接続することで、データに フィルターを適用 できます。
ヒント
データセットからデータをフィルター処理するか、欠損値を削除する必要がありますか? 代わりに、次のモジュールを使用します。
- 欠損データのクリーンアップ: このモジュールを使用して、欠損値を削除するか、欠損値をプレースホルダーに置き換えます。
- パーティションとサンプル: このモジュールを使用して、日付の範囲、特定の値、正規表現などの条件でデータセットを分割またはフィルター処理します。
- クリップ値: このモジュールを使用して範囲を設定し、その範囲内の値のみを保持します。
User-Defined フィルターを構成する方法
Studio (クラシック) の実験に ユーザー定義フィルター モジュールを追加します。 このモジュールは、[ データ変換] の [ フィルター ] カテゴリにあります。
[ プロパティ ] ウィンドウで、フィルターの種類 (FIR フィルターまたは IIR フィルター) を選択します。
フィルターに適用する係数を指定します。 係数の要件は、FIR フィルターと IIR フィルターのどちらを選択するかによって異なります。
FIR フィルターでは、フィードフォワード係数のベクターを指定します。 ベクトルの長さがフィルターの順番を決定します。 FIR フィルターは事実上移動平均であるため、構成値に応じて移動平均が適用され、データ シーケンスがフィルタリングされます。
IIR フィルターでは、カスタムのフィードフォワード係数とフィードバックワード係数を適用します。 ヒントについては、「 例 」セクションを参照してください。
フィルターをConnectしてフィルターを適用し、データセットを接続します。
列セレクターを使用して、フィルターを適用するデータセットの列を指定します。 既定では、[ フィルターの適用] モジュールでは、選択したすべての数値列にフィルターが使用されます。
実験を実行します。
指定した変換は、[フィルターの適用] を使用して実験を実行した場合にのみ、選択した数値列に 適用されます。
例
機械学習でフィルターを使用する方法の詳細な例については、 Azure AI ギャラリーを参照してください。
- フィルター: すべてのフィルターの種類を示します。 この例では、さまざまなフィルターの影響をより簡単に説明するために、調整済みの波形データセットを使用します。
FIR フィルターの例: 指数加重移動平均
指数的に重み付けされた移動平均の場合は、すべての係数が 1 より小さく、すべての係数の合計が 1 に等しくなります。 したがって、加重平均の差異は常に入力値より小さくなります。
たとえば、FIR フィルターで指数的に重み付けされた移動平均 (WMA) を概算する場合、フィードフォワード パラメーターの値として係数のコンマ区切りの一覧を指定します。
0.01818182, 0.03636364, 0.05454545, 0.07272727, 0.09090909, 0.10909091, 0.12727273, 0.14545455, 0.16363636, 0.18181818
FIR フィルターの例: 指数加重移動平均 (Deslauriers-Dubuc 補間)
この FIR フィルターは、三角加重移動平均 (WMA) に近似します。 係数を定義する場合は、次のようなフィードフォワード パラメーターにコンマ区切りの一連の値を指定します。
0.0625, 0.0625, 0.2500, 0.3750, 0.2500, 0.0625
このカスタム FIR フィルターで使用される値は、有限シーケンスのDeslauriers-Dubuc法を使用して得られるフィードフォワード係数のベクトルを表します。 詳細については、 間隔の有限シーケンスと補間ウェーブレットの Dubuc-Deslauriers サブディビジョンを参照してください。
IIR フィルターの例: ノッチ フィルター
ユーザー定義 IIR フィルターのアプリケーションの良い例は、バンドストップ フィルターとも呼ばれるノッチ フィルターを定義することです。 所望のノッチフィルタは、サンプリング周波数fs
で、ノッチ周波数fn
を中心とする-3dB除去バンドfbを減衰させる。
この場合、デジタルノッチフィルタは次の式で表すことができます。
この数式では、次のことを前提としています。
この数式から、フィードフォワード係数を取得できます。
フィードバックワード係数は次のようになります。
IIR フィルターの例: ノッチ フィルター 2
次の例は、切り欠き周波数 fn =1250 Hz
が 1 つのノッチ フィルターと -3 dB
、除去バンドが fb =100 Hz
、サンプリング周波数 fs=10 kHz
が .
次の数式を使用して、次の値を取得 a2 = 0.93906244
します a1 = 1.3711242
。
これにより、次のフィードフォワード (b) 係数とフィードバックワード (a) 係数を取得できます。
b= 1.9390624, -2.7422484, 1.9390624
a= 1, -1.3711242, 0.9390624
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
フィルターの種類 | any | ImpulseResponse | カスタマイズするフィルターの種類を指定します。 | |
転送 | any | String | "1.0" | 一連のフィードフォワード係数を入力します。 |
移動 | any | String | "1.0" | 一連のフィードバックワード フィルター係数を入力します。 |
出力
名前 | Type | 説明 |
---|---|---|
Assert | IFilter インターフェイス | フィルターの実装 |
例外
例外 | 説明 |
---|---|
ParameterParsing | 1 つ以上のパラメーターを解析できなかったか、指定した型からターゲット メソッドで必要な型に変換できなかった場合は例外が発生します。 |
Studio (クラシック) モジュールに固有のエラーの一覧については、「Machine Learningエラー コード」を参照してください。
API 例外の一覧については、「REST API エラー コードMachine Learning」を参照してください。