机器学习

逻辑回归

一. 逻辑回归解决的是分类问题

二.AI建模中“基准”很重要:从基本模型到复杂模型,可以知道错误在哪里

注意:任何AI应用一定要从“基准”开始搭建。刚步入AI行业的人士经常会犯这个问题。一上来就想使用深度学习来做训练,比如提出要使用BERT, 或者深度增强学习。。。 这些都不是正确的做法。

三.逻辑函数:将值域控制在(0,1)


四. 有效的条件概率函数



五. 由概率之和为1这个性质,可以得到如下两个公式

六.最大似然估计


七. 所有样本的似然概率


八. 梯度下降法学出最优参数


九.学习率决定了算法收敛得速度,谨慎选择参数

十.


十一. 逻辑回归的目标函数是凸函数,只有全局最优解。不管怎么初始化,最后收敛到的结果是同一个点。

十二.梯度下降法每次更新需要把样本全部循环一遍,所以效率不高。参考十的公式,i=1->n。引入了随机梯度下降法



但是用单个样本的梯度估算全局梯度,有噪声,会发现优化的时候,下降曲线有波动


十二.小批量梯度下降法:折中算法(如何用代码去实现?)


鞍点:会被误认为是最优解,随机梯度下降法更容易掠过鞍点。


GPU计算能力指的是它的并行计算能力

十三.用逻辑回归模型解决一个分类问题:预测银行客户是否开设账户

问题描述

数据理解

数据预处理 (独热编码)

独热编码对于类别型变量,正确做法是使用独热编码(one-hot encoding), 这也是最常用的编码方式。 然后直接把独热编码输入到模型就可以了。 一般来讲,独热编码的转换会让特征维度上升,比如对于一个类别型变量 - “城市”, 可能的取值为1000多个,那当我们把这个变量转换成独热编码之后就变成了1000多维的向量。

模型训练

模型评估(精确率  召回率 F1-score):数据不平衡的情况需要使用精确率 召回率 F1-score评估模型

负样本:

精确率P负 = 其中真的是负样本/有多少样本被分类为负样本

召回率R负 = 其中真的被分成负样本/有多少负样本

正样本同上

F1-score = 2*精确率*召回率/(精确率+召回率)

代码实现

模型的泛化

一. 理解什么时过拟合

1. 逻辑回归的参数

即便是一个简单的逻辑回归模型,当我们去调用模型时需要选择性地设置它的一些参数,这些参数的设定对模型训练后的结果一般会产生关键的作用。在建模中,对于这些参数的合理设定也称之为”调参“过程。

2. 当数据线性可分的时候

对于逻辑回归模型,考虑一种特殊情况,也就是当数据线性可分的时候。比如在二维空间里,我们可以画出一条直线完美地区分开正负两类样本。

当数据线性可分的时候,由于逻辑回归目标函数的性质,导致学出来的参数w变得很大。\

3. 控制参数的大小

那如何控制参数的大小呢? 也就是如何让参数变得小一些?一种方式是人为地在目标函数上添加一个惩罚项(Penalty),惩罚过大的参数。由于引入了这样的一个项,在优化的过程中我们倾向于选择绝对值小的参数。

一般添加L2正则来调节参数w过大情况,其中\lambda 是超参数,是控制模型的开关。

4. λ的作用

λ是可控参数,需要人为地去调节。当λ值变小或者变大时,它所带来的影响是不一样的。这种参数也称之为超参数(hyperparameter),可以想象为是模型的开关,通过调节此开关让模型的行为产生不一样的结果。

5. 什么是过拟合

当没有加任何惩罚项的情况下参数变得非常大。那这种现象又如何理解呢?实际上,我们把它称之为模型的过拟合。 通常,一个模型存在过拟合现象的时候,它的参数趋向于变大。

二. 如何防止过拟合现象?

1. 模型的泛化能力

在建模中,我们的目标是构建出泛化(generalization)能力很强的模型。对泛化通俗的理解是,模型可以很好地适应新的环境。我们可以说成:一个好的模型不仅在训练数据上表现好,而且在测试或者线上真实环境上表现也比较稳定且出色,这就是对泛化的一个通俗的理解。

