ó
    †ñ:iB‰  ã                   óF  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKr	S SK
rS SKrS SKJr  S SKJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S SKJr  S	S
KJr  S	SKJ r   S	SK!J"r"  S	SK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,  SSK-J.r.  \R^                  " S5      r0 " S S\.5      r1g)é    N)Ú_exp_val)Úversion)Úbinom)ÚLassoÚLassoLarsICÚ	lars_path)Úmake_pipeline)ÚStandardScaler)Útqdmé   )ÚExplanation)Úsafe_isinstance)ÚDimensionError)	Ú	DenseDataÚ
SparseDataÚconvert_to_dataÚconvert_to_instanceÚconvert_to_instance_with_indexÚconvert_to_linkÚconvert_to_modelÚmatch_instance_to_dataÚmatch_model_to_dataé   )Ú	ExplainerÚshapc                   ó’   • \ rS rSrSrSS jr\S\R                  4S j5       r	SS jr
S rS	 r\S
 5       rS rS rS rS rS rSrg)ÚKernelExplaineré'   a#	  Uses the Kernel SHAP method to explain the output of any function.

Kernel SHAP is a method that uses a special weighted linear regression
to compute the importance of each feature. The computed importance values
are Shapley values from game theory and also coefficients from a local linear
regression.

