Ë
    ÷Q(hÇc  ã                   óò  — d dl mZ d dlZd dl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 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z  d d	l!m"Z" d d
l#m$Z$ d dl%m&Z&m'Z'm(Z( dd„Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0ejb                  je                  deeeg«      d„ «       Z3d„ Z4d„ Z5ejb                  je                  dg d¢«      ejb                  je                  dg d¢«      d„ «       «       Z6d„ Z7d„ Z8y) é    )Ú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           
      ó
  — t        j                  | «      }|dz   }|dz
  }t        t        ||«      d«       t        t	        ||«      t        t        j
                  d|z   «      t        j
                  d|z   «      «      «       t        t        ||«      d«       t        t        ||«      d«       t        t        ||«      d«       t        t        ||d¬«      d«       t        t        ||d¬«      d«       t        t        ||«      d«       t        ||«      }t        j                  |«      sJ ‚|dkD  sJ ‚t        t        ||«      d«       t        t        ||«      dd	«       t        t        ||d
¬«      dd	«       t        t        ||«      d«       t        t        ||d
¬«      d«       t        t        ||d¬«      t        ||«      «       t        t        ||d¬«      t        ||«      «       t        j                   |t        j"                  |«      z
  «      j%                  «       }t'        t)        ||«      dt        j                   ||z
  «      j%                  «       |z  z
  «       d}d„ }t        j*                  ||dz  ¬«      }t        t-        |||¬«      d ||||«      j%                  «        ||||«      j%                  «       z  z
  «       t        t)        ||«      t-        ||d¬«      «       t        j                  dd| z   «      }d	|z  }| }	t        t        ||d¬«      d|	z  |	d	z  d	|	z  z   dz   z  «       t        t        ||d¬«      |	dz   dt        j
                  d	«      z
  z  «       t        t        ||d	¬«      d	t        j
                  d	«      z  dz
  «       t        t        ||d¬«      dt        j.                  d	«      z  dz
  |	z  t        j.                  |«      j%                  «       z  «       t        t        ||d¬«      t        j$                  d|z  «      d|	z  z  «       d	t        j0                  t3        |d	|z  |	dz   z  «      «      z  }
t        t        ||d¬«      d|	dz   dt        j
                  d	«      z
  z  |
z  z
  «       d	t        j
                  |	dz   d	z  «      z  d	|	z  t        j
                  t5        |	«      «      z  z
  }
t        t        ||d	¬«      dd	t        j
                  d	«      z  dz
  |
z  z
  «       y )Né   ç      ð?ç      à?çš™™™™™Ù?©Úalphaç333333ã?ç    €„.Ag×£p=
×ï?é   F©Úforce_finiter   ©Úpowerçš™™™™™É?c                 óz   — |t        j                  | |z
  d«      z  d|z
  t        j                  || z
  d«      z  z   S )Nr   r    )ÚnpÚmaximum)Úy_trueÚy_predr%   s      úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/metrics/tests/test_regression.pyú<lambda>z)test_regression_metrics.<locals>.<lambda>M   s?   € °¼¿¹Ø�‰˜ó:ñ 2à	
ˆU‰”b—j‘j ¨&¡°!Ó4Ñ4ñ25€ ó    éd   )Úqéÿÿÿÿg«ªªªªªÚ?ç      ø?é   é   é   é   )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_metricsrO   &   sx  € Ü�Y‰Y�yÓ!€FØ�a‰Z€FØ˜‰z€HäÔ*¨6°6Ó:¸CÔ@ÜÜ˜v vÓ.Üœ2Ÿ6™6 ! f¡*Ó-¬r¯v©v°a¸&±jÓ/AÓBôô Ô+¨F°FÓ;¸SÔAÜÔ)¨&°&Ó9¸3Ô?ÜÔ)¨&°(Ó;¸SÔAÜÔ)¨&°&ÀÔDÀcÔJÜÔ)¨&°(À#ÔFÈÔLÜÔ-¨f°fÓ=¸sÔCÜ)¨&°&Ó9€DÜ�;‰;�tÔÐÐØ�#Š:Ðˆ:Üœ	 &¨&Ó1°3Ô7Üœ ¨Ó0°%¸Ô;Üœ ¨¸eÔDÀeÈQÔOÜÔ0°¸Ó@À#ÔFÜÜ  ¨¸eÔDÀcôô Ü˜f f°AÔ6Ü˜6 6Ó*ôô Ü˜ ¨qÔ1´8¸FÀFÓ3Kôô —‘˜¤§¡¨6Ó!2Ñ2Ó3×7Ñ7Ó9€JÜÜ ¨Ó/Ø	ŒB�F‰F�6˜F‘?Ó#×'Ñ'Ó)¨JÑ6Ñ6ôð €Eñ5€Lô —‘˜v¨°©Ô5€JÜÜ˜ ¨uÔ5Ø	Ù
�v˜v uÓ
-×
1Ñ
1Ó
3Ù
�v˜z¨5Ó
1×
5Ñ
5Ó
7ñ8ñ	8ôô Ü ¨Ó/Ü˜ ¨sÔ3ôô �Y‰Y�q˜!˜i™-Ó(€FØ�‰Z€FØ€AÜÜ˜f f°BÔ7Ø�‰
�a˜‘d˜Q ™U‘l QÑ&Ñ'ôô Ü˜f f°AÔ6¸¸Q¹À1ÄrÇvÁvÈaÃyÁ=Ñ8Qôô Ü˜f f°AÔ6¸¼B¿F¹FÀ1»I¹ÈÑ8Iôô Ü˜f f°EÔ:Ø
Œb�g‰g�a‹j‰.˜1Ñ
 Ñ	!¤R§W¡W¨V£_×%8Ñ%8Ó%:Ñ:ôô Ü˜f f°AÔ6¼¿¹¸qÀ6¹zÓ8JÈaÐRSÉeÑ8Tôð ”2—7‘7œ5 ¨¨V©°q¸1±uÑ)=Ó>Ó?Ñ?€HÜÜ˜ ¨qÔ1Ø	ˆQ�‰U�qœ2Ÿ6™6 !›9‘}Ñ%¨Ñ0Ñ0ôð
 ”2—6‘6˜1˜q™5 A™+Ó&Ñ&¨¨Q©´·±¼	À!»Ó1EÑ)EÑE€HÜÜ˜ ¨qÔ1°1¸¼B¿F¹FÀ1»I¹ÈÑ8IÈXÑ7UÑ3Uõr5   c                  ó¦   — t        dggdggd¬«      } t        dggdggd¬«      }t        j                  | «      t	        j
                  |«      k(  sJ ‚y )Nr    é
   Ú
raw_values©Úmultioutput)r   r   r/   rE   ÚpytestÚapprox)ÚmseÚrmses     r3   Ú2test_root_mean_squared_error_multioutput_raw_valuerY   €   sO   € ô ˜q˜c˜U b T F¸Ô
E€CÜ" Q C 5¨B¨4¨&¸lÔK€DÜ�7‰7�3‹<œ6Ÿ=™=¨Ó.Ò.Ð.Ñ.r5   c                  ó‚  — t        j                  g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g«      }t        | |«      }t        |d«       t	        | |«      }t        |dd¬	«       t        | |«      }t        |d
d¬	«       t        | |«      }t        |dd¬	«       t        | |«      }t        |d«       t        | |«      }t        |d«       t        j                  t        | |«      d¬«      }t        j                  |«      sJ ‚|dkD  sJ ‚t        | |«      }t        |d«       t        | |d¬«      }t        |d«       t        | |d¬«      }t        |d«       t        | |dd¬«      }t        | j                   d   «      D �cg c]�  }dt        j"                  | d d …|f   |d d …|f   z
  «      j%                  «       t        j"                  | d d …|f   t        j&                  | d d …|f   «      z
  «      j%                  «       z  z
  ‘Œƒ }}t        j(                  t        j*                  |«      d|«      }t-        ||«       t        | |dd¬«      }t        ||j/                  «       «       ddg}t        |ddgd¬«      }t        |d«       t        |ddgd¬«      }t        |d«       t        | |dd¬«      }t        |t         j0                  «       t        | |dd¬«      }t        |t         j0                  «       | d d …d d…f   } |d d …d d…f   }t        | |d¬«      }t        | |dd¬«      }t        ||«       t        | |d¬«      }t        | |dd¬«      }t        ||«       t        |ddgdd¬«      }t        |t         j0                  «       t        |ddgdd¬«      }t        |t         j2                   «       y c c}w ) 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_weightedrS   g      ø¿Úuniform_averageg      ì¿rR   ©r%   rT   r    g      @r!   gffffff@ç        F©rT   r*   r8   g      @)r/   Úarrayr   r   r   r   r   r   r   Úaroundr   r@   r   r   r   ÚrangeÚshaperA   rC   rB   ÚwhereÚisnanr   rF   ÚnanÚinf)r1   r2   ÚerrorÚscoreÚiÚraw_expected_scoreÚycÚerror2s           r3   Útest_multioutput_regressionrq   ˆ   s‘  € Ü�X‰X’|¢\²<Ð@ÓA€FÜ�X‰X’|¢\²<Ð@ÓA€Fä˜v vÓ.€EÜ˜ÐBÔCä# F¨FÓ3€EÜ˜˜u¨aÕ0ä" 6¨6Ó2€EÜ˜˜u¨aÕ0ä'¨°Ó7€EÜ˜˜u¨aÕ0ô   ¨Ó/€EÜ˜Ð4Ô5ä˜f fÓ-€EÜ˜Ð4Ô5ä�I‰IÔ4°V¸VÓDÈqÔQ€EÜ�;‰;�uÔÐÐØ�3Š;Ðˆ;Ü! &¨&Ó1€EÜ˜Ð0Ô1ä�V˜VÐ1DÔE€EÜ˜˜}Ô-Ü�V˜VÐ1BÔC€EÜ˜˜vÔ&ä˜V V°3ÀLÔQ€Eô
 �v—|‘| A‘Ó'ö	ð ð 	
