モデルジェネレーターの使い方(数値回帰タイプ)

Model Generator How-To: Regression

数値回帰モデルを利用した需要予測

はじめに

BLOCKS の機械学習のサービスを使うと、数値回帰が行えます。数値回帰を使うと、天候や曜日などから店舗への来店者数・商品の販売数・交通機関の利用者数などが予測できます。

このチュートリアルでは、東京都の気象情報および日中時間(日の出から日の入りまでの時間)から電力使用量の予測(電力の需要予測)をする例を使って、BLOCKS の数値回帰の使い方を解説します。

チュートリアル例のイメージ図

数値回帰のおおまかな流れ

BLOCKS の数値回帰を行うには、「モデルジェネレーター」と「フローデザイナー」を使用します。下図は、今回の例における数値回帰の流れです。

BLOCKS での数値回帰の流れ図

まず、モデルジェネレーターで学習(トレーニング)を行います。今回のトレーニングでは、気象情報および日中時間と電力使用量の情報を大量に与えて、気象情報および日中時間と電力使用量との因果関係を学ばせます。このトレーニングの結果として、モデルと呼ばれる学習成果が得られます。

次に、モデルと気象情報・日中時間から、フローデザイナーで電力使用量を予測します。

また、トレーニング用データ・予測用データは、原則 BLOCKS の Data Editor で管理します。これらのデータを Data Editor で管理すると、モデルジェネレーターやフローデザイナーとの連携がスムーズになります。

数値回帰を試してみよう

このチュートリアルでは、BLOCKS での数値回帰の一連の流れを解説します。

チュートリアルの流れ図

機械学習では、まとまったデータが必要不可欠です。「数値回帰のおおまかな流れ」で述べたとおり、まとまったデータを元に学習を行うことで、予測が可能となります。このため、機械学習においてデータの収集と加工が最初の作業となります。

数値回帰を始める前に

まず、BLOCKS 推奨のウェブブラウザー Google Chrome を準備してください。Firefox でも構いませんが、このチュートリアルでは、Google Chrome の使用を前提にしています。

次に、数値回帰のトレーニングと予測に必要なデータを準備します。データは、コンマ区切りの CSV ファイル(BOM なし・UTF-8)で用意します。

トレーニング用データは、東京都の日毎の気象情報および日中時間と電力使用量を使用します。

  • 最高気温
  • 最低気温
  • 日照時間
  • 平均湿度
  • 日中時間
  • 電力使用量

トレーニングでは、気象情報および日中時間と電力使用量の間にどのような因果関係があるのかを学習させます。

因子と結果となる値の因果関係を学習する解説図

ここでは、因果関係の原因となる項目(最高気温・最低気温・日照時間・平均湿度・日中時間)のことを「因子」と呼び、因果関係の結果となる項目(電力使用量)のことを「結果となる値」と呼びます。

予測では、モデルを使って未学習の因子から結果となる値を予測します。

キー項目の解説図

予測用データは、「キー項目」と「因子」を使用します。キー項目は、ひとまとまりの予測用データ(1 行分のデータ)を特定するための値です。キー項目は、予測用データ全体でユニークな値でなければなりません。今回は、年月日をキー項目として用います。

これらのデータは、気象庁・国立天文台・東京電力パワーグリッドの各ホームページから入手できます。

日中時間は、国立天文台が提供する日の入りと日の出の時間から算出します。時間の単位は分とします。

このチュートリアルでは、2016 年 1 月 1 日から 2018 年 12 月 31 日までの 3 年間のデータを準備し、トレーニング用データと予測用データに分けて使用します。

データの種類 データ量(期間)
トレーニング用データ 2016 年 1 月 1 日から 2018 年 11 月 30 日までの 2 年 11 か月分
予測用データ 2018 年 12 月 1 日から 2018 年 12 月 31 日までの 1 か月分

予測用データは、実運用では未来のデータを使用します。このチュートリアルでは、実運用前の検証段階を想定しています。このため予測用データは、トレーニング結果の確からしさをテストするため、トレーニングには使用していない過去のデータを用います。

因子については、まとめたデータを用意しました。

データ 説明

サンプル気象データ(weather_daytimeminutes.csv)

気象庁と国立天文台が提供するデータから東京都の気象情報と日中時間をひとつにまとめたコンマ区切りの CSV ファイルです。このファイルには、2016 年 1 月 1 日から 2018 年 12 月 31 日までの以下のデータが含まれています。

  • 年月日
  • 最高気温
  • 最低気温
  • 日照時間
  • 平均湿度
  • 日中時間

