
    /ii>                     T	   d dl Zd dlZd dlmZ d dlmZmZmZ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mZmZmZmZ d dlmZ d d	lmZmZmZ  ej        d
dgddgdd
gddgddgddgg          Zg dZ  ej        ddgddgddgg          Z!g dZ" ej        g dg dg dg dg dg          Z#g dZ$ ej        g dg dg dg          Z%g dZ& ej'                    Z(ej)        *                    d           Z+e+,                    e(j-        j.                  Z/e(j0        e/         e(_0        e(j-        e/         e(_-         eddd           \  Z1Z2d Z3ej4        j5        eej4        6                    dee e!ge#e$e%ge1dd         e2dd         e1dd         ge(j0        e(j-        e(j0        gg          ej4        6                    d g d!          ej4        6                    d"eez             d#                                                             Z7ej4        6                    d$e          d%             Z8ej4        6                    d&e          d'             Z9eej4        6                    d$e          ej4        6                    d g d(          d)                                     Z:ej4        6                    d$e          d*             Z;ej4        6                    d&e          d+             Z<ej4        6                    d, e=ee                    d-             Z>ej4        6                    d$e          d.             Z?ej4        6                    d$e          d/             Z@ej4        6                    d&e          d0             ZAd1 ZBej4        6                    dede!ge#de%ge1dd         de1dd         ge(j0        de(j0        gg          ej4        6                    d g d!          ej4        6                    d"eez             ed2                                                 ZCej4        6                    d$e          d3             ZDej4        6                    d&e          d4             ZEej4        6                    d&e          d5             ZFej4        j5        d6             ZGdS )7    N)sparse)basedatasetslinear_modelsvm)load_digits
make_blobsmake_classification)ConvergenceWarning)test_svm)assert_allcloseassert_array_almost_equalassert_array_equalignore_warningsskip_if_32bit)safe_sparse_dot)CSR_CONTAINERSDOK_CONTAINERSLIL_CONTAINERS      )r   r   r   r   r   r      )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r   )r   r   r   )r   r   r   )r   r   r   d   
   )	n_samplescentersrandom_statec                    t          j        |           }|                     |                                |           t	          j        |          r|                                }n|}|                    ||           t	          j        |j                  sJ t	          j        |j                  sJ t          | j        |j                                                   t          | j        |j                                                   | j	        dk    rGt	          j        |j
                  sJ t          | j
        |j
                                                   t          | j        |j                   t          |                     |          |                    |                     t          |                     |          |                    |                     t          |                     |          |                    |                     t          | t           j                  rd}nJt%          | d          r8t          |                     |          |                    |          d           d}t	          j        |          rKt)          j        t,          |          5  |                     |           d d d            d S # 1 swxY w Y   d S d S )Nlinearz>cannot use sparse input in 'OneClassSVM' trained on dense datapredict_proba   decimalz6cannot use sparse input in 'SVC' trained on dense datamatch)r   clonefittoarrayr   issparsesupport_vectors_
dual_coef_r   kernelcoef_r   support_predictdecision_function
isinstancer   OneClassSVMhasattrr"   pytestraises
ValueError)	dense_svmX_trainy_trainX_test
sparse_svmX_test_densemsgs          c/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/sklearn/svm/tests/test_sparse.pycheck_svm_model_equalrA   4   s    I&&JMM'//##W---v ~~''NN7G$$$?:677777?:011111I.
0K0S0S0U0UVVVI(**?*G*G*I*IJJJ8##z/00000!)/:3C3K3K3M3MNNNI&
(;<<<I%%l33Z5G5G5O5OPPP##L11:3O3OPV3W3W   ##L11$$\22   )S_-- 	GN9o.. 	%''55((00   
 Gv &]:S111 	& 	&f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&& &s   0KKKzX_train, y_train, X_testP   r.   )r!   polyrbfsigmoidsparse_containerc                 r     ||           } t          j        d|ddd          }t          || ||           dS )z3Check that sparse SVC gives the same result as SVC.r   Tr   ovo)gammar.   probabilityr   decision_function_shapeN)r   SVCrA   r:   r;   r<   r.   rF   clfs         r@   test_svcrO   a   sU     w''G
