Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

Amazon SageMakerDataWranglerで時系列データを準備する

時系列データは私たちの生活の中に広く存在しています。 長期にわたって取得された株価、住宅価格、気象情報、販売データはほんの一例です。 企業が時系列データから有意義な洞察を得る新しい方法をますます模索する中、データを視覚化し、必要な変換を適用する機能は基本的なステップとなります。 ただし、時系列データには他の種類の表データと比べて独特の特性やニュアンスがあるため、特別な考慮が必要です。 たとえば、標準的な表形式または横断的なデータは、特定の時点で収集されます。 対照的に、時系列データは時間の経過とともに繰り返し取得され、連続する各データ ポイントは過去の値に依存します。

ほとんどの時系列分析は、連続した一連の観測値から収集された情報に依存しているため、データの欠落や固有のまばらさによって予測の精度が低下し、バイアスが生じる可能性があります。 さらに、ほとんどの時系列分析アプローチは、データ ポイント間の等間隔、つまり周期性に依存しています。 したがって、データ間隔の不規則性を修正できることが重要な前提条件となります。 最後に、時系列分析では、入力データと将来の予測の間の固有の関係を説明するのに役立つ追加機能の作成が必要になることがよくあります。 これらすべての要因により、時系列プロジェクトが従来の機械学習 (ML) シナリオと区別され、その分析には明確なアプローチが必要になります。

この投稿では使用方法を説明します AmazonSageMakerデータラングラー 時系列変換を適用し、時系列のユースケースに合わせてデータセットを準備します。

データ ラングラーの使用例

Data Wrangler は、データをより迅速にクリーニング、変換、準備する機能を備えた時系列分析のノーコード/ローコード ソリューションを提供します。 また、データ サイエンティストは、予測モデルの入力形式要件に従って時系列データを準備することもできます。 これらの機能を使用できるいくつかの方法を次に示します。

  • 記述的分析– 通常、データ サイエンス プロジェクトのステップ XNUMX はデータを理解することです。 時系列データをプロットすると、傾向、季節性、サイクル、ランダムな変動などのパターンの概要が得られます。 これは、これらのパターンを正確に表すための正しい予測方法を決定するのに役立ちます。 プロットは外れ値を特定し、非現実的で不正確な予測を防ぐのにも役立ちます。 データ ラングラーには、 季節性トレンド分解の視覚化 時系列のコンポーネントを表現するため、および 外れ値検出の視覚化 外れ値を特定します。
  • 説明的な分析– 多変量時系列の場合、意味のある予測を得るには、XNUMX つ以上の時系列間の関係を調査、特定、モデル化する機能が不可欠です。 の グループ化する Data Wrangler の変換では、指定したセルのデータをグループ化することで複数の時系列を作成します。 さらに、Data Wrangler の時系列変換では、該当する場合、グループ化する追加の ID 列を指定できるため、複雑な時系列分析が可能になります。
  • データの準備と特徴エンジニアリング– 時系列データが時系列モデルで期待される形式であることはほとんどありません。 多くの場合、生データを時系列固有の特徴に変換するためにデータの準備が必要になります。 分析の前に、時系列データが規則的または等間隔に配置されていることを検証することが必要な場合があります。 ユースケースを予測するには、自己相関や統計プロパティなどの追加の時系列特性を組み込むこともできます。 Data Wrangler を使用すると、複数のラグ期間のラグ列などの時系列機能を迅速に作成したり、複数の時間粒度でデータをリサンプリングしたり、時系列の統計プロパティを自動的に抽出したりすることができます。

ソリューションの概要

この投稿では、データ サイエンティストとアナリストが Data Wrangler を使用して時系列データを視覚化し、準備する方法について詳しく説明します。 以下のビットコイン暗号通貨データセットを使用します。 暗号データ​​ダウンロード これらの機能を紹介するためにビットコイン取引の詳細を示します。 時系列特徴を使用して生のデータセットをクリーンアップ、検証、変換し、変換されたデータセットを入力として使用してビットコインの出来高価格予測も生成します。

ビットコイン取引データのサンプルは、1 年 19 月 2021 日から 464,116 月 XNUMX 日までのもので、XNUMX のデータ ポイントがあります。 データセット属性には、価格レコードのタイムスタンプ、特定の日にコインが交換された始値または最初の価格、その日にコインが交換された最高価格、コインが交換された最後の価格が含まれます。その日、その日の暗号通貨価値で交換された数量 (BTC、および対応する USD 通貨)。

前提条件

