论文部分内容阅读
对软件项目进行开发和研究时,将不可避免地产生软件缺陷,因此,及时发现和消除所研发的相关软件的缺陷也成为了软件项目工程开发需要着重开展的关键工作。随着全球经济科技的不断发展,在当前知识经济时代下,软件产品充斥着人们的日常生活,与此同时,软件产品在社会生产生活领域的作用也持续提升。相应地,软件产品和系统的质量也越来越为人们所关注。作为软件工程的关键内容,软件缺陷预测技术以相关经验数据为依托,借助机器学习的方法,能够及时帮助软件开发者和用户发现相关软件缺陷,进而有效节省软件开发所需资源并提高软件开发效率,确保产品质量。经过多年的发展,软件预测技术已取得了较大的研究进步,但仍存在不足之处,如对于预测模型的分类并不精确、预测方法选择的适用性和针对性不强等,这也在一定程度上限制了软件预测技术在相关行业领域的应用,也增加了相关软件系统和产品的隐患。特征选择是通过从既有的M个特征中挑选出N个有效特征,进而降低数据集的维度,完成系统特定指标最优化的过程。特征选择不仅仅是传统模式识别中重要的数据预处理技术,而且也是提高学习算法的有效手段,主要包括了Filter和Wrapper两种类型的算法,二者区别主要体现在对N个特征子集的评价方面。其中,Filter算法主要以数据集中的数学特点为依据完成对数据集特征的评价,Wrapper算法则通过借助学习算法的分类性能完成对特征子集的评价,两种算法均有其各自优势,大量研究实践表明,通过将相关特征算法应用于软件缺陷模型的预测当中,能够及时、有效地发现所发软件存在的缺陷并加以弥补,从而提高软件产品的质量。基于此,本文在阅读关于软件缺陷预测、特征选择方法的大量国内外文献的基础上,结合自身所学专业知识,对软件缺陷和特征选择的相关概念进行阐述和分析,并依托软件缺陷和特征选择的概念,提出了两种特征选择算法:一种是基于互信息改进的特征选择,这一算法属于Filter算法。在对评价标准受特征子集的影响予以考虑的情况下,提出一种特征子集评价函数,这一评价函数的显著特征为引入了非线性因子,通过对既有的互信息下的特征算法进行改进,并通过实验研究,提高软件缺陷预测模型分类的准确度。实验表明,本文所提出的基于互信息的特征选择算法对于提高软件缺陷预测模型的分类性能方面具有明显优势。另一种是基于遗传支持向量机的特征选择,这一算法属于Wrapper算法,对于特征空间的搜索主要借助遗传算法来完成,并在搜索过程中引入支持向量机,对缺陷预测模型进行构建,将输出结果作为种群适应度的具体评价标准。这一方法一方面保留了传统遗传算法的鲁棒性,另一方面,也能够对支持向量机的泛化能力予以良好支持,从而克服缺陷数据集的冗余性,并有效提高了对最优特征子集的寻优能力与效率。通过借助向量机资源包,进而在基于所提出的缺陷预测系统中对算法的有效性做出了进一步验证。研究结果表明,本文所提出的两种特征选择算法,对于软件缺陷预测模型分类精准性的提升以及消除软件缺陷数据集的冗余性等方面具有明显效果,对于软件缺陷预测具有一定的应用价值。