随机森林
建立决策树的过程:
在建立每一棵决策树的过程中,有两点需要注意--采样与完全分裂。
首先是两个随机采样的过程,random forest对输入的数据要进行行、列的采样。
(1)对于行采样,采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这样使得在训练的时候,每一棵树的输入样本都不是全部的样本,使得相对不容易出现over-fitting。
(2)然后进行列采样,从M个feature中,选择m个(m<<M)。
完全分裂:
使用完全分裂的方式建立出决策树,这样决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本的都是指向的同一个分类。一般很多的决策树算法都需要剪枝,但是由于之前的两个随机采样的过程保证了随机性,所以就算不剪枝,也不会出现over-fitting。
1. 在数理统计中, 一般通过增加抽样次数取平均来使得预估误差减小, 在机器学习中也有类似的模型处理, 如随机森林, 通过引入随机样本并且增加决策树的数据,对于随机森林主要降低预估的哪个方面值:
答案:估计方差
解析:增加数据是降低由数据的不稳定性所带来的方差,增加模型复杂度是降低偏差,另外噪音是无法避免的
2. 下列关于分类器的说法中不正确的是()
正确答案: C 你的答案: D (错误)
SVM的目标是找到使得训练数据尽可能分开且分类间隔最大的超平面,属于结构风险最小化
Naive Bayes是一种特殊的Bayes分类器,其一个假定是每个变量相互独立。
Xgboost是一种优秀的集成算法,其优点包括速度快、对异常值不敏感、支持自定义损失函数等等
随机森林中列采样的过程保证了随机性,所以就算不剪枝,也不容易出现过拟合。
解析:
D 选项:这个列采样:是指特征采样,如果有M个特征,我们随机采m (m<M)个
行采样:是指bootstrap也就是sklearn中这个参数为True
行采样:是指bootstrap也就是sklearn中这个参数为True
如果在用了列采样,随机森林不需要剪枝,因为本类就很大方差,防止过拟合
再者,bagging算法本身就是解决决策树的过拟合问题,我们引入bagging其实在一定程度上减轻了过拟合的问题。
GBDT核心在于每一棵树学的是之前所有树的结论和的残差,残差是一个加预测值后能得到真实值得累加量,xgboost和GBDT差不多,不过还支持线性分类器
xgboost可以自定损失函数,速度很快,但是对异常值很敏感

浙公网安备 33010602011771号