论文部分内容阅读
基于历史项目的数据挖掘是近几年来软件项目风险分析领域的研究热点,但目前常用的数据挖掘方法难以免受软件项目级的风险分析中存在的样本量有限和模型复杂的不利因素的影响并同时提供可理解的决策支持。有鉴于此,本文提出一种改进的基于知识的神经网络——基于验证性因子分析的神经网络。
基于知识的神经网络是一种归纳与分析相结合的学习方法,在样本量有限的条件下也能有较高的泛化精度;基于知识的神经网络还可以通过规则抽取揭示神经网络学习到的知识,从而解决神经网络的不可解释性问题。本文提出的基于验证性因子分析的神经网络继承了以上优点。
传统的基于知识的神经网络为了允许归纳学习到的内容可以超出领域理论提出的依赖关系而采用全连接结构,网络会随着神经元数目的增加而变得庞大和复杂。本文提出的基于验证性因子分析的神经网络改善了以上缺点:由于先验知识经过统计学方法的检验和修正,超出领域理论提出的依赖关系可以在验证性因子分析过程中获得,网络可以采用部分连接结构,从而显著地降低了复杂性。
另外,根据验证性因子分析的结果和模型本身的特点,本文把神经网络的权重和阀值都限定在正区间;为了使规则抽取算法具有100%的保真度和与神经网络一样的精度,本文使用不可导的阶梯函数作为隐藏神经元的激发函数。因此,本文采用遗传算法训练网络。同时,本文还设计出一种专门针对权重和阀值都为正数的、较为高效的启发式Subset算法——PosSubset算法——进行规则抽取。
实验结果表明,本文提出的基于验证性因子分析的神经网络可以免受软件项目级的风险分析中存在的样本量有限和模型复杂的不利因素的影响并同时提供可理解的命题规则决策支持。但是,由于本文使用了阶梯函数作为隐藏神经元的激发函数,神经网络的收敛性能和预测精度受到了一定的影响,规则抽取算法虽然具有100%的保真度,但其精度随神经网络的精度下降。如何同时提高规则抽取算法的保真度和精度有待日后进一步研究。