没有合适的资源?快使用搜索试试~ 我知道了~
-沙特国王大学学报基于三级学习的IF区块跨项目测井预测Sangeeta Lala,Neetu Sardanaa,Ashish Surekaba印度北方邦诺伊达Jaypee信息技术学院b印度班加罗尔ABB公司研究所阿提奇莱因福奥文章历史记录:2017年1月27日收到2017年6月13日修订2017年7月17日接受在线提供2017年A B S T R A C T源代码中的日志语句在调试时为软件开发人员提供了重要的执行信息。预测必须记录的源代码结构是一项技术挑战任务。机器学习模型在文献中广泛用于测井预测。这些模型可能不适合小型或新项目,因为这些项目没有足够的先验数据来训练预测模型。对于这样的场景,跨项目日志预测可能是有用的,其中从标准项目获得的知识用于构建模型。本文提出了一种用于跨项目区块测井预测的三级模型CLIFCLIF首先将文本特征转换为数字-文本特征(Level-1)。CLIF然后将数字-文本特征与布尔和数字特征相结合(Level-2)。由于只有很少的代码结构被记录,CLIF最终学习一个有效的不平衡决策阈值边界,以预测记录/非记录的代码结构(级别3)。我们使用2个文本挖掘分类器(1级)和8个机器学习分类器(2级),共生成16个CLIF分类器。我们评估了CLIF分类器在三个开源项目(六个源目标项目对)上的性能。实验结果表明,CLIF优于现有的LogOpt-Plus模型,平均F1分数提高了8.21%,平均ROC-AUC提高了4.89%。©2017作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍日志记录是一种重要的软件开发实践,它通过在源代码中插入日志语句来执行。日志语句有助于记录程序的执行信息。执行信息是指调试语句和开发人员希望记录在日志文件中的任何变量的值,这些日志文件可用于诊断或故障排除。例如,web服务器应用程序可以记录时间戳、客户端IP地址和完整的URL,包括每当抛出未找到文件的异常时所请求的文件的名称不仅仅是错误和警告,开发人员可能还希望记录指示事件成功的信息此执行*通讯作者。电子邮件地址:sangeeta@jiit.ac.in(S.Lal),neetu. jiit.ac.in(N.Sardana),ashish. in.abb.com(A. Sureka)。沙特国王大学负责同行审查制作和主办:Elsevier软件开发人员在调试时可以使用这些信息。日志记录很重要,因为这通常是软件开发人员用于调试的唯一可用信息。日志记录在若干其他应用中也是有用的,诸如异常检测(Fu等人,2009)、性能问题诊断(Nagaraj等人,2012)和远程问题解决(Blackberry企业服务器日志提交,2016)。清单1显示了一个包含日志状态的if块的示例如果if-blocks条件中的表达式的计算结果为true,则系统将在log语句中记录该字符串开发人员可以在调试或其他软件开发应用程序中使用此信息。这个日志optput 被 发 现 在 修 复 Hadoop 项 目 中 的 bug 5501 ( Hadoop ,2016a)时很有用日志状态可以选择指定详细级别,如日志语句的详细级别指示日志语句的严重性。日志语句在软件启动时使用日志启用命令(如“-enable-logging v = 1”)启用。开发人员还可以在if块中插入日志语句,检查日志级别,即,它们具有类似于“log. isloggEnable ( ” 的 表 达 式 。 只 有 当 日 志 级 别 设 置 为 “debug” 或“lessverboselevel”时,才会记录此类if-blocks中的语句清单1:一个记录的if-block和从它生成的部分日志的示例(取自Hadoop项目)。http://dx.doi.org/10.1016/j.jksuci.2017.07.0061319-1578/©2017作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com南482号Lal等人 /Journal of King Saud University- Computer and Information Sciences 31(2019)481- 496测井很重要,但它需要在成本和效益之间进行权衡。过多的日志记录可能会导致成本和性能开销,而稀疏日志记录可能会遗漏重要的调试信息,从而减少日志记录的好处。Ding et al.(2015)和Sigelman etal.(2010)基于实验研究揭示,在搜索引擎的情况下,日志记录对系统性能的影响可以表示为吞吐量减少1.48%或请求的平均执行时间增加16.3%。Apache Log4j library1上的文档提供了有关各种Log4j变量的响应时间、吞吐量和延迟的基准测试表明,日志记录决策和选择可以影响性能的30-100倍。因此,优化源代码中日志语句的数量非常重要。然而,以前的研究表明,优化源代码中的日志语句是一项重要的任务,软件开发人员经常面临困难(Fu等人, 2014年)。因此,最近的几项研究提出了基于机器学习的测井预测模型,以帮助软件开发人员做出战略测井决策(Fu et al.,2014年;Zhu等人,2015; Lal和Sureka,2016;Lal等人,2 0 1 6 年b)。基于机器学习的预测需要足够量的训练数据来训练预测模型。Xia等人(2015a)进行了一项实验,他们比较了使用不同数量的训练数据构建的机器学习模型他们的实验结果表明,使用大量数据构建的机器学习模型比使用少量数据构建的模型具有更例如,使用90%的数据构建的模型给出65.8%的F1分数,而使用5%的数据构建的模型给出55.4%的F1分数。然而,值得注意的是,一些真实世界的软件项目是新的或小的。新项目(处于启动阶段的项目)或小项目(规模较小的项目)没有足够的先验数据来训练预测模型。在这种情况下,我们可以使用跨项目预测来在先前开发的源项目上训练测井预测模型,以在目标项目上执行测井预测。跨项目预测是一个流行的机器学习研究领域(Dai et al.,2007; Pan等人,2011),并且还被用于许多软件工程应用中,例如缺陷预测(Nam等人,2013)和构建共变预测(Xia et al.,2015年a)。跨项目预测具有挑战性,主要有两个原因。首先,源项目可能无法泛化到目标项目。第二,源代码中正类和负类数据点的分布不平衡,即,阶级不平衡问题(He and Garcia,2009)。例如,在Tomcat、CloudStack和Hadoop项目中,分别只有8.37%、8.64%和10.6%的if-blocks被记录Lal等人(2017年)研究了跨项目捕获区块测井预测,然而,目前(据我们所知)还没有关于跨项目if区块测井预测的研究因此,跨项目if-blocks测井预测是一个相对未开发的领域。在这项工作中,我们提出了一种新的三个层次,基于机器学习的跨项目IF块日志预测模型(CLIF)。在第一级,CLIF使用文本挖掘方法将文本特征转换为数字文本特征(请参阅第3节以获取有关文本特征转换为数字文本特征的详细信息)。在第二层,CLIF将数字文本特征与数字和布尔特征相结合,并训练机器学习分类器。在第三层,CLIF学习一个有效的决策阈值边界的if-blocks日志预测。CLIF搜索最大化Logged F-measure(LF)的有效阈值边界(即,F1-评分,详情参见第4.3节),以解决类别不平衡挑战。在这项工作中,我们使用两个文本挖掘分类器(朴素贝叶斯(NB)和贝叶斯网络(BN))转换文本特征的数值文本特征。我们使用BN和NB文本挖掘类,因为它们在我们的初步调查中提供了良好的结果(请参阅第5.1节)。 CLIF将这两个文本挖掘分类器与八个机器学习分类器( Adaboost ( ADA ) 、 ADTree ( ADT ) 、 BN 、 J48 、 LogisticRegression(Logistic Regression)、NB、Random Forest(RF)和Support Vector Machine(SVM))相结合,以生成16个CLIF分类器,即,8个CLIFNB和CLIFBN分类器。我们在三个大型开源项目上评估CLIF,即,汤姆cat ( Apache , 2016 ) , CloudStack ( Cloudstack , 2016 ) 和Hadoopt(2016 b),共同由104,043个if-block组成。我们考虑Lal等人(2016 b)提出的用于Java项目中项目内if-blocks日志预测的Lop-tOptPlus模型作为基线分类器。LogOptPlus分类器不是为跨项目设置设计的然而,在这项工作中,我们认为LogOptPlus作为基线分类器,因为没有其他分类器被提出并在与这项工作中实验结果表明,CLIF能有效地提高跨项目区块预测的性能总体而言,几个CLIFNB和CLIFBN分类器优于基线分类器。CLIFADT,CLIFADT,ADTBN NB BN NB1https://logging.apache.org/log4j/2.x/performance.html。和CLIFNB,分别提高了8.21%、8.18%、NB BN NBS. Lal et al./Journal of King Saud University- Computer and Information Sciences 31(2019)481-496483平均Logged F-分别为8.16%、8.15%、7.66%和7.16%,平 均 ROC 曲 线 下 面 积 ( RA ) 分 别 改 善 3.85% 、 4.15% 、 3.34% 、4.89%、2.23%和4.12%。我们相信,我们的工作是有效的跨项目if-block测井预测的第一步。2. 相关工作和研究贡献在本节中,我们讨论了与本文所述工作密切相关的先前研究,以及本文所述工作的新颖研究2.1. 测井预测在软件工程研究社区中,日志预测已经吸引了许多研究者的注意力(Fu等人,2014年; Zhu等人,2015; Lal和Sureka,2016; Lal等人,2016 b,a,2017)。 Fu等(2014)和Zhu et al. (2015)提出了基于机器学习的模型,用于在C#pro-tools上对异常类型和返回值检查片段进行项目内日志预测。C/C#/ Java语言在语法上都有很多不同例如,C不是一种面向对象的语言。C也相比之下,C#和Java都是面向对象的语言,并且有try/catch块来捕获代码中的异常条件。类似地,Java有一个“检查异常”的概念因此,需要对每种语言进行专门研究,以深入了解每种语言的伐木做法Lal等. (Lal和Sureka,2016; Lal等人,2016 b)提出了LogOpt和LogOptPlus模型,分别用于Java项目的捕获块和if块的项目内日志预测。 在另一项工作中,Lal等人。(2017)提出了ECLogger,用于跨项目捕获块日志预测的模型。与这些研究相比,我们致力于提高Java项目上的跨项目if-blocks日志预测。我们使用Lal等人(2016 b)提出的LogOptPlus模型作为基线方法,因为目前,这是Java项目上唯一可用的if-blocks日志预测模型 在这项工作中,我们针对if块,因为它们是最频繁记录的代码片段之一(Fu等人, 2014年)。然而,所提出的模型CLIF可以很容易地扩展到其他代码片段。2.2. 跨项目测井预测跨项目预测或迁移学习是一个流行的机器学习研究领域(Dai等人,2007; Pan等人,2011年)。跨项目预测可以是无监督的或有监督的(Dai等人,2007; Pan等人,2011年)。在无监督预测中,来自目标项目的所有实例都是未标记的,而在监督预测中,只有一部分目标项目实例被标记。例如,Lal et al.(2017)研究了捕获块的跨项目预测。他们没有考虑目标项目中的任何实例来构建模型,因此进行了无监督的跨项目预测。Xia et al.(2015a)致力于跨项目构建协同变化预测。Xia等人考虑来自源项目的所有实例和来自目标项目的5%的实例来构建跨项目构建协同变化预测模型,因此,致力于有监督的跨项目预测。跨项目预测已经应用于若干应用,诸如缺陷预测(Zhang等人,2015),构建协同变化预测(Xia et al., 2015a),情绪预测(潘和杨,2010)。然而,跨项目测井预测是一个相对未开发的领域。Zhu等人(2015)测试了他们提出的工具LogAdvisor用于跨项目日志预测的有效性,并报告了与项目内预测相比,跨项目预测的模型性能下降了Lal et al.(2017)提出了ECLogger,这是一种基于集成的跨项目捕获块测井预测模型。与Lal等人相反,我们的工作在几个方面都是新颖的。首先,我们的工作跨项目,如果块测井预测,而,拉尔等人。开展跨项目集水区测井预测工作。其次,ECLogger使用装袋,平均投票和多数投票集成技术进行跨项目的测井预测。而CLIF使用三级学习进行跨项目预测。ECLogger没有解决类不平衡的问题。而CLIF学习一个合适的阈值边界,以改善不平衡数据集上的跨项目预测。2.3. 不平衡数据类不平衡是机器学习研究领域的一个众所周知的问题。当负类实例的计数远远高于正类实例的计数时,就会发生这种情况较旧的机器学习算法被设计用于平衡数据,因此在不平衡数据的情况在文献中已经提出了几种方法来解决类别不平衡问题(Chawla等人,2002,2003; Kubat等人,1997; Guo和Viktor,2004)。数据采样是解决类不平衡问题的主要方法 先前关于测井预测的研究或者使用主要类别欠采样(Fu等人,2014; Lal和Sureka,2016;Lal等人,2016b)或少数群体过采样(Zhu et al.,2015年,解决了社会不平衡问题。然而,确定一个合适的采样技术是一个不平凡的任务。基于评价指标的方法为不平衡数据的性能评价提供了新的评价指标。F1评分和ROC曲线下面积是不平衡数据集的两个流行且广泛使用的评估指标(Xia等人, 2016; Xia等人, 2015a; He and Garcia,2009). 因此,我们使用F1-score和ROC曲线下面积作为评价指标,用于比较不同模型的性能基于阈值调整的方法致力于学习更好的阈值,因为0.5的默认决策阈值可能不适合不平衡数据集的情况。夏等人(2015 b)提出了一种阈值学习方法,用于在不平衡数据集上进行错误预测。我们使用Xia等人提出的方法进行跨项目if块测井预测中的阈值学习,据我们所知,该方法从未在此上下文中使用过。2.4. 研究贡献在相关工作方面,本文的研究具有以下新颖独特的研究贡献。1. 我们提出,CLIF,一个新的,三个层次的学习为基础的模型,跨项目的如果块日志预测Java项目。我们使用两个文本特征处理分类器和八个机器学习分类器。 我们创建了八个CLIF NB和八个CLIFBN分类器,即,共16个CLIF分类器(参见第3节)。2. 我们提出了三个大型开源Java项目的综合评估结果,即,Tomcat(2016)、Cloudstack(2016)和Hadoopt(2016b)。我们使用两个度量LF和ROC曲线下面积来比较CLIF和基线(LogOptPlus)分类器的预测性能。结果表明,CLIF在提高跨项目if-blocks测井预测性能方面是有效的(参见第5节)。3. CLIF模型创建图1展示了所提出的CLIF框架的概述。CLIF包括两个主要阶段:模型构建阶段和FVYFVML484S. Lal等人 /Journal of King Saud University- Computer and Information Sciences 31(2019)481- 496图1.一、建议的CLIF框架概述,L1:1级,L2:2级,L3:3级表1在CLIF算法(算法1)和阈值估计算法(算法2)中使用的符号。符号含义符号含义P项目PX项目X,其中X2Tomcat(T)、CloudStack(C)和Hadoop(H)SP源项目A算法TP目标项目AX算法X,其中X2{ADA、ADT、BN、J48、J48、NB、RF、SVM}TH判定阈值正文- ALGO文本挖掘分类器IBIf-嵌段IBXIf-类型X的嵌段,其中X2 {SP,TP}3.1. 阶段1:(模型构建阶段)3.1.1. 训练集(第1步)我 们 的 实验 数 据 集 由 三 个 项目 组 成 : Tomcat , CloudStack 和Hadoop。我们将一个项目视为源项目(SP),即,培训项目,另外两个项目作为目标项目(TP),即,测试项目,在特定情况下的单个项目。使用这个,我们创建了六个源和目标项目对(参见算法1中的第6-10行)。CLIF从源项目中提取所有已记录和未记录的if-block(IBSP)用于训练。3.1.2. 特征提取(步骤2)FV特征向量^对文本特征进行Lal et al.(2016 b)提出了28个基于Java项目的if-block日志预测功能。Lal等人按术语对特征进行域(if,method_bi和其他),类型(布尔,数值,^过滤不需要的特征ZFVX域Y和类型Z的相位X的特征向量2{SP,TP},Y2{初始(I),最终(F)}和Z2 {文本(T),数值(N),布尔(B),数值文本特征(NT)}和文本),和类(积极和消极)。域指定从中提取功能的源代码部分。如果特征是从if块中提取的,那么它将具有域PD预测结果THCLIFACLIF分类器使用文本挖掘分类器ML,算法A,并带有阈值TH目标if块的前一行将具有域如果特征是从源代码的其他部分提取的,则它将具有域例如,od_bi [LM]RTD随机化培训数据i,j,ML,a临时变量log语句或没有)具有域“method_bi”。特征的类型指定特征是倾斜特征可以取值为数值特征可以采用任何实(+ve)值。文本特征可以采用任何“文本”值。例如,预测阶段(参考图)①的人。在模型构建阶段,我们从源项目的标记实例构建跨项目if-blocks日志预测模型(步骤1-步骤6)。在预测阶段,在模型构建阶段学习的CLIF分类器用于预测目标项目中新实例的标签(步骤7)(见表1)。目标if块的“检查条件”。要素的类可以是“积极”或“消极”。正类特征在预测记录的if块中是有益的,并且负类特征在预测未记录的if块中是有益的。例如,我们使用所有28个功能SPSPSPSPSPFVTPTPTPTPIBFVFVFV不ft;d g ft;d gDFtSPTP= ExtractTextualFeatures(IBTP)不SPTTPMLTPTPTPTPS. Lal et al./Journal of King Saud University- Computer and Information Sciences 31(2019)481-496485表2用于跨项目if-blocks测井预测的功能。这些特征取自Lal等人先前发表的工作[23]。P,I:class = positive,domain = if; P,M:class = positive,domain = method_bi; P,O:class = positive,算法1 CLIF算法1:程序CLIF第二章:P ¼ fPT;PC;PHgdomain = other; N,I:class = negative,domain = if;以及N,M:class = negative,domain = method_bi。3:ALGO ¼fAADA;AADT ;ABN ;AJ48 ;ALR ;ANB ;ARF ;SVMg特征类型S.功能功能描述否第四章:正文- ALGO ¼ fANB;ABNg第五章:对于所有ML2 TEXT - ALGO,布尔1。记录方法_BI [LM](P,M)2.方法具有参数[PM](P,O)method_bi部分中存在/不存在日志语句包含方法有参数6:对于所有的S2P做7:对于所有的T2P做8:如果S9:SP ¼S,TP ¼T10:IBSP= ReadCompleteData(SP)3.方法_BI中的IF [IM](P,M)method_bi部分中是否存在if-语句11:TFVI12:NFVF= ExtractTextualFeatures(IBSP)= ExtractNumericalFeatures(IBSP)4.[NC](P,I)if-块的条件检查13:BFVF= ExtractBooleanlFeatures(IBSP)5.InstanceOf Condition[IOC](P,I)if-block检查“InstanceOf”的条件14:TFVF15:NTFVF=预处理(TFVI)=生成数字文本特征6.Throw/Throws in IF块[TTI](N,I)存在/不存在投掷/if块中的ThrowsSP(FVF;ML)7.Throw in/投进存在/不存在投掷/第16章:FVF= fNTFVF ;NFVF ;BFVFg方法_BI [TTM]method_bi节十七:SPSPSP SP8.返回IF块[RI](N,存在/不存在对于所有的A2 ALGO做I)if块语句第18章:一个人ML = BuildModel( ISPA)9.返回方法_BI存在/不存在第19章:一个女人=保留估计(CLIFA)[RM](N,M)method_bi中的语句部分二十:ML MLFVI10.在方法_BI [AM]中声明(N,M)11.在IF块中断言[AI](N,I)method_bi节中是否存在“assert”语句存在/不存在if块语句21:NFVF22:BFVF23:TFVF24:NTFVF= ExtractNumericalFeatures(IBTP)= ExtractBooleanlFeatures(IBTP)=预处理(TFVI)=生成数字文本特征数值1.一、方法大小_BI [SM](P、method_bi部分的序列号。(FVF;TPFVF;2.Method_BI中的日志计数中的日志语句数第25章:一夜情¼ fNTFVF ;NFVF ;BFVFg[LCM](P、M)方法_bi部分。26:PD=应用模型(THCLIFA ;FVF)3.Method_BI [COM](P,M)4.Method_BI [VCM] 中的变量声明计数(P,M)5.方法参数计数[PCM](P,O)6.Method_BI [MCM](P,M)7.方法_BI [ICM]中的IF计数(P,I)文本1.Method_BI中的日志水平[LLM](P,I)2.Method_BI [OM]中的运算符(P,M)3.Method_BI[VNM](P,M)4.Method_BI [MNM]中的方法调用名称(P,M)5.方 法 参 数 ( 类 型 )[PTM](P,O)6.方 法 参 数 ( 名 称 )[PNM](P,O)7.容器包装名称[CPN](P,O)8.容 器 类 名 [CCN] ( P ,O)9.容器方法名称[CMN](P,O)method_bi部分中算术运算符的数量在method_bi节包含函数在method_bi节中调用的方法数。method_bi节method_bi部分中存在的log语句的日志级别method_bi部分中使用的算术运算符在method_bi节在method_bi部分中调用的方法名称在包含函数中调用的参数类型在包含函数中调用的参数名称包含if块由if块组成的类的名称由if块27:ML TP29:= ReadIfBlocks(P)30:返回三十一:32:过程ExtractTextualFeaturesIB33:TFV= getTextualFeaturesIB)三十四:返回T三十五:36:过程ExtractBooleanFeatures(IB)37:BFV= getBooleanFeatures(IB)三十八:返回B三十九:40:过程ExtractNumericalFeatures(IB)41:NFV= getNumericalFeatures(IB)四十二:返回N四十三:44:程序预处理(FV)45:T^= TF_IDFConversion(Stemming(StopWordRemoval(LowerCase(CamelCaseSeparation(T<$)四十六:如果是测试数据,则47:TF~V=FilterFeatureNotTrainData(48:T^)其他TF~V¼TF^10.IF表达式[EI](P,I)检查条件if块的(表达式)由Lal et al.(参见算法1中的第11表2列出了所有28个特征及其各自的域、类和类型。返回值TF~VTF-IDF¼TF×logN1IBFVFVFV不SPSPSP南486号Lal等人 /Journal of King Saud University- Computer and Information Sciences 31(2019)481- 4963.1.3. 预处理(步骤3)我们采用五种特征预处理技术对初始文本特征(TFVI 以获得最终的文本特征向量(TFVF )的方式.我们应用了骆驼大小写转换,小写转换,停止词删除,词干提取和tf-idf转换(Manning等人,2008年)。首先,我们将所有使用骆驼大小写形式连接的术语分开。例如,其次,我们把所有的项都转换成了n。例如,术语同时使用第三,我们从文本中删除所有的英语停止词,如停用词是文档中经常出现的术语。因为,它们出现在大多数文档中,它们被认为是非内容承载的。第四,我们应用词干分析并将所有术语转换为它们的根形式。词干提取是将词形变化还原为词根形式的过程。例如,术语“modifier”和“modify”将被转换为词根“mod-ifi”。变形形式的转换降低了特征空间的维数,从而有利于降低特征空间的时间和空间复杂度。第五,我们将所有术语转换为它们的Tf-Idf(术语频率-逆文档频率)表示。 Tf-idf是用于识别语料库集合中的给定文档中的单词的重要性的数值统计(Manning等人,2008年)。当量(1)给出了Tf-idf权的计算公式。由方程式(1)词频(TFt,d)表示词t在文档d中的频率,N是语料库中文档的总数,文档频率(DFt)表示词t在语料库中的频率。因此,tf-idf值对于文档中的频繁词增加,但随着词在语料库中的频率增加而减小使用这些预处理步骤,我们获得我们的最终特征(T_FV_F)(参见算法1中的第11、14、44-51行这些预处理步骤也已用于其他测井预测研究中(Zhu等人,2015; Lal和Sureka,2016; Lal等人,2016年b)。图2显示了在这项工作中应用的所有预处理步骤的说明性示例。3.1.4. 数字文本特征生成(步骤4)在前一步骤中执行的Tf-idf转换可以导致数千个特征,因为它们源自表示代码块的文档语料库中的所有术语因此,将所有这些文本特征与数值和布尔特征直接组合可能会稀释数值和布尔特征的权重因此,我们需要一种方法来规范化每个类别或类型的预测器的表示,以确保没有特征类会使结果产生偏差或减少其他类别的表示文本特征的转换或将文本特征合并为数值特征是一类特征相对于另一类特征的降维的一种方式。对特征进行简化以去除不相关的特征或识别主成分是机器学习中的一种众所周知的技术(Guyon和Elisseeff,2003;Liu和Yu,2005;Yu和Liu,2004)。因此,在这项工作中,我们探索了将所有文本特征转换为单个特征的可能性数字文本特征(参见图1中的第1级或第4步)①的人。通过这种方式,我们可以结合文本特征的功能,而不会削弱布尔和数字特征的效果Valdivia Garcia和Shihab(2014 )将文本特征转换为数字用于阻塞错误预测, Xia等人(2016)用于封闭问题预测。然而,它的用途和有效性方面的跨项目的if-blocks测井预测尚未探索。图3a示出了用于模型构建阶段的文本特征到数字文本特征的转换的步骤。在模型构建阶段,我们首先使用分层随机抽样将训练数据集分为两个相等的部分。分层抽样的主要优点是它可以捕捉样本中的关键人口特征。这种抽样方法在样本中产生与总人口成比例的特征。分层抽样也被软件工程中的其他研究所采用研究社区(Xia等人,2016年)。我们使用分层抽样将我们的训练数据集分为两部分,以便记录和图二、将文本特征转换为数字文本特征。FVFV日ML我NBNBML1/1MLP-S. Lal et al./Journal of King Saud University- Computer and Information Sciences 31(2019)481-496487图三.从文本到数字文本特征的转换。未记录的IF块在两个样本中相同。我们在第一个样本上训练文本挖掘分类器(使用tf-idf表示3.1.5. CLIF分类器学习(第5步)我们结合数值上,布尔和数字文本文本特征),并使用它来分配置信度分数(即,如果块被记录的可能性)到第二个中的每个如果块特征以获得最终特征向量(FS钙磷)(第16行,sample.类似地,我们还在第二个样本上训练了一个文本挖掘分类器(使用文本特征的tf-idf表示),并使用它来为第一个样本分配置信度得分。这些置信度分数被称为数字文本特征(NTFVF )(指算法1)。使用此,我们获得总共19个特征,即,11个布尔值、7个数值和1个数值文本特征。然后,我们训练八个主要的机器学习分类器(ADA,ADT,BN,NB,LR,NB,RF,SVM)以获得我们的初始CLIF分类器(算法1中的第8行)。 为例如,CLIFADA使用NB作为文本挖掘分类器创建,算法1和图3a)中的第15行。SPNBAdaboost作为一主要分类器 使用此我们创造的方法然后将这些数字文本特征与布尔十六个CLIF分类器即,CLIFADA CLIFADT CLIFBN、CLIFJ48、CLIFLR和数字特征以获得最终特征(FVF)。 图 2示出NB NBNB NB NBSPCLIFNB、CLIFRF CLIFSVM、CLIFADA、CLIFADT、 CLIFBN、CLIFJ48、CLIFLR文本到数字文本的转换的说明性示例NB NB NBBN BNBN BN BNCLIF NB、CLIF RF、CLIF SVM(参见图2中的级别2或步骤5)①的人。功能.在这项工作中,我们使用两个文本挖掘分类器,即,NB和BN(参见算法1中的第4行)。我们选择NB和BN,因为这两个分类器在我们的初步研究中为跨项目预测提供了最佳结果(参见第5.1节)。算法2阈值估计BN BN BN3.1.6阈值学习(步骤6)在对新实例的预测进行日志记录时,这些分类器将输出置信度得分(参见等式中的得分日志(2))。1:输入:列车数据(FSP机器学习算法(A))如果该置信度得分的值大于阈值,(TH)给定实例将被预测为已记录,否则文本挖掘分类器(2:输出:阈值()3:程序估计(训练)4:对于i=1,1≤10,i=i+1do5:RTD =随机化(FVF ( 一)它被预测为非记录的(参考等式10)。(2))。阈值的默认值为0.5,这在不平衡数据集的情况下可能不合适。因此,我们使用阈值学习来找到用于跨项目if块预测的最佳阈值(参见第36:分压RTDSP分为T1和T2两部分。T1占80%或图1中的步骤6)。我们使用阈值学习方法,而T2由剩余的20%组成。7: CLIF A=BuildClassifier(T1,A; ML)8:A由Xia et al. (2016)用于删除问题预测。算法-算法2给出了阈值学习算法的伪代码。它将训练集随机分为T1部分,score[i] = ApplyModel(CLIFML第九章:对于i =1,1≤10,i=i+1do、T2)T2使用随机抽样,以便记录和T1和T2中的未记录实例相同。T1包含80%的实例,T2包含剩余的20%第十章:对于所有的a=0,a≤1,a=a+0.01 do11:Fmeasure[i][a]=ComputeFmeasure(score[i],a)12:对于所有a=0,a1,a=a+0.01做10Fmeasure½i]½a]14:返回最大化平均LF的a(即,T2中if块的平均F测量)十五:预测块是否 记录;如果得分记录,则预测块是否记录TH:未记录;则为实例.接下来,我们使用T1构建一个分类器,并为T2中的每个if块输出一个置信度得分。最后,为了调整阈值,我们使用0.01的步长将阈值从0逐渐增加到1。我们为每个阈值计算LF。由于随机采样可能存在偏差,因此我们创建10个这样的随机样本,并输出使这10个随机样本的平均LF最比如说,对于CLIFADA分类器,使用0.18的阈值。因此,如果实例NB的置信度得分大于0.18,则CLIFADA将该实例NB预测为预测为使用通过这种方法,我们得到了我们的CLIF预测模型(CLIFA模型)。ð2Þ(参见算法1中的第1913:平均F测量[a] =10IBTPTPTPTPð Þ ¼×ð Þ我的天啊!ln!L南488号Lal等人 /Journal of King Saud University- Computer and Information Sciences 31(2019)481- 4963.2. 阶段2:(预测阶段)3.2.1. 预测(步骤7)在预测阶段,CLIF分类器用于预测新实例的标签(TP)在目标项目中。我们提取来自IF块的所有28个特征存在于测试集中。我们从数据集中提取所有三种类型的特征(文本、布尔和数值)。我们将步骤3中描述的所有预处理步骤(大小写转换、小写转换、停用词删除、词干提取和tf-idf)应用于初始文本特征。除了所有这些预处理步骤之外,我们还应用了一个过滤步骤。 在跨项目预测的情况下,训练集中存在的一些文本特征可能在测试集中不存在。我们从测试集中移除所有这样的文本特征,并获得我们的最终文本特征TFVF(算法1中的第46-48行)。接下来,我们将finalTP文本特征转换为数字文本特征NT FVF。图3b示出了用于测试数据集的数字文本特征生成的步骤。我们使用来自训练数据集的最终文本特征来学习文本挖掘分类器。然后使用分类器来预测测试数据集的置信度分数然后,这些置信度得分为表3实验数据集统计。TomcatCloudStackHadoop版本8 .第八条。0的情况。9四、3 .第三章。02.7.1SLOC273419849832915659Java文件203653506331IF区组总数169916539232143记录的IF-块1423人(8.37%)5653(8.64%)3407(10.60%)4.3. 评估指标在本小节中,我们描述了用于评估所提出的模型的性能的指标我们使用五个指标:精确度,召回率,F1评分,准确度,在ROC曲线(RA)下。所有这五个指标都被广泛使用,并已在以前的研究中使用(Kim等人, 2008; Lal等人,2016 b; Lal等人, 2017; Zhang等人, 2015年)。在预测时,分类器输出0到1之间的十进制分数如果这个分数的值高于我们学习的决策阈值,则相应的if块将被预测为比如说,对于CLIFADA,阈值为0.18(参见表5)。如果CLIFADA用作测试数据集的数字文本特征(参见第24行NB NB在算法1中)。我们通过组合布尔、数字和数字文本特征来获得最终的特征向量。然后,我们应用CLIF分类器对目标项目中存在的实例进行日志预测。如果CLIF分类器给出的置信度得分大于在训练阶段学习的
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)