予測精度を評価
正解の列と予測の列を見比べて、どれくらい当たっているかを数字にします。 モデルで予測値算出の後ろにつなぐのが基本の使い方ですが、nehan の外で作った予測値でも、2 つの列がそろっていれば評価できます。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | 正解の列と予測の列を持つデータ |
| 精度サマリ | 指標と値の 2 列。選んだ指標ごとに 1 行と、精度評価の 1 行 |
| データ | 入力データに、当たり外れを表す列を 1 つ足したもの |
ボニートくんの口が別にあります。 ノードには出ませんが、学習の結果はここを通って精度検証結果 / 精度改善の余地として読めます。
Spark エンジンでは動きません。
設定項目
- 予測モードを選択必須
- カテゴリ予測(既定)か数値予測。これを変えると、下の欄で選べる列の型も、精度指標の顔ぶれも変わりますので、先に決めてください。モデルを作ったノードで選んだものと同じにします。
- 実測値を選択必須
- 正解が入っている列を 1 つ。カテゴリ予測では文字列列と数値列、数値予測では数値列だけが選べます。
- 予測値を選択必須
- 予測が入っている列を 1 つ。選べる型は実測値と同じです。モデルで予測値算出からつないだなら予測値列です。
- 説明変数を選択必須
- モデルを作ったときに使った説明変数の列を複数選びます。指標の数字そのものには使われません。どの列のせいで予測が外れているかを調べる精度改善の余地のために要ります。
- 精度指標を選択必須
- 複数選べます。選んだ分だけ精度サマリの行が増え、先頭に選んだ指標がゲージになります。カテゴリ予測は正解率[Accuracy](既定)/ F値[F1] / 再現率[Recall] / 適合率[Precision]、数値予測は平均絶対相対誤差[MAPE](既定)/ 平均絶対誤差[MAE] / 二乗平均平方根誤差[RMSE]です。
オプション
- グループごとに精度を算出する
- 列を選ぶと、その値ごとにデータを分けて別々に精度を出します。店舗ごと・商品ごとに当たり方が違わないかを見るときに使います。値が空の行も 1 つのグループとして残ります。
指標の意味
| 指標 | 答える問い | 良いのは |
|---|---|---|
| 正解率[Accuracy] | 予測がどれだけ正解したか | 大きいほう |
| 再現率[Recall] | 実際に正であったもののうち、どれだけ正と予測できたか | 大きいほう |
| 適合率[Precision] | 正と予測したものが、どれだけ正しかったか | 大きいほう |
| F値[F1] | 再現率と適合率を均等に評価した値 | 大きいほう |
| 平均絶対相対誤差[MAPE] | 予測が実測に対して何 % くらいはずれるか | 小さいほう |
| 平均絶対誤差[MAE] | 予測が実測に対してどのくらいはずれるか | 小さいほう |
| 二乗平均平方根誤差[RMSE] | 大きく外した行をきつく数えた、はずれの大きさ | 小さいほう |
計算式は精度検証結果にまとめてあります。
出力の中身
精度サマリ
指標と値の 2 列です。選んだ指標が 1 行ずつ並び、最後に精度評価の行が付きます。精度評価に入るのは Great! / まぁまぁ / 低い のどれかで、先頭に選んだ指標のゲージの色と同じ判定です。
グループごとに精度を算出するを使うと、左側にグループ列が足され、グループごとに同じ並びが繰り返されます。
データ
入力データをそのまま残し、列を 1 つ足します。
| 予測モード | 足される列 | 中身 |
|---|---|---|
| カテゴリ予測 | 正誤 | 実測値と予測値が同じなら正、違えば誤 |
| 数値予測 | 絶対誤差 | 実測値と予測値の差の大きさ。符号は落ちます |
エラーと対処
どのエラーも、設定を直して実行し直せば消えます。
カテゴリ予測で使えない精度指標
カテゴリ予測の場合は精度指標を正解率、F値、再現率、適合率から選択してください。
直し方 — 正解率・F値・再現率・適合率から選びます。予測モードを切り替えた直後に、前のモードの指標が残っていると出ます
数値予測で使えない精度指標
数値予測の場合は精度指標を平均絶対誤差、二乗平均平方根誤差、平均絶対相対誤差から選択してください。
直し方 — 平均絶対誤差・二乗平均平方根誤差・平均絶対相対誤差から選びます
実測値と予測値がそろっている行がない
実測値及び予測値から欠損値を除外した結果、データが空になったため精度指標を計算することができませんでした。
直し方 — 実測値か予測値のどちらかが欠損している行は評価に使えません。欠損値処理で埋めるか、手前の絞り込みを見直します
よく使う例
1. 作ったモデルの当たり具合を数字にする
お題 — モデルがどれくらい当たるのか、1 つの数字で言いたい
入力 — モデルで予測値算出の出力(正解の列も残っているもの)
設定 — 予測モードはカテゴリ予測、実測値に正解の列、予測値に予測値列、精度指標は正解率[Accuracy]
出力 — 精度サマリに正解率と精度評価の 2 行が出る
2. 見逃しの少なさを測る
お題 — 解約しそうな人を取りこぼしていないか知りたい
入力 — 例 1 と同じ
設定 — 精度指標に 再現率[Recall] と 適合率[Precision] の 2 つを選ぶ
出力 — 2 つの指標が並び、取りこぼし(再現率)と空振り(適合率)のどちらに寄っているかが分かる
3. 店舗ごとに当たり方を比べる
お題 — 全体では当たっているが、店によって差があるのではないか
入力 — 店舗コード列を持つ予測結果
設定 — オプションのグループごとに精度を算出するに店舗コードを指定
出力 — 精度サマリが店舗ごとの塊になり、当たっていない店舗が見つかる
4. はずれの大きさを金額のまま言う
お題 — 売上予測が平均でどれくらいずれるのか知りたい
入力 — 実売上と予測売上の列を持つデータ
設定 — 予測モードは数値予測、精度指標に平均絶対誤差[MAE]
出力 — 精度サマリに金額そのままの単位で平均のずれが出て、データの出力には行ごとの絶対誤差列が付く
5. どの列のせいで外れているかを探す
お題 — 精度が上がらない原因を知りたい
入力 — 例 1 と同じ
設定 — 説明変数を選択に、モデルで使った列をすべて指定する
出力 — 精度改善の余地に、精度を下げている列が上から並ぶ