§
    ¨éUg‡- ã            	       óâ  — d dl Z d dlmZ d dlZd dl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mZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZmZmZmZm Z m!Z!m"Z" d d
l#m$Z$m%Z%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@ d dlAmBZBmCZCmDZDmEZEmFZFmGZG g d¢ZHdZIdZJ e
jK        ¦   «         ZLeLjM        eLjN        cZOZP ejQ        eOjR        d          ¦  «        ZSejT         U                    d ¦  «        ZVeV W                    eS¦  «         eSdd…         ZSeOeS         ePeS         cZOZP e
jX        ¦   «         ZYeYjM        eYjN        cZZZ[d„ Z\d„ Z] ej^        ddg¬¦  «        d„ ¦   «         Z_ej`         a                    deH¦  «        ej`         a                    dddg¦  «        d „ ¦   «         ¦   «         Zbej`         a                    deH¦  «        ej`         a                    dddg¦  «        d!„ ¦   «         ¦   «         Zcej`         a                    deH¦  «        ej`         a                    dddg¦  «        d"„ ¦   «         ¦   «         Zdej`         a                    deH¦  «        ej`         a                    dddg¦  «        d#„ ¦   «         ¦   «         Zeej`         a                    deH¦  «        ej`         a                    dddg¦  «        d$„ ¦   «         ¦   «         Zfej`         a                    deH¦  «        ej`         a                    dddg¦  «        d%„ ¦   «         ¦   «         Zgej`         a                    deH¦  «        ej`         a                    dddg¦  «        ej`         a                    d&dgeEz   ¦  «        ej`         a                    d'd(d)g¦  «        d*„ ¦   «         ¦   «         ¦   «         ¦   «         Zhd+„ Zid,„ Zjd-„ Zkd.„ Zld/„ Zmd0„ Znej`         a                    d1g d2¢¦  «        ej`         a                    d3eE¦  «        d4„ ¦   «         ¦   «         Zoej`         a                    d5g d6¢¦  «        ej`         a                    d7ddg¦  «        ej`         a                    d3eE¦  «        d8„ ¦   «         ¦   «         ¦   «         Zpej`         a                    d5g d6¢¦  «        ej`         a                    d7ddg¦  «        ej`         a                    d3eE¦  «        d9„ ¦   «         ¦   «         ¦   «         Zq	 	 	 	 	 	 	 	 	 	 	 	 d½d@„Zrej`         a                    dAdB„  eg dC¢dgeEz   ¦  «        D ¦   «         ¦  «        ej`         a                    dDg dE¢¦  «        ej`         a                    dF ejQ        dG¦  «        ¦  «        dH„ ¦   «         ¦   «         ¦   «         Zsej`         a                    dIdJdKg¦  «        ej`         a                    dLejt        geEz   ¦  «        ej`         a                    dMdNdOg¦  «        ej`         a                    dddg¦  «        ej`         a                    dPg dQ¢¦  «        dR„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZudS„ Zvej`         a                    dIdJdKg¦  «        ej`         a                    dLejt        geEz   ¦  «        ej`         a                    dTdUdVg¦  «        ej`         a                    dWg dX¢¦  «        dY„ ¦   «         ¦   «         ¦   «         ¦   «         Zwej`         a                    d&dgeEz   ¦  «        ej`         a                    dZg d[¢¦  «        d\„ ¦   «         ¦   «         Zxd]„ Zyd^„ Zzej`         a                    d_ ed¬`¦  «        ef ed¬`¦  «        efg¦  «        da„ ¦   «         Z{ej`         a                    d_ e¦   «         ef e¦   «         efg¦  «        ej`         a                    dbddGg¦  «        dc„ ¦   «         ¦   «         Z|dd„ Z}de„ Z~df„ Zdg„ Z€ej`         a                    dhddie\g¦  «        ej`         a                    dbd e*dj¦  «        g¦  «        ej`         a                    d&dgeEz   ¦  «        dk„ ¦   «         ¦   «         ¦   «         Z�ej`         a                    dbd e*dj¦  «        g¦  «        ej`         a                    d&dgeEz   ¦  «        dl„ ¦   «         ¦   «         Z‚dm„ Zƒdn„ Z„ej`         a                    do e5¦   «         ¦  «        ej`         a                    dpe@e„ge?¬q¦  «        ej`         a                    dr edJ¬s¦  «        ge?¬q¦  «        dt„ ¦   «         ¦   «         ¦   «         Z…ej`         a                    du e6d¬v¦  «        ¦  «        dw„ ¦   «         Z†ej`         a                    du e‡e2¦  «        ¦  «        dx„ ¦   «         Zˆej`         a                    dyeyeze~ee€eƒf¦  «        ej`         a                    d3eE¦  «        dz„ ¦   «         ¦   «         Z‰d{„ ZŠej`         a                    d|eef¦  «        d}„ ¦   «         Z‹d~„ ZŒej`         a                    dhdde]g¦  «        d€„ ¦   «         Z�ej`         a                    dhddie\g¦  «        d�„ ¦   «         ZŽej`         a                    d‚eeg¦  «        dƒ„ ¦   «         Z�ej`         a                    dbddGg¦  «        ej`         a                    d‚eeg¦  «        d„„ ¦   «         ¦   «         Z�d…„ Z‘d†„ Z’ej`         a                    d‡dˆdGgdGdˆgg¦  «        ej`         a                    d&eCeDz   eEz   eFz   eGz   ¦  «        d‰„ ¦   «         ¦   «         Z“dŠ„ Z”ej`         a                    d‚eeg¦  «        ej`         a                    d‹dŒd�ie•dŽfdŒd�ie•d�fdŒd‘ie–d’fg¦  «        d“„ ¦   «         ¦   «         Z—ej`         a                    d‚eeg¦  «        d”„ ¦   «         Z˜d•„ Z™e<d–„ ¦   «         Zšej`         a                    dg d—¢¦  «        ej`         a                    d˜ddg¦  «        ej`         a                    d3eE¦  «        d™„ ¦   «         ¦   «         ¦   «         Z›ej`         a                    dg dš¢¦  «        ej`         a                    d3eE¦  «        d›„ ¦   «         ¦   «         Zœej`         a                    d˜ddg¦  «        ej`         a                    d3eE¦  «        dœ„ ¦   «         ¦   «         Z�ej`         a                    d�ddg¦  «        ej`         a                    džd ejž        dŸ¦  «        g¦  «        ej`         a                    d ejŸ        geEz   ¦  «        ej`         a                    dg d¡¢¦  «        d¢„ ¦   «         ¦   «         ¦   «         ¦   «         Z ej`         a                    dg d£¢¦  «        d¤„ ¦   «         Z¡d¥„ Z¢ej`         a                    dg d¦¢¦  «        ej`         a                    dF e£d=¦  «        ¦  «        d§„ ¦   «         ¦   «         Z¤d¨„ Z¥ej`         a                    d©ei fedbdifedbdGifg¦  «        dª„ ¦   «         Z¦ej`         a                    dd«d¬g¦  «        ej`         a                    dddg¦  «        ej`         a                    d'g d­¢¦  «        d®„ ¦   «         ¦   «         ¦   «         Z§ej`         a                    dddg¦  «        ej`         a                    d'g d­¢¦  «        d¯„ ¦   «         ¦   «         Z¨ej`         a                    dg d°¢¦  «        d±„ ¦   «         Z©ej`         a                    d'g d­¢¦  «        d²„ ¦   «         Zªej`         a                    d'g d­¢¦  «        d³„ ¦   «         Z«d´„ Z¬ej`         a                    dddg¦  «        ej`         a                    d&dgeEz   ¦  «        ej`         a                    dµd¶dg¦  «        ej`         a                    deHd¬gz   ¦  «        d·„ ¦   «         ¦   «         ¦   «         ¦   «         Z­d¸„ Z®d¹„ Z¯ej`         °                    dº¦  «        ej`         a                    d»eeg¦  «        d¼„ ¦   «         ¦   «         Z±dS )¾é    N)Úproduct)Úlinalg)Úconfig_contextÚdatasets)Úclone)Úmake_classificationÚmake_low_rank_matrixÚmake_multilabel_classificationÚmake_regression)ÚConvergenceWarning)ÚLinearRegressionÚRidgeÚRidgeClassifierÚRidgeClassifierCVÚRidgeCVÚridge_regression)Ú_check_gcv_modeÚ	_RidgeGCVÚ_solve_choleskyÚ_solve_cholesky_kernelÚ_solve_lbfgsÚ
_solve_svdÚ_X_CenterStackOp)Ú
get_scorerÚmake_scorerÚmean_squared_error)ÚGridSearchCVÚ
GroupKFoldÚKFoldÚLeaveOneOutÚcross_val_predict)Úminmax_scale)Úcheck_random_state)Ú_NUMPY_NAMESPACE_NAMESÚ_atol_for_typeÚ_convert_to_numpyÚ)yield_namespace_device_dtype_combinationsÚyield_namespaces)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú_array_api_for_testsÚ_get_check_estimator_idsÚ check_array_api_input_and_values)Ú	_IS_32BITÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERS)ÚsvdÚ	sparse_cgÚcholeskyÚlsqrÚsagÚsaga)r8   r;   )r8   r9   r:   r;   r<   éÈ   c                 ó2   — t          j        | |k    ¦  «        S ©N)ÚnpÚmean©Úy_testÚy_predÚkwargss      úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/linear_model/tests/test_ridge.pyÚ_accuracy_callablerG   X   s   € ÝŒ7�6˜VÒ#Ñ$Ô$Ð$ó    c                 ó6   — | |z
  dz                        ¦   «         S )Né   )rA   )rC   rD   s     rF   Ú_mean_squared_error_callablerK   \   s   € Ø�f‰_ Ñ"×(Ò(Ñ*Ô*Ð*rH   ÚlongÚwide)Úparamsc                 óî  — |j         dk    rd\  }}nd\  }}t          ||¦  «        }t          j                             | ¦  «        }t          ||||¬¦  «        }d|dd…df<   t          j        |¦  «        \  }}}	t          j        |dk    ¦  «        sJ ‚|dd…d|…f         |dd…|d…f         }}
|	d|…dd…f         |	|d…dd…f         }}|j         dk    r@| 	                    d	d
|¬¦  «        }||z  }||| 
                    ||z
  ¬¦  «        dz  z  z  }nB| 	                    d	d
|¬¦  «        }|j        t          j        d|z  ¦  «        z  |
j        z  |z  }d}|t          j        |¦  «        z  }d|d<   t          j        |j        |z  |z   |j        |z  ¦  «        }|||z  z
  }|||z  z
  }t          j                             |¦  «        t          j                             |¦  «        k     sJ ‚||||fS )aD  Dataset with OLS and Ridge solutions, well conditioned X.

    The construction is based on the SVD decomposition of X = U S V'.

    Parameters
    ----------
    type : {"long", "wide"}
        If "long", then n_samples > n_features.
        If "wide", then n_features > n_samples.

    For "wide", we return the minimum norm solution w = X' (XX')^-1 y:

        min ||w||_2 subject to X w = y

    Returns
    -------
    X : ndarray
        Last column of 1, i.e. intercept.
    y : ndarray
    coef_ols : ndarray of shape
        Minimum norm OLS solutions, i.e. min ||X w - y||_2_2 (with minimum ||w||_2 in
        case of ambiguity)
        Last coefficient is intercept.
    coef_ridge : ndarray of shape (5,)
        Ridge solution with alpha=1, i.e. min ||X w - y||_2_2 + ||w||_2^2.
        Last coefficient is intercept.
    rL   )é   é   )rQ   rP   )Ú	n_samplesÚ
n_featuresÚeffective_rankÚrandom_stateé   Néÿÿÿÿçü©ñÒMbP?éöÿÿÿé
   ©ÚlowÚhighÚsize©r^   rJ   r   )rW   rW   )ÚparamÚminr@   ÚrandomÚRandomStater	   r   r7   ÚallÚuniformÚnormalÚTÚdiagÚidentityÚsolveÚnorm)Úglobal_random_seedÚrequestrR   rS   ÚkÚrngÚXÚUÚsÚVtÚU1ÚU2ÚVt1Ú_Úcoef_olsÚyÚalphaÚdÚ
