Ë
    ÷Q(h¬(  ã                   óZ  — d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZmZmZmZ d dlmZ  ej(                  «       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej@                  jC                  dd«      d„ «       Z"ej@                  jC                  dddg«      d„ «       Z#d„ Z$ej@                  jC                  dejJ                  ejL                  g«      ej@                  jC                  de	eg«      d„ «       «       Z'ej@                  jC                  de	eg«      d„ «       Z(y)é    )ÚlogN)Údatasets)ÚARDRegressionÚBayesianRidgeÚRidge)Úcheck_random_state)Ú_convert_containerÚassert_almost_equalÚassert_array_almost_equalÚassert_array_less)Úfast_logdetc                  óÒ   — t         j                  t         j                  }} t        d¬«      }|j	                  | |«       |j
                  j                  |j                  dz   fk(  sJ ‚y)zCheck scores attribute shapeT©Úcompute_scoreé   N)ÚdiabetesÚdataÚtargetr   ÚfitÚscores_ÚshapeÚn_iter_©ÚXÚyÚclfs      úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_bayes.pyÚtest_bayesian_ridge_scoresr      sM   € ä�=‰=œ(Ÿ/™/€q€Aä
 dÔ
+€CØ‡G�GˆAˆq„Mà�;‰;×Ñ §¡¨q¡Ð 2Ò2Ð2Ñ2ó    c            	      óB  — t         j                  t         j                  }} | j                  d   }t	        j
                  t        j                  «      j                  }dt	        j                  |«      |z   z  }d}d}d}d}d}	|t        |«      z  |	|z  z
  }
|
|t        |«      z  ||z  z
  z  }
d|z  t	        j                  |«      z  d|z  t	        j                  | | j                  «      z  z   }t        j                  j                  ||«      }|
dt        |«      t	        j                  |j                  |«      z   |t        dt        j                   z  «      z  z   z  z  }
t#        ||||	ddd¬	«      }|j%                  | |«       t'        |j(                  d   |
d
¬«       y)aÀ  Check value of score on toy example.

    Compute log marginal likelihood with equation (36) in Sparse Bayesian
    Learning and the Relevance Vector Machine (Tipping, 2001):

    - 0.5 * (log |Id/alpha + X.X^T/lambda| +
             y^T.(Id/alpha + X.X^T/lambda).y + n * log(2 * pi))
    + lambda_1 * log(lambda) - lambda_2 * lambda
    + alpha_1 * log(alpha) - alpha_2 * alpha

    and check equality with the score computed during training.
    r   ç      ð?çš™™™™™¹?g      à¿é   r   FT)Úalpha_1Úalpha_2Úlambda_1Úlambda_2Úmax_iterÚfit_interceptr   é	   ©ÚdecimalN)r   r   r   r   ÚnpÚfinfoÚfloat64ÚepsÚvarr   ÚeyeÚdotÚTÚlinalgÚsolver   Úpir   r   r
   r   )r   r   Ú	n_samplesr0   Úalpha_Úlambda_r$   r%   r&   r'   ÚscoreÚMÚM_inv_dot_yr   s                 r   Ú test_bayesian_ridge_score_valuesr>   !   so  € ô �=‰=œ(Ÿ/™/€q€AØ—‘˜‘
€Iä
�(‰(”2—:‘:Ó
×
"Ñ
"€CØ”B—F‘F˜1“I ‘OÑ$€FØ€Gð €GØ€GØ€HØ€Hð ”s˜7“|Ñ# h°Ñ&8Ñ8€EØ	ˆW”s˜6“{Ñ" W¨vÑ%5Ñ5Ñ5€EØˆf‰”r—v‘v˜iÓ(Ñ(¨3°©=¼2¿6¹6À!ÀQÇSÁS»>Ñ+IÑI€AÜ—)‘)—/‘/ ! QÓ'€KØ	ˆTÜ�A‹œŸ™ §¡ [Ó1Ñ1°IÄÀAÌÏÉÁIÃÑ4NÑNññ €Eô
 ØØØØØØØô€Cð ‡G�GˆAˆq„Mä˜Ÿ™ A™¨°qÖ9r   c            
      ó¸  — t        j                  ddgddgddgddgddgddgddgg«      } t        j                  g d	¢«      j                  }t        d
¬«      j	                  | |«      }t        |j                  |j                  z  ¬«      j	                  | |«      }t        |j                  |j                  «       t        |j                  |j                  «       y )Nr   é   é   é   é   r#   é   é
   ©r   r#   r@   r#   r   rA   rB   Tr   ©Úalpha©r-   Úarrayr4   r   r   r   r:   r9   r   Úcoef_r
   Ú