左の欄のリンクをマウスの右ボタンでクリックしてください。表示されるメニューからリンク先を保存する旨の項目をクリックするとダウンロードできます。

warning このデータを利用した一切の行為について気象庁および国立天文台は何ら責任を負いません。

結果となる値の電力使用量は、2 次配布が許可されていないため、東京電力パワーグリッドのダウンロードページ から直接ダウンロードします。

東京電力パワーグリッドのダウンロードページの画面

ダウンロードは、2016 年・2017 年・2018 年のリンクをそれぞれマウスの右ボタンでクリックしてください。表示されるメニューからリンク先を保存する旨の項目をクリックするとダウンロードできます。いずれもコンマ区切りの CSV ファイルです。ファイル名は、それぞれ juyo-2016.csvjuyo-2017.csvjuyo-2018.csv です。

これで、データがすべて揃いました。これから、これらのデータを BLOCKS で扱えるデータ形式に加工していきます。

データの加工方法は色々ありますが、このチュートリアルでは、Microsoft Excel で因子と結果となる値をひとつにまとめます。その後、BLOCKS の Data Editor というサービスで不正データの除去(クレンジング)と、トレーニング用データと予測用データへの分割を行います。

データ加工の流れ図

それでは、Microsoft Excel(Excel)で因子データと結果となる値をひとつにまとめていきます。形式は以下のように、因子→結果となる値の順に並べます。表の見出しは英数字とアンダースコア(_)で構成します(括弧内の表記が実際の見出し)。

トレーニングデータの加工例

(図をクリックすると拡大表示されます。)

年月日は因子データではありませんが、電力使用量をまとめたり、トレーニング用データと予測用データへ分割する際に必要です。また、予測用データのキー項目としても使います。その際、キー項目は key という名称でなければなならないため、key という表見出しにしています。

先にダウンロードした weather_daytimeminutes.csv ファイルを Excel で開きます。

Excel で weather_daytimeminutes.csv ファイルを開いた様子

このファイル(ブック)の新しいワークシートに、3 つの電力使用量のデータファイルを取り込んでいきます。

CSV ファイルを取り込む様子

データ]→[外部データの取り込み]→[テキストファイル]の順にクリックします。

画面の解像度によっては、リボン部分の表示は異なります。いずれにしても、[データ]タブの[外部データの取り込み]内の[テキストファイル]をクリックしてください。

取り込むファイルを指定する様子

juyo-2016.csv ファイル→[インポート]ボタンの順にクリックします。

ファイルの何行目から取り込むかを指定する様子

3 行分のヘッダを読み飛ばすため、[取り込み開始行]を 4 に変更し、[次へ]ボタンをクリックします。

ファイルのフォーマットを指定する様子

読み込むファイルはコンマ(カンマ)区切りの CSV ファイルのため、区切り文字の[カンマ]のチェックボックスにチェックを入れて、[完了]ボタンをクリックします。

新規ワークシートにファイルを取り込む様子

電力使用量のデータファイルは、新しいワークシートに取り込みます。このため、データを返す先として[新規ワークシート]をクリックし、更に[OK]ボタンをクリックします。

1 つ目の電力使用量のデータファイルを取り込んだ様子

2 つ目のファイル juyo-2017.csv を取り込む準備として、アクティブなセルの位置を最終行の次行(A6601 のセル)に移動させます。キーボード操作で、Ctrl + の後に、 を 1 回押します。これで、A6601 のセルがアクティブになります。

アクティブセルを A6601 に変更した様子

先ほどと同じ手順([データ]→[外部データの取り込み]→[テキストファイル])で、juyo-2017.csv を取り込みます。

データを返す先を指定する様子

ただし、データを返す先の指定では、[既存のワークシート]が選択され、=$A$6601 となっていることを確認し、[OK]ボタンをクリックします(異なる場合はこれに合わせます)。

2 つ目の電力使用量のデータファイルを取り込んだ様子

3 つ目のファイル juyo-2018.csv を取り込む準備として、アクティブなセルの位置を最終行の次行(A15361 のセル)に移動させます。キーボード操作で、Ctrl + の後に、 を 1 回押します。これで、A15361 のセルがアクティブになります。

アクティブなセルを A15361 に変更した様子

先ほどと同じ手順([データ]→[外部データの取り込み]→[テキストファイル])で、juyo-2018.csv を取り込みます。

データを返す先を指定する様子

ただし、データを返す先の指定では、[既存のワークシート]が選択され、=$A$15361 となっていることを確認し、[OK]ボタンをクリックします(異なる場合はこれに合わせます)。

3 つ目の電力使用量のデータファイルを取り込んだ様子

これで、3 つの電力使用量のデータファイルがワークシート Sheet1 に取り込めました。データは、日・時・電力使用量の順で並んでいます。

取り込んだ電力使用量のデータを見ると、1 時間毎の電力使用量が記録されています。これに対して、今回のトレーニングデータは、気象情報および日中時間を日毎のデータでまとめています。このため、取り込んだこのデータはそのままでは使えず、電力使用量を日毎のデータに再集計する必要があります。

それでは、ワークシート Sheet1 の電力使用量を日毎のデータにまとめて、ワークシート weather_daytimeminutes に記録する手順を紹介します。

ワークシートを切り替えて、セル G! をクリックする様子

ワークシートを weather_daytimeminutes に切り替えて、セル G1 をクリックし、electricity_usage と電力使用量の見出しを入力します。

セル G2 に計算式を入力する様子

セル G2 をクリックし、=SUMIF(Sheet1!$A:$A,A2,Sheet1!$C:$C) と日毎の電力使用量を求める計算式を入力します。

セル G2 入力後の様子

これで、2016 年 4 月 1 日分の電力使用量が計算されて G2 に入力されました。後は、G3 以降のセルに同様の式を展開するだけです。

計算式を一気に展開する様子

手順は簡単です。上記動画のように G2 セルをクリックし、G2 セル右下隅の矩形部分をダブルクリックするだけです。

これで、3 年分の気象情報・日中時間・電力使用量のデータがひとつにまとまりました。

この後は Data Editor で不正データの除去(クレンジング)と、トレーニング用データ・予測用データへの分割を行います。

Data Editor では、コンマ区切りの CSV ファイルが取り込めるので、Excel で加工中のデータをコンマ区切りの CSV ファイルへ出力します。

Excel 上で F12 キーを押します。

CSV 形式でファイルを保存する様子

ファイルの種類]から[CSV (コンマ区切り) (*.csv)]をクリックし、[ファイル名]を predict_electricity_demand.csv に変更し、[保存]ボタンをクリックします。

ファイル保存確認画面

OK]ボタンをクリックします。

ブック保存確認画面

いいえ]ボタンをクリックします。

これで、コンマ区切りの CSV ファイルの出力は完了です。Excel は、このまま保存せずに閉じても構いませんし、ブックとして保存しても構いません。このチュートリアルでは、以降この Excel のデータは使用しません。

それでは、BLOCKS の Data Editor で不正データの除去(クレンジング)と、トレーニング用データと予測用データへの分割を行います。

まず、ウェブブラウザーで、BLOCKS にログインしてください。

以下は、BLOCKS にログイン後の操作解説です。

Data Editor を開く様子
  1. グローバルナビゲーション左端のメニューアイコン()をクリック
  2. Data Editor (beta)]をクリック

作成した CSV ファイルを Data Editor にインポートします。

インポートボタンをクリックする様子

インポート]ボタンをクリックします。

ファイルをインポートする様子
  1. インポート元から[Upload]をクリック
  2. GCS URL で -data で終わる項目をクリック
  3. ファイル欄に、predict_electricity_demand.csv ファイルをドラッグ・アンド・ドロップ
  4. データセット ID の[]ボタンをクリックし、tutorial と入力
    既に tutorial がある場合はそれを選択
  5. 名前欄に、電力の需要予測の基礎データと入力
  6. インポート]ボタンをクリック

Data Editor は、BigQuery 上のデータを視覚的に操作できるツールです。BigQuery に関する知識は必要ありませんが、BigQuery 上の重要な要素であるデータセットとテーブルは指定する必要があります。Microsoft Excel に例えると、データセットはブックで、テーブルはシートに対応する概念です。

インポートしたデータを開く様子

開く]ボタンをクリックします。

インポートしたデータの操作画面

Data Editor にインポートしたデータを操作する画面が開きます。この画面で、[グラフを表示]や[データを表示](上図の赤枠部分)をクリックすると、データが視覚的に確認できます。

