
    0Ph7              
       ~   d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZ  ej        d 
          Zd Zd Zd Zd Zd Zd Z ej!        "                    deed           ej#        ed         ed         dz  dz   f          j$        fg          d             Z%ej!        "                    deed           ej#        ed         ed         dz  dz   f          j$        fg          d             Z&d Z'd Z(d Z) G d de	e          Z* G d de          Z+d Z, G d de	e          Z-ej!        "                    d d!d"g          d#             Z. G d$ d%e          Z/d& Z0d' Z1 G d( d)e          Z2d* Z3ej!        "                    d+d,d-g          d.             Z4dS )/    N)config_contextdatasets)BaseEstimatorTransformerMixinclone)TransformedTargetRegressor)DummyRegressor)LinearRegressionOrthogonalMatchingPursuit)Pipeline)FunctionTransformerStandardScalerassert_allclose)random_statec                     t           \  } }t          t                      t                      t          j        t          j                  }t          j        t          d          5  |
                    | |           d d d            n# 1 swxY w Y   t	          j        |j        d         f          }t          t                      t                                }t          j        t          d          5  |
                    | ||           d d d            n# 1 swxY w Y   t          t          j                  }t          j        t          d	          5  |
                    | |           d d d            n# 1 swxY w Y   t          t          j        
          }t          j        t          d          5  |
                    | |           d d d            d S # 1 swxY w Y   d S )N)	regressortransformerfuncinverse_funczE'transformer' and functions 'func'/'inverse_func' cannot both be set.matchr   r   r   z:fit\(\) got an unexpected keyword argument 'sample_weight')sample_weight)r   z=When 'func' is provided, 'inverse_func' must also be provided)r   z=When 'inverse_func' is provided, 'func' must also be provided)friedmanr   r
   r   npexplogpytestraises
ValueErrorfitonesshaper   	TypeError)Xyregrr   s       a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/compose/tests/test_target.py%test_transform_target_regressor_errorr*      s   DAq%"$$"$$VV	  D 
U
 
 
   	A	               GQWQZM**M%+-->;K;K  D 
N
 
 
 4 4 	A]333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 &26222D	M
 
 
   	A	               &26:::D	M
 
 
   	A	                 sH   %BBB7DD #D E??FF?G##G'*G'c                  Z   t           \  } }t          t                      t          j        t          j        d          }t          j        t          d          5  |	                    | |           d d d            n# 1 swxY w Y   t          t                      t          j        t          j                  }|
                    d           t          j                    5  t          j        dt                     |	                    | |           d d d            d S # 1 swxY w Y   d S )	NT)r   r   r   check_inversez?The provided functions.* are not strictly inverse of each otherr   r   r   r   F)r,   error)r   r   r
   r   sqrtr   r   warnsUserWarningr"   
