CN117193718A - 一种有效的软件需求可跟踪性链接恢复的机器学习方法 - Google Patents
一种有效的软件需求可跟踪性链接恢复的机器学习方法 Download PDFInfo
- Publication number
- CN117193718A CN117193718A CN202311148402.1A CN202311148402A CN117193718A CN 117193718 A CN117193718 A CN 117193718A CN 202311148402 A CN202311148402 A CN 202311148402A CN 117193718 A CN117193718 A CN 117193718A
- Authority
- CN
- China
- Prior art keywords
- annotation
- code
- machine learning
- features
- demand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 43
- 238000011084 recovery Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000012549 training Methods 0.000 claims abstract description 38
- 230000000694 effects Effects 0.000 claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 11
- 238000002372 labelling Methods 0.000 claims abstract description 8
- 238000011156 evaluation Methods 0.000 claims abstract description 7
- 238000007781 pre-processing Methods 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 21
- 230000018109 developmental process Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 13
- 238000011161 development Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 12
- 238000003066 decision tree Methods 0.000 claims description 10
- 238000007637 random forest analysis Methods 0.000 claims description 9
- 238000002790 cross-validation Methods 0.000 claims description 6
- 150000001875 compounds Chemical class 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 5
- 239000013598 vector Substances 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 241000282836 Camelus dromedarius Species 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012417 linear regression Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000008676 import Effects 0.000 claims 1
- 230000010354 integration Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种有效的软件需求可跟踪性链接恢复的机器学习方法,包括:将待确定跟踪关系代码文件按规则对代码特征和注释特征进行分类提取并标注融合,然后按标注维度对描述代码语料进行组合;将组合的不同代码语料分别与需求语料预处理,并基于信息检索模型对数据进行特征提取;输入不同的特征数据对基于机器学习模型进行训练预测评估,选出最佳效果的代码语料组合;利用集成算法将机器学习模型结合起来并用最佳效果的特征数据训练出新的分类器进行预测。本方法解决了代码语料利用率不足而造成负面的影响,利用集成算法得到了有效的预测模型,既保证软件需求可跟踪性链接恢复的准确度,又降低恢复成本,且无需人工参与,提高自动化程度。
Description
技术领域
本发明属于计算机技术软件工程需求跟踪领域,尤其涉及一种有效的软件需求可跟踪性链接恢复的机器学习方法。
背景技术
软件系统通常由各种各样的软件制品组成,例如需求说明、设计文档、用例、代码、错误报告和测试用例。软件需求跟踪试图发现这些软件制品之间的关系。在不同的制品之间建立可跟踪性链接,使得需求文档到实现软件制品的映射成为可能,这扮演着重要的角色。用例和源代码是软件开发过程中常见且重要的软件制品,工程师通常关注用例和源代码之间的可跟踪性链接。在规范的软件开发过程中,需要在整个系统生命周期中创建和维护可跟踪性链接。遗憾的是,维护可跟踪性链接通常是手工的,这既耗时又容易出错。因此,由于软件开发中的时间压力,这种可跟踪性链接在实践中通常是缺失的。尽管在自动化需求跟踪方面已经做了大量的研究,但是自动化技术经常受到噪声的影响,产生大量的误报环节,导致精度低。
近年来,研究人员提出了各种自动化创建和维护跟踪链接任务的解决方案,包括信息检索和机器学习。信息检索方法是计算需求文本与代码文本之间的相似度,依赖预先设定的阈值筛选软件需求所跟踪链接,大大节省了人力成本,但是性能往往不能达到预期。机器学习方法可以更有效地通过提取和构建软件需求与代码文件的文本特征,以及训练有效分类器预测软件需求和代码文件之间的跟踪链接,并达到比信息检索方法更好的性能。然而,这些方法都是依赖于软件文件的丰富和高质量的文本信息才能获得更好的效果。
目前现状是针对代码文件用到的更多代码信息是类名,方法名,API序列,代码块之间的结构关系等,一部分技术也使用到了注释的信息,但是对注释特征的使用大多是简单的关键字提取等,并没有对注释信息进行深入的挖掘和利用。如何有效的利用注释信息,将更多的注释信息利用在代码语料中来训练模型没有考虑,如何更加有效的利用注释,同时结合其他代码特征进行丰富代码语料库,是提高模型预测准确率所迫切需要的。此外,在需求跟踪领域使用的机器学习模型,虽然通过优化算法和调节算法参数可以比原有的单一算法模型具有更高的精度,泛化能力也有所增强。但由软件代码文件的数据相对复杂,单一的预测算法模型有自身的局限性,存在泛化能力不强的问题。因此,为了提高需求跟踪链接恢的准确率,解决这些问题成为了研究的重点。
发明内容
有鉴于此,本发明提供了一种有效的软件需求可跟踪性链接恢复的机器学习方法,目的在于,提高代码文件信息的利用率,减小代码语料利用率不足而造成负面的影响,提高软件需求可跟踪性链接恢复的准确率,降低恢复成本,减少人工,提高自动化程度和项目的工作效率。
为实现上述目的,本发明提供了一种有效的软件需求可跟踪性链接恢复的机器学习方法,包括以下步骤:
步骤1,将待确定跟踪关系代码文件按规则对代码特征和注释特征进行分类提取并标注融合,然后按标注维度对描述代码语料进行组合;
步骤2,将组合的不同描述代码语料分别与需求语料进行预处理,并基于信息检索中使用最多的若干个模型对预处理后的数据进行特征提取;
步骤3,输入不同的特征数据对基于机器学习需求跟踪领域中使用最多的若干个模型进行训练预测评估,选出最佳效果的描述代码语料组合;
步骤4,利用Stacking集成算法将机器学习模型结合起来并用最佳效果的特征数据训练出新的分类器进行预测。
进一步的,步骤1的具体实现方式如下;
步骤11,利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的信息,对于代码类层面,提取了包名,变量名,类名,方法名,方法参数,方法返回值,API序列作为代码代码特征;
步骤12,利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的注释信息,然后将提取的注释特征按功能注释,使用注释,结构注释,开发注释和异常注释这五类进行分类;
步骤13,根据步骤11中获取的代码特征和步骤12中获取的注释特征的功能属性生成多维代码标注;
步骤14,把根据步骤13形成的多维代码标注融合的语料,按标注维度进行组合。
进一步的,步骤13中的多维代码标注从四个方面描述代码,分别为功能标注、使用标注、方法体标注、开发标注,多维代码标注的内容由代码特征和注释特征融合而成,功能标注包括包名、变量名、方法名和功能注释,使用标注包括方法参数、方法返回值和使用注释,方法体标注包括调用序列、异常注释和结构注释,开发标注包括开发注释;
进一步的,步骤2中预处理的具体实现方式如下;
a)删除字符:对所有需求文件和源代码文件执行标记化操作,删除非字母字符、标点符号、停用词、无意义的术语;b)分词:从需求文件和源代码文件中的标识符中提取有意义的单词,标识符是连接两个或多个单词或缩写或任何其他分隔符的复合词,采用骆驼拼写法拆分复合词;c)翻译:当需求和源代码包含非英语单词时,将需求和源代码的文本内容翻译成英语;然后,用信息检索模型VSM,LSI,LDA和JS通过提取需求和代码文档的语料中的术语出现信息来将软件文档索引入文档空间,提取的信息存储在m×n矩阵中,称为term-by-document矩阵,其中m是文档中出现的所有术语的数量,n是存储库中文档的数量,该矩阵的元素aij表示第j个文档中的第i个术语的权重,即相关性,最后通过计算term-by-document矩阵中两个软件文档向量之间的文本相似度得到特征值。
进一步的,步骤3的具体实现方式如下;
将步骤2中得到的不同语料组合的特征数据,输入到基于机器学习需求跟踪领域中使用最多的随机森林(Random Forest,RF),决策树(Decision Tree,DR)和高斯朴素贝叶斯(Gaussian Naive Bayes,GNB)三个机器学习模型进行训练预测,得到预测结果用Precision、Recall、F1-score三个评估指标评估,若某个语料组合对应的三个预测效果都优于其他语料组合,则将保留此代码语料组合。
进一步的,步骤4的具体实现方式如下;
步骤41,从步骤3中获取到效果最佳的特征数据集;
步骤42,选择基于机器学习的需求跟踪领域里使用最多的Decision Tree,RandomForest和Gaussian Naive Bayes三个机器学习模型作为初级学习器,并通过sklearn库中的网格搜索方法选取个体学习器的最优参数;
步骤43,将步骤41中的特征数据集以一定比例切分为训练集Y和测试集X,并将处理好的训练集平均分为5份数据集Yi,i∈{1,2,3,4,5};
步骤44,在第一层预测模型中,将3个初级学习器分别采用5折交叉验证进行训练;
步骤45,为了更好地得到初级学习器中的有效信息,基于初级学习器中的模型的预测的结果效果不同,对第一层中每个学习器设置不同的权重;
步骤46,基于步骤45给第一层三个学习器设置权重后,然后对3个初级学习器进行训练及预测,完成后会得到和两个新的矩阵数据集(Y1,,Y2,,Y3,)和(X1,,X2,,X3,),在第二层,次级学习器多元线性回归(MLR)以矩阵Y,作为训练集,矩阵X,作为测试集,以其为基础进行训练,得到最终预测结果,即需求跟踪链接恢复结果,0表示不存在跟踪链接,1表示存在跟踪链接。
进一步的,步骤43中,针对Decision Tree,每次交叉验证包含两个过程:首先用其中的4份数据集作为Decision Tree训练集进行训练,剩下的1份作为Decision Tree模型预测的测试集,得到预测数据集yi,i∈{1,2,3,4,5},将其整合为1列记为Y1,;然后再由上一步基于4份数据集训练的Decision Tree模型对测试集X进行预测,得到预测数据集xi,再对5次预测的结果xi按行相加取均值,得到数据集X1,。
进一步的,步骤45中权重值具体计算公式为:
其中,Dj为第j个模型的误差平方和,即对误差平方和小的模型赋以高权重,J是模型个数;
其中,N为预测的跟踪链接总个数,xt表示真实值,表示预测值。
与现有技术相比,本发明具有如下有益效果:
1、本发明通过对代码特征和注释特征进行分类提取并标注融合,然后按标注维度对代码语料进行组合,对组合的不同来语料训练模型,通过比较效果获取有效的代码语料库,减小代码语料利用率不足而造成负面的影响。
2、本发明为提高机器模型的泛化能力,充分发挥个体学习器的优势,本文采用Stacking集成方法,对基于机器学习的需求跟踪领域里使用最多随机森林,决策树和高斯朴素贝叶斯3个异质学习器进行非线性组合,构建两层Stacking集成学习模型,有效的提高了软件需求可跟踪性链接恢复的准确率,降低恢复成本,减少人工,提高自动化程度和项目的工作效率。
3、本发明在构建两层Stacking集成学习模型中,由于初级学习器中的模型的性能各有差异,为了减少这种差异对预测结果带来的影响,则设置权重值wj来减小影响,以此提高预测的精准度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种有效的软件需求可跟踪性链接恢复的机器学习方法的流程图;
图2是根据本发明实施例的代码特征和注释特征标注融合图;
图3是根据本发明实施例的代码语料组合图;
图4是根据本发明实施例的两层Stacking集成学习模型流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于,包括以下步骤:
步骤1:将待确定跟踪关系代码文件按规则对代码特征和注释特征进行分类提取并标注融合,然后按标注维度对描述代码语料进行组合;
在本发明一实施例中,如图2所示,通过对代码特征提取,注释特征提取分类和标注融合,然后如图3所示,按标注维度对描述代码语料进行组合,得到不同的代码语料;具体步骤为:
步骤11、利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的信息,对于代码类层面,提取了包名,变量名,类名,方法名,方法参数,方法返回值,API序列作为代码代码特征;
步骤12、利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的注释信息,然后将提取的注释特征按功能注释,使用注释,结构注释,开发注释和异常注释等五类进行分类;
步骤13、根据步骤11中获取的代码特征和步骤12中获取的注释特征的功能属性生成多维代码标注。多维代码标注从四个方面描述代码,分别为功能标注、使用标注、方法体标注、开发标注。多维代码标注的内容由代码特征和注释特征融合而成,功能标注主要包括包名(代码特征)、变量名(代码特征)、方法名(代码特征)和功能特征(注释特征)。使用标注主要包括参数(代码特征)、返回值(代码特征)和使用特征(注释特征)。方法体标注主要包括调用序列(代码特征)、异常特征(注释特征)和结构特征(注释特征)。开发标注主要包括开发特征(注释特征),具体见图2。
步骤14、把根据步骤13形成的多维代码标注融合的语料,按标注维度进行组合,共有10种组合,具体见图3。
步骤2:将组合的不同描述代码语料分别与需求语料预处理,并基于信息检索中使用最多的四个模型对数据进行特征提取;
进一步的,组合形成的不同语料分别与需求语料进行预处理,并基于信息检索中最常用的向量空间模型(Vector Space Model,VSM),潜在语义索引(Latent SemanticIndexing,LSI),隐含狄利克雷分布(Latent Dirichlet Allocation,LDA),JS模型(Jensen-Shannon Model,JSM)对数据进行特征提取,具体为以下步骤:
根据步骤14中组合形成的不同代码语料分别与需求语料进行预处理,a)删除字符:对所有文本(需求文件和源代码文件)执行标记化(Tokenization)操作,删除非字母字符、标点符号、停用词、无意义的术语;b)分词:从需求文件和源代码文件中的标识符中提取有意义的单词。标识符是连接两个或多个单词(或缩写)或任何其他分隔符(如下划线)的复合词,采用骆驼拼写法拆分复合词;c)翻译:当需求和源代码包含非英语单词时,将需求和源代的文本内容翻译成英语;然后,用信息检索模型VSM,LSI,LDA和JS通过提取需求和代码文档的语料中的术语出现信息来将软件文档索引入文档空间。提取的信息通常存储在m×n矩阵(称为term-by-document矩阵)中,其中m是文档中出现的所有术语的数量,n是存储库中文档的数量。该矩阵的元素aij表示第j个文档中的第i个术语的权重(即相关性),最后通过计算term-by-document矩阵中两个软件文档向量之间的文本相似度得到特征值。
步骤3:输入不同的特征数据对基于机器学习需求跟踪领域中使用最多的三个模型进行训练预测评估,选出最佳效果的代码语料组合;
进一步的,步骤3中得到的不同语料组合的特征数据,输入到机器学习模型中进行训练预测,选出最佳效果的代码语料组合,具体为以下步骤:
将步骤2中得到的不同语料组合的特征数据,输入到基于机器学习需求跟踪领域中使用最多的随机森林(Random Forest,RF),决策树(Decision Tree,DR)和高斯朴素贝叶斯(Gaussian Naive Bayes,GNB)三个机器学习模型进行训练预测,得到预测结果用Precision、Recall、F1-score三个评估指标评估,若某个语料组合对应的三个预测效果都优于其他语料组合,则将保留此代码语料组合。
步骤4:利用Stacking集成算法将机器学习模型结合起来并用步骤3中获取的最佳效果的特征数据输入到新的分类器进行训练预测;
如图4所示,利用Stacking集成算法将机器学习模型结合起来并用最佳效果的特征数据训练出新的分类器进行预测具体包括以下步骤:
步骤41、从步骤3中获取到效果最佳的特征数据集;
步骤42、选择基于机器学习的需求跟踪领域里使用最多的Decision Tree,RandomForest和Gaussian Naive Bayes三个机器学习模型作为初级学习器,并通过sklearn库中的网格搜索方法选取个体学习器的最优参数;
步骤43、将步骤41中的特征数据集以一定比例切分为训练集Y和测试集X,并将处理好的训练集平均分为5份数据集Yi,i∈{1,2,3,4,5};
步骤44、在第一层预测模型中,将3个初级学习器分别采用5折交叉验证进行训练。以Decision Tree为例,每次交叉验证包含两个过程。首先用其中的4份数据集作为Decision Tree训练集进行训练,剩下的1份作为Decision Tree模型预测的测试集,得到预测数据集yi(i∈{1,2,3,4,5}),将其整合为1列记为Y1,。然后再由上一步基于4份数据集训练的Decision Tree模型对测试集X进行预测,得到预测数据集xi(i∈{1,2,3,4,5}),再对5次预测的结果xi(i∈{1,2,3,4,5})按行相加取均值,得到数据集X1,;
步骤45、同时,为了更好地得到初级学习器中的有效信息,基于初级学习器中的模型的预测的结果效果不同,对第一层中每个学习器设置不同的权重。
步骤46、基于步骤45给第一层三个学习器设置权重后,然后对3个初级学习器进行训练及预测,完成后会得到和两个新的矩阵数据集(Y1,,Y2,,Y3,)和(X1,,X2,,X3,)。在第二层,次级学习器多元线性回归(MLR)以矩阵Y,作为训练集,矩阵X,作为测试集,以其为基础进行训练,得到最终预测结果,即需求跟踪链接恢复结果(0不存在跟踪链接,1存在跟踪链接)。
进一步的,所述利用Stacking集成算法将机器学习模型结合起来进行训练预测,由于初级学习器中的模型的性能各有差异,为了减少这种差异对预测结果带来的影响。则通过设置权重值来减小影响提高预测的精准度,所述权重值具体计算公式为:
其中,Dj为第j个模型的误差平方和,该方法对误差平方和小的模型赋以高权重,J是模型个数。
其中,N为预测的跟踪链接总个数,xt表示真实值,表示预测值。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (8)
1.一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于,包括如下步骤:
步骤1,将待确定跟踪关系代码文件按规则对代码特征和注释特征进行分类提取并标注融合,然后按标注维度对描述代码语料进行组合;
步骤2,将组合的不同描述代码语料分别与需求语料进行预处理,并基于信息检索中使用最多的若干个模型对预处理后的数据进行特征提取;
步骤3,输入不同的特征数据对基于机器学习需求跟踪领域中使用最多的若干个模型进行训练预测评估,选出最佳效果的描述代码语料组合;
步骤4,利用Stacking集成算法将机器学习模型结合起来并用最佳效果的特征数据训练出新的分类器进行预测。
2.如权利要求1所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤1的具体实现方式如下;
步骤11,利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的信息,对于代码类层面,提取了包名,变量名,类名,方法名,方法参数,方法返回值,API序列作为代码代码特征;
步骤12,利用Python工具的Javalang库解析Java源代码为抽象语法树,并用walk方式遍历获取抽象语法树节点上的注释信息,然后将提取的注释特征按功能注释,使用注释,结构注释,开发注释和异常注释这五类进行分类;
步骤13,根据步骤11中获取的代码特征和步骤12中获取的注释特征的功能属性生成多维代码标注;
步骤14,把根据步骤13形成的多维代码标注融合的语料,按标注维度进行组合。
3.如权利要求2所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤13中的多维代码标注从四个方面描述代码,分别为功能标注、使用标注、方法体标注、开发标注,多维代码标注的内容由代码特征和注释特征融合而成,功能标注包括包名、变量名、方法名和功能注释,使用标注包括方法参数、方法返回值和使用注释,方法体标注包括调用序列、异常注释和结构注释,开发标注包括开发注释。
4.如权利要求1所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤2中预处理的具体实现方式如下;
a)删除字符:对所有需求文件和源代码文件执行标记化操作,删除非字母字符、标点符号、停用词、无意义的术语;b)分词:从需求文件和源代码文件中的标识符中提取有意义的单词,标识符是连接两个或多个单词或缩写或任何其他分隔符的复合词,采用骆驼拼写法拆分复合词;c)翻译:当需求和源代码包含非英语单词时,将需求和源代码的文本内容翻译成英语;然后,用信息检索模型VSM,LSI,LDA和JS通过提取需求和代码文档的语料中的术语出现信息来将软件文档索引入文档空间,提取的信息存储在m×n矩阵中,称为term-by-document矩阵,其中m是文档中出现的所有术语的数量,n是存储库中文档的数量,该矩阵的元素aij表示第j个文档中的第i个术语的权重,即相关性,最后通过计算term-by-document矩阵中两个软件文档向量之间的文本相似度得到特征值。
5.如权利要求1所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤3的具体实现方式如下;
将步骤2中得到的不同语料组合的特征数据,输入到基于机器学习需求跟踪领域中使用最多的随机森林(Random Forest,RF),决策树(Decision Tree,DR)和高斯朴素贝叶斯(Gaussian Naive Bayes,GNB)三个机器学习模型进行训练预测,得到预测结果用Precision、Recall、F1-score三个评估指标评估,若某个语料组合对应的三个预测效果都优于其他语料组合,则将保留此代码语料组合。
6.如权利要求1所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤4的具体实现方式如下;
步骤41,从步骤3中获取到效果最佳的特征数据集;
步骤42,选择基于机器学习的需求跟踪领域里使用最多的Decision Tree,RandomForest和Gaussian Naive Bayes三个机器学习模型作为初级学习器,并通过sklearn库中的网格搜索方法选取个体学习器的最优参数;
步骤43,将步骤41中的特征数据集以一定比例切分为训练集Y和测试集X,并将处理好的训练集平均分为5份数据集Yi,i∈{1,2,3,4,5};
步骤44,在第一层预测模型中,将3个初级学习器分别采用5折交叉验证进行训练;
步骤45,为了更好地得到初级学习器中的有效信息,基于初级学习器中的模型的预测的结果效果不同,对第一层中每个学习器设置不同的权重;
步骤46,基于步骤45给第一层三个学习器设置权重后,然后对3个初级学习器进行训练及预测,完成后会得到和两个新的矩阵数据集(Y1,,Y2,,Y3,)和(X1,,X2,,X3,),在第二层,次级学习器多元线性回归(MLR)以矩阵Y,作为训练集,矩阵X,作为测试集,以其为基础进行训练,得到最终预测结果,即需求跟踪链接恢复结果,0表示不存在跟踪链接,1表示存在跟踪链接。
7.如权利要求6所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤43中,针对Decision Tree,每次交叉验证包含两个过程:首先用其中的4份数据集作为Decision Tree训练集进行训练,剩下的1份作为Decision Tree模型预测的测试集,得到预测数据集yi,i∈{1,2,3,4,5},将其整合为1列记为Y1,;然后再由上一步基于4份数据集训练的Decision Tree模型对测试集X进行预测,得到预测数据集xi,再对5次预测的结果xi按行相加取均值,得到数据集X1,。
8.如权利要求6所述的一种有效的软件需求可跟踪性链接恢复的机器学习方法,其特征在于:步骤45中权重值具体计算公式为:
其中,Dj为第j个模型的误差平方和,即对误差平方和小的模型赋以高权重,J是模型个数;
其中,N为预测的跟踪链接总个数,xt表示真实值,表示预测值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148402.1A CN117193718A (zh) | 2023-09-06 | 2023-09-06 | 一种有效的软件需求可跟踪性链接恢复的机器学习方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148402.1A CN117193718A (zh) | 2023-09-06 | 2023-09-06 | 一种有效的软件需求可跟踪性链接恢复的机器学习方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193718A true CN117193718A (zh) | 2023-12-08 |
Family
ID=88986381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311148402.1A Pending CN117193718A (zh) | 2023-09-06 | 2023-09-06 | 一种有效的软件需求可跟踪性链接恢复的机器学习方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193718A (zh) |
-
2023
- 2023-09-06 CN CN202311148402.1A patent/CN117193718A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597735B (zh) | 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法 | |
CN109189942B (zh) | 一种专利数据知识图谱的构建方法及装置 | |
CN112214610B (zh) | 一种基于跨度和知识增强的实体关系联合抽取方法 | |
CN112732934B (zh) | 电网设备分词词典和故障案例库构建方法 | |
CN117076653B (zh) | 基于思维链及可视化提升上下文学习知识库问答方法 | |
CN110728151B (zh) | 基于视觉特征的信息深度处理方法及系统 | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
CN116127090B (zh) | 基于融合和半监督信息抽取的航空系统知识图谱构建方法 | |
CN113312922B (zh) | 一种改进的篇章级三元组信息抽取方法 | |
CN113806493A (zh) | 一种用于互联网文本数据的实体关系联合抽取方法、装置 | |
CN110377690B (zh) | 一种基于远程关系抽取的信息获取方法和系统 | |
CN115713072A (zh) | 一种基于提示学习和上下文感知的关系类别推断系统及方法 | |
CN114997288A (zh) | 一种设计资源关联方法 | |
CN115982379A (zh) | 基于知识图谱的用户画像构建方法和系统 | |
CN115953123A (zh) | 机器人自动化流程的生成方法、装置、设备及存储介质 | |
CN114881043A (zh) | 基于深度学习模型的法律文书语义相似度评估方法及系统 | |
Abdollahpour et al. | Image classification using ontology based improved visual words | |
CN113742396A (zh) | 一种对象学习行为模式的挖掘方法及装置 | |
CN116205296A (zh) | 一种融合自顶向下与自底向上的abac策略工程方法 | |
CN115827871A (zh) | 互联网企业分类的方法、装置和系统 | |
CN115204179A (zh) | 基于电网公共数据模型的实体关系预测的方法及装置 | |
CN117193718A (zh) | 一种有效的软件需求可跟踪性链接恢复的机器学习方法 | |
CN113869024A (zh) | 一种飞机初始保障方案生成方法及系统 | |
CN110472243A (zh) | 一种中文拼写检查方法 | |
Ajitha et al. | EFFECTIVE FEATURE EXTRACTION FOR DOCUMENT CLUSTERING TO ENHANCE SEARCH ENGINE USING XML. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |