docstr: Predict class probabilities for the input data.
  
  Parameters
  ----------
  X : pandas.DataFrame
      The input samples to predict.
  s : pandas.Series, optional
      The sensitive attribute values.
  
  Returns
  -------
  pandas.Series
      The predicted class probabilities.
code: def predict_proba(
      self, X: pd.DataFrame, s: Optional[pd.Series] = None
  ) -> pd.Series:
      """Predict class probabilities for the input data.
  
      Parameters
      ----------
      X : pandas.DataFrame
          The input samples to predict.
      s : pandas.Series, optional
          The sensitive attribute values.
  
      Returns
      -------
      pandas.Series
          The predicted class probabilities.
      """
      super().predict_proba(X=X, s=s)
      self.logger.info("Predicting with LightGBM model.")
      self.logger.debug(
          f"Input size for model prediction: {X.shape[0]} rows"
      )
      preds = pd.Series(
          data=self.model.predict_proba(X=X)[:, 1],
          name="predictions",
          index=X.index,
      )
      self.logger.info("Finished predicting with LightGBM model.")
      return preds
  
file_path: aequitas/src/aequitas/fairflow/methods/base_estimator/lightgbm.py
imports: from typing import Optional
  import pandas
  from lightgbm import LGBMClassifier
  from ...utils import create_logger
  from .base_estimator import BaseEstimator
label_desc: Use image node_id 3 for calling the LightGBM obj's underlying member method code with example usage: obj.predict_proba(X, s) and returns: preds