
    _nd3
                        d dl Zd dlm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 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 ej        e          Ze                                  G d d	          Zd
 Zd Zd Zd Z dS )    N)assert_allclose)assert_array_almost_equal)check_random_state)	load_iris)
Perceptron   c                   (    e Zd ZddZd Zd Zd ZdS )MyPerceptron   c                     || _         d S Nn_iter)selfr   s     Jlib/python3.11/site-packages/sklearn/linear_model/tests/test_perceptron.py__init__zMyPerceptron.__init__   s        c                    |j         \  }}t          j        |t          j                  | _        d| _        t          | j                  D ]t}t          |          D ]b}|                     ||                   d         ||         k    r5| xj        ||         ||         z  z  c_        | xj        ||         z  c_        cud S )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     !	:*BJ777t{## 	# 	#A9%% # #<<!%%a(AaD00FFadQqTk)FFFFadNFF#	# 	#r   c                 F    t          j        || j                  | j        z   S r   )r   dotr   r   r   r   s     r   projectzMyPerceptron.project$   s    va  46))r   c                 x    t          j        |          }t          j        |                     |                    S r   )r   
atleast_2dsignr(   r'   s     r   r   zMyPerceptron.predict'   s+    M!wt||A'''r   N)r   )__name__
__module____qualname__r   r$   r(   r    r   r   r
   r
      sU           	# 	# 	#* * *( ( ( ( (r   r
   c                      t           t          fD ]R} t          dd d          }|                    | t                     |                    | t                    }|dk    sJ Sd S )Nd   F)max_itertolshufflegffffff?)r   X_csrr   r$   r   score)dataclfr6   s      r   test_perceptron_accuracyr9   ,   si    E
  #4???a		$""s{{{{{	 r   c                  \   t                                           } d| t           dk    <   t          d          }|                    t          |            t          ddd           }|                    t          |            t          |j        |j        	                                           d S )Nr      r   F)r2   r4   r3   )
r   copyr
   r$   r   r   r   r   coef_ravel)y_binclf1clf2s      r   test_perceptron_correctnessrC   4   s    FFHHEE!q&Mq!!!DHHQq%T:::DHHQdfdj&6&6&8&899999r   c                      t          d          } dD ]C}t          j        t                    5  t	          | |           d d d            n# 1 swxY w Y   Dd S )Nr1   )r2   )predict_probapredict_log_proba)r   pytestraisesAttributeErrorgetattr)r8   meths     r   test_undefined_methodsrL   A   s    
c
"
"
"C6  ]>** 	 	C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s   AA	A	c                  .   t          dd          } |                     t          t                     t          dd          }|                    t          t                     |                     t          t                    |                    t          t                    k    sJ t          d                              t          t                    }t          dd                              t          t                    }t          |j        |j                   t          d                              t          t                    }t          dd                              t          t                    }t          |j        |j                   d	S )
z?Check that `l1_ratio` has an impact when `penalty='elasticnet'`r   
elasticnet)l1_ratiopenaltyg333333?l1)rP   r   l2N)r   r$   r   r   r6   r   r>   )rA   rB   clf_l1clf_elasticnetclf_l2s        r   test_perceptron_l1_ratiorV   H   s+   q,777DHHQNNNt\:::DHHQNNN::atzz!Q////// %%%))!Q//FLAAAEEaKKNFL."6777%%%))!Q//FLAAAEEaKKNFL."677777r   )!numpyr   scipy.sparsesparsesprG   sklearn.utils._testingr   r   sklearn.utilsr   sklearn.datasetsr   sklearn.linear_modelr   irisrandom_statearanger7   r   indicesr4   r   targetr   
csr_matrixr5   sort_indicesr
   r9   rC   rL   rV   r/   r   r   <module>rf      sx              2 2 2 2 2 2 < < < < < < , , , , , , & & & & & & + + + + + +y{{!!"%%
")DIOA&
'
'   W   IgKa      ( ( ( ( ( ( ( (.  
: 
: 
:  8 8 8 8 8r   