Ü
�&‰&�š˜1˜‘ ¢q¨! t¡Ñ,Ó
-×
1Ñ
1Ó
3Ü
�&‰&�š˜1˜‘¤§	¡	¨&²°A°©,Ó 7Ñ7Ó
8×
<Ñ
<Ó
>ñ?ó	?ðÐð ô Ÿ™¤"§(¡(Ð+=Ó">ÀÐCUÓVÐÜ˜eÐ%7Ô8ä˜V V°3ÐDUÔV€EÜ˜Ð1×6Ñ6Ó8Ô9à
ˆsˆ€BÜ�R˜#˜s˜Ð1DÔE€EÜ˜˜sÔ#Ü�R˜#˜s˜Ð1DÔE€EÜ˜˜sÔ#ô Ø�Ð$7Àeô€Eô ˜œrŸv™vÔ&Ü�V˜VÐ1BÐQVÔW€EÜ˜œrŸv™vÔ&ð ’A�s˜�s�F‰^€FØ’A�s˜�s�F‰^€FÜ�V˜VÐ1DÔE€EÜØ�Ð$7Àeô€Fô ˜˜vÔ&Ü�V˜VÐ1BÔC€EÜ�f˜fÐ2CÐRWÔX€FÜ˜˜vÔ&ô Ø
ˆS�#ˆJÐ$7Àeô€Eô ˜œrŸv™vÔ&ÜØ
ˆS�#ˆJÐ$7Àeô€Eô ˜¤§¡˜wÕ'ùòas   ÆBN<c                  óî  — t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t	        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        dgdg«      d«       t        t        ddgddg«      d«       t        t        ddgddg«      d«       t        t        fD ]  } t         | ddgddg«      d«       t         | ddgddgd¬«      t        j                   «       t         | ddgddg«      d«       t         | ddgddgd¬«      t        j                  «       Œ� d}t        j                   t"        |¬	«      5  t        d
gd
g«       d d d «       d}t        j                   t"        |¬	«      5  t        g d¢g d¢«       d d d «       d}t        j                   t"        |¬	«      5  t        g d¢g d¢«       d d d «       d}t        j                   t"        |¬	«      5  t%        g d¢g d¢«       d d d «       d}d}t'        t)        dgdg|¬«      dd|z
  z  d¬«       d}t        j                   t"        |¬	«      5  t)        dgdg|¬«       d d d «       t        j                   t"        |¬	«      5  t+        dgdz  dgdz  |¬«       d d d «       t        t)        dgdgd¬«      dd«       d}d}t        j                   t"        |¬	«      5  t)        dgdg|¬«       d d d «       t        j                   t"        |¬	«      5  t+        dgdz  dgdz  |¬«       d d d «       d}t'        t)        dgdg|¬«      dd|z
  z  «       d}t        j                   t"        |¬	«      5  t)        dgdg|¬«       d d d «       t        j                   t"        |¬	«      5  t+        dgdz  dgdz  |¬«       d d d «       d}t'        t)        dgdg|¬«      dd¬«       d}t        j                   t"        |¬	«      5  t)        dgdg|¬«       d d d «       t        j                   t"        |¬	«      5  t+        dgdz  dgdz  |¬«       d d d «       d}t'        t)        dgdg|¬«      dd¬«       d}t        j                   t"        |¬	«      5  t)        dgdg|¬«       d d d «       t        j                   t"        |¬	«      5  t+        dgdz  dgdz  |¬«       d d d «       y # 1 sw Y   �Œ~xY w# 1 sw Y   �ŒUxY w# 1 sw Y   �Œ,xY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ´xY w# 1 sw Y   �Œ‡xY w# 1 sw Y   �ŒAxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒÉxY w# 1 sw Y   �ŒœxY w# 1 sw Y   �ŒUxY w# 1 sw Y   �Œ(xY w# 1 sw Y   ŒàxY w# 1 sw Y   y xY w)Nra   r!   r    r   r8   Fr)   zcMean Squared Logarithmic Error cannot be used when targets contain values less than or equal to -1.©Úmatchç      ð¿)r!   ç       @ç      @)r!   g       Àrw   zhRoot Mean Squared Logarithmic Error cannot be used when targets contain values less than or equal to -1.g333333ó¿r+   r(   gü©ñÒMbP?)Úrtolz-can only be used on strictly positive y_pred.z<only be used on non-negative y and strictly positive y_pred.r9   rv   g:Œ0âŽyE>©Úatolz3can only be used on strictly positive y and y_pred.rw   )r   r   r   r   r   r   r   r   r   r   r   r   r/   rj   ri   rU   ÚraisesÚ
ValueErrorr   r   r   r   )ÚsÚmsgr,   s      r3   Ú!test_regression_metrics_at_limitsr   ß   sˆ  € ô Ô*¨C¨5°3°%Ó8¸#Ô>ÜÔ/°°¸°uÓ=¸sÔCÜÔ.°¨u°s°eÓ<¸cÔBÜÔ+¨S¨E°C°5Ó9¸3Ô?ÜÔ)¨3¨%°#°Ó7¸Ô=ÜÔ6¸°u¸s¸eÓDÀcÔJÜÔ-¨s¨e°c°UÓ;¸SÔAÜœ	 3 %¨#¨Ó/°Ô5ÜÔ0°#°¸¸Ó>ÀÔDô œ # q ¨C°¨8Ó4°cÔ:ÜÔ(¨#¨q¨°C¸°8Ó<¸cÔBô Ô0Ð1ò KˆÜ™A˜q !˜f q¨" gÓ.°Ô4Ü™A˜q !˜f q¨" g¸EÔBÄRÇVÁVÀGÔLÜ™A˜q !˜f q¨! fÓ-¨sÔ3Ü™A˜q !˜f q¨! f¸5ÔAÄ2Ç6Á6ÕJð	Kð	;ð ô 
�‰”z¨Ô	-ñ /Ü ˜v¨ vÔ.÷/ð	;ð ô 
�‰”z¨Ô	-ñ BÜšÒ0@ÔA÷Bð	;ð ô 
�‰”z¨Ô	-ñ BÜÒ/²ÔA÷Bð	;ð ô 
�‰”z¨Ô	-ñ GÜ#Ò$4²oÔF÷Gð	;ð ð €EÜÜ˜q˜c C 5°Ô6¸¸QÀ¹Y¹Èdõð :€CÜ	�‰”z¨Ô	-ñ 9Ü˜s˜e c U°%Õ8÷9ä	�‰”z¨Ô	-ñ <Ü˜#˜ ™ S E¨A¡I°UÕ;÷<ô Ô-¨s¨e°c°UÀ!ÔDÀcÈ1ÔMà€EØ
H€CÜ	�‰”z¨Ô	-ñ 9Ü˜s˜e c U°%Õ8÷9ä	�‰”z¨Ô	-ñ <Ü˜#˜ ™ S E¨A¡I°UÕ;÷<ð €EÜÔ)¨3¨%°#°¸eÔDÀaÈ1ÈuÉ9ÁoÔVØ
H€CÜ	�‰”z¨Ô	-ñ 9Ü˜s˜e c U°%Õ8÷9ä	�‰”z¨Ô	-ñ <Ü˜#˜ ™ S E¨A¡I°UÕ;÷<ð €EÜÔ)¨3¨%°#°¸eÔDÀdÐQUÕVØ
?€CÜ	�‰”z¨Ô	-ñ 9Ü˜s˜e c U°%Õ8÷9ä	�‰”z¨Ô	-ñ <Ü˜#˜ ™ S E¨A¡I°UÕ;÷<ð €EÜÔ)¨3¨%°#°¸eÔDÀdÐQUÕVØ
?€CÜ	�‰”z¨Ô	-ñ 9Ü˜s˜e c U°%Õ8÷9ä	�‰”z¨Ô	-ñ <Ü˜#˜ ™ S E¨A¡I°UÕ;÷<ð <÷E/ñ /ú÷Bñ Bú÷Bñ Bú÷Gñ Gú÷9ñ 9ú÷<ñ <ú÷9ñ 9ú÷<ñ <ú÷9ñ 9ú÷<ñ <ú÷9ñ 9ú÷<ñ <ú÷9ð 9ú÷<ð <ús¨   Æ8UÇ,UÈ"UÉU*Ê4U7Ë(VÍVÍ5VÏV+ÐV8Ñ!WÒWÓ/WÔ#W+ÕUÕUÕU'Õ*U4Õ7VÖVÖVÖV(Ö+V5Ö8W×W×W×W(×+W4c            	      ó*  — dg d¢dfddgdgdggdfdddgddgddggdfdddgddgddggdfdg d	¢g d
¢g d¢gdfg} t        | d¬«      D ]¾  \  \  }}}\  }}}||k(  r}||k(  rxt        ||d «      \  }}}	}
||k(  sJ ‚|dk(  rAt        |t        j                  |d«      «       t        |	t        j                  |d«      «       Œwt        ||«       t        |	|«       Œ�t        j                  t        «      5  t        ||d «       d d d «       ŒÀ y # 1 sw Y   ŒËxY w)NÚ
continuous©r    r(   r<   r    r(   r<   zcontinuous-multioutputé   r=   )r    r<   r=   )r(   r(   r(   )r<   r    r    )Úrepeat)r8   r    )r   r   r   r/   ÚreshaperU   r{   r|   )ÚEXAMPLESÚtype1Úy1Ún_out1Útype2Úy2Ún_out2Úy_typeÚy_check1Úy_check2rT   s              r3   Útest__check_reg_targetsr�   A  sK  € ð 
’y !Ð$Ø	˜˜˜a˜S 1 #�¨Ð*Ø	! Q¨ F¨Q°¨F°Q¸°FÐ#;¸QÐ?Ø	! Q¨ F¨Q°¨F°Q¸°FÐ#;¸QÐ?Ø	!¢Iªyº)Ð#DÀaÐHð€Hô 5<¸HÈQÔ4Oò 1Ñ0Ñˆ��FÑ0˜e R¨Ø�EŠ>˜f¨Ò.Ü6HÈÈRÐQUÓ6VÑ3ˆF�H˜h¨Ø˜F’?Ð"�?Ø˜Ò$Ü" 8¬R¯Z©Z¸¸GÓ-DÔEÜ" 8¬R¯Z©Z¸¸GÓ-DÕEä" 8¨RÔ0Ü" 8¨RÕ0ä—‘œzÓ*ñ 1Ü" 2 r¨4Ô0÷1ð 1ñ1÷1ð 1ús   Ã0D	Ä	D	c                  ó´   — d} dj                  | «      }t        j                  t        |¬«      5  t	        g d¢dgdgdgg| «       d d d «       y # 1 sw Y   y xY w)NÚthis_value_is_not_validzFAllowed 'multioutput' string values are.+You provided multioutput={!r}rs   r‚   r    r(   r<   )ÚformatrU   r{   r|   r   )Úinvalid_multioutputÚexpected_messages     r3   Ú!test__check_reg_targets_exceptionr–   Z  sa   € Ø3ÐàP×WÑWØó	
ð ô
 
�‰”zÐ)9Ô	:ñ LÜš9¨ s¨Q¨C°!° oÐ7JÔK÷L÷ Lñ Lús   ¯AÁAc            	      óÜ  — ddgddgddgddgg} ddgddgdd	gdd
gg}t        | |d¬«      }t        | |d¬«      }t        | |d¬«      }t        | |d¬«      }t	        | |d¬«      }t        | |d¬«      }t        | |dd¬«      }t        | |dd¬«      }	t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |	ddgd¬«       ddggd	z  } ddggd	z  }t        | |d¬«      }t        | |d¬«      }t        | |d¬«      }t	        | |d¬«      }t        | |d¬«      }t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t        |ddgd¬«       t	        ddgddggddgddggd¬«      }t        |dd gd¬«       t        j                  |«      t	        ddgddggddgddggd!¬«      k(  sJ ‚t        ddgddggddgddggd¬«      }t        |dd"gd¬«       t        ddgddggddgddggdd¬«      }	t        |	t        j                   d"gd¬«       ddgddgg} dd	gddgg}t	        | |d¬«      }
t        |
dd#gd¬«       t        j                  |
«      t	        | |d!¬«      k(  sJ ‚t	        | |dd¬«      }t        |t        j                  d#gd¬«       t        t        j                  |«      t	        | |d!d¬«      «       t        | |d¬«      }t        |dd#gd¬«       t        j                  |«      t        | |«      k(  sJ ‚t        | |dd¬«      }t        |dd$gd¬«       t        | |dd¬«      }	t        |	t        j                  d#gd¬«       t        t        j                  |	«      t        | |d¬%«      «       t        j                  ddgddgdd&gg«      } t        j                  ddgddgd'd'gg«      }t        | |d¬«      }t        t        j                  d| z   «      t        j                  d|z   «      d¬«      }t        ||d¬«       y )(Nr    r(   ç      @r8   ç      @r<   rƒ   é   r=   ç      @rR   rS   r"   r`   Frb   g      À?g      â?r[   ç      Ð?g      ä?g      Ô?g	ù g³ê³?g2w-!ôÌ?çffffffî?gÃõ(\�Âí?g-²�ï§ê?g´Èv¾Ÿç?r   r!   ra   g      Àr_   g      ô¿g      Àru   r)   r:   r;   )r   r   r   r   r   r   r   r   r/   rF   rj   ri   r   rc   r   r?   )r1   r2   rW   ÚmaeÚpblrI   ÚrÚevsÚd2psÚevs2Úr2Úr22ÚmsleÚmsle2s                 r3   Ú!test_regression_multioutput_arrayr¨   e  sÍ  € Ø�!ˆf�s˜B�i # q ¨A¨q¨6Ð2€FØ�!ˆf�q˜"�g  1˜v¨¨3 xÐ0€Fä
˜V V¸Ô
F€CÜ
˜f f¸,Ô
G€Cä
˜F F¸Ô
E€CÜ)¨&°&ÀlÔS€DÜ�˜¨\Ô:€AÜ
" 6¨6¸|Ô
L€CÜ˜F F°#À<ÔP€DÜ#Ø� L¸uô€Dô ˜c E¨6 ?¸AÕ>Ü˜c D¨% =¸!Õ<Ü˜c H¨iÐ#8À!ÕDÜ˜d V¨VÐ$4¸aÕ@Ü˜a $¨ °qÕ9Ü˜c D¨$ <¸Õ;Ü˜d U¨E N¸AÕ>Ü˜d T¨4 L¸!Õ<ð �!ˆfˆX˜‰\€FØ�!ˆfˆX˜‰\€FÜ
˜V V¸Ô
F€CÜ
˜f f¸,Ô
G€CÜ
˜F F¸Ô
E€CÜ�˜¨\Ô:€AÜ˜F F¸ÔE€DÜ˜c C¨ :°qÕ9Ü˜c C¨ :°qÕ9Ü˜c C¨ :°qÕ9Ü˜a # s °QÕ7Ü˜d S¨# J¸Õ:ä�1�b�'˜A˜q˜6Ð" a¨ V¨a°¨VÐ$4À,ÔO€AÜ˜a ! T °AÕ6Ü�7‰7�1‹:œØ
ˆRˆ�1�a�&Ð˜Q ˜F Q¨ FÐ+Ð9Jôò ð ð ô #Ø
ˆRˆ�1�a�&Ð˜Q ˜F Q¨ FÐ+¸ô€Cô ˜c A u :°qÕ9Ü#Ø
ˆRˆ�1�a�&ÐØ
ˆQˆ�!�Q�ÐØ Øô	€Dô ˜d¤b§f¡f W¨eÐ$4¸aÕ@ð �!ˆf�q˜!�fÐ€FØ�!ˆf�q˜!�fÐ€FÜ	�&˜&¨lÔ	;€BÜ˜b 3¨ +°qÕ9Ü�7‰7�2‹;œ( 6¨6Ð?PÔQÒQÐQÐQÜ
�6˜6¨|È%Ô
P€CÜ˜c¤B§F¡F¨D >¸1Õ=ÜÜ
�‰�‹Ü�˜Ð->ÈUÔSôô
 # 6¨6¸|Ô
L€CÜ˜c C¨ ;¸Õ:Ü�7‰7�3‹<Ô3°F¸FÓCÒCÐCÐCÜ˜F F°#À<ÔP€DÜ˜d S¨$ K¸Õ;Ü#Ø� L¸uô€Dô ˜d¤R§V¡V¨T N¸AÕ>ÜÜ
�‰�‹Ô/°¸ÈUÔSôô
 �X‰X˜˜Q�x ! Q ¨!¨Q¨Ð0Ó1€FÜ�X‰X˜˜Q�x ! S ¨A¨q¨6Ð2Ó3€FÜ! &¨&¸lÔK€DÜÜ
�‰ˆq�6‰zÓœBŸF™F 1 v¡:Ó.¸Lô€Eô ˜d E°1Ö5r5   c                  óL  — ddgddgddgddgg} ddgddgdd	gdd
gg}t        | |ddg¬«      }t        | |ddg¬«      }t        | |ddg¬«      }t        | |ddg¬«      }t	        | |ddg¬«      }t        | |ddg¬«      }t        | |dddg¬«      }t        | |ddgd¬«      }	t        |dd¬«       t        |dd¬«       t        |dd¬«       t        |dd¬«       t        |dd¬«       t        |dd¬«       t        |dd¬«       t        |	dd¬«       t        j                  ddgddgddgg«      } t        j                  ddgddgddgg«      }t        | |ddg¬«      }
t        t        j                  d| z   «      t        j                  d|z   «      ddg¬«      }t        |
|d¬«       y )Nr    r(   r˜   r8   r™   r<   rƒ   rš   r=   r›   r#   r&   rS   r"   r`   Frb   gö(\�ÂõØ?r[   gáz®Gáâ?gffffffÞ?g¶„|Ð³YÅ?g®Gázî?gP�—nƒè?r:   r;   g333333Ó?gffffffæ?)r   r   r   r   r   r   r   r   r/   rc   r   r?   )r1   r2   ÚmsewÚrmsewÚmaewÚmapewÚrwÚevswÚd2pswÚevsw2r¦   r§   s               r3   Útest_regression_custom_weightsr²   Ã  sÊ  € Ø�!ˆf�s˜B�i # q ¨A¨q¨6Ð2€FØ�!ˆf�q˜"�g  1˜v¨¨3 xÐ0€Fä˜f f¸3À¸*ÔE€DÜ# F¨FÀÀcÀ
ÔK€EÜ˜v v¸CÀ¸:ÔF€DÜ*¨6°6ÈÈSÀzÔR€EÜ	�&˜&¨s°C¨jÔ	9€BÜ# F¨FÀÀcÀ
ÔK€DÜ˜V V°3ÀSÈ#ÀJÔO€EÜ$Ø� S¨# J¸Uô€Eô ˜˜d¨AÕ.Ü˜˜t¨QÕ/Ü˜˜e¨QÕ/Ü˜˜v¨qÕ1Ü˜˜D¨!Õ,Ü˜˜d¨AÕ.Ü˜˜u¨aÕ0Ü˜˜t¨QÕ/ô �X‰X˜˜Q�x ! Q ¨!¨Q¨Ð0Ó1€FÜ�X‰X˜˜Q�x ! S ¨A¨q¨6Ð2Ó3€FÜ! &¨&¸sÀC¸jÔI€DÜÜ
�‰ˆq�6‰zÓœBŸF™F 1 v¡:Ó.¸SÀ#¸Jô€Eô ˜˜e¨QÖ/r5   Úmetricc                 ó¶   — dg}dg}d}t        j                  t        |¬«      5   | ||«      }t        j                  |«      sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr   r    z,not well-defined with less than two samples.rs   )rU   Úwarnsr	   r/   rh   )r³   r1   r2   Úwarning_msgrl   s        r3   Útest_regression_single_sampler·   å  sW   € àˆS€FØˆS€FØ@€Kô 
�‰Ô,°KÔ	@ñ Ù�v˜vÓ&ˆÜ�x‰x˜ŒÐ‰÷÷ ñ ús   ¤!AÁAc                  óø  — d} t         j                  j                  d«      j                  | «      dz   }t         j                  j                  d«      j                  | «      dz   }t	        t        ||d¬«      t        ||d¬«      «       t	        t        ||d¬«      t        ||d¬«      d¬	«       t	        t        ||d
¬«      t        ||d¬«      d¬	«       t	        t        ||d¬«      t        ||d¬«      d¬	«       y )Nr6   r   çš™™™™™¹?r    g»½×Ùß|Û½r+   g8ß   ð?g�íµ ÷Æ°>ry   gÈ ùÿÿÿÿ?r(   gœo    @)r/   ÚrandomÚRandomStateÚrandr   r   )rG   r1   r2   s      r3   Ú test_tweedie_deviance_continuityr½   ñ  sÞ   € Ø€Iä�Y‰Y×"Ñ" 1Ó%×*Ñ*¨9Ó5¸Ñ;€FÜ�Y‰Y×"Ñ" 1Ó%×*Ñ*¨9Ó5¸Ñ;€FäÜ˜f f°IÔ>Ü˜f f°AÔ6ôô Ü˜f f°IÔ>Ü˜f f°AÔ6Øõô Ü˜f f°IÔ>Ü˜f f°AÔ6Øõô Ü˜f f°IÔ>Ü˜f f°AÔ6Øör5   c                  ó¸   — t         j                  j                  d«      } | j                  d¬«      }d|z  }t	        ||«      t        j                  d«      k(  sJ ‚y )Né*   r6   ©Úsizeg333333ó?r-   )r/   rº   r»   Úexponentialr   rU   rV   )Úrandom_number_generatorr1   r2   s      r3   Ú#test_mean_absolute_percentage_errorrÄ     sQ   € Ü Ÿi™i×3Ñ3°BÓ7ÐØ$×0Ñ0°cÐ0Ó:€FØ�6‰\€FÜ)¨&°&Ó9¼V¿]¹]È3Ó=OÒOÐOÑOr5   Údistribution)ÚnormalÚ	lognormalrÂ   ÚuniformÚtarget_quantile)çš™™™™™©?r"   ç      è?c                 óæ  ‡‡‡— t        t        d«      st        j                  d«       dŠt        j                  j                  d«      } t        || «      ‰¬«      Št        j                  ‰‰«      }t        j                  ‰|¬«      }t        ‰|‰¬«      }t        j                  ‰t        j                  dd	d
«      «      }|D ]¥  }t        j                  ‰|¬«      }t        ‰|‰¬«      }	|	|t        j                  |j                  «      j                  z
  k\  sJ ‚|‰‰|k     z
  j                  «       d	‰z
  z  ‰‰|k\     |z
  j                  «       ‰z  z   }
