JA EN
体系機械学習の基礎
·★ 会員·14分で読めます

不均衡データの実務 — 99%が正常のとき何を最適化するか

陽性が1%しかないデータでは正解率が嘘をつく。混同行列からPR曲線、重み付け・サンプリング・確率の較正、そして期待コストから閾値を逆算するところまでを、前提知識なしで積み上げる。

対象textタスクevaluation

「全員シロ」と書いた紙を配る機械

1000人に1人がかかる病気があるとします。この病気を見つける装置を作れと言われて、こういう機械を作ったとしましょう。中身は空っぽで、誰が来ても「陰性です」と印刷した紙を出すだけ。

この機械の正解率は99.9%です。1000人検査して999人は本当に陰性なのですから、間違えたのは1人だけ。数字だけ見れば、どんな高度な医療AIより優秀に見えます。そして当然、この機械は1人の患者も見つけません。

不正なクレジットカード取引、工場の設備故障、サーバーへの侵入、退会しそうな顧客、まれな疾患。実務で本当に見つけたいものは、たいてい全体のごく一部です。探しているものが少ないほど、「よく当たっている」という感覚は当てにならなくなる。この記事は、その状況で何を測り、何をいじり、最後に何を決めるのかを順番に組み立てていきます。

まず4つのマスに分けて数える

指標の話をする前に、数え方を決めます。予測が陽性か陰性か、正解が陽性か陰性か。その組み合わせは4通りしかありません。

実際は陽性 実際は陰性
陽性と予測 TP(正しく捕まえた) FP(誤検知・空振り)
陰性と予測 FN(見逃し) TN(正しく見送った)

この表を混同行列と呼びます。あらゆる評価指標は、この4つの数の組み合わせでできています。よく使う2つはこれです。

Precision=TPTP+FP,Recall=TPTP+FN\text{Precision} = \frac{TP}{TP+FP}, \qquad \text{Recall} = \frac{TP}{TP+FN}

つまり、適合率(Precision)は「陽性だと騒いだもののうち、当たっていた割合」再現率(Recall)は「本物のうち、拾えた割合」です。分子はどちらも同じ「正しく捕まえた数」で、違うのは分母だけ。適合率の分母は自分が鳴らした警報の総数、再現率の分母は世の中に存在する本物の総数です。

この違いは実務上そのまま意味を持ちます。警報を減らせば適合率は上げられます — 自分の側でコントロールできるからです。一方、再現率の分母は自分では変えられません。閾値をどれだけ動かしても、世界にある本物の件数は動かないのです。

そして冒頭の「全員シロ機械」を混同行列に当てはめると、何が起きていたかが一目でわかります。TP = 0、FP = 0、FN = 1、TN = 999。正解率 (TP+TN)/N(TP+TN)/N は TN が支配していて、TN は「見つけなくてよかったものを見つけなかった」というだけの数です。正解率は、答えの大半を占めるクラスの成績表になってしまう。

1%は「実質的にデータが少ない」ということ

もう一つ、見落としやすい事実があります。10万件のデータがあり陽性率が1%なら、陽性は1000件です。つまりあなたが本当に学習させたい現象について、手元にあるのは10万件ではなく1000件です。

この1000件を、モデルは簡単に覚えてしまいます。少数クラスの例だけを丸暗記して、訓練データ上では完璧な成績を出すのに、新しい陽性はまったく捕まえられない。データが少ない状況で複雑なモデルを使ったときの、典型的な壊れ方です。

FIG 1次数を上げると訓練誤差だけが落ちてテスト誤差が離れていく。少数クラスが1000件しかない状況は、この「データが足りない側」に立っているのと同じで、モデルを複雑にした瞬間に見た目の成績と実力が乖離する

指標のブレも同じ理由で大きくなります。テストセットの陽性が100件しかなければ、再現率は1件の当たり外れで1ポイント動きます。小数点以下の差で「モデルAが勝った」と言い切るのは、この時点でもう危ういわけです。

ROCとPRの、決定的な違い

ここから、不均衡データで最もよく起きる誤解に入ります。ROC曲線のAUCが0.98でも、実運用の適合率が3%ということは普通に起こります。

ROC曲線は、縦軸に再現率、横軸に偽陽性率をとります。

FPR=FPFP+TN\text{FPR} = \frac{FP}{FP+TN}

言い換えると、偽陽性率の分母は「実際に陰性だったものの総数」です。陰性が9万9000件ある世界では、誤検知を1000件出しても FPR は 0.01 しか動きません。グラフの上ではほとんど左端に張り付いたままです。ところがその1000件の誤検知は、適合率の分母に直撃します。陽性を100件捕まえて誤検知が1000件なら、適合率は約9%。現場では「10回に9回は空振りの警報」です。

つまりROCは不均衡を「見なかったこと」にする性質があり、PR曲線は不均衡の厳しさをそのまま映します。探しているものが少ないときは、PR曲線を主指標にする。 PR曲線の下の面積は Average Precision(平均適合率、AP)として計算するのが標準で、これは「閾値を動かしながら、再現率が伸びた分だけその時点の適合率を足し込んだ値」です。

不均衡への対処法は無数に見えて、効き方で分けると3系統です。損失をいじる(重み付け)/データをいじる(サンプリング)/出力の切り方をいじる(閾値)。順番に見ます。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

コメント

コメントにはログインが必要です