集成方法中的梯度提升回归树(梯度提升机)模型合并多个决策树:梯度提升回归树是另一种集成方法,通过合并多个决策树来构建一个更为强大的模型。
回归和分类:虽然名字中含有“回归”,但这个模型既可以用于回归也可以用于分类。
每颗树都试图纠正前一棵树的错误:与随机森林方法不同,梯度提升采用连续的方式构造树,每颗树都试图纠正前一棵树的错误。默认情况下,梯度提升采用连续的方式构造树,每棵树都试图纠正前一棵树的错误。
强预剪枝:默认情况下,梯度提升回归树中没有随机化,而是用到了强预剪枝。梯度提升树通常使用深度很小(1到5之间)的树,这样模型占用的内存更少,预测速度也更快。
不断添加树可以不断迭代提高性能:梯度提升背后的主要思想是合并许多简单的模型(在这个语境中叫做弱学习器),比如深度较小的树。每颗树只能对部分数据做出很好的预测,因此,添加的树越来越多,可以不断迭代提高性能。
学习率:除了预剪枝与集成中树的数量之外,梯度提升的另外一个重要参数是learning_rate(学习率),用于控制每棵树纠正前一棵树的错误的强度。较高的学习率意味着每棵树都可以做出较强的修正,这样模型更为复杂。
随机森林鲁棒性:由于梯度提升和随机森林两种方法在类似的数据上表现的都很好,因此一种常用的方法就是先尝试随机森林,它的鲁棒性很好。
随机森林->梯度提升:如果随机森林效果很好,但预测时间太长,或者机器学习模型精度小数点后第二位的提高也很重要,那么切换成梯度提升通常会有用。
需要仔细调参:梯度提升主要缺点是需要仔细调参,而且训练时间可能会比较长。与其他基于树的模型类似,这一算法不需要对数据进行缩放就可以表现的很好,而且也适用于二元特征与连续特征同时存在的数据集。
不适用于高维稀疏矩阵:与其他基于树的模型相同,它也通常不适用于高维稀疏矩阵。
转自或参考:第六个模型:集成方法中的梯度提升回归树(梯度提升机)模型
https://blog.csdn.net/az9996/article/details/
1、梯度提升回归树(梯度提升机)
梯度提升回归树是另一种集成方法,通过合并多个决策树来构建一个更为强大的模型。虽然名字中含有“回归”,但这个模型既可以用于回归也可以用于分类。与随机森林方法不同,梯度提升采用连续的方式构造树,每颗树都试图纠正前一棵树的错误。默认情况下,梯度提升采用连续的方式构造树,每棵树都试图纠正前一棵树的错误。默认情况下,梯度提升回归树中没有随机化,而是用到了强预剪枝。梯度提升树通常使用深度很小(1到5之间)的树,这样模型占用的内存更少,预测速度也更快。
梯度提升背后的主要思想是合并许多简单的模型(在这个语境中叫做弱学习器),比如深度较小的树。每颗树只能对部分数据做出很好的预测,因此,添加的树越来越多,可以不断迭代提高性能。
梯度提升树经常是机器学习竞赛的优胜者,并且广泛应用于业界。与随机森林相比,它通常对参数设置更为敏感,但如果参数设置正确的话,模型精度会更高。
除了预剪枝与集成中树的数量之外,梯度提升的另外一个重要参数是learning_rate(学习率),用于控制每棵树纠正前一棵树的错误的强度。较高的学习率意味着每棵树都可以做出较强的修正,这样模型更为复杂。通过增大n_estimators来向集成中添加更多的树,也可以增加模型复杂度,因为模型有更多机会纠正训练集上的错误。
2、分析梯度提升树
可以看到,梯度提升树的特征重要性与随机森林的特征重要性有些类似,不过梯度提升完全忽略了某些特征。
由于梯度提升和随机森林两种方法在类似的数据上表现的都很好,因此一种常用的方法就是先尝试随机森林,它的鲁棒性很好。如果随机森林效果很好,但预测时间太长,或者机器学习模型精度小数点后第二位的提高也很重要,那么切换成梯度提升通常会有用。
如果想将梯度提升应用在大规模问题上,可以研究一下xgboots包机器Python接口,这个库在许多数据集上的速度都比scikit-learn对梯度提升的实现要快(有时调参也更简单)。
3、优点、缺点和参数
梯度提升决策树是监督学习中最强大也最常用的模型之一。其主要缺点是需要仔细调参,而且训练时间可能会比较长。与其他基于树的模型类似,这一算法不需要对数据进行缩放就可以表现的很好,而且也适用于二元特征与连续特征同时存在的数据集。与其他基于树的模型相同,它也通常不适用于高维稀疏矩阵。
参数n_estimators和learning_rate两者之间高度相关,因为learning_rate越低,就需要更多的树来构建具有相似复杂度的模型。随机森林的n_estimators值总是越大越好,但梯度提升不同,增大n_estimators会导致模型更加复杂,进而可能导致过拟合。通常的做法是根据时间和内存的预算选择合适的n_estimators,然后对不同的learning_rate进行遍历。
另一个重要参数是max_depth(或max_leaf_nodes),用于降低每棵树的复杂度。梯度提升模型的max_depth通常都设置的很小,一般不超过5。
</p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> </p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> </p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> 我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
讯享网
讯享网 版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
</p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;">博主25岁,前端后端算法大数据人工智能都有兴趣。</p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> </p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;">
讯享网</p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> </p><p style="letter-spacing: 0.05em; outline-style: none; overflow-wrap: break-word;"> </p>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/137087.html