機械学習

【データ?】AIの需要予測が精度が低くて当たらない理由

AIに需要予測させてみたけど全然精度出ない…

AlphaGOやIBM Watsonなどの登場によって有名になってきたAI。

最近では家電製品にも組み込まれていることも珍しくなくなった。

そして色々な産業にも活用されはじめている。

そのひとつが需要予測

活用方法としては、店舗や製品の売上データを機械学習させて未来や未知の店舗の需要(売上)を予測するというもの。


AIだったら誤差1%以内で当てられたりするんじゃないの?


しかし期待とは違って当たらないということもある。

データはあるのに何故精度が出ないのか。

そこで今回はAIの需要予測が精度が低くて当たらない理由について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。

記事を読むメリット

AIの需要予測が精度が低くて当たらない理由がわかり、AIを導入するプロジェクトを上手に扱えるようになる


AIの需要予測が精度が低くて当たらない理由

何故AIによる需要予測がうまく当たらないのか。

AIの需要予測が精度が低くて当たらない理由はいくつか考えられるが、大きなところでは以下の3点だろう。

AIの精度が低い原因

  • モデルの作り方が悪い
  • 学習データの量が少ない
  • データの質が悪い


  • モデルの作り方が悪い

    モデルの作り方が悪いのはひとつ考えられる。

    例えば学習データ数(縦)に対して説明変数の数(横)が多ければ、モデルは学習データに対して過学習する

    例を挙げるならXY座標で1点のみ指定して1次元方程式(直線)を求めるようなものだ。

    どういうこと?

    直線は2点を指定すれば完全に満たす答えが1つに定まる。

    2点より多ければ完全には満たさないが「誤差の最も小さい直線」を求めることができる。

    逆に1点のみ指定であれば完全に満たす解が無数に存在する。

    機械学習に当てはめると以下の通り。

    満たすべき点:学習データ
    方程式(直線):学習モデル

    つまり学習データを完全に満たすモデルが無数に存在するので、適当に当てはめるだけで誤差ゼロのモデルを作ることができる。

    しかしそれば学習データに完璧に適合するだけで、未知のデータの予測には全く使えないので、学習モデルの作り方としては悪いやり方となる。


    このようにデータの性質を見ながら適切な学習のさせ方をする必要がある。



    学習データの量が少ない

    学習データが少ないのも問題だ。

    先のモデルの例でも挙げたが、データが極端に少ないと過学習してしまうので、説明変数よりデータサンプル数少ないのは論外である。

    そこがスタート地点で、傾向を学習する為にはデータ数が必要だ。

    機械学習ライブラリとして有名なscikit-learnのページを見ると、データサンプル50未満は論外、数値を予測する回帰モデルを使う際にどのモデルを使うかの分かれ目が100K、つまり10万サンプルとしている

    なので思ったより精度が悪い場合は、学習データ数が不足していないか疑うといいだろう。

    学習データ数を変えながら作ったモデルを使って、同じテストデータでテストして学習データ数の多い方が精度が良ければ、まだデータ数を増やして改善する余地があると言えるだろう。



    データの質が悪い

    データの質が悪いというパターンもある。

    データはあるが、データの中に予測する為の根拠となる要素が無ければうまく予測することができない。


    う~、よくわからない
    じゃあもう少し具体的に説明しますね


    例えば店舗の需要予測であれば、地域名と売上だけ学習させても未知の地域に出店する際の需要は予測できない。

    まずは店舗の客層となり得る人が周辺に住んでいるかどうかがキーになるだろう。

    つまり周辺人口のデータは必須だ。

    また店舗で提供するサービスによっては周辺人口の属性も重要だろう。

    玩具を売る店舗であれば子供がいる家庭が需要につながるし、美容系であれば女性、牛丼チェーンであれば男性の数が重要になるだろう。

    データには予測の根拠になるデータが含まれていなければならない

    これを怠ってデータ数を揃えても、大量に学習させたところで精度の出ないモデルができてしまう。



    精度目標が正しくない

    「AIの予測精度が高くない」と嘆いている方の中には、そもそも精度目標が間違っているケースもある。


    需要予測の精度目標は誤差5%以内だ!

    このように精度目標を立てることがあるが、そもそも妥当な目標なのか


    では目標が妥当かどうかを判断するにはどうしたらよいのか。

    目標を立てる指針はコレ。

    ココがポイント

    目標を立てるにはまずデータを知る必要がある


    データを理解すれば妥当な目標を立てることができる。

    例えば先程挙げた店舗の需要予測。

  • 周囲の人口や施設データを説明変数、売上を目的変数とする
  • 既存の店舗数は100店舗あり、過去5年間の月次売上データがある
  • 店舗周辺の地域データは定期取得できておらず店舗毎に周辺データは固定
  • この条件で既存店舗のデータを学習データとテストデータに分け、学習データを学習させて作った機械学習モデルがテストデータに対して予測する。

    この場合に「誤差5%以内の目標が妥当化どうか」をどのように判断すればよいのか。


    どうすんのさ?


    見方のひとつとして「説明変数を固定した状態で目的変数がどれくらいブレるか」を見ると良い。

    この場合は1店舗ピックアップして5年間の売上がどれだけ変動しているか平均と分散をとる。

    そうすると同じ説明変数に対して目的変数がどれだけブレるかがわかる。

    説明変数は予測する際の入力データである。

    説明変数を固定しても正解がブレる分は、完璧に学習しても同じくらい誤差は絶対に出るわけである。


    よくわからない・・・
    じゃあ例をもっと具体的にしますね


    具体的に言えば5年間の売上が1000万円、1200万円、1500万円、1300万円、1000万円だった店舗があるとする。

    過去に戻ってこの土地に店を出す際に

    土地のデータを参考にここに出店した場合の年間売上を誤差5%以内で当てろ

    と言われて要求を満たせるだろうか。

    仮に正解を知っていて平均の1200万円と答えたとしても、1年目の1000万円に対しては20%誤差があることになる。

    正解自体が5%以上ブレるのでは誤差5%以内を達成は不可能ということだ。


    そもそも売上には土地周辺の人口や施設の情報も重要だが、それだけで決まるものでもない。

    人口の変動、日々の天気、流行、事件、店員、店内レイアウト、店舗の広報活動など様々な条件が作用する。

    そしてそれらの中には日々変わる要素があり、1年前に確定できるものではない。

    つまり年間売上や需要に対しては日々の不確定な要素が影響する。

    この「不確定な要素による影響」を知る為に、データの傾向を知る必要があったのである。


    なるほど。言われてみればそうだよな。
    売上は日々のミクロな要素に影響を受けるのに、「来年の売上を正確に予測しろ」というのは無理な話か・・・
    できるのは年次データを固定した際のブレと同じくらいのブレ(=誤差)で予測することくらいですね



    まとめ

    今回はAIの需要予測が精度が低くて当たらない理由について解説した。

    AIの需要予測が当たらない理由としては以下のようなものが考えられる。

    AIの精度が低い原因

  • モデルの作り方が悪い
  • 学習データの量が少ない
  • データの質が悪い

  • しかし「精度が低い」という際の目標精度が妥当ではないというケースも存在する。

    同じ土地でも年によって売上がブレるのに、「土地周辺のデータだけで年間売上を正確に予測する」というのはどんなに学習モデルをチューニングしても不可能である。

    精度目標を立てるには、説明変数に対して目的変数がどれくらいブレるのかあらかじめ知っておく必要がある


    根拠のない目標を立てると、いつまで経っても達成できない目標を追い続けることになるので不毛だね・・・


    それでも精度良く予測したければ、予測や学習の対象を年間売上ではなく週間、日間売上にして粒度を細かくしてみる

    そして予測に関係するような説明変数を探してデータの質の改善を図るという方法になるだろう。

    やるならデータの傾向を理解して、妥当な目標を立てたり、目的変数と関連のあるデータを追加して精度向上を図る方向ですかね



    他にもAI、機械学習に関する記事もあるので、興味があれば見てみて欲しい。

    ITipsと同じようなブログを作る方法

    ブログに興味がありますか?

    もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

    サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
    同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

    ランキング参加中

    にほんブログ村 IT技術ブログへ

    他にもブログやSNSで紹介してくれると励みになります。

    はてブのコメントで酷評されると泣きます(´;ω;`)

    -機械学習
    -

    Translate »

    © 2021 ITips