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