随机森林 信息&熵&信息增益

随机森林是什么?

随机森林的特点?

随机森林能做什么?

随机森林原理是什么?

随机森林是什么?

作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景。

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。

随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,这样的比喻还是很贴切的,其实这也是随机森林的主要思想--集成思想的体现。

其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。

随机森林特点

  • 在当前所有算法中,具有极好的准确率/It is unexcelled in accuracy among current algorithms;
  • 能够有效地运行在大数据集上/It runs efficiently on large data bases;
  • 能够处理具有高维特征的输入样本,而且不需要降维/It can handle thousands of input variables without variable deletion;
  • 能够评估各个特征在分类问题上的重要性/It gives estimates of what variables are important in the classification;
  • 在生成过程中,能够获取到内部生成误差的一种无偏估计/It generates an internal unbiased estimate of the generalization error as the forest building progresses;
  • 对于缺省值问题也能够获得很好得结果/It has an effective method for estimating missing data and maintains accuracy when a large proportion of the data are missing

信息&熵&信息增益

信息&熵&信息增益

熵,代表信息混乱程度,熵越大,信息越混乱,熵越小,信息越确定。

h(x) = -(p(x)*lgp(x)+(1-p(x))*lg(1-p(x))) 

熵的曲线图

证明当p为0和1时,熵最小,p = 0 .5时,熵最大,证明信息最混乱,所谓创建决策树,就是熵逐渐降低的过程。根节点熵大于子节点平均熵。

信息增益,根节点信息熵-某子节点信息熵。

gain(Y,f1)= H(Y) - H(Y|f1)

 信息增益率:

gain(Y,f1)=H(Y,f1) / H(f1) 用于作为分类标准,出现C4.5

 H(f1) 描述的是这个特征本身的信息熵。值越大代表特征本身熵越大。

Gini系数:

信息熵和基尼系数都是想定义变量的混乱程度。

方差定义变量变化程度,方差越大,离散程度越高。使用方差度量稳定与否。

对基尼系数思考,以上公式需要想想。

决策树评价

就是对所有叶子节点熵求和,值越小说明对样本分类越准确。由于该函数值越小越好,所以又称为损失函数。

如何构建决策树?

选择第一个特征进行分类是构建树中最重要异步。那么如何选择呢?

如何选择特征作为第一个分类呢?

 信息增益最大的那个特征。 那个特征信息增益越大,对分类影响越大。

随机森林是常用的衡量特征重要性的方法。

计算正例经过的节点,使用结果节点的数据,经过节点的GINI系数和等指标。或者随机替换一系列数据,重新建立决策树,计算新模型的准确率变化,从而考虑特征的重要行。

额,这不是

关于一些问题

怎么判断用信息增益还是基尼系数?

用信息增益和基尼系数建立树差不多,但是发现使用基尼系数场景中往往比信息增益好一点点,但可能也不正确。

为什么分类的损失函数一定用交叉熵,而回归的损失函数用平方误差,是因为不能把分类标签作为分类问题的输出解导致的吗?

是的。

熵一般用于分类问题?

是的。一般使用交叉熵做分类损失。

如果评价一棵树那个因素对结果的重要性程度?

用信息熵或基尼系数确定影响重要性。 随机森真的可以确定。

随机选择特征时有放回吗?

没有   ,特征没有必要重复选,但样本需要。

XCB和GBDT比随机森林更好一点吧?

不一定。所有算法都是被实践证明有效的。算法更难,但不见得更好。

一般来说,用卷积神经网络分类会好于随机森林,但是如果数据量不大或者特征比较明显的话,用随机森林可能已经达到更好的效果,能达到类似XCB和GBDT。

随机森林的个数特别大会出现过拟合吗?

不会,树的个数越多越不会过拟合,如果精度不再上升,再分树,会导致内存浪费。

train_plit_test分割样本是随机的吗?

是随机的。

随机森林不同的特征也需要做子集吗?

是的。有可能在特征也做一个子集。假如有20个候选特征,一般做法是先随机做一个集合,如随机挑选15个,再从15个中挑选最优的那个特征,即在给定特征采样率。

特征随机采样率能有效防止过拟合。

随机森林怎样解决两个特征有耦合关系的?

随机森林不考虑耦合关系。直接做。

岂不是直接用神经网络更好了?

考虑性价比,尤其是深度神经网络。

每次特征选择比例选多少合适呢?能指定特定值吗?

值没有合适的说法,如果发现模型效果还不错,想去提升泛化能力,比例值可以给小一点,甚至可以给0.1,0.2

SR:看到一句话,对于每棵树的每个节点,都随机的选择m个特征,怎么理解?

是啊,就是随机森林的做法,随机从m个特征中选择最好的的那个特征。

特征和数据决定了机器学习问题的上线,而模型和算法只能尽可能逼近这个上线,所以用XCB和GBDT有时候不一定比logstic要好。

是的。XCB和GBDT理论上能得到这个上线,随机森林不见得能得到这个上线。

随机森林不同决策树在做分类的时候是怎样投票的?

随机森林做分类就是少数服从多数。做回归就是直接相加。

猜你喜欢

转载自www.cnblogs.com/unicorn2105/p/8821722.html