
    {Kg0
                        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 d dlmZ  e       Z ed      Z ej                   ej"                  j$                  d          Zej)                  e       ej"                  e   Zej,                  e   Z G d d	      Zej2                  j5                  d
eej6                  gz         d        Zd Zd Zd Zy)    N)	load_iris)
Perceptron)check_random_state)assert_allcloseassert_array_almost_equal)CSR_CONTAINERS   c                   &    e Zd ZddZd Zd Zd Zy)MyPerceptronc                     || _         y Nn_iter)selfr   s     n/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_perceptron.py__init__zMyPerceptron.__init__   s	        c                    |j                   \  }}t        j                  |t        j                        | _        d| _        t        | j                        D ]f  }t        |      D ]V  }| j                  ||         d   ||   k7  s!| xj                  ||   ||   z  z  c_        | xj
                  ||   z  c_        X h y )N)dtypeg        r   )	shapenpzerosfloat64wbranger   predict)r   Xy	n_samples
n_featurestis          r   fitzMyPerceptron.fit   s     !	:*BJJ7t{{#A9%<<!%a(AaD0FFadQqTk)FFFadNF & $r   c                 \    t        j                  || j                        | j                  z   S r   )r   dotr   r   r   r   s     r   projectzMyPerceptron.project!   s     vva 466))r   c                 t    t        j                  |      }t        j                  | j                  |            S r   )r   
atleast_2dsignr(   r'   s     r   r   zMyPerceptron.predict$   s'    MM!wwt||A''r   N)   )__name__
__module____qualname__r   r$   r(   r    r   r   r   r      s    	#*(r   r   	containerc                      | t               }t        dd d      }|j                  |t               |j	                  |t              }|dkD  sJ y )Nd   F)max_itertolshufflegffffff?)r   r   r$   r   score)r1   dataclfr7   s       r   test_perceptron_accuracyr:   )   sC    Q<D
ctU
;CGGD!IIdAE3;;r   c                  ,   t         j                         } d| t         dk7  <   t        d      }|j                  t        |        t        ddd       }|j                  t        |        t        |j                  |j                  j                                y )Nr,      r   F)r4   r6   r5   )
r   copyr   r$   r   r   r   r   coef_ravel)y_binclf1clf2s      r   test_perceptron_correctnessrD   2   si    FFHEE!q&Mq!DHHQq%T:DHHQdffdjj&6&6&89r   c                      t        d      } dD ]0  }t        j                  t              5  t	        | |       d d d        2 y # 1 sw Y   =xY w)Nr3   )r4   )predict_probapredict_log_proba)r   pytestraisesAttributeErrorgetattr)r9   meths     r   test_undefined_methodsrM   ?   s;    
c
"C6]]>*C +* 7**s   AA	c                     t        dd      } | j                  t        t               t        dd      }|j                  t        t               | j	                  t        t              |j	                  t        t              k7  sJ t        d      j                  t        t              }t        dd      j                  t        t              }t        |j                  |j                         t        d      j                  t        t              }t        dd      j                  t        t              }t        |j                  |j                         y	)
z?Check that `l1_ratio` has an impact when `penalty='elasticnet'`r   
elasticnet)l1_ratiopenaltyg333333?l1)rQ   r,   l2N)r   r$   r   r   r7   r   r?   )rB   rC   clf_l1clf_elasticnetclf_l2s        r   test_perceptron_l1_ratiorW   F   s    q,7DHHQNt\:DHHQN::atzz!Q//// %))!Q/FLAEEaKNFLL."6"67%))!Q/FLAEEaKNFLL."6"67r   ) numpyr   rH   sklearn.datasetsr   sklearn.linear_modelr   sklearn.utilsr   sklearn.utils._testingr   r   sklearn.utils.fixesr   irisrandom_statearanger8   r   indicesr6   r   targetr   r   markparametrizearrayr:   rD   rM   rW   r0   r   r   <module>rf      s      & + , M .{!"%
"))DIIOOA&
'   W IIgKK( (. nz&AB C
:8r   