
    0Ph&                        d dl Z 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mZmZ d dlmZ d dlmZ d dlmZ d d	lmZ d
 Zd Zej                            dg d          ej                            dg d          d                         Zd&dZej                            dg d          ej                            dg d          d                         Zd&dZd Zd Zd Z ej                            ddg dg          d             Z!ej                            d d!d"g          d#             Z"ej                            dg d$          d%             Z#dS )'    N)
make_blobs)NotFittedError)GridSearchCV)KDTreeKernelDensityNearestNeighbors)kernel_norm)make_pipeline)StandardScaler)assert_allclosec                    |dk    r"|j         d         d|j         d         dz   z  z  }n;|dk    r5|j         d         |j         d         dz   z  dz  d|j         d         dz   z  z  }t          j        | d d d d d f         |z
  dz                      d                    }t	          ||j         d         |          |j         d         z  }|dk    r6|t          j        d	||z  z  ||z  z                                d          z  S |d
k    r|||k                         d          z  S |dk    r+|d||z  ||z  z  z
  ||k     z                      d          z  S |dk    r.|t          j        | |z                                d          z  S |dk    r%|d||z  z
  ||k     z                      d          z  S |dk    rD|t          j        dt          j        z  |z  |z            ||k     z                      d          z  S t          d          )Nscottr         	silverman   gaussiang      tophatepanechnikov      ?exponentiallinearcosineg      ?zkernel not recognized)	shapenpsqrtsumr	   expcospi
ValueError)YXkernelhdnorms         `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/neighbors/tests/test_kde.pycompute_kernel_slowr*      s#   G||GAJ2a01	
k		WQZ171:>*Q.B!'!*q.4IJ
!AAAtQQQJ-!#)..r2233Aq!'!*f--
:DbfTQU^q1u566::2>>>>	8		q1ukk"oo%%	>	!	!q1uQ//AE:??CCCC	=	 	 rvqb1f~~**2....	8		AE	a!e,11"5555	8		rvcBEkAo122a!e<AA"EEEE0111    c           	         t          | |||          }|                    |                              |          }t          t	          j        |          ||t          d|                     t          t	          j        |                    |                    t	          j        |          |t          d|                     d S )N)r%   	bandwidthatolrtolgHz>)r.   r/   )	r   fitscore_samplesr   r   r   maxscoreprod)	r%   r-   r.   r/   r$   r#   	dens_truekdelog_denss	            r)   check_resultsr8   )   s    
vD
Q
Q
QCwwqzz''**HBF8$$idT4QQQQ
syy||bgi00t#dD//     r+   r%   )r   r   r   r   r   r   r-   ){Gz?皙?r   r   r   c                    d\  }}t           j                            d          }|                    ||          }|                    ||          }t	          ||| |          }dD ]!}dD ]}	dD ]}
t          | ||	||||           "d S )Nd      r   )r   gh㈵>)gư>r9   )TF)r   randomRandomStaterandnr*   r8   )r%   r-   	n_samples
n_featuresrngr$   r#   r5   r/   r.   breadth_firsts              r)   test_kernel_densityrF   2   s    
 %Iz
)


"
"C		)Z((A		)Z((A#Aq&)<<I N N  	N 	ND!. N NfitQ9MMMMN	NN Nr+   r=   r>   c                    t           j                            d          }|                    | |          }d}dD ]}t	          ||                              |          }|                    d          }|j        |j        k    sJ t          d                              |          }|	                    |d	          \  }	}
|d
k    rt          j
        |	|k               sJ |dk    rt          j
        |	d|z  k               sJ dD ]l}t	          ||                              |          }t          j        t                    5  |                    d           d d d            n# 1 swxY w Y   m|                    dd          }t	          d                              |          }|                                j        dk    sJ d S )Nr   皙?)r   r   )r-   r%   r=   r   )n_neighborsT)return_distancer   r      )r   r   r   r   r   r%   )r   r   )r   r?   r@   rA   r   r0   sampler   r   
kneighborsallpytestraisesNotImplementedError)rB   rC   rD   r$   r-   r%   r6   sampnbrsdistinds              r)   test_kernel_density_samplingrW   E   s   
)


"
"C		)Z((AI( 0 0i???CCAFFzz#w$*$$$$  A...22155OOAtO<<	cX6$*++++++z!! 6$Y.///// F  i???CCAFF].// 	 	JJsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 			!QA
z
*
*
*
.
.q
1
1C::<<''''''s   
E,,E0	3E0		algorithmauto	ball_treekd_treemetric)	euclidean	minkowski	manhattan	chebyshev	haversinec                    t           j                            d          }|                    dd          }|                    dd          }t	          | |          }| dk    rY|t
          j        vrKt          j        t          d          5  |
                    |           d d d            d S # 1 swxY w Y   d S |
                    |           |                    |          }|j        |j        d d         k    sJ d S )	Nr   
   r   rX   r]   r\   zinvalid metric)matchr   )r   r?   r@   rA   r   r   valid_metricsrP   rQ   r"   r0   r1   r   )rX   r]   rD   r$   r#   r6   y_denss          r)    test_kde_algorithm_metric_choiceri   h   s9    )


"
"C		"aA		"aA
)F
;
;
;CI&0D"D"D]:-=>>> 	 	GGAJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	


""1%%|qwrr{******s   B//B36B3c                     d S )N )rB   rC   s     r)   test_kde_scorerl   }   s    Dr+   c                  .   t                      } t          j        t                    5  |                     t
          j                            d          t
          j                            d                     d d d            n# 1 swxY w Y   t          j        t                    5  |                     t
          j                            d          t
          j                            d                      d d d            d S # 1 swxY w Y   d S )N)   rd   sample_weightrn   )r   rP   rQ   r"   r0   r   r?   )r6   s    r)   test_kde_sample_weights_errorrq      sx   
//C	z	"	" X X	  ++29;K;KI;V;VWWWX X X X X X X X X X X X X X X	z	"	" S S	  ++BI<L<LS<Q<Q;QRRRS S S S S S S S S S S S S S S S S Ss%   ABB
B
*AD

DDc                  2   t          ddddgddgddgg          \  } }t          t          dd          t          d                    }t	          g d	
          }t          ||          }|                    |            |j        d         dk    sJ d S )Nr:   r   r   )cluster_stdrandom_statecentersF)	with_meanwith_stdr   rL   )MbP?r9   r:   r   rd   )kerneldensity__bandwidth)
param_gridry   )r   r
   r   r   dictr   r0   best_params_)r$   _pipe1paramssearchs        r)   test_kde_pipeline_gridsearchr      s    #AAAQRTUPV?WXXXDAq777Z((( E +D+D+DEEEF%F333F
JJqMMM9:cAAAAAAr+   c            	      ~   d} d}t          j        | d          }dD ]}t           j                            d          }|                    | |          }dd|                    d          z                      t           j                  z   }t          j        ||d          }||z  }|                    ||          }	d	D ]}
d
D ]}|
dk    s|t          j
        v rt          |
|          }|                    ||           |                    |	          }|                    d          }|                    |           |                    |	          }|                    d          }t          ||           t          ||           |                    ||           |                    |	          }|                    d          }|                    |           |                    |	          }|                    d          }t          ||           t          ||           t          j        t          j        ||z
                      }|dk    sJ |                                }|                    |||z             |                    |	          }t          ||           d S )Ni           @)r   r   rd   r   r   rd   )axisrY   )r^   r_   r`   ra   r\   re   ro   i  )rt   rx   )r   fullr?   r@   randr   astypeint8repeatr   rg   r   r0   r1   rM   r   r2   abs)rB   	size_testweights_neutralr'   rD   r$   weightsX_repetitionsn_samples_testtest_pointsrX   r]   r6   scores_const_weightsample_const_weightscores_no_weightsample_no_weightscores_weightrp   scores_ref_samplingsample_ref_samplingdiffscale_factorscores_scaled_weights                           r)   test_kde_sample_weightsr      s   IIgi--O (I (Ii##A&&HHY""rAEEqEMM)11"':::	!W1555"ahh~q119 !	I !	IIN  I  I	))Vv7K-K-K')FKKKC GGA_G===*-*;*;K*H*H'*-**$**G*G'GGAJJJ'*'8'8'E'E$'*zztz'D'D$#$79IJJJ#$79IJJJ GGAWG555$'$5$5k$B$BM$'JJDJ$A$AMGGM****-*;*;K*H*H'*-**$**G*G'#M3FGGG#M3FGGG 6"&)9M)I"J"JKKD%<<<< $'88::LGGAlW.DGFFF+.+<+<[+I+I(#$8-HHHA I!	I(I (Ir+   rp   )r:   rH   g333333?c                    t                      }t          j        g dd          }|                    ||           t          j        ddgd          }|                    |          }t          |                     d                    }t          j        ||           t          j	        |          }|                    |          }t          ||           d S )N)r   g       @r   )r   r   ro   g?g @zdump.pkl)r   r   reshaper0   r1   strjoinjoblibdumploadr   )tmpdirrp   r6   datar$   scores	file_pathscores_pickleds           r)   test_picklingr      s     //C:ooow//DGGDG...