coef_ridgeÚR_OLSÚR_Ridges                        rF   Úols_ridge_datasetr   `   s,  € ð> „}˜ÒÐØ %Ñˆ	�:�:à %Ñˆ	�:ÝˆI�zÑ"Ô"€AÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CÝØ¨
À1ÐSVð	ñ 	ô 	€Að €A€a€a€aˆ€e�HÝŒz˜!‰}Œ}�H€A€qˆ"ÝŒ6�!�d’(ÑÔÐÐÐØˆqˆqˆq�"�1�"ˆuŒX�q˜˜˜˜A˜B˜B˜”xˆ€BØ����A�A�A�ŒY˜˜1˜2˜2˜q˜q˜q˜5œ	ˆ€Cà„}˜ÒÐà—;’; 3¨R°j�;ÑAÔAˆØ�‰LˆØ	ˆR�#—*’* )¨jÑ"8�*Ñ9Ô9¸QÑ>Ñ>Ñ>ˆˆà�KŠK˜C b¨yˆKÑ9Ô9ˆà”5�2œ7 1 q¡5™>œ>Ñ)¨B¬DÑ0°1Ñ4ˆð €EØ•”˜JÑ'Ô'Ñ'€AØ€A€f�IÝ”˜aœc A™g¨™k¨1¬3°©7Ñ3Ô3€Jð ��H‘Ñ€EØ�!�j‘.Ñ €GÝŒ9�>Š>˜%Ñ Ô ¥2¤9§>¢>°'Ñ#:Ô#:Ò:Ð:Ð:Ð:àˆa�˜:Ð%Ð%rH   ÚsolverÚfit_interceptTFc                 óü  — |\  }}}}d}t          |d| | dv rdnd|¬¦  «        }	|t          j        |¦  «        z
  }
|||z  z
  }dt          j        |dz  ¦  «        t          j        |
dz  ¦  «        z  z
  }t	          di |	¤Ž}|d	d	…d	d
…f         }|r	|d
         }n2||                     d¬¦  «        z
  }||                     ¦   «         z
  }d}|                     ||¦  «         |d	d
…         }|j        t          j        |¦  «        k    sJ ‚t          |j
        |¦  «         |                     ||¦  «        t          j        |¦  «        k    sJ ‚t	          di |	¤Ž                     ||t          j        |j        d         ¦  «        ¬¦  «        }|j        t          j        |¦  «        k    sJ ‚t          |j
        |¦  «         |                     ||¦  «        t          j        |¦  «        k    sJ ‚|j        | k    sJ ‚d	S )zˆTest that Ridge converges for all solvers to correct solution.

    We work with a simple constructed data set with known solution.
    ç      ð?T©r;   r<   çVçž¯Ò<ç»½×Ùß|Û=©rz   r�   r€   ÚtolrU   rV   rJ   NrW   r   ©Úaxis©Úsample_weight© )Údictr@   rA   Úsumr   ÚfitÚ
intercept_ÚpytestÚapproxr)   Úcoef_ÚscoreÚonesÚshapeÚsolver_)r€   r�   r   rl   rp   ry   rw   Úcoefrz   rN   Úres_nullÚ	res_RidgeÚR2_RidgeÚmodelÚ	intercepts                  rF   Útest_ridge_regressionrŸ   §   s  € ð &�M€A€qˆ!ˆTØ€EÝØØØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Fð •2”7˜1‘:”:‰~€HØ�A˜‘H‘€IØ•2”6˜) Q™,Ñ'Ô'­"¬&°¸1±Ñ*=Ô*=Ñ=Ñ=€HåˆOˆO�FˆOˆO€EØ	ˆ!ˆ!ˆ!ˆSˆbˆSˆ&Œ	€AØð Ø˜”Hˆ	ˆ	à�—’˜A�‘”ÑˆØ�—’‘”‰LˆØˆ	Ø	‡I‚Iˆa��O„O€OØ���Œ9€DàÔ�vœ}¨YÑ7Ô7Ò7Ð7Ð7Ð7Ý�E”K Ñ&Ô&Ð&Ø�;Š;�q˜!ÑÔ¥¤¨hÑ 7Ô 7Ò7Ð7Ð7Ð7õ ˆOˆO�FˆOˆO×Ò  1µB´G¸A¼GÀA¼JÑ4GÔ4GÐÑHÔH€EØÔ�vœ}¨YÑ7Ô7Ò7Ð7Ð7Ð7Ý�E”K Ñ&Ô&Ð&Ø�;Š;�q˜!ÑÔ¥¤¨hÑ 7Ô 7Ò7Ð7Ð7Ð7àŒ=˜FÒ"Ð"Ð"Ð"Ð"Ð"rH   c                 ón  — |\  }}}}|j         \  }}	d}
t          |
dz  || | dv rdnd|¬¦  «        }|dd…dd…f         }d	t          j        ||fd
¬¦  «        z  }t          j                             |¦  «        t          ||	d
z
  ¦  «        k    sJ ‚|r	|d         }n2||                     d¬¦  «        z
  }||                     ¦   «         z
  }d}|                     ||¦  «         |dd…         }|j	        t          j        |¦  «        k    sJ ‚t          |j        t          j        ||f         d¬¦  «         dS )a  Test that Ridge converges for all solvers to correct solution on hstacked data.

    We work with a simple constructed data set with known solution.
    Fit on [X] with alpha is the same as fit on [X, X]/2 with alpha/2.
    For long X, [X, X] is a singular matrix.
    rƒ   rJ   r„   r…   r†   r‡   NrW   ç      à?rV   r‰   r   ç:Œ0âŽyE>©Úatol)r—   r   r@   Úconcatenater   Úmatrix_rankra   rA   r�   r‘   r’   r“   r)   r”   Úr_©r€   r�   r   rl   rp   ry   rw   r™   rR   rS   rz   r�   rž   s                rF   Ú test_ridge_regression_hstacked_Xr©   Õ   s_  € ð &�M€A€qˆ!ˆTØœGÑ€IˆzØ€EåØ�a‰iØ#ØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Eð 	
ˆ!ˆ!ˆ!ˆSˆbˆSˆ&Œ	€AØ�bŒn˜a ˜V¨!Ð,Ñ,Ô,Ñ,€AÝŒ9× Ò  Ñ#Ô#¥s¨9°jÀ1±nÑ'EÔ'EÒEÐEÐEÐEØð Ø˜”Hˆ	ˆ	à�—’˜A�‘”ÑˆØ�—’‘”‰LˆØˆ	Ø	‡I‚Iˆa��O„O€OØ���Œ9€DàÔ�vœ}¨YÑ7Ô7Ò7Ð7Ð7Ð7õ �E”K¥¤ t¨T zÔ!2¸Ð>Ñ>Ô>Ð>Ð>Ð>rH   c                 óf  — |\  }}}}|j         \  }}	d}
t          d|
z  || | dv rdnd|¬¦  «        }|dd…dd…f         }t          j        ||fd	¬
¦  «        }t          j                             |¦  «        t          ||	¦  «        k    sJ ‚t          j        ||f         }|r	|d         }n2||                     d	¬
¦  «        z
  }||                     ¦   «         z
  }d	}| 	                    ||¦  «         |dd…         }|j
        t          j        |¦  «        k    sJ ‚t          |j        |d¬¦  «         dS )aJ  Test that Ridge converges for all solvers to correct solution on vstacked data.

    We work with a simple constructed data set with known solution.
    Fit on [X] with alpha is the same as fit on [X], [y]
                                                [X], [y] with 2 * alpha.
    For wide X, [X', X'] is a singular matrix.
    rƒ   rJ   r„   r…   r†   r‡   NrW   r   r‰   r¢   r£   )r—   r   r@   r¥   r   r¦   ra   r§   rA   r�   r‘   r’   r“   r)   r”   r¨   s                rF   Ú test_ridge_regression_vstacked_Xr«   ý   sZ  € ð &�M€A€qˆ!ˆTØœGÑ€IˆzØ€EåØ�%‰iØ#ØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Eð 	
ˆ!ˆ!ˆ!ˆSˆbˆSˆ&Œ	€AÝ
Œ˜˜1�v AÐ&Ñ&Ô&€AÝŒ9× Ò  Ñ#Ô#¥s¨9°jÑ'AÔ'AÒAÐAÐAÐAÝ
Œˆa�ˆdŒ€AØð Ø˜”Hˆ	ˆ	à�—’˜A�‘”ÑˆØ�—’‘”‰LˆØˆ	Ø	‡I‚Iˆa��O„O€OØ���Œ9€DàÔ�vœ}¨YÑ7Ô7Ò7Ð7Ð7Ð7õ �E”K ¨DÐ1Ñ1Ô1Ð1Ð1Ð1rH   c                 óN  — |\  }}}}|j         \  }}	d}
t          |
|| | dv rdnd|¬¦  «        }t          d
i |¤Ž}|r!|dd…dd…f         }|d         }|dd…         }nd}|                     ||¦  «         ||	k    s|s6|j        t          j        |¦  «        k    sJ ‚t          |j        |¦  «         dS t          | 	                    |¦  «        |¦  «         t          ||z  |z   |¦  «         t          j                             t          j        |j        |j        f         ¦  «        t          j                             t          j        ||f         ¦  «        k    sJ ‚t          j        d¬	¦  «         |j        t          j        |¦  «        k    sJ ‚t          |j        |¦  «         dS )a  Test that unpenalized Ridge = OLS converges for all solvers to correct solution.

    We work with a simple constructed data set with known solution.
    Note: This checks the minimum norm solution for wide X, i.e.
    n_samples < n_features:
        min ||w||_2 subject to X w = y
    r   r„   r…   r†   r‡   NrW   ú1Ridge does not provide the minimum norm solution.©Úreasonr�   )r—   rŽ   r   r�   r‘   r’   r“   r)   r”   Úpredictr@   r   rk   r§   Úxfail)r€   r�   r   rl   rp   ry   r™   rw   rR   rS   rz   rN   r�   rž   s                 rF   Ú!test_ridge_regression_unpenalizedr²   '  sÔ  € ð &�M€A€qˆ$�ØœGÑ€IˆzØ€EÝØØ#ØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Fõ ˆOˆO�FˆOˆO€Eð ð Øˆaˆaˆa��"�ˆfŒIˆØ˜”Hˆ	Ø�C�R�CŒyˆˆàˆ	Ø	‡I‚Iˆa��O„O€Oð
 �:ÒÐ ]ÐØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ý˜œ TÑ*Ô*Ð*Ð*Ð*õ 	˜Ÿš aÑ(Ô(¨!Ñ,Ô,Ð,Ý˜˜D™ 9Ñ,¨aÑ0Ô0Ð0åŒy�~Š~�bœe EÔ$4°e´kÐ$AÔBÑCÔCÅbÄiÇnÂnÝŒE�)˜T�/Ô"ñG
ô G
ò 
ð 
ð 
ð 
õ 	ŒÐOÐPÑPÔPÐPØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ý˜œ TÑ*Ô*Ð*Ð*Ð*rH   c                 ó"  — |\  }}}}|j         \  }}	d}
t          |
|| | dv rdnd|¬¦  «        }|r!|dd…dd…f         }|d         }|dd…         }nd}dt          j        ||fd	¬
¦  «        z  }t          j                             |¦  «        t          ||	¦  «        k    sJ ‚|                     ||¦  «         ||	k    s|sa|j        t          j
        |¦  «        k    sJ ‚| dk    rt          j        ¦   «          t          |j        t          j        ||f         ¦  «         dS t          |                     |¦  «        |¦  «         t          j                             t          j        |j        |j        f         ¦  «        t          j                             t          j        |||f         ¦  «        k    sJ ‚t          j        d¬¦  «         |j        t          j
        |¦  «        k    sJ ‚t          |j        t          j        ||f         ¦  «         dS )a^  Test that unpenalized Ridge = OLS converges for all solvers to correct solution.

    We work with a simple constructed data set with known solution.
    OLS fit on [X] is the same as fit on [X, X]/2.
    For long X, [X, X] is a singular matrix and we check against the minimum norm
    solution:
        min ||w||_2 subject to min ||X w - y||_2
    r   r„   r…   r†   r‡   NrW   r¡   rV   r‰   r9   r­   r®   )r—   r   r@   r¥   r   r¦   ra   r�   r‘   r’   r“   Úskipr)   r”   r§   r°   rk   r±   ©r€   r�   r   rl   rp   ry   r™   rw   rR   rS   rz   r�   rž   s                rF   Ú,test_ridge_regression_unpenalized_hstacked_Xr¶   ^  s  € ð &�M€A€qˆ$�ØœGÑ€IˆzØ€EåØØ#ØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Eð ð Øˆaˆaˆa��"�ˆfŒIˆØ˜”Hˆ	Ø�C�R�CŒyˆˆàˆ	Ø�bŒn˜a ˜V¨!Ð,Ñ,Ô,Ñ,€AÝŒ9× Ò  Ñ#Ô#¥s¨9°jÑ'AÔ'AÒAÐAÐAÐAØ	‡I‚Iˆa��O„O€Oà�:ÒÐ ]ÐØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ø�ZÒÐåŒK‰MŒMˆMÝ˜œ¥R¤U¨4°¨:Ô%6Ñ7Ô7Ð7Ð7Ð7õ
 	˜Ÿš aÑ(Ô(¨!Ñ,Ô,Ð,åŒy�~Š~�bœe EÔ$4°e´kÐ$AÔBÑCÔCÅbÄiÇnÂnÝŒE�)˜T 4Ð'Ô(ñG
ô G
ò 
ð 
ð 
ð 
õ 	ŒÐOÐPÑPÔPÐPØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ý˜œ¥R¤U¨4°¨:Ô%6Ñ7Ô7Ð7Ð7Ð7rH   c                 óÈ  — |\  }}}}|j         \  }}	d}
t          |
|| | dv rdnd|¬¦  «        }|r!|dd…dd…f         }|d         }|dd…         }nd}t          j        ||fd¬¦  «        }t          j                             |¦  «        t          ||	¦  «        k    sJ ‚t          j        ||f         }|                     ||¦  «         ||	k    s|s6|j	        t          j        |¦  «        k    sJ ‚t          |j        |¦  «         dS t          |                     |¦  «        |¦  «         t          j                             t          j        |j	        |j        f         ¦  «        t          j                             t          j        ||f         ¦  «        k    sJ ‚t          j        d	¬
¦  «         |j	        t          j        |¦  «        k    sJ ‚t          |j        |¦  «         dS )aˆ  Test that unpenalized Ridge = OLS converges for all solvers to correct solution.

    We work with a simple constructed data set with known solution.
    OLS fit on [X] is the same as fit on [X], [y]
                                         [X], [y].
    For wide X, [X', X'] is a singular matrix and we check against the minimum norm
    solution:
        min ||w||_2 subject to X w = y
    r   r„   r…   r†   r‡   NrW   r‰   r­   r®   )r—   r   r@   r¥   r   r¦   ra   r§   r�   r‘   r’   r“   r)   r”   r°   rk   r±   rµ   s                rF   Ú,test_ridge_regression_unpenalized_vstacked_Xr¸   •  sú  € ð &�M€A€qˆ$�ØœGÑ€IˆzØ€EåØØ#ØØ˜Ð.Ð.ˆEˆE°EØ'ðñ ô €Eð ð Øˆaˆaˆa��"�ˆfŒIˆØ˜”Hˆ	Ø�C�R�CŒyˆˆàˆ	Ý
Œ˜˜1�v AÐ&Ñ&Ô&€AÝŒ9× Ò  Ñ#Ô#¥s¨9°jÑ'AÔ'AÒAÐAÐAÐAÝ
Œˆa�ˆdŒ€AØ	‡I‚Iˆa��O„O€Oà�:ÒÐ ]ÐØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ý˜œ TÑ*Ô*Ð*Ð*Ð*õ
 	˜Ÿš aÑ(Ô(¨!Ñ,Ô,Ð,åŒy�~Š~�bœe EÔ$4°e´kÐ$AÔBÑCÔCÅbÄiÇnÂnÝŒE�)˜T�/Ô"ñG
ô G
ò 
ð 
ð 
ð 
õ 	ŒÐOÐPÑPÔPÐPØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ý˜œ TÑ*Ô*Ð*Ð*Ð*rH   Úsparse_containerrz   rƒ   ç{®Gáz„?c                 óþ  — |�=|r| t           vrt          j        ¦   «          n|s| t          vrt          j        ¦   «          |\  }}}}	|j        \  }
}t
                               dd|
¬¦  «        }t          ||| | dv rdndd|¬	¦  «        }|dd…dd
…f         }t          j	        ||fd¬¦  «        }t          j
        ||f         }t          j
        |d|z
  f         |z  }|r	|	d
         }n2||                     d¬¦  «        z
  }||                     ¦   «         z
  }d}|� ||¦  «        }|                     |||¬¦  «         |	dd
…         }	|j        t          j        |¦  «        k    sJ ‚t          |j        |	¦  «         dS )zÝTest that Ridge with sample weights gives correct results.

    We use the following trick:
        ||y - Xw||_2 = (z - Aw)' W (z - Aw)
    for z=[y, y], A' = [X', X'] (vstacked), and W[:n/2] + W[n/2:] = 1, W=diag(W)
    Nr   rV   r[   r„   r…   r†   é † )rz   r�   r€   rˆ   Úmax_iterrU   rW   r‰   r‹   )ÚSPARSE_SOLVERS_WITH_INTERCEPTr’   r´   Ú SPARSE_SOLVERS_WITHOUT_INTERCEPTr—   ro   re   r   r@   r¥   r§   rA   r�   r‘   r“   r)   r”   )r€   r�   r¹   rz   r   rl   rp   ry   rw   r™   rR   rS   Úswr�   rž   s                  rF   Ú$test_ridge_regression_sample_weightsrÁ   Ì  s³  € ð$ Ð#Øð 	˜VÕ+HÐHÐHÝŒK‰MŒMˆMˆMØð 	 6Õ1QÐ#QÐ#QÝŒK‰MŒMˆMØ%�M€A€qˆ!ˆTØœGÑ€IˆzÝ	�Š˜ ¨ˆÑ	3Ô	3€BåØØ#ØØ˜Ð.Ð.ˆEˆE°EØØ'ðñ ô €Eð 	
ˆ!ˆ!ˆ!ˆSˆbˆSˆ&Œ	€AÝ
Œ˜˜1�v AÐ&Ñ&Ô&€AÝ
Œˆa�ˆdŒ€AÝ	Œˆr�1�r‘6ˆzÔ	˜UÑ	"€BØð Ø˜”Hˆ	ˆ	à�—’˜A�‘”ÑˆØ�—’‘”‰LˆØˆ	ØÐ#ØÐ˜QÑÔˆØ	‡I‚Iˆa� "€IÑ%Ô%Ð%Ø���Œ9€DàÔ�vœ}¨YÑ7Ô7Ò7Ð7Ð7Ð7Ý�E”K Ñ&Ô&Ð&Ð&Ð&rH   c                  óB  — t                                dd¦  «        } t          t          | dg¬¦  «        }t	          j        t          t          j        ¦  «        }t          || dg¬¦  «        }t	          j        t          j        |¦  «        j        }t          ||¦  «         d S )NrW   rV   rº   ©rz   )	Ú
y_diabetesÚreshaper   Ú
X_diabetesr@   Údotrg   r   r+   )ry   r™   ÚKÚ	dual_coefÚcoef2s        rF   Útest_primal_dual_relationshiprË     s‚   € Ý×Ò˜2˜qÑ!Ô!€AÝ�: q°°Ð7Ñ7Ô7€DÝ
Œ�z�:œ<Ñ(Ô(€AÝ& q¨!°D°6Ð:Ñ:Ô:€IÝŒF•:”< Ñ+Ô+Ô-€EÝ˜d EÑ*Ô*Ð*Ð*Ð*rH   c            
      ó2  — t           j                             d¦  «        } |                      d¦  «        }|                      dd¦  «        }d}t	          j        t          |¬¦  «        5  t          ||dddd d	¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   é   rZ   z3sparse_cg did not converge after [0-9]+ iterations.©Úmatchrƒ   r8   ç        rV   )rz   r€   rˆ   r½   Úverbose)r@   rb   rc   Úrandnr’   Úwarnsr   r   )ro   ry   rp   Úwarning_messages       rF   Ú&test_ridge_regression_convergence_failrÕ     sß   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�!‰Œ€AØ�	Š	�!�RÑÔ€AØP€OÝ	ŒÕ(°Ð	@Ñ	@Ô	@ð 
ð 
ÝØˆq˜ K°SÀ4ÐQRð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á(BÂBÂBc                  ó  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }|                      |¦  «        }|d d …t           j        f         }t           j        |d|z   f         }t          ¦   «         }|                     ||¦  «         |j        j	        |fk    sJ ‚|j
        j	        dk    sJ ‚t          |j        t           j        ¦  «        sJ ‚t          |j
        t          ¦  «        sJ ‚|                     ||¦  «         |j        j	        d|fk    sJ ‚|j
        j	        dk    sJ ‚t          |j        t           j        ¦  «        sJ ‚t          |j
        t           j        ¦  «        sJ ‚|                     ||¦  «         |j        j	        d|fk    sJ ‚|j
        j	        dk    sJ ‚t          |j        t           j        ¦  «        sJ ‚t          |j
        t           j        ¦  «        sJ ‚d S )Nr   ©rÍ   rZ   rV   r�   ©rV   rJ   )rJ   )r@   rb   rc   rÒ   ÚnewaxisÚc_r   r�   r”   r—   r‘   Ú
isinstanceÚndarrayÚfloat)ro   rR   rS   rp   ry   ÚY1ÚYÚridges           rF   Útest_ridge_shapes_typerá     sß  € å
Œ)×
Ò
 Ñ
"Ô
"€CØ!Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AØ�	Š	�)ÑÔ€AØ	
ˆ1ˆ1ˆ1�bŒjˆ=Ô	€BÝ
Œˆa��Q‘ˆhŒ€Aå‰GŒG€Eà	‡I‚Iˆa��O„O€OØŒ;Ô  Ò-Ð-Ð-Ð-ØÔÔ! RÒ'Ð'Ð'Ð'Ý�e”k¥2¤:Ñ.Ô.Ð.Ð.Ð.Ý�eÔ&­Ñ.Ô.Ð.Ð.Ð.à	‡I‚Iˆa�ÑÔÐØŒ;Ô  J Ò/Ð/Ð/Ð/ØÔÔ! TÒ)Ð)Ð)Ð)Ý�e”k¥2¤:Ñ.Ô.Ð.Ð.Ð.Ý�eÔ&­¬
Ñ3Ô3Ð3Ð3Ð3à	‡I‚Iˆa��O„O€OØŒ;Ô  J Ò/Ð/Ð/Ð/ØÔÔ! TÒ)Ð)Ð)Ð)Ý�e”k¥2¤:Ñ.Ô.Ð.Ð.Ð.Ý�eÔ&­¬
Ñ3Ô3Ð3Ð3Ð3Ð3Ð3rH   c                  óÆ  — t           j                             d¦  «        } d\  }}|                      ||¦  «        }|                      |¦  «        }t           j        |d|z   f         }t          ¦   «         }|                     ||¦  «         |j        }|                     ||¦  «         t          |j        d         |¦  «         t          |j        d         |dz   ¦  «         d S )Nr   r×   rƒ   rV   )	r@   rb   rc   rÒ   rÚ   r   r�   r‘   r*   )ro   rR   rS   rp   ry   rß   rà   rž   s           rF   Útest_ridge_interceptrã   4  sÆ   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ!Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€AØ�	Š	�)ÑÔ€AÝ
Œˆa��q‘ˆjÔ€Aå‰GŒG€Eà	‡I‚Iˆa��O„O€OØÔ €Ià	‡I‚Iˆa��O„O€OÝ˜Ô(¨Ô+¨YÑ7Ô7Ð7Ý˜Ô(¨Ô+¨Y¸©_Ñ=Ô=Ð=Ð=Ð=rH   c                  óþ  — t           j                             d¦  «        } d\  }}|                      |¦  «        }|                      ||¦  «        }t	          dd¬¦  «        }t          d¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         |                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         d S )Nr   )rÍ   rQ   rÐ   F©rz   r�   ©r�   )	r@   rb   rc   rÒ   r   r   r�   r*   r”   )ro   rR   rS   ry   rp   rà   Úolss          rF   Útest_ridge_vs_lstsqrè   F  sÛ   € õ Œ)×
Ò
 Ñ
"Ô
"€Cà Ñ€IˆzØ�	Š	�)ÑÔ€AØ�	Š	�)˜ZÑ(Ô(€Aå˜¨5Ð1Ñ1Ô1€EÝ
¨Ð
/Ñ
/Ô
/€Cà	‡I‚Iˆa��O„O€OØ‡G‚GˆAˆq�M„M€MÝ˜œ S¤YÑ/Ô/Ð/à	‡I‚Iˆa��O„O€OØ‡G‚GˆAˆq�M„M€MÝ˜œ S¤YÑ/Ô/Ð/Ð/Ð/rH   c                  óN  ‡	‡
‡— t           j                             d¦  «        } d\  }}}|                      ||¦  «        Š	|                      ||¦  «        Št          j        |¦  «        Š
t          j        ˆ	fd„t          ‰
‰j        ¦  «        D ¦   «         ¦  «        }ˆ	ˆ
ˆfd„dD ¦   «         }|D ]}t          ||¦  «         Œt          ‰
d d…         ¬¦  «        }d}t          j        t          |¬	¦  «        5  |                     ‰	‰¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Né*   )é   rZ   rÍ   c                 ój   •— g | ]/\  }}t          |d ¬¦  «                             ‰|¦  «        j        ‘Œ0S )r9   ©rz   r€   ©r   r�   r”   )Ú.0rz   Útargetrp   s      €rF   ú
<listcomp>z3test_ridge_individual_penalties.<locals>.<listcomp>g  sM   ø€ ð 	
ð 	
ð 	
á��võ ˜ jÐ1Ñ1Ô1×5Ò5°a¸Ñ@Ô@ÔFð	
ð 	
ð 	
rH   c                 óf   •— g | ]-}t          ‰|d ¬¦  «                             ‰‰¦  «        j        ‘Œ.S )çê-�™—q=)rz   r€   rˆ   rî   )rï   r€   rp   Ú	penaltiesry   s     €€€rF   rñ   z3test_ridge_individual_penalties.<locals>.<listcomp>m  sK   ø€ ð ð ð àõ 	�I f°%Ð8Ñ8Ô8×<Ò<¸QÀÑBÔBÔHðð ð rH   )r7   r8   r:   r9   r;   r<   rW   rÃ   zCNumber of targets and number of penalties do not correspond: 4 != 5rÎ   )r@   rb   rc   rÒ   ÚarangeÚarrayÚziprg   r+   r   r’   ÚraisesÚ
ValueErrorr�   )ro   rR   rS   Ú	n_targetsÚcoef_choleskyÚcoefs_indiv_penÚcoef_indiv_penrà   Úerr_msgrp   rô   ry   s            @@@rF   Útest_ridge_individual_penaltiesrÿ   [  s¡  øøø€ õ Œ)×
Ò
 Ñ
#Ô
#€Cà'0Ñ$€Iˆz˜9Ø�	Š	�)˜ZÑ(Ô(€AØ�	Š	�)˜YÑ'Ô'€Aå”	˜)Ñ$Ô$€Iå”Hð	
ð 	
ð 	
ð 	
å!$ Y°´Ñ!4Ô!4ð	
ñ 	
ô 	
ñô €Mðð ð ð ð ð àMðñ ô €Oð *ð Að AˆÝ! -°Ñ@Ô@Ð@Ð@õ ˜	 # 2 #œÐ'Ñ'Ô'€EØS€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã6DÄDÄ!DÚn_col)r�   rØ   )é   Úcsr_containerc                 ó–  — t           j                             d¦  «        }|                     dd¦  «        }|                     d¦  «        }|                     t	          |¦  «        ¦  «        } |j        dg| ¢R Ž } |j        dg| ¢R Ž }t           ||¦  «        ||¦  «        }t          j        ||d d …d f         |z  z
  |d d …d f         g¦  «        }	t          |	                     |¦  «        |                     |¦  «        ¦  «         t          |	j	                             |¦  «        |j	                             |¦  «        ¦  «         d S )Nr   é   é   é	   )
r@   rb   rc   rÒ   Úlenr   Úhstackr)   rÇ   rg   )
r   r  ro   rp   ÚX_mÚsqrt_swrß   ÚAÚoperatorÚreference_operators
             rF   Útest_X_CenterStackOpr  {  s7  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ�	Š	�"�aÑÔ€AØ
�)Š)�A‰,Œ,€CØ�iŠi�˜A™œÑÔ€GØˆŒ	�"Ð�uÐÐÐ€AØˆŒ	�!Ð�eÐÐÐ€AÝ  ¨aÑ 0Ô 0°#°wÑ?Ô?€HÝœ A¨°°°°4°Ô(8¸3Ñ(>Ñ$>ÀÈÈÈÈ4ÈÔ@PÐ#QÑRÔRÐÝÐ&×*Ò*¨1Ñ-Ô-¨x¯|ª|¸A©¬Ñ?Ô?Ð?ÝÐ&Ô(×,Ò,¨QÑ/Ô/°´·²ÀÑ1BÔ1BÑCÔCÐCÐCÐCrH   r—   ))rZ   rV   )é   r  )r  é   )rJ   rJ   )rë   rë   Úuniform_weightsc                 óD  — t           j                             d¦  «        } |j        | Ž }|r t          j        |j        d         ¦  «        }n|                     d| d         ¦  «        }t          j        |¦  «        }t          j        |d|¬¦  «        }||z
  |d d …d f         z  }| 	                    |j
        ¦  «        }	 |||d d …d f         z  ¦  «        }
t          d¬¦  «        }|                     |
|¦  «        \  }}t          ||¦  «         t          |	|¦  «         d S ©Nr   rV   )rŠ   ÚweightsTræ   )r@   rb   rc   rÒ   r–   r—   Ú	chisquareÚsqrtÚaveragerÇ   rg   r   Ú_compute_gramr)   )r—   r  r  ro   rp   rÀ   r
  ÚX_meanÚ
X_centeredÚ	true_gramÚX_sparseÚgcvÚcomputed_gramÚcomputed_means                 rF   Útest_compute_gramr   Š  s  € õ Œ)×
Ò
 Ñ
"Ô
"€CØˆŒ	�5Ð€AØð (ÝŒW�Q”W˜Q”ZÑ Ô ˆˆà�]Š]˜1˜e AœhÑ'Ô'ˆÝŒg�b‰kŒk€GÝŒZ˜ ¨2Ð.Ñ.Ô.€FØ�f‘* ¨¨¨¨4¨Ô 0Ñ0€JØ—’˜zœ|Ñ,Ô,€IØˆ}˜Q ¨¨¨¨D¨Ô!1Ñ1Ñ2Ô2€HÝ
 $Ð
'Ñ
'Ô
'€CØ#&×#4Ò#4°X¸wÑ#GÔ#GÑ €M�=Ý�F˜MÑ*Ô*Ð*Ý�I˜}Ñ-Ô-Ð-Ð-Ð-rH   c                 óD  — t           j                             d¦  «        } |j        | Ž }|r t          j        |j        d         ¦  «        }n|                     d| d         ¦  «        }t          j        |¦  «        }t          j        |d|¬¦  «        }||z
  |d d …d f         z  }|j	         
                    |¦  «        }	 |||d d …d f         z  ¦  «        }
t          d¬¦  «        }|                     |
|¦  «        \  }}t          ||¦  «         t          |	|¦  «         d S r  )r@   rb   rc   rÒ   r–   r—   r  r  r  rg   rÇ   r   Ú_compute_covariancer)   )r—   r  r  ro   rp   rÀ   r
  r  r  Útrue_covariancer  r  Úcomputed_covr  s                 rF   Útest_compute_covariancer%  Ÿ  s!  € õ Œ)×
Ò
 Ñ
"Ô
"€CØˆŒ	�5Ð€AØð (ÝŒW�Q”W˜Q”ZÑ Ô ˆˆà�]Š]˜1˜e AœhÑ'Ô'ˆÝŒg�b‰kŒk€GÝŒZ˜ ¨2Ð.Ñ.Ô.€FØ�f‘* ¨¨¨¨4¨Ô 0Ñ0€JØ ”l×&Ò& zÑ2Ô2€OØˆ}˜Q ¨¨¨¨D¨Ô!1Ñ1Ñ2Ô2€HÝ
 $Ð
'Ñ
'Ô
'€CØ"%×"9Ò"9¸(ÀGÑ"LÔ"LÑ€L�-Ý�F˜MÑ*Ô*Ð*Ý�O \Ñ2Ô2Ð2Ð2Ð2rH   éd   r¡   rZ   rV   ç      *@ç      >@c                 ó&  — t          | ||||||d|¬¦	  «	        \  }}}|dk    rt          j        |g¦  «        }||z  }t          j                             |¦  «                             d||j        ¦  «        dk    }|                     ¦   «         }d|| <   d||<   ||                     |¦  «        z  }|
rG||                     t          j	        |¦  «        dz   |z
  ¦  «        z  }t          j	        |¦  «        dz   }|dk    r|d         }|	r|||fS ||fS )NT)	rR   rS   Ún_informativerú   ÚbiasÚnoiseÚshuffler™   rU   rV   r   rÐ   )
r   r@   Úasarrayrb   rc   Úbinomialr—   ÚcopyrÇ   Úabs)rR   rS   Úproportion_nonzeror*  rú   r+  ÚX_offsetr,  r-  r™   ÚpositiverU   rp   ry   ÚcÚmaskÚ	removed_Xs                    rF   Ú_make_sparse_offset_regressionr8  ´  s6  € õ ØØØ#ØØØØØØ!ð
ñ 
ô 
�G€A€qˆ!ð �Q‚€ÝŒJ˜�s‰OŒOˆØˆ�M€Aå
Œ	×Ò˜lÑ+Ô+×4Ò4°QÐ8JÈAÌGÑTÔTÐWXÒXð 	ð —’‘”€IØ€A€t€e�HØ€Iˆd�OØˆ�Š�qÑ	Ô	Ñ€AØð Ø	ˆQ�UŠU•2”6˜!‘9”9˜q‘= 1Ñ$Ñ%Ô%Ñ%ˆÝŒF�1‰IŒI˜‰MˆØ�Q‚€ØˆaŒDˆØð Ø�!�QˆwˆØˆaˆ4€KrH   zsolver, sparse_containerc              #   ó0   K  — | ]\  }}|�|dv ¯||fV — Œd S )N)r8   Úridgecvr�   )rï   r€   r¹   s      rF   ú	<genexpr>r;  ã  sO   è è € ð ð á&ˆVÐ%ð Ð# vÐ1IÐ'IÐ'Ið 
Ð!Ð"ð
 (JÐ'IÐ'IÐ'Iðð rH   )r9   r;   r8   r:   r<   r:  z"n_samples,dtype,proportion_nonzero))rë   Úfloat32çš™™™™™¹?)é(   r<  rƒ   )rë   Úfloat64çš™™™™™É?Úseedr  c                 ó   — d}|dk    rdnd}t          dd||||¬¦  «        \  }}	t          |¦  «        }t          d|¬	¦  «                             ||	¦  «        }
|                     |d
¬¦  «        }|	                     |d
¬¦  «        }	|� ||¦  «        }| dk    rt          |g¬¦  «        }nt          | d|¬¦  «        }|                     ||	¦  «         t          |j        |
j        dd¬¦  «         t          |j        |
j        dd¬¦  «         d S )Nrƒ   gÍÌÌÌÌÌì?g      I@g     @@rZ   é   )r+  rS   r2  r,  rU   rR   r7   )r€   rz   F)r0  r:  ©Úalphasr†   )r€   rˆ   rz   rX   ©r¤   Úrtol)	r8  r"   r   r�   Úastyper   r)   r”   r‘   )r€   r2  rR   Údtyper¹   rA  rz   r,  rp   ry   Ú	svd_ridgerà   s               rF   Útest_solver_consistencyrK  á  s7  € ð& €EØ&¨Ò,Ð,ˆDˆD°%€EÝ)ØØØ-ØØØðñ ô �D€A€qõ 	�Q‰Œ€Aå˜U¨%Ð0Ñ0Ô0×4Ò4°Q¸Ñ:Ô:€IØ	�Š�˜UˆÑ#Ô#€AØ	�Š�˜UˆÑ#Ô#€AØÐ#ØÐ˜QÑÔˆØ�ÒÐÝ ˜wÐ'Ñ'Ô'ˆˆå˜V¨°eÐ<Ñ<Ô<ˆØ	‡I‚Iˆa��O„O€OÝ�E”K ¤°tÀ$ÐGÑGÔGÐGÝ�EÔ$ iÔ&:ÀÈDÐQÑQÔQÐQÐQÐQrH   Úgcv_moder7   ÚeigenÚX_containerÚX_shape)r  r  )r  rë   zy_shape, noise))©r  rƒ   )©r  rV   r(  )©r  r  ç     Àb@c           	      ó  — |\  }}t          |¦  «        dk    r|d         nd}t          |||dd|d¬¦  «        \  }	}
|
                     |¦  «        }
g d¢}t          |||d	¬
¦  «        }t          | ||¬¦  «        }|                     |	|
¦  «          ||	¦  «        }|                     ||
¦  «         |j        t          j        |j        ¦  «        k    sJ ‚t          |j	        |j	        d¬¦  «         t          |j
        |j
        d¬¦  «         d S )NrJ   rW   rV   r   FrÍ   ©rR   rS   rú   rU   r-  r,  r*  ©rX   r=  rƒ   ç      $@g     @�@Úneg_mean_squared_error©Úcvr�   rE  Úscoring)rL  r�   rE  rX   ©rG  )r  r8  rÅ   r   r�   Úalpha_r’   r“   r)   r”   r‘   )rL  rN  rO  Úy_shaper�   r,  rR   rS   rú   rp   ry   rE  Ú	loo_ridgeÚ	gcv_ridgeÚX_gcvs                  rF   Útest_ridge_gcv_vs_ridge_loo_cvrb    sG  € ð $Ñ€IˆzÝ" 7™|œ|¨qÒ0Ð0�˜”�°a€IÝ)ØØØØØØØðñ ô �D€A€qð 	
�	Š	�'ÑÔ€Aà(Ð(Ð(€FÝØØ#ØØ(ð	ñ ô €Iõ ØØ#Øðñ ô €Ið ‡M‚M�!�QÑÔÐàˆK˜‰NŒN€EØ‡M‚M�%˜ÑÔÐàÔ�vœ}¨YÔ-=Ñ>Ô>Ò>Ð>Ð>Ð>Ý�I”O Y¤_¸4Ð@Ñ@Ô@Ð@Ý�IÔ(¨)Ô*>ÀTÐJÑJÔJÐJÐJÐJrH   c            	      ó¬  — d} d\  }}d}t          |||dddd¬¦  «        \  }}g d¢}t          |d	|| ¬
¦  «        }t          d	|| ¬¦  «        }|                     ||¦  «         |                     ||¦  «         |j        t	          j        |j        ¦  «        k    sJ ‚t          |j        |j        d¬¦  «         t          |j        |j        d¬¦  «         d S )NÚexplained_variance)rZ   rÍ   rV   r   FrÍ   rU  rV  TrY  )r�   rE  r[  rX   r\  )	r8  r   r�   r]  r’   r“   r)   r”   r‘   )	r[  rR   rS   rú   rp   ry   rE  r_  r`  s	            rF   Útest_ridge_loo_cv_asym_scoringre  E  s  € à"€GØ!Ñ€IˆzØ€IÝ)ØØØØØØØðñ ô �D€A€qð )Ð(Ð(€FÝØ D°Àðñ ô €Iõ  d°6À7ÐKÑKÔK€Ià‡M‚M�!�QÑÔÐØ‡M‚M�!�QÑÔÐàÔ�vœ}¨YÔ-=Ñ>Ô>Ò>Ð>Ð>Ð>Ý�I”O Y¤_¸4Ð@Ñ@Ô@Ð@Ý�IÔ(¨)Ô*>ÀTÐJÑJÔJÐJÐJÐJrH   rS   r  rë   zy_shape, fit_intercept, noise))rP  Trƒ   )rQ  Tg      4@)rR  TrS  )rR  Fr(  c                 ó.  ‡‡— g d¢}t           j                             d¦  «        }t          |¦  «        dk    r|d         nd}t	          d||dd|¬¦  «        \  }	}
|
                     |¦  «        }
