o
    tBh1                     @   s   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZmZmZmZ ejdd\ZZeddd f Zej\ZZd	d
 Zdd Zdd Zdd Zdd Zdd Zej !de j"egdd Z#dd Z$dd Z%dS )    N)assert_almost_equal)assert_array_almost_equal)assert_array_equal)datasets)	empirical_covarianceEmpiricalCovarianceShrunkCovarianceshrunk_covariance
LedoitWolfledoit_wolfledoit_wolf_shrinkageOASoasT)
return_X_yc                  C   s  t  } | t tt}t|| jd t| |d t| j|ddd t| j|ddd t| j|ddd t| j|ddd t	t
 | j|d	d W d    n1 sZw   Y  | t}t|dksmJ td d df d
}t  } | | tt|| jd t| t|d t| jt|ddd tddd}t  } d}tjt|d | | W d    n1 sw   Y  t| jtjdtjd tddgddgg}tddgddgg}tt|| t dd} | t t| jttjd  d S )N   r   spectral)norm	frobeniusF)scaling)squaredfoo      r   BOnly one sample available. You may want to reshape your data arraymatchr   r   shapedtypeg      ?g      пTassume_centered)r   fitXr   r   covariance_r   
error_normpytestraisesNotImplementedErrormahalanobisnpaminreshapearangewarnsUserWarningzerosfloat64asarrayr   	location_r    )covemp_cov
mahal_distX_1d	X_1samplewarn_msg	X_integerresult r>   /var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/sklearn/covariance/tests/test_covariance.pytest_covariance    sB   




r@   c                  C   s   t dd} | t ttttdd| jd t  } | t tttt| jd t dd} | t ttt| jd td d df d}t dd} | | tt|| jd t ddd	} | t | jd u smJ d S )
Ng      ?	shrinkager   g        r   r   g333333?F)rB   store_precision)	r   r$   r%   r   r	   r   r&   r.   
precision_)r6   r9   r>   r>   r?   test_shrunk_covarianceO   s(   







rE   c            
      C   s  t t jdd } tdd}||  |j}|| }tt| dd| tt| ddd| t| dd\}}t	||j
d t||j t|jdd}||  t	|j
|j
d t d d df d	}tdd}|| t|dd\}}t	||j
d t||j t	|d
  t |j
d tddd}||  t|| |d |jd u sJ t }|t  t|j|d t|jtt  t|jtt d  t|t |d tt \}}t	||j
d t||j t|jd}|t  t	|j
|j
d t d d df d	}t }|| t|\}}t	||j
d t||j t	t||j
d tddd}t }d}	tjt|	d || W d    n	1 sMw   Y  t	|j
tjdtjd tdd}|t  t|t |d |jd u syJ d S )Nr   axisTr"      )r#   
block_sizer   rB   r#   r      FrC   r#   r   rA   r   r   r   r   r   rC   )r%   meanr
   r$   
shrinkage_scorer   r   r   r   r&   r   r.   sum	n_samplesrD   r   r,   r/   r(   r0   r1   r2   r3   )

X_centeredlwrO   score_lw_cov_from_mlelw_shrinkage_from_mlescovr9   r:   r;   r>   r>   r?   test_ledoit_wolfp   sz   












rY   c                 C   s   | j \}}t| dd}t|| }| }|jd d |d   |8  < |d  | }| d }d||  tt|j|| |d   }t	||}	|	| }
|
S )NFr"   r   rK   g      ?)
r    r   r,   tracecopyflatrQ   dotTmin)r%   rR   
n_featuresr7   mudelta_deltaX2beta_betarB   r>   r>   r?   _naive_ledoit_wolf_shrinkage   s    

rg   c                  C   s<   t d d d df } t }||  |j}t|t|  d S )Nr   )r%   r
   r$   rO   r   rg   )X_smallrT   rO   r>   r>   r?   test_ledoit_wolf_small   s
   
ri   c                  C   sb   t jd} | jdd}tdd|}t|jt dd |j}tdd|}t|j| d S )Nr   )
      )sizerj   )rI   rk      )	r,   randomRandomStatenormalr
   r$   r   r&   eye)rngr%   rT   r6   r>   r>   r?   test_ledoit_wolf_large   s   rs   ledoit_wolf_fitting_functionc                 C   sF   t d}tjtdd | | W d   dS 1 sw   Y  dS )zDCheck that we validate X and raise proper error with 0-sample array.)r   rK   zFound array with 0 sampler   N)r,   r2   r(   r)   
ValueError)rt   X_emptyr>   r>   r?   test_ledoit_wolf_empty_array   s   

"rw   c            
      C   s  t t jdd } tdd}||  |j}|| }t| dd\}}t||jd t	||j t
|jdd}||  t|j|jd t d d ddf }tdd}|| t|dd\}}t||jd t	||j t|d  t |jd td	dd
}||  t	|| |d |jd u sJ t }|t  t	|j|d t	|t |d tt \}}t||jd t	||j t
|jd}|t  t|j|jd t d d df d}t }|| t|\}}t||jd t	||j tt||jd tddd}t }d}	tjt|	d || W d    n	1 s'w   Y  t|jtjdtjd td	d}|t  t	|t |d |jd u sSJ d S )Nr   rF   Tr"   r   rJ   r   rK   FrL   rA   r   r   r   r   r   r   rM   )r%   rN   r   r$   rO   rP   r   r   r&   r   r   rQ   rR   rD   r.   r   r,   r/   r(   r0   r1   r2   r3   )
rS   oarO   rU   oa_cov_from_mleoa_shrinkage_from_mlerX   r9   r:   r;   r>   r>   r?   test_oas  sd   











r{   c                  C   sl   t  t} dtjd  d}tjt|d | tddddf  W d   dS 1 s/w   Y  dS )z@Checks that EmpiricalCovariance validates data with mahalanobis.z'X has 2 features, but \w+ is expecting r   z features as inputr   NrK   )r   r$   r%   r    r(   r)   ru   r+   )r6   msgr>   r>   r?   .test_EmpiricalCovariance_validates_mahalanobisK  s
   "r}   )&numpyr,   r(   sklearn.utils._testingr   r   r   sklearnr   sklearn.covariancer   r   r   r	   r
   r   r   r   r   load_diabetesr%   _r9   r    rR   r`   r@   rE   rY   rg   ri   rs   markparametrizer$   rw   r{   r}   r>   r>   r>   r?   <module>   s,   ,
/!V

I