Keras中的的6種accuracy對比


Keras中的的6種accuracy

accuracy

keras.metrics.accuracy(y_true,y_pred)

如真實標簽y_true為[0,1,3,3,4,2],

但被一個模型預測為[0,1,3,4,4,4],即y_pred=[0,1,3,4,4,4],那么該模型的accuracy=4/6=66.67%

 

binary_accuary

keras.metrics.binary_accuracy(y_true,y_pred,threshold=0.5)

適用於二分類,計算除了y_true和y_pred外,還有一個threshold參數,默認0.5,

將y_pred中的每個預測值和threshold對比,大於threshold設置為1,小於設置為0

比如有

6個樣本,其中y_true為[0,0,0,1,1,0],y_pred為[0.2,0.3,0.6,0.7,0.8,0.1],那么其

binary_accuracy=5/6=87.5%

categorical_accuracy

keras.metrics.categorical_accuracy(y_true,y_pred)

categorical_accuracy針對的是y_true為onehot標簽,y_pred為向量。如

y_true為[[0,0,1],[0,1,0],[0,1,0],[1,0,0],y_pred為[0.1,0.6,0.3],[0.2,0.7,0.1],[0.3,0.6,0.1],

[0.9,0,0.1],則categorical_accuracy為75%。具體將y_true轉為非onehot的形式,即

y_true_new=[2,1,1,0];根據y_pred中的每個樣本預測分數得到y_pred_new=[1,1,1,0];

所以categorical_accuracy = 75 %

sparse_categorical_accuracy

keras.metrics.sparse_categorical_accuracy(y_true,y_pred)

y_true為非onehot形式。如y_true[2,1,1,0],y_pred為[0.1,0.6,0.3],[0.2,0.7,0.1],[0.3,0.6,0.1]

[0.9,0,0.1]。則sparse_categorical_accuracy=75%

top_k_categorical_accuracy

keras.metrics.sparse_top_k_categorical_accuracy(y_true,y_pred,k=5)

在categorical_accuracy基礎上加上top_k。只要求樣本在真值類別上的預測分數排在

其所有類別的前K名。如有4個樣本[0,0,1],[0,1,0],[0,1,0],[1,0,0],y_pred為[0.3,0.6,0.1]

[0.5,0.4,0.1],[0.3,0.6,0.1],[0.3,0.6,0.1],[0.9,0,0.1]。則k=1 , top_k_categorical_accuracy=50%

k=2, top_k_categorical_accuracy=75% k=3, top_k_categorical_accuracy=100%

 

sparse_top_k_categorical_accuracy

keras.metrics.sparse_top_k_categorical_accuracy(y_true,y_perd,k=5)

功能一樣。只是y_true為非onehot型。如y_true[2,1,1,0]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM