
    ri).                     	   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ  e
       Z ed      Z ej>                  ej@                  jB                  d          Z"ejG                  e"       ej@                  e"   Z$ejJ                  e"   Z& G d de      Z'ejP                  jS                  d      ejP                  jU                  dddg      ejP                  jU                  dddg      ejP                  jU                  ddge      d                             Z+ejP                  jS                  d      ejP                  jU                  dddg      ejP                  jU                  ddge      d                      Z,ejP                  jS                  d      d        Z-ejP                  jS                  d      ejP                  jU                  ddge      ejP                  jU                  dd      d                      Z.ejP                  jS                  d      ejP                  jU                  dg d      d               Z/ejP                  jS                  d      d        Z0ejP                  jS                  d      d        Z1ejP                  jS                  d      d         Z2ejP                  jS                  d      d!        Z3ejP                  jS                  d      ejP                  jU                  dddg      ejP                  jU                  dddg      ejP                  jU                  ddge      d"                             Z4ejP                  jS                  d      ejP                  jU                  dddg      ejP                  jU                  ddge      d#                      Z5ejP                  jS                  d      ejP                  jU                  ddge      ejP                  jU                  dd$      d%                      Z6ejP                  jS                  d      d&        Z7ejP                  jU                  d'eeg      d(        Z8ejP                  jU                  dd)gd*d+g      d,        Z9ejP                  jU                  dd)gd-d.g      d/        Z:y)0    N)assert_allclose)issparse)ClassifierMixin)	load_irismake_classificationmake_regression)PassiveAggressiveClassifierPassiveAggressiveRegressorSGDClassifierSGDRegressor)SPARSE_INTERCEPT_DECAY)DEFAULT_EPSILON)check_random_state)assert_almost_equalassert_array_equal)CSR_CONTAINERS   c                   ,    e Zd ZdeddddfdZd Zd Zy)	MyPassiveAggressive      ?hingeT   Nc                 J    || _         || _        || _        || _        || _        y N)Cepsilonlossfit_interceptn_iter)selfr   r   r   r   r   random_states          p/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_passive_aggressive.py__init__zMyPassiveAggressive.__init__!   s(     	*    c           	         |j                   \  }}t        j                  |t        j                        | _        d| _        d}t        |      rt        }|j                         }t        | j                        D ]_  }t        |      D ]M  }| j                  ||         }| j                  dv rt        d||   |z  z
  d      }	n2t        t        j                  |||   z
        | j                  z
  d      }	t        j                   ||   ||         }
| j                  dv rt#        | j$                  |	|
z        }n&| j                  dv r|	|
dd	| j$                  z  z  z   z  }| j                  dv r	||   z  }nt        j&                  ||   |z
        z  }| xj                  |||   z  z  c_        | j(                  s6| xj
                  ||z  z  c_        P b y )
N)dtype        r   r   squared_hinger   r   )r   epsilon_insensitive)r)   squared_epsilon_insensitive   )shapenpzerosfloat64wbr   r   toarrayranger   projectr   maxabsr   dotminr   signr   )r    Xy	n_samples
n_featuresintercept_decaytipr   sqnormsteps               r"   fitzMyPassiveAggressive.fit0   s    !	:*BJJ7 A;4O		At{{# 	5A9% 5LL1&99 ::q1Q4!8|Q/Drvva!A$h/$,,>BD!ad+99 @@tvvtf}5DYY"RR6C1tvv:,>#>?D99 ::AaDLDBGGAaD1H--D$1+%%%FFo44F+5	5r$   c                 \    t        j                  || j                        | j                  z   S r   )r.   r8   r1   r2   )r    r;   s     r"   r5   zMyPassiveAggressive.projectS   s     vva 466))r$   )__name__
__module____qualname__r   r#   rE   r5    r$   r"   r   r       s&     !5F*r$   r   zignore::FutureWarningaverageFTr   csr_containerc                 *   |  | t               nt         }t        dd|d|d       }|j                  |t               |j	                  |t              }|dkD  sJ |r9t        |d      sJ t        |d      sJ t        |d      sJ t        |d	      sJ y y )
Nr      r   )r   max_iterr   r!   rK   tolHzG?_average_coef_average_intercept_standard_intercept_standard_coef)r;   r	   rE   r<   scorehasattr)rL   r   rK   dataclfrV   s         r"   test_classifier_accuracyrZ   W   s    
  -8=aD
