浏览量:0

基于代价敏感半监督的软件缺陷预测方法

专利类型:发明专利 

语 言:中文 

申 请 号:CN201610513167.7 

申 请 日:20160630 

发 明 人:徐玲廖胜平洪明坚葛永新杨梦宁张小洪杨丹王洪星黄晟周末 

申 请 人:重庆大学 

申请人地址:400044 重庆市沙坪坝区正街174号 

公 开 日:20181002 

公 开 号:CN106201871B 

代 理 人:穆祥维 

代理机构:重庆信航知识产权代理有限公司 50218 

摘  要:本发明涉及基于代价敏感半监督的软件缺陷预测方法,包括如下步骤,S1通过版本控制工具收集待预测软件的源代码文件;S2所述S1得到的源代码文件由I个模块组成,从所述源代码文件中提取度量元值;S3通过采样的方式通过度量元值选取模块得到采样结果集;S4标注后采样结果集和无标记样本集构建训练集;S5提出目标函数,求解使目标函数值最小的分类函数,S6通过分类函数对待预测集中的模块进行预测,并输出预测结果。该方法融合半监督和代价敏感思想构建软件缺陷预测模型,解决了软件缺陷预测中缺陷数据难以获取和类不平衡两个问题,极大提高了预测结果的准确性。 

主 权 项:基于代价敏感半监督的软件缺陷预测方法,其特征在于,包括如下步骤:S1:通过版本控制工具收集待预测软件的源代码文件;S2:所述S1得到的源代码文件由I个模块组成,从所述源代码文件中提取度量元值,所有度量元值构成一个集合X,X={x1,1,x2,2,...xi,j,...xI,J}????(1);xij表示第j个度量元在第i个模块上的度量元值,I表示待预测软件中源代码文件的总数,J表示提取的度量元的总数;每个模块对应一个度量元向量,定义xi表示第i个模块的度量元向量,xi={xij|j=1,2,3...J};S3:采样;S3a:确定xij,i=1,2,...I,J=1,2,...J大于其在所有模块上的度量元值的中位数Mj的数量;I)令i=1;II)令j=1;III)令Ki=0;IV)如果xij≥Mj,则Ki=Ki+1,并令j=j+1,执行下一步;否则,令j=j+1,并执行下一步;V)如果j≤J,则返回Ⅳ);否则令i=i+1,并执行下一步;VI)如果i≤I,则返回Ⅱ);否则执行下一步;VII)输出Ki;S3b:Ki值对应第i个模块,i=1,2…I,根据Ki值从大到小的顺序对Ki值对应的模块进行排序;S3c:选取S3b排序后,处于前N位置的N个模块构成候选集,再从候选集中随机选取n个模块构成采样结果集,N>n;S4:构建训练集;S4a:对S3c得到的采样结果集中的n个模块,根据其是否存在缺陷给其打上有缺陷模块的分类标签或无缺陷模块的分类标签,分类标签y∈{±1},打上分类标签y=1的模块表示为有缺陷模块,打上分类标签y=‐1的模块表示为无缺陷模块;标记后的采样结果集为有标签样本集,记为τn={(x1,y1),…(xi,yi)…,(xn,yn)},其中,xi表示第i个模块的度量元向量,yi表示第i个模块的标签;S4b:从I个模块中踢出采样结果集中的n个模块,然后再随机选取u个模块,所述u个模块构成无标记样本集,记为τu={(x1,y1),…(xi,yi)…,(xu,yu)},其中,yi=0,i=1,2,...u;S4c:S4a得到的有标签样本集和S4b得到的无标记样本集构成训练样本集;S5:构建预测模型;S5a:提出目标函数如下:minf12||f||H2+C1Σiτnl(yi,f(xi))+C2Σiτul(y^i,f(xi))s.t.Σiτusgn(f(xi))=r,y^i=sgn(f(xi)),iτu---(2);其中,H是由核函数k生成的再生核希尔伯特空间,l(yi,f(xi))和是加权损失函数,分别见公式(3)和(4),C1和C2是正则化参数,为经验值,表示训练过程中的预测标签;r是设定的参数,为经验值,其中,1是全1向量;l(yi,f(xi))=(1-f(xi))*C(+1),yi=1(1+f(xi))*C(-1),yi=-1---(3);其中,C(‐1)是错分非缺陷模块的代价,是经验值,C(+1)是错分缺陷模块的代价,为经验值;S5b:求解目标函数,得到使目标函数值最小的分类函数f(xi);S6:从I个模块中踢出训练样本集中的模块后剩余的模块构成待预测集,将待预测集中一个模块的度量元向量输入分类函数f(xi),如果得到值小于0,则该模块被预测为无缺陷,如果得到的值大于0,则该模块被预测为有缺陷;按照上述方式,将预测集中每个模块对应的度量元向量输入所述分类函数,对预测集中的每个模块进行预测,并输出预测结果。 

关 键 词: 

法律状态:生效 

IPC专利分类号:G06F11/36