d	|                     t          |	¦  «        ¦  «        z  }||                     ¦   «         z
  dz                        t          ¦  «        }t          j
        t          j        |	j        d         ¦  «        |¦  «        Š|                     t          ¦  «        }|	‰         |
‰         }}t          |	j        d         ¬
¦  «        }|                     ||‰¬¦  «        }t!          ||d|¬¦  «        }|                     ||¦  «         t%          |j        |¬¦  «        }|                     ||‰¬¦  «        }t)          ||||¬¦  «        }||z
  dz  Šˆˆfd„t          j        |	j        d         ¦  «        D ¦   «         Št          j        ‰¦  «        Š ||	¦  «        }t!          |d| |¬¦  «        }|                     ||
|¬¦  «         t          |¦  «        dk    r-|j        d d …d d …|                     |j        ¦  «        f         }n)|j        d d …|                     |j        ¦  «        f         }|j        t1          j        |j        ¦  «        k    sJ ‚t5          |‰d¬¦  «         t5          |j        |j        d¬¦  «         t5          |j        |j        d¬¦  «         d S )NrV  r   rJ   rW   rV   r  F)rR   rS   rú   rU   r-  r,  r  )Ún_splits)ÚgroupsrX  )rE  rZ  r[  r�   rå   ©rZ  c                 óP   •— g | ]"}t          j        ‰‰|k             d ¬¦  «        ‘Œ#S )r   r‰   )r@   r�   )rï   ÚiÚindicesÚkfold_errorss     €€rF   rñ   z1test_ridge_gcv_sample_weights.<locals>.<listcomp>“  s>   ø€ ð ð ð Ø78�Œˆ|˜G qšLÔ)°Ð2Ñ2Ô2ðð ð rH   T)rE  Ústore_cv_resultsrL  r�   r‹   rX   r\  )r@   rb   rc   r  r8  rÅ   rÒ   ra   rH  ÚintÚrepeatrõ   r—   rÝ   r   Úsplitr   r�   r   r]  r!   r.  Úcv_results_Úindexr’   r“   r)   r”   r‘   )rL  rN  r�   rS   r^  r,  rE  ro   rú   rp   ry   rŒ   ÚX_tiledÚy_tiledrZ  ÚsplitsÚkfoldÚ	ridge_regÚpredictionsra  r`  Ú
gcv_errorsrl  rm  s                         @@rF   Útest_ridge_gcv_sample_weightsr{  c  s"  øø€ ð )Ð(Ð(€FÝ
Œ)×
Ò
 Ñ
