ブログ

Blog

絞り込んで表示する

2019.04.12 - 

最小手で需要予測をやってみる

グルーヴノーツ コンサルタントの吉村です。
日々、お客様から・社内からの要望をスピーディに実現してくれるエンジニアのおかげで、
MAGELLAN BLOCKSがすごく便利になってきています。
今日は便利になったMAGELLAN BLOCKSで需要予測をどれだけ最小手でできるかやってみます。

需要予測の流れは大きく言うと、「❶データの準備」、「❷学習用と予測用データに分割」、「❸モデルを学習用データで学習」、「❹予測用データで予測」の流れになります。

一旦動画を見ていただくと全体の流れ、操作の流れを見ていただき続きを読んでいただくと掴みやすと思います。
(すみません。無音で淡々とした動画です。)

動画を見ていただいた通り、以前に比べてかなりシームレスな手順になりました。
それでは順に説明していきます。


1.データを準備する

データはいつもの電力需要のデータです。
東京電力パワーグリッドの公開データがやっと3年分たまりました。
今回このデータを下記の用に2分割します。

・2016年4月1日〜2018年12月31日(学習用データ)
・2019年1月1日〜2019年3月31日(予測用データ)

今回はExcelの方も同じようにできるようにCSVでダウンロードします。

これで準備ができました。


続いてデータを分割します。ここからData Editorを使っていきます。

まずはメニューからData Editorを開きます。
Data Editorを開いたら先ほど準備したCSVファイルを読み込むために右上のインポートをクリックします。

するとインポート操作をする画面が表示されるので、まずインポート元の種類を選択します。
今回はUplaodを選択します。

続いてアップロード先のGCS URLを指定します。
-dataで終わるバケットを選択しフォルダを作成します。
続いて表示されるウィンドウにフォルダ名を入力してフォルダを作成し選択します。

赤枠にCSVファイルをドラッグ&ドロップするとインポートするファイルの指定が完了です。

スキーマ設定は今回はデフォルト設定のままで大丈夫です。

インポート先の設定としてデータセットを作成します。
+ボタンをクリックしデータセットIDを入力してデータセットを作成し選択します。

名前にには日本語の名前を入力して インポート をクリックします。

インポート完了のメッセージが表示されるので、 開く をクリックします。


2.学習用データと予測用データに分割する

データをインポートして準備ができたら、学習用データと予測用データに分割を行います。
Data Editorのテーブル表示画面のテーブルの操作からテーブル分割をクリックします。

分割の画面が表示れたら条件を指定します。
分割方法はカスタムを選択し、分割条件にはkeyの項目を選択して、期間に2016-04-01 〜 2018-12-31を指定します。

続いて分割条件を満たす行の出力先に関する設定を行います。
出力する列の設定にてkeyのチェックを外します。(予測因子として不要のため)

最後に分割条件を満たさない行の出力先に関する設定を行います。
出力する列の設定にて末尾のlabelのチェックを外します。(予測実行時に不要のため)

各種設定ができたら分割をクリックします。

分割が完了すると完了メッセージが表示されます。


3.モデルを作って学習用データで学習させる

分割が完了したらモデルを作って学習させます。

モデルを作るにはData Editorのテーブルからモデルジェネレーターを作成します。まずはインポートしたテーブルを開きます。

Data Editorのテーブル表示画面のテーブルの操作からモデルジェネレーターでモデル作成をクリックします。

モデル作成の画面が表示されます。
数値回帰を選択し、トレーニングデータ設定のキーワードリスト補完の設定で上の4項目にチェックを入れてトレーニングデータ設定画面へ進む

トレーニングデータ設定画面が表示されたら、そのまま次へをクリックします。

入力内容確認画面が表示されるので 完了をクリックし確認画面でOKを押してモデルジェネレーターが出来上がります。

モデルジェネレーターが出来上がったらトレーニング開始をクリックします。

トレーニング名を入力し、トレーニングデータでData Editorを選んだら、テーブルを選択をクッリックします。

テーブルの選択画面では _train で終わるテーブルを選択します。

トレーニング開始画面に戻ったら 開始 をクリックしてトレーニングを開始させます。

トレーニングが開始されるとトレーニング一覧に表示されます。

トレーニングが完了すると 成功 と表示されます。

適用対象を 本番用 に変更して 適用 をクリックします。

適用処理が終了すると 本番用(適用済み) と表示され予測に利用することができるようになります。


4.予測用データで予測する

学習済みのモデルが出来上がったので予測用データを利用して予測します。

予測をするにはフローデザイナーを作成して、予測フローを作成して処理を実行します。まずはフローデザイナーに名前をつけて作成します。

フローデザイナーが出来上がったら、作成したフローデザイナーをクリッックし開きます。

フローデザイナーが開いたらヘッダーにある フローテプレート作成 をクリックします。
ここからはウィザードに従いフローを作成します。

まずは予測モデルのタイプを選択します。
ここでは 数値回帰予測 を選択します。

続いてフロー名を入力します。

作成した予測モデルを選択し予測形式には オンライン予測 を選択します。

入力データ設定では Data Editor を指定し _test で終わるテーブルを選択します。

出力データ設定では Data Editor を指定すると自動的に出力先の設定が行われます。

配置先はそのままに 配置 をクリックします。

フローデザイナーの編集パネルにフローが配置されるので、ヘッダーの 保存 をクリックします。

フローが保存されたらフローのブロックメニューから フローの実行 をクリックし処理を開始します。
続いて同メニューの上にある ログを表示 をクリックしログパネルを表示します。

ログパネルにてステータスが成功になったのを確認したら予測完了ですので予測結果を確認します。

Data Editorを開くと予測結果のテーブルが出力されているので、テーブル名の右端にあるメニューから テーブルエクスポート をクリックします。

エクスポート画面が表示されるのでエクスポート先にGoogle Cloud Storageを選んで出力先フォルダーを指定したらエクスポートをクリックします。

エクスポート完了画面に表示される 青字 のファイル名をクリックするとCSVファイルがダウンロードされます。

ダウンロードされたCSVファイルをExcelなどの表計算ソフトでグラフ化すると3ヶ月分の電力需要の予測ができたことが分かります。


終わりに

動画とこの記事を見ていただいた通り、MAGELLAN BLOCKSを使って需要予測をする手順が非常にシンプルになってきました。
製品ができたばかりの頃は専門知識はいらないものの、手入力の部分も多く大変でしたがかなり楽になったと思います。
今後もより使いやすいMAGELLAN BLOCKSにしていくようにお客様と製品開発のエンジニアと橋渡しをしていこうと思います。