無料の Python 機械学習コース 8: 精度と再現率

無料の Python 機械学習コース 8: 精度と再現率

機械学習における偏ったデータセットの扱い方

偏ったデータセットで効果的な機械学習アルゴリズムを開発するのは難しい場合があります。たとえば、データセットは銀行の不正行為やがんの検出に関するものです。 99% の確率で、データセットには不正行為やがんがないことがわかります。かなり簡単に不正行為をすることができ、常に 0 (がんの場合は 1、がんではない場合は 0) を予測するだけで、99% の精度が得られます。そうすると、99% の精度を持つ機械学習アルゴリズムが得られますが、がんを検出することはできなくなります。誰かが癌にかかっても、治療を受けることはありません。銀行では、詐欺行為に対して何の措置も取られません。したがって、精度だけでは、アルゴリズムが効率的に動作しているかどうかと同じように、歪んだデータセットを判断することはできません。

[[360389]]

背景

これらのタイプのデータセットに役立つさまざまな評価マトリックスがあります。これらの評価指標は、適合率-再現率評価指標と呼ばれます。

精度と再現率を理解するには、次の表とそのすべての用語を理解する必要があります。バイナリ分類を検討します。 0 または 1 を返します。特定のトレーニング データに対して、実際のクラスが 1 であり、予測クラスも 1 である場合、真陽性と呼ばれます。実際のクラスが 0 で予測クラスが 1 の場合、それは偽陽性です。実際のクラスが 1 であるが、予測クラスが 0 である場合、それは偽陰性と呼ばれます。実際のクラスと予測クラスの両方が 0 の場合、真陰性になります。


これらすべてを使用して、精度と再現率を計算します。

正確な

精度は、不正であると予測されたトランザクション (クラス 1 として予測) のうち、実際に不正であったトランザクションの数を計算します。精度は次の式を使用して計算できます。


さらに分解すると、式は次のように記述できます。


式からわかるように、精度が高いほど良いです。精度が高いほど、真陽性が多くなるからです。つまり、この取引が不正であると言うことは真実です。

想起

再現率は、当初不正であったすべてのトランザクションのうち、不正として検出されたトランザクションの数を示します。つまり、取引が実際に不正であった場合、銀行に通知すれば適切な当局が措置を講じることになります。精度と再現率の定義を初めて読んだとき、その違いを本当に理解するのにしばらく時間がかかりました。早く届くといいですね。そうでない場合でも心配しないでください。あなた一人じゃありません。

リコール率は次の式で計算できます。


上記の 2 x 2 表で定義された用語で表現すると次のようになります。

精度と再現性に基づいて意思決定を行う

精度と再現率により、特にデータセットが大きく偏っている場合に、アルゴリズムが実際にどのように実行されているかをよりよく理解できます。常に 0 を予測し、99.5% の精度が得られる場合、再現率と精度は両方とも 0 になります。本当の肯定がないからです。つまり、この分類器は適切な分類器ではないことがわかります。精度と再現率の両方が高い場合、アルゴリズムが適切に機能していることを示します。

非常に自信がある場合にのみ y = 1 を予測するとします。時々それが重要になるからです。特に医療データを扱う場合にはそうです。ある人が心臓病や癌にかかっているかどうかを検査しているとします。誤検知を予測することは、人の人生に大きな苦痛をもたらす可能性があります。繰り返しになりますが、ロジスティック仮説は通常、仮説が 0.5 以上の場合は 1 を予測し、仮説が 0.5 未満の場合は 0 を予測します。

  • 仮説が0.5以上の場合、1を予測する
  • 仮説 < 0.5 の場合、0 を予測する

ただし、上記のように特定の敏感なケースを扱う場合は、結果にさらに確信を持たせたいので、仮説が 0.7 以上の場合は 1 を予測し、仮説が 0.7 未満の場合は 0 を予測します。結果にもっと自信を持ちたい場合は、0.9 のような値を確認できます。したがって、その人が癌に罹患しているかどうかは 90% 確実です。

それでは、精度と再現率の計算式を見てみましょう。真陽性と偽陽性の両方が低くなります。したがって、精度が高くなります。しかしその一方で、より多くの否定を予測することになるため、偽陰性の可能性が高くなります。この場合、再現率は高くなります。しかし、偽陰性が多すぎるのも良くありません。誰かが癌にかかっていたり、口座に不正があったりしても、私たちがその人に癌ではない、口座に不正はない、と伝えれば、大惨事につながる可能性があります。

