§
    rŠtj<k ã                   óü)  — 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l7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZH g d¢ZIdZJdZK e
jL        ¦   «         ZMeMjN        eMjO        cZPZQ ejR        ePjS        d          ¦  «        ZTejU         V                    d ¦  «        ZWeW X                    eT¦  «         eTdd…         ZTePeT         eQeT         cZPZQ e
jY        ¦   «         ZZeZjN        eZjO        cZ[Z\d„ Z]d„ Z^ ej_        ddg¬¦  «        d„ ¦   «         Z`eja         b                    deI¦  «        eja         b                    ddd g¦  «        d!„ ¦   «         ¦   «         Zceja         b                    deI¦  «        eja         b                    ddd g¦  «        d"„ ¦   «         ¦   «         Zdeja         b                    deI¦  «        eja         b                    ddd g¦  «        d#„ ¦   «         ¦   «         Zeeja         b                    deI¦  «        eja         b                    ddd g¦  «        d$„ ¦   «         ¦   «         Zfeja         b                    deI¦  «        eja         b                    ddd g¦  «        d%„ ¦   «         ¦   «         Zgeja         b                    deI¦  «        eja         b                    ddd g¦  «        d&„ ¦   «         ¦   «         Zheja         b                    deI¦  «        eja         b                    ddd g¦  «        eja         b                    d'dgeFz   ¦  «        eja         b                    d(d)d*g¦  «        d+„ ¦   «         ¦   «         ¦   «         ¦   «         Zid,„ Zjd-„ Zkd.„ Zld/„ Zmd0„ Znd1„ Zoeja         b                    d2g d3¢¦  «        eja         b                    d4eF¦  «        d5„ ¦   «         ¦   «         Zpeja         b                    d6g d7¢¦  «        eja         b                    d8dd g¦  «        eja         b                    d4eF¦  «        d9„ ¦   «         ¦   «         ¦   «         Zqeja         b                    d6g d7¢¦  «        eja         b                    d8dd g¦  «        eja         b                    d4eF¦  «        d:„ ¦   «         ¦   «         ¦   «         Zr	 	 	 	 	 	 	 	 	 	 	 	 dÜdA„Zseja         b                    dBdC„  eg dD¢dgeFz   ¦  «        D ¦   «         ¦  «        eja         b                    dEg dF¢¦  «        dG„ ¦   «         ¦   «         ZtdH„ Zueja         b                    dIdJdKg¦  «        eja         b                    dLejv        ejw        g¦  «        eja         b                    dMejx        geFz   ¦  «        eja         b                    dNdOdPgdQdg¬R¦  «        eja         b                    ddd g¦  «        eja         b                    dSg dT¢¦  «        dU„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZydV„ Zzeja         b                    d(dWdXgdYdZg¬R¦  «        eja         b                    dg d[¢¦  «        eja         b                    ddd g¦  «        eja         b                    dNd\d]gdQdg¬R¦  «        eja         b                    dMejx        geFz   ¦  «        d^„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z{eja         b                    d(dWdXgdYdZg¬R¦  «        eja         b                    dId_g¦  «        eja         b                    ddd g¦  «        eja         b                    dNg d`¢g da¢¬R¦  «        eja         b                    dLejv        ejw        g¦  «        eja         b                    dMejx        geFz   ¦  «        db„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z|eja         b                    d(dWdXgdYdZg¬R¦  «        eja         b                    dIdJdKg¦  «        eja         b                    ddd g¦  «        eja         b                    dNg d`¢g da¢¬R¦  «        eja         b                    dLejv        ejw        g¦  «        eja         b                    dMejx        geFz   ¦  «        dc„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z}dd„ Z~eja         b                    dIdJdKg¦  «        eja         b                    dMejx        geFz   ¦  «        eja         b                    dedfdgg¦  «        eja         b                    dhg di¢¦  «        dj„ ¦   «         ¦   «         ¦   «         ¦   «         Zeja         b                    d'dgeFz   ¦  «        eja         b                    dNg dk¢g da¢¬R¦  «        eja         b                    dIg dl¢¦  «        dm„ ¦   «         ¦   «         ¦   «         Z€dn„ Z�do„ Z‚eja         b                    dp ed ¬q¦  «        ef ed ¬q¦  «        efg¦  «        dr„ ¦   «         Zƒeja         b                    dp e¦   «         ef e¦   «         efg¦  «        eja         b                    dsddtg¦  «        du„ ¦   «         ¦   «         Z„dv„ Z…dw„ Z†dx„ Z‡dy„ Zˆeja         b                    dzdd{e]g¦  «        eja         b                    dsd e*d|¦  «        g¦  «        eja         b                    d'dgeFz   ¦  «        d}„ ¦   «         ¦   «         ¦   «         Z‰eja         b                    dsd e*d|¦  «        g¦  «        eja         b                    d'dgeFz   ¦  «        d~„ ¦   «         ¦   «         ZŠd„ Z‹	 dÝd€„ZŒeja         b                    d� e5¦   «         ¦  «        eja         b                    d‚eAeŒge8¬R¦  «        eja         b                    dƒ edJ¬„¦  «         edJ¬„¦  «         edJ¬…¦  «         edK¬…¦  «         e¦   «         ge8¬R¦  «        d†„ ¦   «         ¦   «         ¦   «         Z�eja         b                    dƒ edJ¬„¦  «         e¦   «         g¦  «        eja         b                    d� e5¦   «         ¦  «        d‡„ ¦   «         ¦   «         ZŽeja         b                    d� e5¦   «         ¦  «        dˆ„ ¦   «         Z�eja         b                    d‰ e6d ¬Š¦  «        ¦  «        d‹„ ¦   «         Z�eja         b                    d‰ e‘e2¦  «        ¦  «        dŒ„ ¦   «         Z’eja         b                    d�e�e‚e†e‡eˆe‹f¦  «        eja         b                    d4eF¦  «        dŽ„ ¦   «         ¦   «         Z“d�„ Z”eja         b                    d�eef¦  «        d‘„ ¦   «         Z•d’„ Z–eja         b                    dzdd“e^g¦  «        d”„ ¦   «         Z—eja         b                    dzdd{e]g¦  «        d•„ ¦   «         Z˜eja         b                    d–eeg¦  «        d—„ ¦   «         Z™eja         b                    dsddtg¦  «        eja         b                    d–eeg¦  «        d˜„ ¦   «         ¦   «         Zšd™„ Z›dš„ Zœeja         b                    d›dœdtgdtdœgg¦  «        eja         b                    d'eDeEz   eFz   eGz   eHz   ¦  «        d�„ ¦   «         ¦   «         Z�dž„ Zžeja         b                    d–eeg¦  «        eja         b                    dŸd d¡ieŸd¢fd d£ieŸd¤fd d¥ie d¦fg¦  «        d§„ ¦   «         ¦   «         Z¡eja         b                    d–eeg¦  «        d¨„ ¦   «         Z¢d©„ Z£eja         ¤                    dª¦  «        d«„ ¦   «         Z¥eja         b                    dg d¬¢¦  «        eja         b                    d­dd g¦  «        eja         b                    d4eF¦  «        d®„ ¦   «         ¦   «         ¦   «         Z¦eja         b                    dg d¯¢¦  «        eja         b                    d4eF¦  «        d°„ ¦   «         ¦   «         Z§eja         b                    d­dd g¦  «        eja         b                    d4eF¦  «        d±„ ¦   «         ¦   «         Z¨eja         b                    d²d dg¦  «        eja         b                    d³d ej©        d´¦  «        g¦  «        eja         b                    dµejª        geFz   ¦  «        eja         b                    dg d¶¢¦  «        d·„ ¦   «         ¦   «         ¦   «         ¦   «         Z«eja         b                    dg d¸¢¦  «        d¹„ ¦   «         Z¬dº„ Z­eja         b                    dg d»¢¦  «        eja         b                    d¼ e®d>¦  «        ¦  «        d½„ ¦   «         ¦   «         Z¯d¾„ Z°eja         b                    d¿ei fedsdifedsdtifg¦  «        dÀ„ ¦   «         Z±eja         b                    ddÁdÂg¦  «        eja         b                    ddd g¦  «        eja         b                    d(g dÃ¢¦  «        dÄ„ ¦   «         ¦   «         ¦   «         Z²eja         b                    ddd g¦  «        eja         b                    d(g dÃ¢¦  «        dÅ„ ¦   «         ¦   «         Z³eja         b                    dg dÆ¢¦  «        dÇ„ ¦   «         Z´eja         b                    d(g dÃ¢¦  «        dÈ„ ¦   «         Zµeja         b                    d(g dÃ¢¦  «        dÉ„ ¦   «         Z¶dÊ„ Z·eja         b                    dd dg¦  «        eja         b                    d'dgeFz   ¦  «        eja         b                    dËdQdg¦  «        eja         b                    deIdÂgz   ¦  «        dÌ„ ¦   «         ¦   «         ¦   «         ¦   «         Z¸eja         b                    dNdÍdÎgdQdg¬R¦  «        eja         b                    d­d dgdÏdÐg¬R¦  «        eja         b                    dd dgdÑdÒg¬R¦  «        eja         b                    dIdJdKg¦  «        eja         b                    dÓd>dœg¦  «        dÔ„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z¹eja         b                    dIdJdKg¦  «        eja         b                    dNdÍdÎgdQdg¬R¦  «        dÕ„ ¦   «         ¦   «         Zºeja         b                    dNdÍdÎgdQdg¬R¦  «        dÖ„ ¦   «         Z»eja         b                    d×eeg¦  «         e	d¬Ø¦  «        dÙ„ ¦   «         ¦   «         Z¼eja         b                    dÚ e¦   «         ef e¦   «         efg¦  «         e	d¬Ø¦  «        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Úmove_toÚ)yield_namespace_device_dtype_combinationsÚyield_namespaces)Ú_get_check_estimator_ids)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú_array_api_for_testsÚ 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      úc/var/www/html/CA-Chatbot/venv/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ØL€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	        |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�ÑÔÐØŒ;Ô  Ò-Ð-Ð-Ð-ØÔÔ! 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                 ó   — 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          |	|¦  «         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_grams                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Ø×%Ò% h°¸Ñ@Ô@€MÝ�I˜}Ñ-Ô-Ð-Ð-Ð-rH   c                 ó   — 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          |	|¦  «         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_covs                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Ø×*Ò*¨8°V¸WÑEÔE€LÝ�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_regressionr7  ²  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<   r9  z"n_samples,dtype,proportion_nonzero))rë   Úfloat32çš™™™™™¹?)é(   r;  rƒ   )rë   Úfloat64çš™™™™™É?c                 ó`  — d}|dk    rdnd}t          dd||||¬¦  «        \  }}	t          |¦  «        }t          d|¬	¦  «                             ||	¦  «        }
|                     |d
¬¦  «        }|	                     |d
¬¦  «        }	|� ||¦  «        }| dk    rt          |g¬¦  «        }n2|                      d¦  «        rd}d}nd}d }t          || |||¬¦  «        }|                     ||	¦  «         t          |j        |
j        dd¬¦  «         t          |j	        |
j	        dd¬¦  «         d S )Nrƒ   gÍÌÌÌÌÌì?g      I@g     @@rZ   é   )r*  rS   r1  r+  rU   rR   r7   )r€   rz   F)r/  r9  ©Úalphasr;   gH¯¼šò×z>r¼   r†   )rz   r€   r½   rˆ   rU   rX   ©r¤   Úrtol)
r7  r"   r   r�   Úastyper   Ú
startswithr*   r”   r‘   )r€   r1  rR   Údtyper¹   rl   rz   r+  rp   ry   Ú	svd_ridgerà   rˆ   r½   s                 rF   Útest_solver_consistencyrJ  ß  st  € ð$ €EØ&¨Ò,Ð,ˆDˆD°%€EÝ)ØØØ-ØØ'Øðñ ô �D€A€qõ 	�Q‰Œ€Aå˜U¨%Ð0Ñ0Ô0×4Ò4°Q¸Ñ:Ô:€IØ	�Š�˜UˆÑ#Ô#€AØ	�Š�˜UˆÑ#Ô#€AØÐ#ØÐ˜QÑÔˆØ�ÒÐÝ ˜wÐ'Ñ'Ô'ˆˆà×Ò˜UÑ#Ô#ð 	àˆCØˆHˆHàˆCØˆHåØØØØØ+ð
ñ 
ô 
ˆð 
‡I‚Iˆa��O„O€OÝ�E”K ¤°tÀ$ÐGÑGÔGÐGÝ�EÔ$ iÔ&:ÀÈDÐQÑQÔQÐQÐQÐQrH   c                  ón  — d\  } }t           j                             d¦  «        }|                     dd| |f¬¦  «        }|                     dd| f¬¦  «        }|                     t           j        ¦  «        }|                     t           j        ¦  «        }t          g d¢dd¬¦  «        }|                     ||¦  «         t          |¦  «        }|                     ||¦  «         t          |j
        |j
        ¦  «         t          |j        |j        ¦  «         |j        j        t           j        k    sJ ‚d S )	N)rë   rZ   r   rÍ   r_   ©r<  rƒ   ç      $@Úneg_mean_squared_errorT)rC  ÚscoringÚstore_cv_results)r@   rb   rc   ÚrandintrF  r>  r   r�   r   r*   r”   Úcv_results_rH  )	rR   rS   ro   rp   ry   ÚX_floatÚy_floatÚ	ridge_gcvÚridge_gcv_floats	            rF   Útest_ridge_gcv_integer_arraysrW    s"  € Ø"Ñ€IˆzÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�Š�A�q 	¨:Ð6ˆÑ7Ô7€AØ�Š�A�q 	˜|ˆÑ,Ô,€Aà�hŠh•r”zÑ"Ô"€GØ�hŠh•r”zÑ"Ô"€GåØÐÐÐ)AÐTXðñ ô €Ið ‡M‚M�!�QÑÔÐå˜IÑ&Ô&€OØ×Ò˜ Ñ)Ô)Ð)å�I”O _Ô%:Ñ;Ô;Ð;Ý�IÔ)¨?Ô+FÑGÔGÐGØÔ Ô&­"¬*Ò4Ð4Ð4Ð4Ð4Ð4rH   Úgcv_moder7   ÚeigenrH  ÚX_containerÚX_shape)r  r  )r  rë   Útall)Úidszy_shape, noise))©r  rƒ   )©r  rV   r'  )©r  r  ç     Àb@c           	      óà  — | dk    r|t           v rt          j        d¦  «         |\  }}t          |¦  «        dk    r|d         nd}	t	          |||	dd|d¬	¦  «        \  }
}|                     |¦  «        }g d
¢}t          |||d¬¦  «        }t          | ||¬¦  «        }|                     |
|¦  «          ||
¦  «        }
|
                     |¦  «        }
