为什么kaggle数据分析竞赛者偏爱xgboost

为什么kaggle数据分析竞赛者偏爱xgboost

ID:16352217

大小:520.23 KB

页数:7页

时间:2018-08-09

为什么kaggle数据分析竞赛者偏爱xgboost_第1页
为什么kaggle数据分析竞赛者偏爱xgboost_第2页
为什么kaggle数据分析竞赛者偏爱xgboost_第3页
为什么kaggle数据分析竞赛者偏爱xgboost_第4页
为什么kaggle数据分析竞赛者偏爱xgboost_第5页
资源描述:

《为什么kaggle数据分析竞赛者偏爱xgboost》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、为什么Kaggle数据分析竞赛者偏爱XGBoost本文章来自于阿里云云栖社区摘要: 本文介绍了深受Kaggle数据分析竞赛参赛者欢迎的一个梯度提升算法实现-XGBoost,在分类算法中,XGBoost以速度制胜,精度与Sci-KitLearn相当,在Kaggle竞赛中打败了AdaBoost(自适应提升算法)和RandomForest(随机森林算法)。作者介绍:MatthewEmery,加拿大数据科学家,RAP爱好者,毕业于英属哥伦比亚大学。Email:m.emery@alumni.ubc.caLinkedIn:https://www.linkedin.

2、com/in/lstmemeryGitHub:https://github.com/lstmemery在数据科学领域有一个叫做“没有免费的午餐”定理,具体来说就是,对于任意两个算法,当它们在面对所有可能的问题时的表现被平均化后,这两个算法是等价的,如果这个定理成立,那为什么2015年在数据科学竞赛网站Kaggle上赢得比赛的绝大部分方案都采用了XGBoost呢?XGBoost是如何工作的呢?它运行起来又像什么呢?本文打算回答这些问题,注意,对你而言,不一定需要精通数学,但需要知道决策树是怎么一回事。梯度提升树(GradientBoostedTrees,

3、GBT)科普过度拟合相当于填鸭式的机器学习,如果你只知其然而不知其所以然,你就难以得到想要的结果,决策树就是典型的例子,因此,数据科学家必须学习多门技术,从而避免过度拟合的出现。其中一个方法就是boosting(提升算法),我们通过训练几个弱分类器(低度拟合决策树)代替训练一个强分类器(过度拟合决策树),其中的诀窍就是让当前的树了解前面哪一颗树有错误,为了让boosting工作起来,需要用不同的方法让分类器处于错误状态,训练结束后,每棵树都要确定每个样本的分类,通过这种方式,部分分类器的弱点可以得到其它分类器的补偿。自适应提升算法(Adaptivebo

4、osting,AdaBoost)是boosting最经典的实现方法,第一棵树和其它分类错误的树完全一样,后面的树也和前面的树一样,被粗暴地认为分类错误,这种策略导致在新建一棵树时要优先考虑正确的分类。迭代提升算法(Gradientboosting)是boosting另一种优秀实现,第一棵树用常规方法拟合了数据,后面的树会尝试找出将前面的树的错误减少到最小的判定方式,如果我们知道描述数据的数学函数,要将错误减少到最小就很好办,我们就不会用决策树来尝试接近它。在不知道这个函数的情况下,我们需要一个新的策略来将错误减少到最小。假设你在大雾笼罩的山顶,伸手不见

5、五指,要找到下山最快的道路,哪种方法是最可行的?一种方法是伸出你的脚在每个方向上都试探一下,从而感知到下山最陡峭的路,现在,沿着这条最陡峭的路下山,不断重复这个过程,直到你下到山脚,数据科学家把这个算法叫做梯度下降算法,在本文中,我们也称之为梯度提升树算法。梯度下降算法示例是什么让XGBoost如此受欢迎?梯度提升树算法最早公开的时间是2001年,那么XGBoost究竟是怎么改进这个算法的呢?我经常看到有人误解XGBoost的精度要比其它梯度提升树算法实现精度高,可事实不是这样,算法的作者发现XGBoost的错误率和SCI-KitLearn实现几乎一样

6、。XGBoost不是绝对的精确,但它绝对够快:1、XGBoost识别能力不强:提升树特别适合特征明确的场景(如这个人出生在英格兰吗?),但在真实数据集中,特征明确的列通常是0,在决定从哪里分类时,XGBoost有非零数据的指针,只需要查找这些记录即可。2、XGBoost可并行:提升树算法最消耗时间片的是对连续型特征排序(如你每天开车上班有多远?),稀疏数据结构和聪明的实现方式让XGBoost可为每个列独立排序,通过这种方法,排序工作在CPU的并行线程之间可以分离执行。3、XGBoost支持近似分类:为了在连续型特征上找到最佳分类点,梯度提升树需要将所有

7、数据放入内存进行排序,对小数据集来说不会存在什么问题,但当数据集大小超过内存时这个方法就行不通了,XGBoost可以对这些数据使用容器进行粗糙排序而不是完整排序,XGBoost论文作者表示,只要容器数量足够多,分类表现可以接近于精确分类。举个栗子我们还是举个例子来看看XGBoost到底可以做什么,这里我以一个房产数据集作为训练数据,可以从这里(原文链接:https://www.kaggle.com/c/house-prices-advanced-regression-techniques)下载。fromsklearn.model_selectionim

8、porttrain_test_splitimportxgboostasxgbimportpan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。