文档章节

人工智能算法通俗讲解系列(四):xgboost

StanleySun
 StanleySun
发布于 2018/03/26 21:24
字数 1131
阅读 241
收藏 0

今天,我们介绍的机器学习算法叫xgboost。

不要被这个名字吓唬到,其实它的基本原理并不复杂。要理解xgboost,需要首先理解决策树。还没有接触过决策树的同学可以看一下《人工智能算法通俗讲解系列(三):决策树 》这块内容。

假如我们现在有下面两棵决策树,左侧是tree1,右侧tree2。这些树都是用来判断用户是否喜欢玩游戏的。跟我们之前的案例是类似的。

先看右侧这个简单的树。椭圆是用户特征:是否每天用电脑。左边是“是”,右边是“否”。通过数据,他们发现,每天玩电脑的人里面,玩游戏的人占比高。不怎么玩电脑的人里面,玩游戏的占比低。我们给占比高的这一边设置一个大一点的权重,比如0.9,占比低的一边设置低一点的权重。不用管0.9的计算细节,只要知道占比(概率)高权重大就OK。

假设我们只有右侧这一棵树。当来一个新用户时,我们就可以用它来判断它玩游戏的偏好。比如某个新用户每天玩电脑,我们就直接判断“他喜欢玩游戏”。这虽然不会特别准确,但也比瞎蒙要更好一些。

不过我们还要追求更好。因为我们不止有一棵树,还有另一棵决策树可以使用。

现在,让我们看一下左边这棵决策树。它的第一个判断条件是:“年龄是否小于15”。 从已有的数据发现,“否”的这一侧,也就是15岁以上的人里,玩游戏的人占比比较低,于是设置低权重,比如设置为-1。15岁以下的人群里,再分男女。发现男性用户玩游戏的比例明显高于女性。于是,给男性设置高一些的权重,比如2,女性低一点,比如0.1。不过这里的女性权重,要比15岁以上的那个分支权重大一些。

然后,当一个新的数据过来的时候,我们组合两个树,进行综合判断。比如一个新用户年龄小于15,男性,每天玩电脑。  预测他是否喜欢玩游戏的方法就是:找到他在每一颗树中的权重,然后相加。他在第一棵树中的位置为左下角的叶子,权重为2;同时,他在第二棵树的位置也是左下角的叶子,权重为0.9。然后,我们把他在两棵树中的权重相加,得出最终权重,即2.9。

这样,就等于把三个特征:年龄、性别、和玩电脑时长总和考虑进来了,这种判断比单棵决策树更准确。

同样方法,一个年龄大于15,且不怎么玩电脑的人,组合计算后,得分很低。年龄因素减了1分,不玩电脑又减了0.9,所以得分特别低,最终为-1.9。于是,我们就预测他不大可能喜欢游戏。

实际使用时,特征库里面可能不止三个特征,而是几十个或者上百个特征。那怎么办呢?

比如我们有100个特征,同时有100万条数据。我们可以随机选10个特征、随机选10万条数据,生成一颗树。然后,再随机选10个特征,随机选10万条数据,生成第二棵树。同样的方法生成第三棵树,第四棵树...

最后我们可以生成几十个树,比如生成了50个。具体几棵我们自己定。这些树就组成了一个森林。因为是随机生成的,所以叫随机森林。

当我们对一个新用户做判断对时候,就把这个用户往每一棵树上套,这样就得出50个权重。然后把这50个权重相加,得出最终的权重。比较不同的用户的最终权重,就能判断他们所属的分类。

把森林中的所有树组合起来形成的策略,综合了所有特征以及多种组合情况的逻辑。用这个策略判断每一个新数据,准确率会大大提高。所以,xgboost在很多大赛中的表现都很好。

© 著作权归作者所有

StanleySun
粉丝 24
博文 46
码字总数 44524
作品 0
技术主管
私信 提问
终于有人说清楚了--XGBoost算法

1. 什么是XGBoost XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进,被广泛应用在Kaggle竞赛及其他许多机器学习竞赛中并取得了不错的成...

mantch
07/10
0
0
一文读懂机器学习大杀器XGBoost原理

XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器。因为XGBoost是一种提升树模型,所以它是将许多树模型集成在一起,形成一个很强的分类器。...

技术小能手
2018/07/19
0
0
Machine Learning Mastery 博客文章翻译:XGBoost

请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您...

ApacheCN_飞龙
03/26
0
0
史上最详细的XGBoost实战(下)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SzM21C11U68n04vdcLmJ/article/details/78516866 作者:章华燕 编辑:田 旭四 XGBoost 参数详解 在运行XGboo...

燕哥带你学算法
2017/11/12
0
0
Python3机器学习实践:集成学习之XGBoost

一、XGBoost目标函数 首先认清一点,它是GBDT的升级版,由陈天奇发明,在效率、方法方面都进行了优化。 不管对于回归问题还是分类问题,好的机器学习方法的目的就是降低目标函数(也可称为损失...

AiFan
2018/12/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arcgis arcpy 克里金插值 掩膜 配置符号系统 自动生成图片

整体思路,最后要加载到mxd文件中,然后导出图片 首先加载mxd文件 mxd = mapping.MapDocument(r"./11.mxd") 然后读取数据 并加载到图层中 sr = arcpy.SpatialReference(4326) # 读取csv...

可达鸭Go
57分钟前
4
0
漂亮有创意的思维导图模板分享

相信很多人使用在绘制思维导图时很喜欢使用模板进行编辑,它能够让你在短时间内快速创造出一个风格明显好看的思维导图,对绘制时间以及使用够感受影响都是较为深刻的,下面为大家分享几款漂亮...

干货趣分享
今天
4
0
使用js实现对cookie的增删改查

简单的操作cookie 存储cookie(key为test;value为testValue): document.cookie = "test=testValue"; 存储多个cookie: document.cookie = "test1=testValue1";document.cookie = "test2=te......

被毒打的程序猿_先瑞
今天
4
0
ApacheCN 公众号文章汇总 2019.9

ApacheCN 优质博文推荐计划正式启动 接受以下主题的博文: 人工智能(论文解读,比赛心得,面经,知识点讲解) 环材化生劝退 CS 留学申请,IT 外企求职 每日从所有投稿中精选两篇,在 Apache...

ApacheCN_飞龙
今天
5
0
Intellij Idea显示回退和前进按钮的方法

方法1:使用快捷键: 回到上一步 ctrl + alt + <-(左方向键) 回到下一步 ctrl + alt + ->(右方向键) 方法2:在界面显示: View -> 勾选ToolBar 方法3(推荐): (1)Preferences -> Ap...

孟飞阳
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部