§
    ¨éUgé(  ã                   óX  — 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          !                    dd¦  «        d„ ¦   «         Z"ej          !                    dddg¦  «        d„ ¦   «         Z#d„ Z$ej          !                    dej%        ej&        g¦  «        ej          !                    de	eg¦  «        d„ ¦   «         ¦   «         Z'ej          !                    de	eg¦  «        d„ ¦   «         Z(dS )é    )Ú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        dz   fk    sJ ‚dS )zCheck scores attribute shapeT©Úcompute_scoreé   N)ÚdiabetesÚdataÚtargetr   ÚfitÚscores_ÚshapeÚn_iter_©ÚXÚyÚclfs      úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/linear_model/tests/test_bayes.pyÚtest_bayesian_ridge_scoresr      sU   € åŒ=�(œ/€q€Aå
 dÐ
+Ñ
+Ô
+€CØ‡G‚GˆAˆq�M„M€MàŒ;Ô ¤¨q¡Ð 2Ò2Ð2Ð2Ð2Ð2Ð2ó    c            	      ó,  — 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                             ||¦  «        }|
dt          |¦  «        t	          j        |j        |¦  «        z   |t          dt          j        z  ¦  «        z  z   z  z  }
t#          ||||	ddd¬	¦  «        }|                     | |¦  «         t'          |j        d         |
d
¬¦  «         dS )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>   #   s…  € õ Œ=�(œ/€q€AØ”˜”
€Iå
Œ(•2”:Ñ
Ô
Ô
"€CØ•B”F˜1‘I”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˜iÑ(Ô(Ñ(¨3°©=½2¼6À!ÀQÄS¹>¼>Ñ+IÑI€AÝ”)—/’/ ! QÑ'Ô'€KØ	ˆTÝ�A‰Œ�œ ¤ [Ñ1Ô1Ñ1°IÅÀAÍÌÁIÁÄÑ4NÑNññ €Eõ
 ØØØØØØØðñ ô €Cð ‡G‚GˆAˆq�M„M€Må˜œ Aœ¨°qÐ9Ñ9Ô9Ð9Ð9Ð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
¬¦  «                             | |¦  «        }t          |j        |j        z  ¬¦  «                             | |¦  «        }t          |j	        |j	        ¦  «         t          |j        |j        ¦  «         d S )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   V   sÑ   € å
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÑKÔK€AÝ
ŒÐ&Ð&Ð&Ñ'Ô'Ô)€Aõ ¨4Ð0Ñ0Ô0×4Ò4°Q¸Ñ:Ô:€HÝ˜8Ô+¨h¬oÑ=Ð>Ñ>Ô>×BÒBÀ1ÀaÑHÔH€HÝ˜hœn¨h¬nÑ=Ô=Ð=Ý˜Ô+¨XÔ-@ÑAÔAÐAÐAÐ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¬¦  «                             | ||¬¦  «        }t          |j        |j        z  ¬¦  «                             | ||¬¦  «        }t          |j	        |j	        ¦  «         t          |j        |j        ¦  «         d S )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   c   sþ   € å
Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&°1°a°&¸1¸b¸'ÀAÀqÀ6ÐJÑKÔK€AÝ
ŒÐ&Ð&Ð&Ñ'Ô'Ô)€AÝ
ŒÐ&Ð&Ð&Ñ'Ô'Ô)€Aõ ¨4Ð0Ñ0Ô0×4Ò4°Q¸ÈÐ4ÑKÔK€HÝ˜8Ô+¨h¬oÑ=Ð>Ñ>Ô>×BÒBØ	ˆ1˜Að Cñ ô €Hõ ˜hœn¨h¬nÑ=Ô=Ð=Ý˜Ô+¨XÔ-@ÑAÔAÐAÐAÐAr   c                  ó  — t          j        dgdgdgdgdgg¦  «        } t          j        g d¢¦  «        }t          d¬¦  «        }|                     | |¦  «         dgd	gd
gg}t	          |                     |¦  «        g d¢d¦  «         d S )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[   s   s˜   € å
Œ�1�#˜�s˜Q˜C !  r dÐ+Ñ,Ô,€AÝ
ŒÐ!Ð!Ð!Ñ"Ô"€AÝ
 dÐ
+Ñ
+Ô
+€CØ‡G‚GˆAˆq�M„M€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¬¦  «        }|                     | |¦  «                             | |¦  «        }t          |d¦  «         d S )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      s‚   € å
Œ	•"”+˜a  AÑ&Ô&¨Ñ*Ô*€AÝ
ŒÐ+Ð+Ð+Ñ,Ô,€Aõ  3°DÐ
9Ñ
9Ô
9€Cà	�Š��A‰Œ×	Ò	˜Q Ñ	"Ô	"€BÝ˜˜CÑ Ô Ð Ð Ð r   c                  óê  — d} d}t          d¦  «        }|                     ¦   «         }|                     | |f¦  «        }t          j        | |t          j        |¦  «        j        ¬¦  «        }t          j        | |t          j        |¦  «        j        ¬¦  «        }t          ¦   «         t          ¦   «         fD ];}| 	                    ||¦  «         
                    |¦  «        }t          ||¦  «         Œ<d S )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Ô1IÔ1OÐPÑPÔP€AÝŒw�y .½¼ÀÑ8PÔ8PÔ8VÐWÑWÔW€Hå‘”¥¡¤Ð1ð 4ð 4ˆØ—’˜˜A‘”×&Ò& qÑ)Ô)ˆÝ! &¨(Ñ3Ô3Ð3Ð3ð4ð 4r   c                  óœ  — d} d}t          d¦  «        }|                     ¦   «         }|                     | |f¦  «        }t          j        | |t          j        |¦  «        j        ¬¦  «        }d}t          ¦   «         t          ¦   «         fD ]@}| 	                    ||¦  «         
                    |d¬¦  «        \  }}	t          |	|¦  «         ŒAd S )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Ô1IÔ1OÐPÑPÔP€AØ"Ðå‘”¥¡¤Ð1ð :ð :ˆØ—7’7˜1˜a‘=”=×(Ò(¨°tÐ(Ñ<Ô<‰ˆˆ5Ý˜%Ð!8Ñ9Ô9Ð9Ð9ð:ð :r   c                  ó  — t          j        ddgddgg¦  «        } t          j        ddg¦  «        }t          d¬¦  «        }|                     | |¦  «         |j        j        dk    sJ ‚|                     | d¬¦  «         d S )Nr   r   )r(   )r   r   Tru   )r-   rJ   r   r   Úsigma_r   rW   r   s      r   Útest_update_of_sigma_in_ardr}   ­   sˆ   € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€AÝ
 Ð
