随机森林 是由多个 决策树 组成的 bagging 算法,bagging是 集成学习 的一种,集成学习是 有监督学习 的一种
根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。
例如:回归问题中的房价预测,用已知的房屋面积、房间朝向、卧室数量等特征和已知的房屋成交价格标签训练一个模型,让机器自己找到房屋特征和房屋成交价格之间的内在联系,从而达到房价预测的目的
在有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。
集成学习在各个规模的数据集上都有很好的策略,如下:
bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间。具体步骤如下:
Bagging是bootstrap aggregating的简写
在Bagging方法中,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个模型,最后的预测结果利用N个模型的输出得到。
具体到不同类型的问题采取如下策略↓
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
在决策树算法中,有对应的剪枝算法。将比较复杂的决策树,化简为较为简单的版本,并且不损失算法的性能。
剪枝是决策树算法应对过拟合的一种策略,因为在学习过程中,决策树根据训练样本进行拟合,生成了针对于训练数据集精确性极高的模型。但是训练数据集,不可避免是一种有偏的数据。所以我们为了提高决策树的泛化性能,采取了剪枝的策略。使得决策树不那么对于训练数据精确分类,从而适应任何数据。
剪枝的策略可以分为预剪枝和后剪枝两种↓
概念:
优缺点:
将训练样本用bootstrap方法有放回地随机抽取k个新的自助样本集,并由此构建k棵决策树,再根据每棵树的决策结果进行综合判断。
代码部分可以参考这篇文章
https://blog.csdn.net/weixin_43721000/article/details/131600072