欠損値をチェックする様子

データのインポートができたので、不正データの除去を行います。上図の手順で、[すべての列の欠損値を表示]をクリックします。

不正データが検出された様子

不正データ(欠損値)がある列には、 が表示されます(上図の赤枠部分)。今回のデータでは、sunlight_hours の列と average_humidity の列に欠損値が見つかります。

不正データを含む行は、使い物にならないため、行ごと削除します。

不正データを含む行を削除する様子

sunlight_hours 列の[列の編集](❶)→[欠損値](❷)→[行の削除](❸)の順でクリックします。

同様に、average_humidity の列でも同じ操作を繰り返します。

変更内容を確認する様子

変更内容]をクリックし、表示される内容を確認します。以下の内容が表示されていれば問題ありません(順不同)。

  • sunlight_hours 列の欠損値の変更
  • average_humidity 列の欠損値の変更

各項目の右端に表示されている[×]をクリックすると、その変更内容を取り消せます。

変更内容をを上書き保存する様子

変更した内容を保存します。上図の手順で、[上書き保存]をクリックします。

テーブル分割を選択する様子

不正データの除去ができたので、基礎データからトレーニング用データと予測用データに分割したデータを作ります。

テーブルの操作]をクリックし、表示されるメニューから[テーブル分割]をクリックします。

トレーニング用データと予測用データに分割する様子
  1. 分割方法から[カスタム]をクリック
  2. 分割条件から[key]をクリック
  3. 同じく分割条件からアイコンをクリック
  4. スライダーを左にスライドさせ、日付が 2018-11-30 となるように調整
  5. 列名が key のチェックを外す
    (トレーニング用データに必要ない年月日を取り除く)
  6. 列名が electricity_usage のチェックを外す
    (予測用データに必要のない結果となる値を取り除く)
  7. 分割]ボタンをクリック
分割完了の画面

OK]ボタンをクリックします。

これで、データの分割が完了し、数値回帰のトレーニングと予測に必要なデータの準備ができました。

テーブル分割でできたトレーニング用データと予測用データの図

モデルジェネレーターを作成しよう

モデルジェネレーターでトレーニングするには、準備したトレーニング用のデータに適応した専用のモデルジェネレーターが必要です。

このモデルジェネレーターは、以下の手順で作成できます。

モデルジェネレーターを開く様子
  1. グローバルナビゲーション左端のメニューアイコン()をクリック
  2. モデルジェネレーター]をクリック

モデルジェネレーターがひとつもない場合は、「モデルジェネレーターとは」の画面が表示されます。

モデルジェネレーターとはの画面

利用開始]ボタンをクリックします。

ライセンス不足の場合は、その旨のメッセージが表示されます(管理者の場合は、ライセンス購入画面を表示)。メッセージが表示された場合は、組織の管理者に問い合わせてください(管理者の場合は、ラインセンスを購入してください)。

モデルジェネレーターがひとつ以上ある場合は、作成済みのモデルジェネレーターの一覧が表示されます。

モデルジェネレーター一覧画面

画面左上の[追加]ボタンをクリックします。

ライセンス不足の場合は、その旨のメッセージが表示されます(管理者の場合は、ライセンス購入画面を表示)。メッセージが表示された場合は、組織の管理者に問い合わせてください(管理者の場合は、ラインセンスを購入してください)。

数値回帰タイプを選択する様子
  1. 数値回帰タイプ]をクリック
  2. 次へ]ボタンをクリック
作成するモデルジェネレーターに名前を付ける様子
  1. 名前を入力(例:電力の需要予測
  2. 次へ]ボタンをクリック

無料トライアルおよびセルフサービスプランの場合は、画面の案内に沿って以下のステップを進めてください。

  1. GCP サービスアカウントの設定
  2. ストレージの設定
Data Editor のデータからトレーニングデータを設定する様子

テーブルから自動セット]ボタンをクリックします。

Data Editor のトレーニング用データを選択する様子
  1. 電力の需要予測の基礎データ_train]をクリック
  2. OK]ボタンをクリック
キーワードリストの設定を除外する様子
  1. すべての列のチェックを外す
  2. OK]ボタンをクリック
トレーニングデータ設定を完了する様子

次へ]ボタンをクリックします。

モデルジェネレーターの作成を完了する様子

完了]ボタンをクリックします。

最終確認で承認する様子

