没有合适的资源?快使用搜索试试~ 我知道了~
Encyclopedia of Machine Learning and Data Mining(2nd) 中文 part6
需积分: 9 2 下载量 199 浏览量
2019-01-26
12:23:10
上传
评论
收藏 3.48MB PDF 举报
温馨提示
此为:Encyclopedia of Machine Learning and Data Mining(2nd) 中文版 part6。 对照英文:https://download.csdn.net/download/u012547148/10938335
资源推荐
资源详情
资源评论
990
Post-pruning
D j D
D
D
P(exoma = true),为0.001。 然而,假设50%
的皮肤变色超过1厘米宽(sd> 1厘米)的人
有外膜。 随后给出sd> 1 cm的外部的后验概
率,P(exoma true sd> 1 cm true)为0.500。
Cross-References
€
贝叶斯方法
Post-pruning
定义
后修剪是一个
€
修剪机制,首先学会了一
门可能
€
过拟合的假设,然后尝试简化它
在一个单独的学习阶段。
Cross-References
€
Overfitting
€
Pre-pruning
€
修剪
精确度,表1 分类为正面和负面类别的结果
分配的课程
正
负
实际
课程
正
真阳性(TP)
假阴性(FN)
负
假阳性(FP)
真阴性(TN)
定义
精度定义为真阳性(TP)与模型预测的阳性
总数之比。 这是参考
€
confusion矩阵的特殊
情况定义的,有两个类:一个指定正类,另
一个指负类,如表1所示。
然后可以根据真阳性和假阳性(FP)定义
精确度,如下所示。
Precision D TP/(TP C FP)
Cross-References
€
精确和召回
精确和召回突触后神
经元
通过突触连接接收信号的神经元。 两个神经
元之间的化学突触连接允许将信号从突触前
神经元传递到突触后神经元。
启明婷
联邦大学,海伦山,维多利亚州,澳大利亚
定义
€
精确度和召回是用于的措施
精确
启明婷
联邦大学,海伦山,维多利亚州,澳大
利亚
同义词
积极的预测价值
信息检索域,用于衡量信息检索系统检索用
户请求的相关文档的程度。 措施定义如下:
精确度已检索的相关文档总数/检索到的文
档总数
召回检索的相关文档总数/数据库中相关文
档的总数
Predicate Logic
991
D C
D
D C
D
精确度和召回率,表1 分类为正面和负面类别的结果
分配的课程
正
负
实际
课程
正
真阳性(TP)
假阴性(FN)
负
假阳性(FP)
真阴性(TN)
我们可以使用与a中使用的相同的术语
€
confusion矩阵来定义这两个度量。 让相关
文件成为积极的例子和不相关的文件,反面
的例子。 该
Cross-References
€
子句
€
First-Order Logic
€
逻辑程序
谓词微积分
€
First-Order Logic
参考的两个措施可以重新定义
混淆矩阵的一个特例,有两个类:一个指定
正类,另一个指负类,如表1所示。
精度真阳性/预测总阳性数TP /(TP FP)
召回真阳性/实际阳性总数TP /(TP FN)
它们通常结合起来提供一种称为
€
F-measu
re 的检索性能的单一衡量标准,而不是两种
衡量标准,如下所示:
F-measure = 2 *召回*精度/(召回+精度)
谓词发明
定义
谓词发明用于
欧式
归纳逻辑编程,指的是在
假设语言中自动引入新关系或谓词。 发明相
关的新谓词是机器学习中最难的任务之一,
因为有很多可能的方法来引入这样的谓词,
并且因为很难判断它们的质量。 作为一个例
子,考虑谓词中父亲的情况
Cross-References
和母亲是众所周知的。 然后它会使
P
€
混淆矩阵
谓语
谓词或谓词符号在逻辑中用于表示属性和关
系。 形式上,如果P是具有arity n的谓词,并
且t1; :::; t
n
是n个项的序列(即,从函数符号
构建的常数,变量或复合项),然后是P.t1;
:::; t
n
/是原子公式或原子。 这样的原子代表
一个可以是真或假的陈述。 使用逻辑连接词,
原子可以组合在一起构建格式良好的公式in
€
first-order logic 或
€
clauses in
€
逻辑程序。
引入一个新的谓词的意义,只要父亲或母亲
是真的,这个谓词都是正确的。 以这种方式
引入的新谓词对应于父谓词。 在反分辨率的
背景下引入了预测发明。
Cross-References
€
感应逻辑编程
一般性的
逻辑
谓词逻辑
€
First-Order Logic
992
Prediction with Expert Advice
用专家建议预测
€
Online Learning
预测软件模型
€
预测软件工程技术
一个组织到下一个。 更成熟的组织倾向于维
护他们开发的软件系统的大量数据。
作为软件工程过程的一部分生成的数据捕
获了有关系统的广泛潜在知识。 有了这样的
信息来源,人们需要问的问题是,是否有任
何技术可以利用这种潜在的巨大数量
数据到:
软件中的预测技术
工程
Jelber Sayyad Shirabad
渥太华大学,加拿大安大略省渥太华
同义词
预测软件模型
介绍
软件工程(SE)是一项知识和决策密集型活
动。 从软件生命周期的初始阶段(即需求分
析),到测试系统的后期阶段,最后将软件
维持到其使用寿命,需要做出影响其成功和
失败的决策。 例如,在项目规划期间,需要
能够预测或预测构建系统所需的资源。 在诸
如测试或维护的后期阶段,希望知道系统的
哪些部分可能受到变化的影响,或者更危险
或需要更密集的测试。 开发软件的过程可能
会产生大量的数据和领域知识。 当然,数据
的性质取决于数据生成的阶段。 在需求分析
期间,此数据大多数时间以文档的形式表现
出来。 随着流程的推进,将生成其他类型的
工件,如代码和测试用例。 但是,记录的内
容,时间,准确度和记录的数量各不相同
•
更好地了解系统
•
在现有系统的生命周期中根据需要做出更
多信息性决策
•
将从构建其他系统的经验教训应用到创建
新系统
正如本章所示,机器学习(ML)为我们
提供了许多从数据中学习的算法和技术,就
是这样一种技术。 在准备此条目时,我们已
经从二十多年的研究中吸取了将ML应用于各
种软件工程问题。 在SE中,ML的潜在用途
数量实际上是巨大的,并且应用程序列表随
着时间的推移而不断扩大。 本章的重点是这
些应用程序的一个子集,即旨在创建模型以
便对软件系统的某些方面进行预测的应用程
序。 人们可以为这些预测任务中的一些专门
用一篇文章,因为有大量的研究涉及感兴趣
的不同方面,例如算法,估计方法,使用的
特征等。 但是,由于空间限制,我们只提几
个有代表性的研究实例。 可以从不同的角度
研究在SE中应用ML的更一般的主题。 在Zha
ng和Tsai中可以找到许多这样的方面和应用
的良好讨论(2003)。
Traditionally, regression-based techniques
已被用于软件工程中以构建预测模型。 然而,
这需要决定应该使用何种类型的回归方法
(例如,线性或二次),或者应该选择哪种
曲线适合数据。 这意味着
软件工程中的预测技术 993
首先确定函数的一般形状,然后建立模型。
一些研究人员使用ML作为将此类决策委托给
算法的方法。 换句话说,算法将产生最适合
数据的算法。 在回归问题的情况下,一些最
常见的替代是神经网络(NN)和遗传编程
(GP)。 然而,显然这些方法的使用仍然需
要其他类型的决定,例如网络的拓扑结构,
世代的数量,或人类进行突变的概率。 有时,
使用遗传算法和神经网络等不同方法的组合,
其中一种方法探索用于构建模型的实际方法
的可能参数。
已知与许多其他现实世界数据集类似的软
件工程相关数据集包含噪声。 在软件工程应
用中使用ML的另一个理由是它提供了对噪声
不太敏感的算法。
将ML应用于SE的过程
要将ML应用于SE,与其他应用类似,
可能需要进一步完善原始问题陈述或将原始
问题分解为子问题,因为其中一些ML可能提
供适当的解决方案。
收集数据和相关背景知识。 一旦识别出特定
SE应用的ML问题,就需要收集必要的数据
和背景知识以支持学习任务。 在许多SE应用
中,数据比与特定应用相关的领域理论或背
景知识更加丰富或更容易收集。 例如,收集
有关软件系统中发现的故障的数据以及应用
于源以更正故障的更改是软件项目中的常见
做法。 另一方面,没有全面和商定的领域理
论描述软件系统。 话虽如此,在某些应用程
序的情况下,如果我们将自己局限于不完整
的背景知识,那么可以通过选择被认为是相
关的子集来自动生成它。 1999年,作者将感
应逻辑编程应用于预测软件系统中的故障模
块的任务。 他们用类之间的内聚和基于耦合
的关系来描述软件系统
一个人需要遵循某些步骤,其中包括:
是通过解析源代码生成的。
P
了解问题。 这是一个重要的步骤,会严重影
响后续决策。 软件工程领域中的典型问题的
示例是需要能够估计开发软件所涉及的成本
或工作量,或者能够表征软件系统的质量,
或者能够预测哪些模块在一个系统中更容易
出现缺陷。
将原始问题作为一个学习问题。 要使用ML
技术,需要决定如何将问题表述为学习任务。
例如,找到可能有缺陷的模块的问题可以被
视为分类问题(例如,模块是否有故障)或
数字预测问题(例如,模块的估计故障密度
是什么)是)。 这种映射并不总是直截了当
的
数据预处理和编码。 预处理数据包括诸如降
低噪声,选择收集数据的适当子集以及确定
描述要学习的概念的特征的适当子集等活动。
这些更清洁的数据将输入到特定的算法和实
现中。 因此,可能需要以符合所用算法要求
的方式描述和格式化数据和背景知识(如果
有的话)。
应用机器学习和评估结果。 运行特定的ML
算法非常简单。 但是,人们需要衡量学到的
东西的好处。 例如,在分类问题的情况下,
模型经常根据其准确性进行评估
994
Predictive Techniques in Software Engineering
≤
通过使用诸如保持和交叉验证之类的方法。
在数值预测的情况下,通常使用诸如平均相
对误差幅度(MMRE)的其他标准测量。 另
外,软件工程研究人员有时会针对某些应用
采取其他措施。 例如PRED(x),其是具有
相对误差(MRE)x的量的示例(或样本)
的百分比。 根据Pfleeger和Atlee( 2003
年)),大多数管理人员使用PRED(25)来
评估成本,工作量和进度模型,如果PRED
(25)的值大于75%,则认为该模型能够很
好地发挥作用。 对于MMRE,小于25%的值
被认为是好的; 然而,其他研究人员,如Boe
hm,会推荐10%或更低的值。 评估所学知识
的有用性有时需要领域专家或最终用户的反
馈。 如果确定所学知识不足,则可能需要通
过调整所用算法的参数来重试该步骤,或者
重新考虑在早期阶段做出的决定并相应地进
行。
现场测试和部署。 一旦所学的内容被评估为
有价值,它就需要实际被预期用户(例如,
项目经理和软件工程师)使用。 遗憾的是,
尽管软件工程的研究范围很广,而且在SE中
的特定应用中使用ML,但讨论实际使用和工
业研究影响的文章数量相对较少。 通常,其
原因是缺乏分享行业认为的机密信息的愿望。
然而,有许多研究文章基于工业数据,这表
明ML在实际SE中的实际好处。
预测模型在
SE
中的应用
预测模型的开发可能是ML在软件工程中最常
见的应用。 这种观察是一致的
以前的研究结果(张和蔡2003)。 在本节中,
我们提到了一些可以从软件工程数据中学习
的预测模型。 我们的目标是提供成熟和新应
用的示例。 应该指出的是,该领域研究人员
使用的术语并不总是一致的。 因此,有人可
能会争辩说,其中一些例子属于不止一个类
别。 例如,在Fenton和Neil(1999)中,作
者考虑将故障预测作为评估软件质量和维护
工作的一种方式。 该论文可能属于任何类别
的故障,质量或维护工作预测。
软件大小预测
软件大小估计是预测软件系统大小的过程。
由于软件大小通常是估算项目成本计划和计
划的模型的输入,因此准确估计软件大小对
于正确估计这些相关因素至关重要。 软件大
小可以用不同的方式测量,最常见的是代码
行数(LOC); 然而,主要用于努力估计的其
他替代方案(例如功能点)也提供将度量转
换为LOC的手段。 软件大小有不同的方法,
其中之一是基于组件的方法(CBM)。 在一
项研究,以验证CBM方法,Dolado(2000通
过多个所产生的)进行比较的模型
€
线性回
归(MLR)与通过神经网络和遗传编程获得
的那些。 他总结说,基于NN和GP的模型都
比MLR模型表现更好或更好。 NN引用的一
个好处是它能够捕获非线性关系,这是MLR
的弱点之一,而GP能够生成可解释的模型。
Regolin等。 (2003)也使用基于NN和GP的
模型来预测LOC的软件大小。 它们使用功能
点和组件数量指标来完成此任务。 Pendharka
r(2004)使用决策树回归来预测OO组件的
大小。 可以在确定其组件的大小之后计算系
统的总大小。
剩余201页未读,继续阅读
资源评论
changqingt27
- 粉丝: 0
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功