Ë
    ÷Q(hÁ)  ã            	       óº  — d dl Zd dlZd dlmZ d dl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 d d	lmZmZmZmZmZ ej.                  d
„ «       Zej2                  j5                   eej6                  «       ed«      k\  d¬«      ej2                  j9                  dddg«      ej2                  j9                  de«      d„ «       «       «       Zej2                  j9                  dg d¢g d¢g d¢g d¢g d¢g«      d„ «       Zej2                  j9                  dddg«      d„ «       Zej2                  j9                  dg d¢«      d „ «       Z d!„ Z!ej2                  j9                  d"g d#¢«      d$„ «       Z"ej2                  j9                  d"g d#¢«      d%„ «       Z#ej2                  j5                   eej6                  «       ed«      k\  d¬«      ej2                  jI                  d&«      d'„ «       «       Z%ej2                  j9                  d(eez   ez   «      ej2                  j9                  dg d)¢«      ej2                  j9                  dddg«      d*„ «       «       «       Z&d+„ Z'y),é    N)Úapprox)Úminimize©Úmake_regression)ÚConvergenceWarning)ÚHuberRegressorÚQuantileRegressor)Úmean_pinball_loss)Úassert_allclose)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚparse_versionÚ
sp_versionc                  ó.   — t        dddd¬«      \  } }| |fS )Né
   é   r   ©Ú	n_samplesÚ
n_featuresÚrandom_stateÚnoiser   )ÚXÚys     úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_quantile.pyÚX_y_datar      s   € ä R°AÀAÈQÔO�D€A€qØˆaˆ4€Kó    z1.11z4interior-point solver is not available in SciPy 1.11)ÚreasonÚsolverúinterior-pointzrevised simplexÚcsc_containerc                 óÂ   — | \  }} ||«      }d|› d�}t        j                  t        |¬«      5  t        |¬«      j	                  ||«       d d d «       y # 1 sw Y   y xY w)NzSolver z; does not support sparse X. Use solver 'highs' for example.©Úmatch©r   )ÚpytestÚraisesÚ
ValueErrorr	   Úfit)r   r   r!   r   r   ÚX_sparseÚerr_msgs          r   Ú)test_incompatible_solver_for_sparse_inputr,      sc   € ð �D€A€qÙ˜QÓ€Hà
�&�ÐTÐUð ô 
�‰”z¨Ô	1ñ :Ü Ô(×,Ñ,¨X°qÔ9÷:÷ :ñ :ús   ¯AÁAz quantile, alpha, intercept, coef)ç      à?r   r   N)gR¸…ëQà?r   r   r   )g\�Âõ(\ß?r   r   r   )r-   ç{®Gáz„?r   r   )r-   éd   é   r   c                 ó  — dgdgdgg}g d¢}t        | |¬«      j                  ||«      }t        |j                  |d¬«       |�t        |j                  d   |d¬«       |dk  r|j                  d   dk\  sJ ‚|j                  d   dk  sJ ‚y )	Nr   r   )r   r0   é   ©ÚquantileÚalphar.   ©Úatolr/   r   )r	   r)   r   Ú
intercept_Úcoef_)r4   r5   Ú	interceptÚcoefr   r   Úmodels          r   Útest_quantile_toy_exampler=   -   s’   € ð" ˆˆqˆc�A�3ˆ€AÚ€AÜ x°uÔ=×AÑAÀ!ÀQÓG€EÜ�E×$Ñ$ i°dÕ;ØÐÜ˜Ÿ™ A™¨°4Õ8Øˆs‚{Ø�{‰{˜1‰~ Ò"Ð"Ð"Ø�;‰;�q‰>˜RÒÐÑr   Úfit_interceptTFc                 ó¦  — t        dddd¬«      \  }}d}t        d|| ¬«      j                  ||«      }t        || ¬	«      j                  ||«      }t	        |j
                  |j
                  d
