集成学习是模型融合, 把多个模型集成的方法
- 欠拟合问题 使用boosting方法
- 过拟合问题 使用bagging方法
bagging
bagging: 并行建立多个模型, 模型之间是相互独立的
- 对数据集采样 100万数据集样本 随机取80%样本 重复n次 得到n个数据集 数据集之间有细微的差别
-
训练多个模型
n个不同的数据集建立n个不同的模型(相同的算法或不同的算法) 训练的数据有细微差别->数据包含的规律有细微差别->得到的模型也有细微差别
-
对模型进行融合
n个模型 同一个预测样本 得到n个不同的预测结果->平权投票 多数的获胜
随机森林
在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
随机森林 = Bagging + 决策树
- 数据集->随机选m条样本->随机选取k个数据特征->训练决策树(默认catr树)
- 重复1构造n个弱决策树
- 平权投票集成n个决策树
api:
- sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
- n_estimators:integer,optional(default = 10)森林里的树木数量120,200,300,500,800,1200 超参数
- Criterion:string,可选(default =“gini”)分割特征的测量方法
- max_depth:integer或None,可选(默认=无)树的最大深度 5,8,15,25,30
- max_features=”auto”,每个决策树的最大特征数量
- If “auto”, then
max_features=sqrt(n_features)
. - If “sqrt”, then
max_features=sqrt(n_features)
(same as “auto”). - If “log2”, then
max_features=log2(n_features)
. - If None, then
max_features=n_features
. - bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样
- min_samples_split:节点划分最少样本数
- min_samples_leaf:叶子节点的最小样本数
- 超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf
bagging优点:
Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法
经过上面方式组成的集成学习方法:
- 均可在原有算法上提高约2%左右的泛化正确率(测试集测试时的正确率)
- 简单, 方便, 通用