docstr: Fit a propensity model and predict propensity scores.
  
  Args:
      X (numpy.ndarray): a feature matrix
      y (numpy.ndarray): a binary target vector
  
  Returns:
      (numpy.ndarray): Propensity scores between 0 and 1.
docstr_tok: ["Fit","a","propensity","model","and","predict","propensity","scores",".","Args",":","X","(","numpy.ndarray",")",":","a","feature","matrix","y","(","numpy.ndarray",")",":","a","binary","target","vector","Returns",":","(","numpy.ndarray",")",":","Propensity","scores","between","0","and","1","."]
code: def fit_predict(self, X, y):
      """
      Fit a propensity model and predict propensity scores.
  
      Args:
          X (numpy.ndarray): a feature matrix
          y (numpy.ndarray): a binary target vector
  
      Returns:
          (numpy.ndarray): Propensity scores between 0 and 1.
      """
      self.fit(X, y)
      propensity_scores = self.predict(X)
      logger.info("AUC score: {:.6f}".format(auc(y, propensity_scores)))
      return propensity_scores
  
imports: from abc import ABCMeta, abstractmethod
  import logging
  import numpy
  from pygam import LogisticGAM, s
  from sklearn.metrics import roc_auc_score
  from sklearn.linear_model import LogisticRegressionCV
  from sklearn.model_selection import StratifiedKFold, train_test_split
  import xgboost
label_desc: Use image node_id 6 for calling the PropensityModel obj's underlying member method code with example usage: obj.fit_predict(X, y) and returns: propensity_scores