15分钟
步骤三:
当你通过 Dataset() 来创建一个 Dataset 对象的时候,它并没有真正的创建必要的数据(必要的数据指的是为训练、预测等准备好的数据),而是推迟到构造一个Booster 的时候。
因为lightgbm 需要构造bin mappers 来建立子树、建立同一个Booster 内的训练集和验证集(训练集和验证集共享同一个bin mappers、categorical features、feature names)。所以Dataset 真实的数据推迟到了构造Booster 的时候。
在构建Dataset 之前:
get_label()、get_weight()、get_init_score()、get_group(): 等效于self.label、self.weight、self.init_score、self.group此时调用self.get_field(field)会抛出异常:Cannot get group before construct Datasetset_label()、set_weight()、set_init_score()、set_group(): 等效于self.label=xxx、self.weight=xxx、self.init_score=xxx、self.group=xxxself.num_data()、self._num_feature()可以从self.data中获取。 如果self.data是ndarray,则它们就是self.data.shape[0],self.data.shape[1]
学员评价