TGBoost:一款高效且功能强大的梯度提升树工具
项目介绍
TGBoost 是一款基于 XGBoost 评分函数和 SLIQ 高效树构建算法的轻量级梯度提升树(Gradient Boosting Tree)实现。它通过水平构建树的方式(类似于 SLIQ 的 Attribute list 和 Class list)来构建模型,目前支持单机上的并行学习。TGBoost 在速度和内存消耗方面与 XGBoost 相当,是一款性能卓越的机器学习工具。
项目技术分析
TGBoost 不仅支持大多数常见的梯度提升树功能,如内置损失函数(平方误差损失和逻辑损失)、早停机制、特征重要性输出、正则化参数(lambda, gamma)、随机性参数(subsample, colsample)以及加权损失函数,还引入了两个创新特性:
- 处理缺失值:与 XGBoost 不同,TGBoost 通过枚举缺失值进入左子节点、右子节点或缺失值子节点,选择最优的分裂方式,从而构建三叉树(Ternary Tree)。
- 处理分类特征:TGBoost 通过统计每个树节点上的梯度和 Hessian 值,对分类特征进行排序,然后像处理数值特征一样进行分裂。
项目及技术应用场景
TGBoost 适用于各种需要高效、准确预测的场景,特别是在以下领域:
- 金融风控:用于信用评分、欺诈检测等任务。
- 医疗诊断:用于疾病预测、患者风险评估等。
- 电商推荐:用于个性化推荐系统,提升用户购物体验。
- 工业预测:用于设备故障预测、生产效率优化等。
项目特点
- 高效性:TGBoost 在单机上支持并行学习,速度和内存消耗与 XGBoost 相当,适合大规模数据处理。
- 灵活性:支持多种内置损失函数、早停机制、特征重要性输出等功能,满足不同应用需求。
- 创新性:通过三叉树处理缺失值和分类特征,提升了模型的准确性和鲁棒性。
- 易用性:提供 Python 绑定,方便 Python 用户快速上手。
安装与使用
TGBoost 目前使用纯 Java 实现,Python 用户可以通过以下步骤安装:
git clone git@github.com:wepe/tgboost.git
cd python-package
sudo python setup.py install
示例代码
以下是一个简单的使用示例:
import tgboost as tgb
# 训练阶段
ftrain = "data/train.csv"
fval = "data/val.csv"
params = {
'categorical_features': ["PRI_jet_num"],
'early_stopping_rounds': 10,
'maximize': True,
'eval_metric': 'auc',
'loss': 'logloss',
'eta': 0.3,
'num_boost_round': 20,
'max_depth': 7,
'scale_pos_weight': 1.,
'subsample': 0.8,
'colsample': 0.8,
'min_child_weight': 1.,
'min_sample_split': 5,
'reg_lambda': 1.,
'gamma': 0.,
'num_thread': -1
}
model = tgb.train(ftrain, fval, params)
# 测试阶段
ftest = "data/test.csv"
foutput = "data/test_preds.csv"
model.predict(ftest, foutput)
# 保存模型
model.save('./tgb.model')
# 加载模型并预测
model = tgb.load_model('./tgb.model')
model.predict(ftest, foutput)
参考文献
- XGBoost: A Scalable Tree Boosting System
- SLIQ: A Fast Scalable Classifier for Data Mining
- GBDT算法原理与系统设计简介
- efficient-decision-tree-notes (chinese)
TGBoost 是一款功能强大且易于使用的梯度提升树工具,无论你是数据科学家、机器学习工程师,还是对机器学习感兴趣的开发者,TGBoost 都能为你提供高效、准确的预测能力。快来尝试吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