intercept_)r   r   Úbr_modelÚrr_models       r   Útest_bayesian_ridge_parameterrO   T   s·   € ä
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÓK€AÜ
�‰Ò&Ó'×)Ñ)€Aô ¨4Ô0×4Ñ4°Q¸Ó:€HÜ˜8×+Ñ+¨h¯o©oÑ=Ô>×BÑBÀ1ÀaÓH€HÜ˜hŸn™n¨h¯n©nÔ=Ü˜×+Ñ+¨X×-@Ñ-@ÕAr   c            
      ó  — t        j                  ddgddgddgddgddgddgddgg«      } t        j                  g d	¢«      j                  }t        j                  g d
¢«      j                  }t        d¬«      j	                  | ||¬«      }t        |j                  |j                  z  ¬«      j	                  | ||¬«      }t        |j                  |j                  «       t        |j                  |j                  «       y )Nr   r@   rA   rB   rC   r#   rD   rE   rF   )rA   r@   r@   r   r   r#   r@   Tr   )Úsample_weightrG   rI   )r   r   ÚwrM   rN   s        r   Útest_bayesian_sample_weightsrS   a   sÞ   € ä
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÓK€AÜ
�‰Ò&Ó'×)Ñ)€AÜ
�‰Ò&Ó'×)Ñ)€Aô ¨4Ô0×4Ñ4°Q¸ÈÐ4ÓK€HÜ˜8×+Ñ+¨h¯o©oÑ=Ô>×BÑBØ	ˆ1˜Að Có €Hô ˜hŸn™n¨h¯n©nÔ=Ü˜×+Ñ+¨X×-@Ñ-@ÕAr   c                  óø   — t        j                  dgdgdgdgdgg«      } t        j                  g d¢«      }t        d¬«      }|j                  | |«       dgd	gd
gg}t	        |j                  |«      g d¢d«       y )Nr   r#   rD   é   rE   )r   r#   rD   rU   rE   Tr   r@   rA   ©r   r@   rA   )r-   rJ   r   r   r   Úpredict©r   ÚYr   Útests       r   Útest_toy_bayesian_ridge_objectr[   q   ss   € ä
�‰�1�#˜�s˜Q˜C !  r dÐ+Ó,€AÜ
�‰Ò!Ó"€AÜ
 dÔ
+€CØ‡G�GˆAˆq„Mð ˆC�!��q�cˆ?€DÜ˜cŸk™k¨$Ó/²¸AÕ>r   c                  óþ   — t        j                  t        j                  ddd«      d«      } t        j                  g d¢«      }t	        dd¬«      }|j                  | |«      j                  | |«      }t        |d«       y )Nr   rA   rB   )ç        r!   r]   ç      ð¿r]   r!   gü©ñÒMbP?)Ú
alpha_initÚlambda_init)r-   ÚvanderÚlinspacerJ   r   r   r;   r
   )r   r   ÚregÚr2s       r   Útest_bayesian_initial_paramsre   }   sb   € ä
�	‰	”"—+‘+˜a  AÓ&¨Ó*€AÜ
�‰Ò+Ó,€Aô  3°DÔ
9€Cà	�‰��A‹×	Ñ	˜Q Ó	"€BÜ˜˜CÕ r   c                  óÈ  — d} d}t        d«      }|j                  «       }|j                  | |f«      }t        j                  | |t        j
                  |«      j                  ¬«      }t        j                  | |t        j
                  |«      j                  ¬«      }t        «       t        «       fD ]/  }|j                  ||«      j                  |«      }t        ||«       Œ1 y )NrA   rB   é*   ©Údtype)r   ÚrandÚrandom_sampler-   ÚfullrJ   ri   r   r   r   rW   r   )	r8   Ú
n_featuresÚrandom_stateÚconstant_valuer   r   Úexpectedr   Úy_preds	            r   Ú6test_prediction_bayesian_ridge_ard_with_constant_inputrr   Š   s¹   € ð €IØ€JÜ% bÓ)€LØ!×&Ñ&Ó(€NØ×"Ñ" I¨zÐ#:Ó;€AÜ
�‰�	˜>´·±¸.Ó1I×1OÑ1OÔP€AÜ�w‰w�y .¼¿¹ÀÓ8P×8VÑ8VÔW€Hä“¤£Ð1ò 4ˆØ—‘˜˜A“×&Ñ& qÓ)ˆÜ! &¨(Õ3ñ4r   c                  ól  — d} d}t        d«      }|j                  «       }|j                  | |f«      }t        j                  | |t        j
                  |«      j                  ¬«      }d}t        «       t        «       fD ]4  }|j                  ||«      j                  |d¬«      \  }}	t        |	|«       Œ6 y )NrE   rB   rg   rh   ç{®Gáz„?T©Ú
return_std)r   rj   rk   r-   rl   rJ   ri   r   r   r   rW   r   )
r8   rm   rn   ro   r   r   Úexpected_upper_boundaryr   Ú_Úy_stds
             r   Ú/test_std_bayesian_ridge_ard_with_constant_inputrz   š   s¨   € ð €IØ€JÜ% bÓ)€LØ!×&Ñ&Ó(€NØ×"Ñ" I¨zÐ#:Ó;€AÜ
�‰�	˜>´·±¸.Ó1I×1OÑ1OÔP€AØ"Ðä“¤£Ð1ò :ˆØ—7‘7˜1˜a“=×(Ñ(¨°tÐ(Ó<‰ˆˆ5Ü˜%Ð!8Õ9ñ:r   c                  ó   — t        j                  ddgddgg«      } t        j                  ddg«      }t        d¬«      }|j                  | |«       |j                  j
                  dk(  sJ ‚|j                  | d¬«       y )Nr   r   )r(   )r   r   Tru   )r-   rJ   r   r   Úsigma_r   rW   r   s      r   Útest_update_of_sigma_in_ardr}   «   sr   € ô 	�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ
