![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集成学习
anshuai_aw1
这个作者很懒,什么都没留下…
展开
-
Xgboost系统设计:分块并行、缓存优化和Blocks for Out-of-core Computation
Xgboost的原理我之前已经介绍过了,详见《(二)提升树模型:Xgboost原理与实践》。 最近,想起来阅读Xgboost源论文中还没有读过的一块,即第4章SYSTEM DESIGN系统实现。第4章包括3个小节:Column Block for Parallel LearningCache-aware AccessBlocks for Out-of-core Computati...原创 2018-12-19 14:46:59 · 9693 阅读 · 6 评论 -
(三)提升树模型:Lightgbm原理深入探究
本篇博客是提升树模型博客的第三篇文章,也是最后一篇文章。第一篇介绍GBDT的博客可以参看这里。第二篇介绍Xgboost的博客可以参看这里。本篇博客主要讲解轻量级的提升树模型-LightGBM。LightGBM的资料网上很多,但是讲解得都很浅,大部分都是从官方文档摘抄过来的,没有深究。因此,在参考部分资料和源码的基础上,本篇博客想深入体会作者的思路,记录一些细节问题,供读者参考。...原创 2018-11-02 18:57:08 · 11953 阅读 · 1 评论 -
(一)提升树模型:GBDT原理与实践
在对机器学习各种分类器的学习上,因为学习和工作的原因,自己接触得最多的就是提升树(boosting tree)模型了。之前自己基本都是在使用GBDT,xgboost和lgbm,原理也稍微懂点,当然很多很多细节问题并不是特别明白。因此,我想在现有资料的基础上,加入自己的一些理解,整理出一个关于提升树模型的资料,以便自己和广大对提升树模型感兴趣的朋友随时查阅。很多问题也希望读者可以拍砖。为了写作的...原创 2018-09-29 16:08:41 · 8597 阅读 · 24 评论 -
(二)提升树模型:Xgboost原理与实践
本篇博客是提升树模型博客的第二篇文章,第一篇介绍GBDT的博客可以参看这里。本篇博客是基于kingsam_的博客整理而来,在此表示感谢。在这篇文章的基础上,我加入了一些自己的理解,使得介绍Xgboost的内容更加详实易读。同介绍GBDT一样,我首先会介绍理论部分,然后举例说明模型训练过程,最后介绍一些细节问题。文章目录一、Xgboost简介二、监督学习的三要素2.1 模型2.2 参数2.3 ...原创 2018-10-08 18:01:54 · 8553 阅读 · 14 评论 -
如何理解bagging是减少variance,而boosting是减少bias?
熟悉集成学习的读者,肯定对bagging和boosting都比较熟悉。在学习这二者的时候,肯定都知道一句话:即bagging是减少variance,而boosting是减少bias。那么,为什么是这样的效果呢?本篇博客在总结网上多个回答的基础上,加入了自己的理解。1 variance和bias先看一下什么是variance和biasHigh variance 是model过于复...原创 2018-09-30 19:55:34 · 4882 阅读 · 2 评论 -
RF, GBDT和Xgboost构造新特征+LR融合的原理及实践
关于Xgboost的知识点很多,本篇博客介绍如何利用Xgboost构造新特征,且在此基础上,介绍与LR模型融合的相关知识点。目录一、原理二、实践2.1 如何获得样本落在哪个叶子节点2.2 举例2.2.1 训练集准备2.2.2 RF+LR2.2.3 GBDT+LR2.2.4 Xgboost+LR2.2.5 单独使用RF,GBDT和Xgboost2.2.6 ...原创 2018-10-09 17:51:35 · 14979 阅读 · 8 评论 -
Xgboost: 自带接口与sklearn接口的简单使用及对比
众所周知,Xgboost有两个接口,分别是自带的接口和sklearn接口。在Xgboost的官方文档中,我们可以看到其详细的使用方法。接下来,我们通过代码的方式对这两种接口进行对比。第一步:数据集的准备from sklearn.model_selection import train_test_splitfrom pandas import DataFramefrom sklea...原创 2018-10-09 18:40:19 · 7503 阅读 · 3 评论 -
Xgboost如何画出树?
对Xgboost使用了一定程度的读者,肯定会面临如何画出树这个问题,毕竟不画出树就是一个黑箱,黑箱总是难以让人放心。本篇博客完整地给出了如何画出Xgboost中的树的过程。一、训练一个简单的Xgb模型我们先训练一个Xgb模型。代码如下:from sklearn.model_selection import train_test_splitfrom pandas import Dat...原创 2018-10-09 21:07:29 · 20802 阅读 · 13 评论 -
Xgboost近似分位数算法
一、近似算法(二)提升树模型:Xgboost原理与实践这篇博客介绍了XGBoost使用exact greedy算法来寻找分割点建树,但是当数据量非常大难以被全部加载进内存时或者分布式环境下时,exact greedy算法将不再合适。因此作者提出近似算法(Approximate Algorithm)来寻找分割点。近似算法的大致流程见下面的算法(参考文献【5】中3.2)。对于某个特征kkk,算...原创 2018-10-12 12:34:00 · 10625 阅读 · 9 评论 -
Lightgbm 直方图优化算法深入理解
一、概述在之前的介绍Xgboost的众多博文中,已经介绍过,在树分裂计算分裂特征的增益时,xgboost 采用了预排序的方法来处理节点分裂,这样计算的分裂点比较精确。但是,也造成了很大的时间开销。为了解决这个问题,Lightgbm 选择了基于 histogram 的决策树算法。相比于 pre-sorted算法,histogram 在内存消耗和计算代价上都有不少优势。histogram算法简单来...原创 2018-10-13 17:36:43 · 35474 阅读 · 31 评论 -
Lightgbm源论文解析:LightGBM: A Highly Efficient Gradient Boosting Decision Tree
写这篇博客的原因是,网上很多关于Lightgbm的讲解都是从Lightgbm的官方文档来的,官方文档只会告诉你怎么用,很多细节都没讲。所以自己翻过来Lightgbm的源论文:LightGBM: A Highly Efficient Gradient Boosting Decision Tree仔细看了几遍,现在整理一下源论文,加深自己对Lightgbm技术细节的认识和思考。首先感谢网友立刻有的...原创 2018-10-14 17:05:40 · 8398 阅读 · 2 评论 -
Lightgbm如何处理类别特征?
本篇文章主要参考柯国霖大神在知乎上的回答,以及自己阅读LGBM的部分源码整理而来。1、one-hot编码弊端one-hot编码是处理类别特征的一个通用方法,然而在树模型中,这可能并不一定是一个好的方法,尤其当类别特征中类别个数很多的情况下。主要的问题是:①可能无法在这个类别特征上进行切分(即浪费了这个特征)。使用one-hot编码的话,意味着在每一个决策节点上只能使用one vs re...原创 2018-10-22 17:22:22 · 35832 阅读 · 10 评论