|                     |¦  «        }|                     |
|¦  «         |t          j
        k    rdnd}|j        t          j        |j        ¦  «        k    sJ ‚t          |j        |j        |¬¦  «         t          |j        |j        |¬¦  «         d S )Nr7   ú&`svd` mode not supported for sparse X.rJ   rW   rV   r   FrÍ   ©rR   rS   rú   rU   r,  r+  r)  ©rX   r<  rƒ   rM  g     @�@rN  ©Úcvr�   rC  rO  )rX  r�   rC  çñhãˆµøä>r†   r£   )r4   r’   r´   r  r7  rÅ   r   r�   rF  r@   r;  Úalpha_r“   r*   r”   r‘   )rX  rH  rZ  r[  Úy_shaper�   r+  rR   rS   rú   rp   ry   rC  Ú	loo_ridgeÚ	gcv_ridger¤   s                   rF   Útest_ridge_gcv_vs_ridge_loo_cvrm  2  s   € ð  �5ÒÐ˜k­^Ð;Ð;ÝŒÐ<Ñ=Ô=Ð=Ø#Ñ€IˆzÝ" 7™|œ|¨qÒ0Ð0�˜”�°a€IÝ)ØØØØØØØðñ ô �D€A€qð 	
�	Š	�'ÑÔ€Aà(Ð(Ð(€FÝØØ#ØØ(ð	ñ ô €Iõ ØØ#Øðñ ô €Ið ‡M‚M�!�QÑÔÐàˆ�A‰Œ€AØ	�Š�‰Œ€AØ	�Š�‰Œ€AØ‡M‚M�!�QÑÔÐà�BœJÒ&Ð&ˆ4ˆ4¨E€DØÔ�vœ}¨YÔ-=Ñ>Ô>Ò>Ð>Ð>Ð>Ý�I”O Y¤_¸4Ð@Ñ@Ô@Ð@Ý�IÔ(¨)Ô*>ÀTÐJÑJÔJÐJÐJÐJrH   c                 ó  — t          j        | d¦  «        r4t          |¬¦  «        }|                     ||¦  «         |j        |j        fS |j        d         }t          j        |¦  «        |rt          j        |¦  «        ndfS )z4Expected coef and intercept when alpha near 0 or infr   ræ   rV   rÐ   )	r@   Úiscloser   r�   r”   r‘   r—   ÚzerosrA   )rz   rp   ry   r�   Úlin_regrS   s         rF   Ú_ridge_regularization_limitsrr  k  s~   € å	„z�%˜ÑÔð Jå"°Ð?Ñ?Ô?ˆØ�Š�A�qÑÔÐØŒ}˜gÔ0Ð0Ð0ð ”W˜Q”Zˆ
ÝŒx˜
Ñ#Ô#°=Ð%I¥R¤W¨Q¡Z¤Z ZÀcÐIÐIrH   ç¼‰Ø—²Òœ<g €à7yÃACÚ
zero_alphaÚ	inf_alpha)r7   r9   r:   r8   ©r%  é2   ©rw  r%  c                 ó²  — |t           v }|dk    r|rt          j        d¦  «         |dk    r|r|rt          j        d¦  «         |\  }}t          ||ddd¬¦  «        \  }}	t	          | ||	|¦  «        \  }
} ||¦  «        }t          | ||d	¬
¦  «        }|                     ||	¦  «         t          |j        |
d¬¦  «         t          |j	        |d¬¦  «         dS )z:Check regularization limits of Ridge (alpha near 0 or inf)r7   z)solver='svd' does not support sparse datar9   zGsolver='cholesky' does not support fitting the intercept on sparse datar   rZ   rê   ©rR   rS   r+  r*  rU   ró   )rz   r€   r�   rˆ   r†   r£   N)
r4   r’   r´   r   rr  r   r�   r*   r”   r‘   )rz   r€   r�   r[  rZ  Úsparse_XrR   rS   rp   ry   Úexpected_coefÚexpected_interceptrà   s                rF   Ú test_regularization_limits_ridger~  x  s  € ð �nÐ,€HØ�‚€˜8€ÝŒÐ?Ñ@Ô@Ð@Ø�ÒÐ Ð¨]ÐÝŒØUñ	
ô 	
ð 	
ð $Ñ€IˆzÝØ¨
¸!À"ÐSUðñ ô �D€A€qõ )EØˆq�!�]ñ)ô )Ñ%€MÐ%ð 	ˆ�A‰Œ€AÝ˜ f¸MÈuÐUÑUÔU€EØ	‡I‚Iˆa��O„O€OÝ�E”K °UÐ;Ñ;Ô;Ð;Ý�EÔ$Ð&8¸uÐEÑEÔEÐEÐEÐErH   Úignored)rv  )rw  rw  rx  )r\  ÚsquarerM   c                 ó  — |t           v }| g}|\  }}	t          ||	d¬¦  «        \  }
}d|z  dz
  }t          j        | d¦  «        r5|	|k     rt	          j        d¦  «         n|	|k    rt	          j        d¦  «         t          | |