�‰�!�Q�Ó€AÜ
 Ô
#€CØ‡G�GˆAˆq„Mð �:‰:×Ñ˜vÒ%Ð%Ð%à‡K�K�˜d€KÕ#r   c                  óð   — t        j                  dgdgdgg«      } t        j                  g d¢«      }t        d¬«      }|j                  | |«       dgdgdgg}t	        |j                  |«      g d¢d«       y )	Nr   r#   r@   )r   r#   r@   Tr   rA   rV   )r-   rJ   r   r   r   rW   rX   s       r   Útest_toy_ard_objectr   ¹   si   € ä
�‰�1�#˜�s˜Q˜C�Ó!€AÜ
�‰’Ó€AÜ
 dÔ
+€CØ‡G�GˆAˆq„Mð ˆC�!��q�cˆ?€DÜ˜cŸk™k¨$Ó/²¸AÕ>r   zn_samples, n_features))rE   éd   )r€   rE   c                 ó  — t         j                  j                  | «      j                  d¬«      }|d d …df   }t	        «       }|j                  ||«       t        j                  d|j                  d   z
  «      }|dk  sJ ‚y )N)éú   r@   )Úsizer   g»½×Ùß|Û=)r-   ÚrandomÚRandomStateÚnormalr   r   ÚabsrK   )Úglobal_random_seedr8   rm   r   r   Ú	regressorÚabs_coef_errors          r   Ú!test_ard_accuracy_on_easy_problemr‹   Å   ss   € ô 	�	‰	×ÑÐ0Ó1×8Ñ8¸hÐ8ÓG€AØ	Š!ˆQˆ$‰€Aä“€IØ‡M�M�!�QÔä—V‘V˜A 	§¡°Ñ 2Ñ2Ó3€NØ˜EÒ!Ð!Ñ!r   Úconstructor_namerJ   Ú	dataframec                 óN  ‡‡‡— ˆˆfd„Šˆfd„}d}d}d}t        j                  g d¢«      ŠdŠt         j                  j                  ||f«      }t        || «      }t         j                  j                  ||f«      }t        || «      }t	        g d¢«      D ]Ž  \  }} |||«      }	t        «       }
|
j                  ||	«       |
j                  |d	¬
«      \  }}t        |||¬«       t        «       }|j                  ||	«       |j                  |d	¬
«      \  }}t        |||¬«       Œ� y )Nc                 ó6   •— t        j                  | ‰«      ‰z   S )N)r-   r3   )r   ÚbrR   s    €€r   Úfztest_return_std.<locals>.fÖ   s   ø€ Ü�v‰v�a˜‹|˜aÑÐr   c                 ót   •—  ‰| «      t         j                  j                  | j                  d   «      |z  z   S )Nr   )r-   r„   Úrandnr   )r   Ú
noise_multr‘   s     €r   Úf_noisez test_return_std.<locals>.f_noiseÙ   s,   ø€ Ù�‹t”b—i‘i—o‘o a§g¡g¨a¡jÓ1°JÑ>Ñ>Ð>r   rB   é2   rE   )r!   r]   r!   r^   r]   r!   )r   r"   rt   Tru   r+   )
r-   rJ   r„   r	   Ú	enumerater   r   rW   r   r   )rŒ   r•   ÚdÚn_trainÚn_testr   ÚX_testr,   r”   r   Úm1Úy_mean1Úy_std1Úm2Úy_mean2Úy_std2r�   r‘   rR   s                   @@@r   Útest_return_stdr¢   Ó   s  ú€ õ ô?ð 	
€AØ€GØ€Fä
�‰Ò+Ó,€AØ€Aä
�	‰	×Ñ˜' 1˜Ó&€AÜ˜1Ð.Ó/€Aä�Y‰Y×Ñ˜v q˜kÓ*€FÜ Ð(8Ó9€Fä(ªÓ8ò GÑˆ�Ù�A�zÓ"ˆä‹_ˆØ
�‰ˆq�!ŒØŸ*™* V¸˜*Ó=‰ˆ�Ü! &¨*¸gÕFä‹_ˆØ
�‰ˆq�!ŒØŸ*™* V¸˜*Ó=‰ˆ�Ü! &¨*¸gÖFñGr   c                 óz  — t         j                  j                  | «      }dx}}|j                  ||«      }d}t        j                  d|dz   «      }t        j
                  dg|z  «      }t        «       }|j                  ||||«      }	|j                  ||||«      }
