龙空技术网

机器学习中必须了解的7个概念(有关随机森林)

芯媒 783

前言:

眼前你们对“随机森林python分类”可能比较关注,同学们都想要分析一些“随机森林python分类”的相关内容。那么小编同时在网络上搜集了一些对于“随机森林python分类””的相关文章,希望大家能喜欢,看官们快快来了解一下吧!

作为一个最近在Python中实现随机森林的计算机科学学生,你可能会亲身体会到混淆这些术语是多么容易。

决策树、随机树、bootstrapping、bagging、boosting和随机森林之间到底有什么区别?

对于任何有兴趣从事数据科学或机器学习的人来说,了解这些微妙的区别是必须的。这篇简短的文章将有助于澄清随机森林的关键概念和术语。在你需要复习的时候,可以把它作为快速参考的词汇表。让我们深入了解一下。

一、决策树

本文假设了一些关于决策树的基本知识。为了使本文专注于随机森林而不是决策树,决策树的细节就不说了。如果你需要复习一下,可以看看这篇有用的文章。

在常规的决策树中,需要在每个决策节点选择一个属性来分割数据集。这个属性被称为分割属性或分割特征。选择分割属性是一个复杂的步骤,它需要建立和计算一个标准来确定哪个属性是 "最佳 "的分割。常用的属性选择标准包括熵、信息增益和吉尼指数。一旦建立,就需要对训练数据中的每个特征以及每个特征的每个值计算标准。因此,在每个节点上选择分割数据集的 "最佳 "属性是一种计算上的昂贵操作。

二、随机树

随机树是决策树的一种类型。然而,不是计算分割节点的 "最佳 "属性,而是为属性选择引入一些随机性。做到这一点的两种方法包括。

随机选择一个特征子集,以便在拆分节点时考虑。如果你有N个总特征,随机选择M来考虑。M的大小通常是N的平方根。在特征子集中,挑选最佳的分割属性。随机选择一个拆分属性。从所选属性中随机抽取两个特征值,用中位数或平均值作为分割值。这保证了分裂值在分裂特征的最低值和最高值之间。

在随机树中,你在模型层面上注入随机性。

随机树不是在计算每个特征的选择标准以获得 "最佳 "分割上花费时间和CPU,而是随机地选择特征。这损害了树的质量,但有一些步骤可以解决这个问题,即随机森林。

三、引导法

Bootstrapping是任何使用随机抽样替换的统计方法的一个术语。对于决策树,这意味着给每棵树一个原始数据的引导版本。每个自举样本都是对原始数据点的随机抽样,并进行替换。自举样本的大小通常与原始数据集的大小相同(例如,如果你有100行训练数据,自举样本也有100个数据点,但与原始数据的100行不同。有些数据点会被遗漏,有些会多次出现在引导样本中)。

从统计学上看,大约有三分之一的数据记录被遗漏在引导样本之外。被遗漏的数据点本质上是一个 "测试集",这些数据点中的任何一个都被称为袋外样本。关于这一点,请看下面的 "袋外误差估计 "部分。

在Bootstrapping中,你在数据层面上注入随机性。

四、装袋/袋式决策树

装袋是自举聚合的简称。在bagging中,你有多个引导的决策树,每一个都会做出预测。预测通过投票或平均来组合,以 "聚合 "结果,做出最终预测。在分类中,对一条记录的多数票是其预测的类别。

五、随机森林

随机森林采用了我们刚刚学到的概念(袋式决策树和随机树),并将它们结合起来。与袋装决策树一样,随机森林是一个 "集合 "学习器,它将多棵树组合成一个单一的算法。随机森林和袋装决策树的主要区别在于,随机森林是由随机树组成的。因此,根据定义,随机森林=袋式随机决策树。

如果你想一想,这就很有意义了。一个常规的、"最佳 "决策树的森林/集合意味着每棵树都会给出相同的预测输出,那么拥有多棵树就没有意义了。由于随机化,单个随机树有固有的偏见,但通过对多个随机树进行平均化,合奏对测试数据来说变得更加准确。

六、提升法

提升指的是监督学习中的一系列技术,通过将学习重点放在模型表现不佳的地方,帮助将弱小的模型转化为强大的模型。AdaBoost是自适应提升的简称,是这些技术中最流行的一种。

简而言之,AdaBoost的工作方式如下。首先,以通常的方式用一袋数据训练一棵决策树。然后,所有的训练记录被用来测试模型。在这个过程中,很明显,一些数据点(Y值)没有被很好地预测出来。当建立下一个数据袋时,训练集中的数据点再次被随机选择,但这次每个数据点的权重是根据前一个数据袋的预测误差而定的。这意味着误差较大的数据点比误差较小的数据点有更大的机会被选为第二个袋的一部分。第二个袋装树被训练,所有的训练数据被用来测试第一个和第二个袋装树的集合。再次测量预测误差,为下一棵树的分袋提供信息。这个过程在用户指定的树的数量上重复进行。

综上所述,后续的决策树被装入袋中,使学习者更加关注之前弱学习者错误分类的数据点。

七、袋外误差估计

本文要介绍的最后一个概念是袋外误差估计。前面的概念主要集中在树和森林的构建上,现在我们把重点转移到模型性能评估上。在随机森林中,没有必要将训练数据划分为训练集和测试集。没有必要进行明确的交叉验证,因为袋外样本本质上已经是测试数据点。每一行数据都会有没有使用该数据训练的树(即该行不在他们的引导数据中,被认为是袋外样本)。使用袋外树对每个数据点的多数票是合奏的预测,从那里可以计算出袋外误差估计。准确度等于1减去袋外误差估计值。

总结

如果你已经理解了7个基本的预测方法,那么你就会发现,这些预测方法都是非常有用的。如果你已经理解了上面定义的7个基本概念,那么你将学到更多关于随机森林的知识。

标签: #随机森林python分类