基于专利分析的我国医疗器械产业对策研究.docx
文本预览下载声明
基于主成分分析方法的软件缺陷预测研究
摘 要 软件测试作为保证软件质量的一个重要手段,在国内外受到广泛重视,并进行了多年研究。通俗地讲,软件测试是发现并指出软件系统缺陷的过程[1]。在统计学中,主成分分析方法比较适合对综合状况进行预测。因此考虑将主成分分析方法引入软件缺陷预测领域,以提高软件开发质量和效率。
关键词 主成分分析 软件缺陷
1 主成分分析算法(Principle Component Analysis,PCA)
主成分分也称为KL变换[2]。它是一种常用的特征提取方法,这种技术可以在保证信息损失最少的前提下,对高维变量空间进行降维处理,它依据特征值大小选择特征向量,消除了特征向量的相关性,从一定意义上体现了特征向量中不同维度的识别结果贡献的大小不同。
1.1 PCA的主要思想
主成分分析是采取一种数学降维的方法[3],找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,而且彼此之间互不相关。通常,数学上的处理方法就是将原来的变量做线性组合,作为新的综合变量。如果将选取的第一个线性组合即第一个综合变量记为,自然希望它尽可能多地反映原来变量的信息,这里“信息”用方差来测量,即希望越大,表示包含的信息越多。因此在所有的线性组合中所选取的应该是方差最大的,故称为第一主成分。如果第一主成分不足以代表原来p个变量的信息,再考虑选取即第二个线性组合,为了有效地反映原来信息,已有的信息就不需要再出现在中,用数学语言表达就是要求,称为第二主成分[4],依此类推可以构造出第p个主成分。
1.2 PCA的过程
对于一个样本数据,观测到p个变量、n个样品的数据阵为: 其中
第一步:对数据进行标准化处理
其中
第二步:计算样本相关系数矩阵
第三步:用雅克比方法求相关系数矩阵R的特征值和对应的特征向量
第四步:选择重要的主成分,并写出主成分表达式
主成分分析可以得到p个主成分,但是,由于各个主成分的方差是递减的,包含的信息量也是递减的,所以实际分析时,一般不是选取p个主成分,而是根据各个主成分累计贡献率的大小选取前k个主成分。
第i个主成分为: 这里贡献率就是指某个主成分的方差占全方差的比重,实际也就是某个特征值占全部特征值合计的比重。即:
贡献率越大,说明该主成分所包含的原始变量的信息越强。主成分个数k的选取,主要根据主成分的累积贡献率来决定:
一般要求累计贡献率达到85%以上,这样才可以保证综合变量能包括原始变量的绝大多数信息量[4]。
另外,在实际应用中,选择了重要的主成分后,还要注意主成分实际含义解释。主成分分析中一个很关键的问题是如何给主成分赋予新的意义,给出合理的解释。一般而言,这个解释是根据主成分表达式的系数结合定性分析来进行的。主成分是原来变量的线性组合,在这个线性组合中个变量的系数有大有小有正有负,有的大小相当,因而不能简单地认为这个主成分是某个原变量的属性的作用,线性组合中各变量系数的绝对值大者表明该主成分主要综合了绝对值大的变量,有几个变量系数大小相当时,应认为这一主成分是这几个变量的总和,这几个变量综合在一起应赋予怎样的实际意义,这要结合具体实际问题和专业,给出恰当的解释,进而才能达到深刻分析的目的。
第五步:计算主成分得分。
根据标准化的原始数据,按照各个样品,分别代入主成分表达式,就可以得到各主成分下的各个样品的新数据,即为主成分得分。
第六步:依据主成分得分的数据,则可以进行进一步的统计分析。其中,常见的应用有主成份回归,变量子集合的选择,综合评价等。
2.基于PCA方法的软件缺陷预测
要预测软件项目中的缺陷,根据缺陷预测的步骤,应该分为三步:获得度量元,构造预测模型,分析预测结果。
2.1 缺陷预测指标(度量元)的获得
本文用源代码行数(SLOC)来刻画软件项目的规模,以用不同的语言开发366个功能点的项目为例,分别用IBM模型、COCOMO模型和Putnam方法论分别对C++、Dephi、VB和Java对开发的项目进行估算,得到以下数据见表2-1[5]:语言 SLOC 估算模型 工作量(PM/人月) 开发时间 C++ 19.398K IBM模型 77.24 7.33 COCOMO模型 83.06 47.2 Putnam方法论 79.47 21.35 Dephi 6.588K IBM模型 28.91 4.06 COCOMO模型 72.68 53.52 Putnam方法论 58.52 37.8 VB 8.784K IBM模型 37.39 4.74 COCOMO模型 97.79 59.91 Putnam方法论 64.72 35.71 Java 17.568K IBM模型 70.68 6.94 COCOMO模型 74.34 47.
显示全部