首先是集成学习的两大思想:
boosting:将弱学习器提升为强学习器,高度的提升预测的精度,通过反复的学习得到一系列的弱学习器(决策树和逻辑回归),组合成一个强分类器,代表有(adboost,GBDT等)。
特点:强依赖性,只能串行处理。
其中有两个步骤:1.加法模型 2.前向分布
加法模型:就是说强分类器是由多个弱分类器线性相加组成的:
Fm:强分类器 h:弱分类器 β:弱分类器的权重 am:当前学习器的参数
前向分布:下一轮的学习和训练,是在上一轮的基础上训练得来的
Fm:强分类器 Fm -1:前一个分类器 h:当前分类器 β:当前分类器的权重
Bagging:通过自助采样(随机采样)的方式,生成众个并行的分类器,然后通过投票的方式少数服从多数的原则预测出最终结果,典型代表随机森林。特点:无强依懒性,可以并行的去处理。
随机森林是基于bagging思想的(bagging+决策树),我们也从两个方面去理解
1.随机:样本随机(带放回booststrap),特征随机
2.森林:一个树叫树,多颗树叫森林
主要是想解决决策树泛化能力弱的问题,比如说我们要对一个样本进行预测,通过决策树会直接输出结果,但是森林呢它会得到多个结果,然后进行投票。把所有的决策可能性结合到一起,这样的一个泛化能力肯定是比较强的。
那么也知道随机森林的思想以及构成,接着来说对随机森林有影响的因素都有哪些。
1.随机森林中,如果我选取的特征太多,样本太多,那么树与树之间的相似性是不是就越大,那他的错误率是不是就会越高。
2.随机森林中每棵树的分类能力越强的话,那么它的错误率就越低。
其实这两个方面是矛盾的,有足够的样本和特征才能训练好的决策树,但是相似性又会增大。因次就要考虑如何选择合适的特征和样本了。
如何选择特征数?
袋外错误(oob)
因为样本采样是随机的,比如说每次采样是2/3,这样的话就会有1/3采不到,采不到的这些数据就叫袋外数据。
假设袋外数据的总数为o,随机森林训练完之后,使用这些袋外数据作为输入,然后预测,因为这些袋外数据都是有标签的,就可以统计出来分类的错误,如果说有n个错误,袋外错误就是n/o。
一般情况下,特征的维数是先确定好的,更多的是学习随机森林本身的参数,例如树的深度,个数等等....
随机森林有什么有缺点?
优点:
在大数据集上有更好的效果
能够处理高维的数据,因为在里边做了特征选择
训练的速度快,因为随机森林可以并行计算
可以处理缺失值
缺点:
在噪声大的数据上会发生过拟合