机器学习 ——基于决策树的CART算法外文翻译资料

 2023-01-13 09:01

机器学习

——基于决策树的CART算法

原文作者 Ethem Alpaydin

机器学习无疑是计算机中增长最快的科学领域之一。不仅是因为数据逐渐变的“强大”,同时使用理论来处理它,并把它转化为知识。在各个科学领域,从天文学到生物学,而且在日常生活中,更多的数据不断产生和收集,作为数字技术日益渗透我们日常生活的存在,同时加深了我们的数字足迹。无论是科学还是个人,数据,目前仅仅处于休眠状态而且是被动的,没有任何用处,而聪明的人一直在不断寻找新的方法来利用这些数据,并把它变成一个有用的产品或服务。面对这种改造,机器学习在其中起着越来越大的作用。

这个数据进化正在继续,每年的数据集越来越大。不仅观察到数据的次数生长,而且观察到的数据的属性也显著增加。有更多结构的数据:不仅是数字和字符串更多,还有图像,视频,音频,文档,网页,点击日志,图表等。数据越来越多,数据移动远离参数,假设我们用来制作,例如,正常性。经常,该数据是动态的,所以有一个时间维度。有时候,我们的观察是多视角的,对于相同的对象或事件,我们有多个源来自不同传感器和方式的信息。

我们的信念是,后面的这一切看似复杂而浩繁数据,其实存在着一个简单的解释。虽然数据量很大,它可以在一个相对简单的模型中用少量的数据解释隐性因素及其相互作用。想想数以百万计的客户每天在网上或从当地超市买上千种产品,这意味着交易的一个非常大的数据库,还有一个数据模型。人们不会随意购物。一个人购买的产品有一定的子集,而这个人拥有婴儿则家里买了不同的子集,有解释隐性因素客户行为。

我们讨论机器学习的实验设计,评估和比较在实践中学习算法的性能和统计测试来分析这些实验的结果:

  1. 我们如何评估一个学习算法预期的错误问题?例如,曾使用分类算法训练对某些应用程序绘制的数据集进行分类,我们可以说有足够的信心,当它被用在现实生活中,其预期误差率将小于2%
  2. 给定两个学习算法,我们怎么能说一个的误差不及另外一个,对于给定的应用程序?该算法可以比较起来是不同的,例如,参数与非参数,或它们可以使用不同的超参数的设置。例如,给定的多层感知有四个隐藏的单位和另外一种八个隐患单位,我们希望能够说哪一个少预期的错误。或用k近邻分类器,我们想找到k的最佳值。

我们可以不看训练集的错误,并决定根据这些,分析训练集的误差率,根据定义,总是小于在训练实例看不见的测试组错误率。同样地,训练误差不能被用来比较两种算法。是因为在训练集合中,复杂的模型具有更多的参数几乎总是给予比简单的结果,而且错误更少。

所以,正如我们反复讨论,我们需要的一个验证组是来自不同的训练集。即使是在验证设置,但是只有一个运行可能还不够。有两个原因:首先,训练和验证集可以是小的,并可以含有特殊的情况,像噪音和异常,这可能误导我们。第二,学习方法可能取决于影响泛化其他随机因素。例如,具有多层感知受训使用反向传播,因为梯度下降收敛到最近的极小值,初始权影响最终的权重,并且给定完全相同的结构和训练集,从不同的初始权重开始,那里可以是在具有不同错误率的多个可能的最终分类相同的验证集。因此,我们希望有几个平均在随机性这些来源。如果我们训练和验证只有一次,加上我们不能测试等因素的影响,如果学习方法是如此昂贵,它可以训练,但只能验证一次

我们用一个学习算法处理数据集并生成一个学习习惯。如果我们做培训一次,我们有一个学生和一个验证错误。平均以上随机性(在训练数据,初始权值等),我们使用同样的算法和生成多个学生.我们测试他们在多验证集并记录验证错误的样本。 (当然,所有训练和验证集应来自同一应用程序绘制。)我们立足的学习算法上的分布评估这些验证是错误的。我们可以利用这个分布评估预计学习算法的错误这个问题,或者它比较与其他一些学习算法的错误率的分布。

继续如何做到这一点,必须强调一些要点是非常重要的:

  1. 我们应该牢记,我们从中汲取什么结论我们分析的前提是我们给出的数据集。我们不是比较在一个域中独立的方式,而是在某些学习算法特定中的应用。我们不是针对任何预期学习算法的错误,或者比较一个学习算法和另一种算法,一般。任何结果,我们是唯一真正特定的应用,并只在该应用程序所表示的示例中,我们有反正,这是因为没有免费的说明:午餐定理(1995沃伯特),有没有这样的事情:“最佳”学习算法。对于任何学习算法,有一个数据集它是非常准确的,另一个数据集的地方是非常差。当我们说一个学习算法是好的,我们只量化如何使用以及它的归纳偏置匹配数据的属性。
  2. 一个给定的数据集分割成多个训练和验证集仅以测试为目的。一旦所有测试完成,我们已经取得了我们的决定是最终方法或超参数,训练最后的学习者,我们可以使用所有的标记数据,我们用于以前训练或验证。
  3. 因为我们也使用验证集合(S),用于测试的目的,例如,为选择更好的两种学习算法,或决定在哪里停止学习,它有效地成为我们使用的数据的一部分。当所有这些测试之后,我们决定在一个特定的算法和希望报告其预期的错误,我们应该用这个单独的测试集为目的,训练这最后的系统使用。该数据应在以前从未用于训练或验证,并且大的误差估计是有意义。这样,给定的数据集,我们首先应该留下它的某些部分留作测试设置和使用,其余培训和验证。通常情况下,我们可以把三分之一的样品作为测试组,然后用三分之二为交叉验证生成多个培训/验证集对,因为我们很快就会看到。所以,训练集被用于优化参数,给定一个特定的学习算法和模型结构;验证集用于优化学习算法或模型的超参数结构;和测试集用于在最后,一旦这两个有得到优化。例如,对于一个MLP,训练集用于优化的权重,验证集合被用来决定对数隐藏单元,多久来训练,学习率,等等。一旦选择了最好的MLP配置,计算其最终的错误在测试集。具有k-NN,训练集被存储为查找表;我们优化的验证集的距离测度和k和最后测试在测试集。
  4. 在一般情况下,我们比较学习算法通过他们的错误率,但它应该记住的是,在现实生活中,错误仅是标准之一影响我们的决定。其他的一些标准是(特尼2000):

(1)当错误使用损失函数广义的风险,而不是0/1的损失

(2)训练时间和空间复杂度

(3)测试的时间和空间复杂度

(4)解释性,即是否该方法允许知识萃取,它可以进行检查和专家验证

(5)简单的可编程性

这些因素的相对重要性的变化取决于应用。例如,如果训练要在工厂一次完成的,然后训练时间和空间复杂度并不重要;如果适应性在使用过程中是必需的,那么他们就变得很重要。最终的学习算法使用0/1损失,并采取错误为单标准将被最小化;最近,成本敏感学习这些算法还提出了采取其他成本标准考虑。

当我们用训练集训练学习者的数据集和测试其准确一些验证集,并试图得出结论,我们正在做的是实验。统计定义的方法来设计正确实验并分析所收集的数据中,以便作为一个方式能够提取显著结论。

在我们开始实验之前,我们正在研究什么是一个不错的想法,如何对数据进行收集,以及我们如何计划来分析它。机器学习的步骤是与任何实验类型都相同的(2005蒙哥马利)。需要注意的是,在这一点上,它是不是重要的任务取决于归类或消退,或是它是一种无监督或强化学习的应用程序。相同于整个讨论适用,所不同的是仅在采样分布所收集的响应数据中适用。

机器学习的实验步骤

1、研究的目的

我们首先需要说明这个问题,界定的目标什么。在机器学习中,可以有几种可能性。正如我们之前的讨论,我们可能有兴趣评估预期的错误在一个特定的(或一些其它的反应指标)学习算法中的问题,并检查,例如,误差超过一定可接受的水平。给定两个学习算法和一个特定的问题,通过所定义的一个数据集,我们可能需要确定哪一个具有更小的泛化错误。这些可以是两种不同的算法,或者一个可被提议改善其他的算法,例如,通过使用更好特征提取。在一般情况下,我们可能有两个以上的学习算法,我们可能要选择一个具有最小误差,或者责令其术语错误的,对于给定的数据集。在一个甚至更一般的设置,而不是在一个单一的数据集,我们可要在两个或多个数据集进行比较的两个或更多个算法。

2、选择响应变量

我们需要决定应该使用哪些变量作为质量措施。最频繁、错误分类用于分类和回归的均方误差。我们也可以使用一些变体,例如,泛化从0/1到一个任意的损失,我们可以使用风险措施。在信息检索中,我们使用精度和召回等措施。在敏感的环境中,不仅输出,而且系统参数,例如,它的复杂性的考虑。

