class_docstr: Encode all the categorical features into numerical ones by sequential label encoding, sequential count encoding,
  and binary encoding. Additionally, it also filters the low-frequency categories and fills the missing values.
docstr: Constructor.
  
  Args:
      cate_cols (list): The columns of categorical features.
      nume_cols (list): The columns of numerical features.
      label_col (object): The column of Label.
      threshold (int): The categories whose frequency is lower than the threshold will be filtered (be treated
          as "<LESS>").
      thresrate (float): The (1.0 - thersrate, default 1%) lowest-frequency categories will also be filtered.
code: def __init__(
      self,
      cate_cols,
      nume_cols,
      label_col,
      threshold=10,
      thresrate=0.99,
  ):
      """Constructor.
  
      Args:
          cate_cols (list): The columns of categorical features.
          nume_cols (list): The columns of numerical features.
          label_col (object): The column of Label.
          threshold (int): The categories whose frequency is lower than the threshold will be filtered (be treated
              as "<LESS>").
          thresrate (float): The (1.0 - thersrate, default 1%) lowest-frequency categories will also be filtered.
      """
      logging.basicConfig(
          level=logging.INFO, format="%(asctime)s [INFO] %(message)s"
      )
      self.label_name = label_col
      self.cate_cols = cate_cols
      self.dtype_dict = {}
      for item in cate_cols:
          self.dtype_dict[item] = "str"
      for item in nume_cols:
          self.dtype_dict[item] = "float"
      self.nume_cols = nume_cols
      self.tgt_nume_cols = []
      self.encoder = ce.ordinal.OrdinalEncoder(cols=cate_cols)
      self.threshold = threshold
      self.thresrate = thresrate
  
      self.save_cate_avgs = {}
      self.save_value_filter = {}
      self.save_num_embs = {}
      self.Max_len = {}
      self.samples = 0
  
file_path: recommenders/recommenders/models/lightgbm/lightgbm_utils.py
imports: import logging
  import numpy
  import category_encoders
  from tqdm import tqdm
  import collections
  import gc
label_desc: Use image node_id 1 to create a new NumEncoder object from inherited base classes: object with example: obj = NumEncoder(cate_cols, nume_cols, label_col, threshold, thresrate)