DataRobot使い方ガイド

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
書籍「DataRobotではじめるビジネスAI入門」発売中

DataRobot使い方ガイド

DataRobotユーザーのためのインタラクティブなレッスン
データサイエンス学習パスは、皆さんがDataRobotプラットフォームについて学べるように設計されています。自分のペースで進められる動画で体系立てて学習できます。

ナレッジベースの記事

DataRobotには機械学習を自動化する Automated Machine Learning と呼ばれる製品と、時系列モデリングを自動化する Automated Time Series と呼ばれる製品があります。Automated Time Seriesではこれまで時系列分析で難しかった部分が自動化され、機械学習や時系列問題について全く知らない人でも、高精度な時系列モデルの生成が可能になりました。   この学習パスでは、まず実際にAutomated Time Seriesを使ってDataRobotで時系列モデリングを行う手順を店舗の売上データ(ページ下部に添付のExcelファイル)を使って一通り確認し、その後各ステップについてより詳細に解説を行います。   TS-1. 店舗の売上予測(単時系列問題) このセクションでは実際に店舗の売上予測を行うことで、Automated Time Seriesの使い方の概要を理解します。本ページ下部に添付してあるデータ(店舗売上予測.xlsx, 店舗売上予測_予測.xlsx)をDataRobotに投入してから時系列モデルの生成、解釈、予測までを一通り体験してみましょう。   TS-2. データの用意 時系列モデリングを行うにはどのようなフォーマットのデータを用意すれば良いでしょうか。また、時間軸に欠損があったりしてはいけないのでしょうか。 このセクションでは時系列モデリングを行う際に用意するデータについて解説します。 時系列データのフォーマット 時系列対応データ 【複数時系列】時系列対応データ   TS- 3. 時系列設定 このセクションでは時系列モデリングを行う際に特有の設定手順について解説します。 機能の選択 【複数時系列】系列識別子の設定 予測ウィンドウ 特徴量派生ウィンドウ 事前に知り得る特徴量指定 カレンダー機能 派生から除外する特徴量 時系列予測におけるパーティション設定 バックテストにおける検定の計算方法   TS- 4. 時系列モデリングと特徴量セットの確認 時系列モデリングではDataRobotが自動で様々な時系列特徴量エンジニアリングを行い、モデルを生成してくれています。どのような派生特徴量が生成されたか、そしてそれらがどのように使われてモデルが作成されているかを理解する事で、モデルの理解も深まります。 このセクションではそういった派生特徴量の確認方法について解説します。 時系列モデリング設定の確認 自動で生成される派生特徴量と特徴量セット 特徴量セットの手動生成   TS- 5. モデルの精度とインサイト モデルが作成されたらそのモデルがどれだけの精度をもってターゲットを予測をできているのか確認します。また、どのような特徴量がどのように予測に効いているのか、改善の余地の有無などを確認して総合的にそのモデルを業務で使っていけるか判断します。 このセクションではモデルを解釈する際の精度と得られるインサイトの見方について解説します。 精度を表すアウトプット 精度の指標 時系列の予測値・実測値と残差 【複数時系列】系列の精度 リフトチャート 安定性 予測距離ごとの精度 モデルの中身のインサイト 特徴量のインパクト 特徴量の予実と作用   TS- 6. モデルの予測 作成されたモデルを確認し、予測に使えそうなことが確認できたら実際に予測するプロセスへ移っていきましょう。 このセクションでは作成した時系列モデルを再トレーニングして、予測用のモデルを生成し、未来の予測を行う方法について解説します。 最新データでのモデル再トレーニング 予測データのフォーマット GUIからのバッチ予測 予測のプレビュー モデルのデプロイ   TS- 7. アドバンストトピック このセクションでは時系列モデリングに関する補足情報やチップスについて解説します。 時系列モデリングの要件 特徴量ごとに特徴量派生ウィンドウが異なる場合のデータセット 高度な時系列設定 時系列パーティショニング その他の系列から計算された特徴量と階層モデリング その他の高度な時系列設定 リポジトリからのブループリント実行 APIを利用した操作   次のステップ 時系列モデリング全体のおおまかな流れを理解したら次は実ビジネスの時系列問題にDataRobotで取り組んでみましょう。追加の質問がある場合は、DataRobotコミュニティでディスカッションや関連する学習記事への返信としてご自由にお尋ねください。
記事全体を表示
DataRobot Data Prep (Paxata)へようこそ! DataRobotは、AIのためのデータ準備を誰でも簡単に行えるようにするDataRobot Data Prep (Paxata)を提供しています。必ずしも自動化できるとは限らない、業務知識や人間の判断が必要となるデータのクリーニングや特徴量エンジニアリングを、スプレッドシート形式の使いやすいインターフェースで素早く行うことができます。   この学習パスでは、初めてDataRobot Data Prepを使う方向けに製品構成のご紹介をするとともに、製品の基本的な使い方を学んでいただけます。本記事の末尾に添付されているファイル(LC_Paxata_JP_LearuningGuide.zip)をダウンロードして、実際の操作を体験してみましょう。 Prep 1.  製品の基本構成 このセクションでは、Data Prepの中で登場するライブラリ、プロジェクト、プロジェクトフローといった主要なページをご紹介するとともに、それぞれのページで利用可能な機能の全体像をご紹介することで、Data Prepの基本的な構成を理解いただけます。 Prep 2-1. プロジェクトの作成 Data Prepでのデータ準備作業はプロジェクトを作成することから始まります。このセクションではプロジェクト作成の基本的な操作をご紹介します。 Prep 2-2. データのクリーニング データ準備の最初のステップは、問題のあるデータを把握してきれいにすることです。いわば、守りのデータ準備と言えるでしょう。このセクションでは、基本的なデータクリーニング操作を数種類ご紹介しまします。 異常値を除去する 名寄せを行う 特徴量の型を変換する カラムを分割する Prep 2-3. 新しい特徴量の作成 データ準備の次のステップは、AIモデルに有用と考えられるデータ(特徴量)を新たに追加していくことです。いわば、攻めのデータ準備と言えるでしょう。このセクションでは、新しい特徴量を作成する基本的な方法を2種類ご紹介します。 合成変数を追加する 複数テーブルをマージする Prep 2-4. ライブラリの公開とエクスポート データ準備作業が終わったら、そのデータをDataRobotをはじめとする次のステージへ連携することが必要です。このセクションでは、準備済みデータをDataRobotのAIカタログにエクスポートする方法などをご紹介します。 Prep 2-5.作成済み準備ステップの新しいデータへの適用 Data Prepが単なるスプレッドシートと大きく違うことの一つは、データ準備のステップをデータから切り離して新しいデータに適用できることで、一度作ったステップを簡単に再利用できることです。このセクションではその手順をご覧いただきます。 Prep 2-6. 予測の実行 Data PrepではDataRobotから予測結果を取得して書き戻すこともでき、ある予測結果を元に次の予測をおこなう場合などに便利です。ここではその手順をご紹介します。
記事全体を表示
この記事では、DataRobotにおける自動特徴量エンジニアリングのテクニックのいくつかを説明します。モデリングの最初のステップは、データが1つのテーブルにすべて揃っていることを確認することです。これが完了すると、DataRobotは自動特徴量エンジニアリングを実行することができます。 DataRobotは、データタイプに基づいてデータセット内の特徴量に変更を加えます。 数値特徴量についてはDataRobotは自動的に欠損値を補完し、さらに補完されたことを示すフラグを作成します。DataRobotは、リジット、標準化、二乗、対数変換などの様々なスケーリング変換も行います。また、数値特徴量間の比や差に基づいて特徴量を作成します。 日付特徴量については、DataRobotは、元の日付フィールドに基づいて、曜日、月の日などの追加特徴の生成を開始します。 カテゴリ特徴量については、DataRobotは、One-hotエンコーディング、Ordinalエンコーディング、信頼性評価やターゲット・エンコーディングのような高度なテクニックなど、複数の異なるテクニックを試します。 テキスト特徴量については、DataRobotは多様な技術を試します。一般的な手法は、TF-IDF (term-frequency, inverse document frequency)を使用することです。他のテキストアプローチには、ngrams、文字グラム、またはword2vecやfasttextのような単語埋め込み技術を使用することが含まれます。テキストの列が複数ある場合、DataRobotはそれらの間の余弦類似度を見る特徴量を生成します。DataRobotのテキスト処理は、英語、日本語、フランス語、スペイン語、中国語、ポルトガル語などの一般的な言語を含む多くの言語で動作します。 添付ファイル 機械学習用のデータを準備するためのDataRobotのツールのいくつかの詳細については、この記事に添付されているPPTXファイルを参照してください。
記事全体を表示
DataRobotにデータをアップロードし、EDA1が完了したら、データを探索し、プロジェクトをセットアップしてモデルの構築を開始する準備ができました。データを探索するには、ページの下部にある精査(とデータセット名)というラベルの付いたリンクをクリックするか、下にスクロールしてください。   図1. データの探索 アップロードされたデータセット内のすべての特徴量のリストが表示されます。DataRobotがデータタイプを自動的に識別して提示します。DataRobotは以下のデータタイプをサポートしています: 数値、カテゴリカル、日付、パーセンテージ、通貨、長さ、フリーテキスト。数値データについては、最小値、最大値、平均値、中央値、標準偏差、ユニークな値や欠損値の数など、いくつかのサマリー統計が表示されます。 図2. データセット内のすべての特徴のリスト 任意の特徴量をクリックすると、その特徴量内のデータのヒストグラムがビンの粒度の選択可能なレベルで表示され、さらに探索することができます。データは、最も頻繁に使用される値の形で表示されたり、表として表示されたりします。DataRobotが自動的に割り当てたデータタイプを変更することができます。 図3. 選択された特徴のデータのヒストグラム 各機能名の左側には、マウスを重ねると表示されるチェックボックスがあります。これにより、特徴を選択して特徴リストを作成することができます(これらについては、他の資料で詳しく説明しています)。 データセットがアップロードされると、次に進むために、DataRobotはターゲットを知る必要があります(つまり、何を予測しますか)。 選択すると、ターゲットのヒストグラムが表示されます。予測対象の特徴量のデータタイプを考えると、DataRobotはデータサイエンスの問題のタイプを分類か回帰かで認識します。適切な日時特徴データが利用可能な場合は、DataRobotの時系列オプションが選択可能になります。 図4. ここで対象となる機能を指定する また、ターゲットを選択すると、ページの下部にあるリンクから [高度なオプション] が表示されます。これにより、モデリングに使用する最適化メトリック、異なるパーティショニング・スキーム、ダウンサンプリングなど、さまざまな設定を行うことができます。これらの設定については他の資料で詳しく説明しますが、デフォルトの設定は、経験の浅いデータサイエンティスト、エンジニア、アナリストなどが、追加の理解や設定なしに優れたモデルを構築できるようにするためのガードレールを提供していることに注意することが重要です。しかし、DataRobotは、これらの設定を指定したいユーザーのために、細かい粒度のコントロールも提供しています。 図6. モデリング構成の詳細オプション ページの上部に戻ると、「開始」ボタンが表示されます。これをクリックすると、モデリングプロセスが開始されます。スタートボタンの下には、モデリングモード、フィーチャリスト、および最適化メトリックが表示されます。 モデリング・モードは、モデルの構築方法を示しており、オートパイロット、クイック、およびマニュアルのオプションがあります。これは、DataRobotがモデルを構築するために使用するプロセスとワークフローを指定します。 フィーチャーリストは、DataRobotがモデルを訓練するために使用するフィーチャーのセットを指し示します。 最適化メトリックは、モデルが訓練される(または最適化される)手段であり、例えば、LogLoss、RMSEなどです。 図7. 選択したオプションでモデル構築を開始  開始ボタンをクリックすると、DataRobotはモデルトレーニングを開始します。存在する特徴のタイプ(例:テキスト特徴、カテゴリカル、日付など)、ターゲットのタイプ、プロジェクトのタイプを持つデータセットが与えられると、DataRobotはトレーニングするモデルのサブセットを選択し、スコアを付け、ランク付けし、さらに評価と理解分析のためにこれらのモデルをリーダーボード上に表示します。 図8. ビルドしたモデルのリーダーボード DataRobotは、高速処理を提供するために、一連のラウンドでモデルをトレーニングします。各ラウンドの後、DataRobotは最高のパフォーマンスを発揮するモデルのみを選択して次のラウンドに進みます。連続する各ラウンドでは、より大量のトレーニングデータを使用し、全部のトレーニングデータを使用して最高のモデルを構築していきます。   モデリングオプションの注意点・Tips: クイックモードは通常のオートパイロットの4分の1程度の時間で完了しますので、素早く分析を行いたい場合におすすめです。 DataRobotをオートパイロットで実行は、最適化の指標をDataRobotに選ばせるようにすると間違いがありません(特に手動で変更しなければ、ターゲットにあったものを自動的に選択してくれます)。
記事全体を表示
プロジェクトを実行し、データから多くのモデルを構築したら、トップメニューの「モデル」をクリックして、リーダーボードからそれぞれのモデルを評価することができます。 図1. モデル まずは「モデル」の右側に表示されている数字に注目してください。これは、このプロジェクトで構築されたモデルの数を示しています。 「モデル」をクリックすると、リーダーボードが開きます。モデルが選択したパフォーマンス指標の順にリストアップされています。例えば、二値分類の場合、デフォルトの指標はloglossです。 モデルのいずれかをクリックすると、詳細な情報を展開することができます。すると、以下のツールが表示されます:評価、解釈、説明、予測、コンプライアンス。 評価 ー モデルのパフォーマンス情報を提供します。 解釈 ー モデルの構成情報を提供します。 説明 ー モデルのブループリントを説明します。ブループリントはさまざまな前処理、パイプラインと機械学習アルゴリズムを組み合わせたものです。フローは左からスタートして、アップロード時データインジェストから、様々な前処理ステップ(場合によっては他のアルゴリズムを経由することも)を経て、最終的な機械学習アルゴリズムに至るまでの流れである(図2のアルゴリズムはeXtreme Gradient Boosted Trees Classifierです)。最後に完成したモデルは予測に使われます 予測 ー 予測リクエストの発行と結果を取得する方法を複数提供します。 コンプライアンス ー 透明性を提供するため、DataRobotが構築したここのモデルの各ステップと設定を記述した詳細なドキュメントを生成します。 図2. モデルを理解し評価するためのツール   このメニューから1つ上のレベルに戻ると、グレーでハイライトされたさまざまな項目が表示されます(図3)。 図 3. モデルのタグ これらのタグは、リーダーボード上のモデルを絞り込むためのいくつかの方法を提供します。タグによって提供される情報は機械学習アルゴリズムのタイプに依存し、モデルとブループリントの番号、係数が利用可能かどうか、スコアリングコードなどが含まれます。(各タグについては、DataRobotアプリ内のドキュメントで詳しく説明されています)。 タグをクリックすると、リーダーボード内そのタグが付与されたモデルを絞り込むことができます。 リーダーボードは3つの主要なカラムセクションで構成されています。 モデル名と説明 ー モデルの名前とブループリントの各ステップの概要を説明するテキストが表示されます。 特徴量セットとサンプルサイズ ー 学習で使用された特徴量セットとデータ数を示します。例えば特徴量セットは有用な特徴量と100%のデータで学習した。特徴量セットとサンプルサイズをクリックして変更して、別の組み合わせで再学習することができます。 指標 <指標名>  ー 検証、交差検定(実行した場合)とホールドアウトのスコアを確認できます。指標名をクリックすることで、ドロップダウンから他の指標に変更することができます。 図4. モデルのリーダーボード情報 図5に示すようにモデルアルゴリズムの名前の横にアイコンが表示されています。 図5. モデルアイコン 各アイコンは、モデルの構築に使用されたオープンソースの言語および/またはライブラリを示しています。例えば、Python、R、X Boost、DMTK、Tensorflowなどです。また、DataRobotのアイコンもありますが、これは我々が様々なライブラリを組合せし、チューニングして実装したものです。 リーダーボードのテーブルとメインメニューの間には、オレンジ色のテキストで書かれた別の項目のセットがあります。 図6 モデルの閲覧や新しいタイプのモデルを作成するためのツール メニューには、モデルをアンサンブルに組合せるためのさまざまなオプションが用意されています。アンサンブルは、さまざまな方法で複数モデルの予測結果を一の結果に統合する手法です。 モデルを検索する、あるいはモデルを絞り込むためのツールもあります。新しいモデルを追加を使用して、リポジトリからモデルを追加して学習し、リーダーボードに追加することができます。エクスポートでは、リーダーボードの内容をダウンロード可能なファイルに作成し、出力します。 その上には、リーダーボード、学習曲線、速度 対 精度、モデル比較を含む別のメニューがあります。ここではリーダーボードについて説明していますが、その他の項目については他の資料で説明しています。 図7. リーダーボードツール リーダーボードの評価の注意点・Tips: リーダーボード上位のモデルでは交差検定も実施してみましょう。データ量が多い場合は、自動的には計算されません。 また、交差検定と検定のブレが大きくないかを確認し、大きな差がある場合には常に交差検定の値を信用し、どうして差が出るのか考察してみましょう。
記事全体を表示
それでは早速、実際に時系列モデリングを行っていきましょう。具体的にはこのページの下部に添付しているエクセルファイル(店舗売上予測.xlsx, 店舗売上予測_予測.xlsx)を使いながらDataRobotで時系列モデルを作成し、予測まで行います。  今回はある店舗全体の売上をDataRobotの時系列モデリングによって予測していきます。データは図1のような構成になっています。( 店舗売上予測.xlsx   ) 図1. トレーニングデータスナップショット(店舗売上予測.xlsx ) 一番左の黄色の列に日付が格納されています。時系列モデリングでは日付、時間を示す特徴量が少なくとも1つ必要です。 次に緑の5列は来客数や割引商品、プロモーション商品、返品率や従業員数などその日の店舗に関する情報です。 青色の4列はクリスマス期間、ブラックフライデー期間、祝日、イベントといったカレンダー情報です。 オレンジ色の3列は年間経済成長率、失業者数、年間CPIが経済指標として格納されています。この列には欠損も多く含まれていることが見て取れます。DataRobotが自動で補完するので、欠損値が含まれるデータをそのまま入れることが可能です。 最後に右端の赤い列に売上が格納されています。今回はこの売上が予測の対象となります。 このファイルをDataRobotの以下の画面にドラッグアンドドロップで投入します。 図2. DataRobotのデータインポート画面 ドラッグアンドドロップが完了したらターゲットに「売上」を設定し、何を予測するかを教えます。 図3. ターゲットの設定 次に「時系列認識モデルを設定」を押して、主時間を表す特徴量として「日付」を選択します。(DataRobotが自動で時間が格納された特徴量をサジェストしてくれます。) 図4. 時間認識モデルの選択 図5. 主時間を表す特徴量の設定 その後、左下の「時系列モデリング」を選択します。この設定をする事で時系列モデリングが行われます。 図6. 時系列モデリングの選択 この後はいくつか時系列モデリングの詳細な設定を行っていきます。 まず、図7のように派生特徴量を作成する期間と予測したい期間の設定を行います。ここではデフォルトのまま、過去35日間の期間を使って特徴量を派生し、1~7日先の予測を行います。 図7. 特徴量の派生ウィンドウと予測ウィンドウの設定 次に、事前に既知の特徴量を設定しましょう。今回のデータでは青色の列である「クリスマス期間」「ブラックフライデー期間」「祝日」「イベント」が事前にわかっている情報ですので、特徴量一覧からこれらを選択しチェックします。 図8. 事前に既知の特徴量の選択   そして「メニュー」から「4個の特徴量を事前に既知として切り替える」を選びます。 図9. 選択した特徴量を事前に既知として切り替え これで、これらの特徴量を事前に既知と設定することができました。 図10. 事前に既知として切り替えられた特徴量 訪問客数などと違い、クリスマスなど前もって知る事ができる変数を既知の変数であると設定する事は非常に重要です。 以上で設定は完了です。それでは「開始」ボタンを押してモデリングを開始しましょう。 図11. 時系列モデリングの開始 「開始」ボタンを押すと図12のように派生特徴量を生成するフェーズを挟んで複数のモデルが作成されます。 図12. 派生特徴量の生成 特徴量の派生が完了した後、「データ」から特徴量の一覧を見ると、インプットデータには14列しかなかったものから特徴量の数が300弱まで増えていることが確認できます。DataRobotではこの様に、インプットデータの時系列の特徴量エンジニアリングを自動で行います。 図13. 生成された派生特徴量 モデルの生成が終わったらリーダーボードから上位のモデルを選んで精度を確認してみましょう。モデルの「評価」から「時系列の精度」を選択することで、実測値とモデルの予測値の時間軸での当てはまりを視覚的に確認することができます。 図14. 時系列の精度 また、「解釈」から「特徴量のインパクト」を選ぶことで、派生特徴量も含めたものの中でどの特徴量がインパクトがあるのかを用意に確認することができます。 図15. 派生特徴量も含めた特徴量のインパクト モデルの確認ができたのでこのモデルを使って予測を行ってみましょう。予測に必要になるのは図16のようなモデル作成に使用したデータと同じ特徴量をもったデータです。  今回予測に使うデータ( 店舗売上予測_予測.xlsx   )の予測対象期間は2014/06/15から2014/06/21ですのでその期間のデータは日付と事前に既知な特徴量以外は空白となっています。  また、派生特徴量を生成するのに必要な期間(今回は35日前から当日まで)のデータも含まれている必要があります。 図16. 予測に使うデータのスクリーンショット(店舗売上予測_予測.xlsx ) 「予測」から「予測を作成」を行い、このファイルをドラッグアンドドロップして「予測を計算」を押すことでアップロードしたデータに対する予測を生成できます。 図17. 予測の計算 予測結果はCSVファイルとしてダウンロードすることもできますし、「プレビュー」を押すことで図18のように視覚的に確認することもできます。青色の点と線が予測値の推移で、80%予測区間も合わせて表示されています。 図18. 予測プレビュー 以上、DataRobotによる時系列モデリングの流れを簡単に見てきました。ここからは以下の各ステップについてより詳細に見ていきましょう。 TS-2. データの用意 TS-3. 時系列設定 TS-4. 時系列モデリングと特徴量セットの確認 TS-5. モデルの精度とインサイト TS-6. モデルの予測 TS-7. アドバンストトピック
記事全体を表示
時系列モデリングを行うにはどのようなフォーマットのデータを用意すれば良いでしょうか。また、時間軸に欠損があったりしてはいけないのでしょうか。 このセクションでは時系列モデリングを行う際に用意するデータについて解説します。 時系列データのフォーマット 時系列モデリングを行うには時間/日時の特徴量とターゲット、その他の特徴量を含んだフォーマットのデータである必要があります。DataRobotの時系列モデリングではラグやヒストリカル変数を自動で生成するため、手動で生成する必要はありません。ラグ/ヒストリカル変数とは例えば売上予測を予測する問題では、前日、7日前、1年前の売上や来店客数を特徴量としたものです。 図1に「TS-1. 店舗の売上予測(単時系列問題)」で用いたデータで「時間軸の特徴量」と「ターゲット」にあたる部分を示します。また、このデータのようにひとつの系列(今回は店舗)から構成された時系列を単時系列と呼びます。 図1. 単時系列データのフォーマット これに対し店舗が複数あってそれらの時系列データをまとめて扱いたい場合もあります。このようにいくつかの系列(店舗)が含まれている時系列のことを複数時系列と呼びます。 複数時系列の場合、ひとつひとつの単時系列データのIDとなる系列認識子を数値またはカテゴリとして含めます(単時系列データにそれぞれの系列認識子を与え、縦につなげたデータというイメージです。例えば店舗ごとの日次売上を格納した複数時系列データであれば、店舗番号などが系列認識子にあたります)。系列認識子は1列のみ指定可能で、複数列ある場合は連結して1つの特徴量とする必要があります。以下に例を示します。   図2. 複数時系列データのフォーマット   時系列対応データ 時系列データには以下のようなパターンが存在します。 定期的 :月曜から日曜毎日など、均等な間隔で発生するイベント 半定期的:閉店しているので日曜日、祝日だけ売上が存在しないなど、ほぼ均等な間隔で発生するイベント 不定期的:トランザクションなど、一貫しない時間ステップで起こるイベント 下の図で具体例を見てみましょう。 図3. 定期的な時系列データ(日ごとのデータが存在している)   図4. 半定期的な時系列データ(日曜日・祝日が存在しないなど)   図5. 不定期的な時系列データ(ランダムに多くのデータが欠損)   DataRobotの時系列モデリングでは上記の全ての時系列データに対応していますが、不定期的なデータでは行ベースの予測が行われます。 行ベースの予測だと次にイベントが起こる際の値は予測できますが、それがいつ起こるかは予測できません。(例:過去の地震の大きさから次回の地震の大きさを予測。ただ次回の地震がいつ起こるかは予測できない。) 図6. 不定期的なデータで時間認識モデルを選択した画面   【複数時系列】時系列対応データ 複数時系列の場合には、各系列の時系列が以下のように不揃いであっても構いません。 以下の例の系列2や系列3のようにデータが途中までしかない、あるいは最初の時点のデータがない場合も対応可能です。系列4のような不定期なデータセットには行ベースのモデリングを行います。系列5のように過去のデータがまったくない時系列の予測にも対応していますが、その場合には精度に注意が必要です。 図7. 複数時系列データのパターン  
記事全体を表示
このセクションでは時系列モデリング特有の設定を行う手順について解説します。 機能の選択 時系列モデリングを行うには通常のターゲット選択のあと、「時間認識モデルを設定」から主時間を表す特徴量を選択し、「時系列モデリング」を選びます。 図1. ターゲットの設定から時系列モデリングの指定まで   この後、必要に応じて以下の項目の設定を行います: 設定が必要な場合 設定する項目 複数時系列の場合 系列識別子 予測期間をビジネスニーズに応じて変更する場合 予測ウィンドウ 派生特徴量を作成する期間をデフォルト値から変更する場合 特徴量派生ウィンドウ 特徴量のうち、予測したい時点での値が事前にわかっているものがある場合 事前に知りうる特徴量 別途用意している祝日やイベントなどのカレンダーファイルを特徴量として使いたい場合 カレンダーファイル 派生特徴量の生成が不要な特徴量がある場合 派生から除外する特徴量 表1. 主な時系列設定機能   【複数時系列】系列識別子の設定 複数時系列の場合は以下のように系列認識子の設定も行います。 例えば店舗ごとの日次売上のデータの場合、店舗名などを指定します。 図2. 系列認識子の設定   予測ウィンドウ 次に予測ウィンドウを選択します。ここはビジネス要件に基づいて「いつの値を予測するのか」「どれくらいの期間の予測をするのか」を設定する箇所になります。例えば明日から1週間先までを予測したい場合、予測ウィンドウは「1~7」に設定します。 図3. 予測ウィンドウの設定   特徴量派生ウィンドウ  続いて特徴量派生ウィンドウを選択します。予測点の値に非常に関連性の高いと思われる期間を指定ここで指定することで例えば前々日の売上、過去1週間の売上平均、7日前の売上などこの期間内での派生特徴量(ラグ変数、ヒストリカル変数)を自動で生成されます。 「始め-終わり」の期間は、周期がありそうな期間を超える期間を目安とします。ただし例えば年のトレンドがあるからと言ってローリングウィンドウを「365~0日」に設定すると曜日が異なる365日前との差分など、あまり参考にならない派生特徴量も大量に生成することになるため、特徴量派生ウィンドウは月または週で設定するのが通常です。年のトレンドは別途、イベントフラグや季節性を表す特徴量で表現すると良いでしょう。 また、終わりは予測する際に利用できる過去のデータ区間を選択することに注意します。例えば予測する際に3日以前のデータしか利用できない場合は3をセットします。 図4. 特徴量派生ウィンドウの設定   特徴量派生ウィンドウを28~0と設定し、その際生成された「過去2週の平均売上」が1日先の予測に用いられる場合は下図のようになります。7/1, 2, 3を予測する際にそれぞれの2週間前の平均値を特徴量として計算し予測に利用します。   図5. 7/1, 2, 3を予測する際に用いられる派生特徴量のイメージ   事前に知り得る特徴量指定 特徴量の中には祝日、3日先の天気(予報)、マーケティング計画、割引価格計画、生産計画などのように事前に知りうる特徴量が存在します。 図6. 時系列時系列における事前に知りうる特徴量の例   時系列モデリングではこういった事前に知りうる特徴量を設定することができます。 1つ目の方法は該当特徴量にチェックを付け、「メニュー」→「特徴量を事前に既知として切り替える」を選択する方法です。 図7.  メニューから特徴量を事前に既知として切り替える   「高度なオプションを表示」から「事前に知りうる特徴量がありますか?」のボックスに特徴量を追加することでも設定できます。 図8. 高度なオプションから特徴量を事前に既知として切り替える カレンダー機能 業務の中では別ファイルとして準備している祝日一覧やイベント日のリストなどを事前に既知な特徴量として使いたい場合も多いと思います。そういった場合に便利なのがカレンダー機能です。カレンダーファイルを元のファイルと1つに結合する手間なく、別々にインポートする事が可能で、またカレンダーのデータを使って様々な時系列エンジニアリングも自動で行います。 1列目にYYYY-MM-DD形式の日付、2列目にイベント名(オプショナル)を格納したカレンダーファイルをCSVファイルで用意します。複数時系列の場合、3列目に対応する系列認識子を格納することもできます。 カレンダーファイルは以下のように「高度なオプション」からインポートすることができます。 図9. カレンダーファイルのインポート   派生から除外する特徴量 既に時系列特徴量エンジニアリングが施された特徴量(特別なラグなど)や、系列内で経時で変化しない特徴量(商品名など)から特徴量を派生する事に意味はありません。これらの特徴量を派生から除外する設定をメニューから行うことが可能です。 図10. 特徴量を派生から除外   時系列予測におけるパーティション設定 時系列問題は過去のデータを元に未来を予測するというプロセスで行われます。そこでモデリング/検定も同様に行う必要があります。この時系列の検定スキームはバックテストと呼ばれます。通常の検定作業で複数回検定を行うことでその信頼性を上げる交差検定同様に、複数のバックテストを行う事も可能です。バックテストの値とは一般的に複数回行われたバックテストにおける検定値の平均値をいいます。   図11. 時系列モデリングにおけるバックテスト   バックテストにおける検定の計算方法 個々のバックテストでは以下のように検定結果が導出されます。 例えば予測ウィンドウが7日間(1日後〜7日後)、検定期間が31日間(2018/7/1〜2018/7/31)の場合、内部的に1日先を予測するモデルから7日先を予測するモデルまで7つのモデルが作成されます(図12の点線下部分)。1日先を予測するモデルで31日間分の検定を行い、同様のことを2日先を予測するモデル、...、7日先を予測するモデルで行うため、のべ217日間分の検定が行われ、その平均が検定結果となります。   図12. 予測ウィンドウと検定期間の関係   また、特徴量の派生ウィンドウが過去28日間で派生特徴量として過去2週間の平均売上が生成されるとき、トレーニング期間が7月1日から7月31まで、検定期間が8月1日から9月30日までの場合、図13の右側のように7月1日から9月30日までの各日付に対し過去2週間の平均売上が特徴量として生成されます。そしてこの検定期間内の各売上について、1日先を予測するモデルから7日先を予測するモデル(予測ウィンドウが7日間の場合)のそれぞれで検定を行い、その平均値を検定結果としています。   図13. 検定時に使用される派生特徴量  
記事全体を表示
時系列モデリングではDataRobotが自動で様々な時系列特徴量エンジニアリングを行い、モデルを生成してくれています。どのような派生特徴量が生成されたか、そしてそれらがどのように使われてモデルが作成されているかを理解する事で、モデルの理解も深まります。 このセクションではそういった派生特徴量の確認方法について解説します。 時系列モデリング設定の確認 モデリングを開始した後、「データ」→「派生したモデリングデータ」→「詳細情報を表示」を確認することでDataRobotが特定した周期性や指定した「事前に既知の特徴量」などを確認することができます。 図1. 時系列モデリング設定の確認   自動で生成される派生特徴量と特徴量セット 時系列モデリングでは多くの時系列の派生特徴量を生成し、それらからモデルのタイプに対応するいくつもの特徴量セットを生成しています。これらは「データ」タブの「派生したモデリングデータ」タブ、「特徴量セット」タブから確認することができます。 図2. 時系列モデリングでの特徴量の確認 「特徴量セット」タブより特徴量セットの確認、説明の変更、その特徴量セットを使ったオートパイロットの実行、削除などを行うことができます。自動で生成された特徴量セットは削除はできません。 図3. 特徴量セットの確認   時系列モデリングではベースラインや差分を用いたデータセットがいくつか作成されます。それらの違いを以下の表で示します。 特徴量セット名 説明 ベースラインのみ(最新) 時間軸の特徴量と、ターゲット特徴量の直前の値(例えば前日の売上)のみからなる特徴量セット ベースラインのみ(n日) 時間軸の特徴量と、ターゲット特徴量のn日前の値(例えば7日前の売上)のみからなる特徴量セット 差分あり(最新) ターゲットの直前の値との差分(例えば前日の売上との差)から派生した特徴量を含む特徴量セット ・売上(diff)(14 day min)などの特徴量 差分あり(n日) ターゲットのn日前の値との差分(例えば7日前の売上との差分)から派生した特徴量を含む特徴量セット ・売上(7 day diff)(14 day min)などの特徴量 差分あり(平均値ベースライン) ターゲットの派生特徴量の一定期間の平均との差分を含み特徴量を含む特徴量セット ・売上(14 day min)(diff 7 day mean)などの特徴量 表1. 差分をつかった特徴量セット   「TS-1. 店舗の売上予測(単時系列問題)」で作成されたモデルをみると同じブループリントに異なる特徴量セットを用いることで精度の異なる複数のモデルが作成されていることがわかります。 図4. 同じブループリントに異なる特徴量セットが適用されて作成されたモデル   特徴量セットの手動生成 特徴量は多すぎると運用が煩雑になったり過学習しやすくなるといった可能性があります。必要な特徴量を明確にするため、使用する特徴量を絞ってモデルの精度の変化を確認したい時などは、手動で特徴量セットを作成すると便利です。 特徴量セットは以下の手順で手動作成することができます。 図5. 特徴量セットの手動生成
記事全体を表示
お知らせ
DataRobotコミュニティにようこそ!

AIとMLに関するあらゆることについて探求し、学び、コミュニティの仲間と交流しましょう。

クラスルーム形式のトレーニングをご希望の方は DataRobot University へどうぞ
トップ寄稿者