class_docstr: BooleanRuleCG is a directly interpretable supervised learning method
  for binary classification that learns a Boolean rule in disjunctive
  normal form (DNF) or conjunctive normal form (CNF) using column generation (CG).
  AIX360 implements a heuristic beam search version of BRCG that is less 
  computationally intensive than the published integer programming version [#NeurIPS2018]_.
  
  References:
      .. [#NeurIPS2018] `S. Dash, O. Günlük, D. Wei, "Boolean decision rules via
         column generation." Neural Information Processing Systems (NeurIPS), 2018.
         <https://papers.nips.cc/paper/7716-boolean-decision-rules-via-column-generation.pdf>`_
docstr: Args:
      lambda0 (float, optional): Complexity - fixed cost of each clause
      lambda1 (float, optional): Complexity - additional cost for each literal
      CNF (bool, optional): CNF instead of DNF
      iterMax (int, optional): Column generation - maximum number of iterations
      timeMax (int, optional): Column generation - maximum runtime in seconds
      K (int, optional): Column generation - maximum number of columns generated per iteration
      D (int, optional): Column generation - maximum degree
      B (int, optional): Column generation - beam search width
      eps (float, optional): Numerical tolerance on comparisons
      solver (str, optional): Linear programming - solver
      verbose (bool, optional): Linear programming - verboseness
      silent (bool, optional): Silence overall algorithm messages
docstr_tok: ["Args",":","lambda0","(","float",",","optional",")",":","Complexity","-","fixed","cost","of","each","clause","lambda1","(","float",",","optional",")",":","Complexity","-","additional","cost","for","each","literal","CNF","(","bool",",","optional",")",":","CNF","instead","of","DNF","iterMax","(","int",",","optional",")",":","Column","generation","-","maximum","number","of","iterations","timeMax","(","int",",","optional",")",":","Column","generation","-","maximum","runtime","in","seconds","K","(","int",",","optional",")",":","Column","generation","-","maximum","number","of","columns","generated","per","iteration","D","(","int",",","optional",")",":","Column","generation","-","maximum","degree","B","(","int",",","optional",")",":","Column","generation","-","beam","search","width","eps","(","float",",","optional",")",":","Numerical","tolerance","on","comparisons","solver","(","str",",","optional",")",":","Linear","programming","-","solver","verbose","(","bool",",","optional",")",":","Linear","programming","-","verboseness","silent","(","bool",",","optional",")",":","Silence","overall","algorithm","messages"]
code: def __init__(
      self,
      lambda0=0.001,
      lambda1=0.001,
      CNF=False,
      iterMax=100,
      timeMax=100,
      K=10,
      D=10,
      B=5,
      eps=1e-6,
      solver="ECOS",
      verbose=False,
      silent=False,
  ):
      """
      Args:
          lambda0 (float, optional): Complexity - fixed cost of each clause
          lambda1 (float, optional): Complexity - additional cost for each literal
          CNF (bool, optional): CNF instead of DNF
          iterMax (int, optional): Column generation - maximum number of iterations
          timeMax (int, optional): Column generation - maximum runtime in seconds
          K (int, optional): Column generation - maximum number of columns generated per iteration
          D (int, optional): Column generation - maximum degree
          B (int, optional): Column generation - beam search width
          eps (float, optional): Numerical tolerance on comparisons
          solver (str, optional): Linear programming - solver
          verbose (bool, optional): Linear programming - verboseness
          silent (bool, optional): Silence overall algorithm messages
      """
      # Complexity parameters
      self.lambda0 = lambda0  # fixed cost of each clause
      self.lambda1 = lambda1  # additional cost per literal
      # CNF instead of DNF
      self.CNF = CNF
      # Column generation parameters
      self.iterMax = iterMax  # maximum number of iterations
      self.timeMax = timeMax  # maximum runtime in seconds
      self.K = K  # maximum number of columns generated per iteration
      self.D = D  # maximum degree
      self.B = B  # beam search width
      # Numerical tolerance on comparisons
      self.eps = eps
      # Linear programming parameters
      self.solver = solver  # solver
      self.verbose = verbose  # verboseness
      # Silence output
      self.silent = silent
  
file_path: AIX360/aix360/algorithms/rbm/boolean_rule_cg.py
imports: import os
  import numpy
  import pandas
  import cvxpy
  from sklearn.metrics import confusion_matrix, accuracy_score
  from sklearn.base import BaseEstimator, ClassifierMixin
  import time
  from .beam_search import beam_search, beam_search_K1
label_desc: Use image node_id 1 to create a new BooleanRuleCG object from inherited base classes: BaseEstimator, ClassifierMixin with example: obj = BooleanRuleCG(lambda0, lambda1, CNF, iterMax, timeMax, K, D, B, eps, solver, verbose, silent)