我正在尝试使用神经网络进行二进制分类。它由三层组成。第一层具有三个输入神经元,隐藏层具有两个神经元,输出层具有三个输出二进制值1或0的神经元。实际上,输出通常是浮点数,但通常四舍五入为一个整数数。
如果网络仅输出3的矢量,那么我的输入矢量应该不一样大小吗?否则,为了分类,您还如何将输出映射到输入?
我根据以下文章使用VBA在Excel中编写了神经网络:https://www.analyticsvidhya.com/blog/2017/05/neural-network-from-scratch-in-python-and-r/ 到目前为止,它的工作原理与本文所述完全相同。我目前无法访问机器学习库,因此选择尝试一下。
例如:
如果网络的输出为[n,n,n],这是否也意味着我的输入数据也必须为[n,n,n]?
根据我在此处输入的内容:Neural net input/output
似乎应该是这样。我也不是很确定。
答案 0 :(得分:0)
简单地说,
对于回归任务,您的输出通常具有维度[1]
(如果您预测单个值)。
对于分类任务,您的输出应具有与您拥有的类数相同的维数(输出是概率,它们的总和= 1)。
因此,无需具有相等的输入和输出尺寸。 NN只是一个维度到另一个维度的投影。
例如,
[1, 10]
(针对房地产特征),输出为[1]
-价格[1, 11]
(相同的功能+列出的价格),输出为[1, 2]
(类别0
的概率(将为未售出)和1
(将被售出);例如[1; 0]
,[0; 1]
或[0.5; 0.5]
等,这是二进制分类)此外,输入输出维度的相等性存在于更具体的任务中,例如自动编码器模型(当您需要将数据呈现为其他维度,然后将其表示回原始维度时)。
同样,输出尺寸是1批次的输出尺寸。只有一个,而不是整个数据集。