"Ô
"€CÝ" 7™|œ|¨qÒ0Ð0�˜”�°a€IÝ)ØØØØØØðñ ô �D€A€qð 	
�	Š	�'ÑÔ€Aà˜Ÿ	š	¥# a¡&¤&Ñ)Ô)Ñ)€MØ" ]×%6Ò%6Ñ%8Ô%8Ñ8¸1Ñ<×DÒDÅSÑIÔI€MÝŒi�œ	 !¤'¨!¤*Ñ-Ô-¨}Ñ=Ô=€GØ!×(Ò(­Ñ/Ô/€MØ˜”z 1 W¤:ˆW€Gå	˜QœW QœZÐ	(Ñ	(Ô	(€BØ�XŠX�g˜w¨wˆXÑ7Ô7€FÝØØØ(Ø#ð	ñ ô €Eð 
‡I‚Iˆg�wÑÔÐå˜EœL¸ÐFÑFÔF€IØ�XŠX�g˜w¨wˆXÑ7Ô7€FÝ# I¨w¸ÀFÐKÑKÔK€KØ˜kÑ)¨aÑ/€Lðð ð ð ð Ý<>¼IÀaÄgÈaÄjÑ<QÔ<Qðñ ô €Lõ ”:˜lÑ+Ô+€LàˆK˜‰NŒN€EÝØØØØ#ð	ñ ô €Ið ‡M‚M�%˜¨-€MÑ8Ô8Ð8Ý
ˆ7�|„|�qÒÐØÔ*¨1¨1¨1¨a¨a¨a°·²¸e¼lÑ1KÔ1KÐ+KÔLˆ
ˆ
àÔ*¨1¨1¨1¨f¯lªl¸5¼<Ñ.HÔ.HÐ+HÔIˆ
àŒ<�6œ=¨Ô)9Ñ:Ô:Ò:Ð:Ð:Ð:Ý�J °4Ð8Ñ8Ô8Ð8Ý�I”O U¤[°tÐ<Ñ<Ô<Ð<Ý�IÔ(¨%Ô*:ÀÐFÑFÔFÐFÐFÐFrH   z2mode, mode_n_greater_than_p, mode_p_greater_than_n))Nr7   rM  )Úautor7   rM  )rM  rM  rM  )r7   r7   r7   c                 óª   — t          dd¬¦  «        \  }}| � | |¦  «        }t          ||¦  «        |k    sJ ‚t          |j        |¦  «        |k    sJ ‚d S )NrÍ   rJ   )rR   rS   )r   r   rg   )r¹   ÚmodeÚmode_n_greater_than_pÚmode_p_greater_than_nrp   rw   s         rF   Útest_check_gcv_mode_choicer�  «  sp   € õ  Q°1Ð5Ñ5Ô5�D€A€qØÐ#ØÐ˜QÑÔˆÝ˜1˜dÑ#Ô#Ð'<Ò<Ð<Ð<Ð<Ý˜1œ3 Ñ%Ô%Ð)>Ò>Ð>Ð>Ð>Ð>Ð>rH   c                 ó<  — t           j        d         }g }| €
t           d}}n | t           ¦  «        d}}t          |¬¦  «        }|                     |t          ¦  «         |j        }|                     |¦  «         t          }t          t          d¬¦  «        }t          d|¬¦  «        }	  ||	j        ¦  «        |t          ¦  «         |	j        t          j        |¦  «        k    sJ ‚d„ }
t          |
¦  «        }t          d|¬¦  «        }  ||j        ¦  «        |t          ¦  «         |j        t          j        |¦  «        k    sJ ‚t          d¦  «        }t          d|¬¦  «        }|                     |t          ¦  «         |j        t          j        |¦  «        k    sJ ‚| €N|                     |t          t          j        |¦  «        ¬	¦  «         |j        t          j        |¦  «        k    sJ ‚t          j        t          t          f¦  «        j        }|                     ||¦  «         |                     |¦  «        }|                     |t          ¦  «         |                     |¦  «        }t'          t          j        ||f¦  «        j        |d
¬¦  «         |S )Nr   TFræ   )Úgreater_is_better)r�   r[  c                 ó$   — t          | |¦  «         S r?   )r   )Úxry   s     rF   Úfuncz_test_ridge_loo.<locals>.funcØ  s   € Ý" 1 aÑ(Ô(Ð(Ð(rH   rX  r‹   çñhãˆµøä>r\  )rÆ   r—   r   r�   rÄ   r]  Úappendr-   r   r   r   r’   r“   r   r@   r–   Úvstackrg   r°   r)   )r¹   rR   Úretrp   r�   Ú	ridge_gcvr]  Úfr[  Ú
ridge_gcv2r†  Ú
ridge_gcv3ÚscorerÚ
ridge_gcv4rß   ÚY_predrD   s                    rF   Ú_test_ridge_loor’  ¿  s|  € åÔ  Ô#€Ià
€CàÐÝ% tˆ=ˆˆà+Ð+­JÑ7Ô7¸ˆ=ˆÝ¨Ð6Ñ6Ô6€Ið ‡M‚M�!•ZÑ Ô Ð ØÔ€FØ‡J‚JˆvÑÔÐõ 	€AÝÕ,ÀÐFÑFÔF€GÝ u°gÐ>Ñ>Ô>€JØ€A€A€j„nÑÔ�a�Ñ$Ô$Ð$ØÔ¥¤¨fÑ 5Ô 5Ò5Ð5Ð5Ð5ð)ð )ð )õ ˜$ÑÔ€GÝ u°gÐ>Ñ>Ô>€JØ€A€A€j„nÑÔ�a�Ñ$Ô$Ð$ØÔ¥¤¨fÑ 5Ô 5Ò5Ð5Ð5Ð5õ Ð0Ñ1Ô1€FÝ u°fÐ=Ñ=Ô=€JØ‡N‚N�1•jÑ!Ô!Ð!ØÔ¥¤¨fÑ 5Ô 5Ò5Ð5Ð5Ð5ð ÐØ�Š�a�µ2´7¸9Ñ3EÔ3EˆÑFÔFÐFØÔ¥6¤=°Ñ#8Ô#8Ò8Ð8Ð8Ð8õ 	Œ	•:�zÐ*Ñ+Ô+Ô-€Aà‡M‚M�!�QÑÔÐØ×Ò˜qÑ!Ô!€FØ‡M‚M�!•ZÑ Ô Ð Ø×Ò˜qÑ!Ô!€Få•B”I˜v vÐ.Ñ/Ô/Ô1°6ÀÐEÑEÔEÐEà€JrH   c                 ób  — | €t           n | t           ¦  «        }t          ¦   «         }|                     |t          ¦  «         |                     |¦  «         t          |j        j        ¦  «        dk    sJ ‚t          |j	        ¦  «        t          j        u sJ ‚t          d¦  «        }|                     |¬¦  «         |                     |t          ¦  «         |                     |¦  «         t          |j        j        ¦  «        dk    sJ ‚t          |j	        ¦  «        t          j        u sJ ‚d S )NrV   rÍ   ri  )rÆ   r   r�   rÄ   r°   r  r”   r—   Útyper‘   r@   r?  r   Ú
set_params)r¹   rp   Úridge_cvrZ  s       rF   Ú_test_ridge_cvr—  ø  s  € Ø&Ð.�
ˆ
Ð4DÐ4DÅZÑ4PÔ4P€AÝ‰yŒy€HØ‡L‚L�•JÑÔÐØ×Ò�QÑÔÐåˆxŒ~Ô#Ñ$Ô$¨Ò)Ð)Ð)Ð)Ý�Ô#Ñ$Ô$­¬
Ð2Ð2Ð2Ð2å	ˆq‰Œ€BØ×Ò˜2ÐÑÔÐØ‡L‚L�•JÑÔÐØ×Ò�QÑÔÐåˆxŒ~Ô#Ñ$Ô$¨Ò)Ð)Ð)Ð)Ý�Ô#Ñ$Ô$­¬
Ð2Ð2Ð2Ð2Ð2Ð2rH   zridge, make_dataset©rn  c                 óv   —  |dd¬¦  «        \  }}|                       ||¦  «         t          | d¦  «        rJ ‚d S )Né   rê   ©rR   rU   rr  )r�   Úhasattr)rà   Úmake_datasetrp   ry   s       rF   Ú$test_ridge_gcv_cv_results_not_storedrž  
  sI   € ð ˆ< !°"Ð5Ñ5Ô5�D€A€qØ	‡I‚Iˆa��O„O€OÝ�u˜mÑ,Ô,Ð,Ð,Ð,Ð,Ð,rH   rZ  c                 óÜ   —  |dd¬¦  «        \  }}|                       d|¬¦  «         |                      ||¦  «         t          | d¦  «        sJ ‚t          | j        t
          ¦  «        sJ ‚d S )Nrš  rê   r›  F)rn  rZ  Úbest_score_)r•  r�   rœ  rÛ   r   rÝ   )rà   r�  rZ  rp   ry   s        rF   Útest_ridge_best_scorer¡    s{   € ð ˆ< !°"Ð5Ñ5Ô5�D€A€qØ	×Ò e°ÐÑ3Ô3Ð3Ø	‡I‚Iˆa��O„O€OÝ�5˜-Ñ(Ô(Ð(Ð(Ð(Ý�eÔ'­Ñ/Ô/Ð/Ð/Ð/Ð/Ð/rH   c            	      óF  ‡‡	— t           j                             d¦  «        } d\  }}}|                      ||¦  «        }t          j        |d d …dgf         t          j        d|f¦  «        ¦  «        t          j        |d d …dgf         dt          j        d|f¦  «        z  ¦  «        z   t          j        |d d …dgf         dt          j        d|f¦  «        z  ¦  «        z   |                      ||¦  «        z   ŠdŠ	ˆˆ	fd	„|j        D ¦   «         }t          ‰	d
¬¦  «                             ‰|¦  «        }t          ||j
        ¦  «         t          t          |j
        ¬¦  «                             ‰|¦  «        j        |j        ¦  «         t          ‰	d
d
¬¦  «                             ‰|¦  «        }|j
        j        |fk    sJ ‚|j        j        |fk    sJ ‚|j        j        |t#          ‰	¦  «        |fk    sJ ‚t          dd
d
¬¦  «                             ‰|¦  «        }|j
        j        |fk    sJ ‚|j        j        |fk    sJ ‚|j        j        ||dfk    sJ ‚t          ‰	d
d
¬¦  «                             ‰|d d …df         ¦  «        }t          j        |j
        ¦  «        sJ ‚t          j        |j        ¦  «        sJ ‚|j        j        |t#          ‰	¦  «        fk    sJ ‚t          ‰	d
d¬¦  «                             ‰|¦  «        }t          ||j
        ¦  «         t          t          |j
        ¬¦  «                             ‰|¦  «        j        |j        ¦  «         t          ‰	t'          ¦   «         d
¬¦  «        }d}t)          j        t,          |¬¦  «        5  |                     ‰|¦  «         d d d ¦  «         n# 1 swxY w Y   t          ‰	dd
¬¦  «        }t)          j        t,          |¬¦  «        5  |                     ‰|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   )rë   rÍ   r  r   rV   gš™™™™™©?rJ   rX   )rV   r&  éè  c                 ób   •— g | ]+}t          ‰¬ ¦  «                             ‰|¦  «        j        ‘Œ,S )rD  )r   r�   r]  )rï   rð   rp   rE  s     €€rF   rñ   z6test_ridge_cv_individual_penalties.<locals>.<listcomp>9  s7   ø€ ÐUÐUÐUÀv•g VÐ,Ñ,Ô,×0Ò0°°FÑ;Ô;ÔBÐUÐUÐUrH   T)rE  Úalpha_per_targetrÃ   )rE  r¥  rn  Úr2)rE  r¥  r[  )rE  rZ  r¥  z3cv!=None and alpha_per_target=True are incompatiblerÎ   rš  )r@   rb   rc   rÒ   rÇ   r–   rg   r   r�   r,   r]  r+   r   r”   r—   r   rr  r  Úisscalarr    r’   rø   rù   )
ro   rR   rS   rú   ry   Úoptimal_alphasr–  Úmsgrp   rE  s
           @@rF   Ú"test_ridge_cv_individual_penaltiesrª  &  s¾  øø€ õ Œ)×
Ò
 Ñ
#Ô
#€Cð (0Ñ$€Iˆz˜9Ø�	Š	�)˜YÑ'Ô'€Aå
Œˆq����Q�C�Œy�"œ' 1 j /Ñ2Ô2Ñ3Ô3Ý
Œ&��1�1�1�q�c�6”˜D¥2¤7¨A¨z¨?Ñ#;Ô#;Ñ;Ñ
<Ô
<ñ	=å
Œ&��1�1�1�q�c�6”˜E¥B¤G¨Q°
¨OÑ$<Ô$<Ñ<Ñ
=Ô
=ñ	>ð �)Š)�I˜zÑ
*Ô
*ñ	+ð ð €Fð VÐUÐUÐUÐUÐQRÔQTÐUÑUÔU€Nõ ˜f°tÐ<Ñ<Ô<×@Ò@ÀÀAÑFÔF€HÝ�~ x¤Ñ7Ô7Ð7õ Ý�H”OÐ$Ñ$Ô$×(Ò(¨¨AÑ.Ô.Ô4°h´nñô ð õ
 ˜f°tÈdÐSÑSÔS×WÒWØ	ˆ1ñô €Hð Œ?Ô  Y LÒ0Ð0Ð0Ð0ØÔÔ%¨)¨Ò5Ð5Ð5Ð5ØÔÔ%¨)µS¸±[´[À)Ð)LÒLÐLÐLÐLõ ˜a°$ÈÐNÑNÔN×RÒRÐSTÐVWÑXÔX€HØŒ?Ô  Y LÒ0Ð0Ð0Ð0ØÔÔ%¨)¨Ò5Ð5Ð5Ð5ØÔÔ%¨)°YÀÐ)BÒBÐBÐBÐBõ ˜f°tÈdÐSÑSÔS×WÒWØ	ˆ1ˆQˆQˆQ�ˆTŒ7ñô €Hõ Œ;�x”Ñ'Ô'Ð'Ð'Ð'ÝŒ;�xÔ+Ñ,Ô,Ð,Ð,Ð,ØÔÔ%¨)µS¸±[´[Ð)AÒAÐAÐAÐAõ ˜f°tÀTÐJÑJÔJ×NÒNÈqÐRSÑTÔT€HÝ�~ x¤Ñ7Ô7Ð7ÝÝ�H”OÐ$Ñ$Ô$×(Ò(¨¨AÑ.Ô.Ô4°h´nñô ð õ ˜f­©¬ÈÐNÑNÔN€HØ
