ForecastFlow を Tableau Prep から使う方法 - 予測編

ForecastFlow の予測を Tableau Prep から使用する方法を紹介します.

執筆時点の ForecastFlow Python パッケージのバージョンは 0.0.2 1.0.5 です.

ForecastFlow でモデルを訓練する

いつもどおりにモデルを訓練してください.

2019年12月3日以前のモデルは Prep に対応していないので再度訓練をお願いします.

TabPy サーバーの用意

Python3.7 以上をインストールしてから forecastflow, tabpy をインストールしてください.

pip install forecastflow tabpy

次に ForecastFlow TabPy Examples から config.toml を入手してください.

GitHub - GeeResearch/ForecastFlow_TabPy_Examples

コンソールを開いて config.toml の存在するディレクトリで以下のようにして TabPy を実行してください.

tabpy --config config.toml

スクリプトの用意

スクリプトの取得は2019/12/16に新しくスニペットから取得する方法が追加されました. スニペットから取得した場合はメールアドレスと ID が自動的に埋まるため少しだけ楽になります.

f:id:gri-blog:20191216164506p:plain
図の部分を編集

スニペットからスクリプトを取得する

プロジェクト -> データ -> モデルの順に選択して予測に使用するモデルのページを表示してください.

左側のメニューから Python アイコンをクリックするとコードスニペットが表示されます. コピーして prediction_example.py などの名前で保存してください.

正しいパスワードを埋めてください. 必要に応じてデータ名, 予測名を編集してください.

f:id:gri-blog:20191216171414p:plain
モデルページからスクリプトを取得

GitHub からスクリプトを取得する(これまでの方法)

prediction_example.py を ForecastFlow TabPy Examples から入手してください.

prediction_example.py はそのままでは利用できません. email, password, project_id, model_id を編集する必要があります.

email と password は ForecastFlow へのログインに使うものを入力してください.

project_id と model_id は ForecastFlow でモデル一覧を表示してから Actions にある <> をクリックすると表示されます.

f:id:gri-blog:20191204090747p:plain
ID を表示するには Actions の <> をクリック

data_name を編集して Prep からアップロードされる予測データの名前を変えることができます.

prediction_name を編集して生成される予測モデルの名前を変えることができます.

Tableau Prep から利用する

まず Tableau Prep で予測に使いたいデータを読み込みます.

次に + をクリックしてスクリプトの追加を選択します.

f:id:gri-blog:20191204085543p:plain
スクリプトの追加を選択

  • 接続タイプ Tableau Python Server
  • 接続
    • サーバー: TabPyサーバーのIPアドレスを指定. TabPy サーバーと Tableau Prep が同じマシンならば localhost
    • ポート: 9004
    • その他は空欄で OK
  • prediction_example.py を参照
  • 関数名に ff_predict を指定

f:id:gri-blog:20191204085630p:plain
接続タイプ, サーバー, 関数名を指定して, prediction_example.py を開く

この状態でフローを実行すると Tableau Prep から ForecastFlow にデータが渡されて予測が行われます.

出力はプライマリーキーと予測値を列に持つので, プライマリーキーを使って元のデータと結合して使うことが多いと思います.

f:id:gri-blog:20191115101528p:plain
典型的な利用例

更新履歴

2019/12/16 ForecastFlow 1.0.5

gri.jp