1. sklearn.metrics.accuracy_score(y_true,y_pred,*,normalize=True,sample_weight=None)
このうち、y_true は実際のラベルを示し、y_pred は予測されたラベルを示し、normalize は結果を正規化するかどうかを示し、sample_weight はサンプルの重みを示します。
2 つの分類の計算方法:
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred):0.5
accuracy_score(y_true, y_pred, normalize=False):2
マルチラベル計算方法:
import numpy as np
accuracy_score(np.array([[0, 1], [1, 1]]), np.ones((2, 2))):0.5
このうち、y_true と y_pred は 0, 1 の形式で表現されます。
2. sklearn.metrics.f1_score(y_true,y_pred,*,labels=なし,pos_label=1,average='バイナリ',sample_weight=なし,zero_division='警告')
このうち、y_true は実際のラベルを表し、y_pred は予測されたラベルを表します。
ラベルは、F1 値のどのカテゴリを計算するかを示します。
マルチカテゴリ、マルチラベルは平均が必要で、6種類あります {'micro', 'macro', 'samples', 'weighted', 'binary', 'None'},
「なし」は、各カテゴリのスコアを返すことを意味します。
「バイナリ」は、指定された pos_label のクラス結果を返すことを意味します。これは、バイナリ分類の場合にのみ適用されます。
「マイクロ」は、真陽性、偽陰性、および偽陽性の合計を計算することにより、指標をグローバルに計算することを意味します。
「マクロ」は、各カテゴリの指標を表し、重み付けされていない平均を計算します。
「加重」は、各カテゴリのインデックスを計算し、加重平均を計算します;「マクロ」カテゴリの不均衡の問題をある程度解決できます。
「サンプル」は、各インスタンスの指標を計算し、平均値を計算することを意味します。
zero_division は、除数がゼロであることを示します
異なる平均
from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
f1_score(y_true, y_pred, average='macro'):0.26
f1_score(y_true, y_pred, average='micro'):0.33
f1_score(y_true, y_pred, average='weighted'):0.26
f1_score(y_true, y_pred, average=None):array([0.8, 0. , 0. ])
y_true = [0, 0, 0, 0, 0, 0]
y_pred = [0, 0, 0, 0, 0, 0]
f1_score(y_true, y_pred, zero_division=1):1.0
マルチラベル
y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
f1_score(y_true, y_pred, average=None):array([0.66666667, 1. , 0.66666667])
labels: 指定されたカテゴリの値を計算します
metrics.f1_score(y_true, y_pred, labels=[1, 2], average='micro'):0.0