dmlc/xgboost使用

环境

Centos 7.5
python 3.12.3
pip 24.0

1、安装xgboost

执行如下命令:

# Pip 21.3 以上
pip install xgboost

2、样本处理

支持多种样本文件格式,对于csv文件:

dtrain = xgb.DMatrix('train.csv?format=csv&label_column=3')
dtest = xgb.DMatrix('test.csv?format=csv&label_column=3')

其中,train.csv是用于训练的样本,test.csv是用于验证的样本

3、训练和验证

完整的训练和验证脚本:

import xgboost as xgb

# label_column 为标签在全部样本中的位置索引
dtrain = xgb.DMatrix('train.csv?format=csv&label_column=3')
dtest = xgb.DMatrix('test.csv?format=csv&label_column=3')

# 配置训练参数
param = {
	'max_depth': 12,
	'eta': 0.025,
	'gamma': 0.05,
	'alpha': 0.1,
	'lambda': 0.1,
	'eval_metric': ['auc','error'],
	'nthread': 4,
	'objective': 'binary:logistic'
}

evallist = [(dtrain, 'train'), (dtest, 'eval')]

# 树的数量
num_round = 10
bst = xgb.train(param, dtrain, num_round, evallist)

# 存储模型
bst.save_model('xgboost.model')

执行该脚本将训练的模型存储在当前目录,并打印验证结果,如下图所示:
在这里插入图片描述

4、预测

完整的预测脚本:

import xgboost as xgb

# 加载预测样本
dpred = xgb.DMatrix('pred.csv?format=csv')

# 加载模型
bst = xgb.Booster({'nthread': 4})
bst.load_model('xgboost.model')

# 预测
ypred = bst.predict(dpred)
print(ypred)

5、调参

支持的参数可参见官方文档:https://xgboost.readthedocs.io/en/release_2.0.0/parameter.html

常见的参数有:

  • max_depth:树的最大深度,取值为正整数,默认6
  • eta:学习率,取值为[0,1]之间的小数,默认0.3
  • gamma:树分裂时的增益阈值,小于该值不继续分裂,取值为非负实数,默认0
  • alpha:L1正则参数,取值为非负实数,默认0
  • lambda:L2正则参数,取值为非负实数,默认1
  • eval_metric:模型验证的指标,error为错误率,auc为auc值,
  • objective:学习目标,支持多种取值,若取值为binary:logistic,则预测结果为二分类的概率值

参考

https://xgboost.readthedocs.io/en/release_2.0.0/python/python_intro.html
https://xgboost.readthedocs.io/en/release_2.0.0/parameter.html

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值