||¦  «        \  }} ||
¦  «        }
|
                     |¦  «        }
|                     |¦  «        }t          ||¬¦  «        }|d	k    rN|rLd
}t	          j	        t          |¬¦  «        5  |                     |
|¦  «         ddd¦  «         n# 1 swxY w Y   n|                     |
|¦  «         |t          j        k    rdnd}t          |j        ||¬¦  «         t          |j        ||¬¦  «         dS )zFCheck regularization limits of RidgeClassifierCV (alpha near 0 or inf)rê   ©rR   rS   rU   rJ   rV   r   zVRidgeClassifierCV does not recover LinearRegression on tall X in the small alpha limitzXRidgeClassifierCV does not recover LinearRegression on square X in the small alpha limit)rC  r�   r7   ú,The 'svd' mode is not supported for sparse XrÎ   Nrh  r†   r£   )r4   r   r@   ro  r’   r±   rr  rF  r   rÓ   ÚFutureWarningr�   r;  r*   r”   r‘   ©rz   rX  r�   r[  rH  rZ  r{  rC  rR   rS   rp   ry   r|  r}  rl  Úexpected_msgr¤   s                    rF   Ú/test_regularization_limits_ridge_classifier_gcvr‡  –  s  € ð �nÐ,€HØˆW€FØ#Ñ€IˆzÝØ¨
Àðñ ô �D€A€qð 	
ˆA‰�‰	€AÝ	„z�%˜ÑÔð à˜	Ò!Ð!ÝŒLð5ñô ð ð ð ˜9Ò$Ð$ÝŒLð7ñô ð õ )EØˆq�!�]ñ)ô )Ñ%€MÐ%ð 	ˆ�A‰Œ€AØ	�Š�‰Œ€AØ	�Š�‰Œ€Aå!¨¸}ÐMÑMÔM€IØ�5ÒÐ˜XÐàEˆÝŒ\�-¨|Ð<Ñ<Ô<ð 	 ð 	 Ø�MŠM˜!˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 øð 	�Š�a˜ÑÔÐà�BœJÒ&Ð&ˆ4ˆ4¨E€DÝ�I”O ]¸Ð>Ñ>Ô>Ð>Ý�IÔ(Ð*<À4ÐHÑHÔHÐHÐHÐHs   Ã9DÄD Ä#D c                 óf  — |t           v }| g}|\  }}	t          ||	ddd¬¦  «        \  }
}t          | |
||¦  «        \  }} ||
¦  «        }
|
                     |¦  «        }
|                     |¦  «        }t	          |||¬¦  «        }|dk    rN|rLd}t          j        t          |¬¦  «        5  |                     |
|¦  «         d	d	d	¦  «         n# 1 swxY w Y   n|                     |
|¦  «         |t          j
        k    rd
