`L iX ddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z ddlmZmZmZddlmZddlmZdd lmZmZmZmZmZej8d d gd d gd d gd d gd d gd d ggdZej8gdZej8gdZej8d gd gd gd gd gd ggdZ ej8ddgd d gd d gd d gd d gd dgd d gd d gd d gg Z!ej8gdZ"ej8gdZ#ej8dgd gd gd gdgd gd gd gdgg Z$ej8ddgd dgd dgd dgddgd dgd dgd dgddgg Z%ej8gdZ&ejNejPdejRdfZ*ej8gdZ+gdZ,dZ-ej\j_dd dgej\j_dgddZ0d Z1d!Z2d"Z3d#Z4d$Z5d%Z6d&Z7ej\j_d'e8d(d)Z9d*Z:ej\j_d+dd,gej\j_dd,dgd-Z;ej\j_d.ejxejxfejzejzfej|ejzfej~ejzfgd/Z@d0ZAd1ZBd2ZCej\j_d3gd4d5ZDd6ZEd7ZFd8ZGd9ZHej\j_dgdd:ZId;ZJy)<N)linalg)KMeans) LedoitWolfShrunkCovariance ledoit_wolf) make_blobs)LinearDiscriminantAnalysisQuadraticDiscriminantAnalysis_cov)StandardScaler)check_random_state)_convert_containerassert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalfdtype)rrrrrr)rrrrrr) rrrrrrrrr) rrrrrrrrr) rrrrrrrrr)rr)rrrrrrrr) )svdN)lsqrN)eigenN)rauto)rr)rQ?)rr )rr)rr!c tD][}|\}}t||}|jttj t}t |td|z|jttj t}t |td|z|jt}t |dddfdkDdztd|z|jt}ttj||ddd|z|jttj t}tj|tk7rTJd|ztdd}tj t"5|jttdddtd d t% }tj t&d 5|jttdddtdt)}tj t&d 5|jttdddtd t+dd}tj t&5|jttdddy#1swYxYw#1swYxYw#1swYwxYw#1swYyxYw)Nsolver shrinkagez solver %sr?ư>)rtolatolerr_msgrr r皙?)r$r%covariance_estimatorz[covariance_estimator and shrinkage parameters are not None. Only one of the two can be set.match)r$r,z.covariance estimator is not supported with svdr) n_clustersn_init)solver_shrinkager fitXypredictrX1 predict_probapredict_log_probarnpexpy3anypytestraisesNotImplementedErrorr ValueErrorrr) test_caser$r%clfy_predy_pred1 y_proba_pred1y_log_proba_pred1y_pred3s n/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/tests/test_discriminant_analysis.pytest_lda_predictrIGsK&; % ()LA&&q)61kF&:;''"a.((,7A{V';<))"- M!Q$/#5:A{V?ST11"5 FF$ % &(  ''!R.((+vvgm$:kF&::$3;6 %EV DC * + 1  %;K;M C  .  1  %E UC J  1  %Fa,O C z " 1 7 s0 J+ J83KK+J58KK K n_classesr$rrrcdd}tjddgddgddggd|}tjddgddgggt|z}|d ||d \}}t|d d j ||}t |j |dt |j|ddtj|d}g} g} tt|dz D]} | jtj||| |dz ddtjf| jtjd|| |dztjddfz| dtjddgg} d} tjt|dz D cgc]H} t| | | | | dtt|dz D cgc] } | | | | | c} zz Jc} }dtj|z }tddtt|dz D cgc] } | | | | | c} zz }|t!j"|k(sJt |j%| tj&||gtjdycc} wcc} wcc} w)Nc`t|}tjt||Dcgc]%\}}|j |||t |z'c}}}tj tt |Dcgc]}|g|t |zzc}} || fScc}}wcc}w)zNGenerate a multivariate normal data given some centers and covariancessize)r r9vstackzipmultivariate_normallenhstackrange) n_samplescenters covariances random_staterngmeancovr3clazzr4s rHgenerate_datasetz0test_lda_predict_proba..generate_datasets!. II"%Wk!: D#''c S\8Q'R   II@Ec'l@S TueW S\1 2 T !t   Us *B% B+r(i di_*)rVrWrXrYT)r$store_covariancer%r+)r)rrictj||tj|||zjSN)r9r:dotitem)samplecoef interceptr]s rHdiscriminant_funcz1test_lda_predict_proba..discriminant_funcs3vvi&U )DDEJJLL{Gz?ri)r9arrayrSr r2rmeans_ covariance_rinvrUappendrjnewaxisfloatsumr=approxr7rT)r$rJr^ blob_centers blob_stdsr3r4lda precisionalpha_k alpha_k_0r]rlroprobprob_ref prob_ref_2s rHtest_lda_predict_probars 88aVc2Yb :;JYGLB8b#Y/03|3DDEI 9SU DAq %  c!Qi CJJ 48COOYq\:  9Q<(IGIs<(1,-   FF9|E2\"5EEq"**}U V   FF U+l2.>> A NN    XXRyk "FM 88y1}-  !&'9eD*/y1})= %.fgy%P    D$266$<H "'y1}!5&fgy%H   J v}}Z0 00 0 &!299dH-=#>rzz#JQU?  4s,*J8J3(J84J=3J8cdtjddg}t|}d}tjt |5|j ttdddtddg}|j tttjddg}tjddg}t|}tjt5|j ttdddt|j|d y#1swYxYw#1swY-xYw) Nr&rfpriorszpriors must be non-negativer-333333??g?r) r9rrr r=r>r@r2r3r4warns UserWarningrpriors_)rrBmsg prior_norms rHtest_lda_priorsrs XXsDk "F $F 3C 'C z - 1  %S#J 7CGGAqMXXsCj !F4,'J $F 3C k " 1 ckk:q9!sDD&D#&D/cd}d}d}t|||d\}}td}td}td}|j|||j|||j||t|j|jd t|j|jd t|j|jd y) Nri rV n_featuresrWrYrr$rrr)rr r2rcoef_)rrJrVr3r4 clf_lda_svd clf_lda_lsqr clf_lda_eigens rHtest_lda_coefsrsJII  ITV DAq-E:K-VMOOAqQak//1C1CQGk//1D1DaHm11<3E3EqIrpctdd}|jttj t}|j ddk(sJtdd}|jttj t}|j ddk(sJtdd}|jttd}t jt|5|j tdddy#1swYyxYw)Nrr)r$ n_componentsrrz$transform not implemented for 'lsqr'r-) r r2r3r4 transformshaper=r>r?)rB X_transformedrs rHtest_lda_transformrs $E BCGGAqM++A.M   q !Q && & $G! DCGGAqM++A.M   q !Q && & $F CCGGAqM 0C *# 6 as !DD c^tjjd}|jddd}|j ddd}t d }|j ||t|jjd d|jjd k(sJd t d }|j ||t|jjd d|jjd k(sJd t|j|jy)Nrrc)r`)locscalerOr)r`rNrr?)rz/Unexpected length for explained_variance_ratio_r) r9random RandomStatenormalrandintr r2rexplained_variance_ratio_ryrr)stater3r4rrs rH!test_lda_explained_variance_ratior&s  II ! !! $E #H 5A a 'A.g>Ma ??CCEsAN  2 2 8 8D @9 @-E:KOOAq ==AACS!L  0 0 6 6$ >9 >--}/V/Vrpc Vtjgdgdgdgdg}tjgdgdgdgdgd gd g}|ddtjddf|tjddddfzjd }tjtj |j d |j d }td j||}|j|}|d|d z }|d|dz }|tjtj|dzz}|tjtj|dzz}ttj|j|jtjdttj tj"|dddd gdttj tj"|ddd dgdy)N)rrr)rrr)rrr)rr)r+rr)皙rr)rr+r)rrr)rrr+)rrr)rrrrrrrrr)r9rrrwreshaperepeatarangerr r2rsqrtryrr\Teyeabsrj)meansscatterr3r4rBmeans_transformedd1d2s rHtest_lda_orthogonalityrCs HHj)ZC DEhh         G q"**a 72::q!+;#< <EEgNA "))EKKN+W]]1-=>A %E 2 6 6q! CsM** * %FT J N NrSU VC 3 && & Hh#7(H9M"NOrpseedrbctjj|}|jdd}|j dd}t ddd}t dt d d }|j|||j||t|j|jt|j|jy) NrcrbrrNTr&rrer%r$)r%rer,r$) r9rrrandrr rr2rrsrt)rrZr3r4c1c2s rHtest_lda_shrinkagers ))   %C bA AS "A #TSQW XB #-< B FF1aLFF1aLBIIryy)BNNBNN3rpcGdd}tjjd}|jdd}|j dd}t d d d }t d |d }|j |||j ||t|j|jt|j|jy)NceZdZdZy)3test_lda_ledoitwolf..StandardizedLedoitWolfct}|j|}t|d}|jddtj f|z|jtj ddfz}||_y)Nr)r fit_transformrscale_r9rwrt)selfr3scX_scss rHr2z7test_lda_ledoitwolf..StandardizedLedoitWolf.fitsb!B##A&DD!!$A !RZZ-(1,ryyQ/GGA D rpN)__name__ __module__ __qualname__r2rprHStandardizedLedoitWolfrs !rprrrcrbr)rcrNTr rrr) r9rrrrr r2rrsrt)rrZr3r4rrs rHtest_lda_ledoitwolfrs!! ))   "C bA AF #A # B $35 B FF1aLFF1aLBIIryy)BNNBNN3rprrctd}d}|j||}tjt |||zdzd|}t ||dz }|dz d|fD] }t |}|j||"|dzt||dz dzfD]F}t |}d} tjt| 5|j||dddHy#1swYSxYw)Nrrbr)rz#n_components cannot be larger than r-) r randnr9tilerUminr r2maxr=r>r@) rJrrZrVr3r4max_componentsrr}rs rHtest_lda_dimension_warningrs Q CI )Z(A i )y"81"<=jyIAY]3N'!+T>B (lC 1  (!+SY]-Ka-OP )lC3 ]]:S 1  GGAqM    s C##C, zdata_type, expected_typectD]e\}}t||}|jtj |t j ||j j|k(reJy)Nr#)r1r r2r3astyper4rr) data_type expected_typer$r%rBs rHtest_lda_dtype_matchrsZ.0 ()L #QXXi%89yy-///0rpctD]\}}t||}|jtj t j tj t j t||}|jtj t jtj t jd}t|j|j|y)Nr#r')r() r1r r2r3rr9float32r4float64rr)r$r%clf_32clf_64r(s rH,test_lda_numeric_consistency_float32_float64rs-? +6YO 188BJJ'"**)=>+6YO 188BJJ'"**)=> fll>?rpct}|jttj t}t |t|jt tj t }t |t|jt }t |dddfdkDdzt|jt }ttj||d|jttj t}tj|tk7sJtjt 5|jtt"dddy#1swYyxYw)Nrr&r)r r2rrr5rX7r7r8rr9r:y7r<r=r>r@y4)rBrCrDrErFrGs rHtest_qdars  ( )C WWR_ $ $R (Fvr"ggb"o%%b)Gw#%%b)M ad+c1Q6;--b1bff%67Jggb"o%%b)G 66'R-   z " Bs E44E=ct}|jttj t}t j |dk(}d}tt j|d|z g}|jttj t}t j |dk(}||kDsJy)Nrg|=rr)r r2rrr5r9ryrr)rBrCn_posnegn_pos2s rHtest_qda_priorsrs ' )C WWR_ $ $R (F FF6Q; E C 'rxxa#g/G HC WWR_ $ $R (F VVFaK F E>>rp priors_type)listtuplerrcddg}ttddg|jtt}t |j tjsJt|j |y)z$Check that priors accept array-like.r&rN) r rr2rr isinstancerr9ndarrayr)rrrBs rHtest_qda_prior_typer+s[3ZF '!3*k:  c"bk ckk2:: .. .s{{F+rpctjddg}t|jtt }t |j|jd|d<|jd|jdk7sJy)zCCheck that altering `priors` without `fit` doesn't change `priors_`r&rg?rN) r9rrr r2r3r4rrr)rqdas rHtest_qda_prior_copyr6sh XXsCj !F 'v 6 : :1a @Cs{{CJJ/F1I ;;q>SZZ] ** *rpctjtt}t |drJtdjtt}t |dsJt |j dtjddgddggt |j dtjdd gd d ggy) NrtT)rergffffff?rrgQUU?gQUUտgvWUU?) r r2rrrrrtr9rr)rBs rHtest_qda_store_covariancerCs ' ) - -b" 5CsM** * ( > B B2r JC 3 && &cooa0"((S$K$PS;U2VW  :{+k:-FGHrpcd}t}tjtj|5|j t t}ddd|jt }tj|tk7sJtd}tj5tjdddd|j t t|jt }t|tt}tjtj|5|j tt dddtd}tjtj|5|j tt dddy#1swYaxYw#1swYxYw#1swYwxYw#1swYyxYw)Nz2The covariance matrix of class .+ is not full rankr-rq) reg_paramerrorg333333?)r r=rr LinAlgWarningr2X2rr5r9r<warningscatch_warnings simplefilterrX5y5)rrBrCs rHtest_qda_regularizationrTsU @C ' )C f**# 6!R![[_F 66&B,   ($ 7C  "'g&'GGBO [[_Fvr" ( )C f**# 6 B (# 6C f**# 6 B-!!'' s/F,(F94GG,F69GGGcvtdddd\}}tj|tj|jddzj |jd|jd}t |d}t||jt |d}t||jy) Nrcrrrdrr empiricalr ) rr9rjrrrr rr)rr4c_ec_ss rHtest_covariancervs 12 NDAq q"))AGGAJ!O,44QWWQZLMA q+ CSUU# q&/CSUU#rpctjddgddgg}tjddg}t|}tjt d5|j ||dddy#1swYyxYw) zg Tests that if the number of samples equals the number of classes, a ValueError is raised. r&rabrz"The number of samples must be morer-N)r9rrr r=r>r@r2)r$r3r4rBs rH=test_raises_value_error_on_same_number_of_classes_and_samplesrsl 3*sCj)*A #sA $F 3C z)M N 1 s A66A?cDtjtt}|j }dj }t jt|jjdDcgc]}|| c}t}t||ycc}w)z6Check get_feature_names_out uses class name as prefix.r rrN) r r2r3r4get_feature_names_outlowerr9rrrUrrobjectr)est names_outclass_name_loweriexpected_names_outs rHtest_get_feature_names_outr&s % & * *1a 0C))+I399;388>>qAB    $  y"45  s6 B)Krnumpyr9r=scipyrsklearn.clusterrsklearn.covariancerrrsklearn.datasetsrsklearn.discriminant_analysisr r r sklearn.preprocessingr sklearn.utilsr sklearn.utils._testingrrrrrrrr3r4r;r6rrrrr rc_rzerosrrr1rImark parametrizerrrrrrrrrUrrrrrint32int64rrrrrrrrrrr&rrprHr6s "HH' 1, BHHr2hR2r(QFQFQF C3O BHH   RXX !RXXTB4"sQC!%  RXXVb"XBx"bB8aVaVaVaQRVTRXX)* RXX)*RXXtbTB4"sQC!qcA3?@RXX!Wr1gAwQ!Q!Q!Q!Q!QP RXX)*UU9299Q<&) )* RXX&' <~q!f-#;<[=.[|:2J,":&=RQ"<r+4,4$4<1v.q!f-./2 RZZ RZZ 2:: 2:: 00 ?6 (BC,D, +"D $#;< = 6rp