ó
    †ñ:iŸ  ã                   ó¶   • S SK rS SKrSSKJrJrJrJrJrJ	r	J
r
  SSKJr  SSKJr  S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rg)é    Né   )ÚDeepExplainerÚGradientExplainerÚKernelExplainerÚLinearExplainerÚSamplingExplainerÚTreeExplainerÚkmeans)Úotheré   )Ú	KerasWrapc                 ó,   • [        XSSS9R                  $ )zLinear SHAP (corr 1000)Úcorrelation_dependentéè  )Úfeature_perturbationÚnsamples©r   Úshap_values©ÚmodelÚdatas     ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/benchmark/methods.pyÚlinear_shap_corrr      s   € ä˜5Ð=TÐ_cÑd×pÑpÐpó    c                 ó*   • [        XSS9R                  $ )zLinear SHAP (ind)Úinterventional©r   r   r   s     r   Úlinear_shap_indr      s   € ä˜5Ð=MÑN×ZÑZÐZr   c                 óB   • [         R                  " U 5      R                  $ )ÚCoefficients)r   ÚCoefficentExplainerÚattributionsr   s     r   Úcoefr#      s   € ä×$Ò$ UÓ+×8Ñ8Ð8r   c                 ó@   • [         R                  " 5       R                  $ )z)Random
color = #777777
linestyle = solid
)r   ÚRandomExplainerr"   r   s     r   Úrandomr&       s   € ô
 × Ò Ó"×/Ñ/Ð/r   c                 ó   ^ ^• UU 4S j$ )zJKernel SHAP 1000 mean ref.
color = red_blue_circle(0.5)
linestyle = solid
c                 ób   >• [        TR                  [        TS5      5      R                  U SSS9$ )Nr   r   r   )r   Úl1_reg)r   Úpredictr
   r   ©ÚXr   r   s    €€r   Ú<lambda>Ú*kernel_shap_1000_meanref.<locals>.<lambda>-   s+   ø€ ”_ U§]¡]´F¸4À³OÓD×PÑPÐQRÐ]aÐjkÐPÑlr   © r   s   ``r   Úkernel_shap_1000_meanrefr0   (   s   ù€ õ
 mÐlr   c                 ó   ^ ^• UU 4S j$ )z9IME 1000
color = red_blue_circle(0.5)
linestyle = dashed
c                 óL   >• [        TR                  T5      R                  U SS9$ )Nr   ©r   )r   r*   r   r+   s    €€r   r-   Ú$sampling_shap_1000.<locals>.<lambda>5   s"   ø€ Ô& u§}¡}°dÓ;×GÑGÈÐTXÐGÑYr   r/   r   s   ``r   Úsampling_shap_1000r5   0   s   ù€ õ
 ZÐYr   c                 ó*   • [        U SS9R                  $ )z;TreeExplainer
