ブログ

Blog

絞り込んで表示する

2018.7.03 - 

電力需要予測をMAGELLAN BLOCKSでやってみた(3)

Groovenautsコンサルタントの吉村です。
前回はData Editorを使って準備したデータをもとに学習データと予測データに分割しました。今回はいよいよモデルジェネレータに学習データを与えてモデルを作成します。

まずはメニューからモデルジェネレーターを開きます。

利用開始(2つ目以後は追加)をクリックするとウィザードが表示されます。モデルジェネレーター新規作成でまず数値回帰タイプを選択します。続いて名前を入力します。名前は何の目的のモデルを作成したいかと考えてつけると良いです。今回は「電力需要予測」とします。

続いてGCPのサービスアカウントを選択します。このタイミングで必要なAPIが有効になっているかチェックが動きます。今回新しいGCPの環境を使っているので、Cloud Machine Learning APIが有効になっていません。有効にするにはちょっと目立たないですが、GCPコンソールを開くリンク(赤丸部分)をクリックします。

有効/無効を指定する画面が開きますので「有効にする」をクリックしましょう。この操作は数分かかります。(もしGoogleアカウントでログインしていない場合はログインしてから表示されます)

有効になったらモデルジェネレーターの画面で赤いビックリマークの右にある確認ボタンをクリックするともう一度チェックが行われます。有効になったことが確認できたら次の画面に移ります。

次の画面ではモデルが格納されるフォルダの設定を行います。バケットを指定して、フォルダ名を入力します。フォルダ名にはフルサービスプランと同じblocks_mlというフォルダ名前にしました。

ここまではお約束みたいな毎回な操作なので慣れですね。フルサービスプランだとGCPの設定はないので、もうちょっとスッキリした流れになっています。

さてモデルジェネレーターを作成するのメイン画面がきました。トレーニングデータ設定です。この画面ではトレーニングさせるデータに対する設定を行います。

モデルジェネレーターはCSVデータのどの項目が気温や降水量ということは全く気にしません。ただ「数値か数値でないか」ということを教えてあげる必要があります。これは「1月より2月は2倍大きい」と勘違いさせないためです。そのためのデータ型には下記があります。
・数値型(数値の型)
・文字列列挙型(数値でない型で、A,B,Cとカンマ区切りで設定)
・月(文字列列挙のうちよく使う月を独立)
・曜日(文字列列挙のうちよく使う曜日を独立)
・フラグ(文字列列挙のうちよく使うフラグを独立)
・時系列型(これは数値型の派生ですが別の機会にご紹介します)
本来は数値型と文字列列挙型だけでもよいのですが、月・曜日・フラグはよく使うので独立させています。

それでは各項目の設定を行います。通常は1つ1つポチポチ入力するのですが、便利な機能があるのでData Editorを使います。Data Editorで電力データ_trainを開きます。

4項目めのweatherのグラフを表示をクリックします。先ほど集計して見た棒グラフがちっちゃく表示されます。この状態が大事なんです。

このweatherがグラフ表示された状態で右上の「テーブルの編集」にある「モデルジェネレーター用のスキーマ情報をコピー」をクリックします。(手順が細かい!でも便利!!)

これで今回のデータはこんな形だよ。という情報がData Editorからクリップボードにコピーされます。次にモデルジェネレーターに戻ってトレーニングデータ設定の右上にある「JSONを直接編集する」をクリックして表示されたテキストボックスに貼り付けます。

貼り付けた後でフィールドで編集に戻るとあら不思議weatherの内容がしっかり入っています。あとはmonth,weekday,holidayが数値型になっているのでそれぞれ変更したらOKです。

設定が終わって次へを押すと最終的な設定内容が表示されます。毎日の天気ってこんなに種類があるのかと気付かされますね。これで完了を押せばいよいよモデルジェネレーターができてトレーニングを開始する準備が整います。

ここまででトレーニングをするための準備としてモデルジェネレーターが出来上がりました。




これから先ほどエクスポートしたCSVファイルを使ってトレーニングを行います。トレーニング開始をクリックするとこの様な画面が表示されます。

トレーニング名にはどういうトレーニングをしているのか分かる名前をオススメしています。今回は「26ヶ月分データ(180分×20回)」という名前にしました。続いて学習用ファイルの指定ですが、トレーニングデータのアップロード方法で「1つのCSVファイルを元に分割する」を選択します。選択したら該当のファイル指定をするには、右側にあるフォルダアイコンをクリックして選択画面を表示します。

前回エクスポートしたCSVファイルをクリックし、右下の選択ボタンをクリックします。(フォルダを展開するにはちっちゃい三角をクリックします)

続いてCSVファイルの読み飛ばすヘッダー行を1にします。これはエクスポート時にヘッダーを出力にしていたからです。ここまでやったら後は開始を押しちゃいます。他にも設定がありますがまたの機会に紹介します。




トレーニングが開始されるとトレーニング一覧に経過が表示されます。ステータスがトレーニング中から成功になると終了です。

ステータスが成功になったらアクションで「本番用」を選択して適用をクリックします。

これでモデルジェネレーターを作成してトレーニングが完了し学習済みモデルが作成されました。

次回はいよいよフローデザイナーを使って予測します。