機械翻訳について

3.3.3 モデルの構築

時系列データを使用してモデルを構築するには、探索段階で作成したプロキシ・オブジェクトESM_SH_DATAに指数平滑法アルゴリズムを適用します。

Oracleには、時系列予測専用の指数平滑法アルゴリズムが用意されています。

指数平滑法は、過去の観測に指数減少する重みを割り当てる予測手法です。 これは移動平均法の一種です。 指数平滑法モデル(ESM)には、トレンドや季節性などのコンポーネントが含まれており、加算形式または乗算形式でモデル化できます。
  • トレンドとは、時間の経過に伴うデータの長期的な増加または減少を指します。 シリーズの一般的な方向または移動(上向き、下向きまたは安定)を取得します。
  • 季節性とは、休日、天候、ビジネス・サイクルなどの要因によって引き起こされる日次、月次、四半期変動など、固定間隔で発生するデータの定期的な繰返しパターンまたはサイクルを指します。

加算形式では、変動の振幅(繰返し季節変動のサイズ)は時系列全体のレベルから独立していますが、乗算形式では季節変動はレベルに比例して変化します。 ここで、レベルは、特定の時点における時系列のベースライン値または基礎となる大きさを参照します。 これは、値が低い場合に全体的な値が高く小さくなると、季節変動がシリーズより大きいレベルに比例する多重モデルを示唆しています。 加算モデルは、エラー(またはノイズ)、トレンドおよび季節性が線形コンポーネントであると仮定します。 これらのコンポーネントは再帰的な方法で結合され、最終モデルを形成します。

教師あり学習アプローチを使用してモデルを構築するには、データセットをトレーニング・セットとテスト・セットに分割することが一般的です。 ただし、時系列モデリングは、系列内の先行する項目に基づいて系列内の次の値を予測するという点で、分類および回帰とは異なります。 この場合、モデルでは常に過去のデータのみを使用して現在の値を予測するため、データセットを分割する必要はありません。 モデルが同じデータに基づいてトレーニングおよびテストされているように見えますが、各予測は以前の時点のみに基づきます。

このユースケースでは、プロキシ・オブジェクトESM_SH_DATAを使用して指数平滑法モデルを構築します。

  1. 指数平滑法モデル(ESM)に関するヘルプを表示するには、次のスクリプトを実行します:
    %r
     
    help(ore.odmESM)

    help(ore.odmESM)の出力は、ore.odmESMの関数参照です。 Oracleのデータベース内分析を使用して時系列予測の指数平滑化モデルを構築する方法を説明します。 これは、構文の学習、パラメータの理解、使用例の表示に役立ちます。

  2. 四半期設定を使用してHolt-Wintersモデルを作成します。 Holt-Wintersモデルは、トレンド(全体方向)や季節性(通常のアップとダウン)などのパターンを調べることで、時系列で将来の値を予測する方法です。 過去のデータのみを使用して予測を段階的に更新し、将来を見据えることはありません。

    ESM_SH_DATAプロキシ・オブジェクトを使用してモデルを構築するには、次の文を実行します:

    このスクリプトは、ESM_SALES_FORECAST_1という名前の既存のモデルをすべて削除し、Holt-Winters指数平滑法モデルをトレーニングして、次の4四半期の四半期ごとにAMOUNT_SOLDを予測します。 ore.odmESMを使用したデータベース内モデリングを使用し、トレーニング済モデルをさらに使用するためにオブジェクトMODに格納します。

    %r
     
    ore.drop(model = 'ESM_SALES_FORECAST_1')
     
    settings = list(EXSM_INTERVAL = 'EXSM_INTERVAL_QTR',
                    EXSM_PREDICTION_STEP = 4,
                    EXSM_MODEL = 'EXSM_HW',
                    EXSM_SEASONALITY = 4,
                    EXSM_ACCUMULATE = 'EXSM_ACCU_TOTAL',
                    MODEL_NAME='ESM_SALES_FORECAST_1',
                    case_id_column_name = "TIME_ID")
     
    MOD <- ore.odmESM(AMOUNT_SOLD~.,
                      SALES_TIME_AMOUNT,
                      odm.settings= settings)

    スクリプトを詳しく見てみます。

    • EXSM_INTERVAL: データセットの間隔または間隔サイズの単位(日、週、月など)を指定します。この設定は、日時型の時間列にのみ適用されます。 たとえば、四半期ごとの売上を予測する場合は、これを EXSM_INTERVAL_QTRに設定します。
    • EXSM_PREDICTION_STEP: 将来の予測の数を指定します。 たとえば、四半期ごとに1つの値を予測する場合、これを4に設定すると、将来の4四半期の予測が生成されます。
    • EXSM_MODEL: 使用する指数平滑化モデルのタイプを指定します。 たとえば、EXSM_WINTERSは、加算トレンドおよび乗算季節性を持つHolt-Wintersの3重指数平滑法モデルを表します。 このタイプのモデルでは、加法的傾向と乗法的傾向、季節性と誤差、傾向減衰の有無の各種組合せが考慮されます。
      • 加算トレンド: 一定金額を経時的に加算して値の増加または減少が発生するトレンド。
      • 乗算トレンド: 時間の経過に伴う定数係数(パーセント増大など)を乗算して値が増減するトレンド。
      • 季節性: 日次、週次、月次、年次など、特定の間隔で発生する時系列における定期的な繰返しパターンまたは変動を示します。
      • エラー・コンポーネント: トレンドまたは季節性によって取得されないデータのランダムなノイズまたは説明されていない変動。
      • トレンド・ダンピング: トレンドの成長を遅らせたり、時間の経過とともに減少させたり、同じレートで無期限に継続できないようにする手法。
    • EXSM_SEASONALITY: このパラメータは、季節サイクルの長さを指定し、1より大きい正の整数である必要があります。 たとえば、値が4の場合、季節パターンは4つの期間(1年の4つの四半期など)ごとに繰り返されます。 この場合、4つの連続する値の各グループは、1つの完全な季節サイクルを表します。
    • EXSM_SETMISSING: 欠落値の処理方法を指定します。 特殊値EXSM_MISS_AUTOは、時系列に欠落値が含まれている場合は、不規則な時系列として処理する必要があることを示します。

これで、モデルの構築ステージが完了します。