?€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�Q˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å˜f¨¸TÐBÑBÔB€HÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�Q˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÎN:Î:N>ÏN>Ï2PÐPÐPc                 óæ   — | €t           n | t           ¦  «        }t          d¬¦  «        }|                     |t          ¦  «         t	          j        |                     |t          ¦  «        d¦  «        S )NFræ   rÍ   )rÆ   r   r�   rÄ   r@   Úroundr•   )r¹   rp   rà   s      rF   Ú_test_ridge_diabetesr­  m  s`   € Ø&Ð.�
ˆ
Ð4DÐ4DÅZÑ4PÔ4P€AÝ Ð&Ñ&Ô&€EØ	‡I‚Iˆa•ÑÔÐÝŒ8�E—K’K ¥:Ñ.Ô.°Ñ2Ô2Ð2rH   c                 óú  — | €t           n | t           ¦  «        }t          j        t          t          f¦  «        j        }t           j        d         }t          d¬¦  «        }|                     ||¦  «         |j        j        d|fk    sJ ‚| 	                    |¦  «        }|                     |t          ¦  «         | 	                    |¦  «        }t          t          j        ||f¦  «        j        |d¬¦  «         d S )NrV   Fræ   rJ   r  ©Údecimal)rÆ   r@   r‰  rÄ   rg   r—   r   r�   r”   r°   r+   )r¹   rp   rß   rS   rà   r‘  rD   s          rF   Ú_test_multi_ridge_diabetesr±  t  sÞ   € à&Ð.�
ˆ
Ð4DÐ4DÅZÑ4PÔ4P€AÝ
Œ	•:�zÐ*Ñ+Ô+Ô-€AÝÔ! !Ô$€Jå Ð&Ñ&Ô&€EØ	‡I‚Iˆa��O„O€OØŒ;Ô  J Ò/Ð/Ð/Ð/Ø�]Š]˜1ÑÔ€FØ	‡I‚Iˆa•ÑÔÐØ�]Š]˜1ÑÔ€FÝ�bœi¨°Ð(8Ñ9Ô9Ô;¸VÈQÐOÑOÔOÐOÐOÐOrH   c                 ó”  — t          j        t          ¦  «        j        d         }t          j        d         }| €t          n | t          ¦  «        }t          ¦   «         t          ¦   «         fD ]i}|                     |t          ¦  «         |j        j        ||fk    sJ ‚| 	                    |¦  «        }t          j
        t          |k    ¦  «        dk    sJ ‚Œjt          d¦  «        }t          |¬¦  «        }|                     |t          ¦  «         | 	                    |¦  «        }t          j
        t          |k    ¦  «        dk    sJ ‚d S )Nr   rV   gHáz®Gé?rÍ   ri  gš™™™™™é?)r@   ÚuniqueÚy_irisr—   ÚX_irisr   r   r�   r”   r°   rA   r   )r¹   Ú	n_classesrS   rp   ÚregrD   rZ  s          rF   Ú_test_ridge_classifiersr¸  ƒ  s#  € Ý”	�&Ñ!Ô!Ô'¨Ô*€IÝ”˜a”€JØ"Ð*�ˆÐ0@Ð0@ÅÑ0HÔ0H€AåÑ!Ô!Õ#4Ñ#6Ô#6Ð7ð 0ð 0ˆØ�Š�•6ÑÔÐØŒyŒ 9¨jÐ"9Ò9Ð9Ð9Ð9Ø—’˜Q‘”ˆÝŒw•v Ò'Ñ(Ô(¨4Ò/Ð/Ð/Ð/Ð/å	ˆq‰Œ€BÝ
˜rÐ
"Ñ
"Ô
"€CØ‡G‚GˆA�vÑÔÐØ�[Š[˜‰^Œ^€FÝŒ7•6˜VÒ#Ñ$Ô$¨Ò+Ð+Ð+Ð+Ð+Ð+rH   r[  ÚaccuracyrÍ   c                 óö   — | €t           n | t           ¦  «        }t          |¦  «        rt          |¦  «        n|}t          ||¬¦  «        }|                     |t
          ¦  «                             |¦  «         d S )N)r[  rZ  )rµ  Úcallabler   r   r�   r´  r°   )r¹   r[  rZ  rp   Úscoring_Úclfs         rF   Ú"test_ridge_classifier_with_scoringr¾  •  sw   € ð #Ð*�ˆÐ0@Ð0@ÅÑ0HÔ0H€AÝ'/°Ñ'8Ô'8ÐE�{˜7Ñ#Ô#Ð#¸g€HÝ
 H°Ð
4Ñ
4Ô
4€Cà‡G‚GˆA�vÑÔ×Ò˜qÑ!Ô!Ð!Ð!Ð!rH   c                 óh  — d„ }| €t           n | t           ¦  «        }t          j        ddd¬¦  «        }t          |t	          |¦  «        |¬¦  «        }|                     |t          ¦  «         |j        t          j	        d¦  «        k    sJ ‚|j
        t          j	        |d         ¦  «        k    sJ ‚d S )	Nc                 ó   — dS )Nçáz®GáÚ?r�   rB   s      rF   Ú_dummy_scorez:test_ridge_regression_custom_scoring.<locals>._dummy_score©  s   € ØˆtrH   éþÿÿÿrJ   rÍ   )Únum)rE  r[  rZ  rÁ  r   )rµ  r@   Úlogspacer   r   r�   r´  r   r’   r“   r]  )r¹   rZ  rÂ  rp   rE  r½  s         rF   Ú$test_ridge_regression_custom_scoringrÆ  £  s¸   € ðð ð ð #Ð*�ˆÐ0@Ð0@ÅÑ0HÔ0H€AÝŒ[˜˜Q AÐ&Ñ&Ô&€FÝ
 6µ;¸|Ñ3LÔ3LÐQSÐ
TÑ
TÔ
T€CØ‡G‚GˆA�vÑÔÐØŒ?�fœm¨DÑ1Ô1Ò1Ð1Ð1Ð1àŒ:�œ v¨a¤yÑ1Ô1Ò1Ð1Ð1Ð1Ð1Ð1rH   c                 ód  — | €t           n | t           ¦  «        }t          dd¬¦  «        }|                     |t          ¦  «         |                     |t          ¦  «        }t          dd¬¦  «        }|                     |t          ¦  «         |                     |t          ¦  «        }||k    sJ ‚d S )Nr‡  F)rˆ   r�   rX   )rÆ   r   r�   rÄ   r•   )r¹   rp   rà   r•   Úridge2Úscore2s         rF   Ú_test_tolerancerÊ  µ  sŸ   € Ø&Ð.�
ˆ
Ð4DÐ4DÅZÑ4PÔ4P€Aå�d¨%Ð0Ñ0Ô0€EØ	‡I‚Iˆa•ÑÔÐØ�KŠK˜�:Ñ&Ô&€Eå�t¨5Ð1Ñ1Ô1€FØ
‡J‚Jˆq•*ÑÔÐØ�\Š\˜!�ZÑ(Ô(€Fà�FŠ?ˆ?ˆ?ˆ?ˆ?ˆ?rH   c                 ó  — t          ||¦  «        }t                               |¦  «        }t                               |¦  «        }|                     ||¬¦  «        }|                     ||¬¦  «        }	|                     ||¦  «         |j        }
|j        }t          d¬¦  «        5  t          |¦  «                             ||	¦  «        }|j        }|j
        dk    sJ ‚|j        |j        k    sJ ‚t          t          ||¬¦  «        |
t          |¦  «        ¬¦  «         |j        }|j
        dk    sJ ‚|j        |j        k    sJ ‚t          t          ||¬¦  «        |t          |¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©ÚdeviceT©Úarray_api_dispatch)rQ   )Úxpr£   r�   )r.   rµ  rH  r´  r.  r�   r”   r‘   r   r   r—   rI  r)   r&   r%   )ÚnameÚ	estimatorÚarray_namespacerÍ  Ú
dtype_namerÐ  Ú	X_iris_npÚ	y_iris_npÚ	X_iris_xpÚ	y_iris_xpÚcoef_npÚintercept_npÚestimator_xpÚcoef_xpÚintercept_xps                  rF   Úcheck_array_api_attributesrÞ  Ã  sà  € Ý	˜o¨vÑ	6Ô	6€Bå—’˜jÑ)Ô)€IÝ—’˜jÑ)Ô)€Ià—
’
˜9¨V�
Ñ4Ô4€IØ—
’
˜9¨V�
Ñ4Ô4€Ià‡M‚M�)˜YÑ'Ô'Ð'ØŒo€GØÔ'€Lå	¨4Ð	0Ñ	0Ô	0ð 
ð 
Ý˜YÑ'Ô'×+Ò+¨I°yÑAÔAˆØÔ$ˆØŒ} Ò$Ð$Ð$Ð$ØŒ} 	¤Ò/Ð/Ð/Ð/åÝ˜g¨"Ð-Ñ-Ô-ØÝ 
Ñ+Ô+ð	
ñ 	
ô 	
ð 	
ð
 $Ô.ˆØÔ! RÒ'Ð'Ð'Ð'ØÔ! Y¤_Ò4Ð4Ð4Ð4åÝ˜l¨rÐ2Ñ2Ô2ØÝ 
Ñ+Ô+ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Â'CF Æ FÆFz#array_namespace, device, dtype_nameÚcheck)ÚidsrÒ  ©r€   c                 ó>   — | j         j        } ||| |||¬¦  «         d S )N)rÍ  rÔ  )Ú	__class__Ú__name__)rÒ  rß  rÓ  rÍ  rÔ  rÑ  s         rF   Útest_ridge_array_api_compliancerå  æ  s0   € ð  ÔÔ'€DØ	€Eˆ$�	˜?°6ÀjÐQÑQÔQÐQÐQÐQrH   rÓ  )Úinclude_numpy_namespacesc                 óV  — t          | d ¬¦  «        }|                     t          d d…         ¦  «        }|                     t          d d…         ¦  «        }t          j        d         d         j        }|ddhz
  D ]–}t	          ||dk    ¬¦  «        }d	|j        › d
|› d�}t          j	        t          |¬¦  «        5  t          d¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   Œ—t	          dd¬¦  «        }d|j        › d�}t          j	        t          |¬¦  «        5  t          d¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t	          ¦   «         }d|j        › d�}t          j        t          |¬¦  «        5  t          d¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÌ  rÍ   r€   r   r|  r7   Úlbfgs©r€   r4  z Array API dispatch to namespace z" only supports solver 'svd'. Got 'z'.rÎ   TrÎ  zYThe solvers that support positive fitting do not support Array API dispatch to namespace zc. Please either disable Array API dispatch, or use a numpy-like namespace, or set `positive=False`.z&Using Array API dispatch to namespace zâ with `solver='auto'` will result in using the solver 'svd'. The results may differ from those when using a Numpy array, because in that case the preferred solver would be cholesky. Set `solver='svd'` to suppress this warning.)r.   r.  rµ  r´  r   Ú_parameter_constraintsÚoptionsrä  r’   rø   rù   r   r�   rÓ   ÚUserWarning)rÓ  rÐ  r×  rØ  Úavailable_solversr€   rà   Úexpected_msgs           rF   Ú6test_array_api_error_and_warnings_for_solver_parameterrï  ú  s×  € õ 
˜o°dÐ	;Ñ	;Ô	;€Bà—
’
�6 " 1 "œ:Ñ&Ô&€IØ—
’
�6 " 1 "œ:Ñ&Ô&€IåÔ4°XÔ>¸qÔAÔIÐØ# v¨u oÑ5ð 	0ð 	0ˆÝ˜V¨f¸Ò.?Ð@Ñ@Ô@ˆð-¨r¬{ð -ð -Ø"(ð-ð -ð -ð 	õ
 Œ]�:¨\Ð:Ñ:Ô:ð 	0ð 	0Ý°4Ð8Ñ8Ô8ð 0ð 0Ø—	’	˜) YÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0øõ ˜¨$Ð/Ñ/Ô/€Eð	.Ø+-¬;ð	.ð 	.ð 	.ð õ 
Œ•z¨Ð	6Ñ	6Ô	6ð ,ð ,Ý¨tÐ4Ñ4Ô4ð 	,ð 	,Ø�IŠI�i Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,õ ‰GŒG€Eð	D°´ð 	Dð 	Dð 	Dð õ 
Œ•k¨Ð	6Ñ	6Ô	6ð ,ð ,Ý¨tÐ4Ñ4Ô4ð 	,ð 	,Ø�IŠI�i Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s¢   Â:DÃC.Ã"DÃ.C2Ã2DÃ5C2Ã6DÄD		ÄD		ÅFÅE<Å0FÅ<F 	Æ FÆF 	ÆFÆFÆFÇHÇ#HÇ:HÈH
	È
HÈH
	ÈHÈH"È%H"c                 óv  — t          | d ¬¦  «        }|                     t          d d…         ¦  «        }|                     t          d d…         ¦  «        }t	          ¦   «         }d}t          j        ¦   «         5  t          j        d|t          ¬¦  «         t          d¬¦  «        5  | 
                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          d¬¦  «        5  t	          dd¬	¦  «         
                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
NrÌ  rÍ   zkResults might be different than when Array API dispatch is disabled, or when a numpy-like namespace is usedÚerror)ÚmessageÚcategoryTrÎ  r|  ré  )r.   r.  rµ  r´  r   ÚwarningsÚcatch_warningsÚfilterwarningsrì  r   r�   )rÓ  rÐ  r×  rØ  rà   rî  s         rF   Ú)test_array_api_numpy_namespace_no_warningr÷  '  sÿ  € å	˜o°dÐ	;Ñ	;Ô	;€Bà—
’
�6 " 1 "œ:Ñ&Ô&€IØ—
’
�6 " 1 "œ:Ñ&Ô&€Iå‰GŒG€Eð	;ð õ
 
Ô	 Ñ	"Ô	"ð ,ð ,ÝÔ °ÍÐTÑTÔTÐTÝ¨tÐ4Ñ4Ô4ð 	,ð 	,Ø�IŠI�i Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,õ 
¨4Ð	0Ñ	0Ô	0ð Fð FÝ�V dÐ+Ñ+Ô+×/Ò/°	¸9ÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð FsH   Á9-C Â&C	Â=C Ã	C	ÃC ÃC	ÃC Ã C$Ã'C$Ã;&D.Ä.D2Ä5D2Ú	test_funcc                 óf   —  | d ¦  «        } | |¦  «        }|�|�t          ||d¬¦  «         d S d S d S )Nr  r¯  )r+   )rø  r  Ú	ret_denseÚ
ret_sparses       rF   Útest_dense_sparserü  ?  sT   € ð �	˜$‘”€Ià�˜=Ñ)Ô)€JàÐ Ð!7Ý! )¨ZÀÐCÑCÔCÐCÐCÐCð ÐÐ!7Ð!7rH   c                  ó  — t          j        ddgddgddgddgddgg¦  «        } g d¢}t          d ¬¦  «        }|                     | |¦  «         t	          |                     ddgg¦  «        t          j        d	g¦  «        ¦  «         t          d	d
i¬¦  «        }|                     | |¦  «         t	          |                     ddgg¦  «        t          j        dg¦  «        ¦  «         t          d¬¦  «        }|                     | |¦  «         t	          |                     ddgg¦  «        t          j        d	g¦  «        ¦  «         t          j        ddgddgddgddgg¦  «        } g d¢}t          d ¬¦  «        }|                     | |¦  «         t          d¬¦  «        }|                     | |¦  «         t          |j        ¦  «        dk    sJ ‚t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         d S )Nç      ð¿r   çš™™™™™é¿rƒ   rÐ   ©rV   rV   rV   rW   rW   ©Úclass_weightr@  rV   rX   rW   Úbalanced)rV   rV   rW   rW   rJ   )r@   rö   r   r�   r,   r°   r  Úclasses_r+   r”   r‘   )rp   ry   r·  Úregas       rF   Útest_class_weightsr  U  sê  € å
Œ�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÑQÔQ€AØÐÐ€Aå
 tÐ
,Ñ
,Ô
,€CØ‡G‚GˆAˆq�M„M€MÝ�s—{’{ S¨$ K =Ñ1Ô1µ2´8¸Q¸C±=´=ÑAÔAÐAõ ¨¨5 zÐ
2Ñ
2Ô
2€CØ‡G‚GˆAˆq�M„M€Mõ �s—{’{ S¨$ K =Ñ1Ô1µ2´8¸R¸D±>´>ÑBÔBÐBõ  zÐ
2Ñ
2Ô
2€CØ‡G‚GˆAˆq�M„M€MÝ�s—{’{ S¨$ K =Ñ1Ô1µ2´8¸Q¸C±=´=ÑAÔAÐAõ 	Œ�4˜�,  q 	¨D°$¨<¸#¸s¸ÐDÑEÔE€AØˆˆ€AÝ
 tÐ
,Ñ
,Ô
,€CØ‡G‚GˆAˆq�M„M€MÝ¨
Ð3Ñ3Ô3€DØ‡H‚HˆQ��N„N€NÝˆtŒ}ÑÔ Ò"Ð"Ð"Ð"Ý˜cœi¨¬Ñ4Ô4Ð4Ý˜cœn¨d¬oÑ>Ô>Ð>Ð>Ð>rH   r·  c                 ó¸  —  | ¦   «         }|                      t          j        t          j        ¦  «          | d¬¦  «        }|                      t          j        t          j        ¦  «         t	          |j        |j        ¦  «         t          j        t          j        j        ¦  «        }|t          j        dk    xx         dz  cc<   ddddœ} | ¦   «         }|                      t          j        t          j        |¦  «          | |¬¦  «        }|                      t          j        t          j        ¦  «         t	          |j        |j        ¦  «          | ¦   «         }|                      t          j        t          j        |dz  ¦  «          | |¬¦  «        }|                      t          j        t          j        |¦  «         t	          |j        |j        ¦  «         d	S )
z5Check class_weights resemble sample_weights behavior.r  r  rV   r&  rƒ   g      Y@)r   rV   rJ   rJ   N)	r�   ÚirisÚdatarð   r*   r”   r@   r–   r—   )r·  Úreg1Úreg2rŒ   r  s        rF   Ú"test_class_weight_vs_sample_weightr  x  s‚  € ð
 ˆ3‰5Œ5€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Øˆ3˜JÐ'Ñ'Ô'€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜œ
 D¤JÑ/Ô/Ð/õ ”G�DœKÔ-Ñ.Ô.€MØ•$”+ Ò"Ð#Ð#Ô# sÑ*Ð#Ð#Ñ#Ø˜u¨Ð-Ð-€LØˆ3‰5Œ5€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Øˆ3˜LÐ)Ñ)Ô)€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜œ
 D¤JÑ/Ô/Ð/ð ˆ3‰5Œ5€DØ‡H‚H�TŒY�œ ]°AÑ%5Ñ6Ô6Ð6Øˆ3˜LÐ)Ñ)Ô)€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Ý˜œ
 D¤JÑ/Ô/Ð/Ð/Ð/rH   c                  ón  — t          j        ddgddgddgddgddgg¦  «        } g d¢}t          d g d¢¬¦  «        }|                     | |¦  «         t          d	d
ig d¢¬¦  «        }|                     | |¦  «         t	          |                     ddgg¦  «        t          j        dg¦  «        ¦  «         d S )Nrþ  r   rÿ  rƒ   rÐ   r   )rº   r=  rV   )r  rE  rV   rX   )rº   r=  rV   rZ   gš™™™™™É¿rJ   rW   )r@   rö   r   r�   r,   r°   )rp   ry   r·  s      rF   Útest_class_weights_cvr  •  sÄ   € å
Œ�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÑQÔQ€AØÐÐ€Aå
¨°n°n°nÐ
EÑ
EÔ
E€CØ‡G‚GˆAˆq�M„M€Mõ ¨!¨U¨Ð<NÐ<NÐ<NÐ
OÑ
OÔ
O€CØ‡G‚GˆAˆq�M„M€Må�s—{’{ T¨1 I ;Ñ/Ô/µ´¸2¸$±´Ñ@Ô@Ð@Ð@Ð@rH   rX  c                 óÀ  — t           j                             d¦  «        }d}d}|                     ||¦  «        }g d¢}t	          |¦  «        }t          | ¦  «        rt          | ¦  «        n| }t          |d d|¬¦  «        }|                     |¦  «        }	|                     ||	¦  «         |j	        j
        ||fk    sJ ‚d}
|                     ||
¦  «        }	|                     ||	¦  «         |j	        j
        ||
|fk    sJ ‚t          dd| ¬¦  «        }t          j        t          d	¬
¦  «        5  |                     ||	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrê   r  rÍ   ©r=  rƒ   rW  T©rE  rZ  rn  r[  r  )rZ  rn  r[  zcv!=None and store_cv_resultsrÎ   )r@   rb   rc   rÒ   r  r»  r   r   r�   rr  r—   r’   rø   rù   )r[  ro   rR   rS   r…  rE  Ún_alphasr¼  Úrry   rú   s              rF   Útest_ridgecv_store_cv_resultsr  ¤  s§  € õ Œ)×
Ò
 Ñ
#Ô
#€Cà€IØ€JØ�	Š	�)˜ZÑ(Ô(€AØÐÐ€FÝ�6‰{Œ{€Hå'/°Ñ'8Ô'8ÐE�{˜7Ñ#Ô#Ð#¸g€Hå�v $¸ÀxÐPÑPÔP€Að 	�	Š	�)ÑÔ€AØ‡E‚Eˆ!ˆQ�K„K€KØŒ=Ô 9¨hÐ"7Ò7Ð7Ð7Ð7ð €IØ�	Š	�)˜YÑ'Ô'€AØ‡E‚Eˆ!ˆQ�K„K€KØŒ=Ô 9¨i¸Ð"BÒBÐBÐBÐBå�1 t°WÐ=Ñ=Ô=€AÝ	Œ•zÐ)HÐ	IÑ	IÔ	Ið ð Ø	�Šˆa�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ä/EÅEÅEc                 óF  — t          j        ddgddgddgddgddgg¦  «        }t          j        g d¢¦  «        }|j        d         }g d¢}t          |¦  «        }t	          | ¦  «        rt          | ¦  «        n| }t          |d d|¬	¦  «        }d
}|                     ||¦  «         |j        j        |||fk    sJ ‚t          j        g d¢g d¢g d¢g¦  «         	                    ¦   «         }|j        d
         }|                     ||¦  «         |j        j        |||fk    sJ ‚d S )Nrþ  r   rÿ  rƒ   rÐ   r   r  Tr  rV   )rV   rW   rV   rW   rV   )rW   rW   rV   rW   rW   )
r@   rö   r—   r  r»  r   r   r�   rr  Ú	transpose)	r[  r…  ry   rR   rE  r  r¼  r  rú   s	            rF   Ú)test_ridge_classifier_cv_store_cv_resultsr  Ä  sV  € å
Œ�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÑQÔQ€AÝ
ŒÐ"Ð"Ð"Ñ#Ô#€Aà”˜”
€IØÐÐ€FÝ�6‰{Œ{€Hå'/°Ñ'8Ô'8ÐE�{˜7Ñ#Ô#Ð#¸g€HåØ˜$°¸xð	ñ 	ô 	€Að
 €IØ‡E‚Eˆ!ˆQ�K„K€KØŒ=Ô 9¨i¸Ð"BÒBÐBÐBÐBõ 	ŒØ	Ð	Ð	Ð-Ð-Ð-Ð/BÐ/BÐ/BÐCñ	ô 	ç‚i�k„kð ð ”˜”
€IØ‡E‚Eˆ!ˆQ�K„K€KØŒ=Ô 9¨i¸Ð"BÒBÐBÐBÐBÐBÐBrH   Ú	Estimatorc                 ó´  — t           j                             d¦  «        }d}d\  }}| t          u r|                     |¦  «        }n|                     dd|¦  «        }|                     ||¦  «        } | |¬¦  «        }|j        |u sJ d| j        › d�¦   «         ‚|                     ||¦  «         t          |j        t          j
        |¦  «        ¦  «         d S )Nr   r  ©rÍ   rÍ   rJ   rD  z`alphas` was mutated in `z
