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的次数。默认为10folds:一个生成器、一个迭代器、或者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的随机数种子。默认为0callbacks:参考lightgbm.train()
返回值:evaluation history, 它是一个字典,格式为:
{ 'metric1-mean': [values], 'metric1-stdv': [values], 'metric2-mean': [values], 'metric2-stdv': [values], ...}
学员评价