機械学習に関連する一般的な評価指標

目次

1.精度正解率

第二に、混同行列混同行列

3.適合率(精度)と再現率(再現率)

4、Fβスコア

5、PR曲線、ROC曲線

5.1、PR曲線

5.2、ROC曲線

シックス、AUC

7つの回帰(回帰)アルゴリズムインジケーター

6.1、平均絶対誤差MAE

6.2、平均二乗誤差MSE

8つの深層学習ターゲット検出関連の指標

8.1、IOUのクロスマッチ比

8.2、NMSの非最大抑制

8.3、AP、MAP


機械学習モデルを使用する過程で、モデルが良いか悪いかを評価する方法に必然的に遭遇しますか?または、他の人の論文を見ると、常に「適合率」や「再現率」などに遭遇します。記憶力の悪いブロガーは、常に愚かで混乱していることを忘れ、常に混乱しています。したがって、いくつかの一般的な評価指標がここに記録されています。次の図はさまざまな機械学習アルゴリズムの評価指標を示しいます。

1.精度正解率

検出時のサンプルペア数をサンプル総数で割ります。正解率は、一般に検出モデルのグローバルな精度を評価するために使用され、含まれる情報は限られており、モデルのパフォーマンスを完全に評価することはできません。

第二に、混同行列混同行列

2分類タスクの場合、2分類器の予測結果は、次の4つのカテゴリに分類できます。

  • TP:真陽性-陽性サンプルを陽性として予測
  • TN:真のネガティブ-ネガティブサンプルをネガティブとして予測
  • FP:偽陽性-陰性サンプルを陽性として予測
  • FN:偽陰性-陽性サンプルを陰性として予測
 

陽性サンプル

ネガティブサンプル
陽性サンプル(予測) TP(トゥルーポジティブ) FP(偽陽性)
ネガティブサンプル(予測) FN(偽陰性) TN(トゥルーネガティブ)

3.適合率再現率

電子メールなどの非常に不均衡なデータのサンプルの場合、1000個の電子メールがあり、そのうち999個が通常の電子メールであり、スパム電子メールが1つしかない場合、すべてのサンプルが通常の電子メールとして識別されると仮定すると、精度は99.9になります。今回は%。私たちのモデルは良いようですが、モデルのトレーニングの目的はスパムを分類できるようにすることであるため、モデルはスパムを識別できません。明らかに、これは必要なモデルの評価指標ではありません。もちろん、実際のモデルでは、このインジケーターを使用して、モデルが良いか悪いかを最初に判断します。

上記の説明から、精度だけではモデルを正確に測定できないことがわかっているため、ここでは適合率(適合率)再現(再現率)を紹介しますこれらは2つの分類問題にのみ適用されます最初にその定義を見てみましょう:

精度

  • 定義:正に分類された正の例の数と正に分類されたケースの数の比率精度率とも呼ばれます。
  • 計算式Precision = \ frac {TP} {TP + FP}

リコール(リコール率)

  • 定義:正しく分類された陽性症例数と実際の陽性症例数の比率は、再現率とも呼ばれます。
  • 計算式リコール= \ frac {TP} {TP + FN}

理想的には、正解率とリコール率が高いほど良いです。ただし、実際には矛盾する場合もあります。精度が高いとリコール率が低く、精度が低いとリコール率が高くなります。この性質を観察することは難しくありません PR曲線。たとえば、Webページを検索するときに、最も関連性の高いWebページのみが返される場合、正解率は100%であり、再現率は非常に低くなります。すべてのWebページが返される場合、想起率は100%であり、正解率はとても低い。したがって、実際のニーズに応じて、さまざまな場面でどちらの指標がより重要であるかを判断する必要があります。

4、Fβスコア

通常、適合率と再現率は相互に影響を及ぼします。適合率が高い場合は適合率が低く、適合率が高い場合は適合率が低くなります。では、これら2つの指標を測定する方法はありますか?これがF1スコアです。F1関数は一般的に使用されるインジケーターであり、F1値は精度率とリコール率の調和平均です。

                                                  \ frac {2} {F_ {1}} = \ frac {1} {P} + \ frac {1} {R}

                                                 F_ {1} = \ frac {2PR} {P + R}

もちろん、F値を一般化して、精度レートとリコールレートに異なる重みを割り当てて、重み付き調整を実行することもできます。

                                                 F _ {\ beta} = \ frac {\ left(1 + \ beta ^ {2} \ right)PR} {\ beta ^ {2} P + R}

その中で、β> 1の場合、リコール率はより影響力があり、β= 1の場合、標準F1に縮退し、β<1の場合、精度率はより影響力があります。

5、PR曲線、ROC曲線

5.1、PR曲線

PR曲線は、縦軸に精度使用し、横軸にリコールを使用します。以下に示すように:

