`L i+U ddlZddlZddlZddlmZddlmZddl m Z m Z ddl m Z mZmZmZmZgdgdgdgdgZej&j)d d d gd gd gdgdgdfdd gd gd gdgdgdfddgd gdgdgdgdfd d gd gd gdgdggdfd d gd gd gdgdggdfddgd gdgdgdggdfddgd gdgdgdggdfddgd gd gdgdggdfdd gd gd gdgdggdfdd gd gd gdgdggdfg dZdZdZej&j)d d d gd gdgdgdgdfdd gd gd gdgdgdfddgd gdgdgdgdfddgd gdgdgdgdfddgd gdgdgdggdfddgd gd gdgdggdfddgd gd gdgdggdfdd gd gdgdgdggdfgd Zej&j3d!d"Zej&j)d#ddgd$Zej&j)d#gd%d&Zd'Zej&j)d(ed)d*d+Zd,Z ej&j)d-d d gd.gd/gd0fdd gd.gd1gd2fddgd3gd1gd4fgd5Z!ej&j)d6d gd7gd8gd9gd:gd fdgd;gd;gd<gd=gd fdgd>gd?gd@gd@gdfgej&j)dAgdBdCZ"ej&j)d#gd%dDZ#dEZ$ej&j)dFdgdGdfdgdGd fgdHZ%dIZ&ej&j)dJejNejPejRgej&j)dKdejPejRgej&j)dAgdBdLZ*ej&j)dMejNejPejRgej&j)dAgdBdNZ+dOZ,ej&j)dPdQedRDcgc]}edSD]}dT|dUe-|c}}fdVedRDcgc]}edSD]}dT|dUe-|c}}fdWedRDcgc]}dT| c}fgdXZ.ej&j)d#gd%dYZ/dZZ0d[Z1ycc}}wcc}}wcc}w)\N)clone)KBinsDiscretizer OneHotEncoder)assert_allcloseassert_allclose_dense_sparseassert_array_almost_equalassert_array_equalignore_warnings?)r@)rg @r ?)g@rz2strategy, quantile_method, expected, sample_weightuniformwarn)rrrr)rrrr)rrrr)rrrrkmeans)rrrrquantileaveraged_inverted_cdf)rrrr)rrrr)rrrctdd||}tt5|jt|dddt |j t|y#1swY)xYw)Nrordinaln_binsencodestrategyquantile_method)category sample_weight)rr UserWarningfitXr transform)r!r"expectedr%ests u/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_discretization.pytest_fit_transformr-s\D X C + .0 /0s}}Q'200s A  A)cRtddjtttjdgddjttddj tj jtjtk(sJy)Nrrrr"r) r fit_transformr(nparrayr'n_bins_dtypeintr,test_valid_n_binsr8_s{A/FGUUVWXxx}Q1HmA 16M N R R   geerxx} %% %r7ctjdd}t|d}d}tjt |5|j tdddgd}t|d}d}tjt |5|j tdddgd}t|d}d }tjt |5|j tdddgd }t|d}d }tjt |5|j tdddy#1swYxYw#1swYxYw#1swYnxYw#1swYyxYw) N)r@rr/z:n_bins must be a scalar or array of shape \(n_features,\).match)rrrrrrrz{KBinsDiscretizer received an invalid number of bins at indices 0, 3. Number of bins must be at least 2, and must be an int.)@rr?rz{KBinsDiscretizer received an invalid number of bins at indices 0, 2. Number of bins must be at least 2, and must be an int.)r1fullrpytestraises ValueErrorr0r()rr+err_msgs r,test_invalid_n_bins_arrayrEisF WWVS !F &:Q RCKG z 1 !F &:Q RCKG z 1 !F &:Q RC  z 1 !F &:Q RC  z 1 !;s0E EE%E(E EE%(E1)rrrrr>)rrrrlinear)rrrr)rrrrctgdd||jt|}t|j t|t j tjd}|jj|fk(sJt|j|jD]\}}|j|dzfk(rJy)Nrrrrrrr$r) rr'r(r r)r1r2shape bin_edges_zipr3)r!r"r*r%r+ n_features bin_edgesrs r,test_fit_transform_n_bins_arrayrNsl '    c!=c)  s}}Q'2!""1%J >>  J= 00 0 =0 66A:-///0r7z&ignore: Bins whose width are too smallc tjdgdgdgdgdgdgg}tddd d }|j|gd  t |j dgdt |j |dgdgdgdgdgdggy)z;Check the impact of `sample_weight` one computed quantiles.r rrrii rrrr)rrrrrrr$r)r rrrrg?@N)r1r2rr'rrJr)r(r+s r,*test_kbinsdiscretizer_effect_sample_weightrTs 2$qcA3v67A /  C GGA/G0CNN1%'89CMM!$usecUSEC53%&PQr7r!c|dk(rtdd|d}ntdd|}tjgdtj}tj|}|j t | t||y ) z7Make sure that `sample_weight` is not changed in place.rrrrr)rr r!)rrrrr4r$N)rr1r2float64copyr'r(r)r!r+r%sample_weight_copys r,/test_kbinsdiscretizer_no_mutating_sample_weightrZsp:3  a HMHH\Q   q Br!Q$x!''!*!56 s 7C**C3ctjd}tdd}tjt 5|j |dddtdd}|j |jddtjt 5|j|dddy#1swYkxYw#1swYyxYw)Nr:rrr/rr) r1arangerrArBrCr'reshaper)rSs r,test_transform_1d_behaviorrgs ! A !5L MC z "   !5L MCGGAIIb!  z " a  sB8C8CC ir ctjgdjdd}tjgdjdd}|d|zz }tddd j |}t ||y) N)r;@g@g @g$@rr)rrrrrrPrrrrr r")r1r2rfrr0r )rhX_init Xt_expectedr(rbs r,test_numeric_stabilityross XX0 1 9 9"a @F((?+33B:K QA 4K mA{B'r7c tgdddjt}|jt}tgdddjt}|jt}t j |rJt tdDcgc]}tj|c}dj||tgdddjt}|jt}t j |sJt tdDcgc]}tj|c}d j|j|jycc}wcc}w) NrHrrrl onehot-denseF) categories sparse_outputonehotT) rr'r(r)spissparser rr1rer0toarray)r+Xt_1Xt_2rhXt_3s r,test_encode_optionsr{'s8 I?V  c!f == D /  c!f  == D{{4  .:; ! ;5 -   H>U  c!f == D ;;t  .:; ! ;4  t    <xYw)N)皙?rffffff?rr)rgq= ףp?g= ףp=?gzG?gp= ף?r)rrr:rPrrrFrrr<r) r1r2rfrrAr_r&r'rrJr))r(rMrbrras r,!test_percentile_numeric_stabilityrs #$,,R3A=>I )  $ $R +B   C@O k 9  cnnQ/;cmmA.3 s C!!C*in_dtype out_dtypec@tjt|}td|d|}|j |||}n<|.|j tj k(rtj}n |j }|j|}|j |k(sJyNrVrr)rr r"r4) r1r2r(rr'r4float16rWr))rrr X_inputrexpected_dtyperbs r,test_consistent_dtypershhq)G /  C GGG"  w}} :  w B 88~ %% %r7 input_dtypecNtjt|}td|dtj}|j ||j |}td|dtj}|j ||j |}t||yr) r1r2r(rfloat32r'r)rWr)rr rkbd_32Xt_32kbd_64Xt_64s r,test_32_equal_64rs hhq ,G/jj F  JJw   W %E/jj F  JJw   W %E .r7ctjgdjdd}tdddd}|j |t |}|j d |j |t|jd |jd D]%\}}tjj||'|jj|jjk(sJy) Nr rrrPrrrrrr) r1r2rfrr'r set_paramsrKrJtestingrrI)r( kbd_defaultkbd_without_subsamplingbin_kbd_defaultbin_kbd_with_subsamplings r,'test_kbinsdiscretizer_subsample_defaultr"s "#++B2A"/ K OOA#K0&&&6"58q!#:#E#Ea#H6N11 ""?4LMN  ! ! ' '+B+M+M+S+S SS Sr7zencode, expected_namesrtrr:feat_rqrc8gdgdgdgdg}td|dj|}|j|}tdDcgc]}d | }}|j |}|j d |j d k(sJt ||y cc}w) z[Check get_feature_names_out for different settings. Non-regression test for #22731 r rrrrrrrr rr:rr:rrlrrrrN)rr'r)rangeget_feature_names_outrIr )r expected_namesr(rrbrhinput_features output_namess r,*test_kbinsdiscrtizer_get_feature_names_outr8s4 k:z:A 1H  c!f q B*/(3QQCj3N3,,^rs A+->P8   <| D      <| D     # <| D      <| D      <| D     # <| D     # <| D     # <| D      <| D      <| D   o=@B3C@B3%#L8   <| D      <| D      <| D     # <| D     # <| D     # <| D     # <| D      <| D   W14j 0k4j 0 DE RF R h %;<7=7$%FG7H7* eAqk* (+ (BO F.0BDVW 6-/ACUV  #       3 36, ''%%     00/*     (&&&   $ +"F#HI2JG"H2%FG-H-( E 3 ["9: ;' E E4*bjj"**bjj%IJtRZZ&DE#HI&JFK&,RZZ(LM#HI/JN/8T, $Ah #Ah vhaf / /   $Ah #Ah vhaf / /   58<tF8_<=#,5-,5$%FGH8 5 ]   =s"U "U > U