' %  C #w88888    csr_containerc                 B    t          d          \  }}  |dd                   }|d d         |d d         }}t          dd          }  |          }t          j        ddd	
                              ||          j        }t          j        ddd	
                              ||          }|j        }t          ||                                fi |  fd}	 |	|          }
 |	|          }|
j        rJ |j        rJ t          j        ddd	
                              |
|          }|j        }t          |                                |                                fi | t          |	                    |          |	                    |          fi | d S )NT)
return_X_y2   r   g-q=g+=)rtolatolr!   r   )r.   rJ   r   c                 f   g }g }t          dt          | j                            D ]p}t          | j        |dz
  |dz             }|                    | j        |         d d d                    |                    | j        |         d d d                    q ||| j        f| j                  S )Nr   r   )shape)rangelenindptrsliceextenddataindicesrX   )Xnew_datanew_indicesi	row_slicerQ   s        r@   scramble_indicesz/test_unsorted_indices.<locals>.scramble_indices   s    q#ah--(( 	; 	;AqxAA67IOOAF9-ddd3444qy3DDbD9::::}hQX>agNNNNrP   )
r   dictr   rL   r)   r/   r   r*   has_sorted_indicesr"   )rQ   r`   yr<   tolsX_sparse
coef_dense
sparse_svccoef_sortedre   X_sparse_unsortedX_test_unsortedunsorted_svccoef_unsorteds   `             r@   test_unsorted_indicesrr   |   s   
 $'''DAq]1RV9%%FSbS61SbS6qAU'''D}QHxTBBBFFq!LLR  dKKKOO! J "KJ 3 3 5 5>>>>>O O O O O )(22&&v..O 333311117(1MMMQQ1 L !&MM))++[-@-@-B-BKKdKKK  11  ((      rP   lil_containerc                 P   d } | t                     }t          j        d                              |t                    }t          j        |                              |t                    }t          |                    |          |                    |                     d S )Nc                 ,    t          | |j                  S N)r   Txrh   s     r@   kfuncz*test_svc_with_custom_kernel.<locals>.kfunc   s    q!#&&&rP   r!   r.   r`   r   rL   r)   Yr   r1   )rs   rz   X_spclf_lin	clf_mylins        r@   test_svc_with_custom_kernelr      s    ' ' ' =DgX&&&**433Gu%%%))$22Iwt,,i.?.?.E.EFFFFFrP   )r!   rC   rD   c                     | t           j                  }t          j        |                              |t           j                  }t          j        |                              t           j        t           j                  }t          |j        |j                                                   t          |j	        |j	                                                   t          |
                    t           j                  |
                    |                     |dk    r.t          |j        |j                                                   d S d S )Nr{   r!   )irisr^   r   rL   r)   targetr   r,   r*   r-   r1   r/   )rQ   r.   iris_data_spsp_clfrN   s        r@   test_svc_irisr      s   
 !=++LWF###''dkBBF
'
 
 
 
$
$TY
<
<CC(&*A*I*I*K*KLLLCNF$5$=$=$?$?@@@CKK	**FNN<,H,HIII	6<#7#7#9#9::::: rP   c                     | t           j                  }t          j        ddd          }|                    |t           j                  }t          ||j        j                  |j	        z   }t          ||                    |                     |                    t          t                     t          j        t          |j        j                  |j	        z   }|                    t                    }t          |                                |                    t                               t          ||j        |                    t                    dk                        t(                                                                        t          j        g d          }t-          |                    t                    |d           d S )	Nr!   皙?rH   )r.   CrK   r   )      gQr   gQ?      ?r   r   r$   )r   r^   r   rL   r)   r   r   r/   rw   
intercept_r   r2   r`   r}   npdotr1   ravelclasses_astypeintarrayr   )rQ   r   svcrN   dec
predictionexpecteds          r@   test_sparse_decision_functionr      sh    !=++L
'S%
H
H
HC
'',
,
,C
,	
4
4s~
ECC..|<<=== GGAqMMM
&CIK
 
 3>
1CQJCIIKK!6!6q!9!9:::CL#"7"7":":Q">!F!Fs!K!K!Q!Q!S!ST   x;;;<<Hc33A66!LLLLLLrP   c                    t          j                    } | t                    }t          d d         }t	          j        t                    5  |                    ||           d d d            n# 1 swxY w Y   |                    |t                     t          |	                    t                    t                     d S )Nr   )r   rL   r`   r}   r6   r7   r8   r)   r   r1   rw   true_result)rs   rN   r~   Y2s       r@   
test_errorr      s     '))C=D	
3B3B	z	"	"  b               GGD!s{{1~~{33333s   A//A36A3zlil_container, dok_containerc                     | t                     } |t                    }t          j        d                              t           t
                    }t          j        d                              |t
                    }|j        sJ t          |j        |j        d           t          |j	        |j	        d           t          |                    t                     |                    |                     |                    t          t                     |                    |t                     t          |j        |j        d           t          |j	        |j	        d           d S )Nr   r   r#   r$   )r`   X2r   	LinearSVCr)   r}   fit_interceptr   r/   r   r   r1   r   )rs   dok_containerr~   X2_sprN   r   s         r@   test_linearsvcr      s,   
 =DM"E