上の図から、適合率と再現率のトレードオフを見つけるのは難しくありません。曲線が右上隅に近いほど、パフォーマンスが向上します。曲線の下の領域はAPスコアと呼ばれ、適合率を反映しています。ある程度のモデルの再現率。高い割合。ただし、この値は計算に便利ではありません。適合率と再現率を考慮すると、F1関数またはAUC値が一般的に使用されます(ROC曲線が描画しやすく、ROC曲線の下の領域も計算しやすいため)。

一般的には、PR曲線を使用してモデルの品質を評価します。まず、モデルが滑らかであるかどうかを確認し、(同じテストセットで)誰が上下するかを確認します。一般的に、上の方がモデルの品質よりも優れています。下の方(赤い線は黒い線よりも優れています)。

5.2、ROC曲線

多くの機械学習モデルでは、多くのモデルが予測確率を出力します。モデル評価に適合率や再現率などの指標を使用する場合は、予測確率の分類しきい値も設定する必要があります。たとえば、予測確率がしきい値よりも大きい場合などです。ポジティブな例として、またその逆も同様です。ネガティブな例です。これにより、モデルがもう1つのハイパーパラメータになり、このハイパーパラメータはモデルの一般化機能に影響を与えます。

ROC曲線曲線は、そのようなしきい値を設定する必要はありません。ROC曲線の縦軸は真の率であり、横軸は偽陽性率です。ROC(受信者動作特性)曲線は、多くの場合、長所とバイナリ分類器の短所。ROCの横軸は偽陽性率、FPR、「偽陽性率」、つまり、誤判定の正解率です。縦軸は真陽性率、TPR、「真率」です。つまり、正しい判断が正しいという比率です。

  • 実クラス率(真の率正)TPRTPR = \ frac {TP} {TP + FN} すべての陽性サンプルで、分類子は比率を正しく予測しました(リコールに等しい)。
  • 真の負のレートクラス(真の負のレート)FPRFPR = \ frac {FP} {FP + TN}すべての負のサンプルで、分類器はエラー率を予測しました。

ROC曲線のフルネームは受信者動作特性であり、分類器の品質を判断するためによく使用されます。ROC曲線は、FPRとTPRの関係曲線です。この組み合わせは、FPRとTPR、つまりコストとメリットです。明らかに、メリットが高く、コストが低いほど、モデルのパフォーマンスは向上します。モデルの効果が良いほど、PRと同様に、ROC曲線全体が左上隅に向かって移動します。一方のモデルのROC曲線がもう一方のモデルを完全にカバーしている場合、そのモデルは他のモデルよりも優れていることを意味します。

また、AUC計算方法では、学習者が正と負の例を分類する能力も考慮されていることにも注意してください。不均衡なサンプルの場合でも、分類器を合理的に評価できます。AUCは、サンプルカテゴリがバランスされているかどうかに敏感ではありません。これが、バランスの取れていないサンプルが通常AUCを使用して学習者のパフォーマンスを評価する理由の1つです。

AUCスコアは曲線の下の領域です。スコアが大きいほど、分類子の効果が高くなります。明らかに、この領域の値は1より大きくなりません。また、ROC曲線は一般に線y = xの上にあるため、AUCの値の範囲は0.5から1の間です。多くの場合、ROC曲線はどの分類器のパフォーマンスが優れているかを明確に示しておらず、値として、AUCが大きい分類器のパフォーマンスが優れているため、AUC値が評価基準として使用されます。

 評価基準が非常に多いのに、なぜROCとAUCを使用するのですか?ROC曲線には非常に優れた機能があるため、テストセット内の正と負のサンプルの分布が変化しても、ROC曲線は変更されないままになります。実際のデータセットでは、クラスの不均衡現象がよく発生します。つまり、正のサンプルよりも負のサンプルの方がはるかに多く(またはその逆)、テストデータ内の正と負のサンプルの分布も時間の経過とともに変化する可能性があります。

シックス、AUC

AUCは、2クラスモデルの評価にのみ使用できるモデル評価指標です。2クラスモデルには、対数損失、精度、精度など、他にも多くの評価指標があります。kaggleなどのデータマイニングの競争に頻繁に注意を払う場合、AUCとloglossが基本的に最も一般的なモデル評価指標であることがわかります。精度よりもAUCとログロスが一般的に使用されるのはなぜですか?多くの機械学習モデルは分類問題の結果が確率であると予測するため、精度を計算する場合は、確率をカテゴリに変換する必要があります。これには、しきい値を手動で設定する必要があります。サンプルの予測確率がこの予測よりも高い場合、次に、このサンプルを1つのカテゴリに入れ、このしきい値を下回って、別のカテゴリに入れます。したがって、このしきい値は精度の計算に大きく影響します。AUCまたはloglossを使用すると、予測された確率をカテゴリに変換することを回避できます。