¬«       | r^|j                  t        |j                  d
¬«      k(  sJ ‚t        j                  ||j                  |«      k  «      t        dd
¬«      k(  sJ ‚y y )Nr/   é   r   ç      ð?r   g-Cëâ6?gq¬‹Ûh ð?)Úepsilonr5   r>   )r5   r>   çš™™™™™¹?r6   ©Úabsr-   )r   r   r)   r	   r   r9   r8   r   ÚnpÚmeanÚpredict)r>   r   r   r5   ÚhuberÚquants         r   Ú*test_quantile_equals_huber_for_low_epsilonrK   I   s¾   € ä S°RÀaÈsÔS�D€A€qØ€EÜØ °]ôç	�cˆ!ˆQƒið 
ô  E¸ÔG×KÑKÈAÈqÓQ€EÜ�E—K‘K §¡°4Õ8ÙØ×Ñ¤6¨%×*:Ñ*:ÀÔ#EÒEÐEÐEä�w‰w�q˜5Ÿ=™=¨Ó+Ñ+Ó,´°sÀÔ0EÒEÐEÑEð r   Úq)r-   gÍÌÌÌÌÌì?gš™™™™™©?c                 óÐ   — t        dddd¬«      \  }}t        | d¬«      j                  ||«      }t        j                  ||j                  |«      k  «      t        | d¬«      k(  sJ ‚y )	Néè  r@   r   rA   r   r3   r.   rD   )r   r	   r)   rF   rG   rH   r   )rL   r   r   rJ   s       r   Ú#test_quantile_estimates_calibrationrO   X   s^   € ô  T°bÀqÐPSÔT�D€A€qÜ q°Ô2×6Ñ6°q¸!Ó<€EÜ�7‰7�1�u—}‘} QÓ'Ñ'Ó(¬F°1¸$Ô,?Ò?Ð?Ñ?r   c                  ó–  — d} t        | ddd¬«      \  }}t        j                  | «      }d|||j                  «       kD  <   t	        dd¬	«      }|j                  |||¬
«       t        j                  ||j                  |«      k  «      }|dkD  sJ ‚t        j                  ||j                  |«      k  |¬«      }|t        dd¬«      k(  sJ ‚y )NrN   é   r   g      $@r   r/   r-   g:Œ0âŽyE>r3   )Úsample_weight)Úweightsç¸…ëQ¸ž?rD   )	r   rF   ÚonesrG   r	   r)   rH   Úaverager   )Únr   r   ÚweightrJ   Úfraction_belowÚweighted_fraction_belows          r   Útest_quantile_sample_weightr[   `   sº   € à€AÜ Q°1À1ÈDÔQ�D€A€qÜ�W‰W�Q‹Z€Fð €Fˆ1ˆq�v‰v‹x‰<ÑÜ s°$Ô7€EØ	‡I�Iˆa� &€IÔ)Ü—W‘W˜Q §¡¨qÓ!1Ñ1Ó2€NØ˜CÒÐÐÜ Ÿj™j¨¨U¯]©]¸1Ó-=Ñ)=ÀvÔNÐØ"¤f¨S°dÔ&;Ò;Ð;Ñ;r   r4   )çš™™™™™É?r-   gš™™™™™é?c                 óê  ‡ ‡	‡
‡— d}t         j                  j                  d«      }t        j                  t        j                  |j                  |«      dd…df   «      |j                  d|df¬«       fd¬«      Š	d}t        j                  d	d
g«      }t        j                  ‰	|z  |z   «      dkD  sJ ‚|j                  ‰	|z  |z    t        j                  d‰ z
  «      z  |¬«      Št        ‰ d¬«      j                  ‰	‰«      }|j                  t        |d¬«      k(  sJ ‚t        |j                   |d¬«       t        t        j"                  |j%                  ‰	«      ‰kD  «      ‰ d¬«       dŠ
|j'                  ‰
¬«      j                  ‰	‰«       t         j(                  |j                  |j                   f   }ˆ	ˆ
ˆ ˆfd„}t+        |g d¢ddddi¬«      } ||«      t         ||j,                  «      «      k(  sJ ‚t        |j                  |j,                  d   «       t        |j                   |j,                  dd «       t        t        j"                  |j%                  ‰	«      ‰kD  «      ‰ d¬«       y)z<Test quantile regression for asymmetric distributed targets.rN   é*   Nr0   r   )Úsize)Úaxisg®Gáz®ó?r-   éþÿÿÿr   ©Úscaler_   r3   r\   ©Úrelç333333ã?©Úrtolr.   r6   ©r5   c                 óž   •— t        ‰‰| dd  z  | d   z   ‰¬«      }t        j                  t        j                  | dd  «      «      }|‰|z  z   S )Nr   r   ri   )r
   rF   ÚsumrE   )r;   ÚlossÚL1r   r5   r4   r   s      €€€€r   Úfuncz#test_asymmetric_error.<locals>.func˜   sP   ø€ Ü   A¨¨Q¨R¨¡L°4¸±7Ñ$:À(ÔKˆÜ�V‰V”B—F‘F˜4  ˜8Ó$Ó%ˆØ�e˜b‘jÑ Ð r   )r   r   éÿÿÿÿzNelder-Meadgê-�™—q=ÚmaxiteriÐ  )ÚfunÚx0ÚmethodÚtolÚoptions)rF   ÚrandomÚRandomStateÚconcatenaterE   ÚrandnÚrandintÚarrayÚminÚexponentialÚlogr	   r)   r8   r   r   r9   rG   rH   Ú
set_paramsÚr_r   Úx)r4   r   Úrngr:   r;   r<   Ú
model_coefrn   Úresr   r5   r   s   `        @@@r   Útest_asymmetric_errorr…   p   s*  û€ ð €IÜ
�)‰)×
Ñ
 Ó