nd}t          |j        ||¬¦  «         t          |j        ||¬¦  «         d	S )z>Check regularization limits of _RidgeGCV (alpha near 0 or inf)r   rZ   rê   rz  )rC  rX  r�   r7   rƒ  rÎ   Nrh  r†   r£   )r4   r   rr  rF  r   r’   rÓ   r„  r�   r@   r;  r*   r”   r‘   r…  s                    rF   Ú$test_regularization_limits_ridge_gcvr‰  Í  sš  € ð �nÐ,€HØˆW€FØ#Ñ€IˆzÝØ¨
¸!À"ÐSUðñ ô �D€A€qõ )EØˆq�!�]ñ)ô )Ñ%€MÐ%ð 	ˆ�A‰Œ€AØ	�Š�‰Œ€AØ	�Š�‰Œ€AÝ˜v°ÈÐVÑVÔV€IØ�5ÒÐ˜XÐàEˆÝŒ\�-¨|Ð<Ñ<Ô<ð 	 ð 	 Ø�MŠM˜!˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 øð 	�Š�a˜ÑÔÐà�BœJÒ&Ð&ˆ4ˆ4¨E€DÝ�I”O ]¸Ð>Ñ>Ô>Ð>Ý�IÔ(Ð*<À4ÐHÑHÔHÐHÐHÐHs   Â*CÃCÃCc            	      óÜ  — d} d\  }}d}t          |||dddd¬¦  «        \  }}g d¢}t          |d	|| ¬
¦  «        }t          d	|| ¬¦  «        }|                     ||¦  «         |                     ||¦  «         |j        t	          j        |j        ¦  «        k    sJ d|j        ›d|j        ›�¦   «         ‚t          |j        |j        d¬¦  «         t          |j        |j        d¬¦  «         d S )NÚexplained_variance)rZ   rÍ   rV   r   FrÍ   rd  re  Trf  )r�   rC  rO  zgcv_ridge.alpha_=z, loo_ridge.alpha_=rX   ©rE  )	r7  r   r�   ri  r’   r“   r*   r”   r‘   )	rO  rR   rS   rú   rp   ry   rC  rk  rl  s	            rF   Útest_ridge_loo_cv_asym_scoringr�  õ  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Ô-=Ñ>Ô>Ò>Ð>Ð>Ø3ˆ9ÔÐ3Ð3 	Ô 0Ð3Ð3ñ ?Ô>Ð>õ �I”O Y¤_¸4Ð@Ñ@Ô@Ð@Ý�IÔ(¨)Ô*>ÀTÐJÑJÔJÐJÐJÐJrH   rS   r  rë   zy_shape, fit_intercept, noise))r^  Trƒ   )r_  Tg      4@)r`  Tra  )r`  Fr'  c                 óÈ  ‡‡— | dk    r|t           v rt          j        d¦  «         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/          ||||¬¦  «        }|j        |j        k    r|                     |j        ¦  «        }||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        t          j        |j        ¦  «        k    sJ ‚t9          |‰d¬¦  «         t9          |j        |j        d¬¦  «         t9          |j        |j        d¬¦  «         d S )Nr7   rc  re  r   rJ   rW   rV   r  F)rR   rS   rú   rU   r,  r+  r  )Ún_splits)ÚgroupsrN  )rC  rg  rO  r�   rå   ©rg  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>I  s>   ø€ ð ð ð Ø78�Œˆ|˜G qšLÔ)°Ð2Ñ2Ô2ðð ð rH   T)rC  rP  rX  r�   r‹   rX   rŒ  )r4   r’   r´   r@   rb   rc   r  r7  rÅ   rÒ   ra   rF  ÚintÚrepeatrõ   r—   rÝ   r   Úsplitr   r�   r   ri  r!   r-  rR  Úindexr“   r*   r”   r‘   )rX  rZ  r�   rS   rj  r+  rC  ro   rú   rp   ry   rŒ   ÚX_tiledÚy_tiledrg  ÚsplitsÚkfoldÚ	ridge_regÚpredictionsÚX_gcvrl  Ú
gcv_errorsr”  r•  s                         @@rF   Útest_ridge_gcv_sample_weightsr¢    sm  øø€ ð �5ÒÐ˜k­^Ð;Ð;ÝŒÐ<Ñ=Ô=Ð=Ø(Ð(Ð(€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ØÔ˜GœMÒ)Ð)Ø!×)Ò)¨'¬-Ñ8Ô8ˆØ˜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   ))rÍ   rJ   ©rÍ   rÍ   )rJ   rÍ   )Úautor7   rY  c                 óˆ  — |\  }}t          ||¬¦  «        \  }}| d u}|r | |¦  «        }||k    rdnd}|dk    r|st          ||¦  «        dk    sJ ‚d S |dk    rQ|rOd}	t          j        t          |	¬¦  «        5  t          ||¦  «        }
d d d ¦  «         n# 1 swxY w Y   |
|k    sJ ‚d S t          ||¦  «        |k    sJ ‚d S )N)rR   rS   ÚgramÚcovr7   rƒ  rÎ   )r   r   r’   rÓ   r„  )r¹   r[  rX  ÚnÚprp   rw   r{  Ú
eigen_moder†  Úactual_gcv_modes              rF   Útest_check_gcv_mode_choicer¬  a  sM  € ð �D€A€qÝ Q°1Ð5Ñ5Ô5�D€A€qØ tÐ+€HØð  ØÐ˜QÑÔˆØ š6˜6�� u€Jà�5ÒÐ ÐÝ˜q (Ñ+Ô+¨uÒ4Ð4Ð4Ð4Ð4Ð4Ø	�UÒ	Ð	˜xÐ	àEˆÝŒ\�-¨|Ð<Ñ<Ô<ð 	;ð 	;Ý-¨a°Ñ:Ô:ˆOð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;à *Ò,Ð,Ð,Ð,Ð,Ð,å˜q (Ñ+Ô+¨zÒ9Ð9Ð9Ð9Ð9Ð9s   Á:BÂBÂB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�   rO  c                 ó$   — t          | |¦  «         S r?   )r   )Úxry   s     rF   Úfuncz_test_ridge_loo.<locals>.func•  s   € Ý" 1 aÑ(Ô(Ð(Ð(rH   rN  r‹   rh  rŒ  )rÆ   r—   r   r�   rÄ   ri  Úappendr.   r   r   r   r’   r“   r   r@   r–   Úvstackrg   r°   r*   )r¹   rR   Úretrp   r�   rU  ri  ÚfrO  Ú
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Í   r‘  )rÆ   r   r�   rÄ   r°   r  r”   r—   Útyper‘   r@   r>  r   Ú
set_params)r¹   rp   Úridge_cvrg  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)rP  c                 ó”   —  |dd¬¦  «        \  }}t          | ¦  «        } |                      ||¦  «         t          | d¦  «        rJ ‚d S )Né   rê   ©rR   rU   rR  )r   r�   Úhasattr)rà   Úmake_datasetrp   ry   s       rF   Ú$test_ridge_gcv_cv_results_not_storedrÆ  Ç  sT   € ð ˆ< !°"Ð5Ñ5Ô5�D€A€qÝ�%‰LŒL€EØ	‡I‚Iˆa��O„O€OÝ�u˜mÑ,Ô,Ð,Ð,Ð,Ð,Ð,rH   rg  r  c                 óú   —  |dd¬¦  «        \  }}t          | ¦  «        } |                      d|¬¦  «         |                      ||¦  «         t          | d¦  «        sJ ‚t	          | j        t          ¦  «        sJ ‚d S )NrÂ  rê   rÃ  F)rP  rg  Úbest_score_)r   r¾  r�   rÄ  rÛ   rÈ  rÝ   )rà   rÅ  rg  rp   ry   s        rF   Útest_ridge_best_scorerÉ  Ö  s†   € ð ˆ< !°"Ð5Ñ5Ô5�D€A€qÝ�%‰LŒL€EØ	×Ò 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 )rB  )r   r�   ri  )rï   rð   rp   rC  s     €€rF   rñ   z6test_ridge_cv_individual_penalties.<locals>.<listcomp>ø  s7   ø€ ÐUÐUÐUÀv•g VÐ,Ñ,Ô,×0Ò0°°FÑ;Ô;ÔBÐUÐUÐUrH   T)rC  Úalpha_per_targetrÃ   )rC  rÍ  rP  Úr2)rC  rÍ  rO  )rC  rg  rÍ  z3cv!=None and alpha_per_target=True are incompatiblerÎ   rÂ  )r@   rb   rc   rÒ   rÇ   r–   rg   r   r�   r-   ri  r,   r   r”   r—   rÈ  rR  r  Úisscalarr    r’   rø   rù   )
ro   rR   rS   rú   ry   Úoptimal_alphasr¿  Úmsgrp   rC  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Õ  ,  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Ù  3  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Í   r‘  gš™™™™™é?)r@   ÚuniqueÚy_irisr—   ÚX_irisr   r   r�   r”   r°   rA   r   )r¹   Ú	n_classesrS   rp   ÚregrD   rg  s          rF   Ú_test_ridge_classifiersrà  B  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   rO  ÚaccuracyrÍ   c                 óö   — | €t           n | t           ¦  «        }t          |¦  «        rt          |¦  «        n|}t          ||¬¦  «        }|                     |t
          ¦  «                             |¦  «         d S )N)rO  rg  )rÝ  Úcallabler   r   r�   rÜ  r°   )r¹   rO  rg  rp   Úscoring_Úclfs         rF   Ú"test_ridge_classifier_with_scoringræ  T  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_scoreh  s   € ØˆtrH   éþÿÿÿrJ   rÍ   )Únum)rC  rO  rg  ré  r   )rÝ  r@   Úlogspacer   r   r�   rÜ  rÈ  r’   r“   ri  )r¹   rg  rê  rp   rC  rå  s         rF   Ú$test_ridge_regression_custom_scoringrî  b  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 )Nrh  F)rˆ   r�   rX   )rÆ   r   r�   rÄ   r•   )r¹   rp   rà   r•   Úridge2Úscore2s         rF   Ú_test_tolerancerò  t  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           	      óR  — t          |||¦  «        \  }}t                               |¦  «        }t                               |¦  «        }	|                     ||¬¦  «        }
