次の方法で共有


ユーザー定義フィルター

カスタムの有限または無限インパルス応答フィルターを作成します。

カテゴリ: データ変換/フィルター

注意

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

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

この記事では、Machine Learning Studio (クラシック) でユーザー定義フィルター モジュールを使用し、有限インパルス応答 (FIR) フィルターまたは指定した係数を持つ無限インパルス応答 (IIR) フィルターを使用してカスタム フィルターを定義する方法について説明します。

フィルタは、入力信号を受け取り、フィルタ特性に基づいて出力信号を作成する伝達関数です。 デジタル信号処理におけるフィルタのユーザに関する一般的な情報については、 フィルタを参照してください。 このモジュールは、既に派生している一連のフィルター係数をデータに適用する場合に特に便利です。

ニーズに合ったフィルターを定義したら、データセットとフィルターを [フィルターの適用] モジュールに接続することで、データに フィルターを適用 できます。

ヒント

データセットからデータをフィルター処理するか、欠損値を削除する必要がありますか? 代わりに、次のモジュールを使用します。

  • 欠損データのクリーンアップ: このモジュールを使用して、欠損値を削除するか、欠損値をプレースホルダーに置き換えます。
  • パーティションとサンプル: このモジュールを使用して、日付の範囲、特定の値、正規表現などの条件でデータセットを分割またはフィルター処理します。
  • クリップ値: このモジュールを使用して範囲を設定し、その範囲内の値のみを保持します。

User-Defined フィルターを構成する方法

  1. Studio (クラシック) の実験に ユーザー定義フィルター モジュールを追加します。 このモジュールは、[ データ変換] の [ フィルター ] カテゴリにあります。

  2. [ プロパティ ] ウィンドウで、フィルターの種類 (FIR フィルターまたは IIR フィルター) を選択します。

  3. フィルターに適用する係数を指定します。 係数の要件は、FIR フィルターと IIR フィルターのどちらを選択するかによって異なります。

    • FIR フィルターでは、フィードフォワード係数のベクターを指定します。 ベクトルの長さがフィルターの順番を決定します。 FIR フィルターは事実上移動平均であるため、構成値に応じて移動平均が適用され、データ シーケンスがフィルタリングされます。

    • IIR フィルターでは、カスタムのフィードフォワード係数とフィードバックワード係数を適用します。 ヒントについては、「 」セクションを参照してください。

  4. フィルターをConnectしてフィルターを適用し、データセットを接続します。

    列セレクターを使用して、フィルターを適用するデータセットの列を指定します。 既定では、[ フィルターの適用] モジュールでは、選択したすべての数値列にフィルターが使用されます。

  5. 実験を実行します。

    指定した変換は、[フィルターの適用] を使用して実験を実行した場合にのみ、選択した数値列に 適用されます

機械学習でフィルターを使用する方法の詳細な例については、 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を減衰させる。

この場合、デジタルノッチフィルタは次の式で表すことができます。

custom notch filter example 1

この数式では、次のことを前提としています。

custom notch filter

この数式から、フィードフォワード係数を取得できます。

feed forward coefficient for custom notch filter

フィードバックワード係数は次のようになります。

feed back coefficient for custom notch filter

IIR フィルターの例: ノッチ フィルター 2

次の例は、切り欠き周波数 fn =1250 Hz が 1 つのノッチ フィルターと -3 dB 、除去バンドが fb =100 Hz、サンプリング周波数 fs=10 kHzが .

formula for notch filter example 2-1

次の数式を使用して、次の値を取得 a2 = 0.93906244 します a1 = 1.3711242

formulas 2 for notch filter example 2

これにより、次のフィードフォワード (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」を参照してください

関連項目

フィルターの適用
モジュールの一覧 (アルファベット順)