|
‰z  }
t        |
|	«       Œ§ ˆˆˆfd„}t!        j"                  |‰j%                  «       d¬«      }|j&                  sJ ‚|j(                  t        j*                  |d¬«      k(  sJ ‚|j,                  t        j*                  |«      k(  sJ ‚y )NÚquantilezOThis test requires a more recent version of numpy with support for np.quantile.i¸  r¿   rÀ   ©Ú
fill_valuer$   r   r    r6   c                 óN   •— t        j                  ‰| ¬«      }t        ‰|‰¬«      S )NrÎ   r$   )r/   Úfullr   )ÚxÚconstant_predÚdatarG   rÉ   s     €€€r3   Úobjective_funczFtest_mean_pinball_loss_on_constant_predictions.<locals>.objective_funcE  s"   ø€ ÜŸ™ 	°aÔ8ˆÜ   }¸OÔLÐLr5   zNelder-Mead)Úmethodg{®Gáz„?)Úrel)Úhasattrr/   rU   Úskiprº   r»   ÚgetattrrÍ   rÑ   r   ÚlinspaceÚfinfoÚdtypeÚepsrC   r   r   ÚminimizerF   ÚsuccessrÒ   rV   Úfun)rÅ   rÉ   ÚrngÚ	best_predÚbest_constant_predÚbest_pblÚcandidate_predictionsÚpredrÓ   rŸ   Úexpected_pblrÕ   ÚresultrÔ   rG   s    `           @@r3   Ú.test_mean_pinball_loss_on_constant_predictionsrê     s¾  ú€ ô
 ”2�zÔ"Ü�‰ð,ô	