-Q
'
'
'
+
+Aq
1
1C]***..tQ77FciqAAAAcnf.?KKKKCKKNNFNN4$8$8999GGBOOO
JJubciqAAAAcnf.?KKKKKKrP   c                     | t           j                  }t          j        d                              |t           j                  }t          j        d                              t           j        t           j                  }|j        |j        k    sJ t          |j        |j        d           t          |j	        |j	        d           t          |                    t           j                  |                    |                     t          j        |                    |          d          }t          ||                    t           j                             |                                 t!          ||                    |                     |                                 t!          ||                    |                     d S )Nr   r   r   r$   )axis)r   r^   r   r   r)   r   r   r   r/   r   r   r1   r   argmaxr2   sparsifyr   )rQ   r   r   rN   preds        r@   test_linearsvc_irisr     sr    !=++L]***..|T[IIF
-Q
'
'
'
+
+DIt{
C
CC 44444ciqAAAAcnf.?KKKKCKK	**FNN<,H,HIII 9V--l;;!DDDDD#++di00111 LLNNNtS[[66777
OOtV^^L99:::::rP   c                    t          ddddgd          \  }} | |          }t          j                    t          j        d          t          j                    fD ]}|                    ddi	           |                    |d d
         |d d
                    |                    |d
d                    }t          j
        ||d
