目次

精度検証結果(ボニートくん)

概要

教師あり学習ノードはモデル構築と合わせて、その精度検証も自動で行います。

「精度検証結果」はその結果をまとめたものであり、モデル構築後は最優先に確認すべきと言えます。

※オートML、マニュアルML、アンサンブルML、予測精度を評価、の実行結果として確認できます。

精度指標

まず最初に確認すべきは、構築したモデルがよい性能を期待できるか、だと考えます。

設定のオプション「最も重視する指標」で設定した指標が一番大きく表示され、その評価はトップのテキストでも表現されます。

精度ゲージの見方

ゲージは3色に分かれ、針がどこを指しているかで評価を瞬時に把握できます。

  • 緑:Great!
  • 黄:まぁまぁ
  • 赤:低い

精度ゲージの閾値の定義

緑、黃、赤を分ける閾値はデータによって異なります。大まかに記載すると下記の通り。

  1. 赤と黃の境目:雑に予測した場合の予測精度
  2. 黃と緑の境目:MAXの精度と上記1との中間の値

つまり「低い」評価を受けたモデルは、わざわざnehanを使って構築したのにも関わらず、適当に予測した場合より劣っているという屈辱的な評価である点注意してください。

詳細の定義については下記の通り

  • カテゴリ分類モード
    • 予測値を全て同じカテゴリとした場合、どのくらい当たるか?を算出
    • 例えばデータの目的変数に、”生存”が90行、”死亡”が10行の場合、適当に全部生存と予測すると90%正解する
    • ゆえに、90%を下回る精度は「低い」、95%以上が「高い」と評価される
  • 数値予測モード
    • 予測値を全て目的変数の平均値とした場合、どのくらいの誤差がでるか?を算出
    • 例えば上記の場合、平均で10%誤差だとし、それを超えると「何も考えず平均値を予測値としたほうがマシ」という評価になる
    • ゆえに、10%誤差を上回る精度は「低い」、5%誤差を下回れば「高い」と評価される

精度指標の定義(カテゴリ分類モード)

予測結果と実際の値の混合行列を例に上げ、各指標の定義を記載

目的変数 “1”と予測 “0”と予測
実際は”1″
実際は”0″
  • 正解率[Accuracy]
    • 予測がどれだけ正解したか?
    • = (① + ④) / (① + ② + ③ + ④)
  • 再現率[Recall]
    • 実際に正であったもののうち、どれだけ正と予測できたか?
    • = ① / (① + ②)
  • 適合率[Precision]
    • 正と予測したものが、どれだけ正しかったか?
    • = ① / (① + ③)
  • F 値[F1]
    • Recall と Precision を均等に評価した指標
    • = 2 * Recall * Precision / (Recall + Precision)

精度指標の定義(数値予測)

  • 平均絶対相対誤差[MAPE]
    • 予測が実測に対して何%くらいはずれるか?
    • 各行ごとに「|予測値 – 実測値|/実測値」を算出し平均した値
  • 平均絶対誤差[MAE]
    • 予測が実測に対してどのくらいはずれるか?
    • 各行ごとに「|予測値 – 実測値|」を算出し平均した値
  • 二乗平均平方根誤差[RMSE]
    • 各行ごとに(予測値-実測値)^2を算出して平均をとり、その平均値に対してルートをかけた値 
    • この指標は誤差が大きい行があればあるほど、値が大きくなる
    • つまり、誤差を厳しく評価できる指標である

過学習リスク

定義

過学習とは、予測モデルがデータの細かい規則性を学習しすぎた状態のことを言います。

過学習が起きると、教師あり学習ノードで算出した精度が別のデータ(未知のデータ)で再現しない恐れがあります。

このリスクを10段階で評価したものを過学習リスクと呼び、大きくなればなるほど過学習している可能性が高いと言えます。

算出方法

訓練データで構築した予測モデルにて、訓練データ、検証データをそれぞれ予測し、精度の乖離度合いにてリスクを算出します。

乖離が少なければ、過学習リスクは低くなり、逆に乖離が激しいとリスクが高まります。

リスクが高い場合は

よくあるケースとして

  • 訓練データが少なすぎる
  • 最適な機械学習パラメータなどを探索しすぎている

が挙げられます。

これらは設定の「処理モード」の”カスタム”設定にてコントロールができ、調整することでリスクが下がる可能性があります。

混合行列

予測の正解状況をより細かく観察できます。

予測を外したケースだと例えば、”x”と予測したけど(横)実際は”y”(縦)のデータがいくつor何%あるか、が確認できます。

どこで予測が外れているのか、を認識することで、精度改善のヒントを得られる可能性があります。

数値予測モードの場合

目的変数(実測値)の最小値から最大値までの範囲を5等分し、各範囲ごとに予測と実測のデータ数を比較できるようにしています。

精度分解

分類であればカテゴリごと、数値予測であれば範囲ごとに、指標を比較できます。

例えば”生存”と”死亡”の2値分類を予測する場合、”生存”と予測できないのか?それとも”死亡”と予測できていないのか?を把握することが可能。

学習曲線

ブースティングタイプの学習アルゴリズム「XGBoost」「LightGBM」のみ表示される補助情報です。

上記の「過学習リスク」と近しい情報を得ることができ「訓練データの精度」と「検証データの精度」が右に行くとどれだけ乖離するかが注目点です。

乖離が激しいと過学習のリスクが高いと言えます。

この記事は役に立ちましたか?
はい いいえ
この記事は役に立ちましたか?
はい いいえ