`L i)d XddlZddlZddlmZddlmZmZddlm Z m Z m Z m Z m Z mZddlmZmZmZmZddlmZmZddlmZmZmZmZmZddlmZdd lm Z ejBZ"d Z#d Z$d Z%d Z&ejNjQdgdejNjQdddgdZ)dZ*ejNjQdedZ+ejNjQdejXgddejXgddejXdgdfejXgde-ejXgde-ejXdge-fejXgdejXgdejXdgfggd !d"Z.d#Z/ejNjQdd$d%gd&Z0d'Z1ejNjQd(ejXgddejXgde-ejXgdggd !d)Z2d*Z3ejNjQded+Z4d,Z5d-Z6d.Z7d/Z8d0Z9d1Z:d2Z;d3Zd6Z?d7Z@d8ZAejNjQd9ejXgezezezezezd:ZBd;ZCejNjQded<ZDd=ZEejNjQd>e e e gd?ZFejNjQd@ee!ejNjQdAejXgdejXgdBejXgdCgdDZGy)EN)issparse)config_contextdatasets)LabelBinarizer LabelEncoderMultiLabelBinarizer_inverse_binarize_multiclass_inverse_binarize_thresholdinglabel_binarize)_convert_to_numpy_get_namespace_device_dtype_ids get_namespace)yield_namespace_device_dtype_combinations)_array_api_for_testsassert_array_equal)COO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSDOK_CONTAINERSLIL_CONTAINERS)type_of_target)_to_object_arrayc>t|dr|j}|S)Ntoarray)hasattrras l/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_label.pyrr%sq) IIK HcDgd}td}tjgdgj}|j |}t |j dgt ||t |j||td}|j |}t|sJt |j dgt ||jt |j|j|td}gd}tjgdgj}|j |}t |j d dgt ||tjd d gd d gd d gd d gg}t |j||gd }tjgd gdgdgdgdg}|j |}t |j gdt ||t |j||y)N)posr!r!r!F sparse_outputrrrrr!T)negr!r!r%rr'rr%r'r)spamhameggsr)0rrrr'rrr'rrr'rrr'rrr)r+r*r)r() rnparrayT fit_transformrclasses_inverse_transformrr)inplbexpectedgot to_inverts rtest_label_binarizerr;+s 'C e ,Bxx'))H  3 Cr{{UG,x%r++C0#6 d +B  3 C C==r{{UG,x/r++CKKM:C@ e ,B &Cxx'))H  3 Cr{{UEN3x%1a&1a&1a&1a&9:Ir++I6< .Cxx |\<NH  3 Cr{{$@Ax%r++C0#6rc t}tjgdgdgdg}|jgd}t ||tjgdgdgdgdgdgdg}|j gd}t ||y)Nr'rrrr'rrrr')bderrr)rr@crArBf)rr0r1r3r transform)r7r8r9s r"test_label_binarizer_unseen_labelsrGTsr  BxxIy9:H  ? +Cx%xx Iy)Y JH ,,5 6Cx%rctdd}tjgd}tjgdgj}|j |}t ||t |j ||tdd}tjgd}tjgdgd gd gd gd g}|j |}t ||t |j ||y) Nr neg_label pos_labelr&)rIrrrI)rMr'rMr)rIrIrIrM)rIrIrMrI)rIrMrIrI)rMrIrIrI)rr0r1r2r3rr5)r7r6r8r9s r'test_label_binarizer_set_label_encodingrObs " 2B ((< Cxx()++H  3 Cx%r++C0#6 " 2B ((? #Cxx       H  3 Cx%r++C0#6rdtype)Int64Float64boolean unique_firstTFctjd}|jgd|}|r|j}t j |}|j ddg}t|dgdggy)ziChecks that LabelBinarizer works with pandas nullable dtypes. Non-regression test for gh-25637. pandas) r'rrr'rr'r'rr'rPr'rN)pytest importorskipSeriesuniquerfitrFr)rPrTpdy_truer7y_outs r$test_label_binarizer_pandas_nullabler`~sn   X &B YY2%Y @F    f %B LL!Q EusQCj)rctjgd}tj|}gd}d}t j t |5|j|dddt}d}t j t |5|jgdddt j t |5|jgdddgd}d}tdd }t j t |5|j|dddd }tdd }t j t |5|j|dddd }td dd }t j t |5|j|dddgd dgdggddgg}d}t j t |5tj|dddd}t j t |5ttjgdgdgdgdddddd}t j t |5tjtjd dgdd ggdddt j t |5ttjd dgdd gggddddy#1swYxYw#1swY^xYw#1swY6xYw#1swYxYw#1swYxYw#1swYxYw#1swYMxYw#1swY xYw#1swYxYw#1swYyxYw)Nr$)rMrN)r)rrMz@You appear to be using a legacy multi-label data representation.matchz.This LabelBinarizer instance is not fitted yet)rr'rr'z3neg_label=2 must be strictly less than pos_label=1.rMr'rJz3neg_label=2 must be strictly less than pos_label=2.zqSparse binarization is only supported with non zero pos_label and zero neg_label, got pos_label=2 and neg_label=1TrKrLr#rN)rr'rNz?You appear to be using a legacy multi-label data representationz!output_type='binary', but y.shaper'rMrN)rMr'rNbinaryry output_typeclasses thresholdz@Multioutput target data is not supported with label binarizationrk) r0r1rr\rXraises ValueErrorrFr5r3r r ) one_classr7 multi_labelerr_msg input_labels y_seq_of_seqss rtest_label_binarizer_errorsrus&I    i (B(KPG z 1" [!"  B>G z 1 R z 1! R ! LCG !q 1B z 1 |CG !q 1B z 1 | 5  !q EB z 1 |!Q!i!5MOG z 16&&}562G z 1 &hh 9-.    QG z 19RXX1v1v&6789 z 1Frxx!Q!Q 019EFF_"" !!  66   99FFsxK4LLLL(L5M+M,3M)M(4K>L LL%(L25L?M MM%(M1 csr_containerc@d}tjt|5t|ddgddggdddgddddd}tjt|5t|ddgddggdgd ddddy#1swYMxYw#1swYyxYw) Nzfoo format is not supportedrcr'rMfoorrhzAThe number of class is not equal to the number of dimension of y.rf)rXrnror )rvrrs r"test_label_binarizer_sparse_errorsrys,G z 1 &aVaV,-F   RG z 1 &aVaV,-        sB!BBBzvalues, classes, unknown)rMr'rNr'rNint64rWrf)r@rrDrrDrr@rDrA)rzobjectstr)idsct}|j|t|j|t|j |gdt|j gd|t}|j |}t|gdtjtd5|j |dddy#1swYyxYw)N)r'rrMrrMz unseen labelsrc) rr\rr4rFr5r3rXrnro)valuesrkunknownlerets rtest_label_encoderrs0 BFF6Nr{{G,r||F+_=r++OST 235L z " aVs B**B3r~r}ct}|jtjddg|d}t j t |5|jddddy#1swYyxYw)NappleorangerWzshould be a 1d arrayrc)rr\r0r1rXrnrorF)rPrmsgs r test_label_encoder_str_bad_shapersY BFF288Wh'u 56 C z - Ws A++A4ct}tjt5|j gdddtjt5|j gdddt}|j gdd}tjt|5|j dgdddtjt|5|j gddddd}tjt|5|j ddddy#1swYxYw#1swYxYw#1swYxYw#1swYfxYw#1swYyxYw)N)r'rMrNrr'z!contains previously unseen labelsrcrI)rIz should be a 1d array.+shape \(\))rrXrnrorFr5r\)rrs rtest_label_encoder_errorsrs! B z " R z "! R ! BFF  -C z -# bT"# z -+ \*+ .C z -! R !!!!!##++ !!s;D5E+E!EE&5D?E EE#&E/rct}|j||jg}tt j g||j g}tt j g|y)N)rr\rFrr0r1r5)rr transformedinverse_transformeds rtest_label_encoder_empty_arrayr4sZ BFF6N,,r"Krxx|[1..r2rxx|%89rcddddg}tjgdgdgdg}|d}dD]z}|D]q}t| }|j|}t ||k(sJ|r?|j j |jj k(sJ|j}t||tgd |j|j||k(sJt| }|j|j|}t ||k(sJ|r?|j j |jj k(sJ|j}t||tgd |j|j||k(rrJ}y) Nc gdSNrbr')r'rMrrrz9test_sparse_output_multilabel_binarizer..K&rcddhdhddhfSNrMrNr'rrrrrz9test_sparse_output_multilabel_binarizer..L!Q!q!f%rcFttdtdddhgSNrbrr'rMiterrrrrz9test_sparse_output_multilabel_binarizer..Md6lDJA78rrr'r'r=r'r'rrTFr"rf)r0r1rr3rindicesrPindptrrrr4r5r\rF)inputs indicator_matinverser#r6mlbr9s r'test_sparse_output_multilabel_binarizerrHs '%8F HHiI>?MfQikG&9  9C%MBC##CE*CC=M1 11{{((CJJ,<,<<<<kkm }c 2 y#,, 7((-8 88&MBC''#%.**351CC=M1 11{{((CJJ,<,<<<<kkm }c 2 y#,, 7((-8 88/ 99rc Dttdtdddhg}td}|j|tjt 5|j |tjgdgdgd gdddy#1swYyxYw) Nrbrr'rMFr"r)rMrrr) rrr\rXrnror5r0r1)rvr6rs r.test_sparse_output_multilabel_binarizer_errorsrms{ V d4j1a&1 2C E 2CGGCL z "   "((Iy)#DE F    s 4BBcdddg}tjgdgdgdg}|d}|D]}t}|j|}t ||t gd|j |j ||k(sJt}|j|j|}t ||t gd|j |j ||k(rJy) Nc gdSrrrrrrz+test_multilabel_binarizer..{rrcddhdhddhfSrrrrrrz+test_multilabel_binarizer..|rrcFttdtdddhgSrrrrrrz+test_multilabel_binarizer..}rrrr=rrrf) r0r1rr3rr4r5r\rF)rrrr6rr9s rtest_multilabel_binarizerrxs '%8F HHiI>?MfQikG 5!#&=#.9cll3$$S)W444"#ggcen&&su-=#.9cll3$$S)W444 5rct}ddgdggg}tjddgddgddgg}t|j ||y)Nr'rMr)rr0r1rr3)rriYs r&test_multilabel_binarizer_empty_samplersR  C Q!bA 1a&1a&1a&)*As((+Q/rct}ddgg}tjddgddgg}d}tjt |5|j |jddgddgg}dddtjgdgdg}tgd  }tjt |5|j |jddgddgg}dddt|y#1swYxYw#1swY"xYw) Nr'rMrzunknown class.* will be ignoredrcr{r=r>rfrm) rr0r1rXwarns UserWarningr\rFr)rrirwarning_messagematrixs r'test_multilabel_binarizer_unknown_classrs  C QA 1a&1a&!"A7O k 98%%1v1v&678 )Y'(A i 0C k 98%%1v1v&678vq!88 88s'C7;'D7DD cJgd}tjgdgdgdg}tgd}t|j ||t|j gdtgd}t|j |j||t|j gdtgd}t|j |tjdgdgdgg|ft|j gdt|}tgd}t|j |j||d }tgd }tjt| 5|j |dddy#1swYyxYw) Nrrr=r'rr'r'rNrMrm)r{r'rNrMrztThe classes argument contains duplicate classes. Remove these duplicates before passing them to MultiLabelBinarizer.)r'rNrMrNrc) r0r1rrr3r4r\rFhstackrrXrnro)r6rrrrs r'test_multilabel_binarizer_given_classesrsE CHHiI>?M i 0Cs((-}=s||Y/ i 0Cswws|--c2MBs||Y/ l 3C # QC!qc?M*J Ks||\2 s)C i 0Cswws|--c2MB G  l 3C z 1  s >FF"cgd}tjgdgdgdg}tjgdgdgdg}tgd}t|j ||gd|_t|j ||y) Nrrr=rrrrmrf)r0r1rrr3rk)r6rindicator_mat2rs r(test_multilabel_binarizer_multiple_callsrsn CHHiI>?MXXy)Y?@N i 0Cs((-}=CKs((-~>rcndgdgdgg}tjgdgdgdg}t}t|j ||t|j ||t}t|j |j||t|j ||y)Nr'rrMr>r=r?)r0r1rrr3r5r\rFr6rrs r.test_multilabel_binarizer_same_length_sequencers 3aS/CHHiI>?M  Cs((-}=s,,];SA  Cswws|--c2MBs,,];SArcRtgd}gdgdfgdgdfgd|fg}tjgdgdgd g}|D]\}}t}tj|t }t |j ||t |j|tj|j|t }t ||t}t |j|j||t |j|tj|j|t }t ||t}tjt5|j iid d ifgdddy#1swYyxYw) N)rrMrN))23)1)rr)rrr))r@rDr)rr@r|))rr)r)rrrr=rrWrr@)rr0r1rr}rr3r4r5r\rFrXrn TypeError) tuple_classesrrr6rkrindicator_mat_invs r,test_multilabel_binarizer_non_integer_labelsrs]$%78M )?; )?; . >F HHiI>?M3 W!#hhs&)3,,S1=A3<<1HHS%:%:=%IQWX,c2"#3773<11#6 F3<<1HHS%:%:=%IQWX,c23  C y !4 B"sCj!123444s <FF&cdg}tjddgg}t}t|j ||y)Nr'r'r'rr')r0r1rrr3rs r$test_multilabel_binarizer_non_uniquers: .CHHq!fX&M  Cs((-}=rc(dg}t}|j|tjt5|j t jddggddd|j t jddgg|j t jddgg|j t jddggtjt5|j t jdggdddtjt5|j t jgdgdddy#1swYxYw#1swY`xYw#1swYyxYw)Nrr'rNrr'r'r')rr3rXrnror5r0r1)r6rs r,test_multilabel_binarizer_inverse_validationr s2 .C  Cc z "2 bhhAx012"((QF8,-"((QF8,-"((QF8,- z "/ bhhuo./ z "5 bhh {345522//55s#(E/6'E<>(F/E9<FFc`tddggd}tjgdgdg}t||tddggd}tjgdgdg}t||tgd gd }tjgd gdgdgdg}t||y) Nr'r)r'rMr{rrmr/r,)r'rr{rMr.)rr'rMrN)rNrMrr'r-)r r0r1r)outr8s r$test_label_binarize_with_class_orderrs !Q 6Cxx|45HsH% !Q 6Cxx|45HsH% | 2GAJ?'8A;666_/7  s EE& c@gd}ddg}d}d}tjddgddgddggdddfjd}t|||||gd}ddg}d}d}tjddgddgddggdddfjd}t|||||y)Nr>rr'rMr)rr'rN)r0r1reshaperrirkrLrKr8s rtest_label_binarize_binaryr`sA!fGIIxx!R2q'Ar734QT:BB7KHAw 9hG A!fGIIxx!Q!Q!Q01!Q$7??HHAw 9hGrcgd}gd}d}d}dtjdz}t|||||tjt 5t ||d|ddddy#1swYyxYw)Nrr'rMrMrrNrTr)r0eyerrXrnror rs rtest_label_binarize_multiclassrsslAGII266!9}HAw 9hG z "  w" QU    s A''A0arr_typectjgdgdgdg}gd}d}d}||z}||}t|||||tjt 5t ||d|d dddy#1swYyxYw) Nr>rrCrrMrrTr)r0r1rrXrnror )ry_indrkrLrKr8ris rtest_label_binarize_multilabelrs HHiI6 7EGII5 HAAw 9hG z "  w" QU    s A66A?ctjt5tddgddgdddddtjtd5tddgddg dddtjtd 5tdd gggd  dddy#1swYuxYw#1swYLxYw#1swYyxYw) NrrMr')rkrLrKzcontinuous target data is not rcg333333?g@rmzmismatch with the labelsrNrf)rXrnror rrr!test_invalid_input_label_binarizers z "I1v1vaHI z)I J3SzAq623 z)C D4Ax344 II3344s#B"B.B:"B+.B7:Cct|gdgdgdgtjd}t|tjgdy)Nr>)rrrrCrNr)r r0arangerr1)rvr9s r test_inverse_binarize_multiclassrs: &y+y9:BIIaL CsBHHY/0rct}|jdddtjg|j tjg}t |dgy)z]Check that label encoder encodes nans in transform. Non-regression test for #22628. rr@rMN)rr\r0nanrFr)ry_transs rtest_nan_label_encoderrsD BFFCc266 "#llBFF8$Gw$rencoderct|drJ|jgd}|jgd}t||y)zxCheck that label encoders do not define set_output and work with y as a kwarg. Non-regression test for #26854. set_outputr|)riN)rr3r)ry_encoded_with_kwargy_encoded_positionals r*test_label_encoders_do_not_have_set_outputrsEw -- -"00?0C"00A+-ABrzarray_namespace, device, dtyperir)rNr rrrNct||}|j||}td5t}t}|j |}|j |}|j |} |j |}|j |} t|dj|jk(sJt| dj|jk(sJt|jdj|jk(sJtt||| tt| ||tt|j||jt}t}|j|}|j|} t|dj|jk(sJt|jdj|jk(sJtt||| tt|j||jdddy#1swYyxYw)N)deviceT)array_api_dispatchr) rasarrayrrr\rFr5r__name__r4rr r3) riarray_namespacerrPxpxp_yxp_labelnp_labelxp_transformedxp_inv_transformednp_transformeds r'test_label_encoder_array_api_compliancers ov 6B ::a: 'D 4 0X>><<%!++D1%77G<<?!++A.^,Q/88BKKGGG/03<< KKKX../2;;r{{JJJ,^R@.Q,-?DaH,X->->CXEVEVW>>!//5!//2^,Q/88BKKGGGX../2;;r{{JJJ,^R@.Q,X->->CXEVEVW-XXXs H II )Hnumpyr0rX scipy.sparsersklearnrrsklearn.preprocessing._labelrrrr r r sklearn.utils._array_apir r rrsklearn.utils._testingrrsklearn.utils.fixesrrrrrsklearn.utils.multiclassrsklearn.utils.validationr load_irisirisrr;rGrOmark parametrizer`ruryr1r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!s !, 45x &7R &78"AB$7*8C*$7Ft.9 : , BHH_G 4 BHHYg . BHHaS ( BHH.f = BHH_F 3 BHHcU& ) BHH. / BHH_ % BHHcUO " #'* +*  5("345!. 0*&9*+ #::"9J.9 : 520 " F ? B4:>5& &07fH&  XXJ       4.91:1 %  02E2GHCC$-/' !$%#$X Xr