[发明专利]一种基于谱聚类的半监督学习的软件缺陷预测方法有效
申请号: | 202010999235.1 | 申请日: | 2020-09-22 |
公开(公告)号: | CN112148605B | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 陆璐;周璇 | 申请(专利权)人: | 华南理工大学;华南理工大学梅州技术研究院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 陈宏升 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 谱聚类 监督 学习 软件 缺陷 预测 方法 | ||
本发明公开了一种基于谱聚类的半监督学习的软件缺陷预测方法,包含以下步骤:1)获取原始数据,进行数据预处理操作,得到处理后的特征矩阵;2)判断特征矩阵有无标签:对于无标签数据,通过谱聚类进行聚类;通过软件缺陷预测的启发式规则对获得的聚类进行标签操作,得到伪标签,然后转到步骤3);对于有标签数据,直接转到步骤3);3)根据数据分布计算特征偏离分数并进行特征选择,其中原有标签数据所占权重大于伪标签数据所占权重;4)根据新的特征矩阵再次进行聚类和打标签操作,得到预测结果。本发明减少了无关及冗余特征对模型结果的影响,利用了项目原有标签数据的信息,能够有效提高软件缺陷预测结果的准确性,增加模型的适用性。
技术领域
本发明涉及软件缺陷预测领域,特别涉及一种基于谱聚类的半监督学习的软件缺陷预测方法。
背景技术
软件缺陷预测是一个预测软件实体是否有缺陷的过程。随着当代软件规模的不断扩大,软件缺陷预测作为一项可以帮助减轻软件测试人员负担,优化开发人员和测试人员配置的技术,受到了越来越多的关注。实践证明,在开发完成后发现并修复缺陷的花费比在开发时发现并修复缺陷的花费高很多。所以,在软件生命周期的早期就引入软件缺陷预测十分重要。但目前在工业界上,软件缺陷预测的应用仍然较少。这主要是因为目前软件缺陷预测领域的研究多是监督学习,但在实际中,标签数据往往是少量的,且收集这部分的数据是一项费时费力而且容易出错的任务。
为了解决这个问题,跨项目的软件缺陷预测作为一种解决方案被提出。跨项目的软件缺陷预测使用具有充足历史数据的项目来进行训练,获得的模型用于预测新的项目。这种方案遇到的主要问题是项目之间的异质性:一方面,不同项目收集的可能是不同属性;另一方面,即使选择了具有相同属性的源项目和目标项目,两者的属性分布仍然存在差异,使用源项目训练出来的分类器不一定适用于目标项目。同时,无监督学习也被用于解决标签数据缺乏的问题,无监督学习主要由以下两步组成:1)将数据进行聚类;2)对不同的类簇进行标签判断对应类簇是否有缺陷。但在实际项目拥有的数据往往是少部分有标签数据和大部分无标签数据的集合,上述两种方案都假设目标项目没有任何历史标签数据,损失了一部分可利用的已知信息,降低了模型的表现性能。
此外,目前已有研究的主要关注点在于构造一个可用的模型而没有关注特征选择。然而,使用的大量无关或冗余的特征不仅会浪费计算资源,还使得预测模型表现下降。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于谱聚类的半监督学习的软件缺陷预测方法,该方法利用增加了特征选择的谱聚类,不仅减少了无关及冗余特征对模型结果的影响,还适应了在实际生产中往往只有少量标签数据和大量无标签数据的情况,利用了项目原有标签数据的信息,能够有效提高软件缺陷预测结果的准确性,增加模型的适用性。
本发明的目的通过以下的技术方案实现:
一种基于谱聚类的半监督学习的软件缺陷预测方法,包含以下步骤:
1)从数据库中获取原始数据,进行数据预处理操作,得到处理后的特征矩阵;
2)判断特征矩阵有无标签:
对于无标签数据,通过谱聚类进行聚类;通过软件缺陷预测的启发式规则对获得的聚类进行标签操作,得到伪标签,然后转到步骤3);
对于有标签数据,直接转到步骤3);
3)根据数据分布计算特征偏离分数并进行特征选择,其中原有标签数据所占权重大于伪标签数据所占权重;
4)根据新的特征矩阵再次进行聚类和打标签操作,得到预测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学;华南理工大学梅州技术研究院,未经华南理工大学;华南理工大学梅州技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010999235.1/2.html,转载请声明来源钻瓜专利网。