Matlab 为什么神经网络的输出不是二进制的?

Matlab 为什么神经网络的输出不是二进制的?,matlab,machine-learning,neural-network,Matlab,Machine Learning,Neural Network,我正在使用MATLAB中的NPR工具。 我的输入是150000 x 10矩阵,输出是150000 x 1类(二进制类) 当工具给我一个选项时,我使用GUI并保存输出。 但是输出不是一个二进制向量,而是一个150000x1double 我只是想知道当我的目标变量是二进制的时候,为什么它不是二进制的,如果它不是二进制的,那么混淆矩阵是如何绘制的。 是否使用简单的圆函数 在将目标变量提供给工具之前,是否需要对其进行规范化 我不知道NPR工具的细节,但神经网络是作为向量与训练过程中学习的权重向量(在网络

我正在使用MATLAB中的NPR工具。 我的输入是150000 x 10矩阵,输出是150000 x 1类(二进制类)

当工具给我一个选项时,我使用GUI并保存输出。 但是输出不是一个二进制向量,而是一个150000x1double

  • 我只是想知道当我的目标变量是二进制的时候,为什么它不是二进制的,如果它不是二进制的,那么混淆矩阵是如何绘制的。 是否使用简单的圆函数

  • 在将目标变量提供给工具之前,是否需要对其进行规范化


  • 我不知道NPR工具的细节,但神经网络是作为向量与训练过程中学习的权重向量(在网络的每一层)相乘来实现的

    它的输出自然是一个实值向量,为了保持通用性(通常)不设置阈值。要获得预测的二进制类值,输出将被阈值设置为0.5(假设类为0和1),并根据这些值计算混淆矩阵。实值输出还允许您将神经网络的输出视为分类的一种置信值。0.51会是积极的,但不会太多,而0.95会更积极。如前所述,我不知道NPR工具是如何处理这些值的


    至于标准化,我认为0,1已经标准化了。

    一般来说,如果你愿意,你也可以设置一个神经网络来有一个二进制向量输出,但是它可能是多余的,因为你可以通过输出值识别两个类-1,1,只使用一个输出变量

    因此,您可以选择:

    1) 两个输出变量,其中每个变量对应于一个类或,例如(0,1)对应于类1,(1,0)对应于类2

    2) 其中一个变量的输出值-1表示类1,1表示类2

    在第二种情况下,您需要较少的训练点,因为需要拟合的参数较少