%
#C GGD!IIdAE4<<sO,,,s0111s1222s,---	 r$   c                 x   t        j                  t              }|  | t              nt        }t	        d|d      }t        d      D ]  }|j                  |t        |        |j                  |t              }|dkD  sJ |r9t        |d      sJ t        |d      sJ t        |d      sJ t        |d	      sJ y y )
Nr      r!   rK   rO   rN   rQ   rR   rS   rT   rU   )	r.   uniquer<   r;   r	   r4   partial_fitrV   rW   )rL   rK   classesrX   rY   r@   rV   s          r"   test_classifier_partial_fitra   o   s     iilG,8=aD
%1gPQ
RC2Y *a)*IIdAE4<<sO,,,s0111s1222s,---	 r$   c                  V   t        d      j                  t        t              } t	        | j
                  t        j                  t                     | j                  t        d d d df   t        j                  t                  t	        | j
                  t        j                         y )Nr\   rO   )
r	   rE   r;   r<   r   classes_r.   r^   iristarget_namesrY   s    r"   test_classifier_refitri      sj     &q
1
5
5a
;Cs||RYYq\2GGAa"fIt((+,s||T%6%67r$   r   r(   c                 H   t         j                         }d|t         dk7  <   | |t              nt        }t        | d      }|j	                  ||       t        | ddd       }|j	                  ||       t        |j                  |j                  j                                y Nrd   r      )r   r   F)r   rO   shufflerP   )
r<   copyr;   r   rE   r	   r   r1   coef_ravel)r   rL   y_binrX   clf1clf2s         r"   test_classifier_correctnessrt      s     FFHEE!q&M,8=aDD3DHHT5&D1eQUVDHHT5DFFDJJ,,./r$   response_method)predict_probapredict_log_proba	transformc                     t        d      }t        j                  t              5  t	        ||        d d d        y # 1 sw Y   y xY wNd   rc   )r	   pytestraisesAttributeErrorgetattr)ru   rY   s     r"   !test_classifier_undefined_methodsr      s9    
 &s
3C	~	& &_%& & &s	   <Ac                     t        j                  ddgddgddgddgddgg      } g d}t        ddd d	      }|j                  | |       t	        |j                  d
dgg      t        j                  dg             t        ddddid	      }|j                  | |       t	        |j                  d
dgg      t        j                  dg             y )N      r   皙r   r'   r   r   r   rd   rd   皙?r{   )r   rO   class_weightr!   g?r   gMbP?rd   )r.   arrayr	   rE   r   predictX2y2rY   s      r"   test_class_weightsr      s     
D$<$T4L3*sCjQ	RB	B
%
$SC GGBOs{{S$K=1288QC=A &
1e*3C GGBO s{{S$K=1288RD>Br$   c                      t        dd      } t        j                  t              5  | j	                  t
        t        t        j                  t                     d d d        y # 1 sw Y   y xY w)Nbalancedr{   r   rO   )r`   )	r	   r|   r}   
ValueErrorr_   r;   r<   r.   r^   rh   s    r"   &test_partial_fit_weight_class_balancedr      sK     &:
LC	z	" 41biil34 4 4s   4A$$A-c                  v   ddgddgddgddgg} g d}t        dd d       }|j                  | |       t        dd d      }|j                  | |       t        dd ddd      }|j                  | |       t        |j                  |j                  d	
       t        |j                  |j                  d	
       y )Nr   r   )r   r   r   r   r   )r   rP   r   r         ?)r   r   r,   )decimal)r	   rE   r   ro   )r   r   rY   clf_balancedclf_weighteds        r"   test_equal_class_weightr      s    a&1a&1a&1a&	)B	B
%D
ICGGBO /$ZXLR.
4##&6L R 		<#5#5qA		<#5#5qAr$   c                      t        j                  ddgddgddgddgddgg      } g d}t        ddid	      }t        j                  t
              5  |j                  | |       d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   r'   r   r   r{   r   )r.   r   r	   r|   r}   r   rE   r   s      r"   test_wrong_class_weight_labelr      st     
D$<$T4L3*sCjQ	RB	B
%As8c
JC	z	" B  s   A--A6c                    t         j                         }d|t         dk7  <   |  | t              nt        }t        d|d|d      }|j	                  ||       |j                  |      }t        j                  ||z
  dz        dk  sJ |r9t        |d	      sJ t        |d
      sJ t        |d      sJ t        |d      sJ y y )Nrd   r   r   r   r\   )r   r   r!   rK   rO   r,   333333?rR   rS   rT   rU   )	r<   rn   r;   r
   rE   r   r.   meanrW   )rL   r   rK   rq   rX   regpreds          r"   test_regressor_mser      s    
 FFHEE!q&M,8=aD
