20分钟
直接学习
2. lightgbm.cv()
函数执行交叉验证训练。
lightgbm.cv(params, train_set, num_boost_round=10, folds=None, nfold=5, stratified=True, shuffle=True, metrics=None, fobj=None, feval=None, init_model=None, feature_name='auto', categorical_feature='auto', early_stopping_rounds=None, fpreproc=None, verbose_eval=None, show_stdv=True, seed=0, callbacks=None)
参数:
params
: 一个字典,给出了训练参数train_set
: 一个Dataset
对象,给出了训练集num_boost_round
:一个整数,给出了boosting iteration
的次数。默认为10
folds
:一个生成器、一个迭代器、或者None
。 如果是生成器或者迭代器,则其迭代结果为元组:(训练部分样本下标列表,测试部分样本下标列表)
,分别给出了每个fold
的训练部分和测试部分的下标。默认为None
。 该参数比其它的拆分参数优先级更高。nfold
:一个整数,指定了CV
的数量。默认为5
。stratified
:一个布尔值,指示是否进行分层拆分。默认为True
。shuffle
:一个布尔值,指示是否在拆分之前先混洗数据。默认为True
。metrics
:一个字符串、字符串列表、或者None
。 指定在CV
过程中的evaluation metric
。默认为None
。 如果非None
,则它会覆盖params
的metric
参数。fobj
:参考lightgbm.train()
feval
:参考lightgbm.train()
init_model
:参考lightgbm.train()
feature_name
: 参考lightgbm.train()
categorical_feature
:参考lightgbm.train()
early_stopping_rounds
:一个整数或者None
,表示CV error
在连续多少轮未改善之后就早停。默认为None
在返回的evaluation history
中,最后一项就是最佳迭代时的结果(而不是最后一次迭代时的结果)。fpreproc
:一个可调用对象或者None
,默认为None
。 它是一个预处理函数,在训练开始之前进行。 它的参数为(dtrain,dtest,params)
, 返回值是经过处理之后的(dtrain,dtest,params)
verbose_eval
:参考lightgbm.train()
show_stdv
:一个布尔值,指示是否在训练过程中展示标准差信息。默认为True
。 注意:返回结果中始终包含标准差信息,与该参数无关。seed
:一个整数,给出了生成fold
的随机数种子。默认为0
callbacks
:参考lightgbm.train()
返回值:evaluation history
, 它是一个字典,格式为:
{ 'metric1-mean': [values], 'metric1-stdv': [values], 'metric2-mean': [values], 'metric2-stdv': [values], ...}
学员评价