LoginSignup
1
1

More than 3 years have passed since last update.

【Microsoft Azure】Azure Machine Learningで電力予測

Last updated at Posted at 2020-06-27

Azure Machine Learningとは

Azureが提供する、クラウド上でモデルを構築、学習、デプロイできるサービスです。
詳しい説明はこちら

1. データの用意

気象データ

まずは、天気の情報を気象庁のデータから拝借します。
選択項目は2018年1月1日から現在までの日別を、ダウンロードの容量制限をこえない程度に項目を指定して(機械学習に使用する項目は後で変更できます)csv形式でダウンロードします。
image.png

電力需要データ

次に、でんき予報の過去の電力使用実績データから同様に3年分のデータをダウンロードします。
でんき予報のデータを確認すると画像のようになっています。
image.png
時間ごとの使用量になっていますが、今回はピーク時の需要量を予測します。そのため14:00のデータだけを抽出します。(気象データも時間ごとのデータを提供するため、時間単位で予測できますが今回は省略)

データ整形

せっかくなので、Windowsのコマンドプロンプトを使ってサクッとデータを抽出しましょう。
csvがあるフォルダのアドレス部分にcmdと書いて、コマンドプロンプトを開きます。
image.png

find "14:00" juyo-2018.csv

と入力すると、こんな感じで14:00が入った行だけ抽出されます。
image.png
それではjuyo-2018.csvとjuyo-2018.csvとjuyo-2018.csvをまとめてjuyo.csvというファイルを作ります。

type juyo-*.csv | find "14:00" > juyo.csv

type juyo-*.csvでファイル名にjuyo-を含むファイルを結合し、 | で find に出力結果を引き継いで、> juyo.csvでファイルに出力しています。

Excelで気象データであるdata.csvを開いて、電力需要量という属性を新しく追加して、juyo.csvの需要の列をコピペしましょう。適当にdata.csvを整形して、保存します。
こんな感じになりました。属性は英字にしておきましょう。

image.png

2. Machine Learning Studioを作成(AzurePortalでの作業)

  1. ポータルにアクセスし、上の検索窓にMachine Learning Studioと入力してでてきたMarketplaceのMachine Learning Studioワークスペースをクリック。出てきた画面で「Machine Learning Studioワークスペース」をクリック
  2. 必要な項目を入力して[作成]。価格レベルはDevTest Standardだと無料。それ以外だと有料になります。Azure for Studentsの場合、有料のプランにして放置していると、クレジット切れによるアカウント無効化に陥るので注意
    image.png
  3. デプロイが完了したら、リソースに移動し、「Machine Learning Studioを起動する」をクリックし、次の手順へ。
    image.png

3. 機械学習

  1. Machine Learning Studioのポータルへ移動したら「SIGN IN」というボタンを押して、Projectsの画面へ。特にパスワードなどは聞かれませんでした。
  2. [Datasets]->[+New]->[New Local File]とおし、先ほどのdata.csvをアップロード
  3. [Experiments]->[+New]->[Blank Experiment]とおし、以下の画面を出す。
    image.png
  4. 機械学習の手順通り、ブロックを置いていきます。僕は画像のようにおきました。プログラミング一切なしで学習できるのはすごく手軽に感じますね。
    image.png
  5. Selector Columns in Datasetを選択し、Launch column selectorで使う属性だけセレクト。今回は全突っ込み。注意:csvの1行目の属性を日本語で書くと認識してくれないので英字にしておきましょう。
  6. Tune Model Hyperparametersは電力を選択。
    image.png
  7. [SAVE]した後[RUN]。待ちましょう。
  8. チェックマークがついたら学習完了。Evaluate ModelをScore Modelの下にくっつけて、[RUN]->[Run selected]をクリック。評価してみます。

image.png
image.png

大体平均より300MkWくらいずれてるっぽい。微妙ですね。
使う属性を変えたり、Split Dataで訓練データとテストデータの割合を7:3にしたり、ハイパラをグリッドサーチしてみたりして再学習(12分くらいかかった)

image.png
ちょっと下がったけど、そうでもない。データ数は約2年半分なので、根気よくもっと集めるべきですね。

4. アプリを作る

  1. まずはサービスとして公開してみます。[SET UP WEB SERVICE]からPredictive Web Service [Recommended]をクリック
    image.png
  2. [RUN]をクリックして実行後、[DEPLOY WEB SERVICE(Classic)]をクリック
    image.png
  3. APIキーをメモ
    image.png
  4. 上の画像のREQUEST/RESPONEをクリックし、SAMPLE CODEをクリック。コードをコピー
    image.png
  5. Visual Studioを開いて、File->New->Projectとクリックし、新しいプロジェクトを作成します。Visual C#の中にあるConsole App (.NET Framework)を選択。
  6. コードをペースト
  7. apikeyを"abc123"からメモした値に変更
  8. 82行目にConsole.ReadKey();を挿入。結果を表示し続けるため。

    image.png

  9. nuGetマネージャーを開き、Microsoft.AspNet.WebApi.Clientをインストール image.png

  10. 44行目に、今日の気象データを入力して結果を見るとこんな感じ。

    image.png
    3969らしいですが、実際のピークはというと、

    image.png
    めっちゃずれてましたね。天気のデータが細かすぎたこと、データが少ないこと、過学習してしまった可能性などが誤差の原因と考えられます。皆さんも電力予測チャレンジがんばってみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1