[发明专利]一种基于谱聚类的半监督学习的软件缺陷预测方法有效
申请号: | 202010999235.1 | 申请日: | 2020-09-22 |
公开(公告)号: | CN112148605B | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 陆璐;周璇 | 申请(专利权)人: | 华南理工大学;华南理工大学梅州技术研究院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 陈宏升 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 谱聚类 监督 学习 软件 缺陷 预测 方法 | ||
1.一种基于谱聚类的半监督学习的软件缺陷预测方法,其特征在于,包括以下步骤:
1)从数据库中获取原始样本数据,进行数据预处理操作,得到处理后的特征矩阵;
2)对于无标签数据,通过谱聚类进行聚类;
3)通过软件缺陷预测的启发式规则对步骤2)获得的聚类进行标签操作,得到伪标签;所述启发式规则具体为:越复杂的软件实体有缺陷的概率越大;所述伪标签,是指从数据库提取的无标签数据经过步骤2)的聚类和步骤3)标签操作后得到的标签;所述步骤3),具体如下:
a)分别计算两个聚类的行平均属性值,通过一个聚簇的所有属性值之和除以对应聚簇的行数得到;
b)如果属性和软件复杂度正相关,则将具有更大行平均属性值的聚类标签为有缺陷聚类;如果属性和软件复杂度负相关,则将具有更小行平均属性值的聚类标签为有缺陷聚类;
4)根据数据分布计算特征偏离分数并进行特征选择,其中原有标签数据所占权重大于伪标签数据所占权重;具体如下:
a)根据标签数据的分布,计算出所有软件实体的无缺陷比例,将这个无缺陷比例设置为阈值百分位;
b)根据阈值百分位,可以得到每个特征对应的阈值百分位数,根据这个阈值百分位数计算出特征偏离分数;
c)如果特征偏离分数大于无缺陷比例,则说明该特征与标签的相关性不高,舍弃对应特征;如果特征偏离分数不大于无缺陷比例,则说明该特征与标签具有较大的相关性,保留对应特征;
5)根据新的特征矩阵再次进行聚类和打标签操作得到预测结果。
2.根据权利要求1所述的一种基于谱聚类的半监督学习的软件缺陷预测方法,其特征在于,步骤1)中,所述数据库是存储着若干软件实体的样本数据的仓库;所述软件实体是指在不同数据库中数据表示形式的最小单元,包括但不限于:类、函数、文件;所述样本数据,包含无标签数据和有标签数据两部分,无标签数据仅包含软件实体的属性数据,有标签数据还包含该软件实体是否具有缺陷的标签数据;所述属性是指数据库存储的关于软件实体的特征,包括但不限于:代码行数、一个类中的方法数量、一个类的字节码大小。
3.根据权利要求1所述的一种基于谱聚类的半监督学习的软件缺陷预测方法,其特征在于,步骤1)中,所述数据预处理操作,包括但不限于数据标准化处理、缺失数据处理;所述特征矩阵,是指以软件实体为行,以属性为列组成的矩阵。
4.根据权利要求1所述的一种基于谱聚类的半监督学习的软件缺陷预测方法,其特征在于,所述步骤2),具体如下:
a)计算代表软件实体之间的边的权重的邻接矩阵W;
b)计算出特征矩阵的度矩阵D;
c)计算出拉普拉斯矩阵,计算方式为L=D-W;
d)对拉普拉斯矩阵进行特征分解,得到特征向量;
e)根据归一化切图算法,使用第二小的特征向量是否大于0作为聚类依据,得到两簇聚类。
5.根据权利要求1所述的一种基于谱聚类的半监督学习的软件缺陷预测方法,所述步骤4)中,其特征在于,所述特征偏离分数是指一个特征所具有的违反软件缺陷预测的启发式规则的软件实体个数占总软件实体个数的比例;所述违反软件缺陷预测的启发式规则具体包括如下两种情况:
a)该特征的复杂度超过阈值,但其所对应的软件实体被判定为无缺陷软件实体;
b)该特征的复杂度小于阈值,但其对应的软件实体被判定为有缺陷软件实体。
6.根据权利要求1所述的一种基于谱聚类的半监督学习的软件缺陷预测方法,其特征在于,所述新的特征矩阵,是指经过步骤4)特征选择后获得的矩阵;所述步骤5),具体为将新的特征矩阵重复经过步骤2)的聚类和步骤3)的标签操作,获得最终预测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学;华南理工大学梅州技术研究院,未经华南理工大学;华南理工大学梅州技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010999235.1/1.html,转载请声明来源钻瓜专利网。