#€CÜ
�‰ä�F‰F�3—9‘9˜YÓ'ª¨4¨Ñ0Ó1Ø�[‰[˜ )¨Q ˆ[Ó0Ð0ð	
ð ô	€Að €IÜ�8‰8�S˜"�IÓ€Dä�6‰6�!�d‘(˜YÑ&Ó'¨!Ò+Ð+Ð+ð
 	�‰Ø�D‘˜9Ñ$Ð%¬¯©¨q°8©|Ó(<Ñ<À9ð 	ó 	€Aô ØØô÷ 
�cˆ!ˆQƒið 
ð ×Ñœv i°SÔ9Ò9Ð9Ð9Ü�E—K‘K ¨CÕ0Ü”B—G‘G˜EŸM™M¨!Ó,¨qÑ0Ó1°8À$ÕGð €EØ	×Ñ˜5ÐÓ!×%Ñ% a¨Ô+Ü—‘�u×'Ñ'¨¯©Ð4Ñ5€J÷!ô
 ØÚØØØ˜DÐ!ô€Cñ �
Óœv¡d¨3¯5©5£kÓ2Ò2Ð2Ð2Ü�E×$Ñ$ c§e¡e¨A¡hÔ/Ü�E—K‘K §¡ q r Ô+Ü”B—G‘G˜EŸM™M¨!Ó,¨qÑ0Ó1°8À$ÖGr   c                 ó,  — t         j                  j                  d«      }d\  }}t        |||d|d¬«      \  }}||j	                  d|j
                  ¬«      z  }t        d¬«      }t        dd	| i|¤Žj                  ||«      }d
}t        dd	| i|¤Žj                  |||z  «      }	|	j                  t        ||j                  z  d¬«      k(  sJ ‚t        |	j                  ||j                  z  d¬«       t        dd	d| z
  i|¤Žj                  || |z  «      }	|	j                  t        | |j                  z  d¬«      k(  sJ ‚t        |	j                  | |j                  z  d¬«       |j                  «       |j                  |«      }}
