def __init__(self, **kwargs):
        super(H2OXGBoostEstimator, self).__init__()
        self._parms = {}
        names_list = {"model_id", "training_frame", "validation_frame", "nfolds", "keep_cross_validation_models",
                      "keep_cross_validation_predictions", "keep_cross_validation_fold_assignment",
                      "score_each_iteration", "fold_assignment", "fold_column", "response_column", "ignored_columns",
                      "ignore_const_cols", "offset_column", "weights_column", "stopping_rounds", "stopping_metric",
                      "stopping_tolerance", "max_runtime_secs", "seed", "distribution", "tweedie_power",
                      "categorical_encoding", "quiet_mode", "export_checkpoints_dir", "ntrees", "max_depth", "min_rows",
                      "min_child_weight", "learn_rate", "eta", "sample_rate", "subsample", "col_sample_rate",
                      "colsample_bylevel", "col_sample_rate_per_tree", "colsample_bytree", "max_abs_leafnode_pred",
                      "max_delta_step", "monotone_constraints", "score_tree_interval", "min_split_improvement", "gamma",
                      "nthread", "max_bins", "max_leaves", "min_sum_hessian_in_leaf", "min_data_in_leaf", "sample_type",
                      "normalize_type", "rate_drop", "one_drop", "skip_drop", "tree_method", "grow_policy", "booster",
                      "reg_lambda", "reg_alpha", "dmatrix_type", "backend", "gpu_id"}
        if "Lambda" in kwargs: kwargs["lambda_"] = kwargs.pop("Lambda")
        for pname, pvalue in kwargs.items():
            if pname == 'model_id':
                self._id = pvalue
                self._parms["model_id"] = pvalue
            elif pname in names_list:
                # Using setattr(...) will invoke type-checking of the arguments
                setattr(self, pname, pvalue)
            else:
                raise H2OValueError("Unknown parameter %s = %r" % (pname, pvalue))