set_paramswarningscatch_warningssimplefilterr&   r'   r(   s      r)   *test_transform_target_regressor_invertibler7   ;   s   DAq%"$$WV	  D 
Q
 
 
   	A	              
 &"$$27  D 	OO%O(((		 	"	"  g{333A                 s$   A<<B B "1D  D$'D$c                     t          j        | d          }t          j        | d          }t          | |z
  |z  |           d S )Nr   )axis)r   meanstdr   )r'   y_predy_meany_stds       r)   _check_standard_scaledr?   R   sI    WQQFF11EQZ5(&11111    c                 ,    t          | dz   |           d S N   r   )r'   r<   s     r)   _check_shifted_by_onerD   X   s    AE6"""""r@   c            	         t           \  } }t          t                      t          j        t          j                  }|                    | |                              |           }|j        	                    |
                    dd                                                    }t          t          j        |          |           t          ||j                            |
                    dd                                                               |j        |j        k    sJ t          ||                    |j                            |                                t                                          | |                    |                    }t          |j        j                                        |j                                                   d S )Nr-   rC   )r   r   r
   r   r   r   r"   predicttransformer_	transformreshapesqueezer   inverse_transformr$   r   
regressor_r   coef_ravelr&   r'   r(   r<   y_tranlrs         r)   )test_transform_target_regressor_functionsrS   \   sx   DAq%"$$26  D XXa^^##A&&F((2q)9)9::BBDDFBF1IIv&&&	4..v~~b!/D/DEEMMOO   7fl""""FD--do.E.Ea.H.HIIJJJ					499Q<<	0	0BDO)//1128>>3C3CDDDDDr@   c                     t           d         } t          j        t           d         t           d         dz  dz   f          j        }t	          t                      t          j        t          j                  }|                    | |          	                    |           }|j
                            |          }t          t          j        |          |           t          ||j
                            |                     |j        |j        k    sJ t          ||                    |j        	                    |                                t                                          | |                    |                    }t          |j        j                                        |j                                                   d S )Nr   rC      r-   )r   r   vstackTr   r
   r   r   r"   rG   rH   rI   r   rL   r$   r   rM   r   rN   rO   rP   s         r)   5test_transform_target_regressor_functions_multioutputrX   o   sd   A
	8A;q 01 45668A%"$$26  D XXa^^##A&&F((++FBF1IIv&&&At(::6BBCCC7fl""""FD--do.E.Ea.H.HIIJJJ					499Q<<	0	0BDO)//1128>>3C3CDDDDDr@   zX,yrC   rU   c                    t          d d           }t          t                      |          }|                    | |                              |           }|j        |j        k    sJ |j                            |          }t          ||           |j        |j        k    sJ t          ||j        
                    |                                                     t                      }t          |          }|                    | |                    |                     |                    |           }t          ||
                    |                     t          |j        j        |j                   d S )Nc                     | dz   S rB    xs    r)   <lambda>z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    q1u r@   c                     | dz
  S rB   r[   r\   s    r)   r^   z@test_transform_target_regressor_1d_transformer.<locals>.<lambda>   s
    QU r@   r   r   r   )r   r   r
   r"   rG   r$   rH   rI   rD   r   rL   rK   r   fit_transformrM   rN   	r&   r'   r   r(   r<   rQ   rR   transformer2	y_lr_preds	            r)   .test_transform_target_regressor_1d_transformerre      sd    &_??  K &"$$+  D XXa^^##A&&F7fl""""((++F!V$$$7fl""""At(::6BBJJLLMMM			B%%LFF1l((++,,,

1IFL::9EEFFFDO)2844444r@   c           	         t                      }t          t                      |          }|                    | |                              |           }|j        |j        k    sJ |j        dk    r/|j                            |	                    dd                    }n|j                            |          }t          ||                                           |j        |j        k    sJ t          ||j                            |                                                     t                      }t          |          }|j        dk    r|                    | |                    |	                    dd                                                               |                    |           	                    dd          }|                    |                                          }	nS|                    | |                    |                     |                    |           }|                    |          }	t          ||	           t          |j        j        |j                   d S )Nr   rC   rF   )r   r   r
   r"   rG   r$   ndimrH   rI   rJ   r?   rK   r   rL   r   ra   rM   rN   )
r&   r'   r   r(   r<   rQ   rR   rc   rd   y_pred2s
             r)   .test_transform_target_regressor_2d_transformerri      s    !""K%"$$+  D XXa^^##A&&F7fl""""v{{",,QYYr1-=-=>>",,Q//1fnn..///7fl""""At(::6BBJJLLMMM			B%%Lv{{
q,,,QYYr1-=-=>>FFHHIIIJJqMM))"a00	00;;CCEE
q,,,Q//000JJqMM	00;;FG$$$DO)2844444r@   c                     t           d         } t          j        t           d         t           d         dz  dz   f          j        }t	                      }t          t                      |          }|                    | |                              |           }|j	        |j	        k    sJ |j
                            |          }t          ||           |j	        |j	        k    sJ t          ||j
                            |                                                     t                      }t!          |          }|                    | |                    |                     |                    |           }t          ||                    |                     t          |j        j        |j                   d S )Nr   rC   rU   r   )r   r   rV   rW   r   r   r
   r"   rG   r$   rH   rI   r?   r   rL   rK   r   ra   rM   rN   rb   s	            r)   :test_transform_target_regressor_2d_transformer_multioutputrk      s    	A
	8A;q 01 45668A ""K%"$$+  D XXa^^##A&&F7fl""""((++F1f%%%7fl""""At(::6BBJJLLMMM			B%%LFF1l((++,,,

1IFL::9EEFFFDO)2844444r@   c                  l   t           d         } t          j        t           d                             ddd          g d          }d }d }t	          ||          }t          t                      |          }|                    | |                              |           }|j	        |j	        k    sJ d S )	Nr   rC   rF   )rC      rU   c                 D    |                      | j        d         d          S )Nr   rF   rJ   r$   datas    r)   flatten_dataz?test_transform_target_regressor_3d_target.<locals>.flatten_data   s    ||DJqM2...r@   c                 F    |                      | j        d         dd          S )Nr   rF   rU   ro   rp   s    r)   unflatten_datazAtest_transform_target_regressor_3d_target.<locals>.unflatten_data   s    ||DJqM2q111r@   r`   r   )
r   r   tilerJ   r   r   r
   r"   rG   r$   )r&   r'   rr   rt   r   r(   r<   s          r)   )test_transform_target_regressor_3d_targetrv      s     	A
##B1--yyy99A/ / /2 2 2 &<nUUUK%"$$+  D XXa^^##A&&F7fl""""""r@   c                     t           d         } t          j        t           d         t           d         dz  dz   g          }d }d }t          ||d          }|                    | |           |                    |           }|j        dk    sJ d	 }t          ||d          }|                    | |           |                    |           }|j        dk    sJ t          ||           d S )
Nr   rC   rU   c                     t          j        | d d df         dz  | d d df         dz  z             }|d d t           j        f         S Nr   rU   rC   )r   r/   newaxis)r'   outs     r)   r   z=test_transform_target_regressor_multi_to_single.<locals>.func   sK    ga1glQqqq!tW\122111bj=!!r@   c                     | S Nr[   r'   s    r)   r   zEtest_transform_target_regressor_multi_to_single.<locals>.inverse_func       r@   F)r   r   r,   )d   rC   c                 d    t          j        | d d df         dz  | d d df         dz  z             S ry   )r   r/   r~   s    r)   r   z=test_transform_target_regressor_multi_to_single.<locals>.func  s7    wqAw!|a1gl2333r@   )r   r   	transposer   r"   rG   r$   r   )r&   r'   r   r   tty_pred_2d_funcy_pred_1d_funcs          r)   /test_transform_target_regressor_multi_to_singler      s   A
hqkHQK1$4q$8:;;A" " "   
$E
 
 
B FF1aLLLZZ]]N8++++4 4 4 
$E
 
 
B FF1aLLLZZ]]N8++++NN33333r@   c                   "    e Zd ZddZd Zd ZdS )DummyCheckerArrayTransformerNc                 >    t          |t          j                  sJ | S r}   
isinstancer   ndarrayselfr&   r'   s      r)   r"   z DummyCheckerArrayTransformer.fit  s    !RZ(((((r@   c                 >    t          |t          j                  sJ |S r}   r   r   r&   s     r)   rI   z&DummyCheckerArrayTransformer.transform      !RZ(((((r@   c                 >    t          |t          j                  sJ |S r}   r   r   s     r)   rL   z.DummyCheckerArrayTransformer.inverse_transform  r   r@   r}   )__name__
__module____qualname__r"   rI   rL   r[   r@   r)   r   r     sF                 r@   r   c                   *     e Zd Zd fd	Z fdZ xZS )DummyCheckerListRegressorNc                 x    t          |t                    sJ t                                          |||          S r}   )r   listsuperr"   )r   r&   r'   r   	__class__s       r)   r"   zDummyCheckerListRegressor.fit#  s3    !T"""""ww{{1a///r@   c                 t    t          |t                    sJ t                                          |          S r}   )r   r   r   rG   )r   r&   r   s     r)   rG   z!DummyCheckerListRegressor.predict'  s/    !T"""""wwq!!!r@   r}   )r   r   r   r"   rG   __classcell__r   s   @r)   r   r   "  sV        0 0 0 0 0 0" " " " " " " " "r@   r   c                  p   t           \  } }t          t                      t                      d          }|                    |                                 |                                           |                    |                                            t          j        t                    5  |                    | |                                           d d d            n# 1 swxY w Y   t          j        t                    5  |                    |            d d d            d S # 1 swxY w Y   d S )NF)r   r   r,   )
r   r   r   r   r"   tolistrG   r   r    AssertionError)r&   r'   r   s      r)   .test_transform_target_regressor_ensure_y_arrayr   ,  sz    DAq	#022+--
 
 
B
 FF188::qxxzz"""JJqxxzz	~	&	&  
q!((**              	~	&	&  


1                 s$   /)C$$C(+C(D++D/2D/c                   .    e Zd ZdZddZd	dZd Zd ZdS )
DummyTransformerz;Dummy transformer which count how many time fit was called.r   c                     || _         d S r}   fit_counter)r   r   s     r)   __init__zDummyTransformer.__init__A  s    &r@   Nc                 &    | xj         dz  c_         | S rB   r   r   s      r)   r"   zDummyTransformer.fitD  s    Ar@   c                     |S r}   r[   r   s     r)   rI   zDummyTransformer.transformH  r   r@   c                     |S r}   r[   r   s     r)   rL   z"DummyTransformer.inverse_transformK  r   r@   )r   r}   )r   r   r   __doc__r   r"   rI   rL   r[   r@   r)   r   r   >  s`        EE' ' ' '         r@   r   r,   FTc                     t           \  }}t          t                      |           }|                    ||           |j        j        dk    sJ d S )N)r   r,   rC   )r   r   r   r"   rH   r   )r,   r&   r'   ttrs       r)   )test_transform_target_regressor_count_fitr   O  s\     DAq
$$&&m  C GGAqMMM'1,,,,,,r@   c                         e Zd Zd fd	Z xZS ) DummyRegressorWithExtraFitParamsNTc                 R    |rJ t                                          |||          S r}   )r   r"   )r   r&   r'   r   check_inputr   s        r)   r"   z$DummyRegressorWithExtraFitParams.fit\  s+     ww{{1a///r@   NT)r   r   r   r"   r   r   s   @r)   r   r   [  s=        0 0 0 0 0 0 0 0 0 0r@   r   c                      t           \  } }t          t                      t                                }|                    | |d           |j        j        dk    sJ d S )Nr   Fr   rC   )r   r   r   r   r"   rH   r   r6   s      r)   3test_transform_target_regressor_pass_fit_parametersr   c  sh    DAq%244BRBTBT  D 	HHQuH%%%(A------r@   c                      t           \  } }t          t                      t                                }dt	                      fd|fg}t          |          } |j        | |fi ddi |j        j        dk    sJ d S )Nr   	normalizeestest__check_inputFrC   )	r   r   r   r   r   r   r"   rH   r   )r&   r'   r(   
estimatorspips        r)   .test_transform_target_regressor_route_pipeliner   m  s    DAq%244BRBTBT  D  0 01E4=AJ
:

CCGAq00'/000(A------r@   c                         e Zd Zd fd	Z xZS )$DummyRegressorWithExtraPredictParamsTc                 \    d| _         |rJ t                                          |          S r   )predict_calledr   rG   )r   r&   r   r   s      r)   rG   z,DummyRegressorWithExtraPredictParams.predict|  s/     #wwq!!!r@   )T)r   r   r   rG   r   r   s   @r)   r   r   {  s=        " " " " " " " " " "r@   r   c                      t           \  } }t          t                      t                                }|                    | |           |                    | d           |j        j        sJ d S )Nr   Fr   )r   r   r   r   r"   rG   rM   r   r6   s      r)   =test_transform_target_regressor_pass_extra_predict_parametersr     sq    DAq%688FVFXFX  D 	HHQNNNLLL&&&?))))))r@   output_formatpandaspolarsc                    t          j                    \  }}t          j        |          dz   }t	          |           5  t          j                    5  t          j        d           t          t                      t          j
        t          j                                      ||           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zTest that TransformedTargetRegressor will not raise warnings if
    set_config(transform_output="pandas"/"polars") is set globally; regression test for
    issue #29361.rC   )transform_outputr.   r-   N)r   make_regressionr   absr   r3   r4   r5   r   r
   r   r   r"   )r   r&   r'   s      r)   @test_transform_target_regressor_not_warns_with_global_output_setr     sC   
 #%%DAq
q		AA		7	7	7  $&& 	 	!'***&*,,26  c!Qiii		 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 s6   CAB9-C9B=	=C B=	CCC)5r3   numpyr   r   sklearnr   r   sklearn.baser   r   r   sklearn.composer   sklearn.dummyr	   sklearn.linear_modelr
   r   sklearn.pipeliner   sklearn.preprocessingr   r   sklearn.utils._testingr   make_friedman1r   r*   r7   r?   rD   rS   rX   markparametrizerV   rW   re   ri   rk   rv   r   r   r   r   r   r   r   r   r   r   r   r   r[   r@   r)   <module>r      s         , , , , , , , , ? ? ? ? ? ? ? ? ? ? 6 6 6 6 6 6 ( ( ( ( ( ( L L L L L L L L % % % % % % E E E E E E E E 2 2 2 2 2 2"8"222& & &R  .2 2 2# # #E E E&E E E$ 	Hx{IBIx{HQK1<Lq<P.Q$R$R$TUV 5 5 58 	Hx{IBIx{HQK1<Lq<P.Q$R$R$TUV 5 5 5D5 5 54# # #*4 4 4@    #3]   " " " " " " " "  $    '   " 5$-88- - 98-0 0 0 0 0~ 0 0 0. . .. . ." " " " "> " " "	* 	* 	* 8X*>??  @?  r@   