$
#C GGD%;;tD77D5LQ&'#---sO,,,s0111s1222s,---	 r$   c                    t         j                         }d|t         dk7  <   |  | t              nt        }t        d|d      }t	        d      D ]  }|j                  ||        |j                  |      }t        j                  ||z
  dz        dk  sJ |r9t        |d	      sJ t        |d
      sJ t        |d      sJ t        |d      sJ y y )Nrd   r   r   r{   r]   2   r,   r   rR   rS   rT   rU   )
r<   rn   r;   r
   r4   r_   r   r.   r   rW   )rL   rK   rq   rX   r   r@   r   s          r"   test_regressor_partial_fitr      s     FFHEE!q&M,8=aD
$!Ws
SC2Y %e$%;;tD77D5LQ&'#---sO,,,s0111s1222s,---	 r$   )r*   r+   c                 H   t         j                         }d|t         dk7  <   | |t              nt        }t        | d      }|j	                  ||       t        | ddd       }|j	                  ||       t        |j                  |j                  j                                y rk   )
r<   rn   r;   r   rE   r
   r   r1   ro   rp   )r   rL   rq   rX   reg1reg2s         r"   test_regressor_correctnessr     s     FFHEE!q&M,8=aDD3DHHT5%4!UPTUDHHT5DFFDJJ,,./r$   c                      t        d      } t        j                  t              5  | j	                  t
               d d d        y # 1 sw Y   y xY wrz   )r
   r|   r}   r~   rx   r;   )r   s    r"    test_regressor_undefined_methodsr   &  s9    
$c
2C	~	& a  s   AA	Estimatorc                 r    t        j                  t        d      5   |         d d d        y # 1 sw Y   y xY w)Nz&Class PassiveAggressive.+is deprecated)match)r|   warnsFutureWarning)r   s    r"   test_class_deprecationr   .  s-     
m+S	T   s   -6lr)r   pa1)r)   pa2c                     t        dddd      \  }}t        | dd      j                  ||      }t        d	d
|dd      j                  ||      }t	        |j                  |      |j                  |             y
)Test that both are equivalent.r{   
   r\     r=   r>   n_informativer!   /$?*   )r   r   r!   r   N)r   penaltylearning_rateeta0r!   )r   r	   rE   r   r   decision_functionr   r   r;   r<   pasgds         r"   )test_passive_aggressive_classifier_vs_sgdr   8  s~     "ADDAq 
%$%b	I	M	MaQR	SB
d"5r	c!Qi  B((+S-B-B1-EFr$   )r*   r   )r+   r   c                     t        dddd      \  }}t        | ddd	      j                  ||      }t        d
dd|dd      j                  ||      }t	        |j                  |      |j                  |             y)r   r{   r   r\   r   r   grh|?r   r   )r   r   r   r!   r*   N)r   r   r   r   r   r!   )r   r
   rE   r   r   r   r   s         r"   (test_passive_aggressive_regressor_vs_sgdr   E  s     "ADDAq 
$5E
	c!Qi  " 
c!Qi  BJJqM3;;q>2r$   );numpyr.   r|   numpy.testingr   scipy.sparser   sklearn.baser   sklearn.datasetsr   r   r   sklearn.linear_modelr	   r
   r   r   sklearn.linear_model._baser   )sklearn.linear_model._stochastic_gradientr   sklearn.utilsr   sklearn.utils._testingr   r   sklearn.utils.fixesr   rf   r!   arangerX   r-   indicesrm   r;   targetr<   r   markfilterwarningsparametrizerZ   ra   ri   rt   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r$   r"   <module>r      s     ) ! ( L L  > E , /{!"%
"))DIIOOA&
'   W IIgKK4*/ 4*n 34UDM24-84*A.*AB. C 9 3 5.( 34UDM24*A.*AB. C 3 5. 348 58 344*A.*AB!;<0 = C 50 34J& 5& 34C 5C, 344 54 34B 5B( 34 5 34UDM24-84*A.*AB. C 9 3 5., 34UDM24*A.*AB. C 3 5.$ 344*A.*AB!WX0 Y C 50 34 5 -/IJ &$*:<T)UV	G W	G TN#%KL3	3r$   