[发明专利]一种面向软件缺陷预测的加权朴素贝叶斯方法有效
申请号: | 201910700517.4 | 申请日: | 2019-07-31 |
公开(公告)号: | CN110515836B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 王兴起;王赛;魏丹;陈滨;邵艳利;王大全 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F18/214;G06F18/2415;G06F18/22 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杨舟涛 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 软件 缺陷 预测 加权 朴素 贝叶斯 方法 | ||
1.一种面向软件缺陷预测的加权朴素贝叶斯方法,其特征在于包括如下步骤:
步骤1)收集软件缺陷样本,构建测试集与训练集;对于测试集的每个特征列,求出该特征列各个的特征值以及每个特征值出现的次数;用list存放测试集每个特征的特征值及其出现次数的元组,用HashMap来存储每个特征值及其出现次数:
list=[dict1,dict2,…,dictk]
其中,dictj={key1,value1,key2,value2,…,keym,valuem};
k表示特征个数;
m表示测试集第j个特征中不同特征值的个数;
dictj表示测试集第j个特征的特征值及其出现次数的元组;
keyp表示测试集某列特征的特征值;
valuep表示keyp在该特征列出现的次数;
步骤2)计算训练集样本每个特征值在测试集同一特征列所占的概率h(aij);
其中,dictj.keyp表示第j个特征中的第p个特征值;count表示测试集样本个数;
aij表示训练集第i个样本的第j个特征
步骤3)计算训练集每个样本与测试集样本的相似度,并把相似度作为每个样本的权重;
相似度的计算方法为训练集样本每个特征值在测试集同一特征列所占的概率之和;计算公式为:
其中,n表示训练集样本的个数;
k表示特征的个数;
wi表示训练集第i个样本的权重;
步骤4)基于加权的训练样本建立加权朴素贝叶斯分类器,判断测试集样本的类别,具体步骤如下:
4-1.计算先验概率;将c类的加权先验概率重新写为:
其中,wi为训练样本i的权重;
ci为训练样本i类属值;
n为训练样本总个数;
nc为总类别数;在预测模型中n=2;
δ(x,y)是指示函数;如果x=y,则δ(x,y)=1;若x≠y,则δ(x,y)=0;对于类c,相同类的训练数据的样本越多,先验概率越大;
4-2.计算条件概率;根据样本加权方法,第j个特征aj的条件概率为:
其中,aij为第i个训练样本中的第j个特征的值;
nj是第j个特征的不同值的数量;
4-3.计算测试集中样本u有无缺陷的概率,从而判断测试集样本的类别c(u);若样本u的有缺陷概率大于无缺陷概率,则视样本u的类别为有缺陷;否则,视为无缺陷;类别c(u)公式如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910700517.4/1.html,转载请声明来源钻瓜专利网。