.__init__`)r@   rb   rc   r   rÒ   ÚrandintrE  rä  r�   r,   r.  )r  ro   rE  rR   rS   ry   rp   Ú	ridge_ests           rF   Útest_ridgecv_alphas_conversionr  á  sä   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ€Fà Ñ€IˆzØ•GÐÐØ�IŠI�iÑ Ô ˆˆà�KŠK˜˜1˜iÑ(Ô(ˆØ�	Š	�)˜ZÑ(Ô(€Aà�	 Ð(Ñ(Ô(€IàÔ˜FÐ"Ð"Ð"ØA 9Ô#5ÐAÐAÐAñ 	#Ô"Ð"ð ‡M‚M�!�QÑÔÐÝ�yÔ'­¬°FÑ);Ô);Ñ<Ô<Ð<Ð<Ð<rH   c                 óÌ  — t           j                             d¦  «        }d}d\  }}|t          u r|                     |¦  «        }n|                     dd|¦  «        }|                     ||¦  «        } ||| ¬¦  «        }| €Lt          j        t          d¬¦  «        5  | 	                    ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS | 	                    ||¦  «         dS )	z1Check alpha=0.0 raises error only when `cv=None`.r   )rÐ   rƒ   rW  r  rJ   ©rE  rZ  Nz"alphas\[0\] == 0.0, must be > 0.0.rÎ   )
r@   rb   rc   r   rÒ   r  r’   rø   rù   r�   )	rZ  r  ro   rE  rR   rS   ry   rp   r  s	            rF   Útest_ridgecv_alphas_zeror   ö  s1  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€Fà Ñ€IˆzØ•GÐÐØ�IŠI�iÑ Ô ˆˆà�KŠK˜˜1˜iÑ(Ô(ˆØ�	Š	�)˜ZÑ(Ô(€Aà�	 ¨BÐ/Ñ/Ô/€IØ	€zÝŒ]�:Ð-RÐSÑSÔSð 	 ð 	 Ø�MŠM˜!˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	�Š�a˜ÑÔÐÐÐs   ÂCÃCÃCc                  ó.  — t           j                             d¦  «        } d}dD ]ð\  }}|                      |¦  «        }|                      ||¦  «        }d|                      |¦  «        z   }t          d¦  «        }t          ||¬¦  «        }|                     |||¬¦  «         d|i}	t          t          ¦   «         |	|¬	¦  «        }
|
                     |||¬¦  «         |j
        |
j        j        k    sJ ‚t          |j        |
j        j        ¦  «         Œñd S )
Nr   r  )©rš  rÍ   r×   rƒ   rÍ   r  r‹   rz   ri  )r@   rb   rc   rÒ   Úrandr   r   r�   r   r   r]  Úbest_estimator_rz   r+   r”   )ro   rE  rR   rS   ry   rp   rŒ   rZ  r:  Ú
parametersÚgss              rF   Útest_ridgecv_sample_weightr'    s  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ€Fð "3ð Kð KÑˆ	�:Ø�IŠI�iÑ Ô ˆØ�IŠI�i Ñ,Ô,ˆØ˜cŸhšh yÑ1Ô1Ñ1ˆå�1‰XŒXˆÝ ¨BÐ/Ñ/Ô/ˆØ�Š�A�q¨ˆÑ6Ô6Ð6ð ˜vÐ&ˆ
Ý�%™'œ' :°"Ð5Ñ5Ô5ˆØ
�Šˆq�! =ˆÑ1Ô1Ð1àŒ~ Ô!3Ô!9Ò9Ð9Ð9Ð9Ý! '¤-°Ô1CÔ1IÑJÔJÐJÐJðKð KrH   c                  ó@  ‡‡‡‡‡— ddg} ddg}t           j                             d¦  «        }t          | |¦  «        D �]_\  }}|                     ||¦  «        Š|                     |¦  «        Š|                     |¦  «        dz  dz   }d}d}|d d …t           j        f         Š|t           j        d d …f         Št          d¬¦  «        Š‰                     ‰‰|¦  «         ‰                     ‰‰|¦  «         ‰                     ‰‰|¦  «         ˆˆˆˆfd„}ˆˆˆˆfd	„}	d
}
t          j	        t          |
¬¦  «        5   |¦   «          d d d ¦  «         n# 1 swxY w Y   d
}
t          j	        t          |
¬¦  «        5   |	¦   «          d d d ¦  «         n# 1 swxY w Y   �Œad S )NrJ   r  rê   rV   rƒ   g       @rÃ   c                  ó6   •— ‰                      ‰ ‰‰¦  «         d S r?   ©r�   )rp   rà   Úsample_weights_not_OKry   s   €€€€rF   Úfit_ridge_not_okzStest_raises_value_error_if_sample_weights_greater_than_1d.<locals>.fit_ridge_not_ok<  s    ø€ Ø�IŠI�a˜Ð1Ñ2Ô2Ð2Ð2Ð2rH   c                  ó6   •— ‰                      ‰ ‰‰¦  «         d S r?   r*  )rp   rà   Úsample_weights_not_OK_2ry   s   €€€€rF   Úfit_ridge_not_ok_2zUtest_raises_value_error_if_sample_weights_greater_than_1d.<locals>.fit_ridge_not_ok_2?  s    ø€ Ø�IŠI�a˜Ð3Ñ4Ô4Ð4Ð4Ð4rH   z)Sample weights must be 1D array or scalarrÎ   )r@   rb   rc   r÷   rÒ   rÙ   r   r�   r’   rø   rù   )Ú
n_samplessÚn_featuressro   rR   rS   Úsample_weights_OKÚsample_weights_OK_1Úsample_weights_OK_2r,  r/  rþ   rp   rà   r+  r.  ry   s              @@@@@rF   Ú9test_raises_value_error_if_sample_weights_greater_than_1dr5  $  ss  øøøøø€ ð �Q�€JØ�a�&€Kå
Œ)×
Ò
 Ñ
#Ô
#€Cå!$ Z°Ñ!=Ô!=ð !ñ !Ñˆ	�:Ø�IŠI�i Ñ,Ô,ˆØ�IŠI�iÑ Ô ˆØŸIšI iÑ0Ô0°AÑ5¸Ñ9ÐØ!ÐØ!ÐØ 1°!°!°!µR´Z°-Ô @ÐØ"3µB´JÀÀÀ°MÔ"BÐå˜A�‘”ˆð 	�	Š	�!�QÐ)Ñ*Ô*Ð*Ø�	Š	�!�QÐ+Ñ,Ô,Ð,Ø�	Š	�!�QÐ+Ñ,Ô,Ð,ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð >ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	ð 	ØÐÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð >ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	!ð 	!ØÐÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ùð7!ð !s$   Ä;EÅE	ÅE	Å:FÆF	ÆF	zn_samples,n_featuresrJ   c                 óÂ  — t           j                             d¦  «        }t          dd¬¦  «        }t          dd¬¦  «        }|                     | |¦  «        }|                     | ¦  «        }|                     | ¦  «        dz  dz   } ||¦  «        }	|                     |	||¬¦  «         |                     |||¬¦  «         t          |j        |j        d¬	¦  «         d S )
Nrê   rƒ   Frå   rJ   rV   r‹   rš  r¯  )r@   rb   rc   r   rÒ   r�   r+   r”   )
rR   rS   r¹   ro   Úsparse_ridgeÚdense_ridgerp   ry   Úsample_weightsr  s
             rF   Ú&test_sparse_design_with_sample_weightsr:  K  sà   € õ Œ)×
Ò
 Ñ
#Ô
#€Cå˜s°%Ð8Ñ8Ô8€LÝ˜c°Ð7Ñ7Ô7€Kà�	Š	�)˜ZÑ(Ô(€AØ�	Š	�)ÑÔ€AØ—Y’Y˜yÑ)Ô)¨QÑ.°Ñ2€NØÐ Ñ"Ô"€HØ×Ò�X˜q°ÐÑ?Ô?Ð?Ø‡O‚O�A�q¨€OÑ7Ô7Ð7å˜lÔ0°+Ô2CÈQÐOÑOÔOÐOÐOÐOrH   c                  ó    — t          j        ddgddgddgddgddgg¦  «        } g d¢}t          d¬¦  «        }|                     | |¦  «         d S )	Nrþ  r   rÿ  rƒ   rÐ   r   )rV   rZ   r&  rD  )r@   rö   r   r�   )rp   ry   rà   s      rF   Útest_ridgecv_int_alphasr<  a  sb   € Ý
Œ�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÑQÔQ€AØÐÐ€Aõ ˜<Ð(Ñ(Ô(€EØ	‡I‚Iˆa��O„O€O€O€OrH   zparams, err_type, err_msgrE  )rV   rW   iœÿÿÿz alphas\[1\] == -1, must be > 0.0)gš™™™™™¹¿rþ  g      $Àz"alphas\[0\] == -0.1, must be > 0.0)rV   rƒ   Ú1z1alphas\[2\] must be an instance of float, not strc                 ó  — d\  }}t                                ||¦  «        }t                                dd|¦  «        }t          j        ||¬¦  «        5   | di |¤Ž                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z?Check the `alphas` validation in RidgeCV and RidgeClassifierCV.r  r   rJ   rÎ   Nr�   )ro   rÒ   r  r’   rø   r�   )r  rN   Úerr_typerþ   rR   rS   rp   ry   s           rF   Útest_ridgecv_alphas_validationr@  j  sÕ   € ð( !Ñ€IˆzÝ�	Š	�)˜ZÑ(Ô(€AÝ�Š�A�q˜)Ñ$Ô$€Aå	Œ�x wÐ	/Ñ	/Ô	/ð &ð &Øˆ	ÐÐ�FÐÐ×Ò  1Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   ÁA=Á=BÂBc                 ó  — d\  }}t                                ||¦  «        }| t          u rt                                |¦  «        }nt                                dd|¦  «        } | d¬¦  «                             ||¦  «         dS )zÉCheck the case when `alphas` is a scalar.
    This case was supported in the past when `alphas` where converted
    into array in `__init__`.
    We add this test to ensure backward compatibility.
    r  r   rJ   rV   rD  N)ro   rÒ   r   r  r�   )r  rR   rS   rp   ry   s        rF   Útest_ridgecv_alphas_scalarrB  †  s}   € ð !Ñ€IˆzÝ�	Š	�)˜ZÑ(Ô(€AØ•GÐÐÝ�IŠI�iÑ Ô ˆˆå�KŠK˜˜1˜iÑ(Ô(ˆà€I�QÐÑÔ×Ò˜A˜qÑ!Ô!Ð!Ð!Ð!rH   c                  ó¸   — t          dd¬¦  «        } |                      t          t          ¦  «         | j        j        d         t          j        d         k    sJ ‚d S )Nr8   rV   )r€   r½   r   )r   r�   rÆ   rÄ   r”   r—   )r·  s    rF   Útest_sparse_cg_max_iterrD  ˜  sP   € Ý
�{¨QÐ
/Ñ
/Ô
/€CØ‡G‚G�J�
Ñ#Ô#Ð#ØŒ9Œ?˜1Ô¥Ô!1°!Ô!4Ò4Ð4Ð4Ð4Ð4Ð4rH   c            	      óš  — d} t           t          }}t          j        || df¦  «        j        }t          dd¦  «        D ]W}dD ]R}t          ||d¬¦  «        }|                     ||¦  «         t          |j	        t          j        || ¦  «        ¦  «         ŒSŒXdD ]3}t          |dd¬¦  «        }|                     ||¦  «         |j	        �J ‚Œ4d S )	NrJ   rV   rQ   )r;   r<   r:   ró   )r€   r½   rˆ   )r8   r7   r9   r=  )
rÆ   rÄ   r@   Útilerg   Úranger   r�   r,   Ún_iter_)rú   rp   ry   Úy_nr½   r€   r·  s          rF   Útest_n_iterrJ  ž  sñ   € ð €IÝ•z€q€AÝ
Œ'�!�i �^Ñ
$Ô
$Ô
&€Cå˜!˜Q‘K”Kð Jð JˆØ-ð 	Jð 	JˆFÝ˜v°¸eÐDÑDÔDˆCØ�GŠG�A�s‰OŒOˆOÝ˜sœ{­B¬G°H¸iÑ,HÔ,HÑIÔIÐIÐIð	Jð
 3ð #ð #ˆÝ˜6¨A°4Ð8Ñ8Ô8ˆØ�Š��3‰ŒˆØŒ{Ð"Ð"Ð"Ð"ð#ð #rH   )r:   r8   rè  r|  Úwith_sample_weightc                 ó  — | dk    }t          d||¬¦  «        \  }}d}|rCt          j                             |¦  «        }d|                     |j        d         ¬¦  «        z   }| dk    rd	n| }	t          |	d
|¬¦  «        }
t          | d
|¬¦  «        }|
                     |||¬¦  «         |                      ||¦  «        ||¬¦  «         t          |
j	        |j	        ¦  «         t          |
j
        |j
        d¬¦  «         dS )aó  Check that ridge finds the same coefs and intercept on dense and sparse input
    in the presence of sample weights.

    For now only sparse_cg and lbfgs can correctly fit an intercept
    with sparse X with default tol and max_iter.
    'sag' is tested separately in test_ridge_fit_intercept_sparse_sag because it
    requires more iterations and should raise a warning if default max_iter is used.
    Other solvers raise an exception, as checked in
    test_ridge_fit_intercept_sparse_error
    rè  rë   )rS   rU   r4  Nrƒ   r   r_   r|  r8   ró   )r€   rˆ   r4  r‹   g�íµ ÷Æ >r\  )r8  r@   rb   rc   re   r—   r   r�   r)   r‘   r”   )r€   rK  rl   r  r4  rp   ry   rŒ   ro   Údense_solverr8  r7  s               rF   Útest_ridge_fit_intercept_sparserN  ±  s"  € ð  ˜Ò €HÝ)ØÐ$6Àðñ ô �D€A€qð €MØð ;ÝŒi×#Ò#Ð$6Ñ7Ô7ˆØ˜cŸkšk¨q¬w°q¬z˜kÑ:Ô:Ñ:ˆð #)¨FÒ"2Ð"2�;�;¸€LÝ˜|°ÀÐJÑJÔJ€KÝ ¨E¸HÐEÑEÔE€Là‡O‚O�A�q¨€OÑ6Ô6Ð6Ø×Ò�]�] 1Ñ%Ô% q¸ÐÑFÔFÐFå�KÔ*¨LÔ,CÑDÔDÐDÝ�KÔ% |Ô'9ÀÐEÑEÔEÐEÐEÐErH   )r<   r7   r9   c                 ó"  — t          dd¬¦  «        \  }} ||¦  «        }t          | ¬¦  «        }d                     | ¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrë   r   )rS   rU   rá  zsolver='{}' does not supportrÎ   )r8  r   Úformatr’   rø   rù   r�   )r€   r  rp   ry   ÚX_csrr7  rþ   s          rF   Ú%test_ridge_fit_intercept_sparse_errorrR  Ú  sÛ   € õ *°RÀaÐHÑHÔH�D€A€qØˆM˜!ÑÔ€EÝ Ð'Ñ'Ô'€LØ,×3Ò3°FÑ;Ô;€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð #ð #Ø×Ò˜ Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   Á BÂBÂBc                 ó@  — t          dd|d¬¦  «        \  }}| rDt          j                             |¦  «        }d|                     |j        d         ¬¦  «        z   }nd } ||¦  «        }t          ddd	d
d¬¦  «        }t          di |¤Ž}	t          di |¤Ž}
|	                     |||¬¦  «         t          j
        ¦   «         5  t          j        dt          ¦  «         |
                     |||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          |	j        |
j        d¬¦  «         t          |	j        |
j        d¬¦  «         t!          j        t          d¬¦  «        5  t          dd	dd ¬¦  «                             ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÍ   rë   g      @)rS   rR   rU   r3  rƒ   r   r_   r;   Tr†   r¼   )rz   r€   r�   rˆ   r½   r‹   rñ  ç-Cëâ6?r\  z"sag" solver requires.*rÎ   rX   )r€   r�   rˆ   r½   r�   )r8  r@   rb   rc   re   r—   rŽ   r   r�   rô  rõ  Úsimplefilterrì  r)   r‘   r”   r’   rÓ   )rK  rl   r  rp   ry   ro   rŒ   rQ  rN   r8  r7  s              rF   Ú#test_ridge_fit_intercept_sparse_sagrV  å  sb  € õ
 *Ø Ð1CÈcðñ ô �D€A€qð ð ÝŒi×#Ò#Ð$6Ñ7Ô7ˆØ˜cŸkšk¨q¬w°q¬z˜kÑ:Ô:Ñ:ˆˆàˆØˆM˜!ÑÔ€EåØ˜%¨t¸Èðñ ô €Fõ �/�/˜&�/�/€KÝ�?�?˜6�?�?€LØ‡O‚O�A�q¨€OÑ6Ô6Ð6Ý	Ô	 Ñ	"Ô	"ð @ð @ÝÔ˜g¥{Ñ3Ô3Ð3Ø×Ò˜ °ÐÑ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ �KÔ*¨LÔ,CÈ$ÐOÑOÔOÐOÝ�KÔ% |Ô'9ÀÐEÑEÔEÐEÝ	Œ•kÐ)BÐ	CÑ	CÔ	Cð Wð WÝ�U¨$°DÀ4ÐHÑHÔH×LÒLÈUÐTUÑVÔVÐVðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wð Wð Ws$   Ã3D Ä DÄDÅ(FÆFÆFÚreturn_interceptrŒ   r£  Ú	container)r|  r8   r9   r:   r;   r<   rè  c                 ó0  — t          d¦  «        }|                     dd¦  «        }g d¢}t          j        ||¦  «        }d}| rd}||z  } ||¦  «        }	d\  }
}t          rdnd	}|d
k    }|dvrN| rLt          j        t          d¬¦  «        5  t          |	||
||| ||¬¦  «         ddd¦  «         n# 1 swxY w Y   dS t          |	||
|||| |¬¦  «        }| r-|\  }}t          ||d|¬¦  «         t          ||d|¬¦  «         dS t          ||d|¬¦  «         dS )z=check if all combinations of arguments give valid estimationsrê   r£  r  )rV   rJ   r=  rÐ   g     ˆÃ@)rX   ç�íµ ÷Æ°>rX   rT  rè  )r;   r|  zIn Ridge, only 'sag' solverrÎ   )rz   r€   rŒ   rW  r4  rˆ   N)rz   r€   rŒ   r4  rW  rˆ   r   ©rG  r¤   )
r#   r#  r@   rÇ   r1   r’   rø   rù   r   r)   )rW  rŒ   rX  r€   ro   rp   Ú
true_coefsry   Útrue_interceptÚ	X_testingrz   rˆ   r¤   r4  Úoutr™   rž   s                    rF   Ú.test_ridge_regression_check_arguments_validityr`    sÊ  € õ ˜RÑ
 Ô
 €CØ�Š��qÑÔ€AØ��€JÝ
