精度が分類モデルを評価するための最良の尺度ではないのはなぜですか?


107

これは、ここで間接的に複数回尋ねられた一般的な質問ですが、信頼できる答えは1つありません。参照のためにこれに対する詳細な答えを持っていることは素晴らしいことです。

すべての分類の中で正しい分類の割合である精度は、非常に単純で非常に「直感的な」尺度ですが、不均衡なデータに不十分な尺度になる場合があります。なぜ私たちの直感がここで私たちを誤った方向に導き、この測定に他の問題がありますか?

回答:


112

他の回答のほとんどは、不均衡なクラスの例に焦点を当てています。はい、これは重要です。ただし、バランスの取れたクラスであっても正確性には問題があると私は主張します。

フランク・ハレルは自身のブログにこのことについて書かれています:予測対分類し、分類精度及びその他の不連続不適切な精度スコアリングルールによる被害

基本的に、彼の主張は、新しいサンプルの各クラスの確率を出力すると、運動の統計的要素が終了するということです。これらの予測確率を0-1分類にマッピングします。これを超えるしきい値を選択して、新しい観測を1対0として分類することは統計の一部ではなくなります。これは、決定コンポーネントの一部です。そして、ここでは、モデルの確率的出力が必要ですが、次のような考慮事項も必要です。(p^,1p^)

  • 新しい観察結果をクラス1対0として扱うことを決定した結果はどうなりますか?その後、すべての1に格安のマーケティングメールを送信しますか?または、大きな副作用を伴う侵襲性のがん治療を適用しますか?
  • 「真の」0を1として、またはその逆に扱うことの結果は何ですか?顧客にチェックを入れますか?誰かに不必要な治療を施しますか?
  • 私の「クラス」は本当に離散的ですか?それとも、実際には臨床的な閾値が単なる認識上の近道である連続体(例えば、血圧)がありますか?もしそうなら、私が今「分類」しているケースはどれくらい閾値を超えていますか?
  • または、クラス1になる可能性が低いが肯定的な確率は、実際には「より多くのデータを取得する」、「別のテストを実行する」ことを意味しますか?

決定の結果に応じて、異なるしきい値を使用して決定を下します。アクションが侵襲的手術である場合、アクションが2つのアスピリンを推奨する場合よりも、患者が何かに苦しんでいると分類する確率がはるかに高くなります。または、2つのクラス(病気と健康)しかありませんが、3つの異なる決定を行うこともできます。 。

予測された確率を評価するための正しい方法でない、しきい値とそれらを比較するためにそれらをマッピングする閾値に基づいて、次いで形質評価分類。代わりに、適切な使用する必要があり。これらは、予測確率と対応する観測結果を損失値にマッピングする損失関数であり、真の確率によって期待値が最小化されます。考え方は、スコアリングルールの期待値の推定値として、複数の(最良:多くの)観察された結果と対応する予測クラスメンバーシップ確率で評価されたスコアリングルールの平均を取ることです。(p^,1p^)0 1 0 1 P 1 - P (0,1)(0,1)(p,1p)

ここでの「適切な」には正確に定義された意味があることに注意してください- 不適切なスコアリングルール適切なスコアリングルール、そして最終的に厳密に適切なスコアリングルールがありますスコアリングルール自体は、予測密度と結果の損失関数です。適切なスコアリングルールは、予測密度が真の密度である場合に予想される最小化されたスコアリングルールです。厳密に適切なスコアリングルールは、予測密度が真の密度である場合にのみ予想される最小化されるスコアリングルールです。

フランク・ハレルノート、精度が不適切なスコアリング・ルールです。(より正確には、精度はスコアリングルールでさえありませんバイナリ分類設定で精度が不適切なスコアリングルールであるという私の答えを参照しください)確率不公平なコイン。すべてを最初のクラスとして分類し、結果が2番目のクラスになる可能性がある40%の確率を完全に無視すると、精度が最大になります。(ここでは、バランスの取れたクラスでも精度に問題があることがわかります。)適切なは、予測を優先します。(0.6,0.4)0.6 0.4 )、 1 0 (0.6,0.4)(1,0) 1つ期待しています。特に、しきい値の精度は不連続です。しきい値を少しだけ移動すると、1つ(または複数)の予測がクラスを変更し、全体の精度を離散量で変更する場合があります。これはほとんど意味がありません。

詳細については、上記にリンクされているフランクの2つのブログ投稿と、フランクハレルの回帰モデリング戦略第10章を参照してください。

(これは私の以前の回答から恥ずかしがり屋に書かれています。)


編集。結果の尺度として精度を使用する場合の例に対する私の答えは、誤った結論につながることを願っています


6
私が理解しているように、@ Tim Frankのポイント(彼は私たちのサイトや他の場所で多数の回答で議論した)は、分類アルゴリズムが確率を返さない場合、それはゴミであり、使用すべきではないということです。正直に言うと、一般的に使用されるアルゴリズムのほとんどは確率を返します。
アメーバ