C:w''Aq!!FFKK
++,,I
KY
+i
 
 C&&q))NFN+++++r+   methodr1   rM   c                 "   t           j                            d          }|                    dd          }t	                      }t          j        t                    5   t          ||           |           d d d            d S # 1 swxY w Y   d S )Nr   rd   r   )	r   r?   r@   rA   r   rP   rQ   r   getattr)r   rD   r$   r6   s       r)   test_check_is_fittedr      s     )


"
"C		"aA
//C	~	&	&    VQ                                   s   BBB)r   r   r:   c                 ^   d\  }}t           j                            d          }|                    ||          }t	          |                               |          }|                    d          }|                    |          }|j        |j        k    sJ |j        |fk    sJ | dk    r"|j        d         d|j        d         dz   z  z  }n>| d	k    r6|j        d         |j        d         d
z   z  dz  d|j        d         dz   z  z  }n| }|j	        t          j        |          k    sJ d S )Nr<   r   )r-   r=   r   r   r   r   r   r   )r   r?   r@   rA   r   r0   rM   r1   r   
bandwidth_rP   approx)	r-   rB   rC   rD   r$   r6   rS   kde_scr&   s	            r)   test_bandwidthr      s4   $Iz
)


"
"C		)Z((A
)
,
,
,
0
0
3
3C::c??Dq!!F7dj    <I<'''' GGAJ2a01	k	!	!WQZ171:>*Q.B!'!*q.4IJ>V]1--------r+   r<   )$r   numpyr   rP   sklearn.datasetsr   sklearn.exceptionsr   sklearn.model_selectionr   sklearn.neighborsr   r   r   sklearn.neighbors._ball_treer	   sklearn.pipeliner
   sklearn.preprocessingr   sklearn.utils._testingr   r*   r8   markparametrizerF   rW   ri   rl   rq   r   r   r   r   r   rk   r+   r)   <module>r      s         ' ' ' ' ' ' - - - - - - 0 0 0 0 0 0 E E E E E E E E E E 4 4 4 4 4 4 * * * * * * 0 0 0 0 0 0 2 2 2 2 2 22 2 22   WWW  &J&J&JKKN N LK N (  (  (  (F &F&F&FGGOOO + +  HG+"	 	 	 	S S S
B 
B 
B,I ,I ,I^ 4*ABB, , CB,( OX#>??    @?  &A&A&ABB. . CB. . .r+   