d          k              dk    sJ d S )N   r   g-?gK7A`?r   )r   
n_featuresweightsr   r      )class_weight      )r
   r   LogisticRegressionr   r   rL   
set_paramsr)   r1   r   sum)rQ   X_y_rN   y_preds        r@   test_weightr   '  s     !#u~A  FB 
r		B'))1%%%		 0 0
 	QF+++4C4"TcT(###RX&&vf344())R/////0 0rP   c                     | t                     }t          j                    }|                    |t                     t          |                    t           d         g          dg           dgdz  dgdz  z   }|                    |t          |           t          |                    t           d         g          dg           d S )Nr   r   r   r   r   )sample_weight       @r|   )rs   r~   rN   r   s       r@   test_sample_weightsr   :  s     =D
'))CGGD!s{{AaD6**SE222EAIq(MGGD!=G111s{{AaD6**SE22222rP   c                  B    t          j        t          j                   d S rv   )r   'test_dense_liblinear_intercept_handlingr   r    rP   r@   (test_sparse_liblinear_intercept_handlingr   H  s    4S]CCCCCrP   c                 l     ||           } t          j        d|          }t          || ||           d S )Nr   )rI   r.   )r   r4   rA   rM   s         r@   test_sparse_oneclasssvmr   M  sB     w''G
/&
1
1
1C#w88888rP   c                    t          j        g d          }t          j        g dt           j                  }t          j        dgdz  dgdz  z   dgd	z  z   d
gdz  z   t           j                  } | |||f          }t          j        g d          }t          j        d                              |                                |          }t          j        d                              |                                |          }t          |j	        |j	                                                   t          |j
        |j
                                                   d S )N)g!FO?gJ:o?g[?g?)   r   #      )dtyper      r       r   &   r#   r   )Pr           r   r   r   r   r   r   r   r   r   r   r   r   r   r         @r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r{   )r   r   int32r   rL   r)   r*   tocoor   r,   r-   )rQ   r^   r_   r[   r`   rh   rN   r   s           r@   test_sparse_realdatar   a  sN   
 8AAABBD h~~~RX666GXqcAgb(A383qcAg=RXNNNFtWf-..A
Q	
 Q	
 Q	
S	 S	Aj '
"
"
"
&
&qyy{{A
6
6CWH%%%))!''))Q77Fs+V-D-L-L-N-NOOOs~v'8'@'@'B'BCCCCCrP   c                    t          j        dd dd          }t          j        |          } | t                    }|                    |t                     |                    |          }|                    |           t          j        dd dd          }|                    t          t                                        t                    }t          ||           d S )Nr   c                     | |j         z  S rv   rw   rx   s     r@   <lambda>z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    QS rP   Tr   )r   r.   rJ   r   c                 6    t          j        | |j                  S rv   )r   r   rw   rx   s     r@   r   z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    13 rP   )
r   rL   r   r(   r`   r)   r}   r1   r"   r   )rs   abr~   r   r9   
pred_denses          r@   *test_sparse_svc_clone_with_callable_kernelr     s     	!00dQRSSSA
1A=DEE$NNN99T??DOOD
//TPQ  I q!$$,,Q//Jz4(((((rP   c                     t          j        dd ddd          }d}t          j        t          |          5  |                     | t                    t                     d d d            d S # 1 swxY w Y   d S )Nr   c                     | |j         z  S rv   r   rx   s     r@   r   ztest_timeout.<locals>.<lambda>  s    QS rP   Tr   )r   r.   rJ   r   max_iterzoSolver terminated early \(max_iter=1\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r&   )r   rL   r6   warnsr   r)   r`   r}   )rs   spwarning_msgs      r@   test_timeoutr     s    	
((dUV
 
 
B	:  
(	<	<	< $ $
}}Q###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   *A//A36A3c                     t          j        ddd          } t          t                    5  |                     t
          t                                        t
                    }d d d            n# 1 swxY w Y   t          j        ddd          } t          t                    5  |                     t
          t                                        t
                    }d d d            n# 1 swxY w Y   t          ||           d S )NTr   r   )rJ   r   r   )category)	r   rL   r   r   r)   r`   r}   r"   r   )r   proba_1proba_2s      r@   test_consistent_probar     sP   D11===A	"4	5	5	5 / /%%1++++A../ / / / / / / / / / / / / / /D11===A	"4	5	5	5 / /%%1++++A../ / / / / / / / / / / / / / /GW%%%%%s#   9A22A69A6)9C..C25C2)Hnumpyr   r6   scipyr   sklearnr   r   r   r   sklearn.datasetsr   r	   r
   sklearn.exceptionsr   sklearn.svm.testsr   sklearn.utils._testingr   r   r   r   r   sklearn.utils.extmathr   sklearn.utils.fixesr   r   r   r   r`   r}   rw   r   r   r   T2true_result2	load_irisr   randomRandomStaterngpermutationr   sizepermr^   X_blobsy_blobsrA   markthread_unsafeparametrizerO   rr   r   r   r   r   zipr   r   r   r   r   r   r   r   r   r   r   rP   r@   <module>r      s              5 5 5 5 5 5 5 5 5 5 5 5 I I I I I I I I I I 1 1 1 1 1 1 & & & & & &              2 1 1 1 1 1          BHr2hR2r(QFQFQFCDDBHr2hAA'((ii RX										  __RX|||YYY			233yyxiA
t{'((IdO	k$:RaHHH (& (& (&Z 	
Aq		R	"wss|WRSS\2	DK+	  #G#G#GHH+^n-LMM9 9 NM IH   9 .99. . :9.b .99G G :9G .99#<#<#<==; ; >= :9 ; .99M M :9M6 .99
4 
4 :9
4 "CC$G$G L L L, .99; ; :9;2 .990 0 :90$ .99
3 
3 :9
3D D D
 	
D!	T2	"tWRSS\*	D$)$	  #G#G#GHH+^n-LMM9 9  NM IH 9 .99gD gD :9gDT .99) ) :9)& .99	$ 	$ :9	$ & & & & &rP   