机器学习算法系列(16)随机森林

credit by Julien R

为了得到更强的泛化性能,在集成学习中我们期望个体学习器尽可能不相同,因为只有这样才能够全面地概括数据,所以有了 Bagging 这个方法。Bagging是并行式集成学习方法的代表,它基于自助采样法(Bootstrap sampling),给定m个样本的数据集,有放回地抽取一个数据作为数据集,重复m次随机采样得到m个样本的数据集。然后,我们可以将以上的步骤重复T次,得到T个大小为m的随机样本数据集,基于每个样本数据集训练学习器。最后,针对是分类或者回归任务使用投票或者平均来确定最终学习器学习的结果。

随机森林在 Bagging 的基础上做了改进,随机森林会再次对特征做了一次随机选择,比如对于自助采样后的每一个子数据集(总共 m 个子数据集),我们并不会像决策数那样用到所有的特征,随机森林会从所有的特征中随机选择一个包含 k(k<n) 个特征的子集(通常k取log2(n))。当有一条新数据进来,在随机森林的 m 棵树会各自给出一个答案,如果是分类任务,我们就选择投票法,如果是回归任务则一般选择平均值作为输出。不像决策树,越靠近根节点的特征重要性越高,在随机森林中,在每个特征都是有可能成为“主角”的,也不容易出现过拟合的问题,可以说泛化的优点很明显。

选取特征子集

看了很多资料,似乎大家都把随机森林理解得有点复杂,推荐大家观看一个印度人的讲解视频:What is Random Forest Algorithm? A graphical tutorial on how Random Forest algorithm works? - YouTube,很清晰明了(需要翻墙)。

------本文结束,欢迎收藏本站、分享、评论或联系作者!------
点击查看
赠人玫瑰 手有余香
0%