2. 模型复杂度与过拟合

对于过拟合来讲,有一种规律:越复杂的模型越容易过拟合。比如SVM相比逻辑回归更容易过拟合;深度神经网络相比浅层神经网络更容易过拟合;所以,对于复杂一些的模型,我们需要设计出好的机制来避免过拟合。

我们趋向于训练出“简单”的模型,防止过拟合。加入正则可以帮助训练“简单”的模型。




3. 正则的作用

在一个模型里加入正则,会让训练出来的模型变得更”简单“。

4. 正则的种类

正则的应用非常广泛,它既可以用在逻辑回归也可以用在线性回归、支持向量机、神经网络、以及各类深度学习模型当中。正则的种类也繁多,常见的有L1和L2正则,当然还有L0等正则也被很多人使用,但每一个正则之间还是有很大的区别。 

三. L1与L2的正则

1. 两种常见的正则

在模型训练阶段,为了防止模型的过拟合,我们通常会加入正则来提升模型的泛化能力。其中L1和L2正则的使用最为广泛。这些正则项会促使模型的参数变小,从而让学出来的模型本身变简单,起到防止过拟合的效果。

2. L1和L2正则的特点

总体来讲,L1正则和L2正则都可以用来防止模型的过拟合,但L1相比L2正则,还具有另外一种特性,就是让模型的参数变稀疏。首先,试着理解一下什么叫稀疏。通俗来讲,假如模型有100100个参数,通过L1正则的引入最终学出来的参数里可能9090个以上都是00,这叫作稀疏性。相反,如果使用L2正则则没有这样的特点。

3. 特征选择

由于使用L1正则之后,很多参数变成了00,这自然就起到了特征选择的目的。比如模型有100100个参数,每一个参数对应于一个特征,最后训练完之后只有1010个参数不为00,则自然就帮我们选出了有效的特征。

4. L1的不足之处

L1既有稀疏性(选出特征)的特点,也有防止过拟合的特点,那是否意味着相比L2正则更好用呢? 其实不然,这个问题还要看L1正则具体的细节。可以从两个方面来讨论L1正则所存在的潜在的问题:1。 计算上的挑战:L1正则在零点上梯度为0. 2。 特征选择上的挑战:随机选择的一个特征,而不是选择最好的。

通常用线性回归+L1+L1-->ElasticNet.

L1和L2的使用场景:

总结起来,面对模型训练中的过拟合问题,L2是最为常用的正则。至于L1正则,它的首要应用场景在我们希望参数变稀疏的时候。

5. 交叉验证

交叉验证是机器学习建模中非常重要的一步,也是大多数人所说的”调参“的过程。 回到逻辑回归的例子,我们为了避免过拟合,在模型目标函数上加入了L2正则,但这时候正则项前面多出了一个参数叫作\lambdaλ,那如何去设置这个参数呢? 什么样的参数对模型的训练是最有利的?

6. 超参数的设置

对于超参数的取值范围,需要提前设置好。具体设置成什么样的值,其实也要依赖于人的经验。对于每一个经典的机器学习模型, 都有一些参考值可供参考,之后只需从这个范围里搜索出一个最好的即可。

另外,交叉验证的时间复杂度较高,因为需要尝试各种各样的组合。那对于交叉验证如何提升效率呢? 最简单的方法是通过并行化、分布式来解决,因为每一个交叉验证是相互独立的。



7. 最后,我们对交叉验证做一个总结:

1. 交叉验证的过程也称之为调参,在AI建模中起到非常关键的作用

2. 最常用的交叉验证的方法是K折交叉验证,具体K值可以根据数据情况而定

3.  对于给定的参数组合,交叉验证完全可以并行化

4. 在做交叉验证时,千万不能使用测试数据来指导模型的训练

5.  当数据量较少的时候,考虑更大的K值,这样可以确保训练模型时有足够多的数据,一个极端情况是使用留一交叉验证.

