课程评价 (0)

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

学员评价

暂无精选评价
7分钟

xgboost.cv()

xgboost.cv(): 使用给定的参数执行交叉验证 。它常用作参数搜索 。

xgboost.cv(params, dtrain, num_boost_round=10, nfold=3, stratified=False, folds=None,
     metrics=(), obj=None, feval=None, maximize=False, early_stopping_rounds=None,
     fpreproc=None, as_pandas=True, verbose_eval=None, show_stdv=True, seed=0,
     callbacks=None, shuffle=True)
  • 参数:
    • params: 一个列表(元素为键值对)、一个字典,表示训练的参数
    • dtrain:一个DMatrix 对象,表示训练集
    • num_boost_round: 一个整数,表示boosting 迭代数量
    • nfold: 一个整数,表示交叉验证的fold 的数量
    • stratified: 一个布尔值。如果为True,则执行分层采样
    • folds: 一个scikit-learnKFold 实例或者StratifiedKFold 实例。
    • metrics:一个字符串或者一个字符串的列表,指定了交叉验证时的evaluation metrics 如果同时在params 里指定了eval_metric,则metrics 参数优先。
    • obj:一个函数,它表示自定义的目标函数
    • feval: 一个函数,它表示自定义的evaluation 函数
    • maximize: 一个布尔值。如果为True,则表示是对feval 求最大值;否则为求最小值
    • early_stopping_rounds:一个整数,表示早停参数。 如果在early_stopping_rounds 个迭代步内,验证集的验证误差没有下降,则训练停止。
      • 返回evaluation history 结果中的最后一项是最佳的迭代步的评估结果
    • fpreproc: 一个函数。它是预处理函数,其参数为(dtrain,dtest,param), 返回值是经过了变换之后的 (dtrain,dtest,param)
    • as_pandas: 一个布尔值。如果为True,则返回一个pandas.DataFrame ;否则返回一个numpy.ndarray
    • verbose_eval: 参考 xgboost.train()
    • show_stdv: 一个布尔值。是否verbose 中打印标准差。 它对返回结果没有影响。返回结果始终包含标准差。
    • seed: 一个整数,表示随机数种子
    • callbacks: 参考 xgboost.train()
    • shuffle: 一个布尔值。如果为True,则创建folds 之前先混洗数据。
  • 返回值:一个字符串的列表,给出了evaluation history 。它给的是早停时刻的history(此时对应着最优模型),早停之后的结果被抛弃。