6
過去の観察結果を取得し、上記の点(誤判定のコストなど)を考慮せずに分類のみを出力するアルゴリズムは、統計的側面と決定的側面を圧縮すると言います。それは、小さなリーグの野球チーム、たくさんの建築材料、または自分だけを輸送するかどうかを最初に尋ねずに、特定のタイプの車をあなたに勧めている人のようなものです。そのため、このようなアルゴリズムはゴミになると思います。
ステファンKolassa

8
私は答えを書くつもりでしたが、その必要はありませんでした。ブラボー。私はこれを統計的モデリングと意思決定の間の「懸念の分離」として生徒と話します。このタイプの概念は、エンジニアリング文化に深く根ざしています。
マシュードゥルーリー

8
@chainD:分類子(最も正確なものであることに注意してください)が「このサンプルの全員が健康である」と言う場合、どの医師またはアナリストがストーリーにもっとあると信じますか?最終的にアナリストに電話をかけることは同意しますが、95%/ 5%の予測のような残留不確実性に注意を引くものよりも、「誰もが健康」であることはアナリストにとってはるかに有用ではありません。
ステファンKolassa

11
@StephanKolassaの回答とコメントは素晴らしい。他の誰かは、あなたがどの文化に属しているかによって、これがどのように表示されるかに違いがあることを暗示しています。これは実際にはそうではありません。文学を理解するのが面倒な分野とそうでない分野があります。天気予報は、例えば、最前線に立っていると、少なくとも1951年以来、予報の精度を評価するための適切なスコアリングルールを使用していた
フランク・ハレル

78

精度を使用する場合、偽陽性と偽陰性に等しいコストを割り当てます。そのデータセットのバランスが取れていない場合(一方のクラスには99%のインスタンスがあり、もう一方のクラスには1%しかないなど)、コストを削減する優れた方法があります。すべてのインスタンスが過半数クラスに属していることを予測し、99%の精度を得て、早く帰宅します。

問題は、すべてのエラーに割り当てる実際のコストが等しくないときに始まります。まれではあるが致命的な病気に対処する場合、病気の人の病気の診断に失敗するコストは、健康な人をより多くの検査に送るコストよりもはるかに高くなります。

一般的に、一般的な最善の手段はありません。最適な尺度は、ニーズから導き出されます。ある意味では、それは機械学習の質問ではなく、ビジネスの質問です。2人が同じデータセットを使用しますが、目標が異なるため異なるメトリックを選択するのが一般的です。

精度は優れた指標です。実際、ほとんどのメトリックは優れており、多くのメトリックを評価するのが好きです。ただし、ある時点で、モデルAとモデルBのどちらを使用するかを決定する必要があります。ニーズに最も適した単一のメトリックを使用する必要があります。

追加のクレジットについては、分析の前にこのメトリックを選択してください。そうすれば、決定を行うときに気が散ることはありません。


3
すばらしい答え-機械学習の初心者(この質問の対象者)にポイントを明確にするために、いくつかの編集を提案しました。
nekomatic

1
機械学習の問題ではないことに同意しません。しかし、それに対処するには、メタ問題で機械学習を行い、基本的な分類情報以外の何らかの種類のデータにマシンがアクセスする必要があります。
シャッフルパンツ

3
さまざまな目標がさまざまなコスト/モデル/パフォーマンス/メトリックに影響を与える可能性があるため、データのみの機能としては考えていません。一般的に、コストの問題は数学的に処理できることに同意します。しかし、患者の治療費などの質問は、まったく異なる情報に依存しています。メタデータに必要なこの情報は通常、機械学習の方法論には適していないため、ほとんどの場合、さまざまな方法で処理されます。
DaL

2
「病気にかかっている人誤診する」とは、「病気にかかっている(病気にかかっていない)人誤診する」ということですよね?そのフレーズはどちらの方法でも解釈できるからです。
タナースウェット

あなたはまさにタナーです。テストをより明確にするために変更しました。
-DaL

20

精度の問題

標準精度は、行われた分類の数に対する正しい分類の比率として定義されます。

accuracy:=correct classificationsnumber of classifications

したがって、すべてのクラスの全体的な尺度であり、すぐにわかるように、実際の有用なテストとは別にオラクルに伝えるのは良い尺度ではありません。オラクルは、各サンプルのランダムな推測を返す分類関数です。同様に、分類関数の分類パフォーマンスを評価できるようにします。クラスごとに同じ量のサンプルがある場合、精度\ textit {can}は有用な尺度になりますが、サンプルの不均衡なセットがある場合、精度はまったく役に立ちません。さらに、テストの精度は高くなりますが、実際には、精度の低いテストよりもパフォーマンスが低下します。

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

クラスごとの精度

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

感度と特異性

医療検査では、感度は、病気にかかっていると正しく特定された人々と実際に病気にかかっている人々の量の比率として定義されます。特異性は、正しく健康であると特定された人々と実際に健康な人々の量との比率として定義されます。実際に病気にかかっている人の量は、真の陽性検査結果の量に偽陰性検査結果の量を加えたものです。実際に健康な人の量は、真の陰性検査結果の量に偽陽性検査結果の量を加えたものです。

バイナリ分類

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ。つまり、クラスが2つしかない場合、クラスごとに感度と特異性は必要ありません。