四. 正则与先验关系

1. 从最大似然估计到最大后验估计

最大似然估计MLE作为构造目标函数的一种常用方法,广泛地应用在各类机器学习建模中。最大似然估计的核心思想是,给定模型参数的前提下通过最大化观测样本的概率来寻求最优解。从数学的角度来讲,最大似然估计是最大化p(D∣θ),其中D表示观测到的样本,θ表示模型的参数。

最大后验估计MAP区别于最大似然估计,它最大化的目标函数并不是p(D∣θ),而是p(θ∣D),也就是最大化后验概率。

2. 先验与正则之间的关系

总体来讲,MAP要比MLE多出了一个项,就是先验p(θ),这个概率分布是我们可以提前设定好的。这就是MAP的奥妙之处,可以通过先验的方式来给模型灌输一些经验信息。比如设定参数θ服从高斯分布或者其他类型的分布。不同先验分布和正则之间也有着很有趣的关系,比如先验分布为高斯分布时,对应的为L2正则;当先验设置为拉普拉斯分布时,对应的为L1正则。

3. 最大似然估计趋近于最大后验估计

最大似然估计和最大后验估计之间也有着特殊的关系:当数据量无穷多的时候,最大后验估计的结果会逼近于最大似然估计的结果。这就说明,当数据越来越多的时候,先验的作用会逐步减弱。

这个观点放在生活当中也是符合逻辑的。假如我们只有少量的样本,那这时候人的经验必然会占据比较重要的地位,但随着收集到的数据越来越多,数据的作用逐步会超过人的经验,对后续的决策起到更重要的作用。

4. LR的调参

模型的超参数:

对于一个机器学习模型,一般来讲都有一些超参数需要做调整。而且越复杂的模型,它所拥有的超参数类型更多,也增加了交叉验证的复杂度。

GridSearchCV的使用:

对于模型的调参,Sklearn提供了一个便捷的工具GridSearchCV, 它可以帮助我们很方便地进行交叉验证的工作。 当我们使用GridSearchCV时,只需要告诉它想搜索的每个参数的取值范围即可。

机器学习基础

一. 理解朴素贝叶斯

1. 朴素贝叶斯的应用

朴素贝叶斯模型是文本领域永恒的经典,广泛应用在各类文本分析的任务上。通常来讲,只要遇到了文本分类问题,第一个需要想到的方法就是朴素贝叶斯,它在文本分类任务上是一个非常靠谱的基准(baseline)。比如对于垃圾邮件的分类,朴素贝叶斯是一个极其有效且简单的模型。

2. 朴素贝叶斯,这个名字里的“朴素”源自于概率统计里的“条件独立”,因为在构造模型过程中做了一层基于条件独立的简化操作。 朴素贝叶斯模型作为分类算法,非常适合用在各类文本分类任务上,如:

垃圾邮件分类:自动判断一个邮件是否为垃圾邮件或者正常邮件;

文本主题分类:把一个文本按照主题做分类如体育类、娱乐类;

情感分析:把给定的文本分类成正面或者负面情感;


3. 朴素贝叶斯的核心思想

朴素贝叶斯的核心思想极其简单:其实就是统计出不同文本类别中出现的单词的词频。对于垃圾邮件的分类任务,我们需要统计出哪些单词经常出现在垃圾邮件,哪些单词经常出现在正常邮件就可以了。

如果以词库为依据来直接判定邮件的种类是存在一定的问题的。它的问题在于,即便出现了一些广告类单词,但并不一定是垃圾邮件; 没有出现任何广告类单词也不一定是正常邮件。所以每个单词虽然有倾向性,但不能以偏概全。

如何把这些不同的单词以概率统计的方式整合在一起呢? 答案就是朴素贝叶斯!

4. 使用朴素贝叶斯模型一般需要两步骤。首先,统计出每一个单词对一个邮件成为垃圾邮件或正常邮件的贡献。比如p(广告∣垃圾),p(广告∣正常)分别代表在垃圾/正常邮件里出现“广告”这个关键词的概率。 其次,用这些统计的结果对一个新的邮件做预测。



