4.5 Booster API 转换

  1. LGBMModel 转换到Booster:通过.booster_ 属性来获取底层的Booster

    源码:

    1. @property
    2. def booster_(self):
    3. """Get the underlying lightgbm Booster of this model."""
    4. if self._Booster is None:
    5. raise LGBMNotFittedError('No booster found. Need to call fit beforehand.')
    6. return self._Booster
    • 用途:当使用scikit-learn API 学习到一个模型之后,需要保存模型。则需要先转换成Booster 对象,再调用其.save_model() 方法。
  2. 使用 Booster 来预测分类的概率:

    • 因为Booster 仅仅提供了predict 接口,而未提供predict_proba 接口。因此需要使用这种转换

    • LGBMClassifierpredict_proba 方法中的源码:

      1. class_probs = self.booster_.predict(X, raw_score=raw_score, num_iteration=num_iteration)
      2. if self._n_classes > 2:return class_probs
      3. else:return np.vstack((1. - class_probs, class_probs)).transpose()