ð €IÜ
�)‰)×
Ñ
 Ó
#€CØ%Œ7�3˜Ó%¨9Ô5€Dô —‘˜D /Ó2€IÜŸ™ °yÔAÐÜ  Ð'9ÀÔQ€Hô ŸK™K¨¬b¯k©k¸!¸QÀÓ.DÓEÐØ%ò /ˆäŸ™ 	°dÔ;ˆÜ  m¸?ÔKˆð
 �h¤§¡¨(¯.©.Ó!9×!=Ñ!=Ñ=Ò=Ð=Ð=ð ˜t D¨4¡KÑ0Ñ0×5Ñ5Ó7¸1¸Ñ;NÑOØ�˜‘Ñ Ñ%ß
‰#‹%�/ñS"ñ "ˆð 	˜	Ñ!ˆÜ˜L¨#Õ.ð!/ö(Mô ×Ñ˜~¨t¯y©y«{À=ÔQ€FØ�>Š>Ðˆ>à�8‰8”v—}‘} Y°DÔ9Ò9Ð9Ð9Ø�:‰:œŸ™ xÓ0Ò0Ð0Ñ0r5   c                  ó„  — d} t         j                  j                  d«      }|j                  | df¬«      }|j	                  | ¬«      }g d¢}|D ]p  }t        t        |d¬«      }t        dd	¬
«      }t        |t        |¬«      |¬«      j                  ||«      }|j                  d   t        j                  |«      k(  rŒpJ ‚ y )Niè  r   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_rU   rV   )	rG   râ   ÚXÚyÚall_quantilesr%   Úneg_mean_pinball_lossÚ	regressorÚgrid_searchs	            r3   Ú$test_dummy_quantile_parameter_tuningrù   P  sÅ   € ð
 €IÜ
