lightgbm.cv
- lightgbm.cv(params, train_set, num_boost_round=100, folds=None, nfold=5, stratified=True, shuffle=True, metrics=None, feval=None, init_model=None, fpreproc=None, seed=0, callbacks=None, eval_train_metric=False, return_cvbooster=False)[source]
- 使用给定的参数执行交叉验证。 - 参数:
- params (dict) – 训练参数。通过 - params传递的值优先于通过参数提供的值。
- train_set (Dataset) – 用于训练的数据。 
- num_boost_round (int, 可选 (默认值=100)) – 提升迭代次数。 
- folds (生成器 或 迭代器,其中包含 (train_idx, test_idx) 元组,scikit-learn 分割器对象 或 None, 可选 (默认值=None)) – 如果是生成器或迭代器,它应该为每个折叠生成训练和测试索引。如果是一个对象,它应该是 scikit-learn 分割器类之一 (https://scikit-learn.cn/stable/modules/classes.html#splitter-classes) 并且有 - split方法。此参数优先级最高,高于其他数据分割参数。
- nfold (int, 可选 (默认值=5)) – CV 中的折叠数。 
- stratified (bool, 可选 (默认值=True)) – 是否执行分层抽样。 
- shuffle (bool, 可选 (默认值=True)) – 是否在分割数据前进行洗牌。 
- metrics (str, str 列表, 或 None, 可选 (默认值=None)) – CV 期间要监控的评估指标。如果不是 None,则 - params中的指标将被覆盖。
- feval (可调用对象, 可调用对象列表, 或 None, 可选 (默认值=None)) – - 自定义评估函数。每个评估函数应该接受两个参数:preds, eval_data,并返回 (eval_name, eval_result, is_higher_better) 或此类元组的列表。 - predsnumpy 1-D 数组或 numpy 2-D 数组(用于多类别任务)
- 预测值。对于多类别任务,preds 是形状为 [n_samples, n_classes] 的 numpy 2-D 数组。如果使用了自定义目标函数,预测值在任何转换之前返回,例如,在这种情况下,对于二分类任务,它们是原始边距而不是正类的概率。 
- eval_dataDataset
- 用于评估的 - Dataset对象。
- eval_namestr
- 评估函数的名称(无空格)。 
- eval_resultfloat
- 评估结果。 
- is_higher_betterbool
- 评估结果是否越高越好,例如 AUC 的 - is_higher_better。
 - 要忽略与所用目标相对应的默认指标,请将 - metrics设置为字符串- "None"。
- init_model (str, pathlib.Path, Booster 或 None, 可选 (默认值=None)) – 用于继续训练的 LightGBM 模型文件名或 Booster 实例。 
- fpreproc (可调用对象 或 None, 可选 (默认值=None)) – 预处理函数,接受 (dtrain, dtest, params) 并返回转换后的版本。 
- seed (int, 可选 (默认值=0)) – 用于生成折叠的种子(传递给 numpy.random.seed)。 
- callbacks (可调用对象列表, 或 None, 可选 (默认值=None)) – 在每次迭代时应用的回调函数列表。有关更多信息,请参阅 Python API 中的 Callbacks。 
- eval_train_metric (bool, 可选 (默认值=False)) – 是否在训练过程中显示训练指标。指标得分在每个训练步骤后会重新计算,因此对性能有一定影响。 
- return_cvbooster (bool, 可选 (默认值=False)) – 是否通过 - CVBooster返回在每个折叠上训练的 Booster 模型。
 
 - 注意 - 可以为 - objective参数提供自定义目标函数。它应该接受两个参数:preds, train_data,并返回 (grad, hess)。- predsnumpy 1-D 数组或 numpy 2-D 数组(用于多类别任务)
- 预测值。预测值在任何转换之前返回,例如,对于二分类任务,它们是原始边距而不是正类的概率。 
- train_dataDataset
- 训练数据集。 
- gradnumpy 1-D 数组或 numpy 2-D 数组(用于多类别任务)
- 损失函数相对于每个样本点的 preds 元素的的一阶导数(梯度)的值。 
- hessnumpy 1-D 数组或 numpy 2-D 数组(用于多类别任务)
- 损失函数相对于每个样本点的 preds 元素的的二阶导数(Hessian)的值。 
 - 对于多类别任务,preds 是形状为 [n_samples, n_classes] 的 numpy 2-D 数组,grad 和 hess 也应以相同格式返回。 - 返回:
- eval_results – 每个指标的评估结果历史。字典格式如下:{'valid metric1-mean': [values], 'valid metric1-stdv': [values], 'valid metric2-mean': [values], 'valid metric2-stdv': [values], ...}。如果 - return_cvbooster=True,还会通过- cvbooster键返回包装在- CVBooster对象中的训练好的 Booster。如果- eval_train_metric=True,还会返回训练指标历史。在这种情况下,字典格式如下:{'train metric1-mean': [values], 'valid metric1-mean': [values], 'train metric2-mean': [values], 'valid metric2-mean': [values], ...}。
- 返回类型:
- dict