79706030

Date: 2025-07-18 10:21:59
Score: 0.5
Natty:
Report link

Something like this worked well for me (I'm not on GPU though)

#OVERWRITE _create_dmatrix
class MyXGBOther(XGBRegressor):
  def __init__(self, **kwargs):
    """Initalize Trainer."""
    super().__init__(**kwargs)
    self.model_ = None #ensures it will have no knowledge of the regular model (see override in fit() method)

  def fit(self, X, y,**kwargs: Any):
    if not isinstance(X, DMatrix): raise TypeError("Input must be an xgboost.DMatrix")
    if y is not None: raise TypeError("Must be used with a y argument for sklearn consistency, but y labels should be contained in DMatrix X") 
    self.model_ = xgb.train(params=self.get_xgb_params(), dtrain=X, **kwargs)
    return self

  def predict(self, X, **kwargs: Any):
    if not isinstance(X, DMatrix): raise TypeError("Input must be an xgboost.DMatrix")
    return self.model_.predict(data=X, **kwargs)
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Marion