無料の 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: アルゴリズムのパフォーマンスが低い場合の対処方法

ブログ    

推薦する

少なくとも 8 つのトップカンファレンス論文! NvidiaのLLM研究科学者の求人数は非常に多く、元Google Brainの科学者を驚かせるほどである。

機械学習の分野で仕事を見つけるのはどれくらい難しいですか? NVIDIA の大規模モデル研究科学者の...

ソフトウェア開発プロセスは、路上でのスマートカーの安全な運行を保証するものである。

2021年に入り、自動車の道路事故率を減らし、運転プロセスの快適性を向上させる先進運転支援システム...

テレンス・タオ氏の新論文の秘密兵器が明らかに:AIを使ってLaTeXをスムーズに書く

数学の巨匠、テレンス・タオ氏は、論文執筆ツールがついにアップグレードされたと投稿しました。以前は T...

NVIDIA、端末デバイスへのディープラーニングの導入を加速する高性能Jetson TX2を発表

人工知能と機械学習はユーザーからますます注目を集めており、AIの応用は徐々に世間の注目を集め始めてい...

...

Java プログラミング スキル - データ構造とアルゴリズム「スパース配列」

[[385874]]基本的な紹介配列内のほとんどの要素が 0 であるか、同じ値を持つ配列である場合...

50枚の写真が「毒された」安定した拡散、車と牛の区別がつかない

AI侵害に対するアーティストの反撃がここに——絵画に「毒」を入れると、AIが「毒化」されて使用時に誤...

スマートビルディングテクノロジーを導入する前に考慮すべき7つのこと

スマートビルディングの設備やシステムを評価する際には、体系的なアプローチを取る必要があります。これら...

テクノロジーは未来を変えます。将来、配達員も失業するでしょう。配達員のいない郵便局だけが残るでしょう。

信じますか?近い将来に配達員が失業するなどとは信じられない人もいるかもしれないが、これは紛れもない事...

...

強化学習の実際の応用例 10 選

強化学習では、報酬と罰のメカニズムを使用してエージェントをトレーニングします。エージェントは正しい行...

GoogleはAIを活用して古い地図情報を更新

Google はブログ投稿で、同社の AI がさまざまな要素を分析して、こうした更新を行うべきかどう...

任意のデータセットに基づいて LLM (大規模言語モデル) ロボットを作成する

今日、偶然Embedchainというウェアハウスを見つけ、とても便利だと思ったので、皆さんとシェアし...

ニューラルネットワークの内部はどのようになっているのでしょうか?

ニューラル ネットワークは錬金術の炉のようなものです。大量のデータを入力すると、魔法のような結果が生...