OK]ボタンをクリックすると、準備したトレーニング用のデータに適応したモデルジェネレーターが作成されます。

モデルジェネレーターでトレーニングしよう

モデルジェネレーターが作成できたので、準備したトレーニング用のデータでトレーニングを行います。

トレーニングの設定を開始する様子

トレーニング開始]ボタンをクリックします。

トレーニング開始でデータを設定する様子
  1. トレーニング名を入力(例:1回目のトレーニング
  2. Data Editor]をクリック
  3. テーブルを選択]をクリック
Data Editor のトレーニング用データを選択する様子
  1. 名前が[電力の需要予測の基礎データ_train]をクリック
  2. OK]ボタンをクリック
トレーニングを開始する様子

開始]ボタンをクリックすると、トレーニングが始まり、トレーニングの状況が確認できます。

トレーニング一覧画面

トレーニングの所用時間は、4 時間ほどです(時間はサーバー側の状況により前後)。しばらくお待ちください。

トレーニング終了後のトレーニング一覧画面

トレーニングが成功で終わると、トレーニング一覧の当該トレーニングのステータスが成功に変わります。

このトレーニングのモデルを予測で使用するためには、このトレーニングのモデルを予測で使用することを明示する必要があります。モデルジェネレーターでは、この行為を適用と呼びます。

トレーニングを適用する様子

適用対象から[本番用]を選択し、[適用]ボタンをクリックすると、フローデザイナーを使って予測が行えるようになります。

適用対象について詳しくは、モデルジェネレーターヘルプの「トレーニングを一覧する」のアクションの項を参照してください。

もし、トレーニングが失敗する場合は、再度トレーニングを実行してみてください。トレーニング失敗の理由の確認方法については、「操作中にエラーとなったら」を参考にしてください。

フローデザイナーを作成しよう

予測は、フローデザイナーで行います。フローデザイナーのフローテンプレート作成機能を活用すると、簡単に画像分類を予測するためのフローが作成できます。このチュートリアルでは、このフローテンプレートを使った方法を解説します。

フローデザイナーを開く様子
  1. グローバルナビゲーション左端のメニューアイコン()をクリック
  2. フローデザイナー]をクリック
フローデザイナーとはの画面

利用開始]ボタンをクリックします。

既にフローデザイナーを作成している場合は、「フローデザイナーとは」の画面は表示されません。後で述べるフローデザイナーの一覧画面が表示されます。その場合は、既存のフローデザイナーの名前をクリックして、以降の作業を進めてください。もし無料トライアル以外をお使いで、新たにフローデザイナーを作成できるライセンス枠がある場合は、フローデザイナー一覧画面の左上にある[追加]ボタンをクリックしてください。

ライセンス不足の場合は、その旨のメッセージが表示されます(管理者の場合は、ライセンス購入画面を表示)。メッセージが表示された場合は、組織の管理者に問い合わせてください(管理者の場合は、ラインセンスを購入してください)。

フローデザイナーを作成する様子
  1. フローデザイナーの名前を入力(例:チュートリアル
  2. 作成]ボタンをクリック
作成したフローデザイナーを開く様子

フローデザイナーの一覧画面から、[チュートリアル]の部分をクリックします。

フローテンプレートでフローを生成しよう

新しいタブでフローデザイナーが開きます。引き続き、フローテンプレート作成機能を使って、数値回帰の予測を行うフローを生成します。

フローテンプレート機能を実行する様子

フローデザイナーのヘッダーから[フローテンプレート作成]ボタンをクリックします。

数値回帰予測のフローテンプレートを作成する様子

作成するフローの種類を設定します。

  1. 数値回帰予測]をクリック
  2. 次へ]ボタンをクリック
フロー名を入力する様子

作成するフローのフロー名を設定します。

  1. 電力の需要予測 と入力
  2. 次へ]ボタンをクリック
予測ブロックを設定する様子

ここでは、フローで使用する予測ブロックの設定を行います。

  1. モデル選択で[電力の需要予測]をクリック
  2. 予測形式選択で[オンライン]をクリック
  3. 次へ]ボタンをクリック
予測用データを設定する様子

ここでは、Data Editor で準備した予測用データを設定します。

  1. ストレージの選択で[Data Editor]をクリック
  2. データの名前で[電力の需要予測の基礎データ_test]をクリック
  3. 次へ]をクリック
予測結果の出力先を設定する様子

