class_docstr: Return the PPS (Predictive Power Score) of all features in relation to the label.
  
  The PPS represents the ability of a feature to single-handedly predict another feature or label.
  A high PPS (close to 1) can mean that this feature's success in predicting the label is actually due to data
  leakage - meaning that the feature holds information that is based on the label to begin with.
  
  Uses the ppscore package - for more info, see https://github.com/8080labs/ppscore
  
  Parameters
  ----------
  ppscore_params : dict , default: None
      dictionary of additional parameters for the ppscore.predictors function
  n_top_features : int , default: 5
      Number of features to show, sorted by the magnitude of difference in PPS
  n_samples : int , default: 100_000
      number of samples to use for this check.
  random_state : int , default: None
      Random state for the ppscore.predictors function
docstr: Run check.
  
  Returns
  -------
  CheckResult
      value is a dictionary with PPS per feature column.
      data is a bar graph of the PPS of each feature.
  
  Raises
  ------
  DeepchecksValueError
      If the object is not a Dataset instance with a label.
docstr_tok: ["Run","check",".","Returns","--","--","--","-","CheckResult","value","is","a","dictionary","with","PPS","per","feature","column",".","data","is","a","bar","graph","of","the","PPS","of","each","feature",".","Raises","--","--","--","DeepchecksValueError","If","the","object","is","not","a","Dataset","instance","with","a","label","."]
code: def run_logic(self, context: Context, dataset_kind) -> CheckResult:
      """Run check.
  
      Returns
      -------
      CheckResult
          value is a dictionary with PPS per feature column.
          data is a bar graph of the PPS of each feature.
  
      Raises
      ------
      DeepchecksValueError
          If the object is not a Dataset instance with a label.
      """
      dataset = context.get_data_by_kind(dataset_kind).sample(
          self.n_samples, random_state=self.random_state
      )
      dataset.assert_features()
      relevant_columns = dataset.features + [dataset.label_name]
  
      # ppscore infers the task type from the label dtype, so we need to convert it to object
      data_df = dataset.data[relevant_columns]
      if context.task_type != TaskType.REGRESSION:
          data_df[dataset.label_name] = data_df[
              dataset.label_name
          ].astype(object)
  
      df_pps = pps.predictors(
          df=data_df,
          y=dataset.label_name,
          random_seed=self.random_state,
          **self.ppscore_params,
      )
      s_ppscore = df_pps.set_index("x", drop=True)["ppscore"]
  
      if context.with_display:
          top_to_show = s_ppscore.head(self.n_top_features)
  
          fig = get_pps_figure(
              per_class=False, n_of_features=len(top_to_show)
          )
          fig.add_trace(
              pd_series_to_trace(
                  top_to_show, dataset_kind.value, dataset.name
              )
          )
  
          text = [
              "The Predictive Power Score (PPS) is used to estimate the ability of a feature to predict the "
              f"label by itself (Read more about {pps_html})."
              " A high PPS (close to 1) can mean that this feature's success in predicting the label is"
              " actually due to data leakage - meaning that the feature holds information that is based on the label "
              "to begin with."
          ]
  
          # display only if not all scores are 0
          display = [fig, *text] if s_ppscore.sum() else None
      else:
          display = None
  
      return CheckResult(
          value=s_ppscore.to_dict(),
          display=display,
          header="Feature Label Correlation",
      )
  
file_path: deepchecks/deepchecks/tabular/checks/data_integrity/feature_label_correlation.py
imports: import typing
  import deepchecks.ppscore
  from deepchecks.core import CheckResult, ConditionCategory, ConditionResult
  from deepchecks.core.check_utils.feature_label_correlation_utils import get_pps_figure, pd_series_to_trace
  from deepchecks.tabular import Context, SingleDatasetCheck
  from deepchecks.tabular.utils.messages import get_condition_passed_message
  from deepchecks.tabular.utils.task_type import TaskType
  from deepchecks.utils.strings import format_number
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 2 for calling the FeatureLabelCorrelation obj's underlying member method code with example usage: obj.run_logic(context, dataset_kind) and returns: CheckResult