`L i@ddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddl m Z mZmZmZddlmZmZmZddlmZej.j1dZej5dZej5dZeej;d ddej<fzZeej;d ddej<fzZd ej>_ d ej>_ ejBjEd gd ejBjEdgdejBjEdddgdZ#ejBjEdeejBjEd ddgejBjEdgdejBjEdddgdZ$dZ%ejBjEdedZ&ejBjEdgdejBjEde'd ddZ(ejBjEdgdd Z)d!Z*d"Z+d#Z,d$Z-d%Z.d&Z/d'Z0d(Z1ejBjEded)Z2d*Z3d+Z4d,Z5d-Z6d.Z7d/Z8d0Z9ejBjEd1e e e egd2Z:d3Z;y)4N)make_classification)AdditiveChi2SamplerNystroemPolynomialCountSketch RBFSamplerSkewedChi2Sampler) chi2_kernelkernel_metricspolynomial_kernel rbf_kernel)assert_allcloseassert_array_almost_equalassert_array_equal)CSR_CONTAINERS),2sizeaxisFgamma)皙?r@zdegree, n_components))r)r)icoef0rcttt|||}t||||d}|j t}|j t}t j||j}||z } t jt j| dksJt j| | t j| dksJt j| dksJy)N)rdegreer*) n_componentsrrr random_state皙?outr) r XYr fit_transform transformnpdotTabsmeanmax) rr rr"kernel ps_transformX_transY_trans kernel_approxerrors m/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/tests/test_kernel_approximation.pytest_polynomial_count_sketchr8(sq!5u MF)! L((+G$$Q'GFF7GII.M ] "E 66"''%. !T )) )FF5e 66%=C   775>T !! ! csr_containerr?r )rrrc4td|||d}|jt}|jt}td|||d}|j|t}|j|t} t ||t || y)zZCheck that PolynomialCountSketch results are the same for dense and sparse input. rr!)r"rr rr#N)rr)r'r*r(r ) rr rr:ps_denseXt_denseYt_dense ps_sparse Xt_sparse Yt_sparses r7)test_polynomial_count_sketch_dense_sparserCEs%fEPRH%%a(H!!!$H%fEPRI'' a(89I##M!$45IHi(Hi(r9cBtj||jS)N)r+r,r-)r'r(s r7_linear_kernelrE]s 66!QSS>r9cFtddtjddfj}ttjddddfj}d|z|z||zz }|j d}t d}|jt}|jt}tj||j}t||d|j|t} |j|t} t|| jt|| jtj} d| d<d} tjt | 5|j#| dddy#1swYyxYw) Nrrr sample_stepsrrrz!Negative values in data passed tomatch)r'r+newaxiscopyr(sumrr)r*r,r-rrtoarraypytestraises ValueErrorfit) r:X_Y_ large_kernelr1r*r3r4r5 X_sp_trans Y_sp_transY_negmsgs r7test_additive_chi2_samplerr\asQ 1bjj!   ! ! #B 2::q!   ! ! #Br6B;"r'*L  1  %F$3I%%a(G!!!$GFF7GII.MfmQ7((q)9:J$$]1%56Jw 2 2 45w 2 2 45 FFHEE$K -C z - es <FF method)rTr)r*rHct|}t||td}t||}t||t|j|k(sJy)zsCheck that the input sample step doesn't raise an error and that sample interval doesn't change after fit. rGg?)rHsample_intervalN)rgetattrr'r`)r]rH transformerr`s r7'test_additive_chi2_sampler_sample_stepsrcs[ &<@K GK #O%!'K!GK #  & &/ 99 9r9ctd}tjd}tjt |5t ||tdddy#1swYyxYw)z8Check that we raise a ValueError on invalid sample_stepsr^rGzHIf sample_steps is not in [1, 2, 3], you need to provide sample_intervalrKN)rreescaperQrRrSrar')r]rbr[s r7-test_additive_chi2_sampler_wrong_sample_stepsrgsU&15K ))R C z -($ V$Q'(((s AA&cd}tj}| dz |d<t|zddtjddf}||ztjddddf}tj |dz tj |dz ztj dztj ||zz }tj |jd}t|dd}|jt}|j|}tj||j} t|| d tj|jsJd tj| jsJd |j} | dz| d<d } t!j"t$| 5|j| dddy#1swYyxYw)NgQ?g@rJrrr!) skewednessr"r#rzNaNs found in the Gram matrixz)NaNs found in the approximate Gram matrixz2X may not contain entries smaller than -skewednessrK)r(rNr'r+rMlogexprOrr)r*r,r-risfiniteallrQrRrS) crVX_cY_c log_kernelr1r*r3r4r5rZr[s r7test_skewed_chi2_samplerrss A BrCxBtH q5!RZZ" #C 62::q!# $C s rvvc{S01BFF3K?"&&sBSSVVJNNN* +F"QTPRSI%%a(G!!"%GFF7GII.MfmQ7 ;;v  " " $E&EE $ ;;} % ) ) +X-XX + GGIE"s(E$K >C z -#E"###s G))G2cxt}tj}d|d<tjt d5|j |dddtjt d5|j t|j|dddy#1swYTxYw#1swYyxYw)zEnsures correct error messagerIrJzX in AdditiveChi2SamplerrKN)rr'rNrQrRrSrTr*)rbX_negs r7%test_additive_chi2_sampler_exceptionsrvs%'K FFHEE$K z)C D z)C D%e$%%%%sB$4'B0$B-0B9cd}ttt|}t|dd}|j t}|j t}t j||j}||z }t jt j|dksJt j||t j|dksJt j|d ksJy) Ng$@rrir!)rr"r#g{Gz?r%rr$) r r'r(rr)r*r+r,r-r.r/r0)rr1 rbf_transformr3r4r5r6s r7test_rbf_samplerrzs E 1E *FUBOM))!,G%%a(GFF7GII.M ] "E 66"''%. !T )) )FF5e 66%=C   775>T !! !r9ct}tjddgddgddgg|}|j||jj |k(sJ|j j |k(sJy zRCheck that the fitted attributes are stored accordingly to the data type of X.rrrr^dtypeN)rr+arrayrTrandom_offset_rrandom_weights_) global_dtyperbfr's r7(test_rbf_sampler_fitted_attributes_dtypersm ,C 1a&1a&1a&)>AGGAJ    # #| 33 3    $ $ 44 4r9ctd}tjddgddgddggtj }|j |td}tjddgddgddggtj }|j |t |j|jt |j|jy z?Check the equivalence of the results with 32 and 64 bits input.r!)r#rrrr^r}r~rN) rr+rfloat32rTfloat64r rr)rbf32X32rbf64X64s r7"test_rbf_sampler_dtype_equivalencers B 'E ((QFQFQF+2:: >C IIcN B 'E ((QFQFQF+2:: >C IIcNE((%*>*>?E))5+@+@Ar9cdgdggddg}}td}|j|||jtjdk(sJy) z4Check the inner value computed when `gamma='scale'`.gr;rrscalerxr^N)rrT_gammarQapprox)r'yrs r7test_rbf_sampler_gamma_scalersI EC5>Aq6qA 7 #CGGAqM ::q) )) )r9ct}tjddgddgddgg|}|j||jj |k(sJ|j j |k(sJyr|)rr+rrTrrr)rskewed_chi2_samplerr's r70test_skewed_chi2_sampler_fitted_attributes_dtypersr,- 1a&1a&1a&)>AA  - - 3 3| CC C  . . 4 4 DD Dr9ctd}tjddgddgddggtj }|j |td}tjddgddgddggtj }|j |t |j|jt |j|jy r) rr+rrrTrr rr)skewed_chi2_sampler_32X_32skewed_chi2_sampler_64X_64s r7*test_skewed_chi2_sampler_dtype_equivalencers.B? 88aVaVaV,BJJ ?Dt$.B? 88aVaVaV,BJJ ?Dt$--/E/T/T..0F0V0Vr9cjddgddgddgg}tj|j|tj|j|t j|j|||}t j|j|y)Nrrrr^r}r~)rrTr*rr)r:r's r7test_input_validationr-s Q!Q!Q Aa **1-A((+LQ!!!$aALQ!!!$r9ctjjd}|jd}t |j dj |}t|}ttj||j|t d|}|j|j|}|j |j ddfk(sJt dt|}|j|j|}|j |j ddfk(sJt}|D]P}t d||}|j|j|}|j |j ddfk(rPJy)Nr r^rr"rr"r#)r"r1r#)r+random RandomStateuniformrshaper)r rr,r-rTr*rEr )rndr' X_transformedKtranskernels_availablekerns r7test_nystroem_approximationr:sS ))   "C  !A!''!*5CCAFM1 Abff]MOODaH !# 6EIIaL**1-M   1771:q/ 11 1 !N MEIIaL**1-M   1771:q/ 11 1'(!6a3G ! ..q1 ""qwwqz1o5556r9ctjjd}|jd}t d}|j |}t |d}tj||j}t||t dd}|j |}t|d }tj||j}t||y) Nr!rrrrrxchi2r1r"r) r+rrrrr)r r,r-rr )rr'nystroemrrK2s r7 test_nystroem_default_parametersrUs ))   #C  !AR(H**1-M1D!A  } /Ba$vB7H**1-MAQA  } /Ba$r9ctjjd}|jdd}tj|gdz}d}t ||j dj|}|j|}t||}t|tj||jtjtjtsJy)Nrrrd)rr"rx)r+rrrandvstackrrrTr*r rr,r-rnrmr()rngr'rNrrs r7test_nystroem_singular_kernelris ))   "C RA 1#'A Eu1771:6::1=AKKNM1E"Aa }!GH 66"++a. !! !r9c0tjjd}|jd}t |dd}t d|j ddd }|j|}ttj||j|y) N%rrg@rr r polynomialr)r1r"r r) r+rrrr rrr)rr,r-)rr'rrrs r7 test_nystroem_poly_kernel_paramsrysz ))   #C  !A!Cs3A!''!*SH**1-Mbff]MOODaHr9ctjjd}d}|j|df}d}g}t |}t ||dz d|ij |t|||dz zd z k(sJd }d did did d if}|D]L}t dt|dz d|}tjt|5|j |dddNy#1swYYxYw)Nr!rr^rcl|jdtj||jS)z&Histogram kernel that writes to a log.r)appendr+minimumrO)xrrks r7logging_histogram_kernelz8test_nystroem_callable..logging_histogram_kernels' 1 zz!Q##%%r9rrk)r1r" kernel_paramsr-Don't pass gamma, coef0 or degree to Nystroemrrr rrK) r+rrrlistrrTlenrErQrRrS) r n_samplesr'r kernel_logr[paramsparamnys r7test_nystroem_callablers ))   #CI )Q (A& J QA '!mj) c!f z?i9q=9A= == = :ClWaL8Q- 8F  S^9q= SU S ]]:S 1  FF1I    s C  C) c tjjd}|jd}t |dd}t d|j d }|j|}ttj||j|d }d d id d iddif}|D]R}t dd|j dd |}tjt|5|j|dddTy#1swY_xYw)N rrrrr precomputedrrrrrrr rKr)r+rrrr rrr)rr,r-rQrRrSrT) rr'rrrr[rrrs r7 test_nystroem_precomputed_kernelrs ))   #C  !A!AS1A}1771:FH**1-Mbff]MOODaH :ClWaL8Q- 8F  M] Mu M ]]:S 1  FF1I    s C::D ctdd\}}tdd}|j||jjdk(sJy) zCheck that `component_indices_` corresponds to the subset of training points used to construct the feature map. Non-regression test for: https://github.com/scikit-learn/scikit-learn/issues/20474 rr)r n_featuresrrr)rN)rrrTcomponent_indices_r)r'_feature_map_nystroems r7test_nystroem_component_indicesrsO  rs  0  / iiA9%9%QUUU]1bjj=!!QUUU]1bjj=!!-0/1PQ1c(+",R1"4.93*-9-1c(+),..:)(.9!:!H#HIq!5 :6J : #HI(J(&#R %"& 5 B* E$.9 %: %66%( " I:( B'5FQ222r9