AlphaGOやIBM Watsonなどの登場によって有名になってきたAI。
最近では家電製品にも組み込まれていることも珍しくなくなった。
そして色々な産業にも活用されはじめている。
そのひとつが需要予測。
活用方法としては、店舗や製品の売上データを機械学習させて未来や未知の店舗の需要(売上)を予測するというもの。
しかし期待とは違って当たらないということもある。
データはあるのに何故精度が出ないのか。
そこで今回はAIの需要予測が精度が低くて当たらない理由について紹介する。
この記事を書いている人
記事を読むメリット
AIの需要予測が精度が低くて当たらない理由がわかり、AIを導入するプロジェクトを上手に扱えるようになる
AIの需要予測が精度が低くて当たらない理由
何故AIによる需要予測がうまく当たらないのか。
AIの需要予測が精度が低くて当たらない理由はいくつか考えられるが、大きなところでは以下の3点だろう。
AIの精度が低い原因
モデルの作り方が悪い
モデルの作り方が悪いのはひとつ考えられる。
例えば学習データ数(縦)に対して説明変数の数(横)が多ければ、モデルは学習データに対して過学習する。
例を挙げるならXY座標で1点のみ指定して1次元方程式(直線)を求めるようなものだ。
直線は2点を指定すれば完全に満たす答えが1つに定まる。
2点より多ければ完全には満たさないが「誤差の最も小さい直線」を求めることができる。
逆に1点のみ指定であれば完全に満たす解が無数に存在する。
機械学習に当てはめると以下の通り。
方程式(直線):学習モデル
つまり学習データを完全に満たすモデルが無数に存在するので、適当に当てはめるだけで誤差ゼロのモデルを作ることができる。
しかしそれば学習データに完璧に適合するだけで、未知のデータの予測には全く使えないので、学習モデルの作り方としては悪いやり方となる。
このようにデータの性質を見ながら適切な学習のさせ方をする必要がある。
学習データの量が少ない
学習データが少ないのも問題だ。
先のモデルの例でも挙げたが、データが極端に少ないと過学習してしまうので、説明変数よりデータサンプル数少ないのは論外である。
そこがスタート地点で、傾向を学習する為にはデータ数が必要だ。
機械学習ライブラリとして有名なscikit-learnのページを見ると、データサンプル50未満は論外、数値を予測する回帰モデルを使う際にどのモデルを使うかの分かれ目が100K、つまり10万サンプルとしている。
なので思ったより精度が悪い場合は、学習データ数が不足していないか疑うといいだろう。
学習データ数を変えながら作ったモデルを使って、同じテストデータでテストして学習データ数の多い方が精度が良ければ、まだデータ数を増やして改善する余地があると言えるだろう。
データの質が悪い
データの質が悪いというパターンもある。
データはあるが、データの中に予測する為の根拠となる要素が無ければうまく予測することができない。
例えば店舗の需要予測であれば、地域名と売上だけ学習させても未知の地域に出店する際の需要は予測できない。
まずは店舗の客層となり得る人が周辺に住んでいるかどうかがキーになるだろう。
つまり周辺人口のデータは必須だ。
また店舗で提供するサービスによっては周辺人口の属性も重要だろう。
玩具を売る店舗であれば子供がいる家庭が需要につながるし、美容系であれば女性、牛丼チェーンであれば男性の数が重要になるだろう。
これを怠ってデータ数を揃えても、大量に学習させたところで精度の出ないモデルができてしまう。
精度目標が正しくない
「AIの予測精度が高くない」と嘆いている方の中には、そもそも精度目標が間違っているケースもある。
このように精度目標を立てることがあるが、そもそも妥当な目標なのか。
では目標が妥当かどうかを判断するにはどうしたらよいのか。
目標を立てる指針はコレ。
ココがポイント
目標を立てるにはまずデータを知る必要がある
データを理解すれば妥当な目標を立てることができる。
例えば先程挙げた店舗の需要予測。
この条件で既存店舗のデータを学習データとテストデータに分け、学習データを学習させて作った機械学習モデルがテストデータに対して予測する。
この場合に「誤差5%以内の目標が妥当化どうか」をどのように判断すればよいのか。
見方のひとつとして「説明変数を固定した状態で目的変数がどれくらいブレるか」を見ると良い。
この場合は1店舗ピックアップして5年間の売上がどれだけ変動しているか平均と分散をとる。
そうすると同じ説明変数に対して目的変数がどれだけブレるかがわかる。
説明変数は予測する際の入力データである。
説明変数を固定しても正解がブレる分は、完璧に学習しても同じくらい誤差は絶対に出るわけである。
具体的に言えば5年間の売上が1000万円、1200万円、1500万円、1300万円、1000万円だった店舗があるとする。
過去に戻ってこの土地に店を出す際に
と言われて要求を満たせるだろうか。
仮に正解を知っていて平均の1200万円と答えたとしても、1年目の1000万円に対しては20%誤差があることになる。
正解自体が5%以上ブレるのでは誤差5%以内を達成は不可能ということだ。
そもそも売上には土地周辺の人口や施設の情報も重要だが、それだけで決まるものでもない。
人口の変動、日々の天気、流行、事件、店員、店内レイアウト、店舗の広報活動など様々な条件が作用する。
そしてそれらの中には日々変わる要素があり、1年前に確定できるものではない。
つまり年間売上や需要に対しては日々の不確定な要素が影響する。
この「不確定な要素による影響」を知る為に、データの傾向を知る必要があったのである。
まとめ
今回はAIの需要予測が精度が低くて当たらない理由について解説した。
AIの需要予測が当たらない理由としては以下のようなものが考えられる。
AIの精度が低い原因
しかし「精度が低い」という際の目標精度が妥当ではないというケースも存在する。
同じ土地でも年によって売上がブレるのに、「土地周辺のデータだけで年間売上を正確に予測する」というのはどんなに学習モデルをチューニングしても不可能である。
精度目標を立てるには、説明変数に対して目的変数がどれくらいブレるのかあらかじめ知っておく必要がある。
それでも精度良く予測したければ、予測や学習の対象を年間売上ではなく週間、日間売上にして粒度を細かくしてみる。
そして予測に関係するような説明変数を探してデータの質の改善を図るという方法になるだろう。
他にもAI、機械学習に関する記事もあるので、興味があれば見てみて欲しい。