
    -iDe                        S SK Jr  S SKrS SKrS SKJr  S SKJr  S SK	J
r
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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 SK%J&r&J'r'J(r(  SS jr)S r*S r+S r,S r-S r.S r/S r0\Rb                  Re                  S\\\/5      S 5       r3S r4S r5\Rb                  Re                  S/ SQ5      \Rb                  Re                  S/ SQ5      S 5       5       r6S r7S r8g)     )productN)assert_allclose)optimize)	factorialxlogy)DummyRegressor)UndefinedMetricWarning)d2_absolute_error_scored2_pinball_scored2_tweedie_scoreexplained_variance_scoremake_scorer	max_errormean_absolute_errormean_absolute_percentage_errormean_pinball_lossmean_squared_errormean_squared_log_errormean_tweedie_deviancemedian_absolute_errorr2_scoreroot_mean_squared_errorroot_mean_squared_log_error)_check_reg_targets)GridSearchCV)assert_almost_equalassert_array_almost_equalassert_array_equalc           
      	   [         R                  " U 5      nUS-   nUS-
  n[        [        X5      S5        [        [	        X5      [        [         R
                  " SU-   5      [         R
                  " SU-   5      5      5        [        [        X5      S5        [        [        X5      S5        [        [        X5      S5        [        [        XSS9S5        [        [        XSS9S5        [        [        X5      S5        [        X5      n[         R                  " U5      (       d   eUS:  d   e[        [        X5      S5        [        [        X5      SS	5        [        [        XS
S9SS	5        [        [        X5      S5        [        [        XS
S9S5        [        [        XSS9[        X5      5        [        [        XSS9[        X5      5        [         R                   " U[         R"                  " U5      -
  5      R%                  5       n['        [)        X5      S[         R                   " X-
  5      R%                  5       U-  -
  5        SnS n[         R*                  " XS-  S9n[        [-        XUS9SU" XU5      R%                  5       U" XU5      R%                  5       -  -
  5        [        [)        X5      [-        XSS95        [         R                  " SSU -   5      nS	U-  nU n	[        [        XSS9SU	-  U	S	-  S	U	-  -   S-   -  5        [        [        XSS9U	S-   S[         R
                  " S	5      -
  -  5        [        [        XS	S9S	[         R
                  " S	5      -  S-
  5        [        [        XSS9S[         R.                  " S	5      -  S-
  U	-  [         R.                  " U5      R%                  5       -  5        [        [        XSS9[         R$                  " SU-  5      SU	-  -  5        S	[         R0                  " [3        US	U-  U	S-   -  5      5      -  n
[        [        XSS9SU	S-   S[         R
                  " S	5      -
  -  U
-  -
  5        S	[         R
                  " U	S-   S	-  5      -  S	U	-  [         R
                  " [5        U	5      5      -  -
  n
[        [        XS	S9SS	[         R
                  " S	5      -  S-
  U
-  -
  5        g )N         ?      ?皙?alpha333333?    .Agףp=
?   Fforce_finiter   power皙?c                 z    U[         R                  " X-
  S5      -  SU-
  [         R                  " X-
  S5      -  -   $ )Nr   r    )npmaximum)y_truey_predr%   s      X/var/www/html/venv/lib/python3.13/site-packages/sklearn/metrics/tests/test_regression.py<lambda>)test_regression_metrics.<locals>.<lambda>M   s9    : 2	
Ubjj!4425    d   )qg?      ?            )r/   aranger   r   r   logr   r   r   r   isfiniter   r   r   r   r   absmediansumr   r
   
percentiler   sqrtmeanr   r   )	n_samplesr1   r2   y_pred_2mape
dev_medianr%   pinball_loss
y_quantilendev_means              r3   test_regression_metricsrP   &   s9   YYy!FaZFzH*6:C@v.266!f*-rvva&j/AB +F;SA)&93?)&;SA)&DcJ)&#FL-f=sC)&9D;;t#::	&1370%;eDeQO0@#F eDc fA66* q18F3K 6!223779J/	BFF6?#'')J66 E5L v5Ju5	
vu
-
1
1
3
v5
1
5
5
78	8 /s3 YYq!i-(FZFAfB7
adQUlQ&' fA6Q1rvvay=8Q fA6BFF1I8I fE:
bggaj.1
	!RWWV_%8%8%:: fA6q6z8JaRSe8T 2775Vq1u)=>??Hq1	QUq266!9}%00
 2661q5A+&&Q	!1E)EEHq11BFF1I8IX7U3Ur6   c                      [        S//S//SS9n [        S//S//SS9n[        R                  " U 5      [        R
                  " U5      :X  d   eg )Nr    
   
raw_valuesmultioutput)r   r   r/   rF   pytestapprox)msermses     r3   2test_root_mean_squared_error_multioutput_raw_valuerZ      sO     qcUbTF
EC"QC5B4&lKD773<6==....r6   c                     [         R                  " / SQ/ SQ/ SQ/5      n [         R                  " / SQ/ SQ/ SQ/5      n[        X5      n[        US5        [	        X5      n[        USSS	9  [        X5      n[        US
SS	9  [        X5      n[        USSS	9  [        X5      n[        US5        [        X5      n[        US5        [         R                  " [        X5      SS9n[         R                  " U5      (       d   eUS:  d   e[        X5      n[        US5        [        XSS9n[        US5        [        XSS9n[        US5        [        XSSS9n[        U R                   S   5       Vs/ s H  nS[         R"                  " U S S 2U4   US S 2U4   -
  5      R%                  5       [         R"                  " U S S 2U4   [         R&                  " U S S 2U4   5      -
  5      R%                  5       -  -
  PM     nn[         R(                  " [         R*                  " U5      SU5      n[-        X55        [        XSSS9n[        X5R/                  5       5        SS/n[        USS/SS9n[        US5        [        USS/SS9n[        US5        [        XSSS9n[        U[         R0                  5        [        XSSS9n[        U[         R0                  5        U S S 2S S24   n US S 2S S24   n[        XSS9n[        XSSS9n[        X'5        [        XSS9n[        XSSS9n[        X'5        [        USS/SSS9n[        U[         R0                  5        [        USS/SSS9n[        U[         R2                  * 5        g s  snf ) N)r    r   r   r    )r   r    r    r    )r    r    r   r    )r   r   r   r    )r    r   r    r    g?guV?r(   decimalr-   g)\(?g?)decimalsr'   r"   variance_weightedrT   g      uniform_averageg      rS   r%   rU   r    g      @r!   gffffff@        FrU   r*   r9   g      @)r/   arrayr   r   r   r   r   r   r   aroundr   rA   r   r   r   rangeshaperB   rD   rC   whereisnanr   rG   naninf)r1   r2   errorscoreiraw_expected_scoreycerror2s           r3   test_multioutput_regressionrr      sj   XX|\<@AFXX|\<@AFv.EBC#F3Eua0"62Eua0'7Eua0  /E45f-E45II4VDqQE;;u3;;!&1E01V1DEE}-V1BCEv&V3LQE
 v||A'	 (A 	

&&1q!t,
-
1
1
3
&&1		&A, 77
8
<
<
>?	? (	   "((+=">CUVe8V3DUVE6689
sBR#s1DEEs#R#s1DEEs# $7eE rvv&V1BQVWErvv& AssF^FAssF^FV1DEE$7eF &V1BCEf2CRWXF& 
S#J$7eE rvv&
S#J$7eE w'as   1BNc            	         [        [        S/S/5      S5        [        [        S/S/5      S5        [        [        S/S/5      S5        [        [	        S/S/5      S5        [        [        S/S/5      S5        [        [        S/S/5      S5        [        [        S/S/5      S5        [        [        S/S/5      S5        [        [        S/S/5      S5        [        [        SS/SS/5      S5        [        [        SS/SS/5      S5        [        [        4 Hz  n [        U " SS/SS/5      S5        [        U " SS/SS/SS9[        R                  * 5        [        U " SS/SS/5      S5        [        U " SS/SS/SS9[        R                  5        M|     Sn[        R                   " ["        US	9   [        S
/S
/5        S S S 5        Sn[        R                   " ["        US	9   [        / SQ/ SQ5        S S S 5        Sn[        R                   " ["        US	9   [        / SQ/ SQ5        S S S 5        Sn[        R                   " ["        US	9   [%        / SQ/ SQ5        S S S 5        SnSn['        [)        S/S/US9SSU-
  -  SS9  Sn[        R                   " ["        US	9   [)        S/S/US9  S S S 5        [        R                   " ["        US	9   [+        S/S-  S/S-  US9  S S S 5        [        [)        S/S/SS9SS5        SnSn[        R                   " ["        US	9   [)        S/S/US9  S S S 5        [        R                   " ["        US	9   [+        S/S-  S/S-  US9  S S S 5        Sn['        [)        S/S/US9SSU-
  -  5        Sn[        R                   " ["        US	9   [)        S/S/US9  S S S 5        [        R                   " ["        US	9   [+        S/S-  S/S-  US9  S S S 5        Sn['        [)        S/S/US9SSS9  Sn[        R                   " ["        US	9   [)        S/S/US9  S S S 5        [        R                   " ["        US	9   [+        S/S-  S/S-  US9  S S S 5        Sn['        [)        S/S/US9SSS9  Sn[        R                   " ["        US	9   [)        S/S/US9  S S S 5        [        R                   " ["        US	9   [+        S/S-  S/S-  US9  S S S 5        g ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNk= f! , (       d  f       GN2= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GNT= f! , (       d  f       GN= f! , (       d  f       g = f)Nrb   r!   r    r   r9   Fr)   zcMean Squared Logarithmic Error cannot be used when targets contain values less than or equal to -1.match      )r!          @      @)r!   g       rx   zhRoot Mean Squared Logarithmic Error cannot be used when targets contain values less than or equal to -1.g333333r+   r(   MbP?rtolz-can only be used on strictly positive y_pred.z<only be used on non-negative y and strictly positive y_pred.r:   rw   g:0yE>)atolz3can only be used on strictly positive y and y_pred.rx   )r   r   r   r   r   r   r   r   r   r   r   r   r/   rk   rj   rV   raises
ValueErrorr   r   r   r   )smsgr,   s      r3   !test_regression_metrics_at_limitsr      s    *C53%8#>/u=sC.use<cB+SEC593?)3%#7=6useDcJ-secU;SA	3%#/50#>D #qC84c:(#qC8<cB 01Aq!fq"g.4Aq!fq"gEBRVVGLAq!fq!f-s3Aq!fq!f5A266J	 2	;  
z	-vv. 
.	;  
z	-0@A 
.	;  
z	-/A 
.	;  
z	-#$4oF 
.	;  EqcC56QYd :C	z	-secU%8 
.	z	-#SEAIU; 
. -secU!Dc1ME
HC	z	-secU%8 
.	z	-#SEAIU; 
. E)3%#eDa1u9oV
HC	z	-secU%8 
.	z	-#SEAIU; 
. E)3%#eDdQUV
?C	z	-secU%8 
.	z	-#SEAIU; 
. E)3%#eDdQUV
?C	z	-secU%8 
.	z	-#SEAIU; 
.	-E 
.	- 
.	- 
.	- 
.	- 
.	-	-	- 
.	-	-	- 
.	-	-	- 
.	-	-	- 
.	-	-	-s   2S-$S?TT# T5U UU+%U=V#V!V3!WW-
S<?
T
T #
T25
U
U
U(+
U:=
V
V!
V03
W
W
W%c            	      0   S/ SQS4SS/S/S//S4SSS/SS/SS//S4SSS/SS/SS//S4S/ S	Q/ S
Q/ SQ/S4/n [        U SS9 H  u  u  pnu  pEnX:X  a~  X6:X  ay  [        X%S S S9u  pxn	  n
X:X  d   eUS:X  aD  [        U[        R                  " US5      5        [        U	[        R                  " US5      5        Mw  [        X5        [        X5        M  [
        R                  " [        5         [        X%S S S9  S S S 5        M     g ! , (       d  f       M  = f)N
continuousr    r(   r=   r    r(   r=   zcontinuous-multioutput   r>   )r    r=   r>   )r(   r(   r(   )r=   r    r    )repeat)sample_weightrU   )r9   r    )r   r   r   r/   reshaperV   r}   r~   )EXAMPLEStype1y1n_out1type2y2n_out2y_typey_check1y_check2_s              r3   test__check_reg_targetsr   A  s4    
y!$	aS1#*	!QFQFQF#;Q?	!QFQFQF#;Q?	!Iy)#DaHH 5<HQ4O0F0e>f./Ad0,Fh1 ?"?$"8RZZG-DE"8RZZG-DE"80"80z*"24P +* 5P +*s   -D
D	c                      Sn SR                  U 5      n[        R                  " [        US9   [	        / SQS/S/S//S U 5        S S S 5        g ! , (       d  f       g = f)Nthis_value_is_not_validzFAllowed 'multioutput' string values are.+You provided multioutput={!r}rt   r   r    r(   r=   )formatrV   r}   r~   r   )invalid_multioutputexpected_messages     r3   !test__check_reg_targets_exceptionr   \  sV    3PWW	
 
 
z)9	:9sQC!ot=PQ 
;	:	:s   A
Ac            
         SS/SS/SS/SS//n SS/SS/SS	/SS
//n[        XSS9n[        XSS9n[        XSS9n[        XSS9n[	        XSS9n[        XSS9n[        XSSS9n[        XSSS9n	[        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [        U	SS/SS9  SS//S	-  n SS//S	-  n[        XSS9n[        XSS9n[        XSS9n[	        XSS9n[        XSS9n[        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [        USS/SS9  [	        SS/SS//SS/SS//SS9n[        USS /SS9  [        R                  " U5      [	        SS/SS//SS/SS//S!S9:X  d   e[        SS/SS//SS/SS//SS9n[        USS"/SS9  [        SS/SS//SS/SS//SSS9n	[        U	[        R                  * S"/SS9  SS/SS//n SS	/SS//n[	        XSS9n
[        U
SS#/SS9  [        R                  " U
5      [	        XS!S9:X  d   e[	        XSSS9n[        U[        R                  S#/SS9  [        [        R                  " U5      [	        XS!SS95        [        XSS9n[        USS#/SS9  [        R                  " U5      [        X5      :X  d   e[        XSSS9n[        USS$/SS9  [        XSSS9n	[        U	[        R                  S#/SS9  [        [        R                  " U	5      [        XSS%95        [        R                  " SS/SS/SS&//5      n [        R                  " SS/SS/S'S'//5      n[        XSS9n[        [        R                  " SU -   5      [        R                  " SU-   5      SS9n[        XSS9  g )(Nr    r(         @r9         @r=   r      r>         @rS   rT   r"   ra   Frc   g      ?g      ?r\         ?g      ?g      ?g	g?g2w-!?ffffff?g(\?g-?gv?r   r!   rb   g      r`   g      g      rv   r)   r;   r<   )r   r   r   r   r   r   r   r   r/   rG   rk   rj   r   rd   r   r@   )r1   r2   rX   maepblrJ   revsd2psevs2r2r22mslemsle2s                 r3   !test_regression_multioutput_arrayr   g  s   !fsBi#qAq62F!fq"g1v3x0F
V
FC
f,
GC
F
EC)&lSD\:A
"6|
LCF#<PD#LuD cE6?A>cD%=!<cHi#8!DdVV$4a@a$q9cD$<;dUENA>dT4L!< !fX\F!fX\F
V
FC
f,
GC
F
EC\:AFEDcC:q9cC:q9cC:q9a#sQ7dS#J:1b'Aq6"aVaV$4,OAa!TA6771:
R1a&QFQF+9J    #
R1a&QFQF+C cAu:q9#
R1a&
Q!Q 	D dbffWe$4a@ !fq!fF!fq!fF	&l	;Bb3+q9772;(6?PQQQQ
6|%
PCcBFFD>1=
->US
 #6|
LCcC;:773<3FCCCCF#<PDdS$K;#LuD dRVVTNA>
/US
 XXQx!Q!Q01FXXQx!SAq623F!&lKD
q6zBFF1v:.LE d15r6   c                     SS/SS/SS/SS//n SS/SS/SS	/SS
//n[        XSS/S9n[        XSS/S9n[        XSS/S9n[        XSS/S9n[	        XSS/S9n[        XSS/S9n[        XSSS/S9n[        XSS/SS9n	[        USSS9  [        USSS9  [        USSS9  [        USSS9  [        USSS9  [        USSS9  [        USSS9  [        U	SSS9  [        R                  " SS/SS/SS//5      n [        R                  " SS/SS/SS//5      n[        XSS/S9n
[        [        R                  " SU -   5      [        R                  " SU-   5      SS/S9n[        XSS9  g )Nr    r(   r   r9   r   r=   r   r   r>   r   r#   r&   rT   r"   ra   Frc   g(\?r\   gzG?gffffff?g|гY?gGz?gPn?r;   r<   g333333?gffffff?)r   r   r   r   r   r   r   r   r/   rd   r   r@   )r1   r2   msewrmsewmaewmapewrwevswd2pswevsw2r   r   s               r3   test_regression_custom_weightsr     s   !fsBi#qAq62F!fq"g1v3x0Ff3*ED#Fc
KEvC:FD*6SzRE	&sCj	9B#Fc
KDV3S#JOE$S#JUE dA.tQ/eQ/vq1D!,dA.ua0tQ/ XXQx!Q!Q01FXXQx!SAq623F!&sCjID
q6zBFF1v:.S#JE Q/r6   metricc                     S/nS/nSn[         R                  " [        US9   U " X5      n[        R                  " U5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr   r    z,not well-defined with less than two samples.rt   )rV   warnsr	   r/   ri   )r   r1   r2   warning_msgrm   s        r3   test_regression_single_sampler     sO    SFSF@K 
,K	@v&xx 
A	@	@s   &A
A c           	      p   Sn[         R                  R                  U 5      nUR                  U5      S-   nUR                  U5      S-   n[	        [        X4SS9[        X4SS95        [	        [        X4SS9[        X4SS9SS	9  [	        [        X4S
S9[        X4SS9SS	9  [	        [        X4SS9[        X4SS9SS	9  g )Nr7   皙?g|۽r+   r   g8   ?r    gh㈵>rz   g ?r(   go    @)r/   randomRandomStaterandr   r   )global_random_seedrH   rngr1   r2   s        r3    test_tweedie_deviance_continuityr     s    I
))

 2
3CXXi 3&FXXi 3&FfI>fA6 fI>fA6 fI>fA6 fI>fA6r6   c                     [         R                  R                  U 5      nUR                  SS9nSU-  n[	        X#5      [
        R                  " S5      :X  d   eg )Nr7   sizeg333333?r-   )r/   r   r   exponentialr   rV   rW   )r   random_number_generatorr1   r2   s       r3   #test_mean_absolute_percentage_errorr     sP     ii334FG$00c0:F6\F)&9V]]3=OOOOr6   distribution)normal	lognormalr   uniformtarget_quantile)皙?r"         ?c                   ^^^ [        [        S5      (       d  [        R                  " S5        Sm[        R                  R                  U5      n[        X05      " TS9m[        R                  " TT5      n[        R                  " TUS9n[        TUTS9n[        R                  " T[        R                  " SSS	5      5      nU H  n[        R                  " TUS9n	[        TU	TS9n
X[        R                  " [        R                  5      R                  -
  :  d   eUTTU:     -
  R                  5       ST-
  -  TTU:     U-
  R                  5       T-  -   nUT-  n[        X5        M     UUU4S
 jn[         R"                  " UTR%                  5       5      nUR&                  (       d   e[)        UR*                  USSS9  UR,                  [        R.                  " U5      :X  d   eg )NquantilezOThis test requires a more recent version of numpy with support for np.quantile.i  r   
fill_valuer$   r   r    r7   c                 D   > [         R                  " TU S9n[        TUTS9$ )Nr   r$   )r/   fullr   )xconstant_preddatarH   r   s     r3   objective_funcFtest_mean_pinball_loss_on_constant_predictions.<locals>.objective_funcK  s"    	a8 }OLLr6   r   ry   )r{   r|   )hasattrr/   rV   skipr   r   getattrr   r   r   linspacefinfofloat64epsrD   r   r   minimizerG   successr   r   funrW   )r   r   r   r   	best_predbest_constant_predbest_pblcandidate_predictionspredr   r   expected_pblr   resultr   rH   s    `            @@r3   .test_mean_pinball_loss_on_constant_predictionsr     s    2z"",	
 I
))

 2
3C3%95D D/2IyA '9QH KKbkk!Q.DE%	d;m?K
 "**!5!9!99999 tD4K005571;NO%
#%/S" " 		!L.! &(M ~tyy{;F>>> FHHid>::x0000r6   c                 f   Sn[         R                  R                  U 5      nUR                  US4S9nUR	                  US9n/ SQnU Hf  n[        [        USS9n[        SSS	9n[        U[        US
9US9R                  X45      n	U	R                  S   [        R                  " U5      :X  a  Mf   e   g )Ni  r   r   )r   r   r   r"   r   g?r   F)r%   greater_is_betterr   r   )strategyr   )r   )
param_gridscoring)r/   r   r   r   r   r   r   r   r   dictfitbest_params_rV   rW   )
r   rH   r   Xyall_quantilesr%   neg_mean_pinball_loss	regressorgrid_searchs
             r3   $test_dummy_quantile_parameter_tuningr   X  s    
 I
))

 2
3C

A
'AY'A;M +#!

 #JF	"]3)
 #a)	 	 ''
3v}}U7KKKK r6   c                     [         R                  R                  U 5      nSnUR                  US9nUR	                  5       UR                  U5      -   n[        X45      [        X4SS9S-  :X  d   eg )Nr7   r   r"   r$   r(   )r/   r   r   r   copyr   r   r   )r   r   rN   r1   r2   s        r3   #test_pinball_loss_relation_with_maer   s  sj    
))

 2
3CAZZQZF[[]S[[^+FF+V37!;	<	<r6   )2   )9	itertoolsr   numpyr/   rV   numpy.testingr   scipyr   scipy.specialr   r   sklearn.dummyr   sklearn.exceptionsr	   sklearn.metricsr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   sklearn.metrics._regressionr   sklearn.model_selectionr   sklearn.utils._testingr   r   r   rP   rZ   rr   r   r   r   r   r   markparametrizer   r   r   r   r   r    r6   r3   <module>r     s      )  * ( 5    $ ; 0 Wt/T(n_<DQ6R[6|0D H.>@P#QR S!HP E *,=>31 ?31lL6	r6   