XGBoost (2) Python 训练模型接口源码分析

本文分析XGBoost在Python中的训练模型接口,重点关注`fit()`函数,揭示其调用流程和主要逻辑。文章介绍了`fit()`如何启动训练,其内部调用`_train_internal()`,并探讨了训练过程中的回调函数、参数检查和模型初始化等环节。
摘要由CSDN通过智能技术生成

前情回顾与本文目标

上一回,我们举了一个 XGBoost 的应用实例,用以 “判断野生蘑菇在什么情况下可以吃?”。现在我们打算挑战一下,看看算法是如何工作的。这不是一件很容易的事情,因为一个算法需要排除很多意外情形、还要会用 python 调用 C++ 的动态库,这都无形中给算法披上了一层又一层的外衣。在这篇文章中,我们不涉及 C++ 动态库的实现,先关注 python 层的逻辑关系。

我们先来回顾一下代码:

import xgboost as xgb

# 准备数据
dtrain = xgb.DMatrix('agaricus.txt.train')
dtest = xgb.DMatrix('agaricus.txt.test')

# 设置参数
param = {
   'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}
watchlist = [(dtest, 'eval'), (dtrain, 'train')]
num_round = 2

# 训练模型
bst = xgb.train(param, dtrain, num_round, watchlist)

# 检验模型
preds = bst.predict(dtest)
labels = dtest.get_label()
print('error=%f' % (sum(1 for i in 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值