ステップ 2: データを準備する
未加工データを入手したら、欠損データなどの複雑な問題を処理し、意図した解釈を最も的確に捉える予測モデルのためにデータを準備する必要があります。
欠損データの処理方法
実際に予測を実施するうえでよくある問題として、未加工データに欠損値が存在することが挙げられます。時系列で値が欠落しているということは、指定された頻度のすべての時点に対応する値がないため、それ以上処理できないことを意味します。値が欠損していると判定される理由は複数考えられます。
欠損値は、トランザクションが存在しない、または測定エラー (特定のデータを監視していたサービスが正しく動作していなかった、測定が正しく行われなかったなど) があったなどの理由で発生します。小売のケーススタディの場合、後者の主な例として、需要予測における在庫切れの状況があります。つまり、需要がその日の売上に等しくないということです。
クラウドコンピューティングのシナリオでも、サービスが上限に達した場合 (特定の AWS リージョンの Amazon EC2
欠損値を特徴量処理コンポーネントで挿入し、パディングによって時系列の長さを揃えることもできます。欠損値が多ければ、モデルの精度に大きな影響を与える可能性があります。
例 1
補完は、データセット内の欠落しているエントリに標準化された値を追加するプロセスです。次の図では、3 つの項目からなるデータセットの項目 2 について、Amazon Forecast で欠損値を処理するためのさまざまな方法 (前方補完、中間補完、後方補完、予測補完) を示しています。
Amazon Forecast は、ターゲット時系列と関連時系列の両方の補完に対応しています。グローバル開始日は、データセット内のすべての項目の開始日のうち、最初の開始日として定義されます。下記の例では、グローバル開始日は項目 1 で発生します。同様に、グローバル終了日は、すべての項目の時系列のうち最後の終了日として定義され、項目 2 で発生します。
前方補完では、特定の時系列の開始日からグローバル開始日までのすべての値が入力されます。本書の公開時点では、Amazon Forecast ではいかなる前方補完も有効にならず、すべての時系列を異なる時点から開始できます。中間補完は時系列の中間 (アイテムの開始日と終了日の間など) に補完された値を表し、後方補完はその時系列の最終日付からグローバル終了日までの値を補完します。
ターゲット時系列の場合、中間と後方の補完メソッドのデフォルトの補完ロジックはゼロです。予測補完 (関連時系列にのみ適用) は、項目のグローバル終了日と、お客様が指定した予測期間との間の欠損値を補完します。Prophet と DeepAR+ で関連時系列データセットを使用する場合は将来の値が必要で、CNN-QR の場合は任意です。
Amazon Forecast での欠損値の処理方法
前図では、グローバル開始日はすべての項目の開始日のうち最初の開始日を示し、グローバル終了日はすべての項目の終了日のうち最後の終了日を示しています。予測期間は、Forecast がターゲット値の予測を提供する期間です。
これは、小売業界の調査でよく見られるシナリオで、販売可能な商品の取引データで販売数がゼロになっているというものです。これらの値は真のゼロとして扱われ、指標評価コンポーネントで使用されます。Amazon Forecast では、ユーザーが実際に欠落している値を特定し、アルゴリズムが処理する非数 (NaN) としてエンコードできます。本書では次に、この 2 つのケースが異なる理由と、それぞれがどのような場合に役立つかを説明します。
小売のケーススタディでは、販売可能な商品の販売個数がゼロであったという情報は、その商品が存在しない期間 (発売前や廃止後など) または存在している期間 (一部在庫切れだった場合や、販売データが記録されていなかった期間があった場合など) に、販売不可能な商品の販売個数がゼロであったという情報とは異なります。前者の場合は、デフォルトのゼロ補完が適用されます。後者の場合、対応するターゲット値は通常ゼロですが、値が欠落しているとマークされることで付加的な情報が伝達されます。欠落しているデータがあったという情報は保存し、この情報を破棄しないことがベストプラクティスです。情報を保持することが重要である理由については、次の例で説明します。
Amazon Forecast では、値、平均、中央値、最小値、最大値という追加の補完ロジックをサポートしています。関連時系列 (価格やキャンペーンなど) では、正しい欠損値のロジックが属性タイプやユースケースによって異なるため、中間、後方、予測の補完メソッドにデフォルトのロジックは指定されていません。関連時系列でサポートされている入力ロジックには、ゼロ、値、平均、中央値、最小値、最大値があります。
欠損値の補完を実行するには、CreatePredictor オペレーションを呼び出すときに実装する補完のタイプを指定します。補完ロジックは FeaturizationMethod オブジェクトで指定されます。たとえば、ターゲットの時系列で入手できない商品の売上がゼロではない値をエンコードするには、補完タイプを NaN に設定して、値を本当に欠落しているものとしてマークします。ゼロ補完とは異なり、NaN でエンコードされた値は欠落しているものとして扱われ、指標評価コンポーネントでは使用されません。
同じ項目の予測に対する 0 補完と NaN による補完の効果の違い
前図の左のグラフでは、黒い縦線の左側の値が 0 で補完されているため、アンダーバイアス気味の予測 (黒い縦線の右側) になっています。右のグラフでは、これらの値は NaN とマークされており、適切な予測につながります。
例 2
上の図は、ARIMA や ETS などの線形状態空間モデルで欠損値を正しく処理することの重要性を示しています。一部在庫切れになっている項目の需要予測をグラフ化しており、トレーニング領域は左のグラフに緑で、予測範囲は右のパネルで赤で、真のターゲットは黒で表示されています。中央値、p10、p90 の予測は、それぞれ赤い線と影付きの領域に示されています。最下部には、在庫切れの商品 (データの 80%) が赤でマークされています。左のグラフでは、在庫切れの領域は無視され、0 で補完されています。
その結果、予測モデルでは、予測されるゼロが多数あると仮定され、予測値が低くなりすぎてしまいます。右のグラフでは、在庫切れ領域は真の欠測として扱われ、在庫切れ領域では需要が不確実になります。在庫切れ商品の欠損値が NaN と適切にマークされているため、このグラフの予測範囲にアンダーバイアスは見られません。Amazon Forecast はこのようなデータのギャップを埋めるため、入力データをすべて明示的に変更しなくても、欠落しているデータを簡単に正しく処理できます。
特徴量化および関連時系列の概念
Amazon Forecast では、サポートされている特定の予測モデルの精度を向上させるのに役立つ関連データをユーザーが入力できます。このデータには、関連時系列と静的な項目メタデータの 2 種類があります。
注記
メタデータと関連データは、機械学習では特徴量と呼ばれ、統計では共変量と呼ばれます。
関連時系列とは、ターゲット値と何らかの相関関係があり、直感的に説明できるため、ターゲット値の予測に統計的に役立つはずです (例については、「Amazon Forecast: predicting time-series at scale
Amazon Forecast では、過去の時系列と将来の時系列の 2 種類の関連時系列を追加できます。過去に関連時系列には、予測期間までのデータポイントが含まれ、将来の予測期間内のデータポイントは含まれません。将来の関連時系列には、予測期間までのデータポイントと予測期間内のデータポイントが含まれます。
Amazon Forecast で関連時系列を使用する際のさまざまなアプローチ
例 3
次の図は、関連時系列を使用して、人気のある本の将来の需要を予測する方法の例を示しています。青い線は、ターゲット時系列の需要を表しています。価格は緑の線で表されます。縦線は予測開始日を表し、2 つの分位数での予測が縦線の右側に表示されています。
この例では、予測粒度についてターゲット時系列と一致し、予測開始日から予測期間によって増分された予測開始日 (予測終了日) までの範囲で、将来のすべて (またはほとんど) の時点で既知である、将来の関連時系列を使用しています。
また、次の図では、価格の低下と商品の売上の上昇に相関関係が見られることから、価格が使用に適した特徴量であることもわかります。関連時系列は、商品の SKU、タイムスタンプ、関連時系列値 (この場合は価格) を含む別の CSV ファイルを使用して Amazon Forecast に読み込むことができます。
Amazon Forecast は、ターゲット時系列の平均や合計などの集計方法をサポートしていますが、関連時系列ではサポートしていません。たとえば、日次価格を週次価格に合計してもほとんど意味がありません。日次キャンペーンでも同様です。
Amazon Forecast では、組み込みの特徴量化済みデータセットを含めることで、天気や休日の情報をモデルに自動的に組み込むことができます (「SupplementaryFeature」を参照)。気象情報や休日は、小売需要に大きな影響を与える可能性があります。
特定の商品の売上 (青色、赤色の縦線の左側)
Amazon Forecast に入力できるその他の有用な機能として、項目メタデータ (カテゴリ変数とも呼ばれる) があります (例については「Amazon Forecast: predicting time-series at scale