docstr: Just scores the subset without performing ALTSS.
  We still need to determine the MLE value of q.
  
  :param coordinates: data frame containing having as columns the covariates/features
  :param expectations: data series containing the expectations/expected outcomes
  :param outcomes: data series containing the outcomes/observed outcomes
  :param current_subset: current subset to be scored
  :param penalty: penalty coefficient
  :return: penalized score of subset
docstr_tok: ["Just","scores","the","subset","without","performing","ALTSS",".","We","still","need","to","determine","the","MLE","value","of","q.",":","param","coordinates",":","data","frame","containing","having","as","columns","the","covariates\/features",":","param","expectations",":","data","series","containing","the","expectations\/expected","outcomes",":","param","outcomes",":","data","series","containing","the","outcomes\/observed","outcomes",":","param","current_subset",":","current","subset","to","be","scored",":","param","penalty",":","penalty","coefficient",":","return",":","penalized","score","of","subset"]
code: def score_current_subset(
      self,
      coordinates: pd.DataFrame,
      expectations: pd.Series,
      outcomes: pd.Series,
      current_subset: dict,
      penalty: float,
  ):
      """
      Just scores the subset without performing ALTSS.
      We still need to determine the MLE value of q.
  
      :param coordinates: data frame containing having as columns the covariates/features
      :param expectations: data series containing the expectations/expected outcomes
      :param outcomes: data series containing the outcomes/observed outcomes
      :param current_subset: current subset to be scored
      :param penalty: penalty coefficient
      :return: penalized score of subset
      """
  
      # compute the subset of records matching the current subgroup along all dimensions
      # temp_df includes the covariates x_i, outcome y_i, and predicted expectation p_i for each matching record
      if current_subset:
          to_choose = (
              coordinates[current_subset.keys()]
              .isin(current_subset)
              .all(axis=1)
          )
          temp_df = pd.concat(
              [
                  coordinates.loc[to_choose],
                  outcomes[to_choose],
                  expectations[to_choose],
              ],
              axis=1,
          )
      else:
          temp_df = pd.concat(
              [coordinates, outcomes, expectations], axis=1
          )
  
      scoring_function = self.scoring_function
  
      # we must keep track of the sum of outcome values as well as all predicted expectations
      observed_sum = temp_df.iloc[:, -2].sum()
      expectations = temp_df.iloc[:, -1].values
  
      # compute the MLE value of q, making sure to only consider the desired direction (positive or negative)
      current_q_mle = scoring_function.qmle(observed_sum, expectations)
  
      # total_penalty = penalty * sum of list lengths in current_subset
      total_penalty = 0
      for key, values in current_subset.items():
          total_penalty += len(values)
  
      total_penalty *= penalty
  
      # Compute and return the penalized score
      penalized_score = scoring_function.score(
          observed_sum, expectations, total_penalty, current_q_mle
      )
      return np.round(penalized_score, 4)
  
file_path: AIF360/aif360/detectors/mdss/MDSS.py
imports: from aif360.detectors.mdss.ScoringFunctions.ScoringFunction import ScoringFunction
  from aif360.detectors.mdss.generator import get_entire_subset, get_random_subset
  from aif360.detectors.mdss.ScoringFunctions import Bernoulli, BerkJones, Gaussian, ScoringFunction, Poisson
  import pandas
  import numpy
label_desc: Use image node_id 4 for calling the MDSS obj's underlying member method code with example usage: obj.score_current_subset(coordinates, expectations, outcomes, current_subset, penalty) and returns: np