
    0Ph=                     	   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ej4        5                    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        5                    d g d!          ej4        5                    d"eez             d#                                                 Z6ej4        5                    d$e          d%             Z7ej4        5                    d&e          d'             Z8eej4        5                    d$e          ej4        5                    d g d(          d)                                     Z9ej4        5                    d$e          d*             Z:ej4        5                    d&e          d+             Z;ej4        5                    d, e<ee                    d-             Z=ej4        5                    d$e          d.             Z>ej4        5                    d$e          d/             Z?ej4        5                    d&e          d0             Z@d1 ZAej4        5                    dede!ge#de%ge1dd         de1dd         ge(j0        de(j0        gg          ej4        5                    d g d!          ej4        5                    d"eez             ed2                                                 ZBej4        5                    d$e          d3             ZCej4        5                    d&e          d4             ZDej4        5                    d&e          d5             ZEd6 ZFd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}n:t          |                     |          |                    |          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   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predict_probapytestraises
ValueError)	dense_svmX_trainy_trainX_test
sparse_svmX_test_densemsgs          ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/svm/tests/test_sparse.pycheck_svm_model_equalr@   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!##L11$$V,,	
 	
 	
 	

 Gv &]:S111 	& 	&f%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&& &s    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   SVCr@   r9   r:   r;   r-   rE   clfs         r?   test_svcrN   ^   sU     w''G
' %  C #w88888    csr_containerc                 ,    t          d          \  }}  |dd                   }|d d         |d d         }}  |          }t          j        ddd                              ||          j        }t          j        ddd                              ||          }|j        }t          ||                                            fd} ||          }	 ||          }
|	j        rJ |
j        rJ t          j        ddd                              |	|          }|j        }t          |                                |                                           t          |                    |
          |                    |                     d S )	NT)
return_X_y2   r   r!   r   )r-   rI   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indicesrU   )Xnew_datanew_indicesi	row_slicerP   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NrO   )	r   r   rK   r(   r.   r   r)   has_sorted_indicesr4   )rP   r]   yr;   X_sparse
coef_dense
sparse_svccoef_sortedrb   X_sparse_unsortedX_test_unsortedunsorted_svccoef_unsorteds   `            r?   test_unsorted_indicesrm   x   s   
 $'''DAq]1RV9%%FSbS61SbS6qA}QHxTBBBFFq!LLR  dKKKOO! J "KJ 3 3 5 5666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CCC  11:3K3KF3S3S    rO   lil_containerc                 P   d } | t                     }t          j        d                              |t                    }t          j        |                              |t                    }t          |                    |          |                    |                     d S )Nc                 ,    t          | |j                  S N)r   Txrd   s     r?   kfuncz*test_svc_with_custom_kernel.<locals>.kfunc   s    q!#&&&rO   r!   r-   r]   r   rK   r(   Yr   r0   )rn   ru   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FrO   )r!   rB   rC   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 )Nrv   r!   )irisr[   r   rK   r(   targetr   r+   r)   r,   r0   r.   )rP   r-   iris_data_spsp_clfrM   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::::: rO   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!   皙?rG   )r-   CrJ   r   )      gQr   gQ?      ?r   r   r#   )r~   r[   r   rK   r(   r   r   r.   rr   
intercept_r   r1   r]   rx   npdotr0   ravelclasses_astypeintarrayr   )rP   r   svcrM   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LrO   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   rK   r]   rx   r5   r6   r7   r(   r   r0   rr   true_result)rn   rM   ry   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(   rx   fit_interceptr   r.   r   r   r0   r   )rn   dok_containerry   X2_sprM   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KrO   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   r0   r   argmaxr1   sparsifyr   )rP   r   r   rM   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:::::rO   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   rK   
set_paramsr(   r0   r   sum)rP   X_y_rM   y_preds        r?   test_weightr      s     !#u~A  FB 
r		B'))1%%%		 0 0
 	QF+++4C4"TcT(###RX&&vf344())R/////0 0rO   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       @rw   )rn   ry   rM   r   s       r?   test_sample_weightsr   3  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2rO   c                  B    t          j        t          j                   d S rq   )r   'test_dense_liblinear_intercept_handlingr   r    rO   r?   (test_sparse_liblinear_intercept_handlingr   A  s    4S]CCCCCrO   c                 l     ||           } t          j        d|          }t          || ||           d S )Nr   )rH   r-   )r   r3   r@   rL   s         r?   test_sparse_oneclasssvmr   F  sB     w''G
/&
1
1
1C#w88888rO   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!   rv   )r   r   int32r   rK   r(   r)   tocoor   r+   r,   )rP   r[   r\   rX   r]   rd   rM   r   s           r?   test_sparse_realdatar   Z  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CrO   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 rq   rr   rs   s     r?   <lambda>z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    QS rO   Tr   )r   r-   rI   r   c                 6    t          j        | |j                  S rq   )r   r   rr   rs   s     r?   r   z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>  s    13 rO   )
r   rK   r   r'   r]   r(   rx   r0   r4   r   )rn   abry   r   r8   
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(((((rO   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 rq   r   rs   s     r?   r   ztest_timeout.<locals>.<lambda>  s    QS rO   Tr   )r   r-   rI   r   max_iterzoSolver terminated early \(max_iter=1\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r%   )r   rK   r5   warnsr   r(   r]   rx   )rn   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   )rI   r   r   )category)	r   rK   r   r   r(   r]   rx   r4   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)Gnumpyr   r5   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]   rx   rr   r   r   r   T2true_result2	load_irisr~   randomRandomStaterngpermutationr   sizepermr[   X_blobsy_blobsr@   markparametrizerN   rm   r|   r   r   r   zipr   r   r   r   r   r   r   r   r   r   r   rO   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 '& '& '&T 	
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+\ .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	$& & & & &rO   