
    PiF+                        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j                            dddg          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_allclose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      y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/linear_model/tests/test_bayes.pytest_bayesian_ridge_scoresr      sU    =(/qA
d
+
+
+CGGAqMMM;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_samplesr1   alpha_lambda_r%   r&   r'   r(   scoreMM_inv_dot_yr   s                 r    test_bayesian_ridge_score_valuesr?   "   s    =(/qA
I
(2:


"CBF1IIO$FG GGHH s7||#h&88E	Ws6{{"Wv%555Efrvi(((3=26!QS>>+IIA)//!Q''K	TA[111IAI4NN E
   C GGAqMMM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$   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    
1a&1a&1a&1a&1a&1b'Aq6JKKA
&&&'')A 400044Q::H8+ho=>>>BB1aHHHhnhn===+X-@AAAAAr    zn_samples, n_features)rF      )rQ   rF   c                 h   t          j        | ||          \  }}t          d                              ||          }t          j                            |j        t	          j        |          z  |j	        t	          j
        |j        |          z  z             }t          |j        |d           dS )zCheck 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     #:,>  DAq e
,
,
,
0
0A
6
6C	bk*---
RVAC^^0KK  CJ 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                              | ||          }t          |j        |j        z                                | ||          }t          |j	        |j	                   t          |j        |j                   d S )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    
1a&1a&1a&1a&1a&1b'Aq6JKKA
&&&'')A
&&&'')A 400044Q4KKH8+ho=>>>BB	1A C  H hnhn===+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$   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      s    
1#sQC!rd+,,A
!!!""A
d
+
+
+CGGAqMMM C!qc?Dckk$//A>>>>>r    c                     t          j        t          j        ddd          d          } t          j        g d          }t	          dd          }|                    | |                              | |          }t          |d           d S )Nr   rB   rC   )        r"   rl         rl   r"   gMbP?)
alpha_initlambda_init)r.   vanderlinspacerK   r   r   r<   r   )r   r   r\   r2s       r   test_bayesian_initial_paramsrs      s    
	"+aA&&**A
+++,,A 3D
9
9
9C	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 )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""Iz#:;;A
	>.1I1I1OPPPAwy.8P8P8VWWWH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 )NrF   rC   ru   rv   {Gz?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""Iz#:;;A
	>.1I1I1OPPPA"1 : :771a==((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   Tr   )r.   rK   r   r   rY   r   rf   r   s      r   test_update_of_sigma_in_ardr      s     	1a&1a&!""A
!QA

#
#
#CGGAqMMM :v%%%%KKdK#####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$   rA   )r   r$   rA   Tr   rB   re   )r.   rK   r   r   r   rf   rg   s       r   test_toy_ard_objectr      s    
1#sQC!!A
A
d
+
+
+CGGAqMMM C!qc?Dckk$//A>>>>>r    ))rF   d   )r   rF   c                     t           j                            |                               d          }|d d df         }t	                      }|                    ||           t          j        d|j        d         z
            }|dk     sJ d S )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      s     		01188h8GGA	!!!Q$AIMM!QVA	 2233NE!!!!!!r    constructor_namerK   	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.   r4   )r   bra   s    r   fztest_return_std.<locals>.f   s    va||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ttbiooagaj11J>>>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vqk**F(899F(88 G GGAz""__
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 )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
3C
  I
		)Z((AEIaa((E(D6J.//K
//Ca{;;E//5%MMNJun5555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        } |            }|                    ||           ddg}|D ]"}t	          ||          j        |j        k    sJ #|                    |d          \  }}|j        |j        k    sJ |j        |j        k    sJ d S )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     	1a&1a&1a&1a&1a&1b'Aq6JRWXXXA
&&&'')AIKKE	IIaOOO8$J : :	ui((.!'99999MM!M55MFE<17"""";!'!!!!!!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   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    
1a&1a&1a&1a&1a&1b'Aq6JKKA
&&&'')AIKKEii,,a006Gii,,a006G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      s                    D D D D D D D D D D , , , , , ,              . - - - - -!8!##3 3 30: 0: 0:f
B 
B 
B 08X2FGG> > HG>B B B 	? 	? 	?
! 
! 
!4 4 4 : : :"$ $ $	? 	? 	? 02HII
" 
" JI
" +g{-CDD G  G ED GF6 6 60 2:rz":;;}m&DEE" " FE <;"" }m&DEE< < FE< < <r    