#Ñ
#Ô
#€CØ‡G‚GˆAˆq�M„M€Mð Œ:Ô˜vÒ%Ð%Ð%Ð%à‡K‚K�˜d€KÑ#Ô#Ð#Ð#Ð#r   c                  ó  — t          j        dgdgdgg¦  «        } t          j        g d¢¦  «        }t          d¬¦  «        }|                     | |¦  «         dgdgdgg}t	          |                     |¦  «        g d¢d¦  «         d S )	Nr   r#   r@   )r   r#   r@   Tr   rA   rV   )r-   rJ   r   r   r   rW   rX   s       r   Útest_toy_ard_objectr   »   sŒ   € å
Œ�1�#˜�s˜Q˜C�Ñ!Ô!€AÝ
Œ���ÑÔ€AÝ
 dÐ
+Ñ
+Ô
+€CØ‡G‚GˆAˆq�M„M€Mð ˆC�!��q�cˆ?€DÝ˜cŸkšk¨$Ñ/Ô/°°°¸AÑ>Ô>Ð>Ð>Ð>r   zn_samples, n_features))rE   éd   )r€   rE   c                 ó   — t           j                             | ¦  «                             d¬¦  «        }|d d …df         }t	          ¦   «         }|                     ||¦  «         t          j        d|j        d         z
  ¦  «        }|dk     sJ ‚d S )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‹   Ç   s‹   € õ 	Œ	×ÒÐ0Ñ1Ô1×8Ò8¸hÐ8ÑGÔG€AØ	ˆ!ˆ!ˆ!ˆQˆ$Œ€Aå‘”€IØ‡M‚M�!�QÑÔÐå”V˜A 	¤°Ô 2Ñ2Ñ3Ô3€NØ˜EÒ!Ð!Ð!Ð!Ð!Ð!r   Úconstructor_namerJ   Ú	dataframec                 ó¨  ‡‡‡— ˆˆfd„Šˆfd„}d}d}d}t          j        g d¢¦  «        ŠdŠt           j                             ||f¦  «        }t          || ¦  «        }t           j                             ||f¦  «        }t          || ¦  «        }t	          g d¢¦  «        D ]±\  }} |||¦  «        }	t          ¦   «         }