t        dd	| i|¤Ž}	|	j                  ||||z  z   |
z   «       |	j                  t        |j                  |
z   «      k(  sJ ‚t        |	j                  |j                  |z   d¬«       |j                  ||«      }t        dd	| i|¤Ž}	|	j                  ||z  |«       |	j                  t        |j                  d¬«      k(  sJ ‚t        |	j                  t         j                  j                  ||j                  «      d¬«       y)ziTest equivariace of quantile regression.

    See Koenker (2005) Quantile Regression, Chapter 2.2.3.
    r^   )r/   rQ   r   F)r   r   Ún_informativer   r   Úshuffler/   rb   ri   r4   g      @gñhãˆµøä>rd   rg   r   g�íµ ÷Æ°>N© )rF   rv   rw   r   r}   ÚshapeÚdictr	   r)   r8   r   r   r9   ry   ÚlinalgÚsolve)r4   r‚   r   r   r   r   ÚparamsÚmodel1ÚaÚmodel2Úg_interceptÚg_coefÚAs                r   Útest_equivariancer•   «   s\  € ô �)‰)×
Ñ
 Ó
#€CØ"Ñ€IˆzÜØØØ ØØØô�D€A€qð ˆ�‰˜s¨¯©ˆÓ	1Ñ1€AÜ˜Œ]€FÜÑ;¨Ð;°FÑ;×?Ñ?ÀÀ1ÓE€Fð 	€AÜÑ;¨Ð;°FÑ;×?Ñ?ÀÀ1ÀqÁ5ÓI€FØ×Ñ¤ q¨6×+<Ñ+<Ñ'<À$Ô GÒGÐGÐGÜ�F—L‘L ! f§l¡lÑ"2¸Õ>ô Ñ?¨¨H©Ð?¸Ñ?×CÑCÀAÈÀrÈAÁvÓN€FØ×Ñ¤¨ r¨F×,=Ñ,=Ñ'=À4Ô HÒHÐHÐHÜ�F—L‘L 1 " v§|¡|Ñ"3¸$Õ?ð Ÿ)™)›+ s§y¡y°Ó'<�€KÜÑ;¨Ð;°FÑ;€FØ
‡J�Jˆq�!�a˜&‘j‘. ;Ñ.Ô/Ø×Ñ¤ v×'8Ñ'8¸;Ñ'FÓ GÒGÐGÐGÜ�F—L‘L &§,¡,°Ñ"7¸dÕCð 	�	‰	�*˜jÓ)€AÜÑ;¨Ð;°FÑ;€FØ
‡J�Jˆq�1‰u�aÔØ×Ñ¤ v×'8Ñ'8¸dÔ CÒCÐCÐCÜ�F—L‘L¤"§)¡)§/¡/°!°V·\±\Ó"BÈÖNr   z.ignore:`method='interior-point'` is deprecatedc                  ó,  — t        j                  ddd¬«      j                  dd«      } t        j                  ddd¬«      }t        ddddi¬«      }d	}t	        j
                  t        |¬
