AutoAI を使用して、指定された日付または時刻範囲の将来のアクティビティー (株価や温度など) を予測する時系列実験を作成します。
時系列の概要
時系列エクスペリメントは、過去の観測値を使用して将来の値を予測する予測方法です。 この実験では、ランダム・フォレスト回帰やサポート・ベクトル・マシン (SVM) などの機械学習モデルと、ARIMA や Holt-Winters などの統計時系列モデルを使用して、多くのパイプラインが自動的に作成されます。 その後、テストでは、ホールドアウト・データ・セットまたはバックテスト・データ・セットで評価されたパイプライン・パフォーマンスに従って、最良のパイプラインを推奨します。
標準の AutoAI エクスペリメントとは異なります。AutoAI エクスペリメントでは、パイプラインのセットが完成するまで作成され、それらのパイプラインがランク付けされます。 時系列エクスペリメントは、プロセスの早い段階でパイプラインを評価し、最もパフォーマンスの高いパイプラインのみを完了してテストします。
時系列実験のトレーニングとテストのさまざまなステージについて詳しくは、 時系列実装の詳細を参照してください。
サポート機能を使用した予測の改善
時系列エクスペリメントを構成する際に、 サポート・フィーチャー( 外因性フィーチャーとも呼ばれます) を指定することを選択できます。 サポート特徴量とは、予測ターゲットに影響を与えたり、コンテキストを追加したりする特徴量です。 例えば、アイスクリームの売上を予測する場合、毎日の温度は、予測をより正確にするための論理的なサポート機能になります。
サポート機能の将来の価値の活用
サポート・フィーチャーの将来の値が分かっている場合は、モデルのデプロイ時にそれらの将来の値を活用できます。 例えば、将来の T シャツの売上を予測するモデルをトレーニングする場合、予測を強化するためのサポート機能としてプロモーション割引を含めることができます。 プロモーションの 将来価値 を入力すると、予測がより正確になります。
データ要件
時系列エクスペリメントをトレーニングするための現在のデータ要件は以下のとおりです。
トレーニング・データは CSV 形式の単一ファイルでなければなりません。
ファイルには、1 つ以上の時系列の列が含まれている必要があり、オプションでタイム・スタンプ列が含まれます。 サポートされる日時形式のリストについては、 AutoAI 時系列の実装の詳細を参照してください。
データ・ソースにタイム・スタンプ列が含まれている場合は、データが一定の頻度でサンプリングされていることを確認してください。 つまり、隣接する行のタイム・スタンプの差は同一です。 例えば、データは 1 分、1 時間、または 1 日単位で増分することができます。 指定されたタイム・スタンプは、モデルの正確度を向上させるために遡及ウィンドウを決定するために使用されます。
注:ファイル・サイズが 1 GB より大きい場合は、タイム・スタンプの順に 降順 でデータをソートします。エクスペリメントのトレーニングには、最初の 1 GB のみが使用されます。
データ・ソースにタイム・スタンプ列が含まれていない場合は、データが定期的な間隔でサンプリングされ、サンプルの日付/時刻に従って 昇順 にソートされていることを確認してください。 つまり、最初の行の値が最も古いもので、最後の行の値が最も新しいものです。
注: ファイル・サイズが 1 GB より大きい場合は、1 GB より小さくなるようにファイルを切り捨てます。最終パイプラインをトレーニングする際に使用するデータを選択します。 トレーニング・データのみを含めることを選択した場合、生成されるノートブックには、各パイプラインの評価に使用されるホールドアウト・データを取得するためのセルが追加されます。
プロジェクトからデータを選択するか、ファイル・システムまたはアセット・ブラウザーからデータをアップロードして、 「続行」をクリックします。 データソース名の後にあるプレビューアイコン をクリックして、データを確認します。 オプションで、トレーニング済みパイプラインをテストするためのホールドアウト・データとして 2 番目のファイルを追加できます。
時系列エクスペリメントの構成
エクスペリメントの詳細を構成するときに、 「はい」 をクリックして 「時系列を有効にする」 を選択し、エクスペリメントの詳細を入力します。
フィールド | 説明 |
---|---|
予測の列 | 前の値に基づいて予測する時系列の列。 予測する 1 つ以上の列を指定できます。 |
日付/時刻列 | 時系列値が発生する日時を示す列。 |
ルックバック・ウィンドウ | 現在の時点を予測するために使用される過去の時系列値の数を示すパラメーター。 |
予測ウィンドウ | ルックバック・ウィンドウ内のデータに基づいて予測する範囲。 |
予測の要約には、エクスペリメントのタイプと、エクスペリメントを最適化するために選択されたメトリックが表示されます。
エクスペリメント設定の構成
時系列エクスペリメントの詳細を構成するには、 「エクスペリメント設定」をクリックします。
一般的な予測設定
予測設定の 「一般」 パネルで、オプションで、エクスペリメントの最適化に使用するメトリックを変更したり、考慮するアルゴリズムや生成するパイプラインの数を指定したりすることができます。
フィールド | 説明 |
---|---|
予測タイプ | エクスペリメントの予測列に基づいて、予測タイプを表示または変更します。 時系列エクスペリメントの場合、デフォルトでは 「時系列予測」 が選択されています。 注: 予測タイプを変更すると、エクスペリメントの他の予測設定も自動的に変更されます。 |
最適化メトリック | エクスペリメントに推奨される最適化メトリックを表示または変更します。 |
最適化されたアルゴリズムの選択 | 時系列実験ではサポートされません。 |
含めるアルゴリズム | エクスペリメントでパイプラインの作成に使用するアルゴリズムを選択します。 サポート機能の使用をサポートするアルゴリズムおよびパイプラインは、チェック・マークで示されます。 |
実行するパイプライン数 | エクスペリメント用に生成するパイプラインの数を表示または変更します。 |
時系列構成の詳細
予測設定の「時系列」ペインで、エクスペリメントをトレーニングして予測を生成する方法の詳細を構成します。
フィールド | 説明 |
---|---|
日付/時刻列 | エクスペリメントの日付/時刻列を表示または変更します。 |
ルックバック・ウィンドウ | 現在の時点を予測するために使用される過去の時系列値の数を表示または更新します。 |
予測ウィンドウ | 予測に使用する範囲を表示または更新します。 |
データ・ソース設定の構成
入力データの詳細を構成するには、 「エクスペリメント設定」 をクリックし、 「データ・ソース」を選択します。
一般データ・ソース設定
データ・ソース設定の 「一般」 パネルで、欠損値を補間するようにデータ・セットを変更したり、データ・セットを学習データとホールドアウト・データに分割したり、特徴量を入力したりすることができます。
フィールド | 説明 |
---|---|
重複行 | 時系列実験ではサポートされません。 |
データのサブサンプリング | 時系列実験ではサポートされません。 |
テキスト特徴量エンジニアリング | 時系列実験ではサポートされません。 |
最終トレーニング・データ・セット | 最終パイプラインのトレーニング時に使用するデータ (トレーニング・データのみ、またはトレーニング・データとホールドアウト・データのみ) を選択します。 トレーニング・データのみを含めることを選択した場合、このエクスペリメント用に生成されるノートブックには、各パイプラインの評価に使用されるホールドアウト・データを取得するためのセルが含まれます。 |
サポート機能 | 予測をサポートし、モデルの精度を向上させるためのサポート機能として、データ・セットから追加の列を選択します。 「サポート・フィーチャーの将来の値を活用」を有効にすることで、サポート・フィーチャーに将来の値を使用することもできます。 注: サポート・フィーチャーは、選択したアルゴリズムおよびパイプラインでのみ使用できます。 サポート機能の使用をサポートするアルゴリズムおよびパイプラインについて詳しくは、 時系列の実装の詳細を参照してください。 |
データ代入 | データ代入を使用して、データ・セット内の欠損値を置換値に置き換えます。 このオプションを有効にすると、データで欠損値を補間する方法を指定できます。 データ代入について詳しくは、 AutoAI エクスペリメントの「データ代入」を参照してください。 |
トレーニングおよびホールドアウト・データ | 実験をテストするために、トレーニング・データ・セットから一部のデータを保留することを選択します。 あるいは、ホールドアウト・データの別個のファイルをアップロードします。 ホールドアウト・データ・ファイルは、トレーニング・データのスキーマと一致する必要があります。 |
時系列データの構成
時系列データを構成するために、エクスペリメントの バックテスト に関連する時系列データの設定を調整できます。 バックテストは、履歴データを使用して時系列モデルを検証する手段を提供します。
通常の機械学習エクスペリメントでは、データの一部をランダムに保留にして、作成されたモデルの正確度をテストすることができます。 時系列モデルを検証するには、トレーニング・データとテスト・データの間の時間順の関係を保持する必要があります。
以下のステップでは、バックテスト方式について説明します。
- トレーニング・データの長さが、バックテストの数、ギャップの長さ、およびホールドアウトのサイズに基づいて決定されます。 これらのパラメーターについて詳しくは、 時系列エクスペリメントの作成を参照してください。
- 最も古いデータから始めて、テストはトレーニング・データを使用してトレーニングされます。
- テストは、最初の検証データ・セットで評価されます。 ギャップの長さがゼロ以外の場合、ギャップ内のデータはスキップオーバーされます。
- 新しいトレーニング・セットを形成するために、ホールドアウトのサイズとギャップの長さを増やすことにより、トレーニング・データ・ウィンドウを進めます。
- 新しいエクスペリメントは、この新しいデータを使用してトレーニングされ、次の検証データ・セットを使用して評価されます。
- 前の 2 つのステップは、残りのバックテスト期間についても繰り返されます。
バックテスト構成を調整するには、以下のようにします。
- Experiment settingsを開きます。
- 「データ・ソース」から、 「時系列」をクリックします。
- (オプション): 表に示すように設定を調整します。
フィールド | 説明 |
---|---|
バックテストの数 | バックテストは、日付/期間の相互検証と似ています。 オプションで、エクスペリメントのバックテストの数をカスタマイズします。 |
ホールドアウト | バックテスト用のホールドアウト・セットおよび各検証セットのサイズ。 検証の長さは、ホールドアウトの長さを変更することで調整できます。 |
ギャップの長さ | 各バックテストのトレーニング・データ・セットと検証データ・セットの間の時点の数。 このパラメーター値がゼロ以外の場合、ギャップ内の時系列値は、エクスペリメントのトレーニングや現行のバックテストの評価に使用されません。 |
構成設定の視覚化は、バックテスト・フローを示しています。 グラフィックは対話式であるため、グラフィックまたは構成フィールドから設定を操作することができます。 例えば、ギャップの長さを調整することにより、バックテストの数を増やすことなく、より早期のデータ期間にモデル検証結果を確認できます。
エクスペリメント結果の解釈
時系列エクスペリメントを実行した後、結果のパイプラインを調べて、エクスペリメントの詳細についての洞察を得ることができます。 サポート・フィーチャーを使用するパイプラインは、サポート・フィーチャーを使用しないパイプラインと区別するために、SUP 機能拡張タグによって示されます。 詳細を表示するには、以下のようにします。
- 視覚化のノード上にカーソルを移動して、パイプラインの生成時にその詳細を表示します。
- 「進捗マップ (Progress Map)」ビューに切り替えて、トレーニング・プロセスの別のビューを表示します。 プロセス内の各ノード上にカーソルを移動すると、詳細が表示されます。
- 最終パイプラインが完了してリーダーボードに書き込まれた後に、パイプラインをクリックするとパフォーマンスの詳細を表示できます。
- 「破棄されたパイプラインの表示 (View discarded pipelines)」 をクリックして、上位パフォーマーとして選択されていないパイプラインに使用されるアルゴリズムを表示します。
- レビューできるノートブックとしての実験コードを保存します。
- レビュー可能なノートブックとして特定のパイプラインを保存します。
このビデオを視聴して、時系列実験を実行し、トレーニング・データとホールドアウト・データを使用して Jupyter ノートブックでモデルを作成する方法を確認してください。
このビデオは、本書の概念とタスクを学習するためのビジュアル・メソッドを提供します。
今後のステップ
- ステップバイステップのチュートリアルに従って、 サンプル・データを使用して最低気温を予測するために 1 変量の時系列モデルをトレーニングします。
- ステップバイステップのチュートリアルに従って、 サポート機能を使用して時系列実験をトレーニングします。
- 展開された時系列モデルのスコアリングについて説明します。
- AutoAI 時系列実験用の APIの使用について説明します。
その他のリソース
- AutoAI時系列実験による予測の紹介は、ブログ記事'時間(シリーズ)通り:Watson Studio's 'AutoAI時系列の紹介を参照。
- 時系列実験の作成についての詳細は、新しい時系列実験の作成についてのこのブログ記事を参照のこと。
- 時系列実験にサポート機能を追加するブログ記事を読む。
- 時系列実験のサンプルノートブックを、サポート機能とともに見直す。
- APIを使って時系列実験にサポート機能を追加するブログ記事を読む。
今後のステップ
親トピック: AutoAI の概要