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