
    sgH$                        d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZ  e       Z ed      Z ej(                  ej*                  j,                  d          Zej1                  e       ej*                  e   Zej4                  e   Z G d	 d
e      Zej:                  j=                  dddg      ej:                  j=                  dddg      ej:                  j=                  ddge      d                      Zej:                  j=                  dddg      ej:                  j=                  ddge      d               Z d Z!ej:                  j=                  ddge      ej:                  j=                  dd      d               Z"ej:                  j=                  dg d      d        Z#d Z$d Z%d Z&d Z'ej:                  j=                  dddg      ej:                  j=                  dddg      ej:                  j=                  ddge      d                      Z(ej:                  j=                  dddg      ej:                  j=                  ddge      d               Z)ej:                  j=                  ddge      ej:                  j=                  dd      d                Z*d! Z+ej:                  j=                  d"ee	g      d#        Z,y)$    N)ClassifierMixin)	load_iris)PassiveAggressiveClassifierPassiveAggressiveRegressor)check_random_state)assert_almost_equalassert_array_almost_equalassert_array_equal)CSR_CONTAINERS   c                   ,    e Zd Z	 	 	 	 	 	 ddZd Zd Zy)MyPassiveAggressiveNc                 J    || _         || _        || _        || _        || _        y N)Cepsilonlossfit_interceptn_iter)selfr   r   r   r   r   random_states          e/var/www/html/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_passive_aggressive.py__init__zMyPassiveAggressive.__init__   s(     	*    c           	      n   |j                   \  }}t        j                  |t        j                        | _        d| _        t        | j                        D ]\  }t        |      D ]J  }| 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  c_        M _ y )
N)dtype        hingesquared_hinge   r   )r   epsilon_insensitive)r    squared_epsilon_insensitive      ?   )shapenpzerosfloat64wbranger   projectr   maxabsr   dotminr   signr   )r   Xy	n_samples
n_featurestipr   sqnormsteps              r   fitzMyPassiveAggressive.fit'   sy    !	:*BJJ7t{{# 	#A9% #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+%%%FFdNF+#	#r   c                 \    t        j                  || j                        | j                  z   S r   )r'   r0   r*   r+   )r   r3   s     r   r-   zMyPassiveAggressive.projectD   s     vva 466))r   )r$   g{Gz?r   Tr!   N)__name__
__module____qualname__r   r<   r-    r   r   r   r      s%     #:*r   r   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   rB   tolHzG?_average_coef_average_intercept_standard_intercept_standard_coef)r3   r   r<   r4   scorehasattr)rC   r   rB   dataclfrM   s         r   test_classifier_accuracyrQ   H   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   rB   rF   rE   rH   rI   rJ   rK   rL   )	r'   uniquer4   r3   r   r,   partial_fitrM   rN   )rC   rB   classesrO   rP   r7   rM   s          r   test_classifier_partial_fitrX   _   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 )NrS   rF   )
r   r<   r3   r4   r
   classes_r'   rU   iristarget_namesrP   s    r   test_classifier_refitr`   p   sh    
%q
1
5
5a
;Cs||RYYq\2GGAa"fIt((+,s||T%6%67r   r   r   c                 T   t         j                         }d|t         dk7  <   t        | d      }|j                  t        |       | |t              nt        }t        | ddd       }|j                  ||       t        |j                  |j                  j                         d       y )Nr[   r!   r%   r   r   F)r   rF   shufflerG   decimal)
r4   copyr   r<   r3   r   r	   r*   coef_ravel)r   rC   y_binclf1rO   clf2s         r   test_classifier_correctnessrl   y   s     FFHEE!q&MD3DHHQ,8=aD&D1eQUVDHHT5dffdjj&6&6&8!Dr   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   rZ   )r   pytestraisesAttributeErrorgetattr)rm   rP   s     r   !test_classifier_undefined_methodsrx      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!   r[   r[   皙?rs   )r   rF   class_weightr   g?r!   gMbP?r[   )r'   arrayr   r<   r
   predictX2y2rP   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balancedrs   r~   rF   )rW   )	r   rt   ru   
ValueErrorrV   r3   r4   r'   rU   r_   s    r   &test_partial_fit_weight_class_balancedr      sI    
%:
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   rG   r~   r         ?)r   r!   r%   rd   )r   r<   r   rg   )r   r   rP   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)
Nrz   r   r{   r$   r   r|   r   rs   r   )r'   r   r   rt   ru   r   r<   r   s      r   test_wrong_class_weight_labelr      sr    	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 )Nr[   r!   r$   r   rS   )r   r   r   rB   rF   r%   333333?rI   rJ   rK   rL   )	r4   rf   r3   r   r<   r   r'   meanrN   )rC   r   rB   ri   rO   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 )Nr[   r!   r   rs   rT   2   r%   r   rI   rJ   rK   rL   )
r4   rf   r3   r   r,   rV   r   r'   r   rN   )rC   rB   ri   rO   r   r7   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                 T   t         j                         }d|t         dk7  <   t        | d      }|j                  t        |       | |t              nt        }t        d | dd      }|j                  ||       t        |j                  |j                  j                         d       y )Nr[   r!   r%   rb   F)rG   r   rF   rc   rd   )
r4   rf   r   r<   r3   r   r	   r*   rg   rh   )r   rC   ri   reg1rO   reg2s         r   test_regressor_correctnessr      s     FFHEE!q&MD3DHHQ,8=aD%$TAuUDHHT5dffdjj&6&6&8!Dr   c                      t        d      } t        j                  t              5  | j	                  t
               d d d        y # 1 sw Y   y xY wrr   )r   rt   ru   rv   rp   r3   )r   s    r    test_regressor_undefined_methodsr   	  s9    
$c
2C	~	& a  s   AA	Estimatorc                      | d      }t        j                  t        d      5  |j                  t        t
               d d d        y # 1 sw Y   y xY w)Nr   )rB   z	average=0)match)rt   warnsFutureWarningr<   r3   r4   )r   ests     r   *test_passive_aggressive_deprecated_averager     s>     A
C	m;	7 1  s   A		A)-numpyr'   rt   sklearn.baser   sklearn.datasetsr   sklearn.linear_modelr   r   sklearn.utilsr   sklearn.utils._testingr   r	   r
   sklearn.utils.fixesr   r]   r   arangerO   r&   indicesrc   r3   targetr4   r   markparametrizerQ   rX   r`   rl   rx   r   r   r   r   r   r   r   r   r   rA   r   r   <module>r      s     ( & X , 
 /{!"%
"))DIIOOA&
'   W IIgKK.*/ .*b UDM24-84*A.*AB. C 9 3.( UDM24*A.*AB. C 3.8 4*A.*AB!;<E = CE J&&C,4B( UDM24-84*A.*AB. C 9 3., UDM24*A.*AB. C 3." 4*A.*AB!WXE Y CE -/IJr   