二. 朴素贝叶斯的训练

1. 计算单词的概率

正如之前说过的一样,朴素贝叶斯训练的核心步骤就是统计各个单词在不同类别中的概率。 举个例子,当我们去分析一个文件是否为垃圾邮件或者正常邮件时,一个判断的依据是如果很多跟垃圾邮件相关的关键词出现在了文本里,我们即可以把它归类为垃圾邮件,这些决策最终基于概率统计的方式来实现。

总体来讲,朴素贝叶斯分为两个阶段:

1)计算每个单词在不同分类中所出现的概率,这个概率是基于语料库(训练数据)来获得的。

2)利用已经计算好的概率,再结合贝叶斯定理就可以算出对于一个新的文本,它属于某一个类别的概率值,并通过这个结果做最后的分类决策。

2. 利用计算好的概率来预测

目前为止我们已经算好了每一个单词在不同类别中的概率,以及垃圾邮件和正常邮件在整个数据中的占比,后者也称之为先验概率(prior)。统计完这些概率之后,如何使用它们来预测一个邮件是否为垃圾或者正常邮件呢?



为了表示两个条件概率值 p(垃圾|邮件内容)和 p(正常|邮件内容),需要用到一个著名的概率公式-贝叶斯定理。利用贝叶斯定理可以把上述条件概率做进一步的分解,最终可以计算出它们的值。


3. 计算预测概率

在预测过程中我们使用一个叫作条件独立(conditional independence)的假设。简单来讲,基于这个性质可以把条件概率p(x,y|z)p(x,y∣z)写成p(x,y|z)=p(x|z)p(y|z)p(x,y∣z)=p(x∣z)p(y∣z)的形式,这时候可以说变量xx和变量yy是条件独立于变量zz的。

这也是为什么把朴素贝叶斯说成“朴素”的主要原因,因为做了一层计算上的简化。如果不使用条件独立的假设,我们是不能把概率p(x,y|z)p(x,y∣z)写成上述形式的,这样一来问题就变得格外地复杂。 条件独立的性质可以延展到更多的变量,如p(x_1,x_2,x_3|y)=p(x_1|y)p(x_2|y)p(x_3|y)p(x1,x2,x3∣y)=p(x1∣y)p(x2∣y)p(x3∣y)。当我们把这里的每个变量x_ixi看作是每一个单词的时候,就得到了朴素贝叶斯模型。

4. 平滑操作

另外,在上述过程中可以看到分子的计算过程涉及到了很多概率的乘积,一旦遇到这种情形,就要知道可能会有潜在的风险。比如其中一个概率值等于0,那不管其他概率值是多少,最后的结果一定为0,有点类似于“功亏一篑“的情况,明明出现了很多垃圾邮件相关的单词,就是因为其中的一个概率0,最后判定为属于垃圾邮件的概率为0,这显然是不合理的。为了处理这种情况,有一个关键性操作叫作平滑(smoothing),其中最为常见的平滑方法为加一平滑(add-one smoothing)。


三. 朴素贝叶斯的优化

1. 朴素贝叶斯的最大似然估计(难??)

在上一节中,我们学习了朴素贝叶斯模型以及如何估算每个单词的概率,并用这个概率来预测一个文本的分类。但有没有思考过一个问题:为什么要计算这些单词的概率?它的依据是什么?这个问题看似有点愚蠢,但实际上需要认真地思考才能发现其背后的奥妙之处。

计算语料库中每个单词的条件概率,这个过程实际上是模型训练的过程。另外,我们知道模型的训练过程其实就是寻找最优解的过程,所以现在看来,在上一节中我们已经提前知道了如何去学习模型参数了!

在这一节,我们从另外一个更严谨的角度来学习朴素贝叶斯。首先,构造朴素贝叶斯的目标函数,之后再试着去寻找朴素贝叶斯的最优解。最终会发现,以这种方式得出来的最优解恰恰就是上一节里计算出的结果。 为了推导出朴素贝叶斯的目标函数,我们仍需要从最大似然开始入手,并通过最大似然估计来获得朴素贝叶斯的目标函数。


