データ分析

AIを作ってみよう:消費予測(5/6)

更新日:

消費予測

 

AIを作ってみよう:消費予測(4/6) までの記事で、AIを作り中身の解説をしてきました。

実行してみた結果はどうだったでしょうか。それほど正確ではなかったと思います。それは、プログラムもデータも簡単なものにしているからです。

ではAIの結果を良くする=精度を上げるにはどうしたらいいでしょうか。

方法はいくつかあります。この記事では、統計的機械学習の精度を改善していく方法をお教えします。

 

改善方法1:アルゴリズムの実行比較

 

今回AIのアルゴリズムとして実行したのはSVR(SupportVectorRegression)というものでした。今回の課題が教師あり学習でかつ数値予測が必要だったからです。

しかし教師あり学習で数値予測をするアルゴリズムは、他にもあります。どれが良いのかは実際のところ実行してみないと分かりません。各理論を知っていればある程度の想像はできますが、結果を出してみるのが一番なのです。

 

教師あり学習で数値予測ができるアルゴリズム例

アルゴリズム名プログラムでの置き換え方
SVRmymodel = SVR()
SGDRegressormymodel = linear_model.SGDRegressor()
LinearRegressionmymodel = linear_model.LinearRegression()
LASSOmymodel = linear_model.Lasso()

 

詳しい理論の解説はここではしませんが、このようにプログラムの1行を置き換えるだけで学習・予測を実行することができます。試してみてください。

開発現場でも、全てを実行して最も良い結果を出すアルゴリズムを選ぶ、という実装をしています。

 

改善方法2:学習データの増量

 

今回の学習データは1ヶ月分でした。

これを6ヶ月、1年分と増やしていくほど、AIの結果は正確になっていきます。学習データが多いほど、AIは色々なケースを含んだ平均値を覚えることができるからです。

ただし、データが多いほど学習時間が長くなります。

ページの最後に、データを増やしたサンプルを貼っています。試してみてください。

 

改善方法3:データの要素を増やす

 

今回の学習・予測データは、「天気」と「お酒の消費量」という要素を使いました。でもお酒の消費量が関係するのは天気だけでしょうか。恐らく気温も関係しますね。気付かない他の要因もあるかもしれません。

例えば、「天気」だけでなく「天気、気温、雨量、日照時間、気圧、風速、湿度」を一度に学習することもできます。この場合、AIは自動的に一番影響する要素というものを見出します。そして強く影響する要素を使い予測を行います。

このあたりが統計的機械学習の真骨頂ではないでしょうか。一度に色んな要素を学習して相関性を見出す=同時に多次元で分析する、というのは人間にはできません。人間は3次元が精一杯です。

データの要素を増やすと、読み込むプログラムも改修が必要です。また、計算時間は前項の単純な増量よりももっと長くなります。

ページの最後に、このあたりを拡張したデータとプログラムを掲載しますので試してみてください。

 

参考:データの標準化

 

もう一つAIの精度を上げる方法がありますが、既にプログラムに反映しているので「参考」としました。

ちょっと難しくなりますが、データの数値を「標準化」するという方法です。

例えば、気温はだいたい-20~+50(度)という値の範囲ですね。一方、日照時間は0~24(時間)という値です。AIがこれらの値を使う時、意味あいを知らず数値として見るだけなので、このままだと的外れな計算をします。

同じ度合いの数値として扱えるよう全てのデータを-1~1の間の数字に押し込め、変化量だけに注目できるようにする、というのが標準化です。

これは既にプログラムに反映しています。この部分です。

精度向上のためにこういったテクニックもあります。

 

改善プログラム 

 

それでは、上記の1.2.3.を全て反映したプログラムを貼ります。同じように実行を試してみてください。分析するデータの要素も行数も増えたので、実行には時間がかかります。

MODELNUM = の行を0,1,2,3 に変更するとアルゴリズムを変更できます。

プログラム

 

学習データ

 

予測データ 

 

  

 

いかがでしたか。

予測の正解は、「105.03」です。
AIの結果は良くなったでしょうか。もしかしたらそれでも結果は良くないかもしれません。

このように、AIの開発は地道な試行錯誤を繰り返して良いものにしていきます。

 

さて次は、せっかく増やしたデータに不要なものがあるかもしれないというお話をします。-> AIを作ってみよう:消費予測(6/6)

  

  

-データ分析

Copyright© やさしいAIの始め方 , 2024 All Rights Reserved Powered by STINGER.