前情回顾与本文目标
上一回,我们举了一个 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' % (s

本文分析XGBoost在Python中的训练模型接口,重点关注`fit()`函数,揭示其调用流程和主要逻辑。文章介绍了`fit()`如何启动训练,其内部调用`_train_internal()`,并探讨了训练过程中的回调函数、参数检查和模型初始化等环节。
最低0.47元/天 解锁文章
1425





