项目质量模型中样本空间数据区间离散化问题,本质上是基于数据的分类问题。分类方法(Classification)用于预测数据对象的离散类别(Categorical Label)。
分类技术在很多领域都有应用,例如可以通过客户分类构造一个分类模型来对银行贷款进行风险评估;如文献检索和搜索引擎中的自动文本分类技术;安全领域有基于分类技术的入侵检测等等。
决策树、支持向量机、神经网络、机器学习、专家系统、统计学等领域的研究人员已经提出了许多具体的分类方法。下面对分类流程作个简要描述:
训练:训练集——>特征选取——>训练——>分类器
分类:新样本——>特征选取——>分类——>判决
其中的训练(训练:训练集——>特征选取——>训练——>分类器):
训练集,就是本次模型中的历史项目的样本数据;
特征选取,就是针对数据本身具有的输入,输出特性,进行划分。也就是说,这些数据要具有先验特性。
训练:就是将这些样本数据作为训练数据,放入分类方法(比如决策树)中进行训练,
分类器:训练后提取的规则结果,也就是规则库。
其中的分类分类:(新样本——>特征选取——>分类——>判决):
其实就是对下一个项目的数据进行质量评价的一种过程活动。
训练阶段,也就是获取离散化的区间–规则库(分类器),以便下一步对数据进行区间分类。分类后就可以根据分类的结果对项目质量进行评价。
针对目前项目质量确定的维度,进行了初步的特征划分,如下表:
序号 | 维度 | 初步特征 | 最大区间范围 |
1 | 严重bug数 / 测试用例数 | 待定 | |
2 | 第三轮测试出现的严重bug数 / 严重bug总数 | 越小越好 | [0,1] |
3 | 被reopen的严重bug / 严重bug总数 | 越小越好 | [0,1] |
4 | 第二轮测试用例执行通过率 | 越大越好 | [0,1] |
5 | 测试工作量(人月) / 测试用例数 | 待定 | |
6 | 严重bug平均关闭时间(天) | 越小越好 | (0,待定) |
7 | 测试环境失效时间(H) | 越小越好 | (0,待定) |
8 | Later的bug比例 | 越小越好 | [0,1] |
还有待对各个数据区间进行细分,以保证模型精度。
当我们的样本数据只具有输入,那么建议由测试项目负责人、测试主管、测试专家给出 由经验知识 对 区间详细划分,形成规则库。
当我们的历史项目该8个维度 样本数据具有先验特征,有输入,输出特性,则可以采取决策树、神经网络、支持向量机等分类方法进行数据的训练,形成规则库。
附:数据挖掘分类方法介绍
几种主要的分类方法简要介绍:
(1)决策树
决策树归纳是经典的分类算法。它采用自顶向下递归的各个击破方式构造决策树。树的每一个结点上使用信息增益度量选择测试属性。可以从生成的决策树中提取规则。
(2)神经网络
神经网络分类算法的重点是构造阈值逻辑单元,一个值逻辑单元是一个对象,它可以输入一组加权系数的量,对它们进行求和,如果这个和达到或者超过了某个阈 值,输出一个量。如有输入值X1, X2, …, Xn 和它们的权系数:W1, W2, …, Wn,求和计算出的 Xi*Wi ,产生了激发层 a = (X1 * W1)+(X2 * W2)+…+(Xi * Wi)+…+ (Xn * Wn),其中Xi 是各条记录出现频率或其他参数,Wi是实时特征评估模型中得到的权系数。神经网络是基于经验风险最小化原则的学习算法,有一些固有的缺陷,比如层数和神经元个数难以确定,容易陷入局部极小,还有过学习现象,这些本身的缺陷在SVM算法中可以得到很好的解决。
(3)SVM法
SVM法即支持向量机(Support Vector Machine)法,由Vapnik等人于1995年提出,具有相对优良的性能指标。该方法是建立在统计学习理论基础上的机器学习方法。通过学习算法,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。该方法只需要由各类域的边界样本的类别来决定最后的分类结果。
支持向量机算法的目的在于寻找一个超平面H(d),该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM法亦被称 为最大边缘(maximum margin)算法。待分样本集中的大部分样本不是支持向量,移去或者减少这些样本对分类结果没有影响,SVM法对小样本情况下的自动分类有着较好的分类结果。