code: def relative_cumulative_gain_curve(
      df: pd.DataFrame,
      treatment: str,
      outcome: str,
      prediction: str,
      min_rows: int = 30,
      steps: int = 100,
      effect_fn: EffectFnType = linear_effect,
  ) -> np.ndarray:
      """
      Orders the dataset by prediction and computes the relative cumulative gain curve curve according to that ordering.
      The relative gain is simply the cumulative effect minus the Average Treatment Effect (ATE) times the relative
      sample size.
  
      Parameters
      ----------
      df : Pandas' DataFrame
          A Pandas' DataFrame with target and prediction scores.
  
      treatment : Strings
          The name of the treatment column in `df`.
  
      outcome : Strings
          The name of the outcome column in `df`.
  
      prediction : Strings
          The name of the prediction column in `df`.
  
      min_rows : Integer
          Minimum number of observations needed to have a valid result.
  
      steps : Integer
          The number of cumulative steps to iterate when accumulating the effect
  
      effect_fn : function (df: pandas.DataFrame, treatment: str, outcome: str) -> int or Array of int
          A function that computes the treatment effect given a dataframe, the name of the treatment column and the name
          of the outcome column.
  
  
      Returns
      ----------
      relative cumulative gain curve: float
          The relative cumulative gain according to the predictions ordering.
      """
  
      ate = effect_fn(df, treatment, outcome)
      size = df.shape[0]
      n_rows = list(range(min_rows, size, size // steps)) + [size]
  
      cum_effect = cumulative_effect_curve(
          df=df,
          treatment=treatment,
          outcome=outcome,
          prediction=prediction,
          min_rows=min_rows,
          steps=steps,
          effect_fn=effect_fn,
      )
  
      return np.array(
          [
              (effect - ate) * (rows / size)
              for rows, effect in zip(n_rows, cum_effect)
          ]
      )
  
file_path: fklearn/src/fklearn/causal/validation/curves.py
imports: from typing import List
  import numpy
  import pandas
  from toolz import curry, partial
  from fklearn.types import EffectFnType
  from fklearn.causal.effects import linear_effect
label_desc: Use image node_id 4 for calling a global function with example usage: relative_cumulative_gain_curve(df, treatment, outcome, prediction, min_rows, steps, effect_fn) and returns: np