1.集成学习算法
什么是集成学习:通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和做出预测。这些预测最后结合成组合预测,因此优于任何一个单分类做出预测。
机器学习核心任务:如何优化训练数据和如何提升泛化能力。
boosting:弱弱变强。(解决欠拟合问题)
bagging:采样学习集成,互相遏制变壮。(解决过拟合问题)
只要单分类器的表现不是太差,集成学习的结果总是要好于单分类器的。
2.Bagging集成原理
实现过程:采样不同数据集、训练多个分类器、平权投票获得最终结果
2.1随机森林
随机森林是一个包含多个决策树的分类器
随机森林=Bagging+决策树
随机森林构造关键步骤:
1)一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
2)随机去选出m个特征,m<<M ,建造决策树
有放回抽样才导致最终的决策树具有交集。
因为是随机抽样,所以导致有些数据抽不到,叫做包外数据。将其作为验证集。
包外估计是对集成分类器泛化误差的无偏估计。
3.随机森林api
sklearn.ensemble.RandomForestClassifier(n_estimators=10)
4.boosting集成
步骤:训练第一个学习器、调整数据分布、训练第二个学习器、再次调整数据分布、依次训练学习器调整数据分布
bagging和boosting区别:
数据方面:bagging采样、boosting调整数据
投票方面:bagging所有学习器平权、boosting加权
学习顺序:bagging同时、boosting先后
主要作用:bagging解决过拟合、boosting解决欠拟合