«      5  |j                  | |«       ddd«       y# 1 sw Y   yxY w)zTest that linprog fails.r   r   )Únumro   r   r    rp   )r5   r   Úsolver_optionsz9Linear programming for QuantileRegressor did not succeed.r#   N)rF   ÚlinspaceÚreshaper	   r&   Úwarnsr   r)   )r   r   ÚregÚmsgs       r   Útest_linprog_failurerž   Ú   s„   € ô 	�‰�A�r˜rÔ"×*Ñ*¨2¨qÓ1€AÜ
�‰�A�r˜rÔ"€AÜ
ØÐ(¸)ÀQ¸ô€Cð F€CÜ	�‰Ô(°Ô	4ñ Ø�‰��1Œ÷÷ ñ ús   Á.B
Â
BÚsparse_container)Úhighszhighs-dsz	highs-ipmc                 ó¨  — d}d}t        ddd|d¬«      \  }} | |«      }d}	t        ||	|¬«      j                  ||«      }
t        ||	||¬	«      j                  ||«      }t        |j                  |
j                  d
¬«       |j                  dk7  }|
j                  dk7  }|j                  «       t        j                  |d¬«      k(  sJ ‚|j                  «       t        j                  |d¬«      k(  sJ ‚|r^|j                  t        |
j                  «      k(  sJ ‚t        j                  ||j                  |«      k  «      }|t        |d¬«      k(  sJ ‚yy)z/Test that sparse and dense X give same results.r   rf   i,  r@   rA   )r   r   r‡   r   r   rC   )r4   r5   r>   )r4   r5   r>   r   r.   rg   r   r   rD   rT   N)r   r	   r)   r   r9   rk   r&   r   r8   rF   rG   rH   )rŸ   r   r>   Úglobal_random_seedr‡   Úquantile_levelr   r   r*   r5   Úquant_denseÚquant_sparseÚsparse_supportÚdense_supportÚempirical_coverages                  r   Útest_sparse_inputr©   ì   sY  € ð €MØ€NÜØØØØ'Øô�D€A€qñ   Ó"€HØ€EÜ#Ø u¸Môç	�cˆ!ˆQƒið ô %Ø u¸MÐRXôç	�cˆ(�AÓð ô �L×&Ñ&¨×(9Ñ(9ÀÕEØ!×'Ñ'¨1Ñ,€NØ×%Ñ%¨Ñ*€MØ×ÑÓ¤&§-¡-°À1Ô"EÒEÐEÐEØ×ÑÓ¤6§=¡=°ÀAÔ#FÒFÐFÐFÙØ×&Ñ&¬&°×1GÑ1GÓ*HÒHÐHÐHäŸW™W Q¨×)=Ñ)=¸hÓ)GÑ%GÓHÐØ!¤V¨NÀÔ%EÒEÐEÑEð	 r   c                 ó\  — | \  }}ddl }|j                  «       5 }|j                  |j                  j                  dt        d«      «       d}t        j                  t        |¬«      5  t        d¬«      j                  ||«       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w)	zlCheck that we will raise a proper error when requesting
    `solver='interior-point'` in SciPy >= 1.11.
    r   Nr   z1.11.0zBSolver interior-point is not anymore available in SciPy >= 1.11.0.r#   r    r%   )Úsklearn.linear_model._quantileÚcontextÚsetattrÚlinear_modelÚ	_quantiler   r&   r'   r(   r	   r)   )r   Úmonkeypatchr   r   ÚsklearnÚmr+   s          r   Ú test_error_interior_point_futurer³     s    € ð �D€A€qÛ)à	×	Ñ	Ó	ð A !Ø	�	‰	�'×&Ñ&×0Ñ0°,ÄÈhÓ@WÔXØVˆÜ�]‰]œ:¨WÔ5ñ 	AÜÐ%5Ô6×:Ñ:¸1¸aÔ@÷	A÷Að A÷	Að 	Aú÷Að Aús$   šAB"Á(BÂB"ÂB	ÂB"Â"B+)(ÚnumpyrF   r&   r   Úscipy.optimizer   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r	   Úsklearn.metricsr
   Úsklearn.utils._testingr   Úsklearn.utils.fixesr   r   r   r   r   Úfixturer   ÚmarkÚskipifÚbase_versionÚparametrizer,   r=   rK   rO   r[   r…   r•   Úfilterwarningsrž   r©   r³   r‰   r   r   ú<module>rÂ      sy  ðó Û Ý Ý #å ,Ý 1ß BÝ -Ý 2÷õ ð ‡�ñó ðð
 ‡�×ÑÙ�*×)Ñ)Ó*©m¸FÓ.CÑCØAð ó ð ‡�×Ñ˜Ð$4Ð6GÐ#HÓIØ‡�×Ñ˜¨.Ó9ñ:ó :ó Jó	ð:ð ‡�×ÑØ&ò 	ââââðóñ
 óð
 ð ‡�×Ñ˜¨4°¨-Ó8ñFó 9ðFð ‡�×Ñ˜Ò.Ó/ñ@ó 0ð@ò<ð  ‡�×Ñ˜¢_Ó5ñ7Hó 6ð7Hðt ‡�×Ñ˜¢_Ó5ñ+Oó 6ð+Oð\ ‡�×ÑÙ�*×)Ñ)Ó*©m¸FÓ.CÑCØAð ó ð ‡�×ÑÐLÓMñ
ó Nó	ð

ð ‡�×ÑØ˜¨Ñ7¸.ÑHóð ‡�×Ñ˜Ò#EÓFØ‡�×Ñ˜¨4°¨-Ó8ñFó 9ó Góð
Fó>Ar   