始めてデータサイエンティストを目指す皆さんを応援しています!一緒に楽しくデータサイエンスの世界を探検しましょう。社およびGroovenauts社からの正式リリース発表とは一切関与がございません。社のサポート問い合わせの対象にはなりません。ご理解の上参照頂ければ幸いです。連携して、真夏の東京電力の電力需要を予測してみたいと思います。ベースとした予測モデルの作成を、ブロックを繋ぐというGUI操作で実現できるクラウドAIサービスです。以前こちらの記事で紹介させていただきましたが、Pythonでニューラルネットワーク予測モデルを作るには、それなりにコーディングの知識が必要となりますし、ハイパーパラメータのチューニングも色々色々試してみないと精度が出ません。BLOCKS」サービス概要についてはこちらをご参照ください。Desktopを使って結果の可視化・・・と連携することで、データサイエンスのプロセスをぐるっと回すことができるという事例を紹介したいと思います。BLOCKSの連携を体験していきましょう。必要なステップは以下のようになります。調整済みのモデルを利用して2019年の電力需要予測を行う詳細:次にそれぞれのステップの詳細に入っていきます。よりデータ準備作業をフロー化する気象庁より2018年の気象データ、東京電力より2018年の供給電力データをダウンロードします。それぞれのデータは年月日と時刻(1時間)ごとでデータが存在するので、この日付+時刻をキーとして2つのデータを結合します。Builderを利用すれば簡単に結合できますし、結合後の不要列の削除、NULL値の削除、曜日フラグの作成等も、一度フロー化してしまえば後から何度でも実行することができます。私の家でも夏はクーラーを使わざるを得ないのでやはり電気量が上がるのですが、気温に関係があるのでは?とまず思いつくところです。本当にそうでしょうか?可視化してデータを理解してみましょう。日付を横軸(列)に、電力と気温を縦軸(行)にドラックすると簡単に傾向をみることができます。下図の上段が電力消費量、下段が気温です。平均気温から離れる(暑い、寒い)時に電力使用量が増えることが分かりますね。気温は説明変数として電力予測に利用できそうです。時間帯、曜日(平日・土日)によって電力利用量に差があることが分かります。ここから、曜日、時間帯を説明変数として採用すると良さそうです。気づきでもあったのですが、予測モデルを作るときに、正月、ゴールデンウィーク等の祝日は電力消費量が少ないことが分かりましたので、祝日カレンダーを作り、データと外部結合して祝日フラッグを作成、これを説明変数として入れ込むことにします。Builderを使って生成しました。BLOCKSで予測値を得るためのステップはザックリ分けて以下のようになります。学習ステップで過去のデータから学習を行います。BLOCKSのモデルジェネレーターというツールを利用します。2.予測ステップで学習結果を使って予測(分類や回帰)を行います。BLOCKSのフローデザイナーというツールを利用します。ログインし、メニューからモデルジェネレーターを開きます。こちらがモデルジェネレーターの初期画面です。「利用を開始」ボタンをクリックします。ここから学習データを用いた予測モデルの作成を行います。ここでは数値回帰モデル(電力利用量を数値として予測する)を選びます。予測サービスの名前を設定します。Platform)アカウントが必要となります。必要なAPIが利用可能になっていることを確認します。Storageのバケットを指定します。BLOCKSのメニューからGCSマネージャーを使って簡単にアップロードすることができます。)次に、訓練データから説明変数の設定を行います。説明変数のデータ型(数値型なのか、文字列型なのか、フラグ型なのか等)を指定します。モデル作成が完了するまで待ちます(今回の場合はだいたい4時間くらいかかりますので、一旦パソコンは閉じてひと休みしましょう・・・)。モデルの作成が完了するとステータスが緑色の「成功」になるので、モデルを本番用として適用します。誤差の意味と確認方法についてはこちらを参照ください。BLOCKS(フローデザイナー)で予測値を得る前のステップで作成したモデルを使って、実際に予測値を取得しましょう。BLOCKSではフローデザイナーというツールを使って、予測値を得るための処理をフローとして定義します。ここで予測モデルに投入するテストデータ、実行形式、出力データ等の設定を一連の処理ブロックとして定義し、このブロックを繫げてフローを作成、実行する仕組みになっています。良く利用される予測フローはテンプレートが既に準備されています。モデルジェネレーターのタイプ(数値回帰予測)のテンプレートを利用します。フローの名前を付けます。利用するモデル(前のステップで作成したもの)を指定します。入力データとしてモデルに投入するテストデータを定義します。(ここではGCS上にアップロードされたCSVファイルを指定します。)まずはモデル作成で利用した訓練データである2018年のデータをテストデータとして予測値を取得し、どのように誤差が出ているか分析してみましょう。予測結果の保存先を指定します。(ここではGCS上のCSVファイルとします。)フローの配置を完了します。フローの作成と配置が完了したらフローを実行します。フローの実行が完了するまでしばらく待ちます。GCSエクスプローラ(GSC上のファイルを管理するツール)で指定した場所に予測結果のファイルができていることを確認し、これをダウンロードします。予測値(output)が含まれています。BLOCKSによる予測値の取得は完了です。使って予測値を可視化して評価してみましょう。BLOCKSによって生成された予測値は別ファイルとなっていますので、これを日付時刻をキーとしてジョインし、実際の電力消費量と予測値を比較できるようにします。2018年のモデルについて実測値と予測値を比較・可視化します。BLOCKSが出力した予測値(オレンジ色)を重ねて表示します。波形が一致しているので、おおよそ当てはまりの良いモデルが出来ているということが目で見て理解できます。日付にフィルタをかけることで、去年の夏、8月初旬に特定して実績と予測の比較をしてみます。2018年の8月6日~8月10日にかけては実績(青色)が予測(オレンジ色)より大きい一方で、お盆に入った8月14日の週は実績(青色)が予測(オレンジ色)を下回っているので思ったより電力利用が少なかったようです。誤差を以下のように計算式を作成して新しいメジャーとして作成し、時系列に可視化してみます。誤差の分布を月ごとに箱ひげ図で見てみると、8月の誤差はプラス、マイナスで開きが大きいですね。8月についてもう少し誤差の開きの理由を探ってみましょう。2018年の8月の誤差(実績ー予測)分布と気温の関係を可視化してみます。真ん中がへこんでいるのはお盆で実績が少ないのでしょう。平均気温が高い日(赤色線)は誤差がプラス方向にふれているので、実績が高い(予測より多く電力を使っている)といった傾向があるようにも見えます。一つ、気温(X軸)と誤差(Y軸)を散布図で表現してみます。すると右上に角のような分布が見られます。気温がおよそ30度あたりを超えると誤差がプラスに振れるようにも見れます。ここから、仮説として、30度を超えると電力実績が予測を上回る。「猛暑日フラグ」を作って更にこれを説明変数として入れてもう一度予測モデルを作るというのありかもしれません。モデルの評価と行ったプロセスのサイクルを回していくことになります。作成済みのモデルを利用して2019年の電力需要予測を行うそれでは最後に、2018年の訓練データを利用して作った2018年の予測モデルを使って、2019年7月から8月12日まで電力需要予測を行います。予測モデルに投入する入力データ(説明変数)を以下のように作成します。Builderで検証用(2019年)の分岐を作成することで簡単に実行できます。BLOCKS(フローデザイナー)で予測値を得る」で実施した手順と同様に、2018年の訓練データを利用したモデルを利用して、2019年7月から8月現在についての電力需要予測値を取得します。以下が2018年のモデルを利用して予測した2019年(7月1日から8月12日まで)の電力予測を可視化したものです。BLOCKSによる電力需要予測、赤が気温です。2018年のモデルを使って、2019年についてもそこそこ良い予測ができているようです。今年(2019年)は7月の終わりまで梅雨が続いて気温が低かったので、7月は予想より実績が低いのかもしれませんね。BLOCKSを連携することにより、ドメイン知識に基づいた特徴量の抽出し、ニューラルネットワークの予測モデルを高めることができることが分かりました。結果を可視化で評価することで、誤差の出ている箇所を追求し新しい特徴量作成に繫げることができました。BLOCKSを連携することでコーディングをすることなく、ドラック・アンド・ドロップでデータサイエンスのプロセスが回せます。皆さんも是非お試しください。BLOCKSのトライアルはここからできます。(例)・数値分類による成約率予測:単純な顧客リスト抽出でテレマーケティングをしているため成約率が悪いという課題に対し、成約率の高い顧客から効率的にコールできるため、成約数が向上し売上増加を実現可能に。・気象庁データ(天候)や近隣の人流データ等も用いて数値回帰による来店客数予測から量子コンピュータを活用した最適なシフト作成:人手をかけて作成していた複雑な勤務シフトも、最適な人員配置を実現することで、余剰人員コストの圧縮が可能に。気象データセットを提供。自然言語分類にて意味的近さを捉え類似性の高いものを高速検索。FAQシステムに組み込むことで、問い合わせ対応負荷を削減可能に。・画像分類による不良品判定:工場での目視検査に多くの工数が必要となっており、また人材不足により生産数量の制約が発生している課題に対し、不良品の検品作業負荷を下げ、他の重要な作業への時間割り当てや、生産数量の増加を実現可能に。・数値回帰による需要予測から量子コンピュータを活用した配送ルートの最適化:無駄な移動コストの圧縮と同時に輸送量の増加が可能に。BLOCKSを連携し、気象データと電力需要データを用いてデータサイエンスのプロセスを回してみる事例をご紹介しました。参考いただければ幸いです。さんにサポート頂きました。こころから感謝いたします。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。ThemeZee.Translate。