
    Pi).                     "
   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         j!        d                    Z"e#                    e"           ej         e"         Z$ej%        e"         Z& G d de          Z'ej(        )                    d          ej(        *                    dddg          ej(        *                    dddg          ej(        *                    ddge          d                                                 Z+ej(        )                    d          ej(        *                    dddg          ej(        *                    ddge          d                                     Z,ej(        )                    d          d             Z-ej(        )                    d          ej(        *                    ddge          ej(        *                    dd          d                                     Z.ej(        )                    d          ej(        *                    dg d          d                         Z/ej(        )                    d          d             Z0ej(        )                    d          d             Z1ej(        )                    d          d              Z2ej(        )                    d          d!             Z3ej(        )                    d          ej(        *                    dddg          ej(        *                    dddg          ej(        *                    ddge          d"                                                 Z4ej(        )                    d          ej(        *                    dddg          ej(        *                    ddge          d#                                     Z5ej(        )                    d          ej(        *                    ddge          ej(        *                    dd$          d%                                     Z6ej(        )                    d          d&             Z7ej(        *                    d'eeg          d(             Z8ej(        *                    dd)gd*d+g          d,             Z9ej(        *                    dd)gd-d.g          d/             Z:dS )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dS )	MyPassiveAggressive      ?hingeT   Nc                 L    || _         || _        || _        || _        || _        d S N)Cepsilonlossfit_interceptn_iter)selfr   r   r   r   r   random_states          /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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          }|                                }t          | j
                  D ]R}t          |          D ]>}|                     ||                   }| j        dv rt          d||         |z  z
  d          }	n3t          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        r| xj        ||z  z  c_        @Td S )
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    !	:*BJ777 A;; 	4O		At{## 	5 	5A9%% 5 5LL1&&9 :::q1Q4!8|Q//DDrva!A$h//$,>BBD!ad++9 @@@tvtf}55DDY"RRR6C1tv:,>#>?D9 :::AaDLDDBGAaD1H---D$1+%% 5FFo44FF+5	5 	5r$   c                 F    t          j        || j                  | j        z   S r   )r.   r8   r1   r2   )r    r;   s     r"   r5   zMyPassiveAggressive.projectS   s    va  46))r$   )__name__
__module____qualname__r   r#   rE   r5    r$   r"   r   r       s[            !5 !5 !5F* * * * *r$   r   zignore::FutureWarningaverageFTr   csr_containerc                 v   |  | t                     nt           }t          dd|d|d           }|                    |t                     |                    |t                    }|dk    sJ |rHt          |d          sJ t          |d          sJ t          |d          sJ t          |d	          sJ d S d S )
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11s122222s,-----	. . 	.-r$   c                    t          j        t                    }|  | t                    nt          }t	          d|d          }t          d          D ]}|                    |t          |           |                    |t                    }|dk    sJ |rHt          |d          sJ t          |d          sJ t          |d          sJ t          |d	          sJ d S d S )
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    illG,8==aD
%1gPQ
R
R
RC2YY * *a))))IIdAE4<<<< .sO,,,,,s011111s122222s,-----	. . 	.-r$   c                  p   t          d                              t          t                    } t	          | j        t          j        t                               |                     t          d d d df         t          j	        t                              t	          | j        t          j	                   d S )Nr\   rO   )
r	   rE   r;   r<   r   classes_r.   r^   iristarget_namesrY   s    r"   test_classifier_refitri      s     &q
1
1
1
5
5a
;
;Cs|RYq\\222GGAaaa"fIt(+,,,s|T%677777r$   r   r(   c                 ~   t                                           }d|t           dk    <   | |t                    nt          }t          | d          }|                    ||           t          | ddd           }|                    ||           t          |j        |j        	                                           d S 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     FFHHEE!q&M,8==aDD333DHHT5&D1eQUVVVDHHT5DFDJ,,../////r$   response_method)predict_probapredict_log_proba	transformc                     t          d          }t          j        t                    5  t	          ||            d d d            d S # 1 swxY w Y   d S Nd   rc   )r	   pytestraisesAttributeErrorgetattr)ru   rY   s     r"   !test_classifier_undefined_methodsr      s    
 &s
