[发明专利]一种基于GitHub的半监督异构软件缺陷预测方法有效
| 申请号: | 201910261507.5 | 申请日: | 2019-04-02 |
| 公开(公告)号: | CN110008584B | 公开(公告)日: | 2020-11-06 |
| 发明(设计)人: | 荆晓远;孙莹;李娟娟;黄鹤;杨永光;姚永芳;彭志平 | 申请(专利权)人: | 广东石油化工学院 |
| 主分类号: | G06F30/27 | 分类号: | G06F30/27;G06F11/36 |
| 代理公司: | 广州润禾知识产权代理事务所(普通合伙) 44446 | 代理人: | 凌衍芬 |
| 地址: | 525099 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 github 监督 软件 缺陷 预测 方法 | ||
1.一种基于GitHub的半监督异构软件缺陷预测方法,其特征在于,所述基于GitHub的半监督异构软件缺陷预测方法包括以下步骤:
步骤(1)、收集数据建立数据库;
步骤(2)、数据预处理,包括数据规范化和数据过滤;
步骤(3)、匹配源数据和目标数据,引入统一度量表示和典型相关分析方法;
步骤(4)、半监督判别分析;
步骤(5)、核半监督判别分析;
步骤(6)、代价敏感核半监督判分析,如下所示,Cost是代价函数,元素代价(i,j)指示将第I类中的实例分类为第I类的代价值,将缺陷类表示为1,而无缺陷类表示为2,成本(1,1)=0和成本(2,2)=0,因为正确的分类不会导致任何成本,
代价矩阵
使用函数f(i)来描述第i类的权重,定义为
结合有价值的代价信息,提出了一种对代价敏感的核判别分析方法,下面对代价敏感的半监督缺陷分析优化问题如下,
是类间散度;
是类内散度;
按照代数公式我们得到目标函数优化后:
其中,L是拉普拉斯矩阵;
在步骤(4)中半监督判别分析为以尊重从标记数据中推断出的判别结构,以及从标记数据和未标记数据推断内在的几何结构,设定
X=[x1,x2,...xM]=[Xs+,XT+]是投影样本矩阵,M=Ns+Nt是所有源实例和目标实例的数目,一组样本x1,x2...,xm∈Rm属于c类,通过最小化类内距离,得到最优投影或变换和同时最大化类间距离,实现类间识别的最大化,类间和类内散射矩阵按以下方式计算:
其中Sb是类间矩阵,Sw是类内矩阵,u是总样本平均向量,ui是第i类的平均向量,Ni是第i类的样本数,是第k类的第i样本,加入一个邻接图来使用未标记样本,寻找一个最优的投影矩阵w,将数据从不同的类中分离出来,同时使附近的样本更加接近,因此,半监督判别分析的目标函数如下所示:
其中,W是投影矩阵,WT是投影矩阵的转置,Sb是类间矩阵,Sw是类内矩阵,α是一个权衡参数,构造邻接图来估计样本的内在几何结构,J(w)定义如下:
定义的相应的权矩阵G:
其中,Nk(xj)表示xj的k近邻集合;
在步骤(5)中核半监督判别分析将原始数据映射到高维核Hilbert空间中,由φ:Rn→F映射在特征空间F中称为映射函数,如:高斯核函数和多项式核在以前的工作中被证明是有用的,设定一个非线性映射函数φ(·)通过N*N核矩阵K=[Kij]定义,
则数据矩阵:
φ=[φ(x1),φ(x2),...,φ(xm)] (15)
那么公式(9)和公式(10)可以改写为:
2.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测方法,其特征在于,所述步骤(1)的具体做法是:
在GitHub上收集数据,所述收集数据包括项目选择、特征提取和清理数据集,所述项目选择包括选择3个语言标记作为关键字,由“most star”排序标记,从排序列表的顶部筛选出20个项目,所述特征提取包括使用“Understand”工具,提取代码度量,所述代码度量为文件静态代码度量,使用Scitools获得代码度量标准,所述清理数据集包括采用人工筛选对缺失值和显著误差值进行筛选。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东石油化工学院,未经广东石油化工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910261507.5/1.html,转载请声明来源钻瓜专利网。





