资源描述:
《基于主成分分析方法的软件缺陷预测研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于主成分分析方法的软件缺陷预测研究摘要软件测试作为保证软件质量的一个重要手段,在国内外受到广泛重视,并进行了多年研究。通俗地讲,软件测试是发现并指出软件系统缺陷的过程口]。在统计学中,主成分分析方法比较适合对综合状况进行预测。因此考虑将主成分分析方法引入软件缺陷预测领域,以提高软件开发质量和效率。关键词主成分分析软件缺陷=(x1,x2,...,xp)1n-1主成分分析算法(PrincipleComponentAnalysis,PCA)主成分分也称为KL变换[2]。它是一种常用的特征提取方法,这种技术可以在保证信息损失最少的前提下,对高维变量空间进行降维处理,它依据特征值大小
2、选择特征向量,消除了特征向量的相关性,从一定意义上体现了特征向量中不同维度的识别结果贡献的大小不同。1.1PCA的主要思想主成分分析是采収一种数学降维的方法[3],找出几个综合变量來代替原來众多的变量,使这些综合变量能尽可能地代农原來变量的信息量,而且彼此Z间互不相关。通常,数学上的处理方法就是将原来的变量做线性组合,作为新的综合变量。如果将选収的第一个线性组合即笫一个综合变產记为耳,自然希望它尽可能多地反映原來变最的信息,这里“信息”用方差來测量,即希望var(F,)越大,表示片包含的信息越多。因此在所有的线性组合中所选取的片应该是方差最大的,故称片为第一主成分。如果第一主成
3、分不足以代表原来p个变量的信息,再考虑选取F2即第二个线性组合,为了有效地反映原來信息,片已有的信息就不需耍再出现在几中,用数学语言表达就是要求cov(FpF2)=0,称场为第二主成分[4],依此类推可以构造出第P个主成分。1.2PCA的过程对于一个样本数据,观测到P个变量X
4、,X2,...,X/,、n个样品的数据阵为:X]]X]2…X]pX21X22-*-X2pX“j第一步:对数据进行标准化处理豪X.;一x{Xjj=/(2=1,2,・・・屮;丿=1,2,・・・,〃)Jvarg)£(列一兀)2(J=l,2,・・,p)i=第二步:计算样木和关系数矩阵n-1第三步:用雅克比方法求
5、和关系数矩阵R的特征值(人,心…,州)和对应的特征向量%=(%i,%2,・・・,%J7Z=1,2,...,p第四步:选择重耍的主成分,并写出主成分表达式主成分分析可以得到p个主成分,但是,山于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,-般不是选取p个主成分,而是根据各个主成分累计贡献率的大小选取前k个主成分。笫i个主成分为:E=(X],X]X卩)(Q‘],d/2,)=aiixl+ai2x2+...^aipxp这里贡献率就是指某个主成分的方差占全方差的比貳,实际也就是某个特征值占全部特征值合计的比重。即:贞献率=人/工人i=i贡献率越大,说明该主成分所包
6、含的原始变量的信息越强。主成分个数k的选取,主要根据主成分的累积贡献率來决定:累计贡献率=£人/£人/=!/=1-般要求累计贡献率达到85%以上,这样才可还要注意主成分实际含义解释。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。-般而言,这个解释是根据主成分表达式的系数结合定性分析來进行的。主成分是原来变量的线性组合,在这个线性组合中个变量的系数有大有小有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性的作用,线性纽•合中各变量系数的绝对值人者衣明该主成分主要综合了绝对值大的变量,有儿个变量系数大小相当时,应认为这一主成分是这儿个变
7、量的总和,这儿个变疑综合在一起应赋了怎样的实际意义,这要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的。第五步:计算主成分得分。根据标准化的原始数据,按照各个样品,分别代入主成分表达式,就可以得到各主成分下的各个样品的新数据,即为主成分得分。第六步:依据主成分得分的数据,则可以进行进一步的统计分析。其中,常见的应用有主成份回归,变量子集合的选择,综合评价等。2.基于PCA方法的软件缺陷预测要预测软件项1-1中的缺陷,根据缺陷预测的步骤,应该分为三步:获得度量元,构造预测模型,分析预测结果。2.1缺陷预测指标(度量元)的获得木文用源代码行数(SLOC)来刻画软
8、件项目的规模,以用不同的语言开发366个功能点的项目为例,分别用]BM模型、COCOMO模型和Putnam方法!口口SI.OC估算模型工作量(PM/人月)开发时间IBM模型77.247.33C++19.398KCOCOMO模型83.0647.2Putnam方法论79.4721.35IBM模型28.914.06Dephi6.588KCOCOMO模世72.6853.52Putnam方法论58.5237.8IBM模型37.394.74VB8.784KCOCOMO模塑97.7959.91Putnti