o
    Ó\ia=  ã                   @   sÄ  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 d
dgddgdd
gddgddgddgg¡Zg d¢Z e ddgddgddgg¡Z!g d¢Z"e g d¢g d¢g d¢g d¢g d¢g¡Z#g d¢Z$e g d¢g d¢g d¢g¡Z%g d¢Z&e '¡ Z(ej) *d ¡Z+e+ ,e(j-j.¡Z/e(j0e/ e(_0e(j-e/ e(_-eddd d\Z1Z2dd„ Z3eej4 5dee e!ge#e$e%ge1dd … e2dd … e1d d… ge(j0e(j-e(j0gg¡ej4 5d!g d"¢¡ej4 5d#ee ¡d$d%„ ƒƒƒƒZ6ej4 5d&e¡d'd(„ ƒZ7ej4 5d)e¡d*d+„ ƒZ8eej4 5d&e¡ej4 5d!g d,¢¡d-d.„ ƒƒƒZ9ej4 5d&e¡d/d0„ ƒZ:ej4 5d)e¡d1d2„ ƒZ;ej4 5d3e<eeƒ¡d4d5„ ƒZ=ej4 5d&e¡d6d7„ ƒZ>ej4 5d&e¡d8d9„ ƒZ?ej4 5d)e¡d:d;„ ƒZ@d<d=„ ZAej4 5dede!ge#de%ge1dd … de1d d… ge(j0de(j0gg¡ej4 5d!g d"¢¡ej4 5d#ee ¡ed>d?„ ƒƒƒƒZBej4 5d&e¡d@dA„ ƒZCej4 5d)e¡dBdC„ ƒZDej4 5d)e¡dDdE„ ƒZEdFdG„ ZFdS )Hé    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                 C   sz  t  | ¡}|  | ¡ |¡ t |¡r| ¡ }n|}| ||¡ t |j¡s'J ‚t |j¡s/J ‚t| j|j ¡ ƒ t| j|j ¡ ƒ | j	dkrWt |j
¡sNJ ‚t| j
|j
 ¡ ƒ t| j|jƒ t|  |¡| |¡ƒ t|  |¡| |¡ƒ t|  |¡| |¡ƒ t| tjƒrˆd}nt|  |¡| |¡dd d}t |¡r»tjt|d |  |¡ W d   ƒ d S 1 s´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Úmsg© r=   ú~/var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/svm/tests/test_sparse.pyÚcheck_svm_model_equal4   sF   



ÿþý
"ÿÿr?   zX_train, y_train, X_testéP   r+   )r   ÚpolyÚrbfÚsigmoidÚsparse_containerc                 C   s.   || ƒ} t jd|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?   ©r7   r8   r9   r+   rD   Úclfr=   r=   r>   Útest_svc^   s   ûrL   Úcsr_containerc                    s$  t dd\}}ˆ |dd… ƒ}|d d… |d d… }}tddd}ˆ |ƒ}tjddd	d
 ||¡j}tjddd	d
 ||¡}|j}t|| ¡ fi |¤Ž ‡ fdd„}	|	|ƒ}
|	|ƒ}|
jr`J ‚|jreJ ‚tjddd	d
 |
|¡}|j}t| ¡ | ¡ fi |¤Ž t| 	|¡| 	|¡fi |¤Ž d S )NT)Ú
return_X_yé2   r   gê-™—q=g›+¡†›„=)ÚrtolÚatolr   r   )r+   rG   r   c                    s‚   g }g }t dt| jƒƒD ])}t| j|d |d … Ž }| | j| d d d… ¡ | | j| d d d… ¡ qˆ ||| jf| jdS )Nr   r   )Úshape)ÚrangeÚlenÚindptrÚsliceÚextendÚdataÚindicesrR   )ÚXÚnew_dataÚnew_indicesÚiÚ	row_slice©rM   r=   r>   Úscramble_indicesŽ   s   z/test_unsorted_indices.<locals>.scramble_indices)
r   Údictr   rI   r&   r,   r   r'   Úhas_sorted_indicesr2   )rM   rZ   Úyr9   ÚtolsÚX_sparseÚ
coef_denseÚ
sparse_svcÚcoef_sortedr`   ÚX_sparse_unsortedÚX_test_unsortedÚunsorted_svcÚcoef_unsortedr=   r_   r>   Útest_unsorted_indicesx   s8   ÿÿ	