|
                     ||	¦  «         |
                     |d	¬
¦  «        \  }}t          |||¬¦  «         t          ¦   «         }|                     ||	¦  «         |                     |d	¬
¦  «        \  }}t          |||¬¦  «         Œ²d S )Nc                 ó4   •— t          j        | ‰¦  «        ‰z   S )N)r-   r3   )r   ÚbrR   s    €€r   Úfztest_return_std.<locals>.fØ   s   ø€ ÝŒv�a˜‰|Œ|˜aÑÐr   c                 óv   •—  ‰| ¦  «        t           j                             | j        d         ¦  «        |z  z   S )Nr   )r-   r„   Úrandnr   )r   Ú
noise_multr‘   s     €r   Úf_noisez test_return_std.<locals>.f_noiseÛ   s/   ø€ Øˆq�‰tŒt•b”i—o’o a¤g¨a¤jÑ1Ô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×Ò˜v q˜kÑ*Ô*€FÝ Ð(8Ñ9Ô9€Få(¨¨¨Ñ8Ô8ð Gð GÑˆ�ØˆG�A�zÑ"Ô"ˆå‰_Œ_ˆØ
�Šˆq�!‰ŒˆØŸ*š* V¸˜*Ñ=Ô=‰ˆ�Ý! &¨*¸gÐFÑFÔFÐFå‰_Œ_ˆØ
�Šˆq�!‰ŒˆØŸ*š* V¸˜*Ñ=Ô=‰ˆ�Ý! &¨*¸gÐFÑFÔFÐFÐFðGð Gr   c                 ó˜  — t           j                             | ¦  «        }dx}}|                     ||¦  «        }d}t          j        d|dz   ¦  «        }t          j        dg|z  ¦  «        }t          ¦   «         }|                     ||||¦  «        }	|                     ||||¦  «        }
t           j	         
                    |	|
¦  «         d S )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Ô
3€Cð
  Ð€I�
Ø�	Š	�)˜ZÑ(Ô(€AØ€EÝŒI�a˜ a™Ñ(Ô(€EÝ”(˜D˜6 JÑ.Ñ/Ô/€Kå
‰/Œ/€Cà×Ò˜a ¨¨{Ñ;Ô;€EØ×/Ò/°°5¸%ÀÑMÔM€Nå„J×Ò˜u nÑ5Ô5Ð5Ð5Ð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        } |¦   «         }|                     ||¦  «         ddg}|D ]"}t	          ||¦  «        j        |j        k    sJ ‚Œ#|                     |d¬¦  «        \  }}|j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )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ÑXÔX€AÝ
ŒÐ&Ð&Ð&Ñ'Ô'Ô)€AàˆI‰KŒK€Eà	‡I‚Iˆa��O„O€OØ˜8Ð$€JØð :ð :ˆ	Ý�u˜iÑ(Ô(Ô.°!´'Ò9Ð9Ð9Ð9Ð9à—M’M !°�MÑ5Ô5�M€FˆEØŒ<˜1œ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        } | ¦   «         }|                     |                     t           j        ¦  «        |¦  «        j        }|                     |                     t           j        ¦  «        |¦  «        j        }t           j         	                    ||d
¬¦  «         d S )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ÔK€AÝ
ŒÐ&Ð&Ð&Ñ'Ô'Ô)€AØˆI‰KŒK€EØ�iŠi˜Ÿš¥¤Ñ,Ô,¨aÑ0Ô0Ô6€GØ�iŠi˜Ÿš¥¤Ñ,Ô,¨aÑ0Ô0Ô6€GÝ„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Ê      s~  ðð Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -à!ˆ8Ô!Ñ#Ô#€ð3ð 3ð 3ð0:ð 0:ð 0:ðf
Bð 
Bð 
BðBð Bð Bð 	?ð 	?ð 	?ð
!ð 
!ð 
!ð4ð 4ð 4ð :ð :ð :ð"$ð $ð $ð	?ð 	?ð 	?ð „×ÒÐ0Ð2HÑIÔIð
"ð 
"ñ JÔIð
"ð „×ÒÐ+¨g°{Ð-CÑDÔDð Gð  Gñ EÔDð GðF6ð 6ð 6ð0 „×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;Ø„×Ò˜ }°mÐ&DÑEÔEð"ð "ñ FÔEñ <Ô;ð"ð" „×Ò˜ }°mÐ&DÑEÔEð<ð <ñ FÔEð<ð <ð <r   