AUCは、曲線下面積の頭字語です。AUCは、学習者の長所と短所を測定するパフォーマンス指標であるROC曲線の下の領域です。定義から、AUCはROC曲線の下の各部分の面積を合計することによって取得できます。ROC曲線が、座標(x1、y1)、...、(xm、ym)で点を順番に接続することによって形成されると仮定すると、AUCは次のように推定できます。

                                              AUC = \ frac {1} {2} \ sum_ {i = 1} ^ {m-1}(x_ {i + 1} -x_ {i})(y_ {i} + y_ {i + 1})

AUC値は、ROC曲線でカバーされる領域です。明らかに、AUCが大きいほど、分類器の分類効果が高くなります。

  • AUC = 1は、完全な分類子です。
  • 0.5 <AUC <1。これは、ランダムな推測よりも優れています。予測値があります。
  • AUC = 0.5、マシンに従って同じことを推測します(例:銅板の紛失)。予測値はありません。
  • AUC <0.5はランダムな推測よりも悪いですが、常に予測不可能である限り、ランダムな推測よりも優れています。

AUCの物理的意味AUCの物理的意味 は、陽性サンプルの予測結果が陰性サンプルの予測結果よりも大きい確率です。したがって、AUCは、サンプルをソートする分類器の機能を反映しています。また、AUCは、サンプルカテゴリがバランスされているかどうかに影響されないことにも注意してください。これが、バランスの取れていないサンプルが通常AUCを使用して分類器のパフォーマンスを評価する理由の1つです。

AUCを計算する方法は?

  • 方法1:AUCはROC曲線の下の面積であり、面積を直接計算できます。面積は、小さな台形の面積(曲線)の合計です。計算の精度は、しきい値の精度に関連しています。
  • 方法2:AUCの物理的意味に従って正のサンプルの予測結果負のサンプルの予測結果よりも大きい確率を計算ますn1 * n0(n1は正のサンプルの数、n0は負のサンプルの数)を2タプルとし、各2タプルは、正のサンプルと負のサンプルの予測結果、および正のサンプルの予測結果を比較します。は、ネガティブサンプルの予測結果よりも高くなっています。正解です。正確に予測された2つのタプルの、合計2つのタプルに対する比率が最終的なAUCです。時間計算量はO(N * M)です。
  • 方法3:最初にすべてのサンプルをスコアに従って並べ替え、ランクを使用してそれらを順番に表します。たとえば、スコアが最大のサンプル、rank = n(n = n0 + n1、n0は負のサンプルの数、n1)は陽性サンプルの数です)、次はn-1です。次に、正のサンプルの中で最大のランクを持つサンプル、rank_maxの場合、彼のスコアよりも小さいn1-1の他の正のサンプルがあり、次に彼のスコアよりも小さい(rank_max-1)-(n1-1)の負のサンプルがあります。2番目は(rank_second-1)-(n1-2)です。最後に、正のサンプルが負のサンプルよりも大きい確率を取得します。

                                                AUC = \ frac {\ sumrank(スコア)-\ frac {n_ {1} *(n_ {1} + 1)} {2}} {n_ {0} * n_ {1}}

その中で:

n0、n1-ネガティブサンプルとポジティブサンプルの数

ランク(スコア)-i番目のサンプルのシリアル番号を表します。(確率スコアは小さいものから大きいものへとランク付けされ、ランク位置にランク付けされます)。これは、すべての陽性サンプルのシリアル番号を合計することです。

この記事では3番目の計算方法に焦点を当てているため、AUCを計算するときにこの方法を選択することをお勧めします。計算方法については、以下のリンクを参照してください。それを読んだ後に実行されます。

参照リンク:AUC計算方法

ROCとAUCの両方を不均衡な分類問題に適用できるのはなぜですか?

ROC曲線は、横軸(FPR)と縦軸(TPR)にのみ関連しています。TPRは正のサンプルでの正しい予測の確率のみであり、FPRは負のサンプルでの誤った予測の確率であり、正と負のサンプルの比率とは関係がないことがわかります。したがって、ROCの値は、正と負のサンプルの実際の比率とは関係がないため、平衡と不均衡の両方の問題に使用できます。AUCの幾何学的な意味は、ROC曲線の下の領域であるため、正と負のサンプルの実際の比率とは関係ありません。

7つの回帰(回帰)アルゴリズムインジケーター

6.1、平均絶対誤差MAE

平均絶対誤差(MAE)は、L1ノルム損失とも呼ばれます。

                                             MAE(y、\ hat {y})= \ frac {1} {m} \ sum_ {i = 1} ^ {m} \ left |  y_ {i}-\ hat {y} _ {i} \ right |

