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 Dataset
set_label()、set_weight()、set_init_score()、set_group()
: 等效于self.label=xxx、self.weight=xxx、self.init_score=xxx、self.group=xxx
self.num_data()、self._num_feature()
可以从self.data
中获取。 如果self.data
是ndarray
,则它们就是self.data.shape[0],self.data.shape[1]
学员评价