Amazonのテクノロジーで
正確な時系列予測が行える!

Forecastは、Amazon.com で10年以上取り組んできた時系列データの予測技術がサービス化されたものになります。モデルの再構築と検証、アルゴリズムの選定などの一連の流れを自動で行うことができ、正確な時系列予測が行えます。

「Amazon Forecast」は
Amazonのテクノロジーに基づいた
正確な時系列予測が行えるサービスです。

Amazon Forecast 公式サイトより

今日の企業は、製品の需要、リソースのニーズ、あるいは財務業績といった将来のビジネス成果を正確に予測するために、簡単なスプレッドシートから複雑な財務計画ソフトウェアにいたるまで、あらゆるツールを活用しています。これらのツールは一連の時系列データを確かめることで予測を立てますが、こうしたデータは時系列データと呼ばれます。たとえばレインコートの売上高を予測する場合、これらのツールは、過去が未来を決定するとの前提に基づき、過去のデータのみを参照して予測を試みることがあります。このような方法では、不規則な傾向を含む膨大なデータから予測を行う際に、正確な予測を立てることが難しくなる可能性があります。また、経時的に変化するデータ (価格、割引率、ウェブトラフィック、従業員数など) を、製品の機能や店舗の所在地といった関連する個別の変数に結びつけることも困難になります。

Amazon Forecast は、Amazon.com と同じテクノロジーをベースとし、機械学習を使って時系列データを付加的な変数に結びつけて予測を立てます。Amazon Forecast を使用する際に、機械学習の経験は必要ありません。必要なのは過去のデータと、予測に影響を与える可能性があるその他の追加データだけです。たとえば、シャツの特定のカラーの需要は、季節や店舗の所在地によって変わることがあります。こうした複雑な関係性は、過去のデータのみに基づいて判断することは困難で、それを認識することに理想的に適しているのが機械学習です。Amazon Forecast は、ユーザーがデータを提供すると、それを自動的に精査し、何が重要かを識別して、予測を立てるための予測モデルを作成します。このモデルの精度は、時系列データのみに基づく場合と比べ、最大で 50% 高くなります。

この「Amazon Forecast」を使って
ビットコインの価格予測をしてみました。

価格予測でやっていること

❶ ビットコイン価格の取得

一日一回の頻度でビットコインの価格データを取得します。

❷ 価格データから学習

取得した価格データをもとにAmazon Forecastで学習(一日一回の頻度で再学習)します。
※現在は30分足のデータで学習しています

❸ ビットコイン価格の予測

学習したモデルを使って未来のビットコインの価格予測を行います。
※現在は一日先までの価格を予測します

Amazon Forecastによる
ビットコインの価格予測

※価格の予測は精度を保証できるものではありませんので、あくまで参考までにしてください。
※現時点では単純に価格の時系列データ(過去のデータ)のみで学習しています。今後は予測精度を上げるべく、予測に影響を与える可能性がある追加データも取り入れて学習したいと考えています。

評価メトリクス

評価日 RMSE Loss(P10) Loss(P50) Loss(P90)

グラフ内の用語について

予想価格(P10) 予想価格の10パーセンタイル値です。とりうる値のうち、全体の下から10%に位置する値です。
例えば、上のグラフでは 1970/01/01 09:00:00 に価格 JPY を下回る可能性は10%と予測しています。
予想価格(P50) 予想価格の50パーセンタイル値です。とりうる値のうち、全体の下から50%に位置する値で、いわゆる中央値です。
一般的に予測値とはこの値のことを指します。
例えば、上のグラフでは 1970/01/01 09:00:00 に価格 JPY を下回る可能性は50%と予測しています。
予想価格(P90) 予想価格の90パーセンタイル値です。とりうる値のうち、全体の下から90%に位置する値です。
例えば、上のグラフでは 1970/01/01 09:00:00 に価格 JPY を下回る可能性は90%と予測しています。
SMA SMA(Simple Moving Average)は単純移動平均線のことです。日々の平均価格を線でつないだものになります。
RMSE RMSE(Root Mean Square Error)は平均平方二乗誤差のことで誤差の二乗を平均して平方根をとった値です。
実際の値と予測値が近づくほどRMSE は小さくなり、この値が小さいほど誤差が少ないです。