XG Boost and Light GBD

对decision tree做boosting

Recap supervised learning

Kernels: kernel trick, 在svm、knn、linear regression中都可以用到。空间映射。

混合feature:NN、SVM、KNN对于“数值和categorical mixed”的情况不太行,需要转化,但是Decision Tree不会因此受到影响。

缺失值:NN和SVM受missing value影响比较敏感,尤其SVM,如果missing是在kernel附近的。但如果k选的足够好,就对missing value不敏感。

计算复杂度:NN、SVM、KNN的计算复杂度都很大,而tree都是和数据点的个数有关的。

线性关系:NN和SVM都能捕捉到feature中的线性关系,因为本质是做线性变换。而tree考察的是不同属性,不知道不同属性之间的联系。

可解释性:tree model还有一个feature importance,但是其他model没有什么可解释性。

从表的比较来看,tree除了某些点之外,其他都还不错~

XGBoost

eXtreme Gradient Boosting 其实也是对上一节的Gradient Boosting的一种实现。但是因为Gradient Boosting每一步对所有数据求梯度、每次构建一个新的tree加入原模型序列,比较慢;XG Boost因为这几个原因相比之下会更快:

Parallelization: 训练时可以用所有的 CPU 内核来并行化建树。

Distributed Computing : 用分布式计算来训练非常大的模型。

Out-of-Core Computing: 对于非常大的数据集还可以进行 Out-of-Core Computing。

Cache Optimization of data structures and algorithms: 更好地利用硬件。

Last updated