3
3
3C	~	&	& & &_%%%& & & & & & & & & & & & & & & & & &s   AA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	          }|                    | |           t	          |                    d
dgg          t          j        dg                     t          ddddid	          }|                    | |           t	          |                    d
dgg          t          j        dg                     d S )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	R	RB			B
%
$S  C GGBOOOs{{S$K=1128QC==AAA &
1e*3  C GGBOOO s{{S$K=1128RD>>BBBBBr$   c                      t          dd          } t          j        t                    5  |                     t
          t          t          j        t                               d d d            d S # 1 swxY w Y   d S )Nbalancedr{   r   rO   )r`   )	r	   r|   r}   
ValueErrorr_   r;   r<   r.   r^   rh   s    r"   &test_partial_fit_weight_class_balancedr      s     &:
L
L
LC	z	"	" 4 41bill3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   :A22A69A6c                     ddgddgddgddgg} g d}t          dd d           }|                    | |           t          dd d          }|                    | |           t          dd ddd          }|                    | |           t          |j        |j        d	
           t          |j        |j        d	
           d S )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
I
I
ICGGBOOO /$ZXXXLR.
4##&6&6  L R 	<#5qAAAA	<#5qAAAAA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  |                    | |           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r'   r   r   r{   r   )r.   r   r	   r|   r}   r   rE   r   s      r"   test_wrong_class_weight_labelr      s     
D$<$T4L3*sCjQ	R	RB			B
%As8c
J
J
JC	z	"	"  B                 s   A88A<?A<c                    t                                           }d|t           dk    <   |  | t                    nt          }t          d|d|d          }|                    ||           |                    |          }t          j        ||z
  dz            dk     sJ |rHt          |d	          sJ t          |d
          sJ t          |d          sJ t          |d          sJ d S d S )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   
 FFHHEE!q&M,8==aD
$
#  C GGD%;;tD7D5LQ&''#---- .sO,,,,,s011111s122222s,-----	. . 	.-r$   c                    t                                           }d|t           dk    <   |  | t                    nt          }t          d|d          }t	          d          D ]}|                    ||           |                    |          }t          j        ||z
  dz            dk     sJ |rHt          |d	          sJ t          |d
          sJ t          |d          sJ t          |d          sJ d S d S )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!    FFHHEE!q&M,8==aD
$!Ws
S
S
SC2YY % %e$$$$;;tD7D5LQ&''#---- .sO,,,,,s011111s122222s,-----	. . 	.-r$   )r*   r+   c                 ~   t                                           }d|t           dk    <   | |t                    nt          }t          | d          }|                    ||           t          | ddd           }|                    ||           t          |j        |j        	                                           d S rk   )
r<   rn   r;   r   rE   r
   r   r1   ro   rp   )r   rL   rq   rX   reg1reg2s         r"   test_regressor_correctnessr     s     FFHHEE!q&M,8==aDD333DHHT5%4!UPTUUUDHHT5DFDJ,,../////r$   c                      t          d          } t          j        t                    5  |                     t
                     d d d            d S # 1 swxY w Y   d S rz   )r
   r|   r}   r~   rx   r;   )r   s    r"    test_regressor_undefined_methodsr   &  s    
$c
2
2
2C	~	&	&  a                 s   AAA	Estimatorc                     t          j        t          d          5   |              d d d            d S # 1 swxY w Y   d S )Nz&Class PassiveAggressive.+is deprecated)match)r|   warnsFutureWarning)r   s    r"   test_class_deprecationr   .  s     
m+S	T	T	T  	                 s   488lr)r   pa1)r)   pa2c                 :   t          dddd          \  }}t          | dd                              ||          }t          d	d
|dd                              ||          }t	          |                    |          |                    |                     d
S )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	I	I	M	MaQR	S	SB
d"5r  	c!Qii  B((++S-B-B1-E-EFFFFFr$   )r*   r   )r+   r   c                 >   t          dddd          \  }}t          | ddd	                              ||          }t          d
dd|dd                              ||          }t	          |                    |          |                    |                     dS )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!Qii  "   
c!Qii  BJJqMM3;;q>>2222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 L L L L L L L L            > = = = = = E E E E E E , , , , , ,        / . . . . .y{{!!"%%
")DIOA&
'
'   W   IgK4* 4* 4* 4* 4*/ 4* 4* 4*n 344UDM224-884*A.*ABB. . CB 98 32 54.( 344UDM224*A.*ABB. . CB 32 54. 3448 8 548 3444*A.*ABB!;<<0 0 =< CB 540 344JJJ & &  54& 344C C 54C, 3444 4 544 344B B 54B( 344  54 344UDM224-884*A.*ABB. . CB 98 32 54., 344UDM224*A.*ABB. . CB 32 54.$ 3444*A.*ABB!WXX0 0 YX CB 540 344  54 -/IJ    &$*:<T)UVV	G 	G WV	G TN#%KL 3 3	 3 3 3r$   