誤検知を回避し、再現率を向上させるには、しきい値を次のように変更する必要があります。

  • 仮説が0.3以上の場合、1を予測する
  • 仮説<0.3の場合、予測値は0となる。

前の場合とは対照的に、再現率は高くなりますが、精度は低くなります。

では、しきい値をどのように決定するのでしょうか? これは要件によって異なります。データセットに応じて、より高い精度が必要か、より高い再現率が必要かを決定する必要があります。適合率-再現率曲線は次のとおりです。


適合率-再現率曲線は任意の形状にすることができます。ここでは 3 つの異なる形状を示します。より高い精度とより高い再現率のどちらが必要か自分で判断できない場合は、F1 スコアを使用できます。

F1スコア

F1 スコアは、精度と再現率の平均です。しかし、平均的な計算式は異なります。通常の平均式はここでは機能しません。平均の計算式を見てみましょう:

(精度 + 再現率) / 2

精度が 0 または再現率が 0 の場合でも、平均は 0.5 のままです。前回の説明で、精度ゼロが何を意味するかを思い出してください。常に y = 1 を予測できます。したがって、これは受け入れられないはずです。正確な呼び出しの全体的な考え方はこれを回避することです。 F1 スコアの計算式は次のとおりです。


ここで、P は精度、R は再現率です。精度がゼロまたは再現率がゼロの場合、F1 スコアはゼロになります。したがって、分類器が期待どおりに動作していないことがわかります。適合率と再現率が両方とも完璧な場合、つまり適合率が 1 で再現率も 1 の場合、F1 スコアも 1 になります。したがって、理想的な F1 スコアは 1 です。さまざまなしきい値を試して、精度、再現率、F1 スコアを計算し、機械学習アルゴリズムに最適なしきい値を見つけるのが最適です。

結論は

この記事では、偏ったデータセットを処理する方法を学びました。 F1 スコアを使用して精度と再現率を選択する方法。お役に立てれば幸いです。

<<:  素晴らしいツールです!機械学習のためのテキスト注釈ツールとサービス 10 選

>>:  無料の Python 機械学習コース 7: アルゴリズムのパフォーマンスが低い場合の対処方法

推薦する

人工知能の台頭は難しく、普通のAI開発者が普及する

[[241542]] Forbes によれば、FORTRAN のパンチカードから Go を使用した分...

サイバーセキュリティにおける機械学習:課題と比較

デジタルでつながった時代において、サイバーセキュリティ防御における機械学習 (ML) の役割は不可欠...

新しい人工ニューロンデバイスは、非常に少ないエネルギーでニューラルネットワークの計算を実行できる

カリフォルニア大学サンディエゴ校の研究者らが開発した新しい人工ニューロン装置のおかげで、画像の認識や...

AIを活用した自動化はエンタープライズレベルの自動化2.0です

新たな常態に対応するために自動化プロセスを拡大多くの企業は、ニューノーマルに対処するための重要な技術...

情報セキュリティにおける機械学習の 5 つの主な使用例

簡単に言えば、機械学習とは「明示的にプログラムされなくても学習する(コンピュータの)能力」です。機械...

CVPR 2017 論文の解釈: フィーチャーピラミッドネットワーク FPN

論文: 物体検出のための特徴ピラミッドネットワーク論文アドレス: https://arxiv.org...

英国で新たな自動運転規制が導入され、ドライバーはもはや「集中」する必要がなくなった

自動運転は近年市場で最も活発なトピックの1つです。資金が継続的に流入し、大手企業が存在感を示そうと競...

サーバーレス コンピューティングによる機械学習の解決策は何でしょうか?

1. 機械学習とサーバーレス学習1.1. 機械学習 (ML) はアプリケーション シナリオでどのよ...

ドローン操縦開始!この国は迎撃のための航空システムを開発している

ドローンはハイテク製品として、遠隔操作が可能で、移動が地形に制限されないことから、技術愛好家や写真愛...

ワイヤレス「心のコミュニケーション」!崔鉄軍院士は、柔軟で非侵襲的な新しい脳コンピューターインターフェースメタサーフェスの開発を主導している。

近年、コーディング メタサーフェスにより、従来の受動デバイスでは静的であったり非常に制限されていた電...

...

...

...

コンピュータービジョンにおける AI の役割は何ですか?

コンピュータービジョン技術を使用することで、コンピューターは視覚的に物を識別したり確認したりすること...

検出器を追加して、YOLOv8 を実際の戦闘に展開しましょう!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...