class_docstr: Perform Shapley values calculation using `shap` package for the given rows.
  
  Parameters
  ----------
  rows: pd.DataFrame,
      rows to explain
  baseline_sample: int, default = 100
      The background dataset size to use for integrating out features. To determine the impact
      of a feature, that feature is set to "missing" and the change in the model output
      is observed.
  parent: Optional[AbstractAnalysis], default = None
      parent Analysis
  children: List[AbstractAnalysis], default = []
      wrapped analyses; these will receive sampled `args` during `fit` call
  state: AnalysisState
      state to be updated by this fit function
  random_state: int, default = 0
      random state for sampling
  kwargs
  
  Examples
  --------
  >>> import autogluon.eda.analysis as eda
  >>> import autogluon.eda.visualization as viz
  >>> import autogluon.eda.auto as auto
  >>>
  >>> auto.analyze(
  >>>     train_data=..., model=...,
  >>>     anlz_facets=[
  >>>         eda.explain.ShapAnalysis(rows, baseline_sample=200),
  >>>     ],
  >>>     viz_facets=[
  >>>         # Visualize the given SHAP values with an additive force layout
  >>>         viz.explain.ExplainForcePlot(),
  >>>         # Visualize the given SHAP values with a waterfall layout
  >>>         viz.explain.ExplainWaterfallPlot(),
  >>>     ]
  >>> )
  
  See Also
  --------
  :py:class:`~shap.KernelExplainer`
  :py:class:`~autogluon.eda.visualization.explain.ExplainForcePlot`
  :py:class:`~autogluon.eda.visualization.explain.ExplainWaterfallPlot`
class_docstr_tok: ["Perform","Shapley","values","calculation","using","`","shap","`","package","for","the","given","rows",".","Parameters","--","--","--","--","--","rows",":","pd.DataFrame",",","rows","to","explain","baseline_sample",":","int",",","default","=","100","The","background","dataset","size","to","use","for","integrating","out","features",".","To","determine","the","impact","of","a","feature",",","that","feature","is","set","to","``","missing","''","and","the","change","in","the","model","output","is","observed",".","parent",":","Optional","[","AbstractAnalysis","]",",","default","=","None","parent","Analysis","children",":","List","[","AbstractAnalysis","]",",","default","=","[","]","wrapped","analyses",";","these","will","receive","sampled","`","args","`","during","`","fit","`","call","state",":","AnalysisState","state","to","be","updated","by","this","fit","function","random_state",":","int",",","default","=","0","random","state","for","sampling","kwargs","Examples","--","--","--","--",">",">",">","import","autogluon.eda.analysis","as","eda",">",">",">","import","autogluon.eda.visualization","as","viz",">",">",">","import","autogluon.eda.auto","as","auto",">",">",">",">",">",">","auto.analyze","(",">",">",">","train_data=","...",",","model=","...",",",">",">",">","anlz_facets=","[",">",">",">","eda.explain.ShapAnalysis","(","rows",",","baseline_sample=200",")",",",">",">",">","]",",",">",">",">","viz_facets=","[",">",">",">","#","Visualize","the","given","SHAP","values","with","an","additive","force","layout",">",">",">","viz.explain.ExplainForcePlot","(",")",",",">",">",">","#","Visualize","the","given","SHAP","values","with","a","waterfall","layout",">",">",">","viz.explain.ExplainWaterfallPlot","(",")",",",">",">",">","]",">",">",">",")","See","Also","--","--","--","--",":","py",":","class",":","`","~shap.KernelExplainer","`",":","py",":","class",":","`","~autogluon.eda.visualization.explain.ExplainForcePlot","`",":","py",":","class",":","`","~autogluon.eda.visualization.explain.ExplainWaterfallPlot","`"]
code: def can_handle(
      self, state: AnalysisState, args: AnalysisState
  ) -> bool:
      return self.all_keys_must_be_present(args, "model", "train_data")
  
file_path: autogluon/eda/src/autogluon/eda/analysis/explain.py
imports: import logging
  import warnings
  from typing import List, Optional
  import numpy
  import pandas
  import shap
  from autogluon.core.constants import BINARY, REGRESSION
  from autogluon.eda import AnalysisState
  from autogluon.eda.analysis.base import AbstractAnalysis
label_desc: Use image node_id 2 for calling the ShapAnalysis obj's underlying member method code with example usage: obj.can_handle(state, args) and returns: self