课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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,则它会覆盖paramsmetric 参数。
  • 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],    ...}