sklearnの評価方法

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

おすすめ

転載: blog.csdn.net/rucieryi369/article/details/124864446