摘要: 利用软件中的历史缺陷数据来建立分类器,进行软件缺陷的检测. 多核学习(Multiple kernel learning):把历史缺陷数据映射到高维特征空间,使得数据能够更好地表达: 集成学习(ensemble learning):使用一系列的分类器来减少由主类带来的分类误差,使具有更好的检测结果. 本文采用集成学习的方法构建一个多核分类器,集多核学习和集成学习的优点,提出方法: propose a multiple kernel ensemble learning (MKEL) appr…
摘要: 提出一种方法——ELBlocker,用于自动检测出Blocking Bugs(prevent other bugs from being fixed). 难度在于这些Blocking Bugs仅占很小的比例( the class imbalance phenomenon). 方法:给定一个训练集,ELBlocker首先把将训练数据划分为多个互斥的集合.对每个集合建立一个分类器,然后根据混合分类器的结果,设定一个阈值(决策边界),把 blocking bugs from non-blocki…
摘要: 本文主要是评估多种监督机器学习算法的有效性,这些算法用于判断一个错误报告是否是reopened的,算法如下: 7种监督学习算法:kNN,SVM, SimpleLogistic,Bayesian Network, Decision Table, CARTand LWL: 3种集成学习算法: AdaBoost,Bagging and Random Forest. 实验结果表明: 评判的指标:accuracy scores和 F-Measure scores Bagging  and  Dec…
摘要: 目前有许多的bug定位技术,但是,由于他们基于不同的数据集,而且有些数据集还不是公开的,甚至有些技术只应用于小数据集,不具有通用性,因此,不好比较这些技术之间的优劣. 因此,BOAT应运而生.BOAT是指:Bug lOcalization experimental plATform.这是一个web平台,开发者注册之后,可以在这上面上传他们的bug定位技术,因为在这个平台上测试的数据集是相同的,所以与其他的bug定位技术具有可比性. 地址:http://www.vlis.zju.edu.c…
abstract: 代码克隆的综述 S1    INTRODUCTION AND MOTIVATION 代码克隆的利弊: 利:可以有效地去耦合,避免其他一些可能的错误: 弊:当被复制的那段code中带有bug的话,他的复制版本中都会含有bug. 但是代码克隆操作又是不可避免的,因此,代码克隆应该得到有效的检测和管理. S2    A SYSTEMATIC REVIEW OF CLONE LITERATURE Robert Tiras搜集了一个从1994~2013的论文库,主要分为以下几类: 1.…
摘要 对软件构建过程中所产生的错误(build process bugs)进行实证研究. 5个开源项目:CXF, Camel, Felix,Struts, and Tuscany. 把build process bugs 和 other bugs在3个维度比较:bug severity, bug fix time, the number of files modified to fix a bug. 结论表明, Ⅰ.the fraction of build process bugs which are…
if you aggregate the predictions of a group of predictors,you will often get better predictions than with the best individual predictor. a group of predictors is called an ensemble:this technique is called Ensemble Learning,and an Ensemble Learning a…
Bagging 全称是 Boostrap Aggregation,是除 Boosting 之外另一种集成学习的方式,之前在已经介绍过关与 Ensemble Learning 的内容与评价标准,其中“多样性”体现在应尽可能的增加基学习器的差别.Bagging 主要关注增大 “多样性”,他的做法是这样的,给定训练集 $D$ ,对 $D$ 进行 Bootstrap 采样,得到若干个不同的子集,Bootstrap 会确保各个子集有一定的交集,分别在各个子集上训练得到基分类器并且组合起来共同进行决策. B…
定义 集成学习是一种机器学习范式,其中多个学习器被训练来解决相同的问题. 这与试图从训练数据中学习一个假设的普通机器学习方法相反,集成方法尝试构造一组假设并将它们结合使用. 一个集合包含一些通常被称为基础学习器的学习器. 一个集合的泛化能力通常比单个基础学习器的泛化能力强得多. 实际上,集成学习具有极大吸引力,因为它可以将弱于随机猜测的弱学习器提升为能够做出非常准确预测的强大学习器. 所以,“基础学习器”也被称为“弱学习器”. 然而,值得注意的是,尽管大多数理论分析都是针对弱学习器的,但实践中使…
1. ensemble learning 集成学习 集成学习是通过构建并结合多个学习器来完成学习任务,如下图: 集成学习通过将多个学习学习器进行结合,常可以获得比单一学习器更优秀的泛化性能 从理论上来说,使用"弱学习器"集成足以获得好的性能,当实践中出于种种考虑,人们往往会使用比较强的学习器. 以下面为例,集成学习的结构通过投票法Voting(少数服从多数)产生: 由上面可以看出:个体学习器应该"好而不同",即个体学习器要有一定的"准确性",并且…