难:朴素贝叶斯的最大似然估计??

2. 有了朴素贝叶斯的目标函数之后,剩下的环节无非就是寻找最优解的过程了。从上述目标函数中可以发现它具有一个限制条件。那这样的目标函数我们应该如何去优化呢? 这种优化问题也称之为带限制条件的优化(constrained optimization)。

带约束条件的优化——拉格朗日乘法项

推导难??

四. 理解决策树

1. 决策树的应用

决策树在机器学习领域的地位很高,而且又是几个经典集成模型(随机森林,提升树)的基础。 为了更好地理解这些集成模型,建议大家一定要理解透本章节的内容。 那什么叫决策树呢?其实我们每天都在使用决策树,这是我们做日常决策的工具。举个例子,“明天如果下雨我就不出门了。” 在这里我们用了一个决策条件:是否下雨,然后基于这个条件会有不同的结果:出门和不出门。 这就是一个经典的决策树!

利用机器学习语言来描述的话,基于历史的诊断样本或者经验,我们可以构造出不同的决策树(也就是的不同医生),但只要我们定义出了一种评估方式则可以选出其中最好的那棵决策树,这其实就是决策树的训练过程。

2. 一棵决策树也拥有大量的参数,但树本身是具有一定结构的。结构的学习也叫作Structured Prediction,因为这种问题不像之前讨论的比如回归问题只需要预测一个值就可以了,而是同时也要学出树的结构。结构的学习一般来说都很难,很多都是NP-hard问题。那具体什么叫NP-hard呢? 如果学过数据结构与算法,就应该有所了解。简单来讲NP-hard问题就是那些多项式时间复杂度内基本上解不出来的问题,一般需要指数级复杂度。

在计算机世界里存在大量的NP-hard问题等待我们去解决。一般对于这类的问题是没有一个很好的方式来求出全局最优解的。既然这样,我们通常会使用近似算法来找到“相对”最好的解。一个经典的近似算法叫作“贪心算法”。这类的算法每次只考虑局部最好的情况,所以一般带来的是相对最好的解决方案。但在某些特定的情况下,也可以给出全局最优解。给定数据并学出最好的决策树本身也是很难的问题。在这个问题上,我们也通常使用贪心算法来做每一步的决策,比如使用信息增益来判断下一个节点上需要放哪一个特征。

五. 决策树中的不确定性

1. 好的特征

上一节里谈到了决策树算法,但这个又是何等算法呢? 在本节,我们一起来深究一下。首先,我想告诉大家的是决策树算法本身是贪心算法。所以在决策树的训练上,每一步的最优选择局限在局部,相信大家马上就会对这个过程有所体会。

2. 信息熵——表示不确定性


3. 信息增益——不确定性减少

已经知道如何用数学来表示不确定性了。 接下来,我们再回到决策树的问题上。那又如何表示不确定性的减少呢? 无非就是原来的不确定性减去现在的不确定性! 下面我们试图分别对”是否发烧“和“是否疼痛”两个特征,分别计算一下不确定性的减少。不确定性减少的多的说明可以作为当前根节点,以此为根节点的更稳定。信息增益越大的当作根节点。


这种不确定性的减少也叫作信息增益(information gain)。构建决策树的过程无非是每一步通过信息增益来选择最好的特征作为当前的根节点,以此类推,持续把树构造起来。

决策树的构建过程。总结一下,每一步的构建其实就是选择当前最好的特征作为根节点。然后持续地重复以上过程把整棵树构建起来。其中,信息增益充当着每次选择特征的标准。当然,除了信息增益,我们也可以选择其他的指标作为选择特征的标准。到此为止,决策树的构建过程已经说完了。除了这些其实还有几个重要问题需要考虑,比如如何让决策树避免过拟合、如何处理连续型特征、如何使用决策树来解决回归问题等。

六. 决策树的过拟合

1. 决策树的节点数目