�)‰)×
Ñ
 Ó
"€CØ�
‰
˜ A˜ˆ
Ó'€AØ�‰˜YˆÓ'€Aâ;€MØò LˆÜ +ÜØØ#ô!
Ðô
 #¨JÀÔFˆ	Ü"ØÜ ]Ô3Ø)ô
÷ ‰#ˆa�‹)ð	 	ð ×'Ñ'¨
Ñ3´v·}±}ÀUÓ7KÓKÐKÐKñLr5   c                  óî   — t         j                  j                  d«      } d}| j                  |¬«      }|j	                  «       | j                  |«      z   }t        ||«      t        ||d¬«      dz  k(  sJ ‚y )NiÊ  r6   rÀ   r"   r$   r(   )r/   rº   r»   rÆ   ÚcopyrÈ   r   r   )râ   rM   r1   r2   s       r3   Ú#test_pinball_loss_relation_with_maerü   k  sm   € ä
�)‰)×
Ñ
 Ó
$€CØ€AØ�Z‰Z˜QˆZÓ€FØ�[‰[‹]˜SŸ[™[¨›^Ñ+€Fä˜F FÓ+Ü˜V V°3Ô7¸!Ñ;ò	<ðñ	<r5   )é2   )9Ú	itertoolsr   Únumpyr/   rU   Ú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   rO   rY   rq   r   r�   r–   r¨   r²   ÚmarkÚparametrizer·   r½   rÄ   rê   rù   rü   © r5   r3   ú<module>r     s  ðÝ ã Û Ý )Ý ß *å (Ý 5÷÷ ÷ ÷ ó õ$ ;Ý 0÷ñ óWòt/òT(òn_<òD1ò2Lò[6ò|0ðD ‡�×Ñ˜ HÐ.>Ð@PÐ#QÓRñó SðòòDPð ‡�×ÑØÒEóð ‡�×ÑÐ*Ò,=Ó>ñ/1ó ?óð/1òdLó6	r5   