ÿþ
ýrm   Úlil_containerc                 C   sR   dd„ }| t ƒ}tjdd |t¡}tj|d |t¡}t| |¡| |¡ƒ d S )Nc                 S   s   t | |jƒS ©N)r   ÚT©Úxrc   r=   r=   r>   Úkfunc¬   s   z*test_svc_with_custom_kernel.<locals>.kfuncr   ©r+   ©rZ   r   rI   r&   ÚYr   r.   )rn   rs   ÚX_spÚclf_linÚ	clf_mylinr=   r=   r>   Útest_svc_with_custom_kernelª   s
   rz   )r   rA   rB   c                 C   s–   | t jƒ}tj|d |t j¡}tj|d t jt j¡}t|j|j ¡ ƒ t|j	|j	 ¡ ƒ t| 
t j¡| 
|¡ƒ |dkrIt|j|j ¡ ƒ d S d S )Nrt   r   )ÚirisrX   r   rI   r&   Útargetr   r)   r'   r*   r.   r,   )rM   r+   Úiris_data_spÚsp_clfrK   r=   r=   r>   Útest_svc_irisµ   s   
ÿr   c                 C   sÖ   | t jƒ}tjdddd}| |t j¡}t||jjƒ|j	 }t
|| |¡ƒ | tt¡ t t|jj¡|j	 }| t¡}t
| ¡ | t¡ƒ t
||j| t¡dk t¡ ¡  ƒ t g d¢¡}t| t¡|dd d S )	Nr   çš™™™™™¹?rE   )r+   ÚCrH   r   )ç      ð¿g…ëQ¸å¿r‚   g…ëQ¸å?ç      ð?rƒ   r   r!   )r{   rX   r   rI   r&   r|   r   r,   rp   Ú
intercept_r   r/   rZ   rv   ÚnpÚdotr.   ÚravelÚclasses_ÚastypeÚintÚarrayr   )rM   r}   ÚsvcrK   ÚdecÚ
predictionÚexpectedr=   r=   r>   Útest_sparse_decision_functionÆ   s   