ダウンロード Bitstamp_BTCUSD_2021_minute.csv からのファイル 暗号データ​​ダウンロード にアップロードします Amazon Simple Storage Service(Amazon S3).

Data Wrangler にビットコイン データセットをインポートする

Data Wrangler への取り込みプロセスを開始するには、次の手順を実行します。

  1. ソフトウェア設定ページで、下図のように SageMaker スタジオ コンソール、 File メニュー、選択 新作、を選択します データラングラーの流れ.
  2. 必要に応じてフローの名前を変更します。
  3. インポート日、選択する アマゾンS3.
  4. アップロード Bitstamp_BTCUSD_2021_minute.csv S3 バケットからファイルを作成します。

これで、データセットをプレビューできます。

  1. 詳細 ペイン、選択 高度な設定 選択を解除します サンプリングを有効にする.

これは比較的小さいデータセットであるため、サンプリングは必要ありません。

  1. 選択する インポート.

フロー図が正常に作成され、変換ステップを追加する準備が整いました。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

変換の追加

データ変換を追加するには、 の横にあるプラス記号を選択します。 データ型 選択して データ型を編集する.

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

Data Wrangler がデータ列の正しいデータ型を自動的に推測していることを確認します。

この場合、推論されたデータ型は正しいです。 ただし、XNUMX つのデータ型が間違っていたとします。 次のスクリーンショットに示すように、UI を通じて簡単に変更できます。

データ型を編集および確認する

分析を開始して、変換の追加を開始しましょう。

データクリーニング

まず、いくつかのデータ クリーニング変換を実行します。

ドロップカラム

をドロップすることから始めましょう unix 列を使用するため、 date 列をインデックスとして使用します。

  1. 選択する データフローに戻る.
  2. 横のプラス記号を選択します データ型 選択して 変換を追加.
  3. 選択する +ステップを追加 セクションに 変身 ペイン。
  4. 選択する 列を管理する.
  5. 最適化の適用、選択する ドロップカラム.
  6. ドロップする列、選択する UNIX.
  7. 選択する プレビュー.
  8. 選択する Add ステップを保存します。

ハンドルがありません

データの欠損は、現実世界のデータセットにおけるよく知られた問題です。 したがって、欠落値または null 値の存在を確認し、それらを適切に処理することがベスト プラクティスです。 データセットには欠損値が含まれていません。 しかし、もしあれば、それを使用するでしょう。 ハンドルがありません 時系列変換してそれらを修正します。 欠損データを処理するために一般的に使用される戦略には、欠損値のある行を削除するか、欠損値を合理的な推定値で埋めることが含まれます。 時系列データは時間にわたる一連のデータ ポイントに依存するため、欠損値を埋める方法が推奨されます。 欠損値を埋めるプロセスは次のように呼ばれます。 帰属を選択します。 ハンドルがありません 時系列変換を使用すると、複数の代入戦略から選択できます。

  1. 選択する +ステップを追加 セクションに 変身 ペイン。
  2. 選択する 時系列 変換します。
  3. 最適化の適用を選択 ハンドルがありません.
  4. 時系列入力タイプ、選択する 柱に沿って.
  5. 値の代入方法、選択する フォワードフィル.

  フォワードフィル メソッドは、欠損値を、その欠損値の前にある非欠損値に置き換えます。

欠落している時系列変換を処理する

バックワードフィル, 定数値, 最も一般的な値 & 補間する Data Wrangler で利用できる他の代入戦略もあります。 補間技術は、欠損値を埋めるために隣接する値に依存します。 時系列データは隣接する値間の相関関係を示すことが多いため、内挿は効果的な充填戦略となります。 補間を適用するために使用できる関数の詳細については、「」を参照してください。 pandas.DataFrame.interpolate.

タイムスタンプを検証する

時系列分析では、タイムスタンプ列がインデックス列として機能し、それを中心に分析が行われます。 したがって、タイムスタンプ列に無効なタイムスタンプ値や正しくない形式のタイムスタンプ値が含まれていないことを確認することが重要です。 を使用しているため、 date 列をタイムスタンプ列およびインデックスとして使用し、その値が正しくフォーマットされていることを確認しましょう。

  1. 選択する +ステップを追加 セクションに 変身 ペイン。
  2. 選択する 時系列 変換します。
  3. 変換、 選ぶ タイムスタンプを検証する.

  タイムスタンプを検証する 変換を使用すると、データセット内のタイムスタンプ列に、不正なタイムスタンプや欠落した値が含まれていないことを確認できます。

  1. タイムスタンプ列、選択する date.
  2. ポリシー ドロップダウン、選択 示す.

  示す ポリシー オプションは、タイムスタンプ列の値が有効な日付/時刻形式であるかどうかを示すブール列を作成します。 その他のオプション ポリシー 次のとおりです。

  • エラー – タイムスタンプ列が欠落しているか無効な場合は、エラーがスローされます。
  • Drop – タイムスタンプ列が欠落しているか無効な場合は行を削除します
  1. 選択する プレビュー.