ここでは、予測結果をどこに出力するかを設定します。今回は、もっとも手軽に結果の確認ができる Data Editor を出力先とします。

  1. 保存先で[Data Editor]をクリック
  2. 次へ]ボタンをクリック

これで予測結果は、Data Editor の「電力の需要予測の基礎データ_test_result」に出力されます。

フローを配置する様子

最後に、フローを配置する場所を指定します。初期設定値の[現在のタブに表示する]を採用するため、そのまま[配置]ボタンをクリックします。

作成されたフローが下図の赤枠部分に配置されます。

フローを保存する様子

ここで、一旦[保存]ボタンをクリックして、フローを保存しておきます。

生成したフローで予測をしよう

これで、予測の準備ができました。早速、予測を試してみます。

フローを実行する様子

フロー先頭の「電力の需要予測」ブロック右端のアイコン()をクリックします。表示されるメニュー中程の[フローの実行]をクリックします。これで、電力の需要予測が実行されます。

ログを見る様子

予測の実行状況を確認するために、フローの実行ログを確認します。表示中のメニューから[ログを見る]をクリックします。

ログのステータスが実行中であることをを確認する様子

画面下部に、ログパネルが表示されます。ログパネル左側のログリストのステータスでフローの実行状況が確認できます。フローの実行には、少々時間がかかるので、[実行中]の表示になっているはずです。実行が終わるまで、しばらく待ちます。

ログのステータスが成功であることをを確認する様子

フローの実行が正常に終了すると、ログリストのステータスが[成功]に変わります。これで予測は完了です。

予測結果を確認しよう

予測結果は、Data Editor のデータとして出力しているので、Data Editor で確認します。別タブにある BLOCKS の画面(フローデザイナーの一覧画面)に切り替えます。

Data Editor を開く様子

グローバルナビゲーション左端のメニューアイコン()をクリックし、表示されるメニューから[Data Editor (beta)]をクリックします。

予測結果を開く様子
  1. リロードアイコンをクリック
  2. 名前が[電力の需要予測の基礎データ_test_result]をクリック
データを表示する様子

データを表示]をクリックします。

結果が表示された様子

各列のそれぞれの意味は、以下のとおりです。

名前 説明
key

予測用データで指定したキー項目です。

今回の例では、2018 年 12 月 1 日から 2018 年 12 月 31 日までの各日付がキーです。

output

キーに対応した因子を元に予測した結果です。

今回の例では、各日付に対応した電力使用量が結果です。

予測結果が確認できたところで、予測値と実績値を比較してみます。

2018 年 12 月分の実績値は、Data Editor へ最初にインポートした「電力の需要予測の基礎データ」の中にあります。この実績値を予測結果にまとめた後で、予測値と実測値をグラフ化して比較します。

まず、予測値と実測値をまとめる準備として、key 列の型を STRING から DATE へ変換します(「電力の需要予測の基礎データ」の key 列の型と合わせる)。

key 列の型変換をする様子
  1. key 列の[列の編集]をクリック
  2. 列の型変更]をクリック
型を DATE 型へ変換する様子
  1. で[DATE]をクリック
  2. 日付や時刻の形式で[YYYY-MM-DD]をクリック
  3. OK]ボタンをクリック
変更内容を上書き保存する様子

変更した内容を保存します。

  1. 別名で保存]ボタン横の をクリック
  2. 上書き保存]をクリック
テーブルの操作からテーブルの結合を選択する様子

実績値をまとめるために、テーブル結合という機能を使います。

  1. テーブルの操作]をクリック
  2. テーブル結合]をクリック
まとめる実績値のデータを指定する様子

まとめたい実績値を含む「電力の需要予測の基礎データ」を指定します。

  1. ]をクリック
  2. 電力の需要予測の基礎データ]をクリック
予測値と実績値をまとめる様子

予測値と実績値のそれぞれの日付が一致するデータをまとめる指定をします。

  1. 内部結合]をクリック
  2. すべての列を選択するため、欄外のチェックボックスをクリック
  3. electricity_usage のチェックボックスをクリック
  4. 追加]ボタンをクリック
  5. key をクリック
  6. key をクリック
  7. 結合]ボタンをクリック
まとめたデータの格納先を指定する様子

まとめたデータを格納する先を指定します。

  1. 名前に電力の需要予測の予実比較と入力
  2. データセット ID で tutorial をクリック
  3. テーブル ID に predict_electricity_demand_compare と入力
  4. OK]ボタンをクリック