简单来讲,如满足以上两个条件我们就可以停止继续构建决策树了。首先,当所有的样本属于同一类别时就可以停下来,因为已经达成了我们最终的目的。另外,所有的特征都一样的时候其实也没办法继续了。所以,满足上面的条件就说明我们已经构建了完整的决策树。但这里有一点非常重要:决策树很容易过拟合!

那什么叫过拟合呢? 这个之前学过:就是在训练数据上表现特别好,但放到测试数据就表现很糟糕。之前学习逻辑回归时也接触过过拟合现象。在逻辑回归里,我们可以使用加入正则的方式来减少过拟合现象。加入正则相当于限制了参数的大小,小的参数会有效防止过拟合现象。那这里的问题是:对于决策树我们如何减少过拟合现象? 答案就是:决策树越简单越好!那什么叫更简单的决策树呢?一个重要标准是来判断决策树中节点的个数,节点个数越少说明这棵决策树就越简单。决策树里的节点个数跟过拟合有着很大的关系。因为节点个数越多,可以理解成模型的复杂度越高。

2. 用于防止过拟合的方案

但直接减少节点个数在实际操作中不太容易实现,因为决策树的构建过程其实是递归的过程。实际上,我们也可以通过限制其他的方式来调节节点个数比如树的深度。树的深度越深,一般来讲节点个数也会越多,所以都是有一定的关系的。所以,只要是跟节点个数相关的变量,其实都可以用来控制决策树的复杂度。总体来讲,有以下几种方法可以用来减少决策树的过拟合。

对决策树调参的时候,无非主要来调整树的深度、每一个叶节点样本的个数等等。具体最优的参数一般通过交叉验证的方式来获得,这一点跟其他模型是一样的。节点的样本个数越多,节点个数越少。节点个数和模型的过拟合有紧密相关的关系。

七. 随机森林是集成模型

1. 什么是集成模型

对于几乎所有的分类问题(图像识别除外,因为对于图像识别问题,目前深度学习是标配),集成模型很多时候是我们的首选。比如构建一个评分卡系统,业界的标配是GBDT或者XGBoost等集成模型,主要因为它的效果确实好,而且稳定。还有一点是这些模型的可解释性也很好,不像深度学习模型就像个黑盒子。

可解释性对于工业界应用来说尤其重要。比如一个模型出错了,我们希望第一时间能够找出问题的根源。但如果模型的可解释性比较差,则很难及时把问题定位出来。举个例子,金融类的应用是直接跟金钱挂钩的,一旦出了问题之后后果不堪设想。所以模型上线之前需要做大量的测试,而且提前要清楚地了解模型里的每个细节以及可能出错之后带来的后果。

那为什么集成模型的可解释性好呢? 这个其实不难理解,因为随机森林或者提升树模型其实是基于决策树的,而且我们知道决策树模型的可解释性本来就很好。集成模型可以简单理解成决策树的集合!

除了工业界应用,在各类数据竞赛上,集成模型也扮演着极其重要的角色。对于大部分的竞赛,使用集成模型是让你通向第一名的最快的捷径。当然,也离不开特征工程的部分。

2. 集成模型的优势

小时候我们应该都听过这样的一句话 - “三个臭皮匠顶个诸葛亮"。其实也从侧面反映了集成模型的思想,多个人一起决策要优于一个人单干。当然也有可能存在一些特别牛逼的人要远远胜于其他所有人的智慧之和,但毕竟是特例。至少多听取不同的建议会让自己少犯一些愚蠢的错误。

3. 构建集成模型

至于构建集成模型,通常有两种方法,一种叫Bagging,另外一种叫Boosting,这是两种完全不一样的方法。


随机森林是经典的Bagging模型,等同于同时训练了很多棵决策树,并同时用这些决策树来做决策。

Bagging中每个模型是独立的,训练的时候每个模型也是独立训练的,这点很重要,区别boosting。

八. 随机森林与方差分析

1. 方差和稳定性

