---
title: "分類プロジェクトの評価でAUCよりも便利なFVE Binominal｜DataRobot機械学習モデル評価指標解説"
description: "今回は数ある機械学習のモデル精度の評価指標の中でも私のお気に入りであるにも関わらず前回の最適化指標ブログでは取り扱うことができなかったFVE  Binominalについて紹介したいと思います。分類モデルの精度を単一の指標で測る上ではトータルバランスで現時点最強の評価指標だと考えています。これまで分類問題ではとりあえずAUCを使っていた人もこのブログをきっかけにFVE  Binominalを利用いただければ幸いです。"
url: "https://www.datarobot.com/jp/blog/fve_binominal/"
authors:
  - "小川 幹雄, DataRobot Japan <br>VP, Japan Applied AI Experts"
published: "2024-04-05"
updated: "2024-04-22"
category: "データサイエンス"
language: "ja"
---

# 分類プロジェクトの評価でAUCよりも便利なFVE Binominal｜DataRobot機械学習モデル評価指標解説

DataRobot Japanの副社長をしています小川です。

今回は数ある機械学習のモデル精度の評価指標の中でも私のお気に入りであるにも関わらず前回の[最適化指標ブログ](https://www.datarobot.com/jp/blog/model-optimization-metrics-and-evaluation-indicators/)では取り扱うことができなかった[FVE  Binominal](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#fve-deviance-metrics)について紹介したいと思います。分類モデルの精度を単一の指標で測る上ではトータルバランスで現時点最強の評価指標だと考えています。これまで分類問題ではとりあえず[AUC](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#aucweighted-auc)を使っていた人もこのブログをきっかけにFVE  Binominalを利用いただければ幸いです。

## 機械学習モデル評価指標の重要性

機械学習モデルを構築する際にはモデルをどのようにフィッティングさせるかを基準に最適化指標および損失関数を決めていきます。多くの場合、その最適化指標を最も小さくしたモデルを選択することによって一番精度の良いモデルを選ぶというアプローチを行います。ただ、コンペティションのように争う指標が決まっているのであれば、その指標を基に判断するだけですが（実際には共通の目的で争うため、コンペは全く違う血肉を争う戦いがあります）、実務で機械学習を行う場合にはどの評価軸でモデルを比較するかの決定を下すことも重要となります。

評価軸が決まった後には、精度が最終的に合格かを判定する上では、きちんとした検証基準を置く必要があります。ただし、厳密な検証は手間もかかるので、実務者はとりあえず作成したモデルが**「大体どれくらい精度がいいものか」**知りたいということは多々あります。二値分類問題においては、多くの方がAUCをこの用途で利用しているかと思います。「AUCが0.5であれば完全にランダムなモデルと変わらない。AUCが0.8を超えていたら相当いいモデルとなっている。0.9を超えると精度が良すぎるのでリーケージを疑いたい」こういった話を聞いてモデルの評価基準にしている方は少なくありません。ただAUCには向いていないケースもあり、その評価指標の本質を理解していないとよもやの事故に遭う可能性もあります。

### 機械学習モデル評価指標「AUC(Area Under the Curve)」とは

AUCはArea Under the Curveを略したもので、一般的には[ROC](https://docs.datarobot.com/ja/docs/modeling/analyze-models/evaluate/roc-curve-tab/roc-curve.html#evaluate-a-model-using-the-roc-curve)（Receiver  Operating Characteristic）曲線の下の面積（別のパターンとして[PR曲線の下の面積](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#area-under-pr-curve)をとったものも存在しますが、本ブログではROC-AUCを以降AUCとして表記します）を表したものとなっています。

#### AUC(Area Under the Curve)の性質

ROC曲線はy軸をリコール、x軸を偽陽性率（フォールアウト）としたときに、モデルが取れる組み合わせをプロットしたときに描かれる曲線となっています。AUCの定義から完璧なモデルの場合にはリコールが1で偽陽性率が0となり、面積は1×1=1となります。逆にランダムなモデルを作るとROC曲線はリコール、偽陽性率（0,0）とリコール、偽陽性率（1,1）を結ぶ直線となり、AUCは三角形の面積の通り、1x1x0.5=0.5となります。この性質からAUCはプロジェクトが違ってもモデル精度をざっくりと比較でき、多くのプロジェクトにおいてモデルの精度を簡易的に測る上で頻繁に利用される指標となっています。ちなみに金融業界の与信モデルの評価指標としてよく使用されるAR値は2AUC-1と同義のため、AR値もAUCと同じ性質を持っています。

### 機械学習モデル評価指標「AUC(Area Under the Curve)」の欠点

では、機械学習モデル評価指標であるAUCの欠点について解説します。

AUCは[リコールと偽陽性率](https://www.biostat.wisc.edu/~page/rocpr.pdf)（１）のみを見ていることから、結果として予測値順に並べた時の精度だけを見ていることになり、予測値と実測値の乖離をみていません。そしてターゲット比率が0.1%を切るようなプロジェクトにおいては、AUCが簡単に0.8を超えるなど高くなる傾向があります。AUCが高いのに実際に運用すると、思った以上にパフォーマンスが出ない（ビジネス指標における効果が出ない）ということがあります。

#### AUC(Area Under the Curve)活用時の失敗事例

AUCが予測の順位しか見ないという特性を知らずに使用すると、思わぬ事故に遭遇する可能性があります。例えば、「正例が少ないためダウンサンプリングしたデータセットでモデリングを行い、高いAUCが得られた。しかし、本番での運用では予測値と実際の値に大きな乖離が生じた。予測の乖離があるにもかかわらず、AUCは悪化していなかったため、問題に気付くのに時間がかかった」という事例が挙げられます。

#### AUC(Area Under the Curve)失敗事例の検証

このような現象は簡単に試せるため、元のデータにダウンサンプリングを施し、AUCスコアの変化を観察してみましょう。

![AUC(Area Under the Curve)失敗事例の検証](https://www.datarobot.com/jp/wp-content/uploads/sites/11/2024/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-04-02-18.15.54-1024x879.png)![予測値と実測値の乖離も見れるリフトチャート](https://www.datarobot.com/jp/wp-content/uploads/sites/11/2024/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-04-02-18.13.27.png)

AUCがホールドアウトでも変化しないのがわかるかと思います。 ここで予測値と実測値の乖離も見れるリフトチャートを同じモデルで見て行きましょう。

![学習データ（交差検定）](https://www.datarobot.com/jp/wp-content/uploads/sites/11/2024/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-04-02-18.18.29-1024x272.png)

学習データ（交差検定）では予測の青のラインと実測のオレンジのラインがうまくフィットしているのが分かります。ただ、ホールドアウトでは、予測の青のラインは正しく右肩上がりになっていることから傾向は捉えているように見えますが、予測値が大きく乖離しています。AUCはホールドアウトでも下がっていませんでしたが、これはAUCが順列を見ているという性質から説明でき、実はリフトチャートでも右肩上がりになっていたことからこのモデルは順列としては正しいものでした。

**予測値は大幅に乖離しても順列だけはあっていれば問題ない**AUCは、マーケティングのターゲティング分析のように上位1万件にDMを送付するという予測値そのものに注目しない分析では問題ありません。ただ、一件当たりのDMのコストを考えて予測CV率がx以上に送りたいなどを考えている、予測値に対して金利を設定するなどの場合には、全く役に立たないモデルになっているリスクを内包しています。

※ちなみにDataRobot内で実施する[スマートダウンサンプリング](https://docs.datarobot.com/ja/docs/modeling/build-models/adv-opt/smart-ds.html)は名前にスマートがついているように、ダウンサンプリングした比率のウェイトを入れることによって、上記の事象が発生するのを防ぐ仕組みが実装されております。

### 機械学習モデル評価指標「FVE (Fraction of variance) Binominal」とは

AUCの欠点についてここまで記載していきましたが、ここからはFVE  Binominalについて紹介していきます。

#### 「FVE (Fraction of variance) Binominal」の特徴

以前の[ブログ](https://www.google.com/url?q=https://www.datarobot.com/jp/blog/model-optimization-metrics-and-evaluation-indicators/&sa=D&source=docs&ust=1712027888959891&usg=AOvVaw0oaJScj0DHPCqfABr9Ry_M)でも二値分類においては最適化指標はLoglossが最強と書かせていただきましたが、評価指標で使う上ではターゲットの比率によって値が変わることからモデルのざっくりとした当てはまりの良さを考える上では不向きでした。Loglossが1を下回っているから必ずしも当てはまりの良いモデルができたとは限りません。このLoglossの評価関数としての欠点を解消したのがFVE  Binominalとなります。

#### 「FVE (Fraction of variance) Binominal」考え方と機械学習モデル指標として優れている点

FVE Binominalは以下の式で表現することができます。

FVE Binominal = 1 – Logloss(Model X)/Logloss(Majority Class Classifier)

考え方はシンプルで、ひたすらターゲットのクラス比率に合わせて予測値を出すモデル(Majority Class Classifier)と比較してどれだけそのモデルが改善できているかを表現しています。FVEは[説明されたdeviance（尤離度）の割合](https://stats.stackexchange.com/questions/201339/what-if-explained-deviance-is-greater-than-1-0-or-100)と考えることができます。

仮に作成したモデルが単純にターゲット比率に合わせた予測値を出すだけのモデルと同様であれば、Logloss(Model X)/Logloss(Majority Class Classifier) = 1となり、FVE  Binominalは0となります。仮に完璧なモデルができた場合には、Loglossは0となるため、FVE  Binominalは1となります。よくAUCで完全ランダムなら0.5で完璧なモデルなら1という表現がありますが、FVE  Binominalでも同じようにランダムなら0で完璧なら1と考えることができます。また、Loglossをベースにすることによって、より予測値の期待値的にうまくいっているのかという部分にフォーカスした評価指標となっていますので、順列だけでなく予測値そのものにも注目するケース（貸し倒れ確率と合わせて金利テーブルを作成する場合など）ではとても有用な指標となります。

先ほどAUCではホールドアウトでも交差検定と比較してそこまで値の変化がしなかったものをFVE Binominalでみていくとホールドアウト部分がマイナス(-0.4361)になっているのが確認できます。ここから予測値と実測値がランダム以上に大きな乖離を持っていることがわかります。

![FVE Binominal](https://www.datarobot.com/jp/wp-content/uploads/sites/11/2024/04/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2024-04-02-18.13.43.png)

### 機械学習モデル評価指標「FVE (Fraction of variance) Binominal」の精度

AUCだとみなさまの感覚として、0.75超えてきたならいいモデルで0.9超えたら怪しいという感覚（ここまでのブログからこの感覚が危険だということを理解した人も多いかと思いますが）を聞いたことがある人もいると思いますが、DataRobotのグローバルのデータサイエンティストの中で、FVE Binominalは以下のような基準で使われています。

———

プロジェクトが終了したら、最適なモデルをFVE Binomialで見てみましょう。

– FVE Binominal が0に近い＝機械学習には不向きなユースケース

– FVE Binominal > 0.25 = 良いユースケース

– FVE Binominal が1に近い = ターゲットリーケージを疑うべき状態

———

これは、DataRobotのグローバルで活躍するデータサイエンティストの経験則ですが、FVE Binominalが0.15など0から0.25の間の時はいくつかの解釈ができ、まだモデルの説明力をあげられる段階であり、チューニングやデータを追加すれば精度をあげられる可能性もありますし、ランダムよりは良いので、用途によっては問題ない精度ということもありえます。あくまでFVE Binominalもざっくりと当てはまり具合を見るものであって、犬と猫の分類のように簡単な問題であれば1に近づきますし、金融市場分析などで0.1を超えることも難しいということは覚えておいてください。

### 機械学習モデル評価指標「FVE (Fraction of variance) Binominal」の注意点

FVE Binominalの注意点をいくつかあげるとすると算出ロジックのベースがLoglossのため、Loglossと同じように誤ラベルの影響を大きく受けます。実際にはTrueのものがFalseとなっていた時にモデルが99%Trueと予測できていたにも関わらずデータ上はFalseのためLoglossが大きくなります。そのため、誤ラベルがある程度紛れてしまうような分析では、過小にモデルが評価される可能性があることには注意が必要です。またAUCでは順列を見ていて、FVE Binominalではスコアを見ているという性質からですが、仮にモデルの活用が予測値の上位x件を抽出した上でアクションを実行するという順列のみを見るケースではAUCを利用する場合もあります。FVE Binominalでは上位x件に含まれないデータに対するスコアのつき方も評価しているので、ビジネスアクションと関係ない部分が評価に含まれているためです。そして1番の欠点が知名度だと思います。このFVE Binominalは知名度がまだまだ低いため、初見の人には通じない可能性があります。ただAUC 0.8というのがデータサイエンティスト以外に正しく伝わるかというとそこに疑問は残りますので、みなさんがFVE Binominalの良さを広めて知名度拡充に努めていただけると助かります。

### 別のFVEシリーズ

今回、分類問題の鉄板損失関数Loglossを正規化したFVE Binominalを紹介させていただきましたが、連続値問題（回帰問題）においてはよいモデルを作るにはターゲット分布によって損失関数を選択する必要があります。そして損失関数で[poissonやganmaやtweedie](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#deviance-metrics)を選んだ際にはLoglossと同じようにモデルの当てはまり具合がわからず、結局[リフトチャート](https://docs.datarobot.com/ja/docs/modeling/analyze-models/evaluate/lift-chart.html)や[残差チャート](https://docs.datarobot.com/ja/docs/modeling/analyze-models/evaluate/residuals.html#residuals)を見て視覚的に判断する必要があった経験をされた方も多いかと思います。実はFVEの考えは、poissonやganmaやtweedieにも応用でき、DataRobotではそれぞれ[FVE poisson、FVE ganma、FVE tweedie](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#fve-deviance-metrics)として評価指標が用意されています。定義はいずれも、

1 – (error / baseline model error)となり、0だとベースラインモデルと同じで1だと完璧なモデルを意味します。0.25を超えれば良いモデルという感覚もそのまま利用できます。連続値問題ではR^2を利用する方が多いかと思いますが、FVEは[R^2](https://docs.datarobot.com/ja/docs/modeling/reference/model-detail/opt-metric.html#r-squared-r2weighted-r-squared)と非常に似た性質を持っています。ただ、logリンク関数を利用したモデル（DataRobotでは最適化指標にpoissonやganmaやtweedieが選択された際のモデル）にも対応できる点でも便利な評価指標となっています。

### AUCより優れた機械学習モデル評価指標「FVE (Fraction of variance) Binominal」を有効活用するコツ

予測値へのアクションにおいて、予測確率が重要なウェイトを占めるテーマにおいては、ARスコアやAUCよりもはるかに有用なFVE Binominalをぜひ有効活用してみてください。

慣れてくるとFVE Binominalで大体の[予測分布の形](https://docs.datarobot.com/ja/docs/modeling/analyze-models/evaluate/roc-curve-tab/pred-dist-graph.html)が想像できるようになり、AUCよりも鮮明にモデルの当てはまり度を単一の数字で想像できるようになります。またモデル運用において、AUCは変わってないが、FVE Binominalが悪化しているというケースに当たった際には、それぞれの性質を加味し、ターゲットの比率が変わっている可能性があるという部分に気づくきっかけにもなります。

出典

（１）The Relationship Between Precision-Recall and ROC Curves（Jesse Davis/Mark Goadrich）
