以前ご紹介した電力需要予測の記事ですが、予測時の誤差が6800くらいでした。この誤差を小さくし、精度を向上させてみたいと思います。
MAGELLAN BLOCKSで精度を向上させる際の基本的な考え方は、以下の4つです。
b)学習データの件数を増やす
c)予測因子の与え方を変えてみる
d)トレーニング時の設定を変えてみる
aとbは今回のデータについてはできないので、cの予測因子の与え方を変えてみるとdのトレーニング時の設定を変えてみるで精度向上に試みます。例えば以下3つのような方法があります。(※時系列型はちょっとややこしいので別の記事にさせていただきます。)
1.トレーニング回数を増やしてみる
2.天気を集約してみる
3.時系列型を使ってみる(別記事)
1.トレーニング回数を増やしてみる
以前、電力の需要予測をした際にはトレーニング時の設定をデフォルトでやっていました。トレーニング設定のなかで最初に触って観たほうがいいものがあります。それが、トレーニングの最大試行回数です。

トレーニングの最大試行回数とは、トレーニングデータを利用して様々なパターンのパラメータ設定を試して最適なパラメータを探すのですが、そのパラメータ設定を何パターン試すかと言うことです。この回数を増やすと言うのは最初の20回では最適なパターンが見つかってないのでは?と思ってもっと探すと言うことになります。(詳しくはトレーニング経過制限時間・トレーニング最大試行回数・早期打ち切り判定と絡んで説明が必要ですが別の記事にさせていただきます。)
前回は20回で誤差が6800ぐらいだったので、今回また20回に加えて30回・40回・50回と4つのトレーニングを同時に行なってみます。

それぞれトレーニングが2回進んだだけでは7万〜8万台の誤差となっています。これが回数を経るにつれて小さくなっていきます。実際に全てトレーニングが終わった結果がこの通りです。このデータでは誤差4000前後が限界のようですね。(どうも前回の20回で誤差6800はあまり上手くいかなかったパターンだったようです)

このように解きたい問題と与えるデータによって、必要となる試行回数が違ってきます。精度を改善するために一旦試行回数を増やしてみるのも手の一つです。
2.天気を集約してみる
こちらは気象庁の天気概況(曇時々晴など)をそのまま使っているので、少ない天気で特徴が出てないのではないかという想定によるものです。

そのままでは98種類ある天気を今回は晴,曇,雨,雪の4つにまとめます。
まとめ方として今回は、主観で下のような表を準備してまとめています。考え方的には「晴れのち曇りだったら晴れ、雨時々曇りなら雨」みたいな感じです。これは天気を使う目的が「お店にお客さまが来てくれるか」だったら大雨は別にする等と考えても良いと思います。
実際に今回4種類に集約してみると、このような比率になりました。

このデータをモデルジェネレーターでトレーニングすると誤差が3070になりました。4パターンの天気ではまとめすぎな気がしないでもないですが、98種類の細かすぎる(26ヶ月791件のデータに対して出現数が少なすぎる)よりは良い結果となりました。

さて、このモデルで6月1日〜6月16日を予測してみました。そうするとグラフはこのようになりました。前回のグラフよりだいぶ誤差が小さくなったことが分かります。
今回のグラフ
前回のグラフ
このようにデータの与え方で特徴の現れ方が変わる場合がありますので「このデータで特徴が学習できるかな?」と考えて色々と試してみていただいて、精度の良いモデルを見つけていただければと思います。
※本ブログの内容や紹介するサービス・機能は、掲載時点の情報です。