モデルが作成されたらそのモデルがどれだけの精度をもってターゲットを予測をできているのか確認します。また、どのような特徴量がどのように予測に効いているのか、改善の余地の有無などを確認して総合的にそのモデルを業務で使っていけるか判断します。
このセクションではモデルを解釈する際の精度とインサイトの見方について解説します。
精度を表すアウトプット
精度の指標
モデルの精度はビジネスでのKPIに合致した指標で確認を行います。例えば実際の値との絶対値誤差が重要な場合と、誤差率が重要な場合では見る指標が異なります。
「モデル」タブの「リーダーボード」から指標を切り替えて各モデルを比較することができます。
図1. モデルの精度指標の選択
以下が時系列モデリングでよく使われる精度指標です。
指標
|
意味
|
特徴
|
例
|
MAE
|
平均絶対値誤差
|
ターゲットの分散が大きい場合(非常に大きな値や小さな値などが混在する場合)モデルの精度が感覚的にわからない
|
1000 (平均すると予実の誤差が1000)
|
MAPE
|
平均誤差率
|
感覚的に非常にわかりやすい
一方、ターゲットが負や0を取る場合評価指標として利用できない
|
6.8% (平均すると予実の誤差が6.8%)
|
MASE
|
モデルのMAE / BaselineモデルのMAE (Baselineモデルと比較した相対平均誤差率)
|
MAEが感覚的に評価しにくい場合、BaselineモデルのMAEと比較することで感覚的に評価しやすくなる
|
0.66 (モデルのMAEがBaselineモデルと比較すると2/3)
|
表1. 時系列モデリングでよく使われる精度指標
時系列の予測値・実測値と残差
モデルの精度を確認する際、予測値と実測値を可視化して比較するとうまく予測ができていないポイントが明白になりモデルの改善に結びつくことがあります。例えば実測値では売上が急に跳ね上がっているのにそれが予測できていない日があった場合、特徴量として入れ忘れているイベント変数があるかもしれません。
各モデルの「評価」から「時系列の精度」の「予測値&実測値」を選ぶことでバックテストの可視化や予測距離の選択、トレーニング期間の時系列の表示・非表示を行うことができます。
トレーニング期間で精度の良いモデルを選ぶと過学習している可能性があるため、バックテストなどからモデルの良し悪しを判断する必要があります。
図2. バックテストでの予実の確認
また、「残差」を選択することで、誤差のパターンなどを見つけモデルの精度向上へのインサイトを得ることができます。
右側に表示されるダービン=ワトソン統計量は0から4の値をとり、2に近いほど残差の自己相関が小さいことを示します。0に近い場合は正の自己相関が、4に近い場合は負の自己相関が大きいことを示し、自己相間が大きい場合、変数追加やモデリングの工夫でより良いモデルを作れる可能性があります。
図3. 予測値と実測値の残差の確認
【複数時系列】系列の精度
複数時系列の場合、系列ごとにドリルダウンして精度を比較したり予測値と実測値を可視化することでモデル改善のヒントを得ることができます。
「系列の精度」の画面で「精度スコアを計算」を実行することで系列ごとの精度を確認します。
また、計算後にアクティブになる
ボタンを押すことで系列ごとの「時系列の精度」のインサイトに表示を切り替えることができます。
図4. 複数時系列の精度の確認
リフトチャート
「リフトチャート」タブではモデルの予測値を昇順に並び替えてグループ化し、それぞれのグループにおける予測値と実測値の平均を可視化できます。精度予測とモデルの判別能力の両方をキャプチャでき、直感的に領域別の精度が分かるというメリットがあります。特に、常に予測が上振れ/下振れしているなどのバイアスがないか、右端/左端で大きく外れていないかなどに注目します。
図5. リフトチャート
安定性
時系列モデリングでは時間軸が進むにつれ、トレンドも変化して行くことがあります。「安定性」タブでバックテストごとの検定結果を可視化し、検定期間が変わっても安定して精度が出ているか確認します。
検定期間はホールドアウト、バックテスト1、バックテスト2の順に過去にさかのぼっていきます。
精度指標はリーダーボードで指定されているものになります。精度指標によっても安定性のグラフは形が変わることがあるのでどの指標を使って見ているか意識することが大事です。右側の「予測距離」を選択することで予測距離ごとの安定性を表示することもできます。
図6. 安定性の確認
予測距離ごとの精度
一般に未来になるほど予測は当てにくくなりますが、どこまでの未来なら精度を出せるのか把握できれば、ビジネスにおいてモデルを適用する範囲も明確にすることができます。「予測距離ごとの精度」のタブで、モデルの予測する地点が未来になるにつれ予測精度がどれほど変化するかを確認しましょう。
図7. 予測距離ごとの精度
モデルの中身のインサイト
特徴量のインパクト
影響度の大きい特徴量の詳細を加える/掘り下げることで更にモデルの精度が上がる場合もあります。特徴量のインパクトで各特徴量の予測への影響度を確認しましょう。
「元の特徴量」ではインポートしたトレーニングデータに存在していた特徴量ごとにインパクトを可視化します。特徴量名の横にある数字はその特徴量から派生しインパクトのあった特徴量の数を表します。カーソルを合わせることでその派生特徴量の内訳を確認できます。
図8. 特徴量のインパクト(元の特徴量)
派生した特徴量を選ぶと、派生特徴量ごとにインパクトを可視化できます。
図9. 特徴量のインパクト(派生した特徴量)
特徴量の予実と作用
「評価」の「特徴量ごとの予実」では、特徴量の値ごとに予測精度の確認ができます。
例えば以下の図10では祝日ではない日は予測と実測がほぼ一致していますが、祝日では予実が乖離していることがわかります。祝日にもいろんなタイプがありますので、連休であるとか年末年始のような特別な時期であるなどを加味した特徴量を作成すると良いかもしれません。
また、右下のヒストグラムをみると祝日のデータ量のほうが圧倒的に少ないことがわかりますので、祝日のデータ量を増やすことで精度を改善できる見込みがあることがわかります。
図10. 特徴量ごとの予実
特徴量が変化することでモデルの予測値にどれだけ影響を与えるかを知ることはモデルへの納得感や理解に繋がりますし、そこから新しいインサイトを得られる可能性もあります。
「解釈」の「特徴量ごとの作用」をみることで特徴量の変化による部分依存の形から個々の特徴量とターゲットとの関係性を確認できます。これは学習に使ったデータのうち、特定の特徴量の値のみを変化させたデータをそのモデルで予測させると平均的にどのような予測結果になるかを可視化した結果が表示されます。
図11はこのモデルでは曜日が金曜(4)、土曜(5)、日曜(6)であれば、図12は5日、15日、25日と5のつく日は売上予測値が大きくなることを示しており、これらの事象が現場の感覚通りだとモデルへの納得感へ、初めて知る事実なら新たなインサイトへと繋がります。
図11. 曜日の特徴量ごとの作用
図12. 日付の特徴量ごとの作用