code: def insight_2_local_feature_impact(self, df, y_and_prob):
      top_positive_variables = []
      average_shap_values_positive = []
  
      top_negative_variables = []
      average_shap_values_negative = []
  
      df_numpy = df.to_numpy()
      print("insights")
      print(df_numpy)
  
      for i in range(3):
          top_positive_variables.append(df_numpy[-1 * (i + 1)][0])
          average_shap_values_positive.append(df_numpy[-1 * (i + 1)][1])
  
          top_negative_variables.append(df_numpy[i][0])
          average_shap_values_negative.append(df_numpy[i][1])
  
      sentences = []
  
      sentences.append("Model Prediction : " + str(y_and_prob[0]))
  
      sentences.append(
          "Top 3 Positive Impact Variables : "
          + top_positive_variables[0]
          + ", "
          + top_positive_variables[1]
          + ", "
          + top_positive_variables[2]
          + " "
      )
  
      sentences.append(
          "Top 3 Negative Impact Variables : "
          + top_negative_variables[0]
          + ", "
          + top_negative_variables[1]
          + ", "
          + top_negative_variables[2]
          + " "
      )
  
      sentences.append("")
  
      return sentences
  
file_path: explainx/lib/insight_regression.py
imports: from imports import *
label_desc: Use image node_id 4 for calling the insight_regression obj's underlying member method code with example usage: obj.insight_2_local_feature_impact(df, y_and_prob) and returns: sentences