Œˆq�*ÑÔ€AØ€NØð !Ø ˆØˆÑ€AØ�	˜!‘”€Ià�J€Eˆ3ÝÐ&ˆ4ˆ4 $€Dà˜Ò €Hà�_Ð$Ð$Ð)9Ð$ÝŒ]�:Ð-JÐKÑKÔKð 
	ð 
	ÝØØØØØ+Ø!1Ø!Øð	ñ 	ô 	ð 	ð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	ð 	ˆå
ØØ	ØØØ#ØØ)Øð	ñ 	ô 	€Cð ð <Ø‰ˆˆiÝ˜˜j¨q°tÐ<Ñ<Ô<Ð<Ý˜	 >¸ÀÐEÑEÔEÐEÐEÐEå˜˜Z¨a°dÐ;Ñ;Ô;Ð;Ð;Ð;s   ÂB0Â0B4Â7B4)r7   r8   r9   r:   r;   r<   rè  c                 óV  — t           j                             d¦  «        }d}| dk    }d\  }}|                     ||¦  «        }|                     |¦  «        }|                     t           j        ¦  «        }|                     t           j        ¦  «        }	dt          j        t           j        ¦  «        j        z  }
t          || d|
|¬¦  «        }| 	                    ||	¦  «         |j
        }t          || d|
|¬¦  «        }| 	                    ||¦  «         |j
        }|j        |j        k    sJ ‚|j        |j        k    sJ ‚|                     |¦  «        j        |j        k    sJ ‚|                     |¦  «        j        |j        k    sJ ‚t          |j
        |j
        dd	¬
¦  «         d S )Nr   rƒ   rè  r"  rJ   éô  )rz   r€   r½   rˆ   r4  rT  gü©ñÒMb@?r[  )r@   rb   rc   rÒ   rH  r<  ÚfinfoÚ
resolutionr   r�   r”   rI  r°   r)   )r€   ro   rz   r4  rR   rS   ÚX_64Úy_64ÚX_32Úy_32rˆ   Úridge_32Úcoef_32Úridge_64Úcoef_64s                  rF   Útest_dtype_matchrm  @  s¤  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ€EØ˜Ò €Hà Ñ€IˆzØ�9Š9�Y 
Ñ+Ô+€DØ�9Š9�YÑÔ€DØ�;Š;•r”zÑ"Ô"€DØ�;Š;•r”zÑ"Ô"€Dà
�bŒh•r”zÑ"Ô"Ô-Ñ
-€CåØ˜F¨S°cÀHðñ ô €Hð ‡L‚L��tÑÔÐØŒn€Gõ Ø˜F¨S°cÀHðñ ô €Hð ‡L‚L��tÑÔÐØŒn€Gð Œ=˜DœJÒ&Ð&Ð&Ð&ØŒ=˜DœJÒ&Ð&Ð&Ð&Ø×Ò˜DÑ!Ô!Ô'¨4¬:Ò5Ð5Ð5Ð5Ø×Ò˜DÑ!Ô!Ô'¨4¬:Ò5Ð5Ð5Ð5Ý�H”N H¤N¸ÀDÐIÑIÔIÐIÐIÐIrH   c                  ó  — t           j                             d¦  «        } t          j        ddg¦  «        }d\  }}}|                      ||¦  «        }|                      ||¦  «        }|                     t           j        ¦  «        }|                     t           j        ¦  «        }t          |d¬¦  «        }	|	                     ||¦  «         |	j	        }
t          |d¬¦  «        }|                     ||¦  «         |j	        }|
j
        |j
        k    sJ ‚|j
        |j
        k    sJ ‚|	                     |¦  «        j
        |j
        k    sJ ‚|                     |¦  «        j
        |j
        k    sJ ‚t          |	j	        |j	        d¬¦  «         d S )	Nr   rƒ   r¡   )rš  r  rJ   r9   rí   rÍ   r¯  )r@   rb   rc   rö   rÒ   rH  r<  r   r�   r”   rI  r°   r*   )ro   rz   rR   rS   Ún_targetre  rf  rg  rh  ri  rj  rk  rl  s                rF   Útest_dtype_match_choleskyrp  e  su  € õ Œ)×
Ò
 Ñ
"Ô
"€CÝŒH�c˜3�ZÑ Ô €Eà&-Ñ#€Iˆz˜8Ø�9Š9�Y 
Ñ+Ô+€DØ�9Š9�Y Ñ)Ô)€DØ�;Š;•r”zÑ"Ô"€DØ�;Š;•r”zÑ"Ô"€Dõ ˜5¨Ð4Ñ4Ô4€HØ‡L‚L��tÑÔÐØŒn€Gõ ˜5¨Ð4Ñ4Ô4€HØ‡L‚L��tÑÔÐØŒn€Gð Œ=˜DœJÒ&Ð&Ð&Ð&ØŒ=˜DœJÒ&Ð&Ð&Ð&Ø×Ò˜DÑ!Ô!Ô'¨4¬:Ò5Ð5Ð5Ð5Ø×Ò˜DÑ!Ô!Ô'¨4¬:Ò5Ð5Ð5Ð5Ý˜œ¨¬ÀÐBÑBÔBÐBÐBÐBrH   )r7   r9   r:   r8   r;   r<   rè  c                 óü  — t           j                             |¦  «        }d\  }}|                     ||¦  «        }|                     |¦  «        }t          j        ||¦  «        d|                     |¦  «        z  z   }d}| dk    }	t          ¦   «         }
| dk    rdnd}t           j        t           j        fD ]E}t          | 	                    |¦  «        | 	                    |¦  «        || |d |	dd	d
d
¬¦  «        |
|<   ŒF|
t           j                 j
        t           j        k    sJ ‚|
t           j                 j
        t           j        k    sJ ‚t          |
t           j                 |
t           j                 |¬¦  «         d S )Nr"  rº   rƒ   rè  r8   rX   r‡  rb  r†   F)	rz   r€   rU   rŒ   r4  r½   rˆ   Úreturn_n_iterrW  r£   )r@   rb   rc   rÒ   rÇ   rŽ   r<  r?  r   rH  rI  r)   )r€   rA  rU   rR   rS   rp   r™   ry   rz   r4  Úresultsr¤   Úcurrent_dtypes                rF   Ú%test_ridge_regression_dtype_stabilityru  ƒ  sq  € õ
 ”9×(Ò(¨Ñ.Ô.€LØ Ñ€IˆzØ×Ò˜9 jÑ1Ô1€AØ×Ò˜jÑ)Ô)€DÝ
Œˆq�$‰Œ˜$ ×!3Ò!3°IÑ!>Ô!>Ñ>Ñ>€AØ€EØ˜Ò €HÝ‰fŒf€Gð ˜[Ò(Ð(ˆ4ˆ4¨d€DÝœ*¥b¤jÐ1ð 
ð 
ˆÝ!1Ø�HŠH�]Ñ#Ô#Ø�HŠH�]Ñ#Ô#ØØØ%ØØØØØØ"ð"
ñ "
ô "
ˆ�ÑÐð •2”:ÔÔ$­¬
Ò2Ð2Ð2Ð2Ø•2”:ÔÔ$­¬
Ò2Ð2Ð2Ð2Ý�G�BœJÔ'¨µ´Ô)<À4ÐHÑHÔHÐHÐHÐHrH   c                  óÐ   — t          d¬¦  «        \  } }t          j        | ¦  «        } | d d d…d d …f         } |d d d…         }t          d¬¦  «                             | |¦  «         d S )Nrê   ©rU   rJ   r;   rá  )r   r@   Úasfortranarrayr   r�   )rp   ry   s     rF   Útest_ridge_sag_with_X_fortranry  §  ss   € å¨Ð+Ñ+Ô+�D€A€qå
Ô˜!ÑÔ€AØ	ˆ#ˆ#ˆAˆ#ˆqˆqˆqˆ&Œ	€AØ	ˆ#ˆ#ˆAˆ#Œ€AÝ	�ÐÑÔ×Ò˜A˜qÑ!Ô!Ð!Ð!Ð!rH   zClassifier, paramsc                 ó   — t          dd¬¦  «        \  }}|                     dd¦  «        }t          j        ||gd¬¦  «        } | d	i |¤Ž                     ||¦  «        }|                     |¦  «        }|j        |j        k    sJ ‚t          |dd…df         |dd…df         ¦  «         t          d¬¦  «                             ||¦  «         dS )
zRCheck that multilabel classification is supported and give meaningful
    results.rV   r   )r¶  rU   rW   r‰   Nr;   rá  r�   )	r
   rÅ   r@   r¥   r�   r°   r—   r,   r   )Ú
ClassifierrN   rp   ry   rß   r½  r‘  s          rF   Útest_ridgeclassifier_multilabelr|  ±  sÝ   € õ *°AÀAÐFÑFÔF�D€A€qØ	�	Š	�"�aÑÔ€AÝ
Œ˜˜1�v AÐ&Ñ&Ô&€AØ
ˆ*Ð
Ð
�vÐ
Ð
×
"Ò
" 1 aÑ
(Ô
(€CØ�[Š[˜‰^Œ^€FàŒ<˜1œ7Ò"Ð"Ð"Ð"Ý�v˜a˜a˜a ˜d”| V¨A¨A¨A¨q¨D¤\Ñ2Ô2Ð2Ý	�ÐÑÔ×Ò˜A˜qÑ!Ô!Ð!Ð!Ð!rH   r|  rè  )rX   rº   r=  rƒ   c                 óf  — t          j        ddgddgddgddgg¦  «        }t          j        dd	g¦  «        }|rd
}|                     |¦  «        |z   }n|                     |¦  «        }t          |d| |¬¦  «        }|                     ||¦  «         t          j        |j        dk    ¦  «        sJ ‚dS )z:Test that positive Ridge finds true positive coefficients.rV   rJ   r  rQ   rÍ   rš  r  r  rY   rë   T©rz   r4  r€   r�   r   N)r@   rö   rÇ   r   r�   rd   r”   )r€   r�   rz   rp   r™   rž   ry   r�   s           rF   Ú#test_ridge_positive_regression_testr  Ç  sÄ   € õ
 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝŒ8�Q˜�HÑÔ€DØð Øˆ	Ø�EŠE�$‰KŒK˜)Ñ#ˆˆà�EŠE�$‰KŒKˆåØ˜d¨6Àðñ ô €Eð 
‡I‚Iˆa��O„O€OÝŒ6�%”+ Ò"Ñ#Ô#Ð#Ð#Ð#Ð#Ð#rH   c                 óÒ  — t           j                             d¦  «        }|                     dd¦  «        }|                     dd|j        d         ¬¦  «        }| rd}||z  |z   }n||z  }||                     |j        d         ¬¦  «        d	z  z  }g }d
D ]C}t          ||| d¬¦  «        }	|                     |	 	                    ||¦  «        j
        ¦  «         ŒDt          |dddœŽ dS )z¸Test that Ridge w/wo positive converges to the same solution.

    Ridge with positive=True and positive=False must give the same
    when the ground truth coefs are all positive.
    rê   é,  r&  r=  rƒ   rV   r_   r   rº   )TFr†   )rz   r4  r�   rˆ   rZ  rF  N)r@   rb   rc   rÒ   re   r—   rf   r   rˆ  r�   r”   r)   )
r�   rz   ro   rp   r™   rž   ry   rs  r4  r�   s
             rF   Ú%test_ridge_ground_truth_positive_testr‚  Û  s  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ�	Š	�#�sÑÔ€AØ�;Š;�s˜C a¤g¨a¤jˆ;Ñ1Ô1€DØð Øˆ	Ø�‰H�yÑ ˆˆà�‰HˆØˆ�Š˜œ œˆÑ	$Ô	$ tÑ	+Ñ+€Aà€GØ!ð .ð .ˆÝØ (¸-ÈUð
ñ 
ô 
ˆð 	�Š�u—y’y  A‘”Ô,Ñ-Ô-Ð-Ð-Ý�W 4¨aÐ0Ð0Ð0Ð0Ð0Ð0rH   )r7   r9   r:   r8   r;   r<   c           	      óÄ  — d}t          j        ddgddgg¦  «        }t          j        ddg¦  «        }||z  }t          |d| d¬	¦  «        }t          j        t
          d
¬¦  «        5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t
          d¬¦  «        5  t          |||d| d¬¦  «        \  }}ddd¦  «         dS # 1 swxY w Y   dS )z5Test input validation for positive argument in Ridge.r=  rV   rJ   r  rQ   rW   TFr~  zdoes not support positiverÎ   Nzonly 'lbfgs' solver can be used)r4  r€   rW  )r@   rö   r   r’   rø   rù   r�   r   )r€   rz   rp   r™   ry   r�   rw   s          rF   Útest_ridge_positive_error_testr„  ö  st  € ð
 €EÝ
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝŒ8�Q˜�GÑÔ€DØ	ˆD‰€Aå˜¨°VÈ5ÐQÑQÔQ€EÝ	Œ•zÐ)DÐ	EÑ	EÔ	Eð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
Œ•zÐ)JÐ	KÑ	KÔ	Kð 
ð 
ÝØˆq�% $¨vÈð
ñ 
ô 
‰ˆˆ1ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s$   Á&B	Â	BÂBÂ/CÃCÃCc                 ój  ‡ ‡	‡
— t          ddd¬¦  «        \  Š	Š
dŠ d}dˆ	ˆ ˆ
fd„	}t          ‰ ¬	¦  «                             ‰	‰
¦  «        }t          ‰ d
¬¦  «                             ‰	‰
¦  «        } ||¦  «        } ||¦  «        }||k    sJ ‚t          |¦  «        D ]} |||¬¦  «        }||k    sJ ‚ŒdS )z?Check ridge loss consistency when positive argument is enabled.r�  rê   ©rR   rS   rU   r=  r&  Nr¢   c                 ó:  •— | j         }|�Jt          j                             |¦  «        }| j        |                     d|| j        j        ¬¦  «        z   }n| j        }dt          j        ‰‰|z  z
  |z
  dz  ¦  «        z  d‰z  t          j        |dz  ¦  «        z  z   S )Nr   r_   r¡   rJ   )r‘   r@   rb   rc   r”   re   r—   r�   )	r�   rU   Únoise_scalerž   ro   r™   rp   rz   ry   s	         €€€rF   Ú
