こんにちは、AIテクノロジーセンターのあーくです。
みなさんはデータの活用できてますか?ビジネス上でのデータが蓄積されてきたらそれを有効活用する方法の一つとして将来の動向や需要の予測に使うことができます。
将来の予測ができれば企業としては「どの商品に投資をしたら良いか」、「どんなタイミングでイベントを実施したら良いか」のような行動の判断がしやすくなります。
より効果が見込める行動を取ることで利益を出しやすくなるので、データがあればこれを活用しない手はないです。
では、どのような手順で予測しているのでしょうか?今回は、弊社で実施している回帰モデルを用いた予測タスクの実施手順とポイントについてご紹介します。
目次
1. データクリーニング
2. データ観察・分析
3. データの前処理
4. モデル構築
5. モデルで予測・評価
6. モデル精度向上
1. データクリーニング
まずは予測したい対象に関連したデータを確認し、活用できる形に整えます。
例えば、翌日の天気を予測したいとします。そのとき天気に関連するデータとしては、気温や湿度、風速、季節、月などが挙げられます。これらのデータの欠損や重複、表記ゆれなどがあれば綺麗にして整合性を図ります。
2. データ観察・分析
データクリーニングができたらデータを可視化してその傾向を観察します。天気の例であれば、「気温が高ければ晴れの日が多い」、「湿度が高ければ雨の日が多い」のような傾向が考えられるかと思います。これらの傾向から予測を実施するモデル構築に必要なデータを選択します。
実際にデータの可視化や分析をしてみると分かるのですが、可視化の時点から考えることが多いです。例えば、「どのデータを軸にしてどんな図を作るのか」という観点で考えると「それぞれの気温に対してどの天気が多いのか」を可視化するために棒グラフを作ると良いかもしれません。また、「それぞれの月に対して平均気温はどのくらいか」を見るために折れ線グラフを作っても良いかもしれません。
上記の例は「天気」という日常的に分かりやすいものですが、これが各業界のデータの場合はどのように可視化・分析したら良いのか直感的には分かりにくいことがあるため、ある程度のノウハウが必要になります。
3. データの前処理
データ観察ができたらモデル構築のためのデータの前処理を実施します。
例えば、気温と湿度、風速は数値として扱うことができますが、季節は「春夏秋冬」と文字のままでは機械が扱えないため、「春=001」や「夏=010」のように変換します。
月に関しても「1月」や「2月」の数値をそのまま使うと1から12に向かって増加しているように見えるため、季節と同じように変換する方が望ましいでしょう。
実際に月の数値は増加していますが、私達の感覚では「1月から12月に向かって増加する」というより「1月や4月というカテゴリー・分類」という認識の方が正しいといえるため、変換した方が望ましい予測ができる可能性があります。
4. モデル構築
前処理したデータを用いて予測モデルを構築します。
今回扱うのは回帰モデルであるため、気温や湿度などのデータ(説明変数)から天気(目的変数)を予測するように学習させます。季節による天気への影響は大きいと考えられるため、最低1年間の学習データがある方が良い結果が得られると思われます。
このような「私達が直感的に分かること」をいかに機械に理解させるか、がモデルを構築する上でとても大切です。
5. モデルで予測・評価
構築したモデルを使って予測します。
天気であれば気温や湿度、季節などから将来の天気を予測します。評価の際には、実際の天気と予測した天気を比較してどれくらい予測結果が当たっているのか評価します。
評価指標としては、各モデルで適切なものを選び、評価値を適切に評価する必要があります。回帰モデルの評価指標には、MSEやMAEなどがあります。例えば、MSEが2だった場合、その値は良いのか悪いのか、根拠を元に評価することになります。
適切な評価をするためには、評価指標の特徴や評価値の取り得る範囲などを考慮することが大切です。
予測結果が良ければそのままモデルを活用できるかと思いますが、結果が良くなければモデルの精度向上を実施します。
6. モデル精度向上
さらに精度の良い予測結果を得るためにモデルを改善します。
予測結果からなぜ予測がうまくできなかったのか、その原因を考えて新たなモデルを構築します。
例えば、季節による天気への影響が反映されていなかったら、その特徴を捉えるための特徴量を追加すると良い結果が得られるかもしれません。他にも学習データを増やしたり、パラメータ最適化を実施したりすることで改善できるかもしれません。
何がモデルの精度を向上させるのかは実際に作ってみないと分からないため、いろいろなパターンを試すことになります。この作業はトライアンドエラーの繰り返しになるので、効率的に精度を向上させるには正しいアプローチを取ることが大切です。そのため、ある程度のノウハウが必要となるポイントです。
上記のような流れで回帰モデルを構築して予測タスクを実施することができます。考えることはたくさんありますし、精度の高いモデルが作れるかどうかも試してみないと分かりません。
しかし、収集したデータを活かして将来のビジネスの利益向上に繋げられるのであれば、試してみる価値は十分にあると思います。
さいごに
今回は、回帰モデルを用いた予測タスクの実施方法をご紹介しました。本記事では天気の予測を例に挙げましたが、他にも以下のようなユースケースが考えられます。
- 商品の在庫状況予測
- スポーツのトレーニング効果予測
- ゲームの利用率予測
- 機械の故障タイミング予測
- 自然災害の発生予測
未来が分かっていればそれに対してどう行動するか決めやすいですよね。実際に精度の高いモデルの予測結果を見たら、まるで未来を見てから過去に戻って来たかのような不思議な感覚になります。ある意味、予測モデルはタイムマシンだともいえるのかもしれません。