見出し画像

ビジネス課題に合わせた機械学習の評価指標選択

先日、岐阜大学が「化合物のデータ約 14000 件の機械学習により化合物の毒性予測ソフトウェアの予測精度を 95%に向上」というプレスリリースを出していました。
今回発表されたプレスリリースの中にある精度比較を見ると、開発されたソフトウェアが他のソフトウェアに比べて優位であることを示す試験結果のグラフ載っていました。

画像1

参照: https://www.gifu-u.ac.jp/about/publication/press/20210311.pdf

この試験では「農薬 724 件(626 件が陰性、98 件が陽性)」のデータを用いたということです。
このグラフだけ見ると、赤い棒で表されている今回のソフトウェアが、他のソフトに比べて引いてていることが一目瞭然です。
ただ、グラフで見せている数値は正答率 (Accuracy, 正解率とも言います) なのですが、他のソフトウェアの正答率があまりにも低いことが気になりました。
というのは、以前「正解率が高すぎる?AIを間違って導入しないために最低限知っておきたい知識」でも紹介したように、正答率 (正解率)を見るときはベースラインとの比較が必要となります。

そのため、今回のケースですと、正答率を上げるだけなら、まずは一番極端なモデルとして「全てを陰性として判断するモデル」をベースラインとして比較することとなります。
この極端な予測をするモデルは、全く実用ではないものではありますが、正答率だけを見るとおおよそ86% (100 * 626 / 724) となります。
つまり、この極端なモデル先程のグラフに入れた場合、次のようなグラフとなります。

画像2

ベースラインを入れたグラフを見ると、ほとんどのソフトウェアが極端な予測よりも正答率が低くなっています。
ここで勘のいい人は、他のソフトウェアは何か違う部分で優位性があるのではと気づくと思います。
実際、機械学習の性能の優位性は、比較する指標によって変わります。
今回の場合、「毒性を本当は持っていたのに毒性がないと判断」すると大きな問題が起きるため、毒性を持つ化合物を見逃さないような指標を他のソフトウェアは最大化しようとしていたのではないかと想像しています。
つまり、下記のように判断の目的としているものが違います。

毒性を持つかどうかの判断 ≠ 毒性を持つものを毒性と判断

ちなみに、前者の場合は正答率、後者の場合は再現率を最大化していくこととなります (厳密な定義はここでは省略します)。
今回開発されたソフトウェアは、正答率だけではなく再現率ももちろん高くなっているとは思うのですが、指標を考える大切さの例として引用させていただきました。
今回の例で出てきたように、ビジネス課題に応じて、機械学習の適切な評価指標を選ぶ必要があります。
適切な評価指標を選んでいないと、実用化したときに「思ってよりも使えなかった」という自体になりかねません。

この記事では、予測性能を測る正答率以外の指標として、再現率 (Recall)と適合率 (Precision) について紹介します。

絶対に見落としてはいけないときは再現率 (Recall)

目的のものを絶対に見落としてはいけないときは、再現率 (Recall) に着目します。
例えば、「コロナに感染しているかどうかを医師の代わりを判定するモデル」があったとします。
このとき、「コロナに感染している人を感染していないと判定」してしまうと、この人から感染が拡大してしまうリスクがあります。
このように見逃しリスクが高い場合は、コロナ感染者と判定する基準をゆるくすることで、見逃しをなくすようにモデルを調整します。
しかし判定基準をゆるくすると、「実際はコロナに感染していない人をコロナ感染者と判定」してしまう可能性が上がります。
例えば、検査に来た全員をコロナと判定すれば再現率100%は達成できてしまうということです。しかしご存知の通り、全員感染者と判断される検査は全く意味がないものとなります。
このように再現率を最大化していくときは、「間違ってコロナと判定しない」というようなトレードオフとなる指標による制限を設けて再現率を最大化していく必要があります
再現率に関しては覚えにくい人は、再現率を考えるときに疾患を見逃さない名医を想像するとよいと思います。
逆に、疾患を見逃してしまうような医者や何でも疾患と判断する医者はヤブ医者というようなイメージです。

絶対に間違ってはいけないときは適合率 (Precision)

判定した結果を絶対に間違えてはいけないときは、適合率 (Precision)に着目します。
判定した結果が間違えていたときに、著しく信頼を失うようなものを扱うようなものを想像してみるとよいと思います。
例えば、よく適合率が重要となる例としてあげられるのは警報システムです。
間違って頻繁に鳴る警報だと誰も信じなくなるので、警報が鳴る判定基準を厳しくして、「確実に問題が起きた時のみ警報を鳴らす」必要があるというものです。
この記事では、ちょっと違う視点として、「人の将来を予測する占いモデル」を考えてみます。この占いモデルは、直近対象となる人に何が起こるか予測するものとします。
このとき、間違ってなる警報と同様に、予測した将来が全然当たらなかった場合、モデルを信用してくれる人はいなくなってしまいます
そこで、できる限り当たりそうなものを判定基準として設けることで適合率を高めることができます。
例えば、「あなたは近いうちに人と会うでしょう」というような当たり前の予測をしたら、ほぼ確実に適合率100%を達成できます
しかし、このような予測をされても全く意味をなしません。
そこで、「当たり前ではない珍しいことを予測する」というトレードオフとなる指標による制限を設けて適合率を最大化していく必要があります
この例でいうと、「今日は〇〇さんに会うでしょう」のような「外れる可能性があるが当たるとモデルへの信頼があがる」ようなものなどが言えます。
適合率を考えるときは、未来を的確に当てる凄腕の占い師を想像するとよいと思います。
逆に、誰にでも当てはまることばかり言う占い師では、占い師として成立しなくなってしまうということです。
適合率の例は分かりにくいものが多いので、もう一つだけ紹介します。
適合率は、コストが高い投資する場合にも重要となります。
つまり、1度の投資の失敗で再起不能となる場合、「確実に勝てるとき」のみしか投資をできないということです。
このような状況のときは、適合率が高いモデルを用意し、投資対象を絞りに絞って投資をかけることとなります。

再現率と適合率のトレードオフ関係

判定基準をゆるくしたり厳しくしたりするということは、前者は再現率を上げ、後者は適合率をあげます (ここでは陽性・陰性などの厳密なものの議論は省略します)。
つまり、再現率と適合率はトレードオフの関係にあるということです。
一般に、予測モデルをチューニングするとき、再現率と適合率のバランスを見て調整していきます。
再現率を高めにするべきか適合率を高めにするべきかはビジネス課題によって変わってきます。
そのため、どんなビジネス課題を解こうとしているかをまず把握しましょう。

最後に

今回は、機械学習のモデルの性能を測るときに重要となる正答率以外の指標として、再現率 (Recall) と適合率 (Precision) について紹介しました。
機械学習で解こうとしているビジネス課題において、予測結果が「絶対に見落としてはいけないもの」なのか「絶対に間違ってはいけないものなのか」を考えてみることで、どの指標を見ていくかが変わっていきます。
厳密な議論では、真陽性 (True Positive)、偽陽性 (False Positive)、真陰性 (True Negative)、偽陰性 (False Negative)などをきちんと定義する必要があります。しかし、これらの説明をすると長くなってしまうため、今回は省略させていただきました。
そのため、専門家の方から見ると突っ込みどころが多い書き方になっているかと思いますが、ご了承ください。

この記事が気に入ったらサポートをしてみませんか?