Ë
    íì�iF+  ã                   ó¦  — 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mZ d dlmZ  ej*                  «       Zd„ Zd	„ Zd
„ Zej4                  j7                  dddg«      d„ «       Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej4                  j7                  dd«      d„ «       Z$ej4                  j7                  dddg«      d„ «       Z%d„ Z&ej4                  j7                  dejN                  ejP                  g«      ej4                  j7                  de	eg«      d„ «       «       Z)ej4                  j7                  de	eg«      d „ «       Z*y)!é    )ÚlogN)Údatasets)ÚARDRegressionÚBayesianRidgeÚRidge)Úcheck_random_state)Ú_convert_containerÚassert_allcloseÚ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      úŠ/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/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_samplesr1   Ú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$   rA   r$   r   rB   rC   Tr   ©Úalpha©r.   Úarrayr5   r   r   r   r;   r:   r   Úcoef_r   Ú
intercept_)r   r   Úbr_modelÚrr_models       r   Útest_bayesian_ridge_parameterrP   U   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    zn_samples, n_features)rF   é   )rQ   rF   c                 ó|  — t        j                  | ||¬«      \  }}t        d¬«      j                  ||«      }t        j
                  j                  |j                  t	        j                  |«      z  |j                  t	        j                  |j                  |«      z  z   «      }t        |j                  |d¬«       y)zˆCheck the posterior covariance matrix sigma_

    Non-regression test for https://github.com/scikit-learn/scikit-learn/issues/31093
    )Úrandom_stateF)r*   g�íµ ÷Æ°>©ÚrtolN)r   Úmake_regressionr   r   r.   r6   Úinvr;   Úidentityr:   r4   r5   r
   Úsigma_)r9   Ú
n_featuresÚglobal_random_seedr   r   ÚregÚcovariance_matrixs          r   Útest_bayesian_covariance_matrixr^   b   s�   € ô ×#Ñ#Ø�:Ð,>ô�D€A€qô  eÔ
,×
0Ñ
0°°AÓ
6€CÜŸ	™	Ÿ™Ø�‰”b—k‘k *Ó-Ñ-°·
±
¼R¿V¹VÀAÇCÁCÈ»^Ñ0KÑKóÐô �C—J‘JÐ 1¸Ö=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                  g d
¢«      j                  }t        d¬«      j	                  | ||¬«      }t        |j                  |j                  z  ¬«      j	                  | ||¬«      }t        |j                  |j                  «       t        |j                  |j                  «       y )Nr   rA   rB   rC   rD   r$   rE   rF   rG   )rB   rA   rA   r   r   r$   rA   Tr   )Úsample_weightrH   rJ   )r   r   ÚwrN   rO   s        r   Útest_bayesian_sample_weightsrb   r   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$   rE   é   rF   )r   r$   rE   rd   rF   Tr   rA   rB   ©r   rA   rB   )r.   rK   r   r   r   Úpredict©r   ÚYr   Útests       r   Útest_toy_bayesian_ridge_objectrj   ‚   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   rB   rC   )ç        r"   rl   ç      ð¿rl   r"   gü©ñÒMbP?)Ú
alpha_initÚlambda_init)r.   ÚvanderÚlinspacerK   r   r   r<   r   )r   r   r\   Úr2s       r   Útest_bayesian_initial_paramsrs   Ž   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 )NrB   rC   é*   ©Údtype)r   ÚrandÚrandom_sampler.   ÚfullrK   rw   r   r   r   rf   r   )	r9   rZ   rS   Úconstant_valuer   r   Úexpectedr   Úy_preds	            r   Ú6test_prediction_bayesian_ridge_ard_with_constant_inputr~   ›   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 )NrF   rC   ru   rv   ç{®Gáz„?T©Ú
return_std)r   rx   ry   r.   rz   rK   rw   r   r   r   rf   r   )
r9   rZ   rS   r{   r   r   Úexpected_upper_boundaryr   Ú_Úy_stds
             r   Ú/test_std_bayesian_ridge_ard_with_constant_inputr†   «   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   Tr�   )r.   rK   r   r   rY   r   rf   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$   rA   )r   r$   rA   Tr   rB   re   )r.   rK   r   r   r   rf   rg   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    ))rF   éd   )r‹   rF   c                 ó  — t         j                  j                  | «      j                  d¬«      }|d d …df   }t	        «       }|j                  ||«       t        j                  d|j                  d   z
  «      }|dk  sJ ‚y )N)éú   rA   )Úsizer   g»½×Ùß|Û=)r.   ÚrandomÚRandomStateÚnormalr   r   ÚabsrL   )r[   r9   rZ   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_namerK   Ú	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.   r4   )r   Úbra   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    rC   é2   rF   )r"   rl   r"   rm   rl   r"   )r   r#   r€   Tr�   r,   )
r.   rK   r�   r	   Ú	enumerater   r   rf   r   r   )r–   rŸ   ÚdÚn_trainÚn_testr   ÚX_testr-   rž   r   Úm1Úy_mean1Úy_std1Úm2Úy_mean2Úy_std2rš   r›   ra   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 )NrF   r   T)r.   r�   r�   r�   ÚarangerK   r   Ú_update_sigmaÚ_update_sigma_woodburyÚtestingr
   )r[   Úrngr9   rZ   r   rI   ÚlmbdaÚkeep_lambdar\   Ú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    rw   Ú	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   rA   rB   rC   rD   r$   rE   rF   rv   rG   rL   rY   Tr�   )r.   rK   r5   r   Úgetattrrw   rf   )	rw   r¸   r   r   ÚmodelÚ
attributesÚ	attributeÚy_meanr…   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   rA   rB   rC   rD   r$   rE   rF   rG   g-Cëâ6?rT   )
r.   rK   r5   r   ÚastypeÚfloat32rL   r0   r±   r
   )r¸   r   r   r»   Úcoef_32Úcoef_64s         r   Útest_dtype_correctnessrÅ   3  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   r   Úsklearn.utils.extmathr   Úload_diabetesr   r   r?   rP   ÚmarkÚparametrizer^   rb   rj   rs   r~   r†   rˆ   rŠ   r•   r¬   r·   rÂ   r0   r¿   rÅ   © r    r   ú<module>rÒ      st  ðõ ã Û å ß DÑ DÝ ,÷õ õ .à!ˆ8×!Ñ!Ó#€ò3ò0:òf
Bð ‡�×ÑÐ0°8¸XÐ2FÓGñ>ó Hð>ò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    