混淆矩阵tf.math.confusion_matrix

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


tensorflow 2.0 画出model网络模型的拓扑图 

tensorflow 2.0 的回调函数callbacks(TensorBoard、ModelCheckpoint)

TensorBoard视觉化网络每层权重分布、视觉化网络层结构

MSE(均方误差)、MAE(平均绝对误差)

from_logits

CE(Cross-Entropy)、BCE(Binary Cross-Entropy 即Sigmoid+CE)、CCE(Categorical Cross-Entropy 即Softmax+CE)

对连续值/离散值进行预处理的两种方式(标准化/one-hot化)、反标准化/逆标准化、字符串预处理

损失函数loss、指标函数metrics

激活函数 Sigmoid、Tanh、ReLU、Softmax

Batch Normalization

反向传播、梯度下降、学习率、优化器optimizers(GD、SGD、Momentum、AdaGrad、Adam)

权重初始化对于激活函数的选择:随机常态分布/随机正态分布初始化(标准差为0.01或1)、Xavier(Glorot)初始化、He初始化

图像增强(IA)、数据预处理

混淆矩阵tf.math.confusion_matrix

使用预训练网络训练的两种方式:Keras Applications、TensorFlow Hub


 

混淆矩阵tf.math.confusion_matrix_第1张图片

二维矩阵每一列预测标签中的数字代表该类别预测值,每一行真实标签中的数字的总和代表的是该类别的真实总数量。
假设有一个用来对猫cat、狗dog、兔子rabbit进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。
假设总共有 27 只动物:8只猫, 6条狗, 13只兔子。结果的混淆矩阵如上图,在这个混淆矩阵中:
	第一行猫类别实际真实有8只,但是分类系统将其中3只预测成了狗;
	第二行狗类别实际真实有6只,但是分类系统将其中1只预测成了兔子,2只预测成了猫;
	第三行兔子类别实际真实有13只,但是分类系统将其中2只预测成了狗;
从混淆矩阵中我们可以看出分类系统对于区分猫、狗存在一些问题,但是区分兔子的效果还算可以的。
分类系统所有正确的预测结果都在从左上角到右下角的斜对角线上,所以从混淆矩阵中可以很方便直观的看出预测哪里有错误。
监督学习:混淆矩阵
confusion_matrix(labels, predictions, num_classes=None, weights=None, dtype=tf.int32, name=None)
    根据真实标签labels和预测标签predictions计算混淆矩阵。

    矩阵的列表示预测标签predictions,矩阵的行表示真实标签labels。
	混淆矩阵总是一个二维的形状数组[n,n],其中n是给定分类任务的有效标签数。
	预测标签predictions和真实标签labels必须是相同形状的一维数组,才能使此函数工作。
 
	如果num_classes是None,那么num_classes将被设置为一个加上预测标签predictions或真实标签labels中的最大值。
	类别标签应该从0开始。例如,如果num_classes是3,那么可能的标签是[0,1,2]。
	如果weights不是None,则每个预测将其相应的权重贡献给混淆矩阵单元的总值。
 
    例子:
		tf.math.confusion_matrix([1, 2, 4], [2, 2, 4]) 
		  [[0 0 0 0 0]
		   [0 0 1 0 0]
		   [0 0 1 0 0]
		   [0 0 0 0 0]
		   [0 0 0 0 1]]
		注意,可能的标签假定为[0,1,2,3,4],产生5x5混淆矩阵。
 
    Args:
      labels: 用于分类任务的真实标签的一维张量。
      predictions: 给定分类的一维预测张量。
      num_classes: 分类任务可能具有的标签数。如果未提供此值,则将使用预测和标签数组计算该值。
      weights: 形状与预测相符的可选张量
      dtype: 混淆矩阵的数据类型
      name: 作用域名称
 
    Returns:
      dtype类型的张量,其形状为[n,n]表示混淆矩阵,其中n是分类任务中可能的标签数目。

    Raises:
      ValueError:如果预测和标签都不是一维向量且形状不匹配,或者如果权重不是None且其形状与预测不匹配。

>>> import tensorflow as tf
>>> tf.math.confusion_matrix([1, 2, 4], [2, 2, 4]) #假设可能的标签是[0, 1, 2, 3, 4],导致5x5混淆矩阵。

	   
>>> tf.math.confusion_matrix([1, 2, 4], [2, 2, 4], num_classes=5)

混淆矩阵tf.math.confusion_matrix_第2张图片

混淆矩阵tf.math.confusion_matrix_第3张图片

混淆矩阵tf.math.confusion_matrix_第4张图片


 混淆矩阵tf.math.confusion_matrix_第5张图片混淆矩阵tf.math.confusion_matrix_第6张图片

混淆矩阵tf.math.confusion_matrix_第7张图片

混淆矩阵tf.math.confusion_matrix_第8张图片

混淆矩阵tf.math.confusion_matrix_第9张图片

混淆矩阵tf.math.confusion_matrix_第10张图片

混淆矩阵tf.math.confusion_matrix_第11张图片

混淆矩阵tf.math.confusion_matrix_第12张图片

混淆矩阵tf.math.confusion_matrix_第13张图片

混淆矩阵tf.math.confusion_matrix_第14张图片

混淆矩阵tf.math.confusion_matrix_第15张图片

 

 

  

你可能感兴趣的:(人工智能,TensorFlow)