1
0

More than 1 year has passed since last update.

Google スプレッドシート(コネクテッドシート)でBigQueryMLの機械学習結果を参照する

Posted at

Google スプレッドシートでBigQueryMLの機械学習結果を参照する

以前、Dataprep→BigQuery→BigQueryML→DataPortalと連携し機械学習を行い、参照する記事を掲載しました。
DataprepでCloud Storage→BigQueryへデータをクレンジングして格納する
BigQueryMLで太陽光発電量を予測して、DataPortalに表示する

最近、GoogleのスプレッドシートにBigQueryの検索結果をアウトプットできるようになりました。
コネクテッド シートの使用

これにより、スプレッドシートで手軽に機械学習結果を参照でき、非常に便利な機能ですので、ご紹介いたします。

太陽光の発電電力量を予測する

詳細は以前の記事にありますが、
気象予報データと発電実績データを元に機械学習を行い、未来の太陽光発電電力量を予測します。
データモデルの作成までは以前の記事をご参照ください。

入力情報は以下を使います。
過去気象予報データ(KCCS API)
・発電実績データ(弊社社員の家より)

モデルとデータ

以前の記事で作った、モデルとデータにアクセスします。

image.png

スプレッドシートでBigQueryMLにアクセスします。

スプレッドシートを開き「BigQueryに接続」を選択します。
image.png

BigQueryに配置されているプロジェクトを選びます。
image.png

「カスタムクエリを作成」を選択します。
image.png

前述したデータにアクセスするためのSQLを記載します。

説明変数:日射量
目的変数:発電電力量
学習データ:5月~7月末のデータ
テストデータ:8月のデータ

となりますので、SQLは以下になります。

with weather as (
select
  weather_forecast.Insolation as insolation, --説明変数:日射量
  weather_forecast.timestamp -- 時間 
from
  `qiita.WEATHER_FORECAST_RESULT` weather_forecast
where
  weather_forecast.timestamp between cast('2021-08-01' as date) and cast('2021-08-31' as date) -- 範囲を指定
),
pv_forecast as (
  Select timestamp, sum(kwh) as sum_kwh from -- 学習結果の評価用に、実際の発電電力量を取得
    `qiita.PV_FORECAST`
  group by timestamp
)
select predicted_sum_kwh, sum_kwh, insolation, a.timestamp from
ml.predict(model `qiita.pv_forecast_model`, table weather) a
INNER JOIN pv_forecast b
ON a.timestamp = b.timestamp
order by a.timestamp

設定が完了すると、
作ったモデルで予測結果が表示されます。
そのままだと、参照用のシートとなり、スプレッドシートとして使えないため、「抽出」ボタンを押し、データをシートに出力します。
※BigQueryのデータはそのまま扱えません。
image.png

スプレッドシートとして使ってみる

抽出後に普通のスプレッドシートとして利用可能になります。
image.png

グラフにしてみる

グラフにしたい場合は、元の参照用シートで「グラフを作成」で「新しいシート」で「作成」します。
image.png

グラフのパラメータを指定すれば、DataPortalのようなグラフの表示も可能になります。
以下のグラフでは、
predicted_sum_kwh=予測した発電電力量
sum_kwh=実際の発電電力量
になります。

image.png

スプレッドシートで機械学習結果も参照できるようになると、ほぼ誰でも扱う事ができるようになります。
非常に便利かと思いますので、ご興味のある方は使ってみてください。

1
0
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
0