在训练模型时,我们的目的是要训练出泛化能力强的模型,这一点我们已经在之前的章节里讲过了。为了一个模型具有较强的泛化能力,我们需要解决模型的过拟合现象。那什么样的模型容易过拟合呢?答案是“不稳定的模型!”,也就是训练出来的模型放在训练数据上表现特别好,但放在真实的线上环境时就不行了。 就好比一个学生平时成绩非常好,但一到关键时刻就不灵了,这种现象可以笼统地理解为不稳定。所以我们的目的是希望训练出一个稳定的模型。

训练模型也是一样的,我们希望这个模型既稳定,准确率也高。那集成模型为什么更稳定呢?答案就是,如果通过集成模型做预测,它会减少方差(或者标准差),即可以认为模型稳定。


2. 方差和稳定性

做个总结,多个模型共同预测确实会降低方差,也就意味着提高模型的稳定性。但准确率是不是也会保证提升呢?这个其实不好说,但通常来说集成模型的准确率还是要高于其他简单模型的。但不管怎么样,只要能理解为什么共同决策会降低风险或者增加稳定性,足以帮助理解后续的内容了。

九. 随机森林的训练

1. 随机森林的核心思想


既然随机森林也属于Bagging的范畴,训练和预测过程也跟上面视频里的是一样的。随机森林里有两个关键词,一个叫“随机”,一个叫“森林”。森林比较好理解,就是很多树的集合,也说明了模型本身的特点。 “随机”这个关键词不是特别直观,但马上会了解到为什么叫随机。

随机森林的预测过程无非是多棵决策树共同作出决策。比如对于分类型问题,可以通过投票的方式; 对于回归问题,则可以采用平均法则。

2.构造随机森林


这两点看起来没什么特别,但实际上非常重要。因为我们的目的是要训练出效果更好、更稳定的模型。如果最后训练出来的多棵决策树比单棵决策树还要差,那真的就没必要使用随机森林了。

基于给定的同一份样本数据,我们同时构造出若干个决策树作为随机森林,是不可以的,因为通过同一份数据训练出来的模型都是一样的! 即便我们有1000棵决策树,但每一棵决策树都一样,这跟训练一棵决策树没什么区别。所以这里需要训练样本的随机化。

如果我们得出来的多棵决策树之间相关性比较大,其实做不到增加稳定性的作用,至少效果不会好。

多样性:只有多样性(Diversity)才能保证随机森林的效果!这一点非常重要。就比如我们在构建团队的时候,也希望每个人有自己的特点,这样可以起到很好的互补作用,补偿取短。那接下来的问题就来了,如何构造出很多具备多样性的决策树 答案在于“随机“!



采样的过程用的方法

通过两个方面的随机操作,我们可以得出具备多样性的决策树。这也是为什么我们把它叫作“随机”森林的主要原因。第一种随机化来自于样本的采样,也就是说每一棵决策树来自于不同的训练样本。除了样本的随机化,我们在构造每一棵决策树的时候也会随机化特征。回顾之前决策树模型,当我们要选择当前最好的特征作为根节点的时候,我们把所有可能的特征全部尝试了一遍然后选了其中最好的。但在随机森林里,选择特征的时候首先会做采样,比如从100个特征里选择10个,然后从10个当中选择最好的特征作为当前的根节点。 所以,每一次做分裂(split)的时候先要做特征的采样,然后一一做比较,最后选择效果最好的。这两个方面的随机化可以保证带来多样化的决策树。当然除了这两个,还可以设计更多的随机化,但主要还是以这两个为主。

3. 随机森林的预测

构建完随机森林之后,我们即可以对新的样本做预测了! 预测过程类似于投票的过程。

十. 随机森林的过拟合

1. 随机森林的参数

随机森林模型本身对避免过拟合现象是有着不错的表现的,但这并不代表随机森林就不会过拟合。任何的一个机器学习模型都存着过拟合的风险。对于这个问题,目前主流的方法还是调参。我们可以了解一下随机森林的调参中经常涉及到的超参数。具体详细的信息请看官方文档:split的时候随机选出来的特征个数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容