我们正在进行的项目是“使用反向传播算法的软件工作量估计”。
对于这个项目,神经网络使用反向传播算法进行训练。我们使用了一个使用 iris 数据集来训练神经网络的代码。我们使用的激活函数是切线 (tanh) 函数,其范围为 [-1, 1]。
Iris 数据集有 4 个输入和 1 个输出(输入所属的物种)。4 个输入是萼片长度、萼片宽度、花瓣长度和花瓣宽度。然后根据值将这些变量分为 3 个物种(setosa、versicolor 和 veronica)。在数据集中,这些物种分别以二进制表示为(1,0,0),(0,1,0),(0,0,1)。所有输出值都在 0 到 1 的范围内。
我们的项目是关于软件工作量估计的,所以我们用 COCOMO81 数据集替换了数据集。输入和输出变量的数量更大,最多可达 2000 个。在代码中,标准化用于对这些值进行标准化,使其在 -1 到 1 的范围内(使用正切激活函数)。这对于训练神经网络很有效,但是由于这种归一化,我们无法知道输出值的原始值,因为它也是归一化的形式。
需要将原始值与 COCOMO2 模型得到的输出进行比较,以证明我们的模型更好。为此,我们认为我们需要对输出值进行非规范化,但是,我们不确定如何处理输出值。