
    ӆh                         S SK rS SKrS SKrS SKJr   " S S5      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S rS rg)    N)StandardScalerc                   2    \ rS rSrSrSS jrS	S jrS rSrg)
	KerasWrap   z\A wrapper that allows us to set parameters in the constructor and do a reset before fitting.c                 T    Xl         X l        X0l        S U l        [	        5       U l        g N)modelepochsflatten_outputinit_weightsr   scaler)selfr	   r
   r   s       hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\shap/benchmark/models.py__init__KerasWrap.__init__
   s$    
, $&    c                 &   U R                   c   U R                  R                  5       U l         O%U R                  R                  U R                   5        U R                  R                  U5        U R                  R                  XU R                  US9$ )N)r
   verbose)r   r	   get_weightsset_weightsr   fitr
   )r   Xyr   s       r   r   KerasWrap.fit   sh    $ $

 6 6 8DJJ""4#4#45zz~~a4;;~HHr   c                     U R                   R                  U5      nU R                  (       a)  U R                  R	                  U5      R                  5       $ U R                  R	                  U5      $ r   )r   	transformr   r	   predictflatten)r   r   s     r   r   KerasWrap.predict   sR    KK!!!$::%%a(0022::%%a((r   )r
   r   r   r	   r   N)F)r   )	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__ r   r   r   r      s    f'I)r   r   c                  <    [         R                  R                  SS9$ Lasso Regression皙?alphasklearnlinear_modelLassor&   r   r   corrgroups60__lassor1   $       %%C%00r   c                  <    [         R                  R                  SS9$ Ridge Regressiong      ?r+   r.   r/   Ridger&   r   r   corrgroups60__ridger8   )   r2   r   c                  >    [         R                  R                  SSS9$ )Decision Treer      random_state	max_depthr.   treeDecisionTreeRegressorr&   r   r   corrgroups60__decision_treerB   .        <<--1-JJr   c                  >    [         R                  R                  SSS9$ Random Forestd   r   r=   r.   ensembleRandomForestRegressorr&   r   r   corrgroups60__random_forestrL   4       11#A1FFr   c                  0    SSK n U R                  SSSSSS9$ )Gradient Boosted Treesr   Nr;   2   r*      r>   n_estimatorslearning_raten_jobsr=   xgboostXGBRegressorrW   s    r   corrgroups60__gbmrZ   9   s%     !"CXYhijjr   c                  (   SSK n U R                  R                  R                  5       nUR	                  U R                  R
                  R                  SSSS95        UR	                  U R                  R
                  R                  SSS95        UR	                  U R                  R
                  R                  SSS95        UR	                  U R                  R
                  R                  S	5      5        UR                  S
