利索能及
我要发布
收藏
专利号: 2019102615075
申请人: 广东石油化工学院
专利类型:发明专利
专利状态:已下证
更新日期:2026-01-15
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,所述基于GitHub的半监督异构软件缺陷预测算法包括以下步骤:步骤(1)、收集数据建立数据库;

步骤(2)、数据预处理,包括数据规范化和数据过滤;

步骤(3)、匹配源数据和目标数据,引入统一度量表示(UMR)和典型相关分析方法(CCA);

步骤(4)、半监督判别分析;

步骤(5)、核半监督判别分析;

步骤(6)、代价敏感核半监督判分析。

2.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,所述步骤(1)的具体做法是:在GitHub上收集数据,所述收集数据包括项目选择、特征提取和清理数据集,所述项目选择包括选择3个语言标记(Python,Java,C)作为关键字,由“most star”排序标记,从排序列表的顶部筛选出20个项目,所述特征提取包括使用“Understand”工具,提取代码度量,所述代码度量为文件静态代码度量,使用Scitools获得代码度量标准,所述清理数据集包括采用人工筛选对缺失值和显著误差值进行筛选。

3.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,所述步骤(2)中数据预处理使用min-max规范化,给定一个度量x,规范化值x′,计算为:所述数据过滤为knn滤波器过滤跨公司数据的方法,使用数据筛选器代替所有跨公司数据,选择源和目标跨公司项目之间的公共属性,对于目标数据中的每个实例,选择k近邻来度量相似度,使用常见的特性进行过滤,获得与目标数据集相似的源数据集的筛选数据集,这里使用k=10来表示k-最近的邻居。

4.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,在步骤(3)中匹配源数据和目标数据引入统一度量表示(UMR)和典型相关分析方法(CCA),在UMR的基础上,利用CCA为源和目标项目的数据寻找共同空间,使得预测数据之间的相关性最大化,利用UMR技术来使异构数据能够被比较,设定 和是源数据和目标数据,这里 是Xs的第i个实例,Ns和Nt是在Xs和Xt的实例数,源公司中的实例表示为 目标公司中的实例表示为

这里, 表示与 的第j度量相对应的度量值,ds和dt是源数据和目标数据中的度量数,则UMR定义如下:

其中 是包含源数据集特定度量的Xs中的数据, 是包含目标数据集特定度量的Xt中的数据,0s和0t是源数据与目标数据中的全零矩阵,目的是为了补全维度,并且在源数据中,而 在目标数据中,R为实数集,加入基于CCA的学习相关子空间,寻找两个投影方向的Ps,Pt,最大化源与目标公司数据之间的线性相关系数ρ,则CCA的目标函数定义为:其中(·)T是矩阵或向量转置,Css和Ctt是公司内部的 和 协方差矩阵,Cst是跨公司 和 的协方差矩阵,分别被定义为:其中 表示 中的第i个实例向量,ms和mt是 和 的平均实例:在投影方向Ps和Pt下,将 和 分别投影到一个公共空间中,其中投影样本Xs+和Xt+是最大相关的,Xs+和Xt+分别定义为:

5.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,在步骤(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近邻集合。

6.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,在步骤(5)中核半监督判别分析将原始数据映射到高维核Hilbert空间中,由φ:Rn→F映射在特征空间F中称为映射函数,如: 高斯核函数和多项式核 在以前的工作中被

证明是有用的,设定一个非线性映射函数φ(·)通过N*N核矩阵K=[Kij]定义,则数据矩阵:φ=[φ(x1),φ(x2),...,φ(xm)]     (15)那么公式(9)和公式(10)可以改写为:

7.根据权利要求1所述的一种基于GitHub的半监督异构软件缺陷预测算法,其特征在于,在步骤(6)中代价敏感核半监督判别分析,构造一个代价矩阵,如下所示,Cost是代价函数,元素代价(i,j)(i,j∈1,2…c)指示将第I类中的实例分类为第I类的代价值,将缺陷类表示为1,而无缺陷类表示为2,成本(1,1)=0和成本(2,2)=0,因为正确的分类不会导致任何成本,代价矩阵

使用函数f(i)来描述第i类的权重,定义为

结合有价值的代价信息,提出了一种对代价敏感的核判别分析方法,下面对代价敏感的半监督缺陷分析优化问题如下,是类间散度;

是类内散度;

按照代数公式我们得到目标函数优化后:

其中,L是拉普拉斯矩阵。