xgboost学习与总结
最近在研究xgboost,把一些xgboost的知识总结一下。这里只是把相关资源作总结,原创的东西不多。 原理 xgboost的原理首先看xgboost的作者陈天奇的 ppt 英文不太好的同学可以看看这篇博客 xgboost原理 。假如看了陈天奇的ppt还晕乎的同学,看了这篇应该能大概知道xgboost是如何求最优解的。 实战 xgboost的参数多的简直不像话。上面提到的博客里 xgboost原理 提供了3篇介绍调参思路的博客。其中作者推荐的老外的那篇有个翻译好的中文博客 XGBoost参数调优完全指南(附Python代码) 。我在这里强烈推荐。附上python的 api 地址。 常见问题 机器学习算法中GBDT和XGBOOST的区别有哪些? 这个问题的答案来自知乎 机器学习算法中GBDT和XGBOOST的区别有哪些 的wepon的回答。 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。 xgboost在代价函数里加入了正则项,用于控制模型的复杂度