ÿr   c                 C   sr   t  ¡ }| tƒ}td d… }t t¡ | ||¡ W d   ƒ n1 s$w   Y  | |t¡ t| 	t
¡tƒ d S )Nr   )r   rI   rZ   rv   r3   r4   r5   r&   r   r.   rp   Útrue_result)rn   rK   rw   ÚY2r=   r=   r>   Ú
test_errorâ   s   ÿr“   zlil_container, dok_containerc                 C   s¼   | t ƒ}|tƒ}tjdd t t¡}tjdd |t¡}|js!J ‚t|j|jdd t|j	|j	dd t
| t ¡| |¡ƒ | tt¡ | |t¡ t|j|jdd t|j	|j	dd d S )Nr   ©r   r    r!   )rZ   ÚX2r   Ú	LinearSVCr&   rv   Úfit_interceptr   r,   r„   r   r.   r’   )rn   Údok_containerrw   ÚX2_sprK   r~   r=   r=   r>   Útest_linearsvcð   s   
rš   c                 C   sÞ   | t jƒ}tjdd |t j¡}tjdd t jt j¡}|j|jks$J ‚t|j|jdd t|j	|j	dd t
| t j¡| |¡ƒ tj| |¡dd}t
|| t j¡ƒ | ¡  t|| |¡ƒ | ¡  t|| |¡ƒ d S )Nr   r”   r   r!   )Úaxis)r{   rX   r   r–   r&   r|   r—   r   r,   r„   r   r.   r…   Úargmaxr/   Úsparsifyr   )rM   r}   r~   rK   Úpredr=   r=   r>   Útest_linearsvc_iris	  s   
rŸ   c                 C   s    t ddddgdd\}}| |ƒ}t ¡ tjddt ¡ fD ]0}|jddid	 | |d d
… |d d
… ¡ | |d
d … ¡}t	 
||d
d … k¡dksMJ ‚qd S )NéÈ   r   g-²ï§ê?gÇK7‰A`Å?r   )r   Ú
n_featuresÚweightsr   r”   é   )Úclass_weighté´   é   )r	   r   ÚLogisticRegressionr   r–   rI   Ú
set_paramsr&   r.   r…   Úsum)rM   ÚX_Úy_rK   Úy_predr=   r=   r>   Útest_weight#  s   
ÿ
ý ør­   c                 C   st   | t ƒ}t ¡ }| |t¡ t| t d g¡dgƒ dgd dgd  }|j|t|d t| t d g¡dgƒ d S )Nr   rƒ   r€   r   r   )Úsample_weightç       @ru   )rn   rw   rK   r®   r=   r=   r>   Útest_sample_weights6  s   r°   c                   C   s   t  tj¡ d S ro   )r   Ú'test_dense_liblinear_intercept_handlingr   r–   r=   r=   r=   r>   Ú(test_sparse_liblinear_intercept_handlingD  s   r²   c                 C   s(   || ƒ} t jd|d}t|| ||ƒ d S )Nr   )rF   r+   )r   r1   r?   rJ   r=   r=   r>   Útest_sparse_oneclasssvmI  s   r³   c                 C   sÊ   t  g d¢¡}t jg d¢t jd}t jdgd dgd  dgd	  d
gd  t jd}| |||fƒ}t  g d¢¡}tjdd | ¡ |¡}tjdd | ¡ |¡}t|j	|j	 ¡ ƒ t|j
|j
 ¡ ƒ d S )N)g!ã“F³O£?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   rt   )r…   r‹   Úint32r   rI   r&   r'   Útocoor   r)   r*   )rM   rX   rY   rU   rZ   rc   rK   r~   r=   r=   r>   Útest_sparse_realdata]  s   4ÿUr¿   c                 C   s~   t jddd„ ddd}t |¡}| tƒ}| |t¡ | |¡}| |¡ t jddd„ ddd}| tt¡ t¡}t	||ƒ d S )Nr   c                 S   ó
   | |j  S ro   ©rp   rq   r=   r=   r>   Ú<lambda>Ì  ó   
 z<test_sparse_svc_clone_with_callable_kernel.<locals>.<lambda>Tr   )r   r+   rG   r   c                 S   s   t  | |j¡S ro   )r…   r†   rp   rq   r=   r=   r>   rÂ   Õ  s    )
r   rI   r   r%   rZ   r&   rv   r.   r2   r   )rn   ÚaÚbrw   rž   r6   Ú
pred_denser=   r=   r>   Ú*test_sparse_svc_clone_with_callable_kernelÈ  s   


ÿrÇ   c                 C   s`   t jddd„ dddd}d}tjt|d | | tƒt¡ W d   ƒ d S 1 s)w   Y  d S )	Nr   c                 S   rÀ   ro   rÁ   rq   r=   r=   r>   rÂ   ß  rÃ   ztest_timeout.<locals>.<lambda>Tr   )r   r+   rG   r   Úmax_iterzoSolver terminated early \(max_iter=1\).  Consider pre-processing your data with StandardScaler or MinMaxScaler.r#   )r   rI   r3   Úwarnsr
   r&   rZ   rv   )rn   ÚspÚwarning_msgr=   r=   r>   Útest_timeoutÜ  s   ÿÿ"ÿrÌ   c                  C   s¦   t jdddd} ttd |  tt¡ t¡}W d   ƒ n1 s!w   Y  t jdddd} ttd |  tt¡ t¡}W d   ƒ n1 sGw   Y  t||ƒ d S )NTr   r   )rG   rÈ   r   )Úcategory)	r   rI   r   r
   r&   rZ   rv   r2   r   )rÄ   Úproba_1Úproba_2r=   r=   r>   Útest_consistent_probaé  s   ÿÿrÐ   )GÚnumpyr…   r3   Ú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‹   rZ   rv   rp   r‘   r•   r’   ÚT2Útrue_result2Ú	load_irisr{   ÚrandomÚRandomStateÚrngÚpermutationr|   ÚsizeÚpermrX   ÚX_blobsÚy_blobsr?   ÚmarkÚparametrizerL   rm   rz   r   r   r“   Úziprš   rŸ   r­   r°   r²   r³   r¿   rÇ   rÌ   rÐ   r=   r=   r=   r>   Ú<module>   s¬    .ûÿ	* üþ	
1




ÿ



üþ	
j

