Ë
    8Ò^j�.  ã                   óî  — 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!ej4                  j7                  de	eg«      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jP                  ejR                  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      úp/var/www/ramen.bs-engineer-server.com/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_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_weightsrc   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   re   rF   Tr   rA   rB   ©r   rA   rB   )r.   rK   r   r   r   Úpredict©r   ÚYr   Útests       r   Útest_toy_bayesian_ridge_objectrk   ‚   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"   rm   ç      ð¿rm   r"   gü©ñÒMbP?)Ú
alpha_initÚlambda_init)r.   ÚvanderÚlinspacerK   r   r   r<   r   )r   r   r]   Úr2s       r   Útest_bayesian_initial_paramsrt   Ž   sb   € ä
�	‰	”"—+‘+˜a  AÓ&¨Ó*€AÜ
�‰Ò+Ó,€Aô  3°DÔ
9€Cà	�‰��A‹×	Ñ	˜Q Ó	"€BÜ˜˜CÕ r    c                 óÈ  — d}d}t        | «      }|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   rg   r   )
r\   r9   r[   rS   Úconstant_valuer   r   Úexpectedr   Úy_preds
             r   Ú6test_prediction_bayesian_ridge_ard_with_constant_inputr~   ›   sº   € ð €IØ€JÜ%Ð&8Ó9€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        | «      }|j                  «       }|j                  ||f«      }t        j                  ||t        j
                  |«      j                  ¬«      }d}t        «       t        «       fD ]4  }|j                  ||«      j                  |d¬«      \  }	}
t        |
|«       Œ6 y )NrF   rC   rv   ç{®Gáz„?T©Ú
return_std)r   rx   ry   r.   rz   rK   rw   r   r   r   rg   r   )r\   r9   r[   rS   r{   r   r   Úexpected_upper_boundaryr   Ú_Úy_stds              r   Ú/test_std_bayesian_ridge_ard_with_constant_inputr†   «   s©   € ð €IØ€JÜ%Ð&8Ó9€LØ!×&Ñ&Ó(€NØ×"Ñ" I¨zÐ#:Ó;€AÜ
�‰�	˜>´·±¸.Ó1I×1OÑ1OÔP€AØ"Ðä“¤£Ð1ò :ˆØ—7‘7˜1˜a“=×(Ñ(¨°tÐ(Ó<‰ˆˆ5Ü˜%Ð!8Õ9ñ:r    Ú	Estimatorc                 óŠ  — t         j                  j                  |«      }d}t        j                  dd|«      j	                  dd«      }|j	                  d«      d|j                  |«      z  z   } | d¬«      j                  ||«      }t        j                  d	gd
gg«      }|j                  |d¬«      \  }}	|	d   |	d   k  sJ ‚y )NrB   éP   éd   éÿÿÿÿr   rF   TrT   rm   g     €V@r�   r   )	r.   ÚrandomÚRandomStaterr   ÚreshapeÚstandard_normalr   rK   rg   )
r‡   r\   Úrngr9   ÚX_trainÚy_trainÚmodelr   r„   r…   s
             r   Ú#test_std_bayesian_ridge_noncenteredr”   ¼   s¹   € ô
 �)‰)×
Ñ
Ð 2Ó
3€CØ€IÜ�k‰k˜"˜c 9Ó-×5Ñ5°b¸!Ó<€GØ�o‰o˜bÓ! B¨×)<Ñ)<¸YÓ)GÑ$GÑG€GÙ DÔ)×-Ñ-¨g°wÓ?€EÜ
�‰�3�%˜$˜�Ó!€AØ�}‰}˜Q¨4ˆ}Ó0�H€A€uØ�‰8�e˜A‘hÒÐÑ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   rZ   r   rg   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   rf   )r.   rK   r   r   r   rg   rh   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   rŠ   )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.   rŒ   r�   Únormalr   r   ÚabsrL   )r\   r9   r[   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   Úpandasc                 óX  ‡‡‡‡— t         j                  j                  |«      Šˆˆfd„Šˆˆfd„}d}d}d}t        j                  g d¢«      ŠdŠ‰j	                  ||f«      }t        || «      }‰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   Úbrb   s    €€r   Úfztest_return_std.<locals>.fø   s   ø€ Ü�v‰v�a˜‹|˜aÑÐr    c                 óX   •—  ‰| «      ‰j                  | j                  d   «      |z  z   S )Nr   )Úrandnr   )r   Ú
noise_multr¦   r�   s     €€r   Úf_noisez test_return_std.<locals>.f_noiseû   s(   ø€ Ù�‹t�c—i‘i §¡¨¡
Ó+¨jÑ8Ñ8Ð8r    rC   é2   rF   )r"   rm   r"   rn   rm   r"   )r   r#   r€   Tr�   r,   )r.   rŒ   r�   rK   ry   r	   Ú	enumerater   r   rg   r   r   )r¡   r\   rª   ÚdÚn_trainÚn_testr   ÚX_testr-   r©   r   Úm1Úy_mean1Úy_std1Úm2Úy_mean2Úy_std2r¥   r¦   r�   rb   s                    @@@@r   Útest_return_stdr·   ó   s  û€ ô �)‰)×
Ñ
Ð 2Ó
3€Cõ õ9ð 	
€AØ€GØ€Fä
�‰Ò+Ó,€AØ€Aà×Ñ˜7 A˜,Ó'€AÜ˜1Ð.Ó/€Aà×Ñ ¨˜{Ó+€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\   r�   r9   r[   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   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                  ||«       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   rZ   Tr�   )r.   rK   r5   r   Úgetattrrw   rg   )	rw   r‡   r   r   r“   Ú
attributesÚ	attributeÚy_meanr…   s	            r   Útest_dtype_matchrÇ   1  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?rU   )
r.   rK   r5   r   ÚastypeÚfloat32rL   r0   r¼   r
   )r‡   r   r   r“   Úcoef_32Úcoef_64s         r   Útest_dtype_correctnessrÍ   D  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_   rc   rk   rt   r~   r†   r”   r–   r˜   r    r·   rÁ   rÊ   r0   rÇ   rÍ   © r    r   ú<module>rÚ      sŸ  ðõ ã Û å ß DÑ DÝ ,÷õ õ .à!ˆ8×!Ñ!Ó#€ò3ò0:òf
Bð ‡�×ÑÐ0°8¸XÐ2FÓGñ>ó Hð>òBò 	?ò
!ò4ò :ð" ‡�×Ñ˜ }°mÐ&DÓEñó Fðò$ò	?ð ‡�×ÑÐ0Ð2HÓIñ
"ó Jð
"ð ‡�×ÑÐ+¨g°xÐ-@ÓAñ"Gó Bð"GòJ6ð0 ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜ }°mÐ&DÓEñ"ó Fó <ð"ð" ‡�×Ñ˜ }°mÐ&DÓEñ<ó Fñ<r    