XGBoost是目前在各类数据竞赛中被使用较为广泛的算法之一,已经被证明可以在诸多问题中取得非常好的预测效果。根据其开发者陈天琪在XGBoost论文中的叙述,XGBoost的基本思想差不多可以理解成以损失函数的二阶泰勒展开式作为其替代函数,求解其最小化(导数为0)来确定回归树的最佳切分点和叶节点输出数值(这一点和cart回归树不同)。此外,XGBoost通过在损失函数中引入子树数量和子树叶节点数值等,充分考虑到了正则化问题,能够有效避免过拟合。在效率上,XGBoost通过利用独特的近似回归树分叉点估计和子节点并行化等方式,加上二阶收敛的特性,建模效率较一般的GBDT有了大幅的提升。本文也附加了XGBoost建模的简单实践,有兴趣的读者可以去进行尝试:
#XGBoost
import xgboost as xgb
xgb_model = xgb.XGBClassifier(max_depth=2,n_estimators=100)
xgb_model.fit(horse_train_x,horse_train_y)
y_pre_xgb = xgb_model.predict(horse_test_x)
sum(y_pre_xgb==horse_test_y)/float(horse_test_y.shape[0])
XGBoost作为一种被广泛应用的数据竞赛算法,通过二阶泰勒展开式的损失函数替代,并结合正则化项来避免过拟合。它提升了建模效率,通过近似回归树分叉点估计及子节点并行化等手段加速计算过程。
1121

被折叠的 条评论
为什么被折叠?