|                     |	|¬¦  «        }|                     ||	¦  «         |j        }|j        }t          d¬¦  «        5  t          |¦  «                             |
|¦  «        }|j        }|j
        |j
        k    sJ ‚|j        |
j        k    sJ ‚t          t          |t          d¬¦  «        ||t          |¦  «        ¬¦  «         |j        }|j
        |j
        k    sJ ‚|j        |
j        k    sJ ‚t          t          |t          d¬¦  «        ||t          |¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©ÚdeviceT©Úarray_api_dispatchÚcpu©Úxprõ  ©rE  r¤   )r/   rÝ  rF  rÜ  r-  r�   r”   r‘   r   r   r—   rH  r*   r&   r@   r%   )ÚnameÚ	estimatorÚarray_namespaceÚdevice_nameÚ
dtype_namerE  rú  rõ  Ú	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°{ÀJÑOÔO�J€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¥¨5Ð1Ñ1Ô1ØØÝ 
Ñ+Ô+ð		
ñ 	
ô 	
ð 	
ð $Ô.ˆØÔ! \Ô%7Ò7Ð7Ð7Ð7ØÔ! Y¤_Ò4Ð4Ð4Ð4åÝ�L¥R°Ð6Ñ6Ô6ØØÝ 
Ñ+Ô+ð		
ñ 	
ô 	
ð 	
ð!
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Â+C$FÆF Æ#F z(array_namespace, device_name, dtype_nameÚcheckrý  ©r€   )rX  c                 ó>   — | j         j        } ||| |||¬¦  «         d S )N)rÿ  r   )Ú	__class__Ú__name__)rý  r  rþ  rÿ  r   rü  s         rF   Útest_ridge_array_api_compliancer  ©  sA   € ð. ÔÔ'€DØ	€EØØØØØðñ ô ð ð ð rH   c                 ó  — t          |||¦  «        \  }}t          d¬¦  «        \  }}|                     |¦  «        }|                     |¦  «        }	|                      ||	¦  «        }
|
                     |¦  «        }|
j                             ¦   «         }t          d¬¦  «        5  |                     ||¬¦  «        |                     |	|¬¦  «        }}|                      ||¦  «        }|                     |¦  «        }|j	        |j	        cxk    r|j	        k    sn J ‚t          t          |t          d¬¦  «        |¦  «         t          t          |j        t          d¬¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©rU   Trö  rô  rø  rù  )r/   r
   rF  r�   r°   Úclasses_r/  r   r-  r—   r*   r&   r@   r-   )rý  rþ  rÿ  r   rú  rõ  rp   ry   ÚX_npÚy_npÚridge_npÚpred_npÚ
