ó
    †ñ:ih  ã                   óR   • S SK rS SKJr  S SKrS SKrSSK	J
r
  S rS rS rS rS rg)	é    Né   )Úperturbationc                 ó¤   • US-   U-   n[         R                  " XXV5      n	U	R                  XUS9u  p«nUS   R                  U5        X«U/US   U'   g )NÚ )ÚyÚmetricsÚvalues)r   ÚSequentialPerturbationÚmodel_scoreÚappend)ÚmodelÚattributionsÚXr   ÚmaskerÚ
sort_orderÚperturbation_methodÚscoresÚmetricÚspÚxsÚysÚaucs                Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/shap/benchmark/framework.pyÚupdater   
   s_   € Ø  3Ñ&¨Ñ3€FÜ	×	,Ò	,¨U¸JÓ	\€BØ—.‘. °A�.Ð6�K€BˆCØ
ˆ9Ñ×Ñ˜VÔ$Ø "¨˜}€Fˆ8Ñ�VÒó    c                 ó–  • [        U[        R                  [        R                  45      (       a  UR                  n[        U[        R                  [        R                  45      (       a  UR                  n[        5       [        5       S.n[        [        R                  " US   US   5      5       H  u  px[        XX#XGX†5        M     U$ )N)r   r	   r   r   )
Ú
isinstanceÚpdÚSeriesÚ	DataFramer	   ÚlistÚdictÚitÚproductr   )	r   r   r   r   r   r   r   r   r   s	            r   Úget_benchmarkr%      s˜   € ä�!”b—i‘i¤§¡Ð.×/Ñ/Ø�H‰HˆÜ�&œ2Ÿ9™9¤b§l¡lÐ3×4Ñ4Ø—‘ˆô ›¬4«6Ñ2€FÜ+/´·
²
¸7À<Ñ;PÐRYÐZhÑRiÓ0jÖ+kÑ'ˆ
Üˆu A¨&Ð>QÖZñ ,lð €Mr   c                 ó®   • [        5       nU  H;  nX   n[        U5      S:X  a  [        US   5      nM&  U" U[        US   5      5      nM=     [        U5      $ )Nr   r   )ÚsetÚlenr!   )Ú
benchmarksÚ	selectionÚexplainer_metricsÚ	explainerr   s        r   Úget_metricsr-   !   s`   € ä›ÐÛˆ	ØÑ&ˆÜÐ Ó! QÓ&Ü # F¨9Ñ$5Ó 6Òá )Ð*;¼SÀÈ	ÑARÓ=SÓ TÒñ  ô Ð!Ó"Ð"r   c           
      óÞ  • [        U S 5      nU HÚ  n[        R                  " 5         U  H@  nX   nX$S   ;   d  M  US   U   u  pVn[        R                  " XV[	        US5       SU 3S9  MB     SU;   a  SnSU;   a  S	n[        R
                  " S
5        [        R                  " W5        [        R                  " U5        [        R                  " 5         [        R                  " 5         MÜ     g )Nc                 ó$   • U R                  U5      $ ©N)Úunion©Úxr   s     r   Ú<lambda>Útrend_plot.<locals>.<lambda>/   s   € ¸Q¿W¹WÀQ¼Zr   r	   é   z - )ÚlabelÚkeepzPercent UnmaskedÚremovezPercent MaskedzModel Output)
r-   ÚpltÚclfÚplotÚroundÚylabelÚxlabelÚtitleÚlegendÚshow)	r)   r+   r   r,   r   r3   r   r   r?   s	            r   Ú
trend_plotrC   .   sÆ   € Ü# JÑ0GÓHÐó $ˆÜ�ŠŒ	ã#ˆIØÑ*ˆFØ Ñ)Õ)Ø" 8Ñ,¨VÑ4‘	��cÜ—’˜¬¨c°1« °c¸)¸Ð%EÔFñ	 $ð �VÓØ'ˆFØ�vÓØ%ˆFä�
Š
�>Ô"Ü�
Š
�6ÔÜ�	Š	�&ÔÜ�
Š
ŒÜ�ŠŽ
ò% $r   c           
      ó²  • [        U S 5      n[        U R                  5       5      n[        U5      n[        U5      n[	        5       n[        U5       H  nX&   nXcS-
  -  /XW'   M     U Hy  n[        S5      * [        S5      p©U H(  nX   nUS   U   u    pÍ[        XÚ5      n
[        XÙ5      n	M*     U H,  nX   nUS   U   u    pÍXW   R                  XÚ-
  Xš-
  -  5        M.     M{     [        R                  " 5       nU H?  n[        R                  " [        R                  " SS[        U5      S-   5      XW   S5        MA     UR                  SSS	S
9  UR!                  [        SU5       Vs/ s H
  ofUS-
  -  PM     sn5        UR#                  USS9  UR%                  [        R                  " SSUS-   5      5        UR'                  S/U-   SSS9  [        R(                  " SSSS9  [        R*                  " 5         [        R,                  " S5        [        R.                  " S5        [        R0                  " S5        [        R2                  " 5         g s  snf )Nc                 ó$   • U R                  U5      $ r0   )Úintersectionr2   s     r   r4   Úcompare_plot.<locals>.<lambda>H   s   € ¸Q¿^¹^ÈAÔ=Nr   r   Úinfr	   r   z--oÚmajorÚbothé   )ÚwhichÚaxisÚ	labelsize)Úrotationr   é-   Úright)rO   Úhar3   z--)rL   rM   Ú	linestylez/Relative Performance of Each Explanation MethodzEvaluation Metricsz-Explanation Method Performance Across Metrics)r-   r!   Úkeysr(   r"   ÚrangeÚfloatÚminÚmaxr   r:   Úgcar<   ÚnpÚlinspaceÚtick_paramsÚ
set_yticksÚset_yticklabelsÚ
set_xticksÚset_xticklabelsÚgridÚtight_layoutr>   r?   r@   rB   )r)   r+   Ú
explainersÚnum_explainersÚnum_metricsÚaucsÚir,   r   Úmax_aucÚmin_aucr   Ú_r   Úaxs                  r   Úcompare_plotrl   G   s  € Ü# JÑ0NÓOÐÜ�j—o‘oÓ'Ó(€JÜ˜“_€NÜÐ'Ó(€Kô ‹6€DÜ�>Ö"ˆØ‘Mˆ	Ø°Ñ 2Ñ3Ð4ˆ‹ñ #ó
 $ˆÜ! %›L˜=¬%°«,�ã#ˆIØÑ*ˆFØ˜xÑ(¨Ñ0‰IˆAˆqÜ˜#Ó'ˆGÜ˜#Ó'ŠGñ	 $ó $ˆIØÑ*ˆFØ˜xÑ(¨Ñ0‰IˆAˆqØ‰O×"Ñ" C¡M°gÑ6GÑ#HÖIó $ñ $ô 
�Š‹€BÛˆ	Ü�Š”—’˜Q ¤3Ð'8Ó#9¸AÑ#=Ó>ÀÁÐQVÖWñ  ð ‡N�N˜ v¸€NÑ;à‡M�M´U¸1¸nÔ5MÓNÒ5M°˜¨Ñ*Ô+Ñ5MÑNÔOØ×Ñ�z¨AÐÑ.à‡M�M”"—+’+˜a  K°!¡OÓ4Ô5Ø×Ñ˜�uÐ0Ñ0¸2À'ÐÑJä‡H‚H�7 °Ò5Ü×ÒÔÜ‡J‚JÐ@ÔAÜ‡J‚JÐ#Ô$Ü‡I‚IÐ=Ô>Ü‡H‚H…Jùò Os   Å*I)Ú	itertoolsr#   Úmatplotlib.pyplotÚpyplotr:   ÚnumpyrZ   Úpandasr   Ú r   r   r%   r-   rC   rl   © r   r   Ú<module>rt      s-   ðÛ å Û Û å ò-òò
#òó2.r   