集成学习

常用的集成学习方法

夙愿已清 提交于 2019-11-26 00:45:37
集成学习是构建一组基学习器,并将它们综合作为最终的模型,在很多集成学习模型中,对基学习器的要求很低,集成学习适用于机器学习的几乎所有的领域: 1、回归 2、分类 3、推荐 4、排序 集成学习有效的原因 多样的基学习器可以在不同的模型中取长补短 每个基学习器都犯不同的错误,综合起来犯错的可能性不大 但是想同的多个基学习器不会带来任何提升 集成学习示例: 例如在上图中每个线性模型都不能成功将该数据集分类 但是三个线性模型的简单综合即可将数据集成功分类,每个模型犯不同的错,但是在综合时能够取长补短,使得综合后的模型性能更好。 那么如何构建不同的基学习器?如何将基学习器综合起来? 如何构建不同的学习器 1、采用不同的学习算法 2、采用相同的学习算法,但是使用不同的参数 3、采用不同的数据集,其中采用不同的样本子集,在每个数据集中使用不同的特征 如何综合不同的基学习器 1、投票法 每个基学习器具有相同的权重 2、有权重的投票 可用不同的方法来确定权重 3、训练一个新模型来确定如何综合 stacking 我们一般偏好简单的模型(线性回归) 主要的集成学习模式有以下几种 1、bagging random forest(随机森林) 2、boosting adaboost GBDT 3、stacking bagging 在集成算法中,bagging

集成学习lgb库调参的粒子群方法

旧巷老猫 提交于 2019-11-26 00:45:32
粒子群算法是模拟鸟群蜂群的觅食行为的一种算法。基本思想是通过群体中个体之间的协作和信息共享来寻找最优解。试着想一下一群鸟在寻找食物,在这个区域中只有一只虫子,所有的鸟都不知道食物在哪。但是它们知道自己的当前位置距离食物有多远,同时它们知道离食物最近的鸟的位置。想一下这时候会发生什么? 鸟A:哈哈哈原来虫子离我最近! 鸟B,C,D:我得赶紧往 A 那里过去看看! 同时各只鸟在位置不停变化时候离食物的距离也不断变化,所以一定有过离食物最近的位置,这也是它们的一个参考。鸟某某:我刚刚的位置好像靠近了食物,我得往那里靠近! 公式请自行百度 知乎 具体代码流程如下: 本文主要描述如何用粒子群方法搜索到一个适合lgb的参数 调整参数一般的步骤如下: *设定基础参数{parm0},基础评判指标{metrics0}; 在训练集上做cross-validation,做训练集/交叉验证集上偏差/方差与树棵树的关系图; 判断模型是过拟合 or 欠拟合,更新相应参数{parm1}; 重复2、3步,确定树的棵树nestimators; 采用参数{parm1}、nestimators,训练模型,并应用到测试集; 最好损失函数的评估部分要随机对原数据取样 用一半数据 去训练 然后预测另外一半数据 使参数向方差变小的方向移动* 先要定一个损失函数: def gini_coef(wealths): cum

集成学习

狂风中的少年 提交于 2019-11-25 23:50:58
一、集成学习 对于训练集数据,通过训练若干个个体学习器,通过一定的结合策略,形成一个强学习器。 二、Boosting模型 下一个子学习器,在当前学习器的基础上生成。最后,通过结合策略,将子学习器间的输出结合起来。 训练样本有权值,每次得到一个新的分类器后,会更新训练集中样本的权值。 参考刘建平–集成学习https://www.cnblogs.com/pinard/p/6131423.html 2.1 AdaBoost 摘自李航《统计学习方法》 2.1.1 AdaBoost算法 误差率 e m = P ( G m ( x i ) ≠ y i ) = Σ w m , i I ( G m ( x i ) ≠ y i ) ) e_{m}=P(G_{m}(x_{i})\neq y_{i})=\Sigma w_{m,i}I(G_{m}(x_{i})\neq y_{i})) e m ​ = P ( G m ​ ( x i ​ )  ​ = y i ​ ) = Σ w m , i ​ I ( G m ​ ( x i ​ )  ​ = y i ​ ) ) G m ( x ) G_{m}(x) G m ​ ( x ) 系数 α m = 1 2 l o g 1 − e m e m \alpha_{m}=\frac{1}{2}log\frac{1-e_{m}}{e_{m}} α m ​ = 2 1 ​