3、因素和水平的选择

是什么因素取决于研究的目的。如果我们修复一个算法和想要找到最好的因素。如果我们比较算法,学习算法是一个因素。如果我们有不同的数据集,他们也成为一个因素。一个因素的水平应该精心挑选,以免错过一个好的配置和避免不必要的实验。它总是将好的因素水平正常化。例如,在优化k的最后,你可以尝试值如1,3,5,等等,但在优化传播架构中巴尔森窗式,h我们不应该尝试绝对值,如1.0,2.0,等等,因为这取决于输入的规模,最好是找一些统计指标量表的例子中,一个实例及其之间的平均距离最近的邻人——尝试h不同倍数的统计。以前的专业知识一般来说,与其同样重要的是调查所有因素和因素水平,可能更重要,而不是过于受过去经验的影响。

4、实验设计的选择

它总是更好的做一个阶乘设计,除非我们确信因素不互动。复制数量取决于数据集大小,它可以保持大数据集。然而,太少复制生成的一些数据,这将使分布比较困难,在特定情况下的参数测试,Gaussianity可能不成立的假设。

一般来说,鉴于一些数据集,我们留下一部分作为测试集和使用其余的训练和验证,可能很多次重采样这个部门是如何实现是很重要的。在实践中,使用小型数据集导致高方差的反应,和是不会有显著的差异,结果不会是决定性的。

同样重要的是尽可能地避免更多可能,合成数据并使用来自现实世界的真实情况下的数据集。说教的一或二维数据集可以帮助提供直觉,但算法的行为在高维空间中可能是完全不同的。

  1. 进行实验

进行一个大型的有许多因素和水平的实验,最好是一个人做几个试验并用一些随机设置来检查所有的预期。在一个大实验,它总是一个好主意保存在中间结果中(或随机数生成器的种子),以便可以重新运行整个实验的一部分,所有的结果应该被简化,在运行一个大型实验与许多因素和因子的水平下,一个应该意识到软件老化可能带来的负面影响。

重要的是,一个实验者在实验期间无偏差。竞争对手最喜欢的一个算法,都应该付出同样的努力。在大规模研究中,它可能是测试人员不同于开发人员的设想。

应该避免编写自己的“函数库”的诱惑,相反,尽可能使用代码从可靠的来源,这样的代码会被更好的测试和优化。

用任何软件开发研究,好的文档有不可低估的优势,尤其是在团体工作。开发高质量的软件工程的所有方法也应该用于机器学习实验。

  1. 数据的统计分析

这对应于分析数据的方式,这样无论我们得到结论是主观或客观。我们把我们想要回答的问题归结于框架假设检验和检查样品是否支持这一假设。例如,问题“是一个更准确的算法比B ?”成为假说“我们能说学习者训练的平均误差显著低于平均误差训练学习者的B ?”像往常一样,视觉分析是有用的,我们可以用直方图的误差分布。

  1. 结论和建议

一旦所有的数据收集和分析,我们可以得出客观的结论。一个常见的结论需要进一步的实验。大多数统计,使机器学习或数据挖掘研究迭代。正是因为这一原因,我们从来没有开始实验。建议不超过25%的可用资源应该投资在第一个实验中(2005年蒙哥马利)。第一次运行仅用于调查。这也是为什么这是一个好主意不是首先很高的期望,或者承诺的老板或导师的帮助。

我们应该永远记住,统计测试从未告诉我们假说是正确的或错误的,多少样本似乎同意这一假说。总是有风险,我们没有结论性的结果或结论是错误的,特别是如果数据很少。

当我们的期望没有得到满足,最有帮助的是他们为什么不进行调查。例如,在检查为什么在某些情况下我们最喜欢的算法已经很糟糕,我们可以得到一个漂亮主意对于一些改进版本的改进都是由于先前版本的缺陷;找到不仅只是一个有用的提示,有一个改进我们就可以!

但我们不应该去下一步的测试改进版本之前,我们确信我们已经完全分析当前数据和我们学会了我们可以从中吸取教训。

外文文献出处:Introduction to Machine Learning, 2014 作者:Ethem Alpaydin

出版社:The MIT Press Cambridge, Massachusetts London, England

Chapter1:1-4; Chapter19:547-558

剩余内容已隐藏,支付完成后下载完整资料


英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[286816],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。