class_docstr: Propensity score matching based on the nearest neighbor algorithm.
  
  Attributes:
      caliper (float): threshold to be considered as a match.
      replace (bool): whether to match with replacement or not
      ratio (int): ratio of control / treatment to be matched. used only if
          replace=True.
      shuffle (bool): whether to shuffle the treatment group data before
          matching
      random_state (numpy.random.RandomState or int): RandomState or an int
          seed
      n_jobs (int): The number of parallel jobs to run for neighbors search.
          None means 1 unless in a joblib.parallel_backend context. -1 means using all processors
docstr: Initialize a propensity score matching model.
  
  Args:
      caliper (float): threshold to be considered as a match.
      replace (bool): whether to match with replacement or not
      shuffle (bool): whether to shuffle the treatment group data before
          matching or not
      random_state (numpy.random.RandomState or int): RandomState or an
          int seed
      n_jobs (int): The number of parallel jobs to run for neighbors search.
          None means 1 unless in a joblib.parallel_backend context. -1 means using all processors
docstr_tok: ["Initialize","a","propensity","score","matching","model",".","Args",":","caliper","(","float",")",":","threshold","to","be","considered","as","a","match",".","replace","(","bool",")",":","whether","to","match","with","replacement","or","not","shuffle","(","bool",")",":","whether","to","shuffle","the","treatment","group","data","before","matching","or","not","random_state","(","numpy.random.RandomState","or","int",")",":","RandomState","or","an","int","seed","n_jobs","(","int",")",":","The","number","of","parallel","jobs","to","run","for","neighbors","search",".","None","means","1","unless","in","a","joblib.parallel_backend","context",".","-1","means","using","all","processors"]
code: def __init__(
      self,
      caliper=0.2,
      replace=False,
      ratio=1,
      shuffle=True,
      random_state=None,
      n_jobs=-1,
  ):
      """Initialize a propensity score matching model.
  
      Args:
          caliper (float): threshold to be considered as a match.
          replace (bool): whether to match with replacement or not
          shuffle (bool): whether to shuffle the treatment group data before
              matching or not
          random_state (numpy.random.RandomState or int): RandomState or an
              int seed
          n_jobs (int): The number of parallel jobs to run for neighbors search.
              None means 1 unless in a joblib.parallel_backend context. -1 means using all processors
      """
      self.caliper = caliper
      self.replace = replace
      self.ratio = ratio
      self.shuffle = shuffle
      self.random_state = check_random_state(random_state)
      self.n_jobs = n_jobs
  
imports: import argparse
  import logging
  import sys
  import numpy
  import pandas
  from sklearn.neighbors import NearestNeighbors
  from sklearn.preprocessing import StandardScaler
  from sklearn.utils import check_random_state
label_desc: Use image node_id 1 to create a new NearestNeighborMatch object from inherited base classes: object with example: obj = NearestNeighborMatch(caliper, replace, ratio, shuffle, random_state, n_jobs)