class_docstr: An easy-interpretable classifier optimizing simple logical rules.
  
  Params
  ------
  estimator: object with fit and predict methods
      Defaults to DecisionTreeClassifier with AdaBoost.
      For SLIPPER, should pass estimator=imodels.SlipperBaseEstimator
code: def fit(self, X, y, feature_names=None, **kwargs):
      X, y, feature_names = check_fit_arguments(
          self, X, y, feature_names
      )
      super().fit(X, y, **kwargs)
      self.complexity_ = len(self.estimators_)
  
imports: from copy import deepcopy
  from functools import partial
  import numpy
  import sklearn
  from sklearn.ensemble import AdaBoostClassifier, AdaBoostRegressor
  from sklearn.base import BaseEstimator, ClassifierMixin, MetaEstimatorMixin
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import normalize
  from sklearn.tree import DecisionTreeClassifier, DecisionTreeRegressor
  from sklearn.utils.multiclass import check_classification_targets, unique_labels
  from sklearn.utils.validation import check_X_y, check_array, check_is_fitted
  from imodels.rule_set.rule_set import RuleSet
  from imodels.rule_set.slipper_util import SlipperBaseEstimator
  from imodels.util.arguments import check_fit_arguments
  from imodels.util.convert import tree_to_code, tree_to_rules, dict_to_rule
  from imodels.util.rule import Rule, get_feature_dict, replace_feature_name
label_desc: Use image node_id 2 for calling the BoostedRulesClassifier obj's underlying member method code with example usage: obj.fit(X, y, feature_names) without return types