随机森林
1.概述
1.1 集成算法概述
本身并不是一个单独的机器学习算法,而是通过在数据上构建多个模型,集成所有模型的建模结果。以此来获得最好的结果。
集成算法的目标:
集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或者分类表现。
多个模型集成成为的模型叫做集成评估器(ensemble estimator),组成集成评估器的每一个模型叫做基评估器(base estimator)。
通常来说,有三类集成算法:装袋法(Bagging),提升法(Boosting)和Stacking
袋装法的核心思想就是构建多个相互独立的评估器,然后对其预测进行平均或者多数表决原则来决定集成评估器的结果。如:随机森林。
提升法基评估器是相关的,核心思想是结合弱评估器的力量一次次对难以评估的样本进行预测,从而构建一个强评估器。如:Adaboost,梯度提升树。
1.2 sklearn中的集成算法
随机森林分类
随机森林回归
完全随机树的集成
2. 重要参数
2.1 随机森林分类(RandomForestClassifier)
单个决策树的准确率越高,随机森林的准确率也会越高,因为袋装法是依赖于平均值或者少数服从多数的原则来决定集成结果的。
重要参数
(1)n_estimators
这是森林中树木的数量,即基评估器的数量。
(2)random_state
sklearn中的分类树自带随机性,所以随机森林中的树天生就不一样。
决策树从最重要的特征中随机选择出一个特征来进行分枝,因此每次生成的决策树都不一样,这个功能由参数random_state控制。
随机森林中也有random_state,只不过在分类树中,一个random_state只控制生成一棵树,而随机森林中的random_state控制的是生成森林的模式,而非让一个森林中只有一棵树。当random_state固定时,随机森林中生成是一组固定的树,但每棵树依然是不一致的,这是用”随机挑选特征进行分枝“的方法得到的随机性。
用袋装法集成时,基分类器应当是相互独立的,是不相同的。
(3)bootstrap
袋装法正是通过有放回的随机抽样技术来形成不同的训练数据,bootstrap就是用来控制抽样技术的参数。
在一个含有n个样本的原始训练集中,我们进行随机采样,每次采样一个样本,并在抽取下一个样本之前将该样本放回原始训练集,也就是说下次采样时这个样本依然可能被采集到,这样采集n次,最终得到一个和原始训练集一样大的,n个样本组成的自助集。由于是随机采样,这样每次的自助集和原始数据集不同,和其他的采样集也是不同的。这样我们就可以自由创造取之不尽用之不竭,并且互不相同的自助集,用这些自助集来训练我们的基分类器,我们的基分类器自然也就各不相同了。
(4)oob_score
在使用随机森林时,我们可以不划分测试集和训练集,只需要用袋外
数据来测试我们的模型即可。
2.2 随机森林回归
重要参数
和决策树是类似的
3.实验
参考链接: