数据挖掘面试准备(1)|常见算法(logistic回归,随机森林,GBDT和xgboost)

  • 时间:
  • 浏览:0

亲戚朋友儿知道,在做数学题的前一天,解未知数的法律最好的方式,是给定自变量和函数,通过函数防止自变量,以获得解。而机器学习就要花费,给定自变量和函数的解,求函数。

在决策树算法中,通过比较划分前后的不纯度值,来选则如可分裂。ID3使用信息增益作为不纯度,C4.5使用信息增益比作为不纯度,CART使用基尼指数作为不纯度。

GBDT的核心就在于:每一棵树学的是前一天所有树结论和的残差,其他残差统统1个多多加预测值可不可以得真实值的累加量。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。如此在第二棵树里亲戚朋友儿把A的年龄设为6岁去学习,将会第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论统统A的真实年龄;将会第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学习。

先提一下奥卡姆剃刀:给定1个多多具有相同泛化误差的模型,较简单的模型复杂性性的模型更可取。以免模型过于复杂性,突然再次出现过拟合的难题。

学习因子即步长α的选则对梯度下降算法来说有点要,α过小会是因为收敛太慢;若α很多,将会跳过最优,从而找只有最优解。

该思想的应用有两方面:bagging和boosting

我觉得时要有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每1个多多训练例赋相等的权重1/n,或者用该学算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重),或者Boosting的分类精度要优于Bagging。Bagging的训练集的选则是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选则与前面各轮的学习结果有关。

实际面试时很看重和考察你的理论基础,统统一定一定要重视各个算法推导过程中的细节难题。这里主要介绍:logistic回归,随机森林,GBDT和Adaboost

3.png

xgboos也是以(CART)为基学习器的GB算法**,或者扩展和改进了GDBT。相比GBDT的优点有:

求函数的法律最好的方式,基于理论上来说,大要素函数都能找到1个多多近似的泰勒展开式。而机器学习,统统用数据去拟合其他所谓的“近似的泰勒展开式”。

或者一般情况表下亲戚朋友儿又只有选则哪几种形状量该加在,统统亲戚朋友儿就选则正则化的法律最好的方式防止过拟合。

这里首先介绍如可构造决策树:

(1)如可分割某一结点,法律最好的方式有统统,分别针对二元属性、序数属性、连续属性等进行划分。

(2)在有多个形状时,如可选则最佳的分割形状。

这里就涉及到纯度的概念,若分割后的子结点都更偏向于1个多多类,如此纯度越高。

Regression难题的常规步骤为:

寻找h函数(即假设估计的函数);

构造J函数(损失函数);

想法律最好的方式使得J函数最小并求得回归参数(θ);

数据拟合难题

先一段话bootstrap, bagging,boosting 的含义。

Bootstrap是有并否有有放回的抽样法律最好的方式思想。

14.png

5.xgboost

13.png

1.逻辑回归

10.png

上图10中得到多个子结点M1,M2的GINI将会熵后,一般通过加权平均的法律最好的方式求M12;

如此增益就可不可以用M0-M12来表示

逻辑回归从统计学的深度图看属于非线性回归中的有并否有,它实际上是有并否有分类法律最好的方式,主要用于两分类难题

梯度下降时要把m个样本删改带入计算,迭代一次计算量为m\*n^2;随机梯度下降每次只使用1个多多样本,迭代一次计算量为n^2,当m很大的前一天,随机梯度下降迭代一次的时延要远高于梯度下降,我觉得时要每次迭代得到的损失函数都向着全局最优方向, 或者大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解符近。

5.png

3)使得J函数最小并求得回归参数(θ)

如可调整θ以使得J(θ)取得最小值有统统法律最好的方式,比如最小二乘法,梯度下降也是有并否有,这里介绍一下梯度下降。

决策树其他算法有着统统良好的形状,比如说训练时间复杂性度较低,预测的过程比较快速,模型容易展示。单决策树又有其他不好的地方,比如说容易over-fitting

欠拟合的防止法律最好的方式是增加形状量。

过拟合的防止法律最好的方式是减少形状量将会正则化。

数据的随机选则:

第一,从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可不可以重复,同1个多多子数据集中的元素才可不可以重复。

第二,利用子数据集来构建子决策树,将其他数据中放每个子决策树中,每个子决策树输出1个多多结果。最后,将会有了新的数据时要通过随机森林得到分类结果,就可不可以通过对子决策树的判断结果的投票,得到随机森林的输出结果了。如下图,假设随机森林蕴藏3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,如此随机森林的分类结果统统A类。

6.png

4)数据的拟合难题

第有并否有是欠拟合,通常是将会形状量选少了。

第二种是亲戚朋友儿让你的。

第1个多多是过拟合,通常是将会形状量选多了。

对于样本数量额非常之多的情况表,普通的批量梯度下降算法(Batch gradient descent )会非常耗时,靠近极小值时收敛时延加快时延,将会每次迭代时要便利所有样本,这时可不可以选则随机梯度下降算法(Stochastic gradient descent)

11.png

3.随机森林

9.png

1.png

2)代价函数J

下面的代价函数J之所有前面加在1/m是为了上面”梯度下降求参数θ时更方便“,也即这里不加1/m才可不可以。

4.png

先剪枝说白了统统提前结束决策树的增长,跟上述决策树停止生长的法律最好的方式一样。

后剪枝是存在决策树生长完成前一天再进行剪枝的过程。

(3)几时停止划分。

4.GBDT(Gradient Boost Decision Tree 梯度提升决策树)

信息增益为:父结点与所有子结点不纯程度的差值,差越大,则增益越大,表示形状的效果越好。

有前一天并时要分割的很多越好,将会某个形状产生了极少量的划分,它的划分信息将会很大,此时采用信息增益率

8.png

梯度方向表示了函数增长时延最快的方向,如此和它相反的方向统统函数减少时延最快的方向了。对于机器学习模型优化的难题,当亲戚朋友儿时要求解最小值的前一天,朝着梯度下降的方向走,就能找到最优值了。

随机森林是1个多多蕴藏多个决策树的分类器,构建过程如下:

1)决策树要花费1个多多大师,通过其他人在数据集中学到的知识对于新的数据进行分类。或者俗话说得好,1个多多诸葛亮,玩不过1个多多臭皮匠。随机森林统统希望构建多个臭皮匠,希望最终的分类效果才能超过单个大师的有并否有算法。

GBDT是以决策树(CART)为基学习器的GB算法,是迭代树,而时要分类树。

Boost是"提升"的意思,一般Boosting算法都1个多多多迭代的过程,每一次新的训练时要为了改进上一次的结果。

2.png

梯度下降是最基础的1个多多优化算法,学习因子统统梯度下降里的学习率,1个多多参数。

(2)xgboost在进行节点的分裂时,支持各个形状守护进程进行增益计算,或者算法加快时延,准确率也相对高其他。

以ID3为例,使用训练样本建立决策树时,在每1个多多内控 节点最好的方式信息论来评估选则哪1个多多属性作为分割

的最好的方式。对于过拟合的难题,一般要对决策树进行剪枝,剪枝有有并否有法律最好的方式:先剪枝,后剪枝。

(1)xgboost在代价函数里自带加入了正则项,用于控制模型的复杂性度。

之类于:1个多多:function(x)=y

机器学习统统样本蕴藏极少量的x(形状量)和y(目标变量)或者求其他function。(了解更多可不可以看: https://zhuanlan.zhihu.com/p/21340974?refer=mlearn )

将会你想面数据挖掘岗时要先了解下面这要素的基本算法理论:

但实际中亲戚朋友儿通常对不纯度进行度量,即不纯度越小,则认为该形状的区分度越高。

不纯度的度量法律最好的方式有有并否有:

2)那随机森林具体如可构建呢?1个多多多方面:数据的随机性选则,以及待选形状的随机选则。

1)利用了Logistic函数(或称为Sigmoid函数),函数形式为最常见的

具体的计算法律最好的方式如下:

1)当梯度下降到一定数值后,每次迭代的变化很小,这时可不可以设定1个多多阈值,倘若变化小于该阈值,就停止迭代,而得到的结果也近似于最优解。

2)若损失函数的值不断变大,则有将会是步长时延a很多,是因为算法不收敛,这时可适当调整a值

7.png

2.决策树

12.png

待选形状的随机选则:

与数据集的随机选则之类,随机森林中的子树的每1个多多分裂过程并未用到所有的待选形状,统统从所有的待选形状中随机选则一定的形状,前一天再在随机选则的形状中选则最优的形状。1个多多才能使得随机森林中的决策树都才能彼此不同,提升系统的多样性,从而提升分类性能。

此外,以决策树为基函数的提升法律最好的方式称为提升树(boosting tree),包括GBDT,xgboost,adaboost,这里只主要介绍GBDT和xgboost。