SS/S9  [        USSS9$ )4-Layer Neural Networkr   N    relu<   
activation	input_dim   ra      adammean_squared_error	optimizerlossmetrics   Tr   )	
tensorflowkerasmodels
SequentialaddlayersDensecompiler   )tfr	   s     r   corrgroups60__ffnnrw   A   s    HHOO&&(E	IIbhhoo##B6R#HI	IIbhhoo##B6#:;	IIbhhoo##B6#:;	IIbhhoo##A&'	MMF)=H\G]M^UBt44r   c                  <    [         R                  R                  SS9$ r(   r-   r&   r   r   independentlinear60__lassory   P   r2   r   c                  <    [         R                  R                  SS9$ r4   r6   r&   r   r   independentlinear60__ridger{   U   r2   r   c                  >    [         R                  R                  SSS9$ )r:   r      r<   r?   r&   r   r   "independentlinear60__decision_treer~   Z   rC   r   c                  >    [         R                  R                  SSS9$ rE   rI   r&   r   r   "independentlinear60__random_forestr   `   rM   r   c                  0    SSK n U R                  SSSSSS9$ )rO   r   Nr;   rG   r*   rQ   rR   rV   rY   s    r   independentlinear60__gbmr   e   s%     !#SYZijkkr   c                     SSK Jn   SSKJn  U" 5       nUR	                  U " SSSS95        UR	                  U " SSS	95        UR	                  U " SSS	95        UR	                  U " S
5      5        UR                  SSS/S9  [        USSS9$ )r\   r   )rt   rq   r]   r^   r_   r`   rc   rd   re   rf   rg   rh   rl   Trm   )tensorflow.keras.layersrt   tensorflow.keras.modelsrq   rr   ru   r   )rt   rq   r	   s      r   independentlinear60__ffnnr   m   s    -2LE	IIeB6R89	IIeB6*+	IIeB6*+	IIeAh	MMF)=H\G]M^UBt44r   c                  Z   ^  [         R                  R                  SSS9m U 4S jT l        T $ )r)   l1gMb`?)penaltyCc                 4   > TR                  U 5      S S 2S4   $ Nre   predict_probar   r	   s    r   <lambda>cric__lasso.<locals>.<lambda>       e11!4QT:r   r.   r/   LogisticRegressionr   r	   s   @r   cric__lassor   }   s,      33DE3JE ;EMLr   c                  X   ^  [         R                  R                  SS9m U 4S jT l        T $ )r5   l2)r   c                 4   > TR                  U 5      S S 2S4   $ r   r   r   s    r   r   cric__ridge.<locals>.<lambda>   r   r   r   r   s   @r   cric__ridger      s*      33D3AE ;EMLr   c                  Z   ^  [         R                  R                  SSS9m U 4S jT l        T $ )r:   r   r}   r<   c                 4   > TR                  U 5      S S 2S4   $ r   r   r   s    r   r   %cric__decision_tree.<locals>.<lambda>   r   r   )r.   r@   DecisionTreeClassifierr   r   s   @r   cric__decision_treer      s*    LL//Q!/LE ;EMLr   c                  Z   ^  [         R                  R                  SSS9m U 4S jT l        T $ )rF   rG   r   rH   c                 4   > TR                  U 5      S S 2S4   $ r   r   r   s    r   r   %cric__random_forest.<locals>.<lambda>   r   r   )r.   rJ   RandomForestClassifierr   r   s   @r   cric__random_forestr      s,    33Ca3HE ;EMLr   c            	      p   ^ SSK n U R                  SSSSSSS9mTR                  Tl        U4S	 jTl        T$ )
rO   r   N   i  g{Gz?g?rQ   )r>   rS   rT   	subsamplerU   r=   c                 $   > TR                  U SS9$ )NT)output_margin)__orig_predictr   s    r   r   cric__gbm.<locals>.<lambda>   s    e221D2Ir   )rW   XGBClassifierr   r   )rW   r	   s    @r   	cric__gbmr      sF    
 !!#TSQRab " E
 !==EIEMLr   c                  H   SSK Jn Jn  SSKJn  U" 5       nUR                  U " SSSS95        UR                  U" S5      5        UR                  U " SSS	95        UR                  U" S5      5        UR                  U " S
SS	95        UR                  SSS/S9  [        USSS9$ )r\   r   )rt   Dropoutr   
   r^   iP  r`   g      ?rd   re   sigmoidrf   binary_crossentropyaccuracyrh   rl   Trm   )r   rt   r   r   rq   rr   ru   r   )rt   r   rq   r	   s       r   
cric__ffnnr      s    62LE	IIeB6S9:	IIgcl	IIeB6*+	IIgcl	IIeA),-	MMF)>MUUBt44r   c                      Sn Sn[         R                  " X45      nUR                    [         R                  " U 5      nSUS'   SUS'   SUS'   SUS'   SUSSS24'   S	US'   [        R                  R                  SS
9nUR                  X#5        U$ )r:   i@B    re   )r   r   rQ   r   )re   re      r}   )r>   )npzerosshaper.   r@   rA   r   )NMr   r   	xor_models        r   human__decision_treer      s     	A	A
!AGG
AAdGAaDAdGAaDAa1fIAaD 22Q2?IMM!r   )numpyr   r.   sklearn.ensemblesklearn.preprocessingr   r   r1   r8   rB   rL   rZ   rw   ry   r{   r~   r   r   r   r   r   r   r   r   r   r   r&   r   r   <module>r      s       0) ):1
1
KG
k51
1
KG
l5 $5"r   