随机森林Random Forest面试问题汇总
1、随机森林原理:
随机森林是有很多随机的决策树构成,它们之间没有关联。得到RF以后,在预测时分别对每一个决策树进行判断,最后使用Bagging的思想进行结果的输出(也就是投票的思想)
2、Bagging(套袋法)
bagging的算法过程如下:
1、从原始样本集中使用Bootstraping方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)
2、对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)
3、对于分类问题:由投票表决产生分类结果;
对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)
3、Boosting(提升法)
boosting的算法过程如下:
1、对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
2、进行迭代的过程中,每一步迭代都是一个弱分类器。我们需要用某种策略将其组合,作为最终模型。
(例如AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大)
4、Bagging,Boosting的主要区别
1、样本选择上:
Bagging采用的是Bootstrap随机有放回抽样;
而Boosting每一轮的训练集是不变的,改变的只是每一个样本的权重。
2、样本权重:
Bagging使用的是均匀取样,每个样本权重相等;
Boosting根据错误率调整样本权重,错误率越大的样本权重越大。
3、预测函数:
Bagging所有的预测函数的权重相等;
Boosting中误差越小的预测函数其权重越大。
4、并行计算:
Bagging各个预测函数可以并行生成;
Boosting各个预测函数必须按顺序迭代生成。
5、随机森林重要的参数
n_features:推荐值为特征数量的平方根
n_trees:森林中的树按说越多越好,但是当数量多到一定程度时,精度的提升已经不明显,但是计算消耗却很大。
6、随机性体现在两点:
1、样本选择的随机性
2、特征选择的随机性
7、学习过程
1、现在有N个训练样本,每个样本的特征为M个,需要建K颗树
2、从N个训练样本中有放回的取N个样本作为一组训练集(其余未取到的样本作为预测分类,评估其误差)
3、从M个特征中取m个特征左右子集特征(m<<M)
4、对采样的数据使用完全分裂的方式来建立决策树,这样的决策树每个节点要么无法分裂,要么所有的样本都指向同一个分类
5、重复2的过程K次,即可建立森林
8、预测过程
1、将预测样本输入到K颗树分别进行预测
2、如果是分类问题,直接使用投票的方式选择分类频次最高的类别
3、如果是回归问题,使用分类之后的均值作为结果
9、参数问题
1、这里的一般取m=sqrt(M)
2、关于树的个数K,一般都需要成百上千,但是也有具体的样本有关(比如特征数量)
3、树的最大深度,(太深可能可能导致过拟合??)
4、节点上的最小样本数、最小信息增益
10 泛化误差估计
使用oob(out-of-bag)进行泛化误差的估计,将各个树的未采样样本作为预测样本(大约有36.8%),使用已经建立好的森林对各个预测样本进行预测,预测完之后最后统计误分得个数占总预测样本的比率作为RF的oob误分率。
11、随机森林的构建过程大致如下:
1、从原始训练集中使用Bootstraping方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集
2、对于n_tree个训练集,我们分别训练n_tree个决策树模型
3、对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂
4、每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝
5、将生成的多棵决策树组成随机森林。对于分类问题,按多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测值的均值决定最终预测结果
12、预测过程
1、将预测样本输入到K颗树分别进行预测
2、如果是分类问题,直接使用投票的方式选择分类频次最高的类别
3、如果是回归问题,使用分类之后的均值作为结果
13、总结
RF的主要优点有:
1、 训练可以高度并行化,对于大数据时代的大样本训练速度有优势。个人觉得这是的最主要的优点。
2、由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。
3、 在训练后,可以给出各个特征对于输出的重要性
4、 由于采用了随机采样,训练出的模型的方差小,泛化能力强。
5、相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。
6、 对部分特征缺失不敏感。
RF的主要缺点有:
1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。
2) 取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。
14、随机森林数据过拟合
下面哪个/些超参数的增加可能会造成随机森林数据过拟合?
A.树的数量
B.树的深度 (√)
C.学习速率
解析:我们增加树的深度有可能会造成模型过拟合。学习速率并不是随机森林的超参数。增加树的数量可能会造成欠拟合。
15、随机森林如何处理缺失值?
a、暴力填补
Python中的na.roughfix包提供简单的缺失值填补策略:
对于训练集中处于同一个类别下的数据,如果是类别变量缺失,则用众数补全,如果是连续变量,则用中位数。
b、相似度矩阵填补
RF的Python实现中,有一个rfImpute包,可以提供更加高层的缺失值填补。
首先先用暴力填补法进行粗粒度填充。然后使用上述填补后的训练集来训练随机森林模型,并统计相似度矩阵(proximity matrix),然后再看之前缺失值的地方,如果是分类变量,则用没有缺失的观测实例的相似度中的权重进行投票;如果是连续性变量,则用相似度矩阵进行加权求均值。
上述投票方案迭代进行4~6次。
16、解释相似度矩阵
相似度矩阵就是任意两个观测实例间的相似度矩阵,原理是如果两个观测实例落在同一棵树的相同节点次数越多,则这两个观测实例的相似度越高。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhihaefi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22