N-Ary分類

クラスごとの感度と特異性は、クラスが2つしかない場合は役に立ちませんが、複数のクラスに拡張できます。感度と特異性は次のように定義されます:

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)。要約すると次のとおりです。

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

自信の紹介

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


混同マトリックスを使用して平均精度を計算する例を提供してください。
Aadnan Farooq A

ここで例を使用して、より詳細な説明を見つけることができます:mroman.ch/guides/sensspec.html
mroman

もう一度読んで、confidence_falseの定義に誤りがあります。私は誰もそれを見つけなかったことに驚いています。数日中に修正します。
mroman

8

データセット内の不均衡なクラス

簡単に言うと、あるクラスの99%(りんごなど)と別のクラスの1%がデータセット(バナナなど)にあると想像してください。私のスーパーデュパーアルゴリズムは、このデータセットに対して驚くべき99%の精度を実現しています。

return "it's an apple"

彼は99%の確率で正しいため、99%の精度が得られます。アルゴリズムを販売できますか?

解決策:絶対的な尺度(精度)ではなく、各クラスに相対的な尺度(ROC AUCのようなものがたくさんあります)を使用しないでください


いいえ、AUCは不均衡なデータセットには適していません。
SiXUlm

@SiXUlm、詳しく説明していただけますか?
Mayou36

P(D)/P(DC)P(T|D)P(F|DC)

より明確な図はここにあります:quora.com/…。Jerry Maの答えをご覧ください。
SiXUlm

私はまだあなたの主張を理解していません。それは(Quoraを含む)ソリューションで私が言っていることではなく、私の答えを正確にサポートしていますか?重要なのは、事前条件がネットワークのパフォーマンスを測定するメトリックに影響を与えないことです。適切なもの問題に完全に依存します。たとえば、可能な限りすべてのカットに対して最適化することが最善です。それで、私に知らせてください:a)それは事前には不変ですがパフォーマンスに敏感なので、なぜそれが不適切なのですか?b)他に何適切だと思いますか、またはどの特性が必要ですか?
Mayou36

2

DaLの答えはまさにこれです。卵を売るという非常に簡単な例で説明します。

あなたは卵屋を所有しており、販売する各卵は 21

「卵を嗅ぐ」、「オムレツレシピ付きの本を保持する」などの機能を使用して顧客の行動を分析するウェブカメラを接続し、「購入したい商品」に分類します。 21

分類子が間違いを犯さなければ、期待できる最大の収入を得ることができます。完璧ではない場合:

  • 1
  • あなたが失うすべての偽陰性のために 1

その場合、分類子の精度は、最大収益にどれだけ近いかになります。それは完璧な尺度です。

しかし今、割引が a

  • a
  • 2a

a=0.00120.001

たとえば、分類子がデータベース内の関連ドキュメントの検索に関するものである場合、関連ドキュメントの検索と「無関係」ドキュメントの読み取り時間の「どれだけ」の無駄を比較できます。


1

分類精度は、正しい予測の数を予測の総数で割ったものです。

精度は誤解を招く可能性があります。たとえば、クラスの不均衡が大きい問題では、モデルはすべての予測の多数決クラスの値を予測し、高い分類精度を達成できます。そのため、F1スコアやBrierスコアなどのパフォーマンス測定がさらに必要です。


-3

として精度を見ることができますR2は分類これは、モデルを比較するための最初に魅力的なメトリックであり、詳細な調査では不十分です。

どちらの場合も、過剰適合は大きな問題になり得ます。高場合と同様にR2が、信号ではなくノイズをモデル化していることを意味するように、高い精度は、モデルがテストデータセットに厳密に適用されており、一般的な適用性がないという赤旗である可能性があります。これは、分類カテゴリのバランスが非常に悪い場合に特に問題になります。最も正確なモデルは、すべてのデータを1つのカテゴリに分類する(最も頻繁なカテゴリの割合に等しい精度で)単純なモデルかもしれませんが、カテゴリの異なる真の分布でデータセットを分類する必要がある場合、この精度は劇的に低下します。

他の人が指摘したように、精度に関する別の問題は、故障の価格に対する暗黙の無関心、つまり、すべての誤分類が等しいという仮定です。実際にはそうではなく、誤った分類を取得するコストは対象に大きく依存するため、精度を最大化するよりも特定の種類の誤りを最小限に抑えることをお勧めします。


2
ハム。(1)精度またはサンプル外のその他のメトリックの評価が理解されると想定しているため、精度に特定のオーバーフィッティングの問題がどのようにあるかは実際にはわかりません。(2)母集団Aで訓練されたモデルを別の母集団Bに適用すると、リンゴとオレンジを比較していることになりますが、これが正確性の特定の問題であることがわかりません。
ステファンKolassa

(1)それにもかかわらず、精度の問題であり、問​​題は精度をゴールドスタンダードとして使用することです。(2)分類器を構築するポイントは、リンゴだけでなくオレンジでも使用することです。トレーニングデータのカテキズムではなく、データ内の重要な信号を(それらが存在するように)キャプチャするのに十分な汎用性が必要です。
ジェームズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.