t         j                  j                  |	|
«       y )NrE   r   T)r-   r„   r…   r“   ÚarangerJ   r   Ú_update_sigmaÚ_update_sigma_woodburyÚtestingÚassert_allclose)rˆ   Úrngr8   rm   r   rH   ÚlmbdaÚkeep_lambdarc   ÚsigmaÚsigma_woodburys              r   Útest_update_sigmar®   ÷   sª   € ô
 �)‰)×
Ñ
Ð 2Ó
3€Cð
  Ð€I�
Ø�	‰	�)˜ZÓ(€AØ€EÜ�I‰I�a˜ a™Ó(€EÜ—(‘(˜D˜6 JÑ.Ó/€Kä
‹/€Cà×Ñ˜a ¨¨{Ó;€EØ×/Ñ/°°5¸%ÀÓM€Nä‡J�J×Ñ˜u nÕ5r   ri   Ú	Estimatorc           
      óÈ  — t        j                  ddgddgddgddgddgddgddgg| ¬	«      }t        j                  g d
¢«      j                  } |«       }|j                  ||«       ddg}|D ]'  }t	        ||«      j
                  |j
                  k(  rŒ'J ‚ |j                  |d¬«      \  }}|j
                  |j
                  k(  sJ ‚|j
                  |j
                  k(  sJ ‚y )Nr   r@   rA   rB   rC   r#   rD   rE   rh   rF   rK   r|   Tru   )r-   rJ   r4   r   Úgetattrri   rW   )	ri   r¯   r   r   ÚmodelÚ
attributesÚ	attributeÚy_meanry   s	            r   Útest_dtype_matchr¶     så   € ô 	�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÐRWÔX€AÜ
�‰Ò&Ó'×)Ñ)€Aá‹K€Eà	‡I�Iˆa�„OØ˜8Ð$€JØò :ˆ	Ü�u˜iÓ(×.Ñ.°!·'±'Ó9Ð9Ð9ð:ð —M‘M !°�MÓ5�M€FˆEØ�<‰<˜1Ÿ7™7Ò"Ð"Ð"Ø�;‰;˜!Ÿ'™'Ò!Ð!Ñ!r   c           
      óÐ  — t        j                  ddgddgddgddgddgddgddgg«      }t        j                  g d	¢«      j                  } | «       }|j                  |j	                  t         j
                  «      |«      j                  }|j                  |j	                  t         j                  «      |«      j                  }t         j                  j                  ||d
¬«       y )Nr   r@   rA   rB   rC   r#   rD   rE   rF   g-Cëâ6?)Úrtol)
r-   rJ   r4   r   ÚastypeÚfloat32rK   r/   r§   r¨   )r¯   r   r   r²   Úcoef_32Úcoef_64s         r   Útest_dtype_correctnessr½   "  s¶   € ä
�‰�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÓK€AÜ
�‰Ò&Ó'×)Ñ)€AÙ‹K€EØ�i‰i˜Ÿ™¤§¡Ó,¨aÓ0×6Ñ6€GØ�i‰i˜Ÿ™¤§¡Ó,¨aÓ0×6Ñ6€GÜ‡J�J×Ñ˜w¨°dÐÕ;r   ))Úmathr   Únumpyr-   ÚpytestÚsklearnr   Úsklearn.linear_modelr   r   r   Úsklearn.utilsr   Úsklearn.utils._testingr	   r
   r   r   Úsklearn.utils.extmathr   Úload_diabetesr   r   r>   rO   rS   r[   re   rr   rz   r}   r   ÚmarkÚparametrizer‹   r¢   r®   rº   r/   r¶   r½   © r   r   ú<module>rÊ      sH  ðõ ã Û å ß DÑ DÝ ,÷ó õ .à!ˆ8×!Ñ!Ó#€ò3ò0:òf
BòBò 	?ò
!ò4ò :ò"$ò	?ð ‡�×ÑÐ0Ð2HÓIñ
"ó Jð
"ð ‡�×ÑÐ+¨g°{Ð-CÓDñ Gó Eð GòF6ð0 ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜ }°mÐ&DÓEñ"ó Fó <ð"ð" ‡�×Ñ˜ }°mÐ&DÓEñ<ó Fñ<r   