classes_npÚX_xpÚy_xpÚridge_xpÚpred_xps                    rF   Ú*test_ridge_classifier_multilabel_array_apir  Ê  sÍ  € õ & o°{ÀJÑOÔO�J€BˆÝ)°qÐ9Ñ9Ô9�D€A€qØ�8Š8�JÑÔ€DØ�8Š8�JÑÔ€DØ�}Š}˜T 4Ñ(Ô(€HØ×Ò˜tÑ$Ô$€GØÔ"×'Ò'Ñ)Ô)€JÝ	¨4Ð	0Ñ	0Ô	0ð Xð XØ—Z’Z ¨V�ZÑ4Ô4°b·j²jÀÈf°jÑ6UÔ6UˆdˆØ—=’=  tÑ,Ô,ˆØ×"Ò" 4Ñ(Ô(ˆØŒ} ¤Ð8Ð8Ò8Ð8°´Ò8Ð8Ð8Ð8Ð8Ð8Ý� ­B°uÐ=Ñ=Ô=¸wÑGÔGÐGÝ�7 8Ô#4½ÀEÐJÑJÔJÈJÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð Xð Xs   Â&C	E<Å<F ÆF c           	      óT  — t          | ||¦  «        \  }}t          ddd¬¦  «        \  }}|                     |¦  «        }|                     |¦  «        }t          j        g d¢|¬¦  «        }	t          |	d¬¦  «                             ||¦  «        }
|
                     |¦  «        }t          d	¬
¦  «        5  |                     ||¬¦  «        |                     ||¬¦  «        }}|	|                     |	|¬¦  «        fD ]�}t          |d¬¦  «                             ||¦  «        }|                     |¦  «        }|j	        |j	        cxk    r|j	        k    sn J ‚t          t          |t          d¬¦  «        |t          |¦  «        ¬¦  «         Œ‘	 ddd¦  «         dS # 1 swxY w Y   dS )ztCheck that passing an array for alpha works with array API dispatch.

    Non-regression test for issue #34003.
    r  rZ   r   )rú   rS   rU   )rº   r<  rƒ   )rH  r7   rí   Trö  rô  rø  rù  r£   N)r/   r   rF  r@   r-  r   r�   r°   r   r—   r*   r&   r%   )rþ  rÿ  r   rú  rõ  rp   ry   r  r  rC  r  r  r  r  rz   r  r  s                    rF   Ú%test_ridge_per_target_alpha_array_apir  ä  s  € õ & o°{ÀJÑOÔO�J€BˆÝ Q°2ÀAÐFÑFÔF�D€A€qØ�8Š8�JÑÔ€DØ�8Š8�JÑÔ€DÝŒZÐ(Ð(Ð(°
Ð;Ñ;Ô;€Få˜6¨%Ð0Ñ0Ô0×4Ò4°T¸4Ñ@Ô@€HØ×Ò˜tÑ$Ô$€Gå	¨4Ð	0Ñ	0Ô	0ð ð Ø—Z’Z ¨V�ZÑ4Ô4°b·j²jÀÈf°jÑ6UÔ6Uˆdˆð ˜bŸjšj¨¸˜jÑ?Ô?Ð@ð 	ð 	ˆEÝ 5°Ð7Ñ7Ô7×;Ò;¸DÀ$ÑGÔGˆHØ×&Ò& tÑ,Ô,ˆGØ”= G¤MÐ<Ð<Ò<Ð<°Q´WÒ<Ð<Ð<Ð<Ð<Ð<ÝÝ˜¥B¨uÐ5Ñ5Ô5ØÝ# JÑ/Ô/ðñ ô ð ð ð		ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Â6CFÆF!Æ$F!rþ  )Úinclude_numpy_namespacesc                 ó\  — 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 )N©rÿ  rÍ   r€   r   r¤  r7   Úlbfgs©r€   r3  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ú  rw   r  r  Úavailable_solversr€   rà   r†  s	            rF   Ú6test_array_api_error_and_warnings_for_solver_parameterr)    sÛ  € õ ! ¸dÐCÑCÔC�E€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ÃC1Ã%DÃ1C5Ã5DÃ8C5Ã9DÄD	ÄD	ÅFÅE?Å3FÅ?F	ÆFÆF	ÆFÆFÆFÇH!Ç&H	Ç=H!È	H	ÈH!ÈH	ÈH!È!H%È(H%c                 ó|  — 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ú  rw   r  r  rà   r†  s          rF   Ú)test_array_api_numpy_namespace_no_warningr1  2  s  € å  ¸dÐCÑCÔC�E€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   Á<-C#Â)CÃ C#ÃC	ÃC#ÃC	ÃC#Ã#C'Ã*C'Ã>&D1Ä1D5Ä8D5Ú	test_funcc                 óf   —  | d ¦  «        } | |¦  «        }|�|�t          ||d¬¦  «         d S d S d S )Nr  r×  )r,   )r2  r  Ú	ret_denseÚ
ret_sparses       rF   Útest_dense_sparser6  J  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  r  r,   r”   r‘   )rp   ry   rß  Úregas       rF   Útest_class_weightsr?  `  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_weightrE  ƒ  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 )Nr8  r   r9  rƒ   rÐ   r:  )rº   r<  rV   )r<  rC  rV   rX   )rº   r<  rV   rZ   gš™™™™™É¿rJ   rW   )r@   rö   r   r�   r-   r°   )rp   ry   rß  s      rF   Útest_class_weights_cvrG     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   rN  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Í   rL  T©rC  rg  rP  rO  r  )rg  rP  rO  zcv!=None and store_cv_resultsrÎ   )r@   rb   rc   rÒ   r  rã  r   r   r�   rR  r—   r’   rø   rù   )rO  ro   rR   rS   r°  rC  Ún_alphasrä  Úrry   rú   s              rF   Útest_ridgecv_store_cv_resultsrL  ¯  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 )Nr8  r   r9  rƒ   rÐ   r:  rL  TrI  rV   )rV   rW   rV   rW   rV   )rW   rW   rV   rW   rW   )
r@   rö   r—   r  rã  r   r   r�   rR  Ú	transpose)	rO  r°  ry   rR   rC  rJ  rä  rK  rú   s	            rF   Ú)test_ridge_classifier_cv_store_cv_resultsrO  Ï  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   rL  r£  rJ   rB  z`alphas` was mutated in `z
.__init__`)r@   rb   rc   r   rÒ   rQ  rC  r  r�   r-   r-  )rP  ro   rC  rR   rS   ry   rp   Ú	ridge_ests           rF   Útest_ridgecv_alphas_conversionrS  ì  sä   € å
Œ)×
Ò
 Ñ
"Ô
"€CØ€Fà Ñ€IˆzØ•GÐÐØ�IŠI�iÑ Ô ˆˆà�KŠK˜˜1˜iÑ(Ô(ˆØ�	Š	�)˜ZÑ(Ô(€Aà�	 Ð(Ñ(Ô(€IØÔ˜vÐ%Ð%Ð%ØB IÔ$6ÐBÐBÐBñ &Ô%Ð%ð ‡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ƒ   rM  r£  rJ   ©rC  rg  Nz"alphas\[0\] == 0.0, must be > 0.0.rÎ   )
r@   rb   rc   r   rÒ   rQ  r’   rø   rù   r�   )	rg  rP  ro   rC  rR   rS   ry   rp   rR  s	            rF   Útest_ridgecv_alphas_zerorV    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   rL  )©rÂ  rÍ   r×   rƒ   rÍ   rU  r‹   rz   r‘  )r@   rb   rc   rÒ   Úrandr   r   r�   r   r   ri  Úbest_estimator_rz   r,   r”   )ro   rC  rR   rS   ry   rp   rŒ   rg  r9  Ú
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_okG  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_2J  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_2rb  re  rþ   rp   rà   ra  rd  ry   s              @@@@@rF   Ú9test_raises_value_error_if_sample_weights_greater_than_1drk  /  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_weightsrp  V  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 )	Nr8  r   r9  rƒ   rÐ   r:  )rV   rZ   r%  rB  )r@   rö   r   r�   )rp   ry   rà   s      rF   Útest_ridgecv_int_alphasrr  l  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_msgrC  )rV   rW   iœÿÿÿz alphas\[1\] == -1, must be > 0.0)gš™™™™™¹¿r8  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Ò   rQ  r’   rø   r�   )rP  rN   Úerr_typerþ   rR   rS   rp   ry   s           rF   Útest_ridgecv_alphas_validationrv  u  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   rB  N)ro   rÒ   r   rQ  r�   )rP  rR   rS   rp   ry   s        rF   Útest_ridgecv_alphas_scalarrx  ‘  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_iterrz  £  sP   € Ý
�{¨QÐ
/Ñ
/Ô
/€CØ‡G‚G�J�
Ñ#Ô#Ð#ØŒ9Œ?˜1Ô¥Ô!1°!Ô!4Ò4Ð4Ð4Ð4Ð4Ð4rH   z-ignore::sklearn.exceptions.ConvergenceWarningc            	      óš  — 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_iterr€  ©  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   r3  Nrƒ   r   r_   r¤  r8   ró   )r€   rˆ   r3  r‹   g�íµ ÷Æ >rŒ  )r7  r@   rb   rc   re   r—   r   r�   r*   r‘   r”   )r€   r�  rl   r  r3  rp   ry   rŒ   ro   Údense_solverrn  rm  s               rF   Útest_ridge_fit_intercept_sparser„  ¼  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Î   )r7  r   Úformatr’   rø   rù   r�   )r€   r  rp   ry   ÚX_csrrm  rþ   s          rF   Ú%test_ridge_fit_intercept_sparse_errorrˆ  å  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   r2  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�   )r7  r@   rb   rc   re   r—   rŽ   r   r�   r.  r/  Úsimplefilterr'  r*   r‘   r”   r’   rÓ   )r�  rl   r  rp   ry   ro   rŒ   r‡  rN   rn  rm  s              rF   Ú#test_ridge_fit_intercept_sparse_sagrŒ  ð  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                 ó4  — t          d¦  «        }|                     dd¦  «        }g d¢}t          j        ||¦  «        }d}| rd}||z  } ||¦  «        }	d\  }
}t          rdnd	}|d
k    }|dvrO| rMt          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   rŠ  r#  )r;   r¤  zIn Ridge, only 'sag' solverrÎ   )rz   r€   rŒ   r�  r3  rˆ   rU   N)rz   r€   rŒ   r3  r�  rˆ   rU   r   rû  )
r#   rY  r@   rÇ   r1   r’   rø   rù   r   r*   )r�  rŒ   rŽ  r€   ro   rp   Ú
true_coefsry   Útrue_interceptÚ	X_testingrz   rˆ   r¤   r3  Ú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   ÂB1Â1B5Â8B5)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#  rX  rJ   éô  )rz   r€   r½   rˆ   r3  rŠ  gü©ñÒMb@?rû  )r@   rb   rc   rÒ   rF  r;  ÚfinfoÚ
resolutionr   r�   r”   rH  r°   r*   )r€   ro   rz   r3  rR   rS   ÚX_64Úy_64ÚX_32Úy_32rˆ   Úridge_32Úcoef_32Úridge_64Úcoef_64s                  rF   Útest_dtype_matchr¢  M  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Ò   rF  r;  r   r�   r”   rH  r°   r+   )ro   rz   rR   rS   Ún_targetrš  r›  rœ  r�  rž  rŸ  r   r¡  s                rF   Útest_dtype_match_choleskyr¥  r  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#  Úseedc                 óü  — 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 )NrX  rº   rƒ   r#  r8   rX   rh  r—  r†   F)	rz   r€   rU   rŒ   r3  r½   rˆ   Úreturn_n_iterr�  r£   )r@   rb   rc   rÒ   rÇ   rŽ   r;  r>  r   rF  rH  r*   )r€   r¦  rU   rR   rS   rp   r™   ry   rz   r3  Úresultsr¤   Úcurrent_dtypes                rF   Ú%test_ridge_regression_dtype_stabilityr«  �  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ê   r  rJ   r;   r  )r   r@   Úasfortranarrayr   r�   )rp   ry   s     rF   Útest_ridge_sag_with_X_fortranr®  ´  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   r3  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   r3  r�   rˆ   r�  rD  N)r@   rb   rc   rÒ   re   r—   rf   r   r²  r�   r”   r*   )
r�   rz   ro   rp   r™   rž   ry   r©  r3  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)r3  r€   r�  )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ê   r‚  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   r3  r  )Nr¢   )r   r   r�   r}  )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   Frs  i ¡ )r3  rˆ   r½   rŠ  r   rD  N)r   r@   Úexpand_dimsr-  r   r   r*   )rz   rp   ry   ÚconfigÚ
coef_lbfgsrû   s         rF   Útest_lbfgs_solver_consistencyrÈ  =	  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ˆ   r3  r½   zlbfgs solver did not convergerÎ   N)r@   rö   r   r’   rÓ   r   r�   )rp   ry   r�   s      rF   Útest_lbfgs_solver_errorrÊ  N	  så   € å
Œ�1�b�'˜A˜q˜6Ð"Ñ#Ô#€AÝ
Œ�%˜�ÑÔ€AåØØØØØØðñ ô €Eõ 
ŒÕ(Ð0OÐ	PÑ	PÔ	Pð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á!BÂB	ÂB	rB  c                 óø  — |� |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_weight_equivalence alone.
    Nr7   )r9   r<   zunsupported configurationrê   rP   r\  rJ   rƒ   r#  ró   )r�   rz   r€   r3  rU   rˆ   r‹   r�  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   rY  rŽ   r   r�   r”   r/  r‘   Ú	ones_liker*   re   r—   r¾  Úpir±   Útoarrayr¥   )r�   r¹   rB  r€   rl   ro   rR   rS   rp   ry   rN   rß  r™   rž   rŒ   rD  ÚX2Úy2Úsample_weight_1Úsample_weight_2rC  s                        rF   Ú$test_ridge_sample_weight_consistencyrÔ  _	  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   )rw  rZ   )rZ   rw  Úno_swÚwith_swÚno_interceptÚwith_interceptrú   c                 óD  — |\  }}t          |||d¬¦  «        \  }}|r*t          j        |j        d         f¬¦  «        }	d|	ddd…<   nd}	t          j        ddd	¦  «        }
t          | |
d
|d¬¦  «        }|                     |||	¬¦  «         t          j        g |j        ¢t          |
¦  «        ‘R ¬¦  «        }t          ¦   «         }t          |
¦  «        D ]³\  }}t          |                     ||¦  «        ¦  «        D ]Š\  }\  }}t          ||d¬¦  «        }|r+|                     ||         ||         |	|         ¬¦  «         n"|                     ||         ||         ¦  «         |                     ||         ¦  «        ||d|f<   Œ‹Œ´t          |j        |d¬¦  «         dS )ar  Check that the predictions stored in `cv_results_` are on the original scale.

    The GCV approach works on scaled data: centered by an offset and scaled by the
    square root of the sample weights. Thus, prior to computing scores, the
    predictions need to be scaled back to the original scale. These predictions are
    the ones stored in `cv_results_` in `RidgeCV`.

    In this test, we check that the internal predictions stored in `cv_results_` are
    equivalent to a naive LOO-CV grid search with a `Ridge` estimator.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/13998
    r   ©rR   rS   rú   rU   )r—   r¡   NrJ   rÌ  r  rÍ   rN  T)rX  rC  rO  r�   rP  r‹   r7   )rz   r�   r€   .r�  rŒ  )r   r@   r–   r—   rí  r   r�   Úemptyr  r    Ú	enumerater˜  r   r°   r*   rR  )rX  r[  r�  r�   rú   rR   rS   rp   ry   rŒ   rC  r¿  rŸ  rg  Ú	alpha_idxrz   ÚidxÚ	train_idxÚtest_idxrà   s                       rF   Ú!test_ridge_cv_results_predictionsrá  Â	  sø  € ð. $Ñ€IˆzÝØ¨
¸iÐVWðñ ô �D€A€qð ð Ýœ q¤w¨q¤z mÐ4Ñ4Ô4ˆØ ˆ�c�c˜�cÑÐàˆõ Œ[˜˜Q Ñ"Ô"€Fõ ØØØ(Ø#Øðñ ô €Hð ‡L‚L��A ]€LÑ3Ô3Ð3õ ”(Ð!8 1¤7Ð!8­C°©K¬KÐ!8Ð!8Ð9Ñ9Ô9€KÝ	‰Œ€BÝ% fÑ-Ô-ð 	Jð 	JÑˆ	�5Ý*3°B·H²H¸QÀ±N´NÑ*CÔ*Cð 	Jð 	JÑ&ˆCÑ&�)˜XÝ °]È5ÐQÑQÔQˆEØ!ð 6Ø—	’	Ø�i”L ! I¤,¸mÈIÔ>Vð ñ ô ð ð ð —	’	˜!˜Iœ,¨¨)¬Ñ5Ô5Ð5Ø/4¯}ª}¸Q¸x¼[Ñ/IÔ/IˆK˜˜S )Ð+Ñ,Ð,ð	Jõ �HÔ(¨+¸DÐAÑAÔAÐAÐAÐArH   c                 óº  ‡‡	‡
‡— |\  }}t          ||d|¬¦  «        \  ŠŠt          j        |¦  «        Š
t          | dd¬¦  «        }|                     ‰‰‰
¬¦  «         t          ¦   «         }t          |j        ¬¦  «        Š	t          j        ˆˆ	ˆ
ˆfd„| 	                    ‰¦  «        D ¦   «         ¦  «        }t          |j        t          ‰|¦  «         ¦  «         d	S )
zÏCheck that `RidgeCV` works properly with multioutput and sample_weight
    when `scoring != None`.

    We check the error reported by the RidgeCV is close to a naive LOO-CV using a
    Ridge estimator.
    rJ   rÚ  rN  T)rX  rO  rP  r‹   rÃ   c                 óœ   •— g | ]H\  }}‰                      ‰|         ‰|         ‰|         ¬ ¦  «                             ‰|         ¦  «        ‘ŒIS )r‹   ©r�   r°   )rï   ÚtrainÚtestrp   rà   rŒ   ry   s      €€€€rF   rñ   z;test_ridge_cv_multioutput_sample_weight.<locals>.<listcomp>
  se   ø€ ð 	
ð 	
ð 	
ñ ��tð �IŠI�a˜”h  %¤¸ÀeÔ8LˆIÑMÔM×UÒUØ�$”ñô ð	
ð 	
ð 	
rH   N)r   r@   r–   r   r�   r    r   ri  Úsqueezer˜  r*   rÈ  r   )rX  r[  rl   rR   rS   r¿  rg  Ú
y_pred_loorp   rà   rŒ   ry   s           @@@@rF   Ú'test_ridge_cv_multioutput_sample_weightré  
  s  øøøø€ ð $Ñ€IˆzÝØØØØ'ð	ñ ô �D€A€qõ ”G˜IÑ&Ô&€MåØÐ#;Èdðñ ô €Hð ‡L‚L��A ]€LÑ3Ô3Ð3å	‰Œ€BÝ˜œÐ(Ñ(Ô(€EÝ”ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð  "Ÿxšx¨™{œ{ð		
ñ 	
ô 	
ñô €Jõ �HÔ(Õ+=¸aÀÑ+LÔ+LÐ*LÑMÔMÐMÐMÐMrH   c                 ó�  ‡‡‡	‡
— | \  }}t          ||dd¬¦  «        \  ŠŠ
d„ Šˆfd„}t          |¬¦  «        }|                     ‰‰
¦  «         t          ¦   «         }t	          |j        ¬¦  «        Š	t          j        ˆˆ	ˆ
fd„|                     ‰¦  «        D ¦   «         ¦  «        }t          |j
         ‰‰
|¦  «         ¦  «         d	S )
zECheck that `RidgeCV` works properly with a custom multioutput scorer.rJ   r   rÚ  c                 óŒ   — | |z
  dz  }t          j        |d¬¦  «        }|j        dk    rt          j        |ddg¬¦  «         S | S )NrJ   r   r‰   rV   )r  )r@   rA   Úndimr  )Úy_truerD   ÚerrorsÚmean_errorss       rF   Úcustom_errorz=test_ridge_cv_custom_multioutput_scorer.<locals>.custom_error0
  sX   € Ø˜6‘/ aÑ'ˆÝ”g˜f¨1Ð-Ñ-Ô-ˆØÔ˜qÒ Ð å”J˜{°Q¸°FÐ;Ñ;Ô;Ð;Ð;ð ˆ|ÐrH   c                 óD   •—  ‰||                       |¦  «        ¦  «         S )zGMultioutput score that give twice more importance to the second target.)r°   )rý  rp   ry   rð  s      €rF   Úcustom_multioutput_scorerzJtest_ridge_cv_custom_multioutput_scorer.<locals>.custom_multioutput_scorer:
  s&   ø€ à�˜Q 	× 1Ò 1°!Ñ 4Ô 4Ñ5Ô5Ð5Ð5rH   )rO  rÃ   c                 óŒ   •— g | ]@\  }}‰                      ‰|         ‰|         ¦  «                             ‰|         ¦  «        ‘ŒAS r�   rä  )rï   rå  ræ  rp   rà   ry   s      €€€rF   rñ   z;test_ridge_cv_custom_multioutput_scorer.<locals>.<listcomp>D
  sE   ø€ ÐWÐWÐW¹K¸EÀ4ˆ�Š�1�U”8˜Q˜uœXÑ	&Ô	&×	.Ò	.¨q°¬wÑ	7Ô	7ÐWÐWÐWrH   N)r   r   r�   r    r   ri  r@   rç  r˜  r*   rÈ  )r[  rR   rS   rò  r¿  rg  rè  rp   rð  rà   ry   s          @@@@rF   Ú'test_ridge_cv_custom_multioutput_scorerrô  (
  s   øøøø€ ð $Ñ€IˆzÝØ¨
¸aÈaðñ ô �D€A€qðð ð ð6ð 6ð 6ð 6ð 6õ Ð8Ð9Ñ9Ô9€HØ‡L‚L��AÑÔÐå	‰Œ€BÝ˜œÐ(Ñ(Ô(€EÝ”ØWÐWÐWÐWÐWÐWÈ2Ï8Ê8ÐTUÉ;Ì;ÐWÑWÔWñô €Jõ �HÔ(¨<¨<¸¸:Ñ+FÔ+FÐ*FÑGÔGÐGÐGÐGrH   Úmetaestimator)Úenable_metadata_routingc                 ó>   —  | ¦   «                               ¦   «          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ù  N
  s"   € ð €M�O„O×(Ò(Ñ*Ô*Ð*Ð*Ð*rH   zmetaestimator, make_datasetc                 ó°   —  |ddd¬¦  «        \  }}t          | ¦  «        } |                      ||t          j        |j        d         ¦  «        ¬¦  «         dS )zÕTest that `set_score_request` is set within `RidgeCV.fit()` and
    `RidgeClassifierCV.fit()` when using the default scoring and no
    UnsetMetadataPassedError is raised. Regression test for the fix in PR #29634.r%  rÍ   rê   r‚  r   r‹   N)r   r�   r@   r–   r—   )rõ  rÅ  rp   ry   s       rF   Ú+test_set_score_request_with_default_scoringrû  W
  s\   € ð ˆ< #°!À"ÐEÑEÔE�D€A€qÝ˜-Ñ(Ô(€MØ×Ò�a˜­"¬'°!´'¸!´*Ñ*=Ô*=ÐÑ>Ô>Ð>Ð>Ð>rH   )r%  r%  r¡   rZ   rV   r&  r'  r'  TFFNr?   )¾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._test_common.instance_generatorr)   Úsklearn.utils._testingr*   r+   r,   r-   r.   Úsklearn.utils.estimator_checksr/   r0   Úsklearn.utils.fixesr1   r2   r3   r4   r5   r6   ÚSOLVERSr¾   r¿   Úload_diabetesÚdiabetesrB  rð   rÆ   rÄ   rõ   r—   Úindrb   rc   ro   r,  Ú	load_irisrA  rÝ  rÜ  rG   rK   Úfixturer   ÚmarkÚparametrizerŸ   r©   r«   r²   r¶   r¸   rÁ   rË   rÕ   rá   rã   rè   rÿ   r  r  r$  r7  rJ  rW  r;  r>  r-  rm  rr  r~  r‡  r‰  r�  r¢  r¬  r»  rÀ  rÆ  rÉ  rÒ  rÕ  rÙ  rà  ræ  rî  rò  r
  r  r  r  r)  Úsortedr1  r6  r?  rE  rG  rL  rO  rS  rV  r]  rk  rp  rr  rù   Ú	TypeErrorrv  rx  rz  r0  r€  r„  rˆ  rŒ  r–   rö   r•  r¢  r¥  r}  r«  r®  r±  r´  r·  r¹  rÃ  rÈ  rÊ  rÔ  rá  ré  rô  rù  rû  r�   rH   rF   ú<module>r     sè  ðØ €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð SÐ RÐ RÐ RÐ RÐ Rðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 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ñô ð+Rð +Rñ	ô ñ
ô 
ð+Rð\5ð 5ð 5ð, „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFØ„×Ò˜ W¨hÐ$7¸fÀfÐ=MÐÑNÔNØ„×Ò˜¨4°¨-Ñ8Ô8Ø„×ÒØðð ð ñô ð)Kð )Kñô ñ 9Ô8ñ OÔNñ GÔFñ <Ô;ñ 7Ô6ð)KðX
Jð 
Jð 
Jð „×Ò˜ 5¨$ -°lÀKÐ5PÐÑQÔQØ„×Ò˜Ð#KÐ#KÐ#KÑLÔLØ„×Ò˜¨4°¨-Ñ8Ô8Ø„×Ò˜ Y°	Ð$:ÀÈÐ@PÐÑQÔQØ„×Ò˜¨¬¨°~Ñ(EÑFÔFðFð Fñ GÔFñ RÔQñ 9Ô8ñ MÔLñ RÔQð
Fð2 „×Ò˜ 5¨$ -°lÀKÐ5PÐÑQÔQØ„×Ò˜ i [Ñ1Ô1Ø„×Ò˜¨4°¨-Ñ8Ô8Ø„×ÒØØ$Ð$Ð$Ø"Ð"Ð"ð ñ ô ð
 „×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFð*Ið *Iñ GÔFñ <Ô;ñô ñ 9Ô8ñ 2Ô1ñ RÔQð*IðZ „×Ò˜ 5¨$ -°lÀKÐ5PÐÑQÔQØ„×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜¨4°¨-Ñ8Ô8Ø„×ÒØØ$Ð$Ð$Ø"Ð"Ð"ð ñ ô ð
 „×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFðIð Iñ GÔFñ <Ô;ñô ñ 9Ô8ñ 7Ô6ñ RÔQðIð<Kð Kð Kð@ „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜¨¬¨°~Ñ(EÑFÔFØ„×Ò˜¨¨2 wÑ/Ô/Ø„×ÒØ#ðð ð ñô ð=Gð =Gñô ñ 0Ô/ñ GÔFñ 7Ô6ð=Gð@ „×ÒÐ+¨d¨V°nÑ-DÑEÔEØ„×ÒØØÐÐØ"Ð"Ð"ð ñ ô ð
 „×Ò˜Ð%=Ð%=Ð%=Ñ>Ô>ð:ð :ñ ?Ô>ñô ñ 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ð ð ð ð EIð$
ð $
ð $
ð $
ðN „×ÒØ.Ø-Ð-Ñ/Ô/ñô ð „×ÒØØ%Ð'AÐBØ ð ñ ô ð
 „×ÒØàˆ�UÐÑÔØˆ˜uÐ%Ñ%Ô%Øˆ˜ÐÑÔØˆ˜Ð!Ñ!Ô!ØÐÑÔðð 	!ð ñ 
ô 
ð
ð 
ñ
ô 
ñô ñ	ô ð(
ð „×ÒØ�/�/¨Ð/Ñ/Ô/Ð1BÐ1BÑ1DÔ1DÐEñô ð „×ÒØ.Ø-Ð-Ñ/Ô/ñô ðXð Xñ	ô ñô ðXð& „×ÒØ.Ø-Ð-Ñ/Ô/ñô ðð ñ	ô ðð: „×ÒØÐ'Ð'ÀÐ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ð „×ÒÐKÑLÔLð#ð #ñ MÔLð#ð$ „×Ò˜Ð#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ñô ð6<ð 6<ñô ñ CÔBñ AÔ@ñ <Ô;ð6<ðr „×ÒØÐ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ð\:ð~ „×Ò˜ X¨xÐ$8¸vÀvÐ>NÐÑOÔOØ„×ÒÐ-°°t¨}À7ÈIÐBVÐÑWÔWØ„×ÒØ�e˜T�]¨Ð9IÐ(Jð ñ ô ð „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜ q¨! fÑ-Ô-ð8Bð 8Bñ .Ô-ñ 7Ô6ñô ñ XÔWñ PÔOð8Bðv „×Ò˜ e¨WÐ%5Ñ6Ô6Ø„×Ò˜ X¨xÐ$8¸vÀvÐ>NÐÑOÔOðNð Nñ PÔOñ 7Ô6ðNðD „×Ò˜ X¨xÐ$8¸vÀvÐ>NÐÑOÔOðHð Hñ PÔOðHðJ „×Ò˜¨7Ð4EÐ*FÑGÔGØ€¨Ð-Ñ-Ô-ð+ð +ñ .Ô-ñ HÔGð+ð „×ÒØ!à	ˆ‰Œ�OÐ$Ø	Ð	Ñ	Ô	Ð1Ð2ðñô ð €¨Ð-Ñ-Ô-ð?ð ?ñ .Ô-ñô ð?ð ?ð ?rH   