#Machine LearningMicro-F1およびMacro-F1詳細
Machine Learning Micro F1
micro-F1とmacro-F1の詳細な説明
概要
F1スコア:統計の二項分類モデルの精度を測定するために使用されるインデックスであり、不均衡なデータの精度を測定するために使用されます。また、分類モデルの適合率と再現率も考慮に入れています。 F1スコアは、モデルの適合率と再現率の加重平均と見なすことができます。最大値は1で、最小値は0です。
複数分類問題では、モデルのF1スコアを計算する場合、2つの計算方法、つまりマイクロF1とマクロF1があります。これらの2つの計算方法は、2つの分類のF1スコアの計算方法と同じです。したがって、2つのカテゴリの問題では、micro-F1 = macro-F1 = F1-scoreを計算します。micro-F1とmacro-F1は、マルチカテゴリF1-scoreの2つの計算方法です。
次の3つの分類結果があるとします。
上記の結果によると、次の結果が得られます(マルチカテゴリの各カテゴリには、適合率、再現率、F1スコアがあります)。
2つのマルチカテゴリF1スコアの計算方法:
マイクロF1:
範囲 :(0、1);
該当する環境 :マルチカテゴリが不均衡です。極端に不均衡なデータは結果に影響します
計算:
TPiは、i番目のクラスのTruePositiveポジティブクラスがポジティブクラスであると判断されることを意味します。
FPiは、i番目のクラスの偽陽性陰性クラスが陽性クラスであると判断されることを意味します
TNiは、ネガティブクラスと判断されたi番目のクラスのトゥルーネガティブポジティブクラスを指します。
FNiは、i番目のカテゴリのFalseNegativeがネガティブカテゴリであると判断されることを意味します。
次の3つの分類結果があるとします。
この表から、次のことがわかります。
最初のカテゴリの場合:FP1 = d + g TP1 = a FN1 = b + c TN1 = e + f + h + i
カテゴリ2の場合:FP2 = b + h TP2 = e FN2 = d + f TN2 = a + c + g + i
カテゴリ3の場合:FP3 = c + f TP3 = i FN3 = g + h TN3 = a + b + d + e
micro-F1の場合、mircoの計算方法は再現率と適合率を組み合わせているため、次のようになります。
ために マイクロリコール :リコール率は(TP1 + TP2 + TP3)/(TP1 + TP2 + TP3 + FN1 + FN2 + FN3)です。つまり、TPとFNの3つのカテゴリが分母として加算され、TPが分子です。上記の式の分析から、TP1 + TP2 + TP3 = a + e + i FN1 + FN2 + FN3 = b + c + d + f + g + h(つまり、TP以外の所有格)であることがわかります。我々が得る
ために マイクロプレシジョン :精度は(TP1 + TP2 + TP3)/(TP1 + TP2 + TP3 + FP1 + FP2 + FP3)、同じことが得られます、TP1 + TP2 + TP3 = a + e + i FP1 + FP2 + FP3 = d + g + b + h + c + f(つまり、TP以外の所有格)、
次に、マイクロF1スコアの計算方法に従って:
そして、モデルの精度のために 正確さ 、すべてのサンプルで正しく分類されたサンプルの割合として定義されます。したがって、精度の公式
Acc =(a + e + i)/(a + b + c + d + e + f + g + h + i)
手段:
これに基づいて、結論を導き出すことができます。micro-F1= 0.5の場合、モデルの正解率Acc = 0.5、適合率と再現率は両方とも0.5ですが、モデルが基本的に結論の推測に依存していると結論付けることはできません。 3つの分類結果は次のとおりです。
Acc =(a + e + i)/(a + b + c + d + e + f + g + h + i)= micro-F1 = Precision_mi = Recall_mi = 0.5
マクロ-F1:
範囲 :(0、1);
該当する環境 :データの不均衡の影響を受けず、認識可能性の高いカテゴリ(再現率が高い、精度が高い)の影響を受けやすい複数分類の問題
計算方法 :
マクロ-F1には 2つの計算方法 、
1.最初にmacro-Recallとmacro-Pecisionを見つけ、次にこれら2つの合計からmacro-F1を見つけます。
2.3つのカテゴリのF1スコアを直接平均します。
sklearnパッケージでは、2番目の方法が使用されます。 2つの方法の使用については常に議論の余地がありますが、「線形テキスト分類器のトレーニングアルゴリズム(Lewis、David D.、etal。「線形テキスト分類器のトレーニングアルゴリズム」SIGIR。Vol。96.1996。)」では、著者は、macro-F1はすべてのクラスのF1スコアの平均値であると指摘しました。 2番目の方法 これがマクロF1の計算方法です。
2つの平均化方法を分析することもできます。最初の方法は、エラーの分布にあまり敏感ではありません。 「論文を参照してください(Opitz、Juri、およびSebastianBurst。「MacroF1およびMacroF1。」arXivpreprint arXiv:1911.03347(2019))」、これはmicro-F1に少し似ています。2番目の方法は、上記の論文。
同様に、指標の各カテゴリを分析します。
最初のカテゴリの場合:FP1 = d + g TP1 = a FN1 = b + c TN1 = e + f + h + i
カテゴリ2の場合:FP2 = b + h TP2 = e FN2 = d + f TN2 = a + c + g + i
カテゴリ3の場合:FP3 = c + f TP3 = i FN3 = g + h TN3 = a + b + d + e
上記の値をmacro-F1に取り込んで、以下を取得します。
上記の式はマクロF1の式です(私はそれを単純化し続けず、何も感じませんでした)
値= 0.5の場合、有用な結論は得られません。
加重-F1
micro-F1とmacro-F1に加えて、加重F1もあります。これは、F1スコアにクラスの比率を掛けてから加算した結果です。マクロF1の変種と見なすこともできます。例えば:
上記の表では、適合率、再現率、F1スコアを取得できます。
したがって、加重F1の場合:
同様に、加重適合率と加重再現率を計算することもできます。
実際、上からもわかりますが、 加重-F1 加重精度と加重再現率で計算されたものと等しくありません 加重-F1 (ここではそれぞれ大文字を使用するために)同じ理由で、マクロの2つの計算方法を参照してください。一般的に 最初 結果として。
加重-F1およびマクロ-F1 違い それは:macro-F1は各カテゴリーを与えます 同じ 加重、加重中-F1 各カテゴリーの割合に応じて それぞれ異なる重みを与えます。
チューニング
オン スコアリング 使用法:
グリッドチューニングを実行するときは、GridSearchCVを作成します。一般に、2つの分類のスコアリング標準はroc_aucであり、複数分類ではroc曲線領域のスコアリング方法が提供されないため、複数分類では次を使用できます。
grid_search = GridSearchCV(lg, n_jobs=-1, scoring='f1_weighted', param_grid=param_dist, cv=10, verbose=5)
スコアリング方法がパラメーターを調整するのを待ちます。スコアリング方法が異なると、結果に影響します。
次の2行のコードを実行してスコアを付ける方法は他にもあります。
import sklearn.metrics as sm print(sorted(sm.SCORERS.keys()))
間違えた場合は、誤解を避けるために時間内にご連絡ください。
参照(科学的なインターネットアクセスが必要):
https://towardsdatascience.com/multi-class-metrics-made-simple-part-i-precision-and-recall-9250280bddc2
https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1