テーブル結合の確認画面

OK]ボタンをクリックします。これで予実績をグラフで確認する準備が整いました。

電力の需要予測の予実比較を開く様子

名前が「電力の需要予測の予実比較」をクリックします。

データ分析をクリックする様子

データ分析]をクリックします。

グラフ化対象の列と行を指定する様子

グラフ化に必要なデータを指定します。

  1. 列から key をクリック
  2. 行から output 内の output (合計) をクリック
  3. 行から electricity_usage 内の electricity_usage (合計) をクリック
データ分析する様子

画面中央のボタンをクリックします。

線グラフを表示する様子

表示を線グラフに切り替えます。

  1. テーブル]をクリック
  2. 線グラフ]をクリック
予実比較グラフ

これでグラフが表示されました。予測値と実績値は、12 月の終わり付近を除いて、概ね似たような値を取っていることがわかります。

問題は、この予測精度は良いのか悪いのかという点です。これは、この電力の需要予測の利用シーンによって異なってくるでしょう。残念ながらこのチュートリアルでは、明確な利用シーンを想定していないため、なんとも言えないところです。

数値回帰の評価について詳しくは、弊社ブログ記事「精度の評価と評価指標について(回帰編)」を参考にしてください。

以上で、BLOCKS の数値回帰のサービスをひととおり試したことになります。いかがだったでしょうか。意外と簡単だったのではないでしょうか。

操作中にエラーとなったら

エラー内容は、モデルジェネレーターの場合は、トレーニング詳細画面の「エラー内容」で確認できます。以下に、モデルジェネレーターでのエラー内容の確認方法を紹介します。

トレーニング詳細画面を表示する様子

トレーニング一覧からステータスが[失敗]と表示されているトレーニングのトレーニング名をクリックします。

エラー内容の確認

トレーニング詳細画面の[エラーログ]をクリックします。エラー部分については、赤字で表示されています。

フローデザイナーの場合は、先に紹介したログパネルで確認できます。

フローデザイナーのログパネルでのエラー内容の確認

こちらも同様に、エラー部分が赤字で表示されます。

エラーの原因を特定するには、赤字のエラー部分を中心に前後のメッセージも含めて読み解くと良いです。

エラーが発生し、何度リトライしても失敗するようであれば、グローバルナビゲーション右端のユーザーアイコンをクリックして表示される[お問い合わせ]からエラー内容をテキストファイル化したファイルを添付してお問い合わせください。エラー内容をテキストファイル化する場合は、赤字のエラー部分だけではなく、すべてのエラーメッセージを含めてください(フローデザイナーは、[エラーログの詳細を表示]チェックボックスをチェック)。

フローデザイナーでエラーが発生する場合は、フローをエクスポートした JSON ファイルも添付してください。

お問い合わせについて詳しくは、基本操作ガイドの「お問い合わせ」を参考にしてください。

まとめ

このように BLOCKS を使うと、データを準備するだけで、機械学習の専門的な知識は必要なく簡単に数値回帰が利用できます。ただし、データの準備に際し、留意点があります。準備するコンマ区切りの CSV ファイルは、BOM なし・UTF-8 にしてください。これ以外だと、BLOCKS で扱うことができません。

BOM なし・UTF-8 について詳しくは、弊社ブログの「MAGELLAN BLOCKSを利用する上で文字コードのお話し」を参考にしてください。

なお、トレーニングの精度について評価はしませんでしたが、因子を見直すことで改善の余地はあると思われます。

例えば、企業が休みの休日は電力使用量が平日よりも少なくなる可能性があります。また、季節によっても電力使用量の度合いは異なってくるでしょう。これらのことから、月や曜日を因子として追加することで、トレーニングの精度はより良くなる可能性があると思われます。

今回のチュートリアルの応用課題として、データの準備段階でこれらの因子を追加して試してみてはいかがでしょうか。

機械学習を使ってビジネスの課題を解決するには、チュートリアル同様にまずデータ収集から始めます。社内にある既存のデータを集めたり、新たにアンケートを採ってデータを集めたり、データを購入することもあります。更にそれらデータを精査し、データを選別したり、不正なデータを除去するなどのデータ加工の作業も必要です。このデータ収集と加工作業が、機械学習のステップの大半を占めると言っても過言ではありません。