Kerasは精度をどのように計算しますか?


26

Kerasはクラスワイズ確率から精度をどのように計算しますか?たとえば、テストセットに2つのクラスのいずれかに属することができる100個のサンプルがあるとします。クラスごとの確率のリストもあります。Kerasは、2つのクラスのいずれかにサンプルを割り当てるためにどのしきい値を使用しますか?


あなたはkerasでmodel.evaluateを使用していますか?
Hima Varsha

はい、model.evaluateを使用しています。より具体的には、model.evaluate_generator。
ラグフラム


おそらく関連する@SO:Keras は精度をどのように評価しますか?
砂漠飛行士

回答:


24

バイナリ分類の場合、精度メトリックのコードは次のとおりです。

K.mean(K.equal(y_true, K.round(y_pred)))

これは、クラスを区別するためのしきい値が0.5であることを示唆しています。この場合、y_trueはもちろん1 ホットでなければなりません。

カテゴリ分類では少し異なります。

K.mean(K.equal(K.argmax(y_true, axis=-1), K.argmax(y_pred, axis=-1)))

これは、「予測が真の値と同じ場所で最大になる頻度」

top-kカテゴリ精度のオプションもあります。これは上記と同様ですが、ターゲットクラスがtop-k予測内にある頻度を計算します。


答えてくれてありがとう。バイナリ分類の場合でも、ラベルはホットエンコードされている必要がありますか?
ラグフラム

@Raghuramいいえ、バイナリ分類の場合、クラスとして0または1が必要なだけで、ホットエンコードする必要はありません。K.mean(K.equal(y_true、K.round(y_pred)))は各ケースで2つのfloat値と一致するため、[0,1]、[1,0]ではなく0または1でなければなりません。
ディビヤンシュカラ

カテゴリーの精度を得るには、を使用しますcategorical_accuracy
シタールシャー

1
(二つ以上のクラスを有する)多クラス問題のために、「categorical_accuracy」対「精度」を使用して差がある
ケツァルコアトル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.