课程评价 (0)

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

学员评价

暂无精选评价
20分钟

模型接口

方法:

  • .add_valid(data,name): 添加一个验证集。
    • 参数:
      • data: 一个Dataset,代表一个验证集
      • name: 一个字符串,表示该验证集的名字。不同的验证集通过名字来区分
  • .attr(key): 获取属性的值。
    • 参数:key: 一个字符串,表示属性的名字
    • 返回值:该属性的名字。如果属性不存在则返回None
  • .current_iteration(): 返回当前的迭代的index(即迭代的编号)
  • .dump_model(num_iteration=-1)dump 当前的Booster 对象为json 格式。
    • 参数:num_iteration: 一个整数,指定需要dump 第几轮训练的结果。如果小于0,则最佳迭代步的结果(如果存在的话)将被dump。默认为-1
    • 返回值:一个字典,它表示dump 之后的json
  • .eval(data,name,feval=None): 对指定的数据集evaluate
    • 参数:
      • data: 一个Dataset 对象,代表被评估的数据集
      • name: 一个字符串,表示被评估的数据集的名字。不同的验证集通过名字来区分
      • feval: 一个可调用对象或者None, 它表示自定义的evaluation 函数。默认为None。它的输入为(y_true, y_pred)、或者( y_true, y_pred, weight) 、或者(y_true, y_pred, weight, group), 返回一个元组:(eval_name,eval_result,is_higher_better) 。或者返回该元组的列表。
    • 返回值:一个列表,给出了evaluation 的结果。
  • .eval_train(feval=None): 对训练集进行evaluate
    • 参数:feval: 参考.eval() 方法
    • 返回值:一个列表,给出了evaluation 的结果。
  • .eval_valid(feval=None):对验证集进行evaluate
    • 参数:feval: 参考.eval() 方法
    • 返回值:一个列表,给出了evaluation 的结果。
  • .feature_importance(importance_type='split', iteration=-1): 获取特征的importance
    • 参数:
      • importance_type: 一个字符串,给出了特征的importance衡量指标。默认为'split'。 可以为:
        • 'split': 此时特征重要性衡量标准为:该特征在所有的树中,被用于划分数据集的总次数。
        • 'gain': 此时特征重要性衡量标准为:该特征在所有的树中获取的总收益。
      • iteration: 一个整数,指定需要考虑的是第几轮训练的结果。如果小于0,则最佳迭代步的结果(如果存在的话)将被考虑。默认为-1
    • 返回值:一个numpy array,表示每个特征的重要性
  • .feature_name(): 获取每个特征的名字。
    • 返回值:一个字符串的列表,表示每个特征的名字
  • .free_dataset():释放Booster 对象的数据集
  • .free_network(): 释放Booster 对象的Network
  • .get_leaf_output(tree_id, leaf_id): 获取指定叶子的输出
    • 输入:
      • tree_id: 一个整数,表示子学习器的编号
      • leaf_id: 一个整数,表示该子学习器的叶子的编号
    • 返回值:一个浮点数,表示该叶子节点的输出
  • .num_feature(): 获取特征的数量(即由多少列特征)
  • .predict(data, num_iteration=-1, raw_score=False, pred_leaf=False, pred_contrib=False, data_has_header=False, is_reshape=True, pred_parameter=None): 执行预测
    • 参数:
      • data: 一个字符串、numpy array 或者scipy.sparse, 表示被测试的数据集。如果为字符串,则表示测试集所在的文件的文件名。 注意:如果是numpy array 或者 pandas dataframe 时,要求数据的列必须与训练时的列顺序一致。
      • num_iteration:一个整数,表示用第几轮的迭代结果来预测。如果小于0,则最佳迭代步的结果(如果存在的话)将被使用。默认为-1
      • raw_score: 一个布尔值,指示是否输出raw scores。 默认为False
      • pred_leaf: 一个布尔值。如果为True,则会输出每个样本在每个子树的哪个叶子上。它是一个nsample x ntrees 的矩阵。默认为False。 每个子树的叶节点都是从1 开始编号的。
      • pred_contrib:一个布尔值。如果为True, 则输出每个特征对每个样本预测结果的贡献程度。它是一个nsample x ( nfeature+1) 的矩阵。默认为False。 之所以加1,是因为有bias 的因素。它位于最后一列。 其中样本所有的贡献程度相加,就是该样本最终的预测的结果。
      • data_has_header:一个布尔值,指示数据集是否含有标题。仅当data 是字符串时有效。默认为False
      • is_reshape:一个布尔值,指示是否reshape 结果成[nrow,ncol]。 默认为True
      • pred_parameter: 一个字典或者None,给出了其它的参数。默认为None
    • 返回值:一个numpy array,表示预测结果
  • .reset_parameter(params):重设Booster 的参数。
    • 参数:params:一个字典,给出了新的参数
  • .rollback_one_iter(): 将Booster 回滚一个迭代步
  • .save_model(filename,num_iteration=-1): 保存Booster 对象到文件中。
    • 参数:
      • filename: 一个字符串,给出了保存的文件的文件名
      • num_iteration: 一个整数,指定需要保存的是第几轮训练的结果。如果小于0,则最佳迭代步的结果(如果存在的话)将被保存。默认为-1
  • .set_attr(**kwargs): 设置Booster 的属性。
    • 参数:kwargs: 关键字参数,用于设定Booster 属性。对于值为None 的设置,等效于删除该属性。
  • .set_network(machines,local_listen_port=12400,listen_time_out=120,num_machines=1): 配置网络
    • 参数:
      • machines:一个字符串的列表、或者字符串的集合。它给出了每台机器的名字
      • local_listen_port: 一个整数,默认为 12400,指定了监听端口
      • listen_time_out: 一个整数,默认为120, 制定了socket 超时的时间(单位为分钟)
      • num_machines: 一个整数,默认为1,表示并行学习的机器的数量
  • .set_train_data_name(name): 设置训练集的名字
    • 参数:name: 一个字符串,表示训练集的名字
  • .update(train_set=None, fobj=None): 更新一个迭代步
    • 参数:
      • train_set: 一个Dataset 或者None, 表示训练集。如果为None,则上一个训练集被使用
      • fobj: 一个可调用对象或者None,表示自定义的目标函数。 注意:如果是多类别分类任务,则:score 首先根据class_id 进行分组,然后根据row_id 分组。如果你想得到第i 个样本在第j 个类别上的得分,访问方式为:score[j*num_data+i]。 同理:gradhess 也是以这样的方式访问。
    • 返回值:一个布尔值,指示该次更新迭代步是否成功结束。