xgboost 安装和算法原理 有更新!

  |   0 评论   |   16 浏览

xgboost mac 安装

想试一发 xgboost 的实际应用,先把环境整好吧。

官网的安装方式

brew install gcc5
pip install xgboost

挂了,然后找了源码安装 链接

cd ~ 
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost ; bash build.sh
cd python-package; sudo python setup.py install
rm -rf xgboost

貌似成功了,如果没有来更新,那就是成功了。

+用 atom 编辑器来跑python脚本

  1. 装atom-runner 插件
  2. 配置python路径,这里要注意的是,配置文件的缩进也很重要,同时,也要加上scopes字段
which python
# 然后在配置文件 .atom/config.cson 中加入
runner:
      scopes:
          python: "/Users/XXX/anaconda/bin/python3.5"

算法原理

参考文章

总结一下个人的理解:

  • 监督模型。用一堆决策树(CART树)来进行决策,然后相加汇总做最终预测
  • 模型的目标函数定义:由每棵树的损失之和+正则项 => 决定了树的结构?!
  • 采用了加法训练的方式,挨个优化迭代每棵树,第t棵树的目标函数可以简化成一个2阶多项式模型。易于采用梯度下降的方式求解;同时,不同的样本的迭代计算过程是相互独立的,所以可以并行计算
  • 正则化项的定义则也较为自然。。简单粗暴,惩罚了叶节点的数量和每个叶节点的得分值,使得单个决策树尽可能简单。
  • 树结构的决定,跟采用交叉熵类似,分支后左右分支的损失值之和导向降低最多的方向,如果变大则不分支。由此可以找到最优的树结构——>
  • 最后确定最优的叶节点?怎么玩?

后面补充

这篇文章也不错,简单清晰,可以看下

xgboost 与 深度学习 对比:
陈天奇:

  1. XGBoost专注于模型的可解释性,而基于人工神经网络的深度学习,则更关注模型的准确度。
  2. XGBoost更适用于变量数较少的表格数据,而深度学习则更适用于图像或其他拥有海量变量的数据。

孰优孰劣?

  1. 不同的机器学习模型适用于不同类型的任务。深度神经网络通过对时空位置建模,能够很好地捕获图像、语音、文本等高维数据。而基于树模型的XGBoost则能很好地处理表格数据,同时还拥有一些深度神经网络所没有的特性(如:模型的可解释性、输入数据的不变性、更易于调参等)。
  2. 这两类模型都很重要,并广泛用于数据科学竞赛和工业界。举例来说,几乎所有采用机器学习技术的公司都在使用tree boosting,同时XGBoost已经给业界带来了很大的影响。
  3. 作为一名机器学习研究者,我一直在用深度学习和XGBoost。我相信,我们需要全面理解每一种模型,并能选出最适合你当前任务的那个。XGBoost、深度神经网络与其他经常要用的机器学习算法(如因子分解机、logistic回归分析等),值得机器学习行业的每一位从业者关注。这里没有一药能解百病的说法。

评论

发表评论

validate