什么是集成学习?
集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。
voting模型
对多个模型训练某一个数据集的结果进行投票,少数服从多数的原则,得到最优结果。
voting模型的参数voting参数有两种,默认是hard,直接投票判断,而soft是一定的权重比例投票,更准确一些。
缺点:模型数量十分有限
bagging模型
使用更多个子模型对数据集进行取样学习,使用多个弱学习器实现强学习器的效果。
取样分为放回取样和不放回取样,放回取样是指在构建一个子模型的过程中,样本被抽取后立刻放回。
包外数据:放回取样可能导致一部分样本未被取到,这些数据就是包外数据。
bagging模型极其容易并行化。
当弱学习器是决策树时,bagging模型就是随机森林。
随机森林
建立多个决策树并将他们融合起来得到一个更加准确和稳定的模型,是bagging 思想和随机选择特征的结合。随机森林构造了多个决策树,当需要对某个样本进行预测时,统计森林中的每棵树对该样本的预测结果,然后通过投票法从这些预测结果中选出最后的结果。
随机体现在两个方面,一个是随机取特征,另一个是随机取样本,让森林中的每棵树既有相似性又有差异性。
随机森林的参数:
n_estimators:森林中树木的数量,即基评估器(学习器)的数量
criterion :不纯度的衡量指标,有基尼系数和信息熵两种选择
max_depth :树的最大深度,超过最大深度的树枝都会被剪掉
min_samples_leaf:一个节点在分枝后的每个子节点都必须包含至少min_samples_leaf个训练样本,否则分枝就不会发生
min_samples_split:一个节点必须要包含至少min_samples_split个训练样本,这个节点才允许被分枝,否则分枝就不会发生
max_features:max_features限制分枝时考虑的特征个数,超过限制个数的特征都会被舍弃,默认值为总特征个数开平方取整
模型的复杂度与泛化误差的关系
泛化误差:来衡量模型在未知数据上的准确率的指标,叫做泛化误差
当模型在未知数据(测试集)上表现糟糕时,我们说模型的泛化程度不够,泛化误差大,模型的效果不好。泛化误差受到模型的结构(复杂度)影响。看下面这张图,它准确地描绘了泛化误差与模型复杂度的关系,当模型太复
杂,模型就会过拟合,泛化能力就不够,所以泛化误差大。当模型太简单,模型就会欠拟合,拟合能力就不够,所以误差也会大。只有当模型的复杂度刚刚好的才能够达到泛化误差最小的目标,我们追求的就是位于中间的平衡
点。
对于随机森林而言,树的深度越深,枝叶越多,模型越复杂
极限随机树是比随机森林更随机的森林,它具有更快的训练速度,能进一步增强模型的泛化能力。