docstr: Load the classifier pickle if not cached
  
  returns classifier, bin_labels, name and features
docstr_tok: ["Load","the","classifier","pickle","if","not","cached","returns","classifier",",","bin_labels",",","name","and","features"]
code: def load_classifier(self):
      """Load the classifier pickle if not cached
  
      returns classifier, bin_labels, name and features
      """
      d = self.get_dictionary()
      file_ = self.rules_file_name.value
      directory_ = self.rules_directory.get_absolute_path()
      path_ = os.path.join(directory_, file_)
      if path_ not in d:
          if not os.path.isfile(path_):
              raise ValidationError(
                  "No such classifier file: %s" % path_,
                  self.rules_file_name,
              )
          else:
              if not file_.endswith(".txt"):
                  # Probably a model file
                  import joblib
  
                  d[path_] = joblib.load(path_)
                  if len(d[path_]) < 3:
                      raise IOError(
                          "The selected model file doesn't look like a CellProfiler Analyst classifier."
                          "See the help dialog for more info on model formats."
                      )
                  if d[path_][2] == "FastGentleBoosting":
                      # FGB model files are not sklearn-based, we'll load it as rules instead.
                      rules = Rules(allow_fuzzy=self.allow_fuzzy)
                      rules.load(d[path_][0])
                      d[path_] = (
                          rules,
                          d[path_][1],
                          "Rules",
                          [
                              f"{rule.object_name}_{rule.feature}"
                              for rule in rules.rules
                          ],
                      )
              else:
                  # Probably a rules list
                  rules = Rules(allow_fuzzy=self.allow_fuzzy)
                  rules.parse(path_)
                  # Construct a classifier-like object
                  d[path_] = (
                      rules,
                      rules.get_classes(),
                      "Rules",
                      [
                          f"{rule.object_name}_{rule.feature}"
                          for rule in rules.rules
                      ],
                  )
      return d[path_]
  
imports: from cellprofiler_core.constants.measurement import M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, C_CHILDREN, C_PARENT, C_LOCATION, C_NUMBER, FTR_OBJECT_NUMBER, C_COUNT, FTR_CENTER_X, FTR_CENTER_Y, FTR_CENTER_Z
  from cellprofiler_core.module.image_segmentation import ObjectProcessing
  from cellprofiler_core.preferences import DEFAULT_INPUT_FOLDER_NAME, ABSOLUTE_FOLDER_NAME, DEFAULT_INPUT_SUBFOLDER_NAME, DEFAULT_OUTPUT_SUBFOLDER_NAME
  from cellprofiler_core.setting import Divider, HiddenCount, SettingsGroup, Measurement, Binary, ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.do_something import DoSomething, RemoveSettingButton
  from cellprofiler_core.setting.subscriber import LabelSubscriber
  from cellprofiler_core.setting.text import Directory, Filename, Float, LabelName
  from cellprofiler.modules import _help
  import logging
  import os
  import numpy
  import scipy
  import scipy.ndimage
  import scipy.sparse
  import cellprofiler.gui.help
  import cellprofiler_core.object
  from cellprofiler.utilities.rules import Rules
label_desc: Use image node_id 19 for calling the FilterObjects obj's underlying member method code with example usage: obj.load_classifier() and returns: d