color = red_blue_circle(0)
linestyle = solid
Útree_path_dependentr   ©r	   r   r   s     r   Útree_shap_tree_path_dependentr9   8   s   € ô
 ˜Ð5JÑK×WÑWÐWr   c           	      ó˜   • [         R                  R                  US[        SUR                  S   5      SS9n[        XSS9R                  $ )zJTreeExplainer (independent)
color = red_blue_circle(0)
linestyle = dashed
FéÈ   r   )ÚreplaceÚ	n_samplesÚrandom_stater   r   )ÚsklearnÚutilsÚresampleÚminÚshaper	   r   )r   r   Údata_subsamples      r   Útree_shap_independent_200rE   @   sJ   € ô
 —]‘]×+Ñ+¨D¸%Ì3ÈsÐTX×T^ÑT^Ð_`ÑTaÓKbÐqrÐ+Ðs€NÜ˜ÐEUÑV×bÑbÐbr   c                 ó   ^ • U 4S jnU$ )zFmean(|TreeExplainer|)
color = red_blue_circle(0.25)
linestyle = solid
c                 ó²  >• [        T5      R                  U 5      n[        U[        5      (       aZ  U Vs/ s HL  n[        R
                  " [        R                  " U5      R                  S5      U R                  S   S45      PMN     sn$ [        R
                  " [        R                  " U5      R                  S5      U R                  S   S45      $ s  snf )Nr   r   )	r	   r   Ú
isinstanceÚlistÚnpÚtileÚabsÚmeanrC   )r,   ÚvÚsvr   s      €r   ÚfÚmean_abs_tree_shap.<locals>.fO   s–   ø€ Ü˜%Ó ×,Ñ,¨QÓ/ˆÜ�aœ×ÑÙKLÓMÊ1ÀR”B—G’GœBŸFšF 2›JŸO™O¨AÓ.°·±¸±¸Q°Ö@É1ÑMÐMä—7’7œ2Ÿ6š6 !›9Ÿ>™>¨!Ó,¨q¯w©w°q©z¸1¨oÓ>Ð>ùò Ns   µACr/   )r   r   rP   s   `  r   Úmean_abs_tree_shaprR   I   s   ø€ õ?ð €Hr   c                 ó   ^ • U 4S j$ )z5Saabas
color = red_blue_circle(0)
linestyle = dotted
c                 ó6   >• [        T5      R                  U SS9$ )NT)Úapproximater8   )r,   r   s    €r   r-   Úsaabas.<locals>.<lambda>^   s   ø€ ”] 5Ó)×5Ñ5°aÀTÐ5ÑJr   r/   r   s   ` r   ÚsaabasrW   Y   s   ø€ ô
 KÐJr   c                 óB   • [         R                  " U 5      R                  $ )zFGain/Gini Importance
color = red_blue_circle(0.25)
linestyle = dotted
)r   ÚTreeGainExplainerr"   r   s     r   Ú	tree_gainrZ   a   s   € ô
 ×"Ò" 5Ó)×6Ñ6Ð6r   c                 ó   ^ ^• UU 4S j$ )ú0LIME Tabular 1000
color = red_blue_circle(0.75)
c                 ó`   >• [         R                  " TR                  TSS9R                  U SS9$ )NÚ
regression©Úmoder   r3   )r   ÚLimeTabularExplainerr*   r"   r+   s    €€r   r-   Ú.lime_tabular_regression_1000.<locals>.<lambda>m   s*   ø€ ”U×/Ò/°·±¸tÈ,ÑW×dÑdÐefÐquÐdÑvr   r/   r   s   ``r   Úlime_tabular_regression_1000rc   i   s   ù€ õ wÐvr   c                 ó   ^ ^• UU 4S j$ )r\   c                 óf   >• [         R                  " TR                  TSS9R                  U SS9S   $ )NÚclassificationr_   r   r3   r   )r   ra   Úpredict_probar"   r+   s    €€r   r-   Ú2lime_tabular_classification_1000.<locals>.<lambda>t   s9   ø€ ”U×/Ò/°×0CÑ0CÀTÐP`Ña×nÑnØ	�Dð oð àò	r   r/   r   s   ``r   Ú lime_tabular_classification_1000ri   p   s   ù€ õ	ð 	r   c                 ó   ^ ^• UU 4S j$ )z#MAPLE
color = red_blue_circle(0.6)
c                 ób   >• [         R                  " TR                  T5      R                  U SS9$ ©NF)Úmultiply_by_input)r   ÚMapleExplainerr*   r"   r+   s    €€r   r-   Úmaple.<locals>.<lambda>}   s'   ø€ ”U×)Ò)¨%¯-©-¸Ó>×KÑKÈAÐafÐKÑgr   r/   r   s   ``r   Úmaplerp   y   s   ù€ õ hÐgr   c                 ó   ^ ^• UU 4S j$ )z;Tree MAPLE
color = red_blue_circle(0.6)
linestyle = dashed
c                 óN   >• [         R                  " TT5      R                  U SS9$ rl   )r   ÚTreeMapleExplainerr"   r+   s    €€r   r-   Útree_maple.<locals>.<lambda>…   s#   ø€ ”U×-Ò-¨e°TÓ:×GÑGÈÐ]bÐGÑcr   r/   r   s   ``r   Ú
tree_mapleru   €   s   ù€ õ
 dÐcr   c                 ó–   ^• [        U [        5      (       a  U R                  n [        U [	        US5      R
                  5      mU4S jnU$ )zDeep SHAP (DeepLIFT)r   c                 ó|   >• TR                  U 5      n[        U[        5      (       a  [        U5      S:X  a  US   $ U$ ©Nr   r   ©r   rH   rI   Úlen©r,   ÚphiÚ	explainers     €r   rP   Údeep_shap.<locals>.fŽ   ó8   ø€ Ø×#Ñ# AÓ&ˆÜ�cœ4× Ñ ¤S¨£X°£]Ø�q‘6ˆMàˆJr   )rH   r   r   r   r
   r   ©r   r   rP   r}   s      @r   Ú	deep_shapr�   ˆ   s=   ø€ ä�%œ×#Ñ#Ø—‘ˆÜ˜e¤V¨D°!£_×%9Ñ%9Ó:€Iõð €Hr   c                 ól   ^• [        U [        5      (       a  U R                  n [        X5      mU4S jnU$ )zExpected Gradientsc                 ó|   >• TR                  U 5      n[        U[        5      (       a  [        U5      S:X  a  US   $ U$ rx   ry   r{   s     €r   rP   Úexpected_gradients.<locals>.fž   r   r   )rH   r   r   r   r€   s      @r   Úexpected_gradientsr…   ˜   s/   ø€ ä�%œ×#Ñ#Ø—‘ˆÜ! %Ó.€Iõð €Hr   ) ÚnumpyrJ   r?   Ú r   r   r   r   r   r	   r
   Ú
explainersr   Úmodelsr   r   r   r#   r&   r0   r5   r9   rE   rR   rW   rZ   rc   ri   rp   ru   r�   r…   r/   r   r   Ú<module>rŠ      s�   ðÛ Û ÷÷ ñ õ Ý òqò
[ò
9ò
0òmòZòXòcòò Kò7òwò	òhòdòó r   