ridge_lossz,test_positive_ridge_loss.<locals>.ridge_loss  s£   ø€ ØÔ$ˆ	ØÐ#Ý”)×'Ò'¨Ñ5Ô5ˆCØ”; §¢¨Q°À%Ä+ÔBS Ñ!TÔ!TÑTˆDˆDà”;ˆDà•R”V˜Q  T¡™\¨IÑ5¸!Ñ;Ñ<Ô<Ñ<¸sÀU¹{ÍRÌVØ�!‰GñN
ô N
ñ @
ñ 
ð 	
rH   rÃ   T)rz   r4  rw  )Nr¢   )r   r   r�   rG  )rz   Ún_checksr‰  r�   Úmodel_positiveÚlossÚloss_positiverU   Úloss_perturbedrp   ry   s   `        @@rF   Útest_positive_ridge_lossr�  
  s  øøø€ õ  S°SÀrÐJÑJÔJ�D€A€qØ€EØ€Hð

ð 

ð 

ð 

ð 

ð 

ð 

ð 

õ ˜ÐÑÔ×"Ò" 1 aÑ(Ô(€EÝ °Ð6Ñ6Ô6×:Ò:¸1¸aÑ@Ô@€Nð
 ˆ:�eÑÔ€DØ�J˜~Ñ.Ô.€MØ�=Ò Ð Ð Ð õ ˜h™œð /ð /ˆØ#˜ NÀÐNÑNÔNˆØ Ò.Ð.Ð.Ð.Ð.ð/ð /rH   c                 óö   — t          ddd¬¦  «        \  }}t          j        |d¦  «        }t          j        | g¦  «        } ddddœ}t	          ||| fi |¤Ž}t          ||| ¦  «        }t          ||d	d
¬¦  «         dS )zETest that LBGFS gets almost the same coef of svd when positive=False.r�  rê   r†  rV   Fg¼‰Ø—²Òœ<i ¡ )r4  rˆ   r½   rT  r   rF  N)r   r@   Úexpand_dimsr.  r   r   r)   )rz   rp   ry   ÚconfigÚ
coef_lbfgsrû   s         rF   Útest_lbfgs_solver_consistencyr”  0  sœ   € õ  S°SÀrÐJÑJÔJ�D€A€qÝ
Œ�q˜!ÑÔ€AÝŒJ˜�wÑÔ€EàØØðð €Fõ ˜a  EÐ4Ð4¨VÐ4Ð4€JÝ˜q ! UÑ+Ô+€MÝ�J °D¸qÐAÑAÔAÐAÐAÐArH   c                  ó$  — t          j        ddgddgg¦  «        } t          j        ddg¦  «        }t          ddddd	d¬
¦  «        }t          j        t
          d¬¦  «        5  |                     | |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z1Test that LBFGS solver raises ConvergenceWarning.rV   rW   g    _ Âg    _ Brº   rè  Fró   T)rz   r€   r�   rˆ   r4  r½   zlbfgs solver did not convergerÎ   N)r@   rö   r   r’   rÓ   r   r�   )rp   ry   r�   s      rF   Útest_lbfgs_solver_errorr–  A  så   € å
Œ�1�b�'˜A˜q˜6Ð"Ñ#Ô#€AÝ
Œ�%˜�ÑÔ€AåØØØØØØðñ ô €Eõ 
ŒÕ(Ð0OÐ	PÑ	PÔ	Pð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á!BÂB	ÂB	r	  Útallc                 óø  — |� |dk    s|dv r| rt          j        d¦  «         t          j                             d¦  «        }d}|dk    r|dz  }n|dz  }|                     ||¦  «        }|                     |¦  «        }	|� ||¦  «        }t          | d	||d
k    |d¬¦  «        }
t          di |
¤Ž                     ||	d¬¦  «        }|j	         
                    ¦   «         }| r|j        }t          j        |	¦  «        }|                     ||	|¬¦  «         t          |j	        |d¬¦  «         | rt          |j        |¦  «         |                     dd|j        d         ¬¦  «        }d|dd…<   |	dd…xx         dz  cc<   |                     ||	|¬¦  «         |j	         
                    ¦   «         }| r|j        }|                     |dd…dd…f         |	dd…         |dd…         ¬¦  «         t          |j	        |d¬¦  «         | rt          |j        |¦  «         t          di |
¤Ž                     t          j        |
d         z  ¬¦  «        }|                     ||	t          j        |z  ¬¦  «         |dv r| st          j        d|› d�¦  «         t          |j	        |d¬¦  «         | rt          |j        |¦  «         |�|                     ¦   «         }t          j        ||d|dz  …         gd¬¦  «        }t          j        |	|	d|dz  …         g¦  «        }| 
                    ¦   «         }|d|dz  …xx         dz  cc<   t          j        ||d|dz  …         gd¬¦  «        }|� ||¦  «        } ||¦  «        }t          di |
¤Ž                     ||	|¬¦  «        }t          di |
¤Ž                     |||¬¦  «        }t          |j	        |j	        ¦  «         | rt          |j        |j        ¦  «         dS dS )zžTest that the impact of sample_weight is consistent.

    Note that this test is stricter than the common test
    check_sample_weights_invariance alone.
    Nr7   )r9   r<   zunsupported configurationrê   rP   r—  rJ   rƒ   rè  ró   )r�   rz   r€   r4  rU   rˆ   r‹   rZ  r\  rº   r   r[   éûÿÿÿr£  rz   rÃ   r„   zSolver z- does fail test for scaling of sample_weight.r‰   r�   )r’   r´   r@   rb   rc   r#  rŽ   r   r�   r”   r0  r‘   Ú	ones_liker)   re   r—   r•  Úpir±   Útoarrayr¥   )r�   r¹   r	  r€   rl   ro   rR   rS   rp   ry   rN   r·  r™   rž   rŒ   r  ÚX2Úy2Úsample_weight_1Úsample_weight_2r
  s                        rF   Ú$test_ridge_sample_weight_consistencyr¡  R  su  € ð Ð#Ø�UŠ?ˆ?˜vÐ)=Ð=Ð=À-Ð=ÝŒKÐ3Ñ4Ô4Ð4õ
 Œ)×
Ò
 Ñ
#Ô
#€CØ€IØˆv‚~€~Ø !‘^ˆ
ˆ
à ‘]ˆ
à�Š�˜JÑ'Ô'€AØ�Š�ÑÔ€AØÐ#ØÐ˜QÑÔˆÝØ#ØØØ˜GÒ#Ø'Øðñ ô €Fõ ˆ/ˆ/�&ˆ/ˆ/×
Ò
˜a °$Ð
Ñ
7Ô
7€CØŒ9�>Š>ÑÔ€DØð #Ø”Nˆ	Ý”L ‘O”O€MØ‡G‚GˆAˆq €GÑ.Ô.Ð.Ý�C”I˜t¨$Ð/Ñ/Ô/Ð/Øð 3Ý˜œ¨	Ñ2Ô2Ð2ð
 —K’K D¨q°q´w¸q´z�KÑBÔB€MØ€M�"�#�#ÑØ€b€c€c€F€F„Fˆd�N€F€F�FØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØŒ9�>Š>ÑÔ€DØð #Ø”Nˆ	Ø‡G‚GˆAˆcˆrˆc�1�1�1ˆfŒI�q˜˜"˜”v¨]¸3¸B¸3Ô-?€GÑ@Ô@Ð@Ý�C”I˜t¨$Ð/Ñ/Ô/Ð/Øð 3Ý˜œ¨	Ñ2Ô2Ð2õ ˆ?ˆ?�6ˆ?ˆ?×%Ò%­B¬E°F¸7´OÑ,CÐ%ÑDÔD€DØ‡H‚HˆQ�¥¤¨Ñ!6€HÑ7Ô7Ð7Ø�Ð Ð ¨Ð ÝŒÐT˜vÐTÐTÐTÑUÔUÐUÝ�D”J ¨4Ð0Ñ0Ô0Ð0Øð 4Ý˜œ¨Ñ3Ô3Ð3ð Ð#Ø�IŠI‰KŒKˆÝ	Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0°qÐ	9Ñ	9Ô	9€BÝ	Œ˜˜AÐ. 	¨Q¡Ð.Ô/Ð0Ñ	1Ô	1€BØ#×(Ò(Ñ*Ô*€OØÐ$�i 1‘nÐ$Ð%Ð%Ô%¨Ñ*Ð%Ð%Ñ%Ý”nØ	˜Ð&6¨	°Q©Ð&6Ô7Ð8¸qðñ ô €Oð Ð#ØÐ˜QÑÔˆØÐ˜bÑ!Ô!ˆÝˆ?ˆ?�6ˆ?ˆ?×Ò˜q !°?ÐÑCÔC€DÝˆ?ˆ?�6ˆ?ˆ?×Ò˜r 2°_ÐÑEÔE€DÝ�D”J ¤
Ñ+Ô+Ð+Øð :Ý˜œ¨¬Ñ9Ô9Ð9Ð9Ð9ð:ð :rH   c                  óž  — t          dd¬¦  «        \  } }t          d¬¦  «        }d}t          j        t          |¬¦  «        5  |                     | |¦  «         ddd¦  «         n# 1 swxY w Y   t          dd¬	¦  «        }d
}t          j        t          |¬¦  «        5  |                     | |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z-Check `store_cv_values` parameter deprecated.rš  rê   r›  T)Ústore_cv_valuesz'store_cv_values' is deprecatedrÎ   N)rn  r£  z2Both 'store_cv_values' and 'store_cv_results' were)r   r   r’   rÓ   ÚFutureWarningr�   rø   rù   ©rp   ry   rà   r©  s       rF   Ú%test_ridge_store_cv_values_deprecatedr¦  ¶  sK  € å Q°RÐ8Ñ8Ô8�D€A€qÝ DÐ)Ñ)Ô)€EØ
+€CÝ	Œ•m¨3Ð	/Ñ	/Ô	/ð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ  T¸4Ð@Ñ@Ô@€EØ
>€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA%Á%A)Á,A)ÂCÃCÃ	Cc                  óô   — t          dd¬¦  «        \  } }t          d¬¦  «        }d}t          j        t          |¬¦  «        5  |                     | |¦  «         |j         ddd¦  «         dS # 1 swxY w Y   dS )	zCheck `cv_values_` deprecated.rš  rê   r›  Tr˜  z$Attribute `cv_values_` is deprecatedrÎ   N)r   r   r’   rÓ   r¤  r�   Ú
cv_values_r¥  s       rF   Útest_ridge_cv_values_deprecatedr©  Å  sÀ   € å Q°RÐ8Ñ8Ô8�D€A€qÝ TÐ*Ñ*Ô*€EØ
0€CÝ	Œ•m¨3Ð	/Ñ	/Ô	/ð ð Ø�	Š	�!�Q‰ŒˆØÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA-Á-A1Á4A1Úenable_slep006Úmetaestimatorc                 ó>   —  | ¦   «                               ¦   «          dS )z˜Test that `RidgeCV` or `RidgeClassifierCV` with default `scoring`
    argument (`None`), don't enter into `RecursionError` when metadata is routed.
    N)Úget_metadata_routing)r«  s    rF   Ú*test_metadata_routing_with_default_scoringr®  Ó  s"   € ð €M�O„O×(Ò(Ñ*Ô*Ð*Ð*Ð*rH   )r&  r&  r¡   rZ   rV   r'  r(  r(  TFFN)²rô  Ú	itertoolsr   Únumpyr@   r’   Úscipyr   Úsklearnr   r   Úsklearn.baser   Úsklearn.datasetsr   r	   r
   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   r   r   r   r   Úsklearn.linear_model._ridger   r   r   r   r   r   r   Úsklearn.metricsr   r   r   Úsklearn.model_selectionr   r   r   r    r!   Úsklearn.preprocessingr"   Úsklearn.utilsr#   Úsklearn.utils._array_apir$   r%   r&   r'   r(   Úsklearn.utils._testingr)   r*   r+   r,   r-   Úsklearn.utils.estimator_checksr.   r/   r0   Úsklearn.utils.fixesr1   r2   r3   r4   r5   r6   ÚSOLVERSr¾   r¿   Úload_diabetesÚdiabetesr	  rð   rÆ   rÄ   rõ   r—   Úindrb   rc   ro   r-  Ú	load_irisr  rµ  r´  rG   rK   Úfixturer   ÚmarkÚparametrizerŸ   r©   r«   r²   r¶   r¸   rÁ   rË   rÕ   rá   rã   rè   rÿ   r  r   r%  r8  rK  r.  rb  re  r{  r�  r’  r—  rž  r¡  rª  r­  r±  r¸  r¾  rÆ  rÊ  rÞ  rå  rï  Úsortedr÷  rü  r  r  r  r  r  r  r   r'  r5  r:  r<  rù   Ú	TypeErrorr@  rB  rD  rJ  rN  rR  rV  r–   rö   r`  rm  rp  rG  ru  ry  r|  r  r‚  r„  r�  r”  r–  r¡  r¦  r©  Úusefixturesr®  r�   rH   rF   ú<module>rË     s™  ðØ €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð BÐ
AÐ
A€Ø 4Ð Ø#SÐ  à!ˆ8Ô!Ñ#Ô#€Ø!œ¨¬Ð €
ˆJØ€b„i�
Ô  Ô#Ñ$Ô$€Ø„i×Ò˜AÑÔ€Ø ‡‚ˆCÑ Ô Ð Ø	ˆ$ˆ3ˆ$„i€Ø# Cœ¨*°S¬/Ð €
ˆJà€xÔÑÔ€Ø”˜DœK€€ˆð%ð %ð %ð+ð +ð +ð €„˜ Ð'Ð(Ñ(Ô(ðC&ð C&ñ )Ô(ðC&ðL „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð)#ð )#ñ 9Ô8ñ ,Ô+ð)#ðX „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð#?ð #?ñ 9Ô8ñ ,Ô+ð#?ðL „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð%2ð %2ñ 9Ô8ñ ,Ô+ð%2ðP „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð2+ð 2+ñ 9Ô8ñ ,Ô+ð2+ðj „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð28ð 28ñ 9Ô8ñ ,Ô+ð28ðj „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8ð2+ð 2+ñ 9Ô8ñ ,Ô+ð2+ðj „×Ò˜ 7Ñ+Ô+Ø„×Ò˜¨4°¨-Ñ8Ô8Ø„×ÒÐ+¨d¨V°nÑ-DÑEÔEØ„×Ò˜ 3¨ +Ñ.Ô.ð/'ð /'ñ /Ô.ñ FÔEñ 9Ô8ñ ,Ô+ð/'ðd+ð +ð +ð
ð 
ð 
ð4ð 4ð 4ð<>ð >ð >ð$0ð 0ð 0ð*ð ð ð@ „×Ò˜Ð"2Ð"2Ð"2Ñ3Ô3Ø„×Ò˜¨.Ñ9Ô9ð
Dð 
Dñ :Ô9ñ 4Ô3ð
Dð „×Ò˜Ð"NÐ"NÐ"NÑOÔOØ„×ÒÐ*¨T°5¨MÑ:Ô:Ø„×Ò˜¨.Ñ9Ô9ð.ð .ñ :Ô9ñ ;Ô:ñ PÔOð.ð$ „×Ò˜Ð"NÐ"NÐ"NÑOÔOØ„×ÒÐ*¨T°5¨MÑ:Ô:Ø„×Ò˜¨.Ñ9Ô9ð3ð 3ñ :Ô9ñ ;Ô:ñ PÔOð3ð& ØØØØØ	ØØ
ØØ	ØØð*ð *ð *ð *ðZ „×ÒØðð à*1¨'ØGÐGÐGØˆF�^Ñ#ñ+
ô +
ðñ ô ñ
ô 
ð „×ÒØ(ØFÐFÐFñô ð „×Ò˜  ¤¨1¡¤Ñ.Ô.ðRð Rñ /Ô.ñ	ô ñ
ô 
ð RðB „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFØ„×Ò˜ W¨hÐ$7Ñ8Ô8Ø„×Ò˜¨4°¨-Ñ8Ô8Ø„×ÒØðð ð ñô ð$Kð $Kñô ñ 9Ô8ñ 9Ô8ñ GÔFñ 7Ô6ð$KðNKð Kð Kð< „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFØ„×Ò˜¨¨2 wÑ/Ô/Ø„×ÒØ#ðð ð ñô ð9Gð 9Gñô ñ 0Ô/ñ GÔFñ 7Ô6ð9Gðx „×ÒÐ+¨d¨V°nÑ-DÑEÔEØ„×ÒØ8ðð ð ñô ð?ð ?ñô ñ FÔEð?ð6ð 6ð 6ðr3ð 3ð 3ð$ „×ÒØà	ˆ %Ð	(Ñ	(Ô	(¨/Ð:Ø	Ð	¨EÐ	2Ñ	2Ô	2Ð4GÐHðñô ð-ð -ñô ð-ð „×ÒØØ€g�i„i�Ð!Ð$5Ð$5Ñ$7Ô$7Ð9LÐ#MÐNñô ð „×Ò˜  a˜yÑ)Ô)ð0ð 0ñ *Ô)ñ	ô ð
0ðDð Dð DðN3ð 3ð 3ðPð Pð Pð,ð ,ð ,ð$ „×Ò˜ T¨:Ð7IÐ$JÑKÔKØ„×Ò˜  e e¨A¡h¤hÐ/Ñ0Ô0Ø„×ÒÐ+¨d¨V°nÑ-DÑEÔEð"ð "ñ FÔEñ 1Ô0ñ LÔKð"ð „×Ò˜  e e¨A¡h¤hÐ/Ñ0Ô0Ø„×ÒÐ+¨d¨V°nÑ-DÑEÔEð2ð 2ñ FÔEñ 1Ô0ð2ð ð ð ð 
ð  
ð  
ðF „×ÒØ)Ð+TÐ+TÑ+VÔ+Vñô ð „×ÒØØ%Ð'AÐBØ ð ñ ô ð
 „×ÒØØ
€U�%ÐÑÔÐØ ð ñ ô ð
Rð Rñô ñô ñô ðRð „×ÒØÐ'Ð'ÀÐGÑGÔGñô ð',ð ',ñô ð',ðT „×ÒÐ*¨F¨FÐ3IÑ,JÔ,JÑKÔKðFð Fñ LÔKðFð. „×ÒØàØØØ"ØØðñ
ô 
ð „×Ò˜¨.Ñ9Ô9ðDð Dñ :Ô9ñ
ô 
ðDð ?ð  ?ð  ?ðF „×Ò˜ Ð2CÐ DÑEÔEð0ð 0ñ FÔEð0ð8Að Að Að „×ÒØ�Ð.Ð0LÐMñô ðð ñô ðð: „×Ò˜ T¨:Ð7IÐ$JÑKÔKðCð Cñ LÔKðCð8 „×Ò˜ wÐ0AÐ&BÑCÔCð=ð =ñ DÔCð=ð( „×Ò˜  a˜yÑ)Ô)Ø„×Ò˜ wÐ0AÐ&BÑCÔCðð ñ DÔCñ *Ô)ðð(Kð Kð Kð0$!ð $!ð $!ðN „×ÒÐ/°1°a°&¸1¸a¸&Ð1AÑBÔBØ„×ÒØØ�^Ñ# nÑ4°~ÑEÈÑVñô ðPð Pñ	ô ñ CÔBð
Pð"ð ð ð „×Ò˜ wÐ0AÐ&BÑCÔCØ„×ÒØà
�MÐ	" JÐ0SÐTàÐ*Ð+ØØ1ð	
ð �}Ð%ØØ@ð	
ðñô ð &ð &ñ!ô ñ DÔCð"&ð „×Ò˜ wÐ0AÐ&BÑCÔCð"ð "ñ DÔCð"ð"5ð 5ð 5ð ð#ð #ñ „ð#ð$ „×Ò˜Ð#IÐ#IÐ#IÑJÔJØ„×ÒÐ-°°e¨}Ñ=Ô=Ø„×Ò˜¨.Ñ9Ô9ð#Fð #Fñ :Ô9ñ >Ô=ñ KÔJð#FðL „×Ò˜Ð#>Ð#>Ð#>Ñ?Ô?Ø„×Ò˜¨.Ñ9Ô9ð#ð #ñ :Ô9ñ @Ô?ð#ð „×ÒÐ-°°e¨}Ñ=Ô=Ø„×Ò˜¨.Ñ9Ô9ðWð Wñ :Ô9ñ >Ô=ðWð8 „×ÒÐ+¨e°T¨]Ñ;Ô;Ø„×Ò˜¨4°°´¸±´Ð*?Ñ@Ô@Ø„×Ò˜ r¤x j°>Ñ&AÑBÔBØ„×ÒØÐOÐOÐOñô ð4<ð 4<ñô ñ CÔBñ AÔ@ñ <Ô;ð4<ðn „×ÒØÐNÐNÐNñô ðJð Jñô ðJðDCð Cð Cð< „×ÒØÐNÐNÐNñô ð „×Ò˜   q¡¤Ñ*Ô*ðIð Iñ +Ô*ñô ðIð@"ð "ð "ð „×ÒØà	˜"ÐØ	˜T 4˜LÐ)Ø	˜T 1˜IÐ&ðñô ð"ð "ñô ð"ð „×Ò˜ F¨GÐ#4Ñ5Ô5Ø„×Ò˜¨4°¨-Ñ8Ô8Ø„×Ò˜Ð"8Ð"8Ð"8Ñ9Ô9ð$ð $ñ :Ô9ñ 9Ô8ñ 6Ô5ð$ð" „×Ò˜¨4°¨-Ñ8Ô8Ø„×Ò˜Ð"8Ð"8Ð"8Ñ9Ô9ð1ð 1ñ :Ô9ñ 9Ô8ð1ð2 „×ÒØÐEÐEÐEñô ð
ð 
ñô ð
ð" „×Ò˜Ð"8Ð"8Ð"8Ñ9Ô9ð"/ð "/ñ :Ô9ð"/ðJ „×Ò˜Ð"8Ð"8Ð"8Ñ9Ô9ðBð Bñ :Ô9ðBð ð ð ð" „×Ò˜¨5°$¨-Ñ8Ô8Ø„×ÒÐ+¨d¨V°nÑ-DÑEÔEØ„×Ò˜ &¨&Ð!1Ñ2Ô2Ø„×Ò˜ 7¨g¨YÑ#6Ñ7Ô7ð\:ð \:ñ 8Ô7ñ 3Ô2ñ FÔEñ 9Ô8ð\:ð@ð ð ðð ð ð „×ÒÐ)Ñ*Ô*Ø„×Ò˜¨7Ð4EÐ*FÑGÔGð+ð +ñ HÔGñ +Ô*ð+ð +ð +rH   