移動平均フィルター

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

傾向分析のためのデータ平滑化に使用する移動平均フィルターを作成します

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

Note

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

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

モジュールの概要

この記事では、Machine Learning Studio (クラシック) の移動平均フィルター モジュールを使用して、指定したウィンドウ長を使用して、データセットに対する一連の片面または両面平均を計算する方法について説明します。

ニーズに合ったフィルターを定義したら、データセット内の選択した列にフィルターを適用するには、[ フィルターの適用] モジュールに接続します。 モジュールはすべての計算を行い、数値列内の値を対応する移動平均に置き換えます。

結果として得られる移動平均は、プロットや視覚化に使用できるほか、モデリング用の新しい平滑ベースラインとして、また、類似する期間の計算結果に対する分散の計算などにも使用できます。

ヒント

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

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

移動平均の理解と使用

この種類の平均は、遡及的データとリアルタイム データにおいて有用な時系列パターンを明らかにし、予測するのに役立ちます。 最も単純な種類の移動平均は、連続するデータのいくつかのサンプルから開始し、その位置と、さらに前の n 個の位置の平均値を実際の値の代わりに使用します。 (n は好きなように定義できます)。平均が計算される期間 n が長いほど、値間の分散が少なくなります。 また、使用する値の数を増やすと、結果として得られる平均値にどれか 1 つの値が与える影響は小さくなります。

移動平均は、片側両側かを選択できます。 片側平均では、インデックス値の前の値のみを使用します。 両面平均では、過去および未来の値を使用します。

ストリーミング データを読み込むシナリオでは、累積移動平均と加重移動平均が特に便利です。 累積移動平均は、現在の期間より前の時点を計算に入れます。

平均を計算する際は、すべてのデータ ポイントに均等に重み付けをするか、現在のデータ ポイントに近い値により強い重み付けがされるよう指定できます。 加重移動平均では、すべての重みの合計が 1 になる必要があります。

指数移動平均では、平均値は、重み付けができる先頭末尾で構成されます。 末尾に弱い重み付けをすると、末尾が先頭のすぐ近くに続くことになるため、その平均は短い重み付け期間での移動平均に似た振る舞いをします。 末尾の重み付けが強い場合、平均はより長い単純移動平均のように振る舞います。

移動平均フィルターを構成する方法

  1. 移動平均フィルター モジュールを実験に追加します。 このモジュールは、[ データ変換] の [ フィルター ] カテゴリにあります。

  2. [長さ] に、フィルターを適用するウィンドウの合計サイズを定義する正の整数の値を入力します。 これはフィルター マスクとも呼ばれます。 移動平均の場合、フィルターの長さは、スライディング ウィンドウで平均化される値の数を決定します。

    より長いフィルターは 高次 フィルターとも呼ばれ、より大きな計算ウィンドウと傾向線の近似値を提供します。

    フィルターの順序を短くするか 低く すると、計算ウィンドウが小さくなり、元のデータとよく似ています。

  3. [種類] で、適用する移動平均の種類を選択します。

    Machine Learning Studio (クラシック) では、次の種類の移動平均計算がサポートされています。

    単純: 単純移動平均 (SMA) は、重み付けされていないローリング平均として計算されます。

    三角形: 三角形の移動平均 (TMA) は、より滑らかな傾向線に対して 2 回平均されます。 三角形という単語は、中央の値を強調するデータに適用される重みの形状から派生します。

    指数単純: 指数移動平均 (EMA) は、最新のデータにより多くの重みを与えます。 重みは指数関数的に低下します。

    指数: 変更された指数移動平均は、実行中の移動平均を計算します。ここで、いずれかのポイントで移動平均を計算すると、前のすべてのポイントで以前に計算された移動平均が考慮されます。 この方法では、より滑らかな傾向線が生成されます。

    累積: 単一のポイントと現在の移動平均を指定すると、累積移動平均 (CMA) は現在のポイントでの移動平均を計算します。

  4. 移動平均を計算する値を持つデータセットを追加し、[ フィルターの適用] モジュールを追加します。

    [Apply Filter]\(フィルターの適用\) の左側の入力に移動平均フィルターをConnectし、データセットを右側の入力に接続します。

  5. [ フィルターの適用] モジュールで、列セレクターを使用して、フィルターを適用する列を指定します。 既定では、フィルター変換はすべての数値列に適用されるため、適切なデータがない列は必ず除外してください。

  6. 実験を実行します。

    フィルター長パラメーターで定義された値のセットごとに、現在の (またはインデックス) 値が移動平均値に置き換えられます。

機械学習でフィルターを使用する方法の例については、 Azure AI ギャラリーでこの実験を参照してください。

  • フィルター: この実験では、エンジニアリングされた波形データセットを使用して、すべてのフィルターの種類を示します。

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

名前 Range Type Default 説明
長さ >=1 Integer 5 移動平均ウィンドウの長さを設定します
Type Any MovingAverageType 作成する移動平均の種類を指定します

出力

名前 Type 説明
Assert IFilter インターフェイス フィルターの実装

こちらもご覧ください

Assert
フィルターの適用
モジュールの一覧 (アルファベット順)
その他のフィルター サンプル