MAEは回帰モデルの品質をより正確に測定できますが、絶対値が存在すると関数が滑らかでなくなり、一部の点で導関数を取得できなくなります。絶対値を残差の2乗に変更することを検討できます。は平均二乗誤差です。

6.2、平均二乗誤差MSE

平均二乗誤差(MSE)は、L2ノルム損失とも呼ばれます。

                                             MSE(y、\ hat {y})= \ frac {1} {m} \ sum_ {i = 1} ^ {m} \ left(y、\ hat {y} \ right)^ {2}

8つの深層学習ターゲット検出関連の指標

8.1、IOUのクロスマッチ比

IoUのフルネームはIntersectionover Unionです。IoUは、「予測フレーム」と「実際のフレーム」の交差と結合の比率を計算します。IoUは単純な評価インデックスであり、出力がバウンディングボックスである任意のモデルアルゴリズムのパフォーマンスを評価するために使用できます。

計算式:

 

8.2、NMSの非最大抑制

Non-Maximum Suppression(NMS)は、検出アルゴリズムの古典的な後処理ステップであり、検出の最終的なパフォーマンスに不可欠です。これは、元の検出アルゴリズムが通常、多数の検出フレームを予測し、それによって多数の誤った重複した不正確なサンプルが生成され、これらのサンプルをフィルタリングするために多数のアルゴリズム計算が必要になるためです。処理が適切でない場合、アルゴリズムのパフォーマンスが大幅に低下するため、効果的なアルゴリズムを使用して冗長な検出フレームを排除し、最良の予測を取得することが特に重要です。

NMSアルゴリズムの本質は、極大値を検索することです。ターゲット検出では、NMSアルゴリズムは主に木製のプラーク検出フレームと対応する信頼スコアを使用し、特定のしきい値を設定して、大きなオーバーラップがある境界ボックスを削除します。

NMSアルゴリズムは通常、モデル予測後に冗長フレームを削除するためのものであり、通常はnms_threshold = 0.5です。具体的な実装のアイデアは次のとおりです。

  1. このタイプのボックスで最大のスコアの1つを選択し、box_bestとして記録して、保持します
  2. box_bestとボックスの残りのIOUを計算します
  3. IOU> 0.5の場合は、このボックスを破棄します(2つのボックスは同じ目標を表す可能性があるため、スコアの高い方を維持します)
  4. 最後に残ったボックスから、スコアが最も高いボックスを見つけます。

以下は、Pythonによって実装されたNMSアルゴリズムです。

def nms(bbox_list,thresh):
    '''
    非极大值抑制
    :param bbox_list:方框集合,分别为x0,y0,x1,y1,conf
    :param thresh: iou阈值
    :return:
    '''
    x0 = bbox_list[:,0]
    y0 = bbox_list[:,1]
    x1 = bbox_list[:,2]
    y1 = bbox_list[:,3]
    conf=bbox_list[:,4]

    areas=(x1-x0+1)*(y1-y0+1)
    order=conf.argsort()[::-1]
    keep=[]
    while order.size>0:
        i=order[0]
        keep.append(i)

        xx1=np.maximum(x0[i],x0[order[1:]])
        yy1=np.maximum(y0[i],y0[order[1:]])
        xx2=np.minimum(x1[i],x1[order[1:]])
        yy2=np.minimum(y1[i],y1[order[1:]])

        w=np.maximum(xx2-xx1+1,0)
        h=np.maximum(yy2-yy1+1,0)

        inter=w*h
        over=inter/(areas[i]+areas[order[1:]]-inter)
        inds=np.where(over<=thresh)[0]
        order=order[inds+1]

    return keep

8.3、AP、MAP

AP(平均適合率)は、精度と再現率に基づいて計算されます。これらの2つの概念はすでに理解しているので、ここでは説明しません。APは、さまざまなリコール率の正解率の平均を表します。

したがって、ここでは別の概念MAP(Mean Average Precision、MAP)を紹介しました。MAPは、各カテゴリのAPがカウントされ、平均値が取得されることを意味します。

したがって、APは単一のカテゴリ用であり、mAPはすべてのカテゴリ用です。

マシンビジョンターゲット検出の分野では、APとmAPの境界線は明確ではありません。IoU> 0.5の検出フレームをAP0.5と呼ぶことができる限り、APとmAPの表現はマルチの精度です。クラス検出、および焦点は検出フレームにあります。精度。

参照リンク:

機械学習分類モデルの詳細な評価指標

機械学習評価指標

機械学習の評価指標

PR、ROC、AUCはすべて壊れています

PR曲線、ROC曲線、AUCインジケーターなど、精度と精度

画像処理交差率(IoU)

おすすめ

転載: blog.csdn.net/wxplol/article/details/93471838