という名前の新しいブール列 date_is_valid で作成されました true 正しい形式と null でないエントリを示す値。 データセットには無効なタイムスタンプ値が含まれていません。 date カラム。 ただし、そうなった場合は、新しいブール列を使用してそれらの値を特定し、修正できます。

タイムスタンプ時系列変換を検証する

  1. 選択する Add このステップを保存します。

時系列の可視化

データセットをクリーンアップして検証した後、データをより適切に視覚化して、そのさまざまなコンポーネントを理解できるようになります。

リサンプル

毎日の予測に興味があるので、データの頻度を毎日に変換しましょう。

  リサンプル 変換により、時系列観測の頻度が指定された粒度に変更され、アップサンプリングとダウンサンプリングの両方のオプションが付属します。 アップサンプリングを適用すると、観測の頻度が増加します (たとえば、毎日から XNUMX 時間ごとに)。一方、ダウンサンプリングを適用すると、観測の頻度が減少します (たとえば、XNUMX 時間ごとから XNUMX 時間ごとに)。

データセットの粒度は分単位であるため、ダウンサンプリング オプションを使用してみましょう。

  1. 選択する +ステップを追加.
  2. 選択する 時系列 変換します。
  3. 最適化の適用、選択する リサンプル.
  4. スタンプ、選択する date.
  5. 周波数単位、選択する 暦日.
  6. 周波数量、1を入力します。
  7. 数値を集計する方法、選択する 意味する.
  8. 選択する プレビュー.

データセットの頻度が毎分から毎日に変更されました。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

  1. 選択する Add このステップを保存します。

季節傾向の分解

リサンプリング後、変換された系列とそれに関連する STL (LOESS を使用した季節およびトレンド分解) コンポーネントを視覚化できます。 季節トレンド分解 視覚化。 これにより、元の時系列が明確な傾向、季節性、残差成分に分割され、各パターンがどのように動作するかをよく理解できるようになります。 この情報は、予測問題をモデル化するときにも使用できます。

Data Wrangler は、トレンドと季節コンポーネントをモデル化するための堅牢で多用途の統計手法である LOESS を使用します。 その基礎となる実装は、時系列コンポーネント (季節性、トレンド、残差) に存在する非線形関係を推定するために多項式回帰を使用します。

  1. 選択する データフローに戻る.
  2. の横にあるプラス記号を選択します ステップ on データフロー.
  3. 選択する 分析を追加.
  4. 分析を作成する ペイン、 分析タイプ、 選ぶ 時系列.
  5. 可視化、選択する 季節傾向の分解.
  6. 分析名、名前を入力します。
  7. タイムスタンプ列、選択する date.
  8. 値列、選択する 出来高 米ドル.
  9. 選択する プレビュー.

この分析により、入力時系列と分解された季節性、傾向、残差を視覚化できます。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

  1. 選択する Save 分析を保存します。

季節傾向分解の視覚化、前のスクリーンショットに示すように、XNUMX つのパターンを生成できます。

  • 元の – 元の時系列が毎日の粒度で再サンプリングされました。
  • トレンド – 2021 年の全体的な負の傾向パターンを持つ多項式トレンド。 Volume USD の値です。
  • シーズン – さまざまな振動パターンによって表される乗算的な季節性。 季節変動の減少が見られ、これは振動の振幅の減少によって特徴付けられます。
  • 残余 – 残りの残留ノイズまたはランダム ノイズ。 残差系列は、傾向成分と季節成分が除去された後の結果の系列です。 よく見ると、XNUMX 月から XNUMX 月と XNUMX 月から XNUMX 月の間にスパイクが観察されており、過去のデータを使用してそのような特定のイベントをモデル化する余地があることが示唆されています。

これらの視覚化は、データ サイエンティストやアナリストに既存のパターンに関する貴重な手がかりを提供し、モデリング戦略の選択に役立ちます。 ただし、記述的分析とドメインの専門知識を通じて収集した情報を使用して STL 分解の出力を検証することは常に良い習慣です。

