精华内容
下载资源
问答
  • 随机森林算法原理

    万次阅读 2019-02-22 12:33:54
    决策树与随机森林学习笔记 为什么要用-p*log('p)这个公式? 这个问题先放下,看看下面这些问题 假设我们用了一个只能装8个分子的盒子装了8个分子,当容器中存在空隙时分子会任意乱飞,系统的熵值本来就是表示...

    熵值法介绍

    熵定义:熵值法是计算指标权重的经典算法之一,它是指用来判断某个指标的离散程度的数学方法。其和化学里面的概念是相同的,指物体内部的混乱程度。混乱程度(纯度)低则熵值小,反之!
    查看了很多文献,好像对熵值的解读都很高深,现在说下自己的理解

    熵值法公式的理解

    熵值公式链接
    决策树与随机森林学习笔记

    为什么要用-p*log('p)这个公式?
    这个问题先放下,看看下面这些问题
    假设我们用了一个只能装8个分子的盒子装了8个分子,当容器中存在空隙时分子会任意乱飞,系统的熵值本来就是表示物体内部的混乱程度的,这时我们可以用公式可以求出系统的总熵值为0( 0和log函数相乘无限趋近于0时值为0),同理当盒子中没有分子时总熵值也为0
    这时我们考虑两个系统,一个容积为4个分子的器皿装了2个分子,和一个容积为8个分子的器皿装了4个分子,他们的熵值是不是相同,当然一样。他们的总熵值都为1,也就是他们都处于最极端混乱的状态。
    注:容积为8的器皿装5个分子和装3个分子,他们的混乱状态相同
    同一个系统中,熵值是满足相加性的,熵值只是一个相对属性,不要把不同系统的熵值搞混

    问什么要用-p*log('p)这公式?因为他满足以下条件,自己可以试着去掉一些参数看看它满不满足,熵值公式必须满足了系统以下几个特征:
    1:连续性
    该量度应连续,概率值小幅变化只能引起熵的微小变化
    2:对称性
    符号xi重新排序后,该量度应不变,这也是我们可以归一化、标准化矩阵参数的原因,因为无论怎么变,行向量的混乱程度的都不会变
    3:可加性
    熵的量与该过程如何被划分无关
    4:极值性
    当所有符号有同等机会出现的情况下,熵达到最大值(所有可能的事件同等概率时不确定性最高)

    熵值算法的例子
    在这里插入图片描述
    上面链接中的大神已经为我们做了详细解释,我简单对熵值算法坐下解释:
    我们对比整个表的第一列,可以看出第一列有3个属性:

    index age buys_computer
    0 [youth,youth,youth,youth,youth] [yes,yes,no,no,no]
    1 [middle,middle,middle,middle] [yes,yes,yes,yes]
    2 [senior,senior,senior,senior,senior] [yes,yes,yes,no,no]

    我们完全不用看buys_computer的排序,我们可以把age看成一个由3个箱子组成,分别装了[2,4,3]个分子的盒子,最后合并成一个箱子的系统

    系统一开始的熵值:
    在这里插入图片描述
    最后合并成一个系统后的熵值:
    在这里插入图片描述
    在这里插入图片描述
    其余列的增益可以从链接文档中查看。
    简而言之系统的状态变化越大,熵值变化量越大,代表列越复杂,它所包含的信息量也越多,它对输出结果的影响也越大,它在决策树中的层级也就越高。

    决策树的原理及Python实现

    决策树的原理和实现链接1
    决策树的原理和实现链接2

    bagging的原理

    集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合从下图可以看出,Bagging的弱学习器之间确没有boosting那样的联系。它的特点在于“随机采样”。那么什么是随机采样?

    随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,则由于随机性,T个采样集各不相同。

    注意到这和GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。

    对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是1/m。不被采集到的概率为1/m−1。如果m次采样都没有被采集中的概率是(1−1/m)^m
       当m→∞时,(1−1/m)^m→1e≃0.368。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。

    对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
    在这里插入图片描述

    最小二乘回归树算法实现

    不想看这一堆公式就跳过去看下面内容
    在这里插入图片描述

    一个简单的最小二乘预测器

    我们拿上面图一的简单方程说起,我们构造2组数据:
    两个方程参数分别接近(1,2,3,4,5),(1,2,2,4,5)
    我们可以自己动手加下,只有最后一组数据有些许偏差(16—>15, 15---->14)

    	X1 = np.array([[-2,-1,0,1,2],[-1,0,1,2,3],[1,1,1,0,0],[1,1,0,1,0],[1,0,0,0,1],[1,1,1,1,1]])
    	X2 = np.array([[1,0,0,2,1],[-1,0,2,1,1],[-3,1,2,0,0],[-4,2,0,1,1],[1,1,0,0,0],[1,1,1,1,1]])
    	Y1 = np.array([[10],[25],[6],[7],[6],[16]])
    	Y2 = np.array([[14],[12],[3],[9],[3],[15]])
    	X = np.vstack((X1,X2))
    	Y = np.vstack((Y1,Y2))
    

    这时我们可以得到两个2维(我们用几个下标可以把X表示出来,可以用X.ndim算出) 简单方程,2*6组数据5个系数:

    class Least_square:
        def __init__(self):
            self.param = np.array([])
            self.Y = np.array([])
    
        def fit(self, X, Y):
            X_T = X.transpose()
            self.param = np.dot(np.dot(np.linalg.inv(np.dot(X_T,X)),X_T),Y)
            self.Y = Y
            return self.param
    
        def predict(self,X):
            result = np.dot(X,self.param)
            var = np.var(self.Y - result)
            return result, var
            
    least_instance = Least_square()
    param = least_instance.fit(X,Y)
    result,var = least_instance.predict(X)  
    

    线性回归器简单示例

    from sklearn.linear_model import LinearRegression
    regression = LinearRegression()
    param = regression.fit(X, Y)
    score = regression.score(X,Y)
    result = regression.predict(X)
    

    展开全文
  • ①Random Forest 随机森林算法原理: 即bagging法+CART算法生成决策树的结合。 R F = bagging + fully-grown CART decision tree ②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集...

    ①Random Forest 随机森林算法原理:
    即bagging法+CART算法生成决策树的结合。

    R F = bagging + fully-grown CART decision tree

    ②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集单个单个进行决策树生成。

    ③随机森林的优点:

    • 可并行化计算(子集的训练相互独立),效率高
    • 继承了CART算法的优点(使用Gini系数选择最优特征及切分点)
    • 减小了完全生成树的弊端(因为完全生成树过于复杂,Ein小但Eout大;如果不与bagging结合的话,决策树的训练是要先生成再剪枝的,而RF当中就不需要剪枝了,因为bagging法使得各个子集的决策树不会过于复杂)

    ④误差Eoob(out of bag 袋外误差)

    此处参考博客:
    作者:快乐的小飞熊
    链接:https://www.jianshu.com/p/b94ec2fc345d
    来源:简书

    • 在随机森林bagging法中可以发现booststrap每次约有1/3的样本不会出现在bootstrap所采集的样本集合中,故没有参加决策树的建立,这些数据称为袋外数据oob,用于取代测试集误差估计方法,可用于模型的验证。(优点是不需要另外划分validation验证集,袋外数据直接作为验证数据,在模型训练之时就计算出了误差。即袋外误差)
      下面先介绍下oob的使用,其中(x,y)代表输入的样本和label,g表示的是构建的树。
      在这里插入图片描述
      上图中(xN,yN)没有用于g2、g3、gt,所以(xN,yN)可以作为g2、g3、gt的验证数据,然后此oob数据作为输入,输入到模型中,然后投票,少数服从多数。
      同理,对于(x1,y1)、(x2,y2)等也存在同样的计算,最终计算评判错误的样本占比,就是oob-error.
      所以oob可以用来衡量RF模型的好坏。

    • 同时,也可以引出随机森林输出特征重要性的原理:如果特征i对于模型是有利的,那么第i维特征置换成随机值,将会降低模型的性能,也就是会使oob-error变大。
      根据这个原理,我们可以进行特征选取,即去除冗余的、相关性差的特征。(也称为置换试验)
      importance(i) = Eoob(G) - Eoob^p(G)
      其中Eoob^p(G)就是被替换掉第i维特征值后的数据集的Eoob。


    END

    展开全文
  • 本文首先对决策树算法的原理进行分析并指出其存在的问题,进而介绍随机森林算法。同单机环境下的随机森林构造不同的是,分布式环境下的决策树构建如果不进行优化的话,会带来大量的网络 IO操作,算法效率将非常低,...
  • Bagging与随机森林算法原理小结 在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是bagging流派,它的特点是各个弱学习器之间没有...

    Bagging与随机森林算法原理小结

        在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。本文就对集成学习中Bagging与随机森林算法做一个总结。

        随机森林是集成学习中可以和梯度提升树GBDT分庭抗礼的算法,尤其是它可以很方便的并行训练,在如今大数据大样本的的时代很有诱惑力。

    1.  bagging的原理

        在集成学习原理小结中,我们给Bagging画了下面一张原理图。

        从上图可以看出,Bagging的弱学习器之间的确没有boosting那样的联系。它的特点在“随机采样”。那么什么是随机采样?

        随机采样(bootsrap)就是从我们的训练集里面采集固定个数的样本,但是每采集一个样本后,都将样本放回。也就是说,之前采集到的样本在放回后有可能继续被采集到。对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。如果我们对有m个样本训练集做T次的随机采样,,则由于随机性,T个采样集各不相同。

        注意到这和GBDT的子采样是不同的。GBDT的子采样是无放回采样,而Bagging的子采样是放回采样。

        对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是1m” role=”presentation”>0031.png?rev=2.6.1 006D.png?rev=2.6.1   1m。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。

        对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。

        bagging对于弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络。

        bagging的集合策略也比较简单,对于分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。

        由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些。

    2.  bagging算法流程

        上一节我们对bagging算法的原理做了总结,这里就对bagging算法的流程做一个总结。相对于Boosting系列的Adaboost和GBDT,bagging算法要简单的多。

        输入为样本集D={(x,y1),(x2,y2),...(xm,ym)}” role=”presentation”>0044.png?rev=2.6.1003D.png?rev=2.6.1007B.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 002C.png?rev=2.6.1 0079.png?rev=2.6.1 0031.png?rev=2.6.1 0029.png?rev=2.6.1002C.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 0032.png?rev=2.6.1 002C.png?rev=2.6.10079.png?rev=2.6.1 0032.png?rev=2.6.1 0029.png?rev=2.6.1002C.png?rev=2.6.1002E.png?rev=2.6.1002E.png?rev=2.6.1002E.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 006D.png?rev=2.6.1 002C.png?rev=2.6.10079.png?rev=2.6.1 006D.png?rev=2.6.1 0029.png?rev=2.6.1007D.png?rev=2.6.1 D={(x,y1),(x2,y2),...(xm,ym)},弱学习器算法, 弱分类器迭代次数T。

        输出为最终的强分类器f(x)” role=”presentation”>0066.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.10029.png?rev=2.6.1 f(x)

        1)对于t=1,2…,T:

          a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm” role=”presentation”>0044.png?rev=2.6.1 006D.png?rev=2.6.1  Dm

          b)用采样集Dm” role=”presentation”>0044.png?rev=2.6.1 006D.png?rev=2.6.1  Dm

        2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

    3. 随机森林算法

        理解了bagging算法,随机森林(Random Forest,以下简称RF)就好理解了。它是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。我们现在就来看看RF算法改进了什么。   

        首先,RF使用了CART决策树作为弱学习器,这让我们想到了梯度提示树GBDT。第二,在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为nsub” role=”presentation”>006E.png?rev=2.6.1 0073.png?rev=2.6.10075.png?rev=2.6.10062.png?rev=2.6.1  nsub个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。    

        如果nsub=n” role=”presentation”>006E.png?rev=2.6.1 0073.png?rev=2.6.10075.png?rev=2.6.10062.png?rev=2.6.1 003D.png?rev=2.6.1006E.png?rev=2.6.1 nsub=n的值。

        除了上面两点,RF和普通的bagging算法没有什么不同, 下面简单总结下RF的算法。

        输入为样本集D={(x,y1),(x2,y2),...(xm,ym)}” role=”presentation”>0044.png?rev=2.6.1003D.png?rev=2.6.1007B.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 002C.png?rev=2.6.1 0079.png?rev=2.6.1 0031.png?rev=2.6.1 0029.png?rev=2.6.1002C.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 0032.png?rev=2.6.1 002C.png?rev=2.6.10079.png?rev=2.6.1 0032.png?rev=2.6.1 0029.png?rev=2.6.1002C.png?rev=2.6.1002E.png?rev=2.6.1002E.png?rev=2.6.1002E.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.1 006D.png?rev=2.6.1 002C.png?rev=2.6.10079.png?rev=2.6.1 006D.png?rev=2.6.1 0029.png?rev=2.6.1007D.png?rev=2.6.1 D={(x,y1),(x2,y2),...(xm,ym)},弱分类器迭代次数T。

        输出为最终的强分类器f(x)” role=”presentation”>0066.png?rev=2.6.10028.png?rev=2.6.10078.png?rev=2.6.10029.png?rev=2.6.1 f(x)

        1)对于t=1,2…,T:

          a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集Dm” role=”presentation”>0044.png?rev=2.6.1 006D.png?rev=2.6.1  Dm

          b)用采样集Dm” role=”presentation”>0044.png?rev=2.6.1 006D.png?rev=2.6.1  Dm,在训练决策树模型的节点的时候, 在节点上所有的样本特征中选择一部分样本特征, 在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分

        2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。

    4. 随机森林的推广

        由于RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回归,还可以用于特征转换,异常点检测等。下面对于这些RF家族的算法中有代表性的做一个总结。

     4.1 extra trees

        extra trees是RF的一个变种, 原理几乎和RF一模一样,仅有区别有:

        1) 对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。

        2) 在选定了划分特征后,RF的决策树会基于信息增益,基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。

        从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是偏倚相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。

    4.2 Totally Random Trees Embedding

        Totally Random Trees Embedding(以下简称 TRTE)是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。我们知道,在支持向量机中运用了核方法来将低维的数据集映射到高维,此处TRTE提供了另外一种方法。

        TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征x” role=”presentation”>0078.png?rev=2.6.1 x划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0,     0,0,1,0,0,     0,0,0,0,1), 有15维的高维特征。这里特征维度之间加上空格是为了强调三颗决策树各自的子编码。

        映射到高维特征后,可以继续使用监督学习的各种分类回归算法了。

    4.3 Isolation Forest

        Isolation Forest(以下简称IForest)是一种异常点检测的方法。它也使用了类似于RF的方法来检测异常点。

        对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数不需要和RF一样,对于RF,需要采样到采样集样本个数等于训练集个数。但是IForest不需要采样这么多,一般来说,采样个数要远远小于训练集个数?为什么呢?因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。

        对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。这点也和RF不同。

        另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。

        对于异常点的判断,则是将测试样本点x” role=”presentation”>0078.png?rev=2.6.1 x

        其中,m为样本个数。c(m)” role=”presentation”>0063.png?rev=2.6.10028.png?rev=2.6.1006D.png?rev=2.6.10029.png?rev=2.6.1 c(m)

        s(x,m)的取值范围是[0,1],取值越接近于1,则是异常点的概率也越大。

    5. 随机森林小结

        RF的算法原理也终于讲完了,作为一个可以高度并行化的算法,RF在大数据时候大有可为。 这里也对常规的随机森林算法的优缺点做一个总结。

        RF的主要优点有:

        1) 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。

        2) 由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

        3) 在训练后,可以给出各个特征对于输出的重要性

        4) 由于采用了随机采样,训练出的模型的方差小,泛化能力强。

        5) 相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。

        6) 对部分特征缺失不敏感。

        RF的主要缺点有:

        1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。

        2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

     

    (欢迎转载,转载请注明出处。欢迎沟通交流: pinard.liu@ericsson.com)

    标签: 集成学习
    1
    0

    « 上一篇:scikit-learn 梯度提升树(GBDT)调参小结
    » 下一篇:scikit-learn随机森林调参小结
        </div>
        <div class="postDesc">posted @ <span id="post-date">2016-12-10 20:38</span> <a href="http://www.cnblogs.com/pinard/">刘建平Pinard</a> 阅读(<span id="post_view_count">7368</span>) 评论(<span id="post_comment_count">6</span>)  <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6156009" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(6156009);return false;">收藏</a></div>
    </div>
    <script type="text/javascript">var allowComments=true,cb_blogId=311024,cb_entryId=6156009,cb_blogApp=currentBlogApp,cb_blogUserGuid='7d95b75d-b891-e611-845c-ac853d9f53ac',cb_entryCreatedDate='2016/12/10 20:38:00';loadViewCount(cb_entryId);</script>
    




      
    #1楼 2017-05-25 17:05 mmxx  
    “对于我们的Bagging算法,一般会随机采集和训练集样本数m一样个数的样本。这样得到的采样集和训练集样本的个数相同,但是样本内容不同。”

    训练集总共m个样本,在随机采集T个m大小的样本,这T个不和原训练集一样了吗?
      
    #2楼[楼主] 2017-05-25 17:08 刘建平Pinard  
    @ mmxx
    你好,这里的采样是有放回的采样。所以某一个样本可能被多次采样到,某一些样本没有机会被采样到。
    http://pic.cnblogs.com/face/1042406/20161104225142.png
      
    #3楼 2017-05-25 17:17 mmxx  
    @ 刘建平Pinard
    对的,我理解错了
      
    #4楼 2017-09-09 19:12 zzysli  
    你好,想问一下
    模型的泛化能力强一些
    ,测试集对应的方差会小一些,相应的对训练集拟合的就不太好所以偏差会大;
    这样说是因为,通常训练是有监督的,模型泛化能力强,“相对”情况下,对训练集的拟合就不会太好,所以偏差会大,可以上面那样理解吗,如果数据比较好,是不是也有意外情况,这的偏差是对应标签数据和预测值的比较么

    然后方差,如果是有监督数据,测试集也带标签,这次为什么不用偏差作为标准而用方差去评价呢

    不知问题是不是有点太小白了
    还是先行感谢~~
      
    #5楼 2017-09-09 19:54 zzysli  
    额那个还想问一下
    通常人们说随机森林属于不过拟合范畴,为什么会说,可能会陷入过拟合,
    是因为噪音大的时候,样本特征少或不明显吗
    然后还是想知道训练测试分别对应偏差方差的逻辑 :)
    谢谢。
      
    #6楼[楼主]37806372017/9/11 11:22:15 2017-09-11 11:22 刘建平Pinard  
    @ zzysli
    关于你上面4,楼对方差和偏差的描述,基本都是正确的。其实方差和偏差是有些对立的,难以直接两者兼顾。各个算法往往根据需要要有所取舍。

    关于偏倚(偏差)和方差的关系,其实都可以单独写一篇文章出来。我一些也说不清楚。不过个人觉得这一篇讲的很清楚,推荐你先去看一下,也许可以完全解决你的困惑。
    https://www.zhihu.com/question/27068705
    http://pic.cnblogs.com/face/1042406/20161104225142.png
    </div><!--end: forFlow -->
    </div><!--end: mainContent 主体内容容器-->
    
    <div id="sideBar">
        <div id="sideBarMain">
    

    公告

    ★珠江追梦,饮岭南茶,恋鄂北家★
    昵称:刘建平Pinard
    园龄:11个月
    粉丝:403
    关注:13
            <div id="blog-calendar" style=""><table id="blogCalendar" class="Cal" title="日历" cellspacing="0" cellpadding="0">
    <tbody><tr><td colspan="7"><table class="CalTitle" cellspacing="0">
        <tbody><tr><td class="CalNextPrev"><a href="javascript:void(0);" onclick="loadBlogCalendar('2017/08/01');return false;">&lt;</a></td><td align="center">2017年9月</td><td class="CalNextPrev" align="right"><a href="javascript:void(0);" onclick="loadBlogCalendar('2017/10/01');return false;">&gt;</a></td></tr>
    </tbody></table></td></tr><tr><th class="CalDayHeader" abbr="日" scope="col" align="center">日</th><th class="CalDayHeader" abbr="一" scope="col" align="center">一</th><th class="CalDayHeader" abbr="二" scope="col" align="center">二</th><th class="CalDayHeader" abbr="三" scope="col" align="center">三</th><th class="CalDayHeader" abbr="四" scope="col" align="center">四</th><th class="CalDayHeader" abbr="五" scope="col" align="center">五</th><th class="CalDayHeader" abbr="六" scope="col" align="center">六</th></tr><tr><td class="CalOtherMonthDay" align="center">27</td><td class="CalOtherMonthDay" align="center">28</td><td class="CalOtherMonthDay" align="center">29</td><td class="CalOtherMonthDay" align="center">30</td><td class="CalOtherMonthDay" align="center">31</td><td align="center">1</td><td class="CalWeekendDay" align="center">2</td></tr><tr><td class="CalWeekendDay" align="center">3</td><td align="center">4</td><td align="center">5</td><td align="center">6</td><td align="center">7</td><td align="center">8</td><td class="CalWeekendDay" align="center">9</td></tr><tr><td class="CalWeekendDay" align="center">10</td><td align="center">11</td><td align="center">12</td><td align="center">13</td><td align="center">14</td><td align="center">15</td><td class="CalTodayDay" align="center">16</td></tr><tr><td class="CalWeekendDay" align="center">17</td><td align="center">18</td><td align="center">19</td><td align="center">20</td><td align="center">21</td><td align="center">22</td><td class="CalWeekendDay" align="center">23</td></tr><tr><td class="CalWeekendDay" align="center">24</td><td align="center">25</td><td align="center">26</td><td align="center">27</td><td align="center">28</td><td align="center">29</td><td class="CalWeekendDay" align="center">30</td></tr><tr><td class="CalOtherMonthDay" align="center">1</td><td class="CalOtherMonthDay" align="center">2</td><td class="CalOtherMonthDay" align="center">3</td><td class="CalOtherMonthDay" align="center">4</td><td class="CalOtherMonthDay" align="center">5</td><td class="CalOtherMonthDay" align="center">6</td><td class="CalOtherMonthDay" align="center">7</td></tr>
    

            <div id="leftcontentcontainer">
                <div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block"></div><div id="sidebar_shortcut" class="sidebar-block">
    

        </div><!--end: sideBarMain -->
    </div><!--end: sideBar 侧边栏容器 -->
    <div class="clear"></div>
    
    展开全文
  • 1.Spark 随机森林算法原理是什么? 2.随机森林算法源码做了哪些分析? 3.随机森林算法本文例举了什么案例? 本文首先对决策树算法的原理进行分析并指出其存在的问题,进而介绍随机森林算法。同单机环境...
  • 随机森林算法原理解析

    千次阅读 2019-10-15 18:20:45
    集成学习有两个流派,一个是boosting派系,它的...在集成学习原理总结中,给出bagging的原理图。  (1)、Bagging的特点“随机采样”。随机采集跟训练集个数m相同的样本,采集T次。得到采样集。  (注意:GBDT(Gr...
  • 随机森林我们可以理解为多个决策树组成的模型,但是如何组合,组合的方式是什么,我们就得知道集成学习的思想,bootstraping,bagging的概念。 集成学习思想: 集成学习主要的作用是为了解决单个模型在运行时固有的...
  • 随机森林算法 集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。 随机森林是集成学习中可以和梯度...
  • 随机森林算法原理及OpenCV应用

    千次阅读 2016-11-04 23:43:19
    随机森林算法是机器学习、计算机视觉等领域内应用仍为广泛的一个算法、它不仅可以用来做分类(包括二分类和多分类),也可用来做回归预测,也可以作为一种数据降维的手段。 在随机森林中,将生成很多的决策树,并...
  • 随机森林算法原理小结

    千次阅读 2017-03-20 18:56:38
    随机森林算法  理解了bagging算法,随机森林(Random Forest,以下简称RF)就好理解了。它是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。我们现在就来看看RF算法改进了什么。  ...
  • 随机森林 算法原理详解与实现步骤

    万次阅读 2017-05-19 15:00:10
    最近在研究TLD算法,在做目标检测的时候,用到了随机森林的组合分类器。话说现在的检测问题可以归结为分类问题,丰富了解决问题的手段。废话少说,接着看。 1.随机森林原理介绍 随机森林,指的是利用多棵树对...
  • 本文就对集成学习中Bagging与随机森林算法做一个总结。     随机森林是集成学习中可以和梯度提升树GBDT分庭抗礼的算法,尤其是它可以很方便的并行训练。 一、bagging原理     在集成学习原理小结中,Bagging...
  • Bagging和随机森林 前言 集成学习是目前机器学习的一大热门方向。简单来说,集成学习就是组合许多弱模型以得到一个预测结果比较好的强模型。对于常见的分类问题就是指采用多个分类器对数据集进行预测,把这些分类...
  • 在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。...本文就对集成学习中Bagging与随机森林算法做一个总结。  随机森林是集成学习中可以和梯
  • 原文地址: ... 在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。...本文就对集成学习中Bagging与随机森林算法做一个总结。  随机森林

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,769
精华内容 5,507
关键字:

随机森林算法原理