def fit(self, frame):
"""Fit the grid search.
Parameters
----------
frame : H2OFrame, shape=(n_samples, n_features)
The training frame on which to fit.
"""
sampled_params = ParameterSampler(self.param_grid,
self.n_iter,
random_state=self.random_state)
# set our score class
self.scoring_class_ = GainsStatisticalReport(**self.grsttngs_)
# we can do this once to avoid many as_data_frame operations
exp, loss, prem = _val_exp_loss_prem(self.exposure_feature, self.loss_feature, self.premium_feature)
self.extra_args_ = {
'expo': _as_numpy(frame[exp]),
'loss': _as_numpy(frame[loss]),
'prem': _as_numpy(frame[prem]) if prem is not None else None
}
# for validation set
self.extra_names_ = {
'expo': exp,
'loss': loss,
'prem': prem
}
# do fit
the_fit = self._fit(frame, sampled_params)
# clear extra_args_, because they might take lots of mem
# we can do this because a re-fit will re-assign them anyways.
# don't delete the extra_names_ though, because they're used in
# scoring the incoming frame.
del self.extra_args_
return the_fit
评论列表
文章目录