要約すると、元の系列の視覚化と一致する下降傾向が観察され、傾向の視覚化によって伝えられる情報を下流の意思決定に組み込む際の自信が高まりました。 対照的に、季節性の視覚化は、差分などの手法を適用することで季節性の存在とその除去の必要性を知らせるのに役立ちますが、存在するさまざまな季節性パターンに対する望ましいレベルの詳細な洞察は提供されないため、より深い分析が必要になります。

機能エンジニアリング

データセットに存在するパターンを理解したら、予測モデルの精度を高めることを目的とした新しい機能の設計を開始できます。

日時を特集する

より単純な日付/時刻特徴を使用して特徴エンジニアリング プロセスを開始しましょう。 日付/時刻フィーチャは、 timestamp コラムを作成し、データ サイエンティストが特徴エンジニアリング プロセスを開始するための最適な手段を提供します。 まずは、 日時を特集する 時系列変換を使用して、月、日、年、週、四半期の特徴をデータセットに追加します。 日付/時刻コンポーネントを別個の機能として提供しているため、ML アルゴリズムがシグナルとパターンを検出して予測精度を向上できるようになります。

  1. 選択する +ステップを追加.
  2. 選択する 時系列 変換します。
  3. 変換、 選ぶ 日時を特集する.
  4. 入力列、選択する date.
  5. 出力列、 入る date (このステップはオプションです)。
  6. 出力モード、選択する 序数.
  7. 出力フォーマット、選択する コラム.
  8. 抽出する日付/時刻の特徴については、 , 日付, 一年の週, 年間通算日, 四半期.
  9. 選択する プレビュー.

データセットには、次の名前の新しい列が含まれています。 date_month, date_day, date_week_of_year, date_day_of_year, date_quarter。 これらの新機能から取得された情報は、データ サイエンティストがデータから、また入力特徴と出力特徴の間の関係についてさらなる洞察を引き出すのに役立ちます。

日時時系列変換を特徴付ける

  1. 選択する Add このステップを保存します。

カテゴリをエンコードする

日付/時刻機能は整数値に限定されません。 また、特定の抽出された日付/時刻特徴をカテゴリ変数とみなして、各列にバイナリ値が含まれるワンホット エンコードされた特徴として表すことを選択することもできます。 新たに作成されたもの date_quarter 列には 0 ~ 3 の値が含まれており、XNUMX つのバイナリ列を使用してワンホット エンコードできます。 それぞれが年の対応する四半期を表す XNUMX つの新しいバイナリ フィーチャを作成してみましょう。

  1. 選択する +ステップを追加.
  2. 選択する カテゴリをエンコードする 変換します。
  3. 最適化の適用、選択する ワンホットエンコード.
  4. 入力列、選択する 日付_四半期.
  5. 出力スタイル、選択する コラム.
  6. 選択する プレビュー.
  7. 選択する Add ステップを追加します。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

ラグ機能

次に、ターゲット列のラグ特徴を作成しましょう Volume USD。 時系列分析におけるラグ特徴は、将来の値を推測する際に役立つと考えられる以前のタイムスタンプの値です。 また、自己相関 (としても知られています) を特定するのにも役立ちます。 シリアル相関) 観測値と前のタイム ステップでの観測値の関係を定量化することにより、残差系列内のパターンを解析します。 自己相関は通常の相関と似ていますが、系列内の値とその過去の値の間の相関です。 これは、ARIMA シリーズの自己回帰予測モデルの基礎を形成します。

データ ラングラーを使用する ラグ機能 変換すると、n 期間離れたラグ特徴を簡単に作成できます。 さらに、異なるラグで複数のラグ特徴を作成し、最も意味のある特徴をモデルに決定させたい場合もよくあります。 このようなシナリオの場合、 ラグ機能 変換は、指定されたウィンドウ サイズにわたって複数のラグ列を作成するのに役立ちます。

  1. 選択する データフローに戻る.
  2. の横にあるプラス記号を選択します ステップ on データフロー.
  3. 選択する +ステップを追加.
  4. 選択する 時系列 変換します。
  5. 最適化の適用、選択する ラグ機能.
  6. この列のラグ特徴を生成します、選択する 出来高 米ドル.
  7. タイムスタンプ列、選択する date.
  8. チーム、 入る 7.
  9. 前の XNUMX つのラグ値までを観察することに興味があるため、次の値を選択しましょう。 ラグウィンドウ全体を含める.
  10. ラグ値ごとに新しい列を作成するには、 出力を平坦化する.
  11. 選択する プレビュー.