Parameters
----------
model : function or iml.Model
    User supplied function that takes a matrix of samples (# samples x # features) and
    computes the output of the model for those samples. The output can be a vector
    (# samples) or a matrix (# samples x # model outputs).

data : numpy.array or pandas.DataFrame or shap.common.DenseData or any scipy.sparse matrix
    The background dataset 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. Since most models aren't designed to handle arbitrary missing data at test
    time, we simulate "missing" by replacing the feature with the values it takes in the
    background dataset. So if the background dataset is a simple sample of all zeros, then
    we would approximate a feature being missing by setting it to zero. For small problems,
    this background dataset can be the whole training set, but for larger problems consider
    using a single reference value or using the ``kmeans`` function to summarize the dataset.
    Note: for the sparse case, we accept any sparse matrix but convert to lil format for
    performance.

feature_names : list
    The names of the features in the background dataset. If the background dataset is
    supplied as a pandas.DataFrame, then ``feature_names`` can be set to ``None`` (default),
    and the feature names will be taken as the column names of the dataframe.

link : "identity" or "logit"
    A generalized linear model link to connect the feature importance values to the model
    output. Since the feature importance values, phi, sum up to the model output, it often makes
    sense to connect them to the output with a link function where link(output) = sum(phi).
    Default is "identity" (a no-op).
    If the model output is a probability, then "logit" can be used to transform the SHAP values
    into log-odds units.

Examples
--------
See :ref:`Kernel Explainer Examples <kernel_explainer_examples>`.

Nc                 ój  • Ub  X0l         O9[        U[        R                  5      (       a  [	        UR
                  5      U l         [        U5      U l        UR                  SS5      U l	        UR                  SS5      U l
        [        XR                  S9U l        [        X R                  S9U l        [        U R                  U R                  5      n[        U R                  [         ["        45      (       d  Sn[%        U5      eU R                  R&                  (       a  Sn[)        U5      e[+        U R                  R,                  5      S:”  aG  [.        R1                  S[3        [+        U R                  R,                  5      5      -   S	-   S
-   S-   5        U R                  R                  R4                  S   U l        U R                  R                  R4                  S   U l        [:        R<                  " U R                  R>                  5      U l         SU l!        SU l"        [        U[        R                  [        RF                  45      (       a   [:        RH                  " URJ                  5      n[M        US5      (       a  URO                  5       nO"[M        US5      (       a  U RQ                  U5      n[:        RR                  " URT                  U R                  R,                  -  RT                  S5      U l+        U RA                  U RV                  5      U l,        SU l-        [+        U RV                  R4                  5      S:X  aO  SU l-        [:        R\                  " U RV                  /5      U l+        SU l/        [a        U RX                  5      U l,        g U RV                  R4                  S   U l/        g )NÚ
keep_indexFÚkeep_index_ordered)r    zJShap explainer only supports the DenseData and SparseData input currently.zMShap explainer does not support transposed DenseData or SparseData currently.éd   zUsing z% background data samples could cause zQslower run times. Consider using shap.sample(data, K) or shap.kmeans(data, K) to z&summarize the background as K samples.r   r   z+tensorflow.python.framework.ops.EagerTensorú.tensorflow.python.framework.ops.SymbolicTensorT)1Údata_feature_namesÚ
isinstanceÚpdÚ	DataFrameÚlistÚcolumnsr   ÚlinkÚgetr    r!   r   Úmodelr   Údatar   r   r   Ú	TypeErrorÚ
transposedr   ÚlenÚweightsÚlogÚwarningÚstrÚshapeÚNÚPÚnpÚ	vectorizeÚfÚlinkfvÚnsamplesAddedÚnsamplesRunÚSeriesÚsqueezeÚvaluesr   ÚnumpyÚ_convert_symbolic_tensorÚsumÚTÚfnullÚexpected_valueÚ
vector_outÚarrayÚDÚfloat)Úselfr,   r-   Úfeature_namesr*   ÚkwargsÚ
model_nullÚemsgs           ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/explainers/_kernel.pyÚ__init__ÚKernelExplainer.__init__U   s³  € ØÑ$Ø&3Õ#Ü˜œbŸl™l×+Ñ+Ü&*¨4¯<©<Ó&8ˆDÔ#ô $ DÓ)ˆŒ	Ø Ÿ*™* \°5Ó9ˆŒØ"(§*¡*Ð-AÀ5Ó"IˆÔÜ% e¿¹ÑHˆŒ
Ü# D·_±_ÑEˆŒ	Ü(¨¯©°T·Y±YÓ?ˆ
ô ˜$Ÿ)™)¤i´Ð%<×=Ñ=Ø_ˆDÜ˜D“/Ð!Ø�9‰9××ØbˆDÜ  Ó&Ð&ô ˆt�y‰y× Ñ Ó! CÓ'Ü�K‰KØÜ”c˜$Ÿ)™)×+Ñ+Ó,Ó-ñ.à9ñ:ð fñfð ;ñ	;ôð —‘—‘×%Ñ% aÑ(ˆŒØ—‘—‘×%Ñ% aÑ(ˆŒÜ—l’l 4§9¡9§;¡;Ó/ˆŒØˆÔØˆÔô �j¤2§<¡<´·±Ð";×<Ñ<ÜŸš J×$5Ñ$5Ó6ˆJÜ˜:Ð'T×UÑUØ#×)Ñ)Ó+‰JÜ˜ZÐ)Y×ZÑZØ×6Ñ6°zÓBˆJÜ—V’V˜ZŸ\™\¨D¯I©I×,=Ñ,=Ñ=×@Ñ@À!ÓDˆŒ
Ø"Ÿk™k¨$¯*©*Ó5ˆÔð ˆŒÜˆt�z‰z×ÑÓ  AÓ%Ø#ˆDŒOÜŸš 4§:¡: ,Ó/ˆDŒJØˆDŒFÜ"'¨×(;Ñ(;Ó"<ˆDÕà—Z‘Z×%Ñ% aÑ(ˆD�Fó    Úreturnc                 óî  • SS K nUR                  S:¼  as  UR                  R                  R	                  5        nUR                  UR                  R                  R                  5       5        UR                  U 5      nS S S 5        U$ UR	                  5        nUR                  UR                  5       5        UR                  U 5      nS S S 5        U$ ! , (       d  f       W$ = f! , (       d  f       W$ = f)Nr   z2.0.0)Ú
tensorflowÚ__version__ÚcompatÚv1ÚSessionÚrunÚglobal_variables_initializer)Úsymbolic_tensorÚtfÚsessÚtensor_as_np_arrays       rP   rB   Ú(KernelExplainer._convert_symbolic_tensor�   s¿   € ãà�>‰>˜WÓ$Ø—‘—‘×%Ñ%Ô'¨4Ø—‘˜Ÿ™Ÿ™×BÑBÓDÔEØ%)§X¡X¨oÓ%>Ð"÷ (ð "Ð!ð —‘” Ø—‘˜×8Ñ8Ó:Ô;Ø%)§X¡X¨oÓ%>Ð"÷ ð "Ð!÷ (Ô'ð "Ð!ú÷ ”ð "Ð!ús   ¹ACÂ1C%Ã
C"Ã%
C4c                 ó¼  • [         R                   " 5       n[        U[        R                  5      (       a  [	        UR
                  5      nO[        U SS 5      nU R                  XUS9n[        U[        5      (       a  [        R                  " USS9n[        U R                  S5      (       a1  [        R                  " U R                  UR                  S   S45      nO.[        R                  " U R                  UR                  S   5      n[        UU[        U[        R                  5      (       a  UR                  5       OUU[         R                   " 5       U-
  S9$ )	Nr$   )Úl1_regÚsilentéÿÿÿÿ©ÚaxisÚ__len__r   r   )Úbase_valuesr-   rL   Úcompute_time)Útimer%   r&   r'   r(   r)   ÚgetattrÚshap_valuesr8   ÚstackÚhasattrrF   Útiler5   r   Úto_numpy)rK   ÚXrc   rd   Ú
start_timerL   ÚvÚev_tileds           rP   Ú__call__ÚKernelExplainer.__call__Ÿ   s   € Ü—Y’Y“[ˆ
ä�aœŸ™×&Ñ&Ü  §¡›O‰Mä# DÐ*>ÀÓEˆMà×Ñ˜Q°fÐÐ=ˆÜ�aœ×ÑÜ—’˜ Ñ$ˆAô �4×&Ñ&¨	×2Ñ2Ü—w’w˜t×2Ñ2°Q·W±W¸Q±ZÀ°OÓD‰Hä—w’w˜t×2Ñ2°A·G±G¸A±JÓ?ˆHäØØ Ü!+¨A¬r¯|©|×!<Ñ!<�—‘”À!Ø'ÜŸš› zÑ1ñ
ð 	
rS   c           	      óÂ  • [        U[        R                  5      (       a  UR                  nO}[        U[        R                  5      (       a^  U R
                  (       aA  UR                  R                  nUR                  R                  n[        UR                  5      nUR                  n[        [        U5      5      nSn[        R                  R                  U5      (       a4  [        R                  R                  U5      (       d  UR!                  5       nUR#                  U5      (       d.  [        R                  R                  U5      (       d
   SU-   5       e[%        UR&                  5      S:X  az  UR)                  SUR&                  S   45      nU R
                  (       a  [+        UWWW5      nU R,                  " U40 UD6n	U	R&                  n
[.        R0                  " U
5      nX›SS& U$ [%        UR&                  5      S:X  GaÆ  / n[3        [5        UR&                  S   5      UR7                  SS5      S	9 H„  nXUS-   2SS24   nU R
                  (       a  [+        UWWXÝS-    W5      nUR9                  U R,                  " U40 UD65        UR7                  S
S5      (       d  Mo  [:        R<                  " 5         M†     US   R&                  n
[%        U
5      S:X  aŸ  [5        U
S   5       Vs/ s H+  n[.        R0                  " UR&                  S   U
S   45      PM-     nn[5        UR&                  S   5       H(  n[5        U
S   5       H  nXÍ   SS2U4   Xþ   U'   M     M*     [.        R>                  " USS9nU$ [.        R0                  " UR&                  S   U
S   45      n[5        UR&                  S   5       H	  nXÍ   X½'   M     U$ Sn[A        U5      es  snf )al  Estimate the SHAP values for a set of samples.

Parameters
----------
X : numpy.array or pandas.DataFrame or any scipy.sparse matrix
    A matrix of samples (# samples x # features) on which to explain the model's output.

nsamples : "auto" or int
    Number of times to re-evaluate the model when explaining each prediction. More samples
    lead to lower variance estimates of the SHAP values. The "auto" setting uses
    `nsamples = 2 * X.shape[1] + 2048`.

l1_reg : "num_features(int)", "aic", "bic", or float
    The l1 regularization to use for feature selection. The estimation
    procedure is based on a debiased lasso.

    * "num_features(int)" selects a fixed number of top features.
    * "aic" and "bic" options use the AIC and BIC rules for regularization.
    * Passing a float directly sets the "alpha" parameter of the
      ``sklearn.linear_model.Lasso`` model used for feature selection.
    * "auto" (deprecated): uses "aic" when less than
      20% of the possible sample space is enumerated, otherwise it uses
      no regularization.

    .. versionchanged:: 0.47.0
        The default value changed from ``"auto"`` to ``"num_features(10)"``.

silent: bool
    If True, hide tqdm progress bar. Default False.

gc_collect : bool
   Run garbage collection after each explanation round. Sometime needed for memory intensive explanations (default False).

Returns
-------
np.array or list
    Estimated SHAP values, usually of shape ``(# samples x # features)``.

    Each row sums to the difference between the model output for that
    sample and the expected value of the model output (which is stored as the ``expected_value``
    attribute of the explainer).

    The type and shape of the return value depends on the number of model inputs and outputs:

    * one input, one output: array of shape ``(#num_samples, *X.shape[1:])``.
    * one input, multiple outputs: array of shape ``(#num_samples, *X.shape[1:], #num_outputs)``
    * multiple inputs: list of arrays of corresponding shape above.

    .. versionchanged:: 0.45.0
        Return type for models with multiple outputs and one input changed from list to np.ndarray.

z'numpy.ndarray'>zUnknown instance type: r   r   Nr   rd   F)ÚdisableÚ
gc_collectre   rf   z%Instance must have 1 or 2 dimensions!)!r%   r&   r>   r@   r'   r    ÚindexÚnamer(   r)   r4   ÚtypeÚscipyÚsparseÚissparseÚisspmatrix_lilÚtolilÚendswithr0   r5   Úreshaper   Úexplainr8   Úzerosr   Úranger+   ÚappendÚgcÚcollectrn   r   )rK   rr   rM   Úindex_valueÚ
index_nameÚcolumn_nameÚx_typeÚarr_typer-   ÚexplanationÚsÚoutÚexplanationsÚiÚjÚoutsrO   s                    rP   rm   ÚKernelExplainer.shap_values¹   s  € ôl �aœŸ™×#Ñ#Ø—‘‰AÜ˜œ2Ÿ<™<×(Ñ(Ø��ØŸg™gŸn™n�ØŸW™WŸ\™\�
Ü" 1§9¡9›o�Ø—‘ˆAä”T˜!“W“ˆØ%ˆä�<‰<× Ñ  ×#Ñ#¬E¯L©L×,GÑ,GÈ×,JÑ,JØ—‘“	ˆAØ�‰˜x×(Ñ(¬E¯L©L×,GÑ,GÈ×,JÑ,JÐnÐLeÐhnÑLnÓnÐJô ˆq�w‰w‹<˜1ÓØ—9‘9˜a §¡¨¡˜_Ó-ˆDØ��Ü5°d¸KÈÐU`Óa�ØŸ,š, tÑ6¨vÑ6ˆKð ×!Ñ!ˆAÜ—(’(˜1“+ˆCØ ‘ˆFØˆJô �—‘‹\˜QÔØˆLÜœ% §¡¨¡
Ó+°V·Z±ZÀÈ%Ó5PÔQ�Ø˜Q ™U˜¢A˜‘�Ø—?—?Ü9¸$ÀÈ[ÐYZÐabÑ]bÐMcÐeoÓp�DØ×#Ñ# D§L¢L°Ñ$@¸Ñ$@ÔAØ—:‘:˜l¨E×2Ó2Ü—J’J–Lñ Rð ˜Q‘×%Ñ%ˆAÜ�1‹v˜‹{Ü>CÀAÀaÁD¼kÓJºk¸œŸš !§'¡'¨!¡*¨a°©dÐ!3Ö4¹k�ÐJÜ˜qŸw™w q™zÖ*�AÜ" 1 Q¡4ž[˜Ø%1¡_²Q¸°TÑ%:˜™ ›
ó )ñ +ô —x’x ¨2Ñ.�Ø�ô —h’h §¡¨¡
¨A¨a©DÐ1Ó2�Ü˜qŸw™w q™zÖ*�AØ)™_�C“Fñ +à�
ð ;ˆDÜ  Ó&Ð&ùò! Ks   Ë12Oc           	      ó6  ^!• [        U5      n[        X0R                  5        U R                  UR                  5      U l        U R                  R                  cT  [        R                  " U R
                   Vs/ s H  oDPM     sn5      U l	        U R                  R                  S   U l        OþU R
                   Vs/ s H  o@R                  R                  U   PM     snU l	        [        U R                  5      U l        U R                  R                  m!U R                  (       a…  [        U!4S jU R
                   5       5      (       aa  [        R                  " U R                  5      U l	        U R                  R                  S   S:X  a  U R                  R                  5       U l	        U R                  (       a*  U R                   R#                  UR%                  5       5      nO%U R                   R#                  UR                  5      n['        U[(        R*                  [(        R,                  45      (       a  UR.                  nO"[1        US5      (       a  U R3                  U5      nUS   U l        U R6                  (       d&  [        R                  " U R4                  /5      U l        U R                  S:X  an  [        R8                  " U R                  R:                  U R<                  45      n[        R8                  " U R                  R:                  U R<                  45      nGO§U R                  S:X  aê  [        R8                  " U R                  R:                  U R<                  45      n[        R8                  " U R                  R:                  U R<                  45      nU R>                  R#                  U R4                  5      U R>                  R#                  U R@                  5      -
  n[C        U R<                  5       H  n	X‰   X`R
                  S   U	4'   M     GO­URE                  SS5      U l#        URE                  SS5      U l$        U RH                  S:X  a  S	U R                  -  S
-   U l$        SU l%        U R                  S::  aB  S	U R                  -  S	-
  U l%        U RH                  U RJ                  :”  a  U RJ                  U l$        U RM                  5         [O        [        RP                  " U R                  S-
  S-  5      5      n
[O        [        RR                  " U R                  S-
  S-  5      5      n[        R                  " [C        SU
S-   5       Vs/ s H#  o@R                  S-
  X@R                  U-
  -  -  PM%     sn5      nUS U=== S	-  sss& U[        RT                  " U5      -  n[V        RY                  SU< 35        [V        RY                  SU
< 35        [V        RY                  SU< 35        [V        RY                  SU R                  < 35        SnU RH                  n[        RZ                  " U R                  SS9n[        R8                  " U R                  5      n[\        R\                  " U5      n[C        SU
S-   5       GH—  n[_        U R                  U5      nUU::  a  US	-  n[V        RY                  SU< 35        [V        RY                  SU< 35        [V        RY                  SUUUS-
     -   35        [V        RY                  SUUUS-
     -  U-   35        UUUS-
     -  U-  S:¼  aê  US-  nUU-  nUUS-
     S:  a  USUUS-
     -
  -  nUUS-
     [_        U R                  U5      -  nUU::  a  US-  n[`        Rb                  " UU5       H~  nSUS S & SU[        R                  " USS9'   U Re                  UR                  UU5        UU::  d  ME  [        Rf                  " US-
  5      US S & U Re                  UR                  UU5        M€     GM˜    O   [V        Ri                  SU< 35        U Rj                  nU RH                  U Rj                  -
  n[V        RY                  SU< 35        XÚ:w  Ga[  [\        R\                  " U5      nUS U=== S	-  sss& UUS  nU[        RT                  " U5      -  n[V        Ri                  SU< 35        [V        Ri                  SU< 35        [        Rl                  Ro                  [        U5      SU-  US9nSn0 nUS:”  GaJ  U[        U5      :  Ga:  URq                  S5        UU   nUS-  nUU-   S-   nSU[        Rl                  Rs                  U R                  5      S U '   [u        U5      nS nUU;  a4  S!nU Rj                  UU'   US-  nU Re                  UR                  US5        OU Rv                  UU   ==   S-  ss'   US:”  ai  UU::  ac  [        Rf                  " US-
  5      US S & U(       a#  US-  nU Re                  UR                  US5        OU Rv                  UU   S-   ==   S-  ss'   US:”  a  U[        U5      :  a  GM:  [        RT                  " XÍS  5      n[V        Ri                  S"U< 35        U Rv                  US === UU Rv                  US  RU                  5       -  -  sss& U Ry                  5         [        R8                  " U R                  R:                  U R<                  45      n[        R8                  " U R                  R:                  U R<                  45      n[C        U R<                  5       HO  n	U R{                  U RH                  U RJ                  -  U	5      u  nn UX`R
                  U	4'   U XpR
                  U	4'   MQ     U R6                  (       d*  [        R|                  " USS#9n[        R|                  " USS#9nU$ s  snf s  snf s  snf )$Nr   c              3   ó^   >#   • U  H"  n[        TU   5      [        TS    5      :H  v •  M$     g7f)r   N)r0   )Ú.0r”   Úgroupss     €rP   Ú	<genexpr>Ú*KernelExplainer.explain.<locals>.<genexpr><  s)   øé € Ð0lÒ[kÐVW´°V¸A±Y³Ä3ÀvÈaÁyÃ>Ö1QÒ[kùs   ƒ*-r   r#   rc   únum_features(10)ÚnsamplesÚautor   i   i   @é   g       @ç      ð?zweight_vector = znum_subset_sizes = znum_paired_subset_sizes = z	self.M = Úint64©Údtypezsubset_size = znsubsets = z-self.nsamples*weight_vector[subset_size-1] = z6self.nsamples*weight_vector[subset_size-1]/nsubsets = gGœ¡úÿÿï?g        znum_full_subsets = zsamples_left = zremaining_weight_vector = é   )ÚpFTzweight_left = rf   )?r   r   r-   Úvarying_groupsÚxÚvaryingIndsr›   r8   rH   ÚvaryingFeatureGroupsr5   ÚMr0   ÚallÚflattenr    r,   r:   Úconvert_to_dfr%   r&   r'   r>   r@   r   rB   ÚfxrG   r†   Úgroups_sizerI   r*   rE   r‡   r+   rc   rŸ   Úmax_samplesÚallocateÚintÚceilÚfloorrC   r2   ÚdebugÚarangeÚcopyr   Ú	itertoolsÚcombinationsÚ	addsampleÚabsÚinfor<   ÚrandomÚchoiceÚfillÚpermutationÚtupleÚkernelWeightsr[   Úsolver?   )"rK   Úincoming_instancerM   Úinstancer”   Ú	model_outÚphiÚphi_varÚdiffÚdÚnum_subset_sizesÚnum_paired_subset_sizesÚweight_vectorÚnum_full_subsetsÚnum_samples_leftÚ
group_indsÚmaskÚremaining_weight_vectorÚsubset_sizeÚnsubsetsÚwÚindsÚnfixed_samplesÚsamples_leftÚind_setÚind_set_posÚ
used_masksÚindÚ
mask_tupleÚ
new_sampleÚweight_leftÚvphiÚvphi_varr›   s"                                    @rP   r…   ÚKernelExplainer.explain,  s%
  ø€ ä&Ð'8Ó9ˆÜ˜x¯©Ô3ð  ×.Ñ.¨x¯z©zÓ:ˆÔØ�9‰9×ÑÑ#Ü(*¯ª¸T×=MÒ=MÓ1NÒ=M¸²!Ñ=MÑ1NÓ(OˆDÔ%Ø×.Ñ.×4Ñ4°QÑ7ˆD�FàFJ×FVÒFVÓ(WÒFVÀ¯©×)9Ñ)9¸!Ô)<ÑFVÑ(WˆDÔ%Ü˜×2Ñ2Ó3ˆDŒFØ—Y‘Y×%Ñ%ˆFà×(×(¬SÔ0lÐ[_×[kÒ[kÓ0l×-lÑ-lÜ,.¯HªH°T×5NÑ5NÓ,O�Ô)à×,Ñ,×2Ñ2°1Ñ5¸Ó:Ø04×0IÑ0I×0QÑ0QÓ0S�DÔ-ð �?�?ØŸ
™
Ÿ™ X×%;Ñ%;Ó%=Ó>‰IàŸ
™
Ÿ™ X§Z¡ZÓ0ˆIÜ�i¤"§,¡,´·	±	Ð!:×;Ñ;Ø!×(Ñ(‰IÜ˜YÐ(X×YÑYØ×5Ñ5°iÓ@ˆIØ˜A‘,ˆŒà��Ü—h’h §¡˜yÓ)ˆDŒGð �6‰6�Q‹;Ü—(’(˜DŸI™I×1Ñ1°4·6±6Ð:Ó;ˆCÜ—h’h §	¡	× 5Ñ 5°t·v±vÐ>Ó?ŠGð �V‰V�q‹[Ü—(’(˜DŸI™I×1Ñ1°4·6±6Ð:Ó;ˆCÜ—h’h §	¡	× 5Ñ 5°t·v±vÐ>Ó?ˆGØ—9‘9—;‘;˜tŸw™wÓ'¨$¯)©)¯+©+°d·j±jÓ*AÑAˆDÜ˜4Ÿ6™6–]�Ø.2©g�×$Ñ$ QÑ'¨Ð*Ó+ó #ð
 !Ÿ*™* XÐ/AÓBˆDŒKð #ŸJ™J z°6Ó:ˆDŒMØ�}‰} Ó&Ø ! D§F¡F¡
¨UÑ 2�”ð  %ˆDÔØ�v‰v˜‹|Ø#$ d§f¡f¡9¨q¡=�Ô Ø—=‘= 4×#3Ñ#3Ó3Ø$(×$4Ñ$4�D”Mð �M‰MŒOô  #¤2§7¢7¨D¯F©F°Q©J¸#Ñ+=Ó#>Ó?ÐÜ&)¬"¯(ª(°D·F±F¸Q±JÀ#Ñ3EÓ*FÓ&GÐ#ÜŸHšHÔSXÐYZÐ\lÐopÑ\pÔSqÓ%rÒSqÈa§v¡v°¡|¸¿V¹VÀa¹ZÑ8HÔ&IÑSqÑ%rÓsˆMØÐ2Ð2Ó3°qÑ8Ó3ØœRŸVšV MÓ2Ñ2ˆMÜ�I‰IÐ)˜Ñ*Ð+Ô,Ü�I‰IÐ,Ð)Ñ-Ð.Ô/Ü�I‰IÐ3Ð0Ñ4Ð5Ô6Ü�I‰I˜˜Ÿ™™�nÔ%ð  !ÐØ#Ÿ}™}ÐÜŸš 4§6¡6°Ñ9ˆJÜ—8’8˜DŸF™FÓ#ˆDÜ&*§i¢i°Ó&>Ð#Ü$ QÐ(8¸1Ñ(<×=�ä  §¡¨Ó5�ØÐ"9Ó9Ø ‘M�HÜ—	‘	˜^˜[Ñ,Ð-Ô.Ü—	‘	˜[˜X™MÐ*Ô+Ü—	‘	ØCØ'Ð*AÀ+ÐPQÁ/Ñ*RÑRÐSðUôô —	‘	ØLØ'Ð*AÀ+ÐPQÁ/Ñ*RÑRÐU]Ñ]Ð^ð`ôð $Ð&=¸kÈA¹oÑ&NÑNÐQYÑYÐ]gÓgØ$¨Ñ)Ð$Ø$¨Ñ0Ð$ð /¨{¸Q©Ñ?À#ÓEØ/°1Ð7NÈ{Ð]^ÉÑ7_Ñ3_Ñ_Ð/ð & k°A¡oÑ6¼¸t¿v¹vÀ{Ó9SÑS�AØ"Ð&=Ó=Ø˜S™˜Ü )× 6Ò 6°zÀ;Ö O˜Ø"%˜™Q˜Ø>A˜œRŸXšX d°'Ñ:Ñ;ØŸ™ x§z¡z°4¸Ô;Ø&Ð*AÕAÜ&(§f¢f¨T°A©XÓ&6˜D¡˜GØ ŸN™N¨8¯:©:°t¸QÖ?ô !Pñ ñK  >ôL �H‰HÐ+Ð(Ñ,Ð-Ô.ð "×/Ñ/ˆNØŸ=™=¨4×+=Ñ+=Ñ=ˆLÜ�I‰I˜˜Ñ)Ð*Ô+ØÔ3Ü*.¯)ª)°MÓ*BÐ'Ø'Ð(@Ð)@ÓAÀQÑFÓAØ*AÐBRÐBSÐ*TÐ'Ø'¬2¯6ª6Ð2IÓ+JÑJÐ'Ü—‘Ð6Ð3Ñ7Ð8Ô9Ü—‘Ð6Ð3Ñ7Ð8Ô9ÜŸ)™)×*Ñ*¬3Ð/FÓ+GÈÈ\ÑIYÐ]tÐ*Ðu�Ø�Ø�
Ø" QÔ&¨;¼¸W»Ô+EØ—I‘I˜c”NØ! +Ñ.�CØ 1Ñ$�KØ"%Ð(8Ñ"8¸1Ñ"<�KØHK�DœŸ™×.Ñ.¨t¯v©vÓ6°|¸ÐDÑEô "' t£�JØ!&�JØ!¨Ó3Ø%)˜
Ø15×1CÑ1C˜
 :Ñ.Ø$¨Ñ)˜ØŸ™ x§z¡z°4¸Õ=à×*Ñ*¨:°jÑ+AÓBÀcÑIÓBð $ aÓ'¨KÐ;RÓ,RÜ"$§&¢&¨°©Ó"2˜™Q˜ö &Ø(¨AÑ-˜LØ ŸN™N¨8¯:©:°t¸SÕAð !×.Ñ.¨z¸*Ñ/EÈÑ/IÓJÈcÑQÓJð= # QÓ&¨;¼¸W»Ö+EôD !Ÿfšf ]Ð3DÐ%EÓF�Ü—‘˜N˜KÑ+Ð,Ô-Ø×"Ñ" > ?Ó3°{ÀT×EWÑEWÐXfÐXgÐEh×ElÑElÓEnÑ7nÑnÓ3ð �H‰HŒJô —(’(˜DŸI™I×1Ñ1°4·6±6Ð:Ó;ˆCÜ—h’h §	¡	× 5Ñ 5°t·v±vÐ>Ó?ˆGÜ˜4Ÿ6™6–]�Ø!%§¡¨D¯M©M¸D×<LÑ<LÑ,LÈaÓ!P‘��hØ+/�×$Ñ$ aÐ'Ñ(Ø/7�×(Ñ(¨!Ð+Ó,ñ #ð
 ��Ü—*’*˜S qÑ)ˆCÜ—j’j ¨qÑ1ˆGàˆ
ùòq 2Oùò )Xùòv &ss   Á7pÂ;"pÕ*pc                 óR  • [         [        [        R                  4n[	        X5      (       a.  [	        X5      (       a  [        R
                  " XSS9(       a  S$ S$ [        U S5      (       Ga4  [        US5      (       Ga"  [        R                  " U R                  [        R                  5      (       aR  [        R                  " UR                  [        R                  5      (       a  [        R
                  " XSS9(       a  S$ S$ [        R                  " U R                  [        R                  5      (       aR  [        R                  " UR                  [        R                  5      (       a  [        R
                  " XSS9(       a  S$ S$ [        X:H  5      (       a  S$ S$ X:X  a  S$ S$ )NT)Ú	equal_nanr   r   r¥   )r´   rJ   r8   Únumberr%   Úallclosero   Ú
issubdtyper¥   Úbool_r­   )r”   r•   Únumber_typess      rP   Ú	not_equalÚKernelExplainer.not_equalï  s  € äœU¤B§I¡IÐ.ˆÜ�a×&Ñ&¬:°a×+FÑ+FÜŸš A°D×9�1Ð@¸qÐ@Ü�Q˜× Ò ¤W¨Q°×%8Ò%8Ü�}Š}˜QŸW™W¤b§i¡i×0Ñ0´R·]²]À1Ç7Á7ÌBÏIÉI×5VÑ5VÜŸKšK¨¸×=�qÐDÀ1ÐDÜ�}Š}˜QŸW™W¤b§h¡h×/Ñ/´B·M²MÀ!Ç'Á'Ì2Ï8É8×4TÑ4TÜŸKšK¨¸×=�qÐDÀ1ÐDÜ˜A™FŸ™�1Ð*¨Ð*à›�1Ð% AÐ%rS   c           	      óâ  ^• [         R                  R                  T5      (       Gd  [        R                  " U R
                  R                  5      n[        U R
                  R                  5       H¥  nU R
                  R                  U   nTSU4   n[         R                  R                  U5      (       a0  [        U4S jU 5       5      (       a  SX#'   Mg  UR                  5       nU R                  XPR
                  R
                  S S 2U4   5      X#'   M§     [        R                  " U5      S   nU$ / n[        R                  " [        R                  " U R
                  R
                  R                  5       S   TR                  5       S   5      5      n/ n[        [        U5      5       GH  nXc   nU R
                  R
                  S S 2U/4   n	U	R                  5       S   n
U
R                   S:”  d  MK  Xš   n[         R                  R                  U5      (       a  UR#                  5       n[        R$                  " [        R&                  " UTSU4   -
  5      S:„  5      nUS:X  d  MÀ  [        R&                  " TSU/4   S   5      S:”  a  [        U
5      U	R(                  S   :  a  GM  UR+                  U5        GM     [        R,                  " [        U5      [.        S9nSX×'   Xm   nU$ )Nr   c              3   óN   >#   • U  H  oTR                  5       S    ;  v •  M     g7f)r   N)Únonzero)rš   r•   r©   s     €rP   rœ   Ú1KernelExplainer.varying_groups.<locals>.<genexpr>  s   øé € ÐAºD°q A§I¡I£K°¡NÖ2ºDùs   ƒ"%Fr   gH¯¼šò×z>)r   r   r¤   )r~   r   r€   r8   r†   r-   r±   r‡   r›   r­   Útodenserì   rð   ÚuniqueÚunion1dr0   ÚsizeÚtoarrayrC   r½   r5   rˆ   ÚonesÚbool)rK   r©   Úvaryingr”   rØ   Úx_groupÚvarying_indicesÚremove_unvarying_indicesÚvarying_indexÚ	data_rowsÚnonzero_rowsÚbackground_data_rowsÚnum_mismatchesrÓ   s    `            rP   r¨   ÚKernelExplainer.varying_groupsý  s]  ø€ Ü�|‰|×$Ñ$ Q×'Ò'Ü—h’h˜tŸy™y×4Ñ4Ó5ˆGÜ˜4Ÿ9™9×0Ñ0Ö1�Ø—y‘y×'Ñ'¨Ñ*�Ø˜A˜t˜G™*�Ü—<‘<×(Ñ(¨×1Ñ1ÜÔA¹DÓA×AÑAØ%*˜™
Ù Ø%Ÿo™oÓ/�GØ!Ÿ^™^¨G·Y±Y·^±^ÂAÀtÀGÑ5LÓM�“
ñ 2ô !Ÿjšj¨Ó1°!Ñ4ˆOØ"Ð"à ˆOô !Ÿiši¬¯
ª
°4·9±9·>±>×3IÑ3IÓ3KÈAÑ3NÐPQ×PYÑPYÓP[Ð\]ÑP^Ó(_Ó`ˆOØ')Ð$Üœ3˜Ó/×0�Ø /Ñ 2�à ŸI™IŸN™Nª1¨}¨oÐ+=Ñ>�	Ø(×0Ñ0Ó2°1Ñ5�à×$Ñ$ qÕ(Ø+4Ñ+BÐ(Ü—|‘|×,Ñ,Ð-A×BÑBØ/C×/KÑ/KÓ/MÐ,Ü%'§V¢V¬B¯FªFÐ3GÈ!ÈAÈ}ÐL\ÑJ]Ñ3]Ó,^ÐaeÑ,eÓ%f�Nà%¨Õ*ÜŸš˜q  ] OÐ!3Ñ4°TÑ:Ó;¸dÓBÄsÈ<ÓGXÐ[d×[jÑ[jÐklÑ[mÖGmà0×7Ñ7¸×:ñ 1ô  —7’7œ3˜Ó/´tÑ<ˆDØ-2ˆDÑ*Ø-Ñ3ˆOØ"Ð"rS   c                 ó€  • [         R                  R                  U R                  R                  5      (       Ga  U R                  R                  R                  nU R                  R                  R
                  nUu  p4X0R                  -  nXT4nUS:X  aP  [         R                  R                  XR                  R                  R                  S9R                  5       U l
        GO–U R                  R                  R                  nU R                  R                  R                  nU R                  R                  R                  nU[        U5      S-
     n	US S n
/ n[        U R                  S-
  5       H  nUR                  X¬U	-  -   5        M     UR                  X€R                  S-
  U	-  -   5        [         R"                  " U5      n[         R$                  " X`R                  5      n[         R$                  " XpR                  5      n[         R                  R                  XïU4US9R                  5       U l
        O<[         R$                  " U R                  R                  U R                  S45      U l
        [         R&                  " U R                  U R(                  45      U l        [         R&                  " U R                  5      U l        [         R&                  " U R                  U R.                  -  U R0                  45      U l        [         R&                  " U R                  U R0                  45      U l        [         R&                  " U R                  5      U l        SU l        SU l        U R<                  (       a;  [         R$                  " U R                  R>                  U R                  5      U l         g g )Nr   r¤   r   re   )r5   )!r~   r   r€   r-   r5   ÚnnzrŸ   Ú
csr_matrixr¥   r‚   Ú
synth_dataÚindicesÚindptrr0   r‡   rˆ   r8   Úconcatenaterp   r†   r¬   Ú
maskMatrixrÄ   r6   rI   ÚyÚeyÚlastMaskr<   r=   r    r‹   Úsynth_data_index)rK   r5   r  rþ   Ú	data_colsÚrowsr-   r  r  Úlast_indptr_idxÚindptr_wo_lastÚnew_indptrsr”   Ú
new_indptrÚnew_dataÚnew_indicess                   rP   r³   ÚKernelExplainer.allocate&  s‡  € Ü�<‰<× Ñ  §¡§¡×0Ò0ð —I‘I—N‘N×(Ñ(ˆEØ—)‘)—.‘.×$Ñ$ˆCØ#(Ñ ˆIØŸ}™}Ñ,ˆDØ�OˆEØ�a‹xÜ"'§,¡,×"9Ñ"9¸%ÇyÁyÇ~Á~×G[ÑG[Ð"9Ð"\×"bÑ"bÓ"d�–à—y‘y—~‘~×*Ñ*�ØŸ)™)Ÿ.™.×0Ñ0�ØŸ™Ÿ™×.Ñ.�Ø"(¬¨V«°q©Ñ"9�Ø!'¨¨ �Ø �Ü˜tŸ}™}¨qÑ0Ö1�AØ×&Ñ& ~¸_Ñ9LÑ'MÖNñ 2à×"Ñ" 6¯m©m¸aÑ.?À?Ñ-RÑ#SÔTÜŸ^š^¨KÓ8�
ÜŸ7š7 4¯©Ó7�Ü Ÿgšg g¯}©}Ó=�Ü"'§,¡,×"9Ñ"9¸8ÐR\Ð:]ÐejÐ"9Ð"k×"qÑ"qÓ"s�•ä Ÿgšg d§i¡i§n¡n°t·}±}ÀaÐ6HÓIˆDŒOäŸ(š( D§M¡M°4·6±6Ð#:Ó;ˆŒÜŸXšX d§m¡mÓ4ˆÔÜ—’˜4Ÿ=™=¨4¯6©6Ñ1°4·6±6Ð:Ó;ˆŒÜ—(’(˜DŸM™M¨4¯6©6Ð2Ó3ˆŒÜŸš §¡Ó/ˆŒØˆÔØˆÔØ�?�?Ü$&§G¢G¨D¯I©I×,AÑ,AÀ4Ç=Á=Ó$QˆDÕ!ð rS   c                 óŽ  • U R                   U R                  -  n[        U R                  [        45      (       aa  [        U R                  5       HG  nU R                  U    H1  nX%   S:X  d  M  USU4   U R                  XDU R                  -   2U4'   M3     MI     OâUS:H  nU R                  U   n[        UR                  5      S:X  a.  U H'  n	USU	4   U R                  XDU R                  -   2U	4'   M)     O‡USU4   n
[        R                  R                  U5      (       a>  [        R                  R                  U R                  5      (       d  U
R                  5       n
X R                  XDU R                  -   2U4'   X R                  U R                   S S 24'   X0R                  U R                   '   U =R                   S-  sl         g )Nr¢   r   r   r   )r<   r6   r%   r«   r(   r‡   r¬   r  r0   r5   r~   r   r€   rö   r
  rÄ   )rK   r©   Úmr×   Úoffsetr•   ÚkrÓ   r›   ÚgroupÚevaluation_datas              rP   r¼   ÚKernelExplainer.addsampleL  s�  € Ø×#Ñ# d§f¡fÑ,ˆÜ�d×/Ñ/´$°×9Ñ9Ü˜4Ÿ6™6–]�Ø×2Ñ2°1Ô5�AØ‘t˜s•{ØGHÈÈAÈÁw˜Ÿ™¨¸$¿&¹&±Ð(@À!Ð(CÓDó 6ò #ð ˜‘8ˆDØ×.Ñ.¨tÑ4ˆFÜ�6—<‘<Ó  AÓ%Û#�EØGHÈÈEÈÁ{�D—O‘O F°d·f±f©_Ð$<¸eÐ$CÓDò $ð #$ A v I¡,�ô —<‘<×(Ñ(¨×+Ñ+´E·L±L×4IÑ4IÈ$Ï/É/×4ZÑ4ZØ&5×&=Ñ&=Ó&?�OØDS—‘ °$·&±&©Ð 8¸&Ð @ÑAØ12�‰˜×*Ñ*ªAÐ-Ñ.Ø12×Ñ˜4×-Ñ-Ñ.Ø×Ò˜aÑÖrS   c           	      óv  • U R                   U R                  -  U R                  U R                  -  -
  nU R                  U R                  U R                  -  U R                   U R                  -  2S S 24   nU R                  (       aè  U R
                  U R                  U R                  -  U R                   U R                  -   n[        R                  " X0R                  R                  /S9n[        R                  " X R                  R                  S9n[        R                  " X2/SS9R                  U R                  R                  5      nU R                  (       a  UR                  5       nU R                  R!                  U5      n[#        U[        R                  [        R$                  45      (       a  UR&                  nO"[)        US5      (       a  U R+                  U5      n[,        R.                  " XAU R0                  45      U R2                  U R                  U R                  -  U R                   U R                  -  2S S 24'   [5        U R                  U R                   U R0                  U R                  U R                  R6                  U R2                  U R8                  5      u  U l        U l        g )N)r)   r   rf   r#   )r<   r6   r=   r  r    r  r&   r'   r-   rŒ   Úgroup_namesÚconcatÚ	set_indexr!   Ú
sort_indexr,   r:   r%   r>   r@   r   rB   r8   r„   rI   r  r   r1   r  )rK   Ú
num_to_runr-   r{   ÚmodelOuts        rP   r[   ÚKernelExplainer.runf  sý  € Ø×'Ñ'¨$¯&©&Ñ0°4×3CÑ3CÀdÇfÁfÑ3LÑLˆ
Ø�‰˜t×/Ñ/°$·&±&Ñ8¸4×;MÑ;MÐPT×PVÑPVÑ;VÐVÒXYÐYÑZˆØ�?�?Ø×)Ñ)¨$×*:Ñ*:¸T¿V¹VÑ*CÀd×FXÑFXÐ[_×[aÑ[aÑFaÐbˆEÜ—L’L ·±×1EÑ1EÐ0FÑGˆEÜ—<’< ¯i©i×.CÑ.CÑDˆDÜ—9’9˜e˜]°Ñ3×=Ñ=¸d¿i¹i×>RÑ>RÓSˆDØ×&×&Ø—‘Ó(�Ø—:‘:—<‘< Ó%ˆÜ�h¤§¡¬r¯y©yÐ 9×:Ñ:Ø—‘‰HÜ˜XÐ'W×XÑXØ×4Ñ4°XÓ>ˆHäMOÏZÊZÐX`Ðos×ouÑouÐbvÓMwˆ�‰ˆt×Ñ $§&¡&Ñ(¨4×+=Ñ+=ÀÇÁÑ+FÐFÊÐIÑJô %-Ø×Ñ˜d×0Ñ0°$·&±&¸$¿&¹&À$Ç)Á)×BSÑBSÐUY×U[ÑU[Ð]a×]dÑ]dó%
Ñ!ˆŒ�Õ!rS   c           
      óî  • U R                  U R                  S S 2U4   5      U R                  R                  U R                  U   5      -
  n[
        R                  " U R                  S5      n[
        R                  " U R                  5      n[        R                  SU< 35        U R                  S:X  a  [        R                  " S[        5        U R                  S;  d  US:  Ga  U R                  S:X  Gaü  [
        R                   " U R"                  U R                  U-
  -  U R"                  U-  45      n[        R%                  S[
        R                  " U5      < 35        [        R%                  S[
        R                  " U R"                  5      < 35        [
        R&                  " U5      n[
        R                   " X3U R                  R                  U R(                  U   5      U R                  R                  U R                  U   5      -
  -
  45      nX‡-  n[
        R*                  " U[
        R*                  " [
        R,                  " U R                  U R                  S-
  45      5      -  5      n	[/        U R                  [0        5      (       aP  U R                  R3                  S	5      (       a0  [5        U R                  [7        S	5      S
 5      n
[9        X˜U
S9S   nGOU R                  S;   aº  U R                  S:X  a  SOU R                  n[:        R<                  " [>        R@                  5      [:        R<                  " S5      :  a
  [C        SS9nO0 n[E        [G        SS9[I        S!SU0UD65      n[
        RJ                  " URM                  X˜5      S   RN                  5      S   nOC[
        RJ                  " [Q        U R                  S9RM                  X˜5      RN                  5      S   n[7        U5      S:X  a@  [
        RR                  " U R                  5      [
        RT                  " U R                  5      4$ X0R                  S S 2US
   4   U R                  R                  U R(                  U   5      U R                  R                  U R                  U   5      -
  -  -
  n[
        R*                  " [
        R*                  " U R                  S S 2US S
 4   5      U R                  S S 2US
   4   -
  5      n[        R                  SUS S2S S 24   < 35        [
        RV                  " U5      nUnU R"                  S S 2S 4   U-  n [
        RX                  R[                  UR\                  U-  UR\                  U-  5      n[        R                  S[
        R                  " U5      < 35        [        R                  SU R                  R                  U R(                  U   5      U R                  R                  U R                  U   5      -
   35        [        R                  SU R(                  U    35        [        R                  SU R                  R                  U R(                  U   5       35        [        R                  SU R                  U    35        [        R                  SU R                  R                  U R                  U   5       35        [
        RR                  " U R                  5      nUUUS S
 '   U R                  R                  U R(                  U   5      U R                  R                  U R                  U   5      -
  [        U5      -
  UUS
   '   [        R%                  SU< 35        [c        U R                  5       H'  n[
        Rd                  " UU   5      S :  d  M"  SUU'   M)     U[
        RT                  " [7        U5      5      4$ ! [
        RX                  R^                   ai    [        R                  " S5        [
        R&                  " U R"                  5      n[
        RX                  Ra                  US S 2S 4   U-  UU-  S S9S   n GNåf = f)"Nr   zfraction_evaluated = r    zDl1_reg='auto' is deprecated and will be removed in a future version.)r    Fr   gš™™™™™É?znp.sum(w_aug) = znp.sum(self.kernelWeights) = znum_features(re   )Úmax_iter)r    ÚbicÚaicr*  z1.2.0F)Ú	normalize)Ú	with_meanÚ	criterionr   )Úalphazetmp[:4, :] = r¦   au  Linear regression equation is singular, a least squares solutions is used instead.
To avoid this situation and get a regular matrix do one of the following:
1) turn up the number of samples,
2) turn up the L1 regularization with num_features(N) where N is less than the number of samples,
3) group features together to reduce the number of inputs that need to be explained.)Úrcondznp.sum(w) = z-self.link(self.fx) - self.link(self.fnull) = z
self.fx = zself.link(self.fx) = zself.fnull = zself.link(self.fnull) = zphi = g»½×Ùß|Û=© )3r;   r  r*   r:   rE   r8   rC   r
  r¸   r¬   r2   r·   rc   ÚwarningsÚwarnÚDeprecationWarningÚhstackrÄ   r¾   Úsqrtr°   Ú	transposeÚvstackr%   r4   Ú
startswithr´   r0   r   r   ÚparseÚsklearnrW   Údictr	   r
   r   rð   ÚfitÚcoef_r   r†   r÷   ÚasarrayÚlinalgrÅ   rD   ÚLinAlgErrorÚlstsqr‡   r½   )rK   Úfraction_evaluatedÚdimÚeyAdjr‘   Únonzero_indsÚw_augÚ
w_sqrt_augÚ	eyAdj_augÚmask_augÚrÚcÚkwgr,   ÚeyAdj2Úetmpr  rr   ÚWXr×   Úsqrt_WrÉ   r”   s                          rP   rÅ   ÚKernelExplainer.solve}  se  € Ø—‘˜DŸG™G¢A s F™OÓ,¨t¯y©y¯{©{¸4¿:¹:Àc¹?Ó/KÑKˆÜ�FŠF�4—?‘? AÓ&ˆô —y’y §¡Ó(ˆÜ�	‰	Ð*Ð'Ñ+Ð,Ô-Ø�;‰;˜&Ó Ü�MŠMÐ`ÔbtÔuØ�K‰KÐ1Ó1Ð7IÈCÔ7OÐTX×T_ÑT_ÐciÔTiÜ—I’I˜t×1Ñ1°T·V±V¸a±ZÑ@À$×BTÑBTÐWXÑBXÐYÓZˆEÜ�H‰HÐ(œŸš˜u›Ñ)Ð*Ô+Ü�H‰HÐ5œŸš˜t×1Ñ1Ó2Ñ6Ð7Ô8ÜŸš ›ˆJÜŸ	š	 5°4·9±9·;±;¸t¿w¹wÀs¹|Ó3LÈtÏyÉyÏ{É{Ð[_×[eÑ[eÐfiÑ[jÓOkÑ3kÑ*lÐ"mÓnˆIØÑ#ˆIÜ—|’| J´·²¼b¿iºiÈÏÉÐZ^×ZiÑZiÐlmÑZmÐHnÓ>oÓ1pÑ$pÓqˆHô ˜$Ÿ+™+¤s×+Ñ+°·±×0FÑ0FÀ×0WÑ0WÜ˜Ÿ™¤C¨Ó$8¸2Ð>Ó?�Ü(¨ÀqÑIÈ!ÑL’ð —‘Ð 6Ó6Ø!Ÿ[™[¨FÓ2‘E¸¿¹�ô —=’=¤×!4Ñ!4Ó5¼¿ºÀgÓ8NÓNÜ¨Ñ/‘Cà�CÜ%¤n¸uÑ&EÄ{ÑGfÐ]^ÐGfÐbeÑGfÓg�Ü!Ÿzšz¨%¯)©)°HÓ*HÈÑ*K×*QÑ*QÓRÐSTÑU‘ô  "Ÿzšz¬%°d·k±kÑ*B×*FÑ*FÀxÓ*[×*aÑ*aÓbÐcdÑe�äˆ|Ó Ó!Ü—8’8˜DŸF™FÓ#¤R§W¢W¨T¯V©V£_Ð4Ð4ð Ÿ™ª¨L¸Ñ,<Ð)<Ñ=Ø�I‰I�K‰K˜Ÿ™ ™Ó%¨¯	©	¯©°D·J±J¸s±OÓ(DÑDñ
ñ 
ˆô �|Š|œBŸLšL¨¯©º¸LÈÈ"Ð<MÐ9MÑ)NÓOÐRV×RaÑRaÒbcÐeqÐrtÑeuÐbuÑRvÑvÓwˆÜ�	‰	�^�T˜"˜1˜"ša˜%‘[Ñ$Ð%Ô&ô" �JŠJ�vÓˆØˆØ×Ñ¢ 4 Ñ(¨1Ñ,ˆð	PÜ—	‘	—‘ §¡ b¡¨"¯$©$°©(Ó3ˆAô 	�	‰	�\”R—V’V˜A“Y‘NÐ#Ô$Ü�	‰	Ø;¸D¿I¹I¿K¹KÈÏÉÐPSÉÓ<UÐX\×XaÑXa×XcÑXcÐdh×dnÑdnÐorÑdsÓXtÑ<tÐ;uÐvô	
ô 	�	‰	�J˜tŸw™w s™|˜nÐ-Ô.Ü�	‰	Ð)¨$¯)©)¯+©+°d·g±g¸c±lÓ*CÐ)DÐEÔFÜ�	‰	�M $§*¡*¨S¡/Ð!2Ð3Ô4Ü�	‰	Ð,¨T¯Y©Y¯[©[¸¿¹ÀC¹Ó-IÐ,JÐKÔLÜ�hŠh�t—v‘vÓˆØ!"ˆˆL˜˜"ÐÑØ!%§¡§¡¨T¯W©W°S©\Ó!:¸T¿Y¹Y¿[¹[ÈÏÉÐTWÉÓ=YÑ!YÔ]`ÐabÓ]cÑ cˆˆL˜ÑÑÜ�‰�F�C‘8�Ôô �t—v‘v–ˆAÜ�vŠv�c˜!‘f‹~ Õ%Ø��A“ñ ð ”B—G’GœC ›HÓ%Ð%Ð%øô= �y‰y×$Ñ$ó 	PÜ�MŠMðgôô —W’W˜T×/Ñ/Ó0ˆFÜ—	‘	—‘ ¢q¨$ w¡°!Ñ 3°V¸a±ZÀt�ÐLÈQÑO‹Að	Pús   Õ:_- ß-Ba4á3a4)rI   r¬   r6   r7   r-   r$   rF   r  rE   r°   r    r!   rÄ   rc   r  r*   r;   r
  r²   r,   rŸ   r<   r=   r  r  r«   rª   rG   r  )NÚidentity)rž   F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rQ   Ústaticmethodr8   ÚndarrayrB   rv   rm   r…   rì   r¨   r³   r¼   r[   rÅ   Ú__static_attributes__r0  rS   rP   r   r   '   sq   † ñ+ôZ9)ðv ð"°R·Z±Zó "ó ð"ô
ò4q'òfAðF ñ&ó ð&ò'#òR$RòL ò4
õ.d&rS   r   )2r¹   r‰   rº   Úloggingrk   r1  rA   r8   Úpandasr&   Úscipy.sparser~   r:  Ú_kernel_libr   Ú	packagingr   Úscipy.specialr   Úsklearn.linear_modelr   r   r   Úsklearn.pipeliner	   Úsklearn.preprocessingr
   Ú	tqdm.autor   Ú_explanationr   Úutilsr   Úutils._exceptionsr   Úutils._legacyr   r   r   r   r   r   r   r   r   Ú
_explainerr   Ú	getLoggerr2   r   r0  rS   rP   Ú<module>rk     sv   ðÛ Û 	Û Û Û Û ã Û Û Û Ý  Ý Ý ß >Ñ >Ý *Ý 0Ý å &Ý #Ý .÷
÷ 
õ 
õ "à×Ò˜Ó€ôz
&�iõ z
&rS   