XNUMX つの新しい列が追加され、接尾辞は lag_number 対象列のキーワード Volume USD.

ラグ特徴時系列変換

  1. 選択する Add ステップを保存します。

ローリングウィンドウ機能

また、値の範囲にわたって意味のある統計的な要約を計算し、それらを入力特徴として含めることもできます。 一般的な統計時系列特徴を抽出してみましょう。

Data Wrangler は、オープンソースを使用して自動時系列特徴抽出機能を実装します。 tsフレッシュ パッケージ。 時系列特徴抽出変換を使用すると、特徴抽出プロセスを自動化できます。 これにより、信号処理ライブラリを手動で実装するために費やす時間と労力が不要になります。 この投稿では、 ローリングウィンドウ機能 変身。 このメソッドは、ウィンドウ サイズによって定義された一連の観測値にわたる統計プロパティを計算します。

  1. 選択する +ステップを追加.
  2. 選択する 時系列 変換します。
  3. 最適化の適用、選択する ローリングウィンドウ機能.
  4. この列のローリング ウィンドウ フィーチャを生成します、選択する 出来高 米ドル.
  5. タイムスタンプ列、選択する date.
  6. ウィンドウサイズ、 入る 7.

ウィンドウサイズの指定 7 現在のタイムスタンプの値と過去 XNUMX つのタイムスタンプの値を組み合わせて特徴を計算します。

  1. 選択 平らにする 計算された特徴ごとに新しい列を作成します。
  2. 次のように戦略を選択してください 最小サブセット.

この戦略では、下流の分析に役立つ XNUMX つの特徴が抽出されます。 その他の戦略としては、 効率的なサブセット, カスタムサブセット, すべての機能。 抽出可能な機能の完全なリストについては、以下を参照してください。 抽出された特徴の概要.

  1. 選択する プレビュー.

指定されたウィンドウ サイズを持つ XNUMX つの新しい列が表示されます。 7 彼らの名前でデータセットに追加されます。

  1. 選択する Add ステップを保存します。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

データセットをエクスポートする

時系列データセットを変換しました。変換されたデータセットを予測アルゴリズムの入力として使用する準備が整いました。 最後のステップは、変換されたデータセットを Amazon S3 にエクスポートすることです。 Data Wrangler では、次のことを選択できます。 エクスポートステップ 変換されたデータセットを処理して S3 バケットにエクスポートするための Amazon SageMaker 処理コードを含む Jupyter ノートブックを自動的に生成します。 ただし、データセットには 300 を超えるレコードが含まれているため、 データを出力 内のオプション 変換を追加 ビューを表示して、変換されたデータセットを Data Wrangler から Amazon S3 に直接エクスポートします。

  1. 選択する データを出力.

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

  1. S3の場所、選択する ブラウザ S3 バケットを選択します。
  2. 選択する データを出力.

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。

ビットコイン データセットの変換に成功したので、次を使用できます。 アマゾン予測 ビットコイン予測を生成します。

クリーンアップ

この使用例が終了したら、追加料金が発生しないように、作成したリソースをクリーンアップしてください。 Data Wrangler の場合は、終了時に基礎となるインスタンスをシャットダウンできます。 参照する データラングラーをシャットダウンする 詳細についてはドキュメントを参照してください。 あるいは、続けて行うこともできます 第2部 このデータセットを予測に使用するには、このシリーズの。

まとめ

この投稿では、Data Wrangler を利用して、組み込みの時系列機能を使用して時系列分析を簡素化し、高速化する方法を説明しました。 私たちは、有意義な分析を行うために、データ サイエンティストが時系列データを簡単かつ対話的にクリーニング、フォーマット、検証し、目的のフォーマットに変換する方法を検討しました。 また、Data Wrangler を使用して包括的な統計機能セットを追加することで、時系列分析を強化する方法についても検討しました。 Data Wrangler での時系列変換の詳細については、次を参照してください。 データを変換する.


著者について

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。ループ・ベインズ AI/ML を専門とする AWS のソリューションアーキテクトです。 彼は、人工知能と機械学習を使用して顧客が革新し、ビジネス目標を達成できるよう支援することに情熱を注いでいます。 余暇には、ループは読書とハイキングを楽しんでいます。

Amazon SageMaker Data Wrangler PlatoBlockchainDataIntelligenceを使用して時系列データを準備します。 垂直検索。 愛。ニキータ・イヴキン は、Amazon SageMakerDataWranglerの応用科学者です。

タイムスタンプ:

より多くの AWS機械学習