Ë
    8Ò^j<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
j˜                  «       ZMeMjœ                  eMjž                  cZPZQ ej¤                  ePj¦                  d    «      ZTejª                  j­                  d «      ZWeWj±                  eT«       eTdd ZTePeT   eQeT   cZPZQ e
j²                  «       ZZeZjœ                  eZjž                  cZ[Z\d„ Z]d„ Z^ ej¾                  ddg¬«      d„ «       Z`ejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d!„ «       «       ZcejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d"„ «       «       ZdejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d#„ «       «       ZeejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d$„ «       «       ZfejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d%„ «       «       ZgejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      d&„ «       «       ZhejÂ                  jÅ                  deI«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  d'dgeFz   «      ejÂ                  jÅ                  d(d)d*g«      d+„ «       «       «       «       Zid,„ Zjd-„ Zkd.„ Zld/„ Zmd0„ Znd1„ ZoejÂ                  jÅ                  d2g d3¢«      ejÂ                  jÅ                  d4eF«      d5„ «       «       ZpejÂ                  jÅ                  d6g d7¢«      ejÂ                  jÅ                  d8dd g«      ejÂ                  jÅ                  d4eF«      d9„ «       «       «       ZqejÂ                  jÅ                  d6g d7¢«      ejÂ                  jÅ                  d8dd g«      ejÂ                  jÅ                  d4eF«      d:„ «       «       «       Zr	 	 	 	 	 	 	 	 	 	 	 	 d×d<„ZsejÂ                  jÅ                  d=d>„  eg d?¢dgeFz   «      D «       «      ejÂ                  jÅ                  d@g dA¢«      dB„ «       «       ZtdC„ ZuejÂ                  jÅ                  dDdEdFg«      ejÂ                  jÅ                  dGejì                  ejî                  g«      ejÂ                  jÅ                  dHejð                  geFz   «      ejÂ                  jÅ                  dIdJdKgdLdg¬M«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  dNg dO¢«      dP„ «       «       «       «       «       «       ZydQ„ ZzejÂ                  jÅ                  d(dRdSgdTdUg¬M«      ejÂ                  jÅ                  dg dV¢«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  dIdWdXgdLdg¬M«      ejÂ                  jÅ                  dHejð                  geFz   «      dY„ «       «       «       «       «       Z{ejÂ                  jÅ                  d(dRdSgdTdUg¬M«      ejÂ                  jÅ                  dDdZg«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  dIg d[¢g d\¢¬M«      ejÂ                  jÅ                  dGejì                  ejî                  g«      ejÂ                  jÅ                  dHejð                  geFz   «      d]„ «       «       «       «       «       «       Z|ejÂ                  jÅ                  d(dRdSgdTdUg¬M«      ejÂ                  jÅ                  dDdEdFg«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  dIg d[¢g d\¢¬M«      ejÂ                  jÅ                  dGejì                  ejî                  g«      ejÂ                  jÅ                  dHejð                  geFz   «      d^„ «       «       «       «       «       «       Z}d_„ Z~ejÂ                  jÅ                  dDdEdFg«      ejÂ                  jÅ                  dHejð                  geFz   «      ejÂ                  jÅ                  d`dadbg«      ejÂ                  jÅ                  dcg dd¢«      de„ «       «       «       «       ZejÂ                  jÅ                  d'dgeFz   «      ejÂ                  jÅ                  dIg df¢g d\¢¬M«      ejÂ                  jÅ                  dDg dg¢«      dh„ «       «       «       Z€di„ Z�dj„ Z‚ejÂ                  jÅ                  dk ed ¬l«      ef ed ¬l«      efg«      dm„ «       ZƒejÂ                  jÅ                  dk e«       ef e«       efg«      ejÂ                  jÅ                  dnddog«      dp„ «       «       Z„dq„ Z…dr„ Z†ds„ Z‡dt„ ZˆejÂ                  jÅ                  duddve]g«      ejÂ                  jÅ                  dnd e*dw«      g«      ejÂ                  jÅ                  d'dgeFz   «      dx„ «       «       «       Z‰ejÂ                  jÅ                  dnd e*dw«      g«      ejÂ                  jÅ                  d'dgeFz   «      dy„ «       «       ZŠdz„ Z‹	 dØd{„ZŒejÂ                  jÅ                  d| e5«       «      ejÂ                  jÅ                  d}eAeŒge8¬M«      ejÂ                  jÅ                  d~ edE¬«       edE¬«       edE¬€«       edF¬€«       e«       ge8¬M«      d�„ «       «       «       Z�ejÂ                  jÅ                  d~ edE¬«       e«       g«      ejÂ                  jÅ                  d| e5«       «      d‚„ «       «       ZŽejÂ                  jÅ                  d| e5«       «      dƒ„ «       Z�ejÂ                  jÅ                  d„ e6d ¬…«      «      d†„ «       Z�ejÂ                  jÅ                  d„ e‘e2«      «      d‡„ «       Z’ejÂ                  jÅ                  dˆe�e‚e†e‡eˆe‹f«      ejÂ                  jÅ                  d4eF«      d‰„ «       «       Z“dŠ„ Z”ejÂ                  jÅ                  d‹eef«      dŒ„ «       Z•d�„ Z–ejÂ                  jÅ                  duddŽe^g«      d�„ «       Z—ejÂ                  jÅ                  duddve]g«      d�„ «       Z˜ejÂ                  jÅ                  d‘eeg«      d’„ «       Z™ejÂ                  jÅ                  dnddog«      ejÂ                  jÅ                  d‘eeg«      d“„ «       «       Zšd”„ Z›d•„ ZœejÂ                  jÅ                  d–d—dogdod—gg«      ejÂ                  jÅ                  d'eDeEz   eFz   eGz   eHz   «      d˜„ «       «       Z�d™„ ZžejÂ                  jÅ                  d‘eeg«      ejÂ                  jÅ                  dšd›dœieŸd�fd›džieŸdŸfd›d ie d¡fg«      d¢„ «       «       Z¡ejÂ                  jÅ                  d‘eeg«      d£„ «       Z¢d¤„ Z£ejÂ                  �jI                  d¥«      d¦„ «       Z¥ejÂ                  jÅ                  dg d§¢«      ejÂ                  jÅ                  d¨dd g«      ejÂ                  jÅ                  d4eF«      d©„ «       «       «       Z¦ejÂ                  jÅ                  dg dª¢«      ejÂ                  jÅ                  d4eF«      d«„ «       «       Z§ejÂ                  jÅ                  d¨dd g«      ejÂ                  jÅ                  d4eF«      d¬„ «       «       Z¨ejÂ                  jÅ                  d­d dg«      ejÂ                  jÅ                  d®d e�jR                  d¯«      g«      ejÂ                  jÅ                  d°e�jT                  geFz   «      ejÂ                  jÅ                  dg d±¢«      d²„ «       «       «       «       Z«ejÂ                  jÅ                  dg d³¢«      d´„ «       Z¬dµ„ Z­ejÂ                  jÅ                  dg d¶¢«      ejÂ                  jÅ                  d· e®d;«      «      d¸„ «       «       Z¯d¹„ Z°ejÂ                  jÅ                  dºei fedndifedndoifg«      d»„ «       Z±ejÂ                  jÅ                  dd¼d½g«      ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  d(g d¾¢«      d¿„ «       «       «       Z²ejÂ                  jÅ                  ddd g«      ejÂ                  jÅ                  d(g d¾¢«      dÀ„ «       «       Z³ejÂ                  jÅ                  dg dÁ¢«      dÂ„ «       Z´ejÂ                  jÅ                  d(g d¾¢«      dÃ„ «       ZµejÂ                  jÅ                  d(g d¾¢«      dÄ„ «       Z¶dÅ„ Z·ejÂ                  jÅ                  dd dg«      ejÂ                  jÅ                  d'dgeFz   «      ejÂ                  jÅ                  dÆdLdg«      ejÂ                  jÅ                  deId½gz   «      dÇ„ «       «       «       «       Z¸ejÂ                  jÅ                  dIdÈdÉgdLdg¬M«      ejÂ                  jÅ                  d¨d dgdÊdËg¬M«      ejÂ                  jÅ                  dd dgdÌdÍg¬M«      ejÂ                  jÅ                  dDdEdFg«      ejÂ                  jÅ                  dÎd;d—g«      dÏ„ «       «       «       «       «       Z¹ejÂ                  jÅ                  dDdEdFg«      ejÂ                  jÅ                  dIdÈdÉgdLdg¬M«      dÐ„ «       «       ZºejÂ                  jÅ                  dIdÈdÉgdLdg¬M«      dÑ„ «       Z»ejÂ                  jÅ                  dÒeeg«       e	d¬Ó«      dÔ„ «       «       Z¼ejÂ                  jÅ                  dÕ e«       ef e«       efg«       e	d¬Ó«      dÖ„ «       «       Z½y)Ùé    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      úp/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_ridge.pyÚ_accuracy_callablerG   X   s   € Ü�7‰7�6˜VÑ#Ó$Ð$ó    c                 ó.   — | |z
  dz  j                  «       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                  j	                  | «      }t        ||||¬«      }d|dd…df<   t        j                  |«      \  }}}	t        j                  |dkD  «      sJ ‚|dd…d|…f   |dd…|d…f   }}
|	d|…dd…f   |	|d…dd…f   }}|j                   dk(  r8|j                  d	d
|¬«      }||z  }|||j                  ||z
  ¬«      dz  z  z  }nI|j                  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                  j                  |«      t        j                  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€CÜØ¨
À1ÐSVô	€Að €A‚aˆ€e�HÜ�z‰z˜!‹}�H€A€qˆ"Ü�6‰6�!�d‘(ÔÐÐØŠq�"�1�"ˆu‰X�qš˜A™B˜‘xˆ€BØ���’A�‰Y˜˜1™2šq˜5™	ˆ€Cà‡}�}˜Òà—;‘; 3¨R°j�;ÓAˆØ�‰LˆØ	ˆR�#—*‘* )¨jÑ"8�*Ó9¸QÑ>Ñ>Ñ>‰à�K‰K˜C b¨yˆKÓ9ˆà—5‘5œ2Ÿ7™7 1 q¡5›>Ñ)¨B¯D©DÑ0°1Ñ4ˆð €EØ”—‘˜JÓ'Ñ'€AØ€A€f�IÜ—‘˜aŸc™c A™g¨™k¨1¯3©3°©7Ó3€Jð ��H‘Ñ€EØ�!�j‘.Ñ €GÜ�9‰9�>‰>˜%Ó ¤2§9¡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
   }n*||j                  d¬«      z
  }||j                  «       z
  }d}|j                  ||«       |d	d
 }|j                  t        j                  |«      k(  sJ ‚t        |j                  |«       |j                  ||«      t        j                  |«      k(  sJ ‚t	        di |	¤Žj                  ||t        j                  |j                  d   «      ¬«      }|j                  t        j                  |«      k(  sJ ‚t        |j                  |«       |j                  ||«      t        j                  |«      k(  sJ ‚|j                  | k(  sJ ‚y	)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Ø'ô€Fð ”2—7‘7˜1“:‰~€HØ�A˜‘H‘€IØ”2—6‘6˜) Q™,Ó'¬"¯&©&°¸1±Ó*=Ñ=Ñ=€Hä‰O�F‰O€EØ	Š!ˆSˆbˆSˆ&‰	€AÙØ˜‘H‰	à�—‘˜A�“ÑˆØ�—‘“‰LˆØˆ	Ø	‡I�Iˆa�„OØ��ˆ9€Dà×ÑœvŸ}™}¨YÓ7Ò7Ð7Ð7Ü�E—K‘K Ô&Ø�;‰;�q˜!Ó¤§¡¨hÓ 7Ò7Ð7Ð7ô ‰O�F‰O×Ñ  1´B·G±G¸A¿G¹GÀA¹JÓ4GÐÓH€EØ×ÑœvŸ}™}¨YÓ7Ò7Ð7Ð7Ü�E—K‘K Ô&Ø�;‰;�q˜!Ó¤§¡¨hÓ 7Ò7Ð7Ð7à�=‰=˜FÒ"Ð"Ñ"rH   c                 óF  — |\  }}}}|j                   \  }}	d}
t        |
dz  || | dv rdnd|¬«      }|dd…dd…f   }d	t        j                  ||fd
¬«      z  }t        j                  j                  |«      t        ||	d
z
  «      k  sJ ‚|r|d   }n*||j                  d¬«      z
  }||j                  «       z
  }d}|j                  ||«       |dd }|j                  t        j                  |«      k(  sJ ‚t        |j                  t        j                  ||f   d¬«       y)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™GÑ€IˆzØ€EäØ�a‰iØ#ØØ˜Ñ.‰E°EØ'ô€Eð 	
Š!ˆSˆbˆSˆ&‰	€AØŒb�n‰n˜a ˜V¨!Ô,Ñ,€AÜ�9‰9× Ñ  Ó#¤s¨9°jÀ1±nÓ'EÒEÐEÐEÙØ˜‘H‰	à�—‘˜A�“ÑˆØ�—‘“‰LˆØˆ	Ø	‡I�Iˆa�„OØ��ˆ9€Dà×ÑœvŸ}™}¨YÓ7Ò7Ð7Ð7ô �E—K‘K¤§¡ t¨T zÑ!2¸Ö>rH   c                 ó>  — |\  }}}}|j                   \  }}	d}
t        d|
z  || | dv rdnd|¬«      }|dd…dd…f   }t        j                  ||fd	¬
«      }t        j                  j                  |«      t        ||	«      k  sJ ‚t        j                  ||f   }|r|d   }n*||j                  d	¬
«      z
  }||j                  «       z
  }d	}|j                  ||«       |dd }|j                  t        j                  |«      k(  sJ ‚t        |j                  |d¬«       y)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«   ý   s!  € ð &�M€A€qˆ!ˆTØŸG™GÑ€IˆzØ€EäØ�%‰iØ#ØØ˜Ñ.‰E°EØ'ô€Eð 	
Š!ˆSˆbˆSˆ&‰	€AÜ
�‰˜˜1�v AÔ&€AÜ�9‰9× Ñ  Ó#¤s¨9°jÓ'AÒAÐAÐAÜ
�‰ˆa�ˆd‰€AÙØ˜‘H‰	à�—‘˜A�“ÑˆØ�—‘“‰LˆØˆ	Ø	‡I�Iˆa�„OØ��ˆ9€Dà×ÑœvŸ}™}¨YÓ7Ò7Ð7Ð7ô �E—K‘K ¨DÖ1rH   c                 óB  — |\  }}}}|j                   \  }}	d}
t        |
|| | dv rdnd|¬«      }t        d
i |¤Ž}|r|dd…dd…f   }|d   }|dd }nd}|j                  ||«       ||	kD  s|s;|j                  t        j                  |«      k(  sJ ‚t        |j                  |«       yt        |j                  |«      |«       t        ||z  |z   |«       t        j                  j                  t        j                  |j                  |j                  f   «      t        j                  j                  t        j                  ||f   «      kD  sJ ‚t        j                  d¬	«       |j                  t        j                  |«      k(  sJ ‚t        |j                  |«       y)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™GÑ€IˆzØ€EÜØØ#ØØ˜Ñ.‰E°EØ'ô€Fô ‰O�F‰O€Eñ ØŠa��"�ˆf‰IˆØ˜‘Hˆ	Ø�C�Rˆy‰àˆ	Ø	‡I�Iˆa�„Oð
 �:Ò¡]Ø×Ñ¤6§=¡=°Ó#;Ò;Ð;Ð;Ü˜Ÿ™ TÕ*ô 	˜Ÿ™ aÓ(¨!Ô,Ü˜˜D™ 9Ñ,¨aÔ0ä�y‰y�~‰~œbŸe™e E×$4Ñ$4°e·k±kÐ$AÑBÓCÄbÇiÁiÇnÁnÜ�E‰E�)˜T�/Ñ"óG
ò 
ð 	
ð 
ô 	�‰ÐOÕ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                  j                  |«      t        ||	«      k  sJ ‚|j                  ||«       ||	kD  s|sg|j                  t        j                  |«      k(  sJ ‚| dk(  rt        j                  «        t        |j                  t        j                  ||f   «       yt        |j                  |«      |«       t        j                  j!                  t        j                  |j                  |j                  f   «      t        j                  j!                  t        j                  |||f   «      kD  sJ ‚t        j"                  d¬«       |j                  t        j                  |«      k(  sJ ‚t        |j                  t        j                  ||f   «       y)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™GÑ€IˆzØ€EäØØ#ØØ˜Ñ.‰E°EØ'ô€Eñ ØŠa��"�ˆf‰IˆØ˜‘Hˆ	Ø�C�Rˆy‰àˆ	ØŒb�n‰n˜a ˜V¨!Ô,Ñ,€AÜ�9‰9× Ñ  Ó#¤s¨9°jÓ'AÒAÐAÐAØ	‡I�Iˆa�„Oà�:Ò¡]Ø×Ñ¤6§=¡=°Ó#;Ò;Ð;Ð;Ø�ZÒä�K‰KŒMÜ˜Ÿ™¤R§U¡U¨4°¨:Ñ%6Õ7ô
 	˜Ÿ™ aÓ(¨!Ô,ä�y‰y�~‰~œbŸe™e E×$4Ñ$4°e·k±kÐ$AÑBÓCÄbÇiÁiÇnÁnÜ�E‰E�)˜T 4Ð'Ñ(óG
ò 
ð 	
ð 
ô 	�‰ÐOÕPØ×Ñ¤6§=¡=°Ó#;Ò;Ð;Ð;Ü˜Ÿ™¤R§U¡U¨4°¨:Ñ%6Õ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                  j                  |«      t        ||	«      k  sJ ‚t        j                  ||f   }|j                  ||«       ||	kD  s|s;|j                  t        j                  |«      k(  sJ ‚t        |j                  |«       yt        |j                  |«      |«       t        j                  j                  t        j                  |j                  |j                  f   «      t        j                  j                  t        j                  ||f   «      kD  sJ ‚t        j                   d	¬
«       |j                  t        j                  |«      k(  sJ ‚t        |j                  |«       y)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™GÑ€IˆzØ€EäØØ#ØØ˜Ñ.‰E°EØ'ô€Eñ ØŠa��"�ˆf‰IˆØ˜‘Hˆ	Ø�C�Rˆy‰àˆ	Ü
�‰˜˜1�v AÔ&€AÜ�9‰9× Ñ  Ó#¤s¨9°jÓ'AÒAÐAÐAÜ
�‰ˆa�ˆd‰€AØ	‡I�Iˆa�„Oà�:Ò¡]Ø×Ñ¤6§=¡=°Ó#;Ò;Ð;Ð;Ü˜Ÿ™ TÕ*ô
 	˜Ÿ™ aÓ(¨!Ô,ä�y‰y�~‰~œbŸe™e E×$4Ñ$4°e·k±kÐ$AÑBÓCÄbÇiÁiÇnÁnÜ�E‰E�)˜T�/Ñ"óG
ò 
ð 	
ð 
ô 	�‰ÐOÕ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
        j                  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
   }n*||j                  d¬«      z
  }||j                  «       z
  }d}|� ||«      }|j                  |||¬«       |	dd
 }	|j                  t        j                  |«      k(  sJ ‚t        |j                   |	«       y)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Á   Ì  se  € ð$ Ð#Ù˜VÔ+HÑHÜ�K‰K�MÙ 6Ô1QÑ#QÜ�K‰KŒMØ%�M€A€qˆ!ˆTØŸG™GÑ€IˆzÜ	�‰˜ ¨ˆÓ	3€BäØØ#ØØ˜Ñ.‰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Ü�E—K‘K Õ&rH   c                  ó8  — t         j                  dd«      } t        t        | dg¬«      }t	        j
                  t        t        j                  «      }t        || dg¬«      }t	        j
                  t        j                  |«      j                  }t        ||«       y )NrW   rV   rº   ©rz   )	Ú
y_diabetesÚreshaper   Ú
X_diabetesr@   Údotrg   r   r,   )ry   r™   ÚKÚ	dual_coefÚcoef2s        rF   Útest_primal_dual_relationshiprË     sl   € Ü×Ñ˜2˜qÓ!€AÜœ: q°°Ô7€DÜ
�‰Œzœ:Ÿ<™<Ó(€AÜ& q¨!°D°6Ô:€IÜ�F‰F”:—<‘< Ó+×-Ñ-€EÜ˜d EÕ*rH   c            
      ó  — t         j                  j                  d«      } | j                  d«      }| j                  dd«      }d}t	        j
                  t        |¬«      5  t        ||dddd d	¬
«       d d d «       y # 1 sw Y   y xY w)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Õ     st   € Ü
�)‰)×
Ñ
 Ó
"€CØ�	‰	�!‹€AØ�	‰	�!�RÓ€AØL€OÜ	�‰Ô(°Ô	@ñ 
ÜØˆq˜ K°SÀ4ÐQRõ	
÷
÷ 
ñ 
ús   Á A<Á<Bc                  óp  — t         j                  j                  d«      } d\  }}| j                  ||«      }| j                  |«      }|d d …t         j                  f   }t         j
                  |d|z   f   }t        «       }|j                  ||«       |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                  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                  j                  d|fk(  sJ ‚|j                  j                  dk(  sJ ‚t        |j                  t         j                  «      sJ ‚t        |j                  t         j                  «      sJ ‚y )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Œb�j‰jˆ=Ñ	€BÜ
�‰ˆa��Q‘ˆh‰€Aä‹G€Eà	‡I�Iˆa�„OØ�;‰;×Ñ  Ò-Ð-Ð-Ø×Ñ×!Ñ! RÒ'Ð'Ð'Ü�e—k‘k¤2§:¡:Ô.Ð.Ð.Ü�e×&Ñ&¬Ô.Ð.Ð.à	‡I�Iˆa�ÔØ�;‰;×Ñ  Ò-Ð-Ð-Ø×Ñ×!Ñ! TÒ)Ð)Ð)Ü�e—k‘k¤2§:¡:Ô.Ð.Ð.Ü�e×&Ñ&¬¯
©
Ô3Ð3Ð3à	‡I�Iˆa�„OØ�;‰;×Ñ  J Ò/Ð/Ð/Ø×Ñ×!Ñ! TÒ)Ð)Ð)Ü�e—k‘k¤2§:¡:Ô.Ð.Ð.Ü�e×&Ñ&¬¯
©
Ô3Ð3Ñ3rH   c                  ó   — t         j                  j                  d«      } d\  }}| j                  ||«      }| j                  |«      }t         j                  |d|z   f   }t        «       }|j                  ||«       |j                  }|j                  ||«       t        |j                  d   |«       t        |j                  d   |dz   «       y )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€Eà	‡I�Iˆa�„OØ× Ñ €Ià	‡I�Iˆa�„OÜ˜×(Ñ(¨Ñ+¨YÔ7Ü˜×(Ñ(¨Ñ+¨Y¸©_Õ=rH   c                  óÔ  — t         j                  j                  d«      } d\  }}| j                  |«      }| j                  ||«      }t	        dd¬«      }t        d¬«      }|j                  ||«       |j                  ||«       t        |j                  |j                  «       |j                  ||«       |j                  ||«       t        |j                  |j                  «       y )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€EÜ
¨Ô
/€Cà	‡I�Iˆa�„OØ‡G�GˆAˆq„MÜ˜Ÿ™ S§Y¡YÔ/à	‡I�Iˆa�„OØ‡G�GˆAˆq„MÜ˜Ÿ™ S§Y¡YÕ/rH   c            
      óÎ  — t         j                  j                  d«      } d\  }}}| j                  ||«      }| j                  ||«      }t        j                  |«      }t        j
                  t        ||j                  «      D ��cg c],  \  }}t        |d¬«      j                  ||«      j                  ‘Œ. c}}«      }	dD �
cg c]*  }
t        ||
d¬«      j                  ||«      j                  ‘Œ, }}
|D ]  }t        |	|«       Œ t        |d d ¬	«      }d
}t        j                  t        |¬«      5  |j                  ||«       d d d «       y c c}}w c c}
w # 1 sw Y   y xY w)Né*   )é   rZ   rÍ   r9   ©rz   r€   )r7   r8   r:   r9   r;   r<   çê-�™—q=)rz   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”   r,   r’   ÚraisesÚ
ValueError)ro   rR   rS   Ú	n_targetsrp   ry   Ú	penaltiesrz   ÚtargetÚcoef_choleskyr€   Úcoefs_indiv_penÚcoef_indiv_penrà   Úerr_msgs                  rF   Útest_ridge_individual_penaltiesrú   [  sP  € ô �)‰)×
Ñ
 Ó
#€Cà'0Ñ$€Iˆz˜9Ø�	‰	�)˜ZÓ(€AØ�	‰	�)˜YÓ'€Aä—	‘	˜)Ó$€Iä—H‘Hô "% Y°·±Ó!4÷	
á��vô ˜ jÔ1×5Ñ5°a¸Ó@×FÓFó	
ó€Mð Nöàô 	�I f°%Ô8×<Ñ<¸QÀÓB×HÓHð€Oð ð *ò AˆÜ! -°Õ@ðAô ˜	 # 2˜Ô'€EØS€GÜ	�‰”z¨Ô	1ñ Ø�	‰	�!�QŒ÷ð ùó!	
ùò÷ð ús   Â1E
Ã/EÄ4EÅE$Ún_col)r�   rØ   )é   Úcsr_containerc                 óT  — t         j                  j                  d«      }|j                  dd«      }|j                  d«      }|j                  t	        |«      «      } |j                  dg| ¢­Ž } |j                  dg| ¢­Ž }t         ||«      ||«      }t        j                  ||d d …d f   |z  z
  |d d …d f   g«      }	t        |	j                  |«      |j                  |«      «       t        |	j                  j                  |«      |j                  j                  |«      «       y )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	  {  sû   € ô �)‰)×
Ñ
 Ó
"€CØ�	‰	�"�aÓ€AØ
�)‰)�A‹,€CØ�i‰iœ˜A›Ó€GØˆ�	‰	�"Ð�uÒ€AØˆ�	‰	�!Ð�eÒ€AÜ¡¨aÓ 0°#°wÓ?€HÜŸ™ A¨²°4°Ñ(8¸3Ñ(>Ñ$>ÀÊÈ4ÈÑ@PÐ#QÓRÐÜÐ&×*Ñ*¨1Ó-¨x¯|©|¸A«Ô?ÜÐ&×(Ñ(×,Ñ,¨QÓ/°·±·±ÀÓ1BÕCrH   r—   ))rZ   rV   )é   r  )rü   é   )rJ   rJ   )rë   rë   Úuniform_weightsc                 óü  — t         j                  j                  d«      } |j                  | Ž }|r#t        j                  |j
                  d   «      }n|j                  d| d   «      }t        j                  |«      }t        j                  |d|¬«      }||z
  |d d …d f   z  }|j                  |j                  «      }	 |||d d …d f   z  «      }
t        d¬«      }|j                  |
||«      }t        |	|«       y ©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‰W�Q—W‘W˜Q‘ZÓ ‰à�]‰]˜1˜e A™hÓ'ˆÜ�g‰g�b‹k€GÜ�Z‰Z˜ ¨2Ô.€FØ�f‘* ª¨4¨Ñ 0Ñ0€JØ—‘˜zŸ|™|Ó,€IÙ˜Q ª¨D¨Ñ!1Ñ1Ó2€HÜ
 $Ô
'€CØ×%Ñ% h°¸Ó@€MÜ�I˜}Õ-rH   c                 óü  — t         j                  j                  d«      } |j                  | Ž }|r#t        j                  |j
                  d   «      }n|j                  d| d   «      }t        j                  |«      }t        j                  |d|¬«      }||z
  |d d …d f   z  }|j                  j                  |«      }	 |||d d …d f   z  «      }
t        d¬«      }|j                  |
||«      }t        |	|«       y 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‰W�Q—W‘W˜Q‘ZÓ ‰à�]‰]˜1˜e A™hÓ'ˆÜ�g‰g�b‹k€GÜ�Z‰Z˜ ¨2Ô.€FØ�f‘* ª¨4¨Ñ 0Ñ0€JØ —l‘l×&Ñ& zÓ2€OÙ˜Q ª¨D¨Ñ!1Ñ1Ó2€HÜ
 $Ô
'€CØ×*Ñ*¨8°V¸WÓE€LÜ�O \Õ2rH   rV   c                 ó  — t        | ||||||d|¬«	      \  }}}|dk(  rt        j                  |g«      }||z  }t        j                  j	                  |«      j                  d||j                  «      dkD  }|j                  «       }d|| <   d||<   ||j                  |«      z  }|
rE||j                  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_regressionr/  ²  s  € ô ØØØ#ØØØØØØ!ô
�G€A€qˆ!ð �Q‚Ü�J‰J˜�s‹OˆØˆ�M€Aä
�	‰	×Ñ˜lÓ+×4Ñ4°QÐ8JÈAÏGÉGÓTÐWXÑXð 	ð —‘“€IØ€A€t€e�HØ€Iˆd�OØˆ�‰�qÓ	Ñ€AÙØ	ˆQ�U‰U”2—6‘6˜!“9˜q‘= 1Ñ$Ó%Ñ%ˆÜ�F‰F�1‹I˜‰MˆØ�Q‚Øˆa‰DˆÙØ�!�QˆwˆØˆaˆ4€KrH   zsolver, sparse_containerc              #   ó6   K  — | ]  \  }}|�|dv r||f–— Œ y ­w)N)r8   Úridgecvr�   )Ú.0r€   r¹   s      rF   ú	<genexpr>r3  á  s3   è ø€ ò á&ˆVÐ%ð Ð# vÐ1IÑ'Ið 
Ð!Ô"ñùs   ‚)r9   r;   r8   r:   r<   r1  z"n_samples,dtype,proportion_nonzero))rë   Úfloat32çš™™™™™¹?)é(   r4  rƒ   )rë   Úfloat64çš™™™™™É?c                 ó  — d}|dkD  rdnd}t        dd||||¬«      \  }}	t        |«      }t        d|¬	«      j                  ||	«      }
|j	                  |d
¬«      }|	j	                  |d
¬«      }	|� ||«      }| dk(  rt        |g¬«      }n*| j                  d«      rd}d}nd}d }t        || |||¬«      }|j                  ||	«       t        |j                  |
j                  dd¬«       t        |j                  |
j                  dd¬«       y )Nrƒ   gÍÌÌÌÌÌì?g      I@g     @@rZ   é   )r"  rS   r)  r#  rU   rR   r7   )r€   rz   F)r'  r1  ©Úalphasr;   gH¯¼šò×z>r¼   r†   )rz   r€   r½   rˆ   rU   rX   ©r¤   Úrtol)
r/  r"   r   r�   Úastyper   Ú
startswithr*   r”   r‘   )r€   r)  rR   Údtyper¹   rl   rz   r#  rp   ry   Ú	svd_ridgerà   rˆ   r½   s                 rF   Útest_solver_consistencyrC  ß  s  € ð$ €EØ&¨Ò,‰D°%€EÜ)ØØØ-ØØ'Øô�D€A€qô 	�Q‹€Aä˜U¨%Ô0×4Ñ4°Q¸Ó:€IØ	�‰�˜UˆÓ#€AØ	�‰�˜UˆÓ#€AØÐ#Ù˜QÓˆØ�ÒÜ ˜wÔ'‰à×Ñ˜UÔ#àˆCØ‰HàˆCØˆHäØØØØØ+ô
ˆð 
‡I�Iˆa�„OÜ�E—K‘K §¡°tÀ$ÕGÜ�E×$Ñ$ i×&:Ñ&:ÀÈDÖQrH   c                  ón  — d\  } }t         j                  j                  d«      }|j                  dd| |f¬«      }|j                  dd| f¬«      }|j	                  t         j
                  «      }|j	                  t         j
                  «      }t        g d¢dd¬«      }|j                  ||«       t        |«      }|j                  ||«       t        |j                  |j                  «       t        |j                  |j                  «       |j                  j                  t         j
                  k(  sJ ‚y )	N)rë   rZ   r   rÍ   r_   ©r5  rƒ   ç      $@Úneg_mean_squared_errorT)r<  ÚscoringÚstore_cv_results)r@   rb   rc   Úrandintr?  r7  r   r�   r   r*   r”   Úcv_results_rA  )	rR   rS   ro   rp   ry   ÚX_floatÚy_floatÚ	ridge_gcvÚridge_gcv_floats	            rF   Útest_ridge_gcv_integer_arraysrP    sø   € Ø"Ñ€IˆzÜ
�)‰)×
Ñ
 Ó
"€CØ�‰�A�q 	¨:Ð6ˆÓ7€AØ�‰�A�q 	˜|ˆÓ,€Aà�h‰h”r—z‘zÓ"€GØ�h‰h”r—z‘zÓ"€GäÚÐ)AÐTXô€Ið ‡M�M�!�QÔä˜IÓ&€OØ×Ñ˜ Ô)ä�I—O‘O _×%:Ñ%:Ô;Ü�I×)Ñ)¨?×+FÑ+FÔGØ× Ñ ×&Ñ&¬"¯*©*Ò4Ð4Ñ4rH   Úgcv_moder7   ÚeigenrA  ÚX_containerÚX_shape)rÿ   r   )rÿ   rë   Útall)Úidszy_shape, noise))©rÿ   rƒ   )©rÿ   rV   ç      >@)©rÿ   rü   ç     Àb@c           	      ó¸  — | dk(  r|t         v rt        j                  d«       |\  }}t        |«      dk(  r|d   nd}	t	        |||	dd|d¬	«      \  }
}|j                  |«      }g d
¢}t        |||d¬«      }t        | ||¬«      }|j                  |
|«        ||
«      }
|
j                  |«      }
|j                  |«      }|j                  |
|«       |t        j                  k(  rdnd}|j                  t        j                  |j                  «      k(  sJ ‚t        |j                  |j                  |¬«       t        |j                  |j                  |¬«       y )Nr7   ú&`svd` mode not supported for sparse X.rJ   rW   rV   r   FrÍ   ©rR   rS   ró   rU   r$  r#  r!  ©rX   r5  rƒ   rF  g     @�@rG  ©Úcvr�   r<  rH  )rQ  r�   r<  çñhãˆµøä>r†   r£   )r4   r’   r´   r  r/  rÅ   r   r�   r?  r@   r4  Úalpha_r“   r*   r”   r‘   )rQ  rA  rS  rT  Úy_shaper�   r#  rR   rS   ró   rp   ry   r<  Ú	loo_ridgeÚ	gcv_ridger¤   s                   rF   Útest_ridge_gcv_vs_ridge_loo_cvrg  2  sE  € ð  �5Ò˜k¬^Ñ;Ü�‰Ð<Ô=Ø#Ñ€IˆzÜ" 7›|¨qÒ0�˜’°a€IÜ)ØØØØØØØô�D€A€qð 	
�	‰	�'Ó€Aâ(€FÜØØ#ØØ(ô	€Iô ØØ#Øô€Ið ‡M�M�!�QÔá�A‹€AØ	�‰�‹€AØ	�‰�‹€AØ‡M�M�!�QÔàœBŸJ™JÒ&‰4¨E€DØ×ÑœvŸ}™}¨Y×-=Ñ-=Ó>Ò>Ð>Ð>Ü�I—O‘O Y§_¡_¸4Õ@Ü�I×(Ñ(¨)×*>Ñ*>ÀTÖJrH   c                 ó  — t        j                  | d«      r6t        |¬«      }|j                  ||«       |j                  |j
                  fS |j                  d   }t        j                  |«      |rt        j                  |«      fS 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_limitsrl  k  sr   € ä	‡z�z�%˜Ôä"°Ô?ˆØ�‰�A�qÔØ�}‰}˜g×0Ñ0Ð0Ð0ð —W‘W˜Q‘Zˆ
Ü�x‰x˜
Ó#±=¤R§W¡W¨Q£ZÐIÐIÀcÐIÐIrH   ç¼‰Ø—²Òœ<g €à7yÃACÚ
zero_alphaÚ	inf_alpha)r7   r9   r:   r8   ©éd   é2   ©rr  rq  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	¬
«      }|j                  ||	«       t        |j                  |
d¬«       t        |j                  |d¬«       y)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   rl  r   r�   r*   r”   r‘   )rz   r€   r�   rT  rS  Úsparse_XrR   rS   rp   ry   Úexpected_coefÚexpected_interceptrà   s                rF   Ú test_regularization_limits_ridgery  x  sÌ   € ð œnÐ,€HØ�‚™8Ü�‰Ð?Ô@Ø�Ò¡©]Ü�‰ØUô	
ð $Ñ€IˆzÜØ¨
¸!À"ÐSUô�D€A€qô )EØˆq�!�]ó)Ñ%€MÐ%ñ 	�A‹€AÜ˜ f¸MÈuÔU€EØ	‡I�Iˆa�„OÜ�E—K‘K °UÕ;Ü�E×$Ñ$Ð&8¸uÖErH   Úignored)rp  )rr  rr  rs  )rU  Ú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        | |
||«      \  }} ||
«      }
|
j                  |«      }
|j                  |«      }t        ||¬«      }|d	k(  r;|r9d
}t	        j                  t        |¬«      5  |j                  |
|«       ddd«       n|j                  |
|«       |t        j                  k(  rdnd}t        |j                  ||¬«       t        |j                  ||¬«       y# 1 sw Y   ŒQxY w)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)r<  r�   r7   ú,The 'svd' mode is not supported for sparse XrÎ   Nrb  r†   r£   )r4   r   r@   ri  r’   r±   rl  r?  r   rÓ   ÚFutureWarningr�   r4  r*   r”   r‘   ©rz   rQ  r�   rT  rA  rS  rv  r<  rR   rS   rp   ry   rw  rx  rf  Úexpected_msgr¤   s                    rF   Ú/test_regularization_limits_ridge_classifier_gcvr‚  –  s\  € ð œnÐ,€HØˆW€FØ#Ñ€IˆzÜØ¨
Àô�D€A€qð 	
ˆA‰�‰	€AÜ	‡z�z�%˜Ôà˜	Ò!Ü�L‰Lð5õð ˜9Ò$Ü�L‰Lð7ôô )EØˆq�!�]ó)Ñ%€MÐ%ñ 	�A‹€AØ	�‰�‹€AØ	�‰�‹€Aä!¨¸}ÔM€IØ�5Ò™XàEˆÜ�\‰\œ-¨|Ô<ñ 	 Ø�M‰M˜!˜QÔ÷	 ð 	 ð 	�‰�a˜ÔàœBŸJ™JÒ&‰4¨E€DÜ�I—O‘O ]¸Õ>Ü�I×(Ñ(Ð*<À4ÖH÷	 ð 	 ús   Ã!EÅE c                 ó&  — |t         v }| g}|\  }}	t        ||	ddd¬«      \  }
}t        | |
||«      \  }} ||
«      }
|
j                  |«      }
|j                  |«      }t	        |||¬«      }|dk(  r;|r9d}t        j                  t        |¬«      5  |j                  |
|«       d	d	d	«       n|j                  |
|«       |t        j                  k(  rd
nd}t        |j                  ||¬«       t        |j                  ||¬«       y	# 1 sw Y   ŒQxY w)z>Check regularization limits of _RidgeGCV (alpha near 0 or inf)r   rZ   rê   ru  )r<  rQ  r�   r7   r~  rÎ   Nrb  r†   r£   )r4   r   rl  r?  r   r’   rÓ   r  r�   r@   r4  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€IØ�5Ò™XàEˆÜ�\‰\œ-¨|Ô<ñ 	 Ø�M‰M˜!˜QÔ÷	 ð 	 ð 	�‰�a˜ÔàœBŸJ™JÒ&‰4¨E€DÜ�I—O‘O ]¸Õ>Ü�I×(Ñ(Ð*<À4ÖH÷	 ð 	 ús   ÂDÄDc            	      óì  — d} d\  }}d}t        |||dddd¬«      \  }}g d¢}t        |d	|| ¬
«      }t        d	|| ¬«      }|j                  ||«       |j                  ||«       |j                  t	        j
                  |j                  «      k(  s!J d|j                  ›d|j                  ›�«       ‚t        |j                  |j                  d¬«       t        |j                  |j                  d¬«       y )NÚexplained_variance)rZ   rÍ   rV   r   FrÍ   r^  r_  Tr`  )r�   r<  rH  zgcv_ridge.alpha_=z, loo_ridge.alpha_=rX   ©r>  )	r/  r   r�   rc  r’   r“   r*   r”   r‘   )	rH  rR   rS   ró   rp   ry   r<  re  rf  s	            rF   Útest_ridge_loo_cv_asym_scoringrˆ  õ  sö   € à"€GØ!Ñ€IˆzØ€IÜ)ØØØØØØØô�D€A€qò )€FÜØ D°Àô€Iô  d°6À7ÔK€Ià‡M�M�!�QÔØ‡M�M�!�QÔà×ÑœvŸ}™}¨Y×-=Ñ-=Ó>Ò>ð Øˆ9×ÑÐ
Ð1 	× 0Ñ 0Ð2Ð3óÐ>ô �I—O‘O Y§_¡_¸4Õ@Ü�I×(Ñ(¨)×*>Ñ*>ÀTÖJrH   rS   r   rë   zy_shape, fit_intercept, noise))rW  Trƒ   )rX  Tg      4@)rZ  Tr[  )rZ  FrY  c                 ó²  — | dk(  r|t         v rt        j                  d«       g d¢}t        j                  j                  d«      }t        |«      dk(  r|d   nd}t        d||dd	|¬
«      \  }	}
|
j                  |«      }
d|j                  t        |	«      «      z  }||j                  «       z
  dz   j                  t        «      }t        j                  t        j                  |	j                  d   «      |«      }|j                  t         «      }|	|   |
|   }}t#        |	j                  d   ¬«      }|j%                  |||¬«      }t'        ||d|¬«      }|j)                  ||«       t+        |j,                  |¬«      }|j%                  |||¬«      }t/        ||||¬«      }|j                  |j                  k7  r|j                  |j                  «      }||z
  dz  }t        j                  |	j                  d   «      D �cg c]  }t        j0                  |||k(     d¬«      ‘Œ! }}t        j2                  |«      } ||	«      }t'        |d| |¬«      }|j)                  ||
|¬«       t        |«      dk(  r0|j4                  d d …d d …|j7                  |j,                  «      f   }n,|j4                  d d …|j7                  |j,                  «      f   }|j,                  t        j8                  |j,                  «      k(  sJ ‚t;        ||d¬«       t;        |j<                  |j<                  d¬«       t;        |j>                  |j>                  d¬«       y c c}w )Nr7   r]  r_  r   rJ   rW   rV   rÿ   F)rR   rS   ró   rU   r$  r#  rü   )Ún_splits)ÚgroupsrG  )r<  ra  rH  r�   rå   ©ra  r‰   T)r<  rI  rQ  r�   r‹   rX   r‡  ) r4   r’   r´   r@   rb   rc   r  r/  rÅ   rÒ   ra   r?  ÚintÚrepeatrî   r—   rÝ   r   Úsplitr   r�   r   rc  r!   r�   r%  rK  Úindexr“   r*   r”   r‘   )rQ  rS  r�   rS   rd  r#  r<  ro   ró   rp   ry   rŒ   ÚindicesÚX_tiledÚy_tiledra  ÚsplitsÚkfoldÚ	ridge_regÚpredictionsÚkfold_errorsÚiÚX_gcvrf  Ú
gcv_errorss                            rF   Útest_ridge_gcv_sample_weightsrœ    sâ  € ð �5Ò˜k¬^Ñ;Ü�‰Ð<Ô=Ú(€FÜ
�)‰)×
Ñ
 Ó
"€CÜ" 7›|¨qÒ0�˜’°a€IÜ)ØØØØØØô�D€A€qð 	
�	‰	�'Ó€Aà˜Ÿ	™	¤# a£&Ó)Ñ)€MØ" ]×%6Ñ%6Ó%8Ñ8¸1Ñ<×DÑDÄSÓI€MÜ�i‰iœŸ	™	 !§'¡'¨!¡*Ó-¨}Ó=€GØ!×(Ñ(¬Ó/€MØ˜‘z 1 W¡:ˆW€Gä	˜QŸW™W Q™ZÔ	(€BØ�X‰X�g˜w¨wˆXÓ7€FÜØØØ(Ø#ô	€Eð 
‡I�Iˆg�wÔä˜EŸL™L¸ÔF€IØ�X‰X�g˜w¨wˆXÓ7€FÜ# I¨w¸ÀFÔK€KØ×Ñ˜GŸM™MÒ)Ø!×)Ñ)¨'¯-©-Ó8ˆØ˜kÑ)¨aÑ/€Lä<>¿I¹IÀaÇgÁgÈaÁjÓ<QöØ78Œ�‰ˆ|˜G q™LÑ)°Ö2ð€Lð ô —:‘:˜lÓ+€Lá˜‹N€EÜØØØØ#ô	€Ið ‡M�M�%˜¨-€MÔ8Ü
ˆ7ƒ|�qÒØ×*Ñ*ª1ªa°·±¸e¿l¹lÓ1KÐ+KÑL‰
à×*Ñ*ª1¨f¯l©l¸5¿<¹<Ó.HÐ+HÑIˆ
à�<‰<œ6Ÿ=™=¨×)9Ñ)9Ó:Ò:Ð:Ð:Ü�J °4Õ8Ü�I—O‘O U§[¡[°tÕ<Ü�I×(Ñ(¨%×*:Ñ*:ÀÖFùò+s   È$M))rÍ   rJ   ©rÍ   rÍ   )rJ   rÍ   )Úautor7   rR  c                 óJ  — |\  }}t        ||¬«      \  }}| d u}|r | |«      }||k  rdnd}|dk(  r|st        ||«      dk(  sJ ‚y |dk(  r<|r:d}	t        j                  t        |	¬«      5  t        ||«      }
d d d «       
|k(  sJ ‚y t        ||«      |k(  sJ ‚y # 1 sw Y   Œ#xY w)N)rR   rS   ÚgramÚcovr7   r~  rÎ   )r   r   r’   rÓ   r  )r¹   rT  rQ  ÚnÚprp   rw   rv  Ú
eigen_moder�  Úactual_gcv_modes              rF   Útest_check_gcv_mode_choicer¦  a  sÁ   € ð �D€A€qÜ Q°1Ô5�D€A€qØ tÐ+€HÙÙ˜QÓˆØ š6‘ u€Jà�5Ò¡Ü˜q (Ó+¨uÒ4Ð4Ñ4Ø	�UÒ	™xàEˆÜ�\‰\œ-¨|Ô<ñ 	;Ü-¨a°Ó:ˆO÷	;à *Ò,Ð,Ñ,ä˜q (Ó+¨zÒ9Ð9Ñ9÷		;ð 	;ús   Á*BÂB"c                 óè  — t         j                  d   }g }| €	t         d}}n | t         «      d}}t        |¬«      }|j                  |t        «       |j
                  }|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|¬«      }|j                  |t        «       |j
                  t        j                  |«      k(  sJ ‚| €O|j                  |t        t        j                  |«      ¬	«       |j
                  t        j                  |«      k(  sJ ‚t        j                   t        t        f«      j"                  }|j                  ||«       |j%                  |«      }|j                  |t        «       |j%                  |«      }t'        t        j                   ||f«      j"                  |d
¬«       |S )Nr   TFræ   )Úgreater_is_better)r�   rH  c                 ó   — t        | |«       S r?   )r   )Úxry   s     rF   Úfuncz_test_ridge_loo.<locals>.func•  s   € Ü" 1 aÓ(Ð(Ð(rH   rG  r‹   rb  r‡  )rÆ   r—   r   r�   rÄ   rc  Úappendr.   r   r   r   r’   r“   r   r@   r–   Úvstackrg   r°   r*   )r¹   rR   Úretrp   r�   rN  rc  ÚfrH  Ú
ridge_gcv2r«  Ú
ridge_gcv3ÚscorerÚ
ridge_gcv4rß   ÚY_predrD   s                    rF   Ú_test_ridge_loorµ  |  s  € ä× Ñ  Ñ#€Ià
€CàÐÜ% tˆ=‰á+¬JÓ7¸ˆ=ˆÜ¨Ô6€Ið ‡M�M�!”ZÔ Ø×Ñ€FØ‡J�JˆvÔô 	€AÜÔ,ÀÔF€GÜ u°gÔ>€JØ�A€j‡n�nÓ�aœÔ$Ø×Ñ¤§¡¨fÓ 5Ò5Ð5Ð5ò)ô ˜$Ó€GÜ u°gÔ>€JØ�A€j‡n�nÓ�aœÔ$Ø×Ñ¤§¡¨fÓ 5Ò5Ð5Ð5ô Ð0Ó1€FÜ u°fÔ=€JØ‡N�N�1”jÔ!Ø×Ñ¤§¡¨fÓ 5Ò5Ð5Ð5ð ÐØ�‰�aœ´2·7±7¸9Ó3EˆÔFØ×Ñ¤6§=¡=°Ó#8Ò8Ð8Ð8ô 	�	‰	”:œzÐ*Ó+×-Ñ-€Aà‡M�M�!�QÔØ×Ñ˜qÓ!€FØ‡M�M�!”ZÔ Ø×Ñ˜qÓ!€Fä”B—I‘I˜v vÐ.Ó/×1Ñ1°6ÀÕEà€JrH   c                 óB  — | €t         n | t         «      }t        «       }|j                  |t        «       |j	                  |«       t        |j                  j                  «      dk(  sJ ‚t        |j                  «      t        j                  u sJ ‚t        d«      }|j                  |¬«       |j                  |t        «       |j	                  |«       t        |j                  j                  «      dk(  sJ ‚t        |j                  «      t        j                  u sJ ‚y )NrV   rÍ   rŒ  )rÆ   r   r�   rÄ   r°   r  r”   r—   Útyper‘   r@   r7  r   Ú
set_params)r¹   rp   Úridge_cvra  s       rF   Ú_test_ridge_cvrº  µ  sá   € Ø&Ð.�
Ñ4DÄZÓ4P€AÜ‹y€HØ‡L�L�”JÔØ×Ñ�QÔäˆx�~‰~×#Ñ#Ó$¨Ò)Ð)Ð)Ü�×#Ñ#Ó$¬¯
©
Ñ2Ð2Ð2ä	ˆq‹€BØ×Ñ˜2ÐÔØ‡L�L�”JÔØ×Ñ�QÔäˆx�~‰~×#Ñ#Ó$¨Ò)Ð)Ð)Ü�×#Ñ#Ó$¬¯
©
Ñ2Ð2Ñ2rH   zridge, make_dataset)rI  c                 ót   —  |dd¬«      \  }}t        | «      } | j                  ||«       t        | d«      rJ ‚y )Né   rê   ©rR   rU   rK  )r   r�   Úhasattr)rà   Úmake_datasetrp   ry   s       rF   Ú$test_ridge_gcv_cv_results_not_storedrÀ  Ç  s=   € ñ  !°"Ô5�D€A€qÜ�%‹L€EØ	‡I�Iˆa�„OÜ�u˜mÔ,Ð,Ð,Ð,rH   ra  rü   c                 óÒ   —  |dd¬«      \  }}t        | «      } | j                  d|¬«       | j                  ||«       t        | d«      sJ ‚t	        | j
                  t        «      sJ ‚y )Nr¼  rê   r½  F)rI  ra  Úbest_score_)r   r¸  r�   r¾  rÛ   rÂ  rÝ   )rà   r¿  ra  rp   ry   s        rF   Útest_ridge_best_scorerÃ  Ö  sc   € ñ  !°"Ô5�D€A€qÜ�%‹L€EØ	×Ñ e°ÐÔ3Ø	‡I�Iˆa�„OÜ�5˜-Ô(Ð(Ð(Ü�e×'Ñ'¬Ô/Ð/Ñ/rH   c            	      ó�  — t         j                  j                  d«      } d\  }}}| j                  ||«      }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   | j                  ||«      z   }d}|j                  D �cg c](  }t        |¬	«      j                  ||«      j                  ‘Œ* }}t        |d
¬«      j                  ||«      }	t        ||	j                  «       t        t        |	j                  ¬«      j                  ||«      j                  |	j                  «       t        |d
d
¬«      j                  ||«      }	|	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                  j                  |fk(  sJ ‚|	j                  j                  |fk(  sJ ‚|	j                   j                  ||dfk(  sJ ‚t        |d
d
¬«      j                  ||d d …df   «      }	t        j$                  |	j                  «      sJ ‚t        j$                  |	j                  «      sJ ‚|	j                   j                  |t#        |«      fk(  sJ ‚t        |d
d¬«      j                  ||«      }	t        ||	j                  «       t        t        |	j                  ¬«      j                  ||«      j                  |	j                  «       t        |t'        «       d
¬«      }	d}
t)        j*                  t,        |
¬«      5  |	j                  ||«       d d d «       t        |dd
¬«      }	t)        j*                  t,        |
¬«      5  |	j                  ||«       d d d «       y c c}w # 1 sw Y   ŒSxY w# 1 sw Y   y xY w)Nrê   )rë   rÍ   rü   r   rV   gš™™™™™©?rJ   rX   )rV   rq  éè  r;  T)r<  Úalpha_per_targetrÃ   )r<  rÆ  rI  Úr2)r<  rÆ  rH  )r<  ra  rÆ  z3cv!=None and alpha_per_target=True are incompatiblerÎ   r¼  )r@   rb   rc   rÒ   rÇ   r–   rg   r   r�   rc  r-   r,   r   r”   r—   rÂ  rK  r  Úisscalarr    r’   rñ   rò   )ro   rR   rS   ró   ry   rp   r<  rõ   Úoptimal_alphasr¹  Úmsgs              rF   Ú"test_ridge_cv_individual_penaltiesrË  å  sÂ  € ô �)‰)×
Ñ
 Ó
#€Cð (0Ñ$€Iˆz˜9Ø�	‰	�)˜YÓ'€Aä
�‰ˆq’�Q�C�‰yœ"Ÿ'™' 1 j /Ó2Ó3Ü
�&‰&�’1�q�c�6‘˜D¤2§7¡7¨A¨z¨?Ó#;Ñ;Ó
<ñ	=ä
�&‰&�’1�q�c�6‘˜E¤B§G¡G¨Q°
¨OÓ$<Ñ<Ó
=ñ	>ð �)‰)�I˜zÓ
*ñ	+ð ð €Fð RS×QTÑQTÖUÀv”g VÔ,×0Ñ0°°FÓ;×BÓBÐU€NÐUô ˜f°tÔ<×@Ñ@ÀÀAÓF€HÜ�~ x§¡Ô7ô Ü�H—O‘OÔ$×(Ñ(¨¨AÓ.×4Ñ4°h·n±nôô
 ˜f°tÈdÔS×WÑWØ	ˆ1ó€Hð �?‰?× Ñ  Y LÒ0Ð0Ð0Ø×Ñ×%Ñ%¨)¨Ò5Ð5Ð5Ø×Ñ×%Ñ%¨)´S¸³[À)Ð)LÒLÐLÐLô ˜a°$ÈÔN×RÑRÐSTÐVWÓX€HØ�?‰?× Ñ  Y LÒ0Ð0Ð0Ø×Ñ×%Ñ%¨)¨Ò5Ð5Ð5Ø×Ñ×%Ñ%¨)°YÀÐ)BÒBÐBÐBô ˜f°tÈdÔS×WÑWØ	ˆ1ŠQ�ˆT‰7ó€Hô �;‰;�x—‘Ô'Ð'Ð'Ü�;‰;�x×+Ñ+Ô,Ð,Ð,Ø×Ñ×%Ñ%¨)´S¸³[Ð)AÒAÐAÐAô ˜f°tÀTÔJ×NÑNÈqÐRSÓT€HÜ�~ x§¡Ô7ÜÜ�H—O‘OÔ$×(Ñ(¨¨AÓ.×4Ñ4°h·n±nôô ˜f¬«ÈÔN€HØ
?€CÜ	�‰”z¨Ô	-ñ Ø�‰�Q˜Ô÷ä˜f¨¸TÔB€HÜ	�‰”z¨Ô	-ñ Ø�‰�Q˜Ô÷ð ùòa V÷Zð ú÷ð ús   Ã<-P+ÏP0ÐP<Ð0P9Ð<Qc                 óÂ   — | €t         n | t         «      }t        d¬«      }|j                  |t        «       t	        j
                  |j                  |t        «      d«      S )NFræ   rÍ   )rÆ   r   r�   rÄ   r@   Úroundr•   )r¹   rp   rà   s      rF   Ú_test_ridge_diabetesrÎ  ,  sH   € Ø&Ð.�
Ñ4DÄZÓ4P€AÜ Ô&€EØ	‡I�Iˆa”ÔÜ�8‰8�E—K‘K ¤:Ó.°Ó2Ð2rH   c                 óä  — | €t         n | t         «      }t        j                  t        t        f«      j                  }t         j
                  d   }t        d¬«      }|j                  ||«       |j                  j
                  d|fk(  sJ ‚|j                  |«      }|j                  |t        «       |j                  |«      }t        t        j                  ||f«      j                  |d¬«       y )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ÄZÓ4P€AÜ
�	‰	”:œzÐ*Ó+×-Ñ-€AÜ×!Ñ! !Ñ$€Jä Ô&€EØ	‡I�Iˆa�„OØ�;‰;×Ñ  J Ò/Ð/Ð/Ø�]‰]˜1Ó€FØ	‡I�Iˆa”ÔØ�]‰]˜1Ó€FÜœbŸi™i¨°Ð(8Ó9×;Ñ;¸VÈQÖOrH   c                 óX  — t        j                  t        «      j                  d   }t        j                  d   }| €t        n | t        «      }t        «       t        «       fD ]g  }|j                  |t        «       |j                  j                  ||fk(  sJ ‚|j                  |«      }t        j                  t        |k(  «      dkD  rŒgJ ‚ t        d«      }t        |¬«      }|j                  |t        «       |j                  |«      }t        j                  t        |k(  «      dk\  sJ ‚y )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   ra  s          rF   Ú_test_ridge_classifiersrÙ  B  só   € Ü—	‘	œ&Ó!×'Ñ'¨Ñ*€IÜ—‘˜a‘€JØ"Ð*�Ñ0@ÄÓ0H€AäÓ!Ô#4Ó#6Ð7ò 0ˆØ�‰�”6ÔØ�y‰y�‰ 9¨jÐ"9Ò9Ð9Ð9Ø—‘˜Q“ˆÜ�w‰w”v Ñ'Ó(¨4Ó/Ð/Ð/ð	0ô 
ˆq‹€BÜ
˜rÔ
"€CØ‡G�GˆAŒvÔØ�[‰[˜‹^€FÜ�7‰7”6˜VÑ#Ó$¨Ò+Ð+Ñ+rH   rH  ÚaccuracyrÍ   c                 óÀ   — | €t         n | t         «      }t        |«      rt        |«      n|}t        ||¬«      }|j	                  |t
        «      j                  |«       y )N)rH  ra  )rÖ  Úcallabler   r   r�   rÕ  r°   )r¹   rH  ra  rp   Úscoring_Úclfs         rF   Ú"test_ridge_classifier_with_scoringrß  T  sN   € ð #Ð*�Ñ0@ÄÓ0H€AÜ'/°Ô'8Œ{˜7Ô#¸g€HÜ
 H°Ô
4€Cà‡G�GˆAŒvÓ×Ñ˜qÕ!rH   c                 óR  — d„ }| €t         n | t         «      }t        j                  ddd¬«      }t        |t	        |«      |¬«      }|j                  |t        «       |j                  t        j                  d«      k(  sJ ‚|j                  t        j                  |d   «      k(  sJ ‚y )	Nc                  ó   — y)Nçáz®GáÚ?r�   rB   s      rF   Ú_dummy_scorez:test_ridge_regression_custom_scoring.<locals>._dummy_scoreh  s   € ØrH   éþÿÿÿrJ   rÍ   )Únum)r<  rH  ra  râ  r   )rÖ  r@   Úlogspacer   r   r�   rÕ  rÂ  r’   r“   rc  )r¹   ra  rã  rp   r<  rÞ  s         rF   Ú$test_ridge_regression_custom_scoringrç  b  s‰   € òð #Ð*�Ñ0@ÄÓ0H€AÜ�[‰[˜˜Q AÔ&€FÜ
 6´;¸|Ó3LÐQSÔ
T€CØ‡G�GˆAŒvÔØ�?‰?œfŸm™m¨DÓ1Ò1Ð1Ð1à�:‰:œŸ™ v¨a¡yÓ1Ò1Ð1Ñ1rH   c                 ó  — | €t         n | t         «      }t        dd¬«      }|j                  |t        «       |j	                  |t        «      }t        dd¬«      }|j                  |t        «       |j	                  |t        «      }||k\  sJ ‚y )Nrb  F)rˆ   r�   rX   )rÆ   r   r�   rÄ   r•   )r¹   rp   rà   r•   Úridge2Úscore2s         rF   Ú_test_tolerancerë  t  st   € Ø&Ð.�
Ñ4DÄZÓ4P€Aä�d¨%Ô0€EØ	‡I�Iˆa”ÔØ�K‰K˜œ:Ó&€Eä�t¨5Ô1€FØ
‡J�Jˆq”*ÔØ�\‰\˜!œZÓ(€Fà�FŠ?Ð‰?rH   c           	      ó8  — t        |||«      \  }}t        j                  |«      }t        j                  |«      }	|j	                  ||¬«      }
|j	                  |	|¬«      }|j                  ||	«       |j                  }|j                  }t        d¬«      5  t        |«      j                  |
|«      }|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 «       y # 1 sw Y   y xY w)N©ÚdeviceT©Úarray_api_dispatchÚcpu©Úxprî  ©r>  r¤   )r/   rÖ  r?  rÕ  r%  r�   r”   r‘   r   r   r—   rA  r*   r&   r@   r%   )ÚnameÚ	estimatorÚarray_namespaceÚdevice_nameÚ
dtype_namer>  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  ‚  sf  € ô & o°{ÀJÓO�J€Bˆä—‘˜jÓ)€IÜ—‘˜jÓ)€Ià—
‘
˜9¨V�
Ó4€IØ—
‘
˜9¨V�
Ó4€Ià‡M�M�)˜YÔ'Ø�o‰o€GØ×'Ñ'€Lä	¨4Ô	0ñ 
Ü˜YÓ'×+Ñ+¨I°yÓAˆØ×$Ñ$ˆØ�}‰} §¡Ò-Ð-Ð-Ø�}‰} 	§¡Ò/Ð/Ð/äÜ�G¤¨5Ô1ØØÜ 
Ó+õ		
ð $×.Ñ.ˆØ×!Ñ! \×%7Ñ%7Ò7Ð7Ð7Ø×!Ñ! Y§_¡_Ò4Ð4Ð4äÜ�L¤R°Ô6ØØÜ 
Ó+õ		
÷!
÷ 
ñ 
ús   ÂC0FÆFz(array_namespace, device_name, dtype_nameÚcheckrö  ©r€   )rQ  c                 óJ   — | j                   j                  } ||| |||¬«       y )N)rø  rù  )Ú	__class__Ú__name__)rö  r  r÷  rø  rù  rõ  s         rF   Útest_ridge_array_api_compliancer	  ©  s,   € ð. ×Ñ×'Ñ'€DÙ	ØØØØØörH   c                 ó´  — t        |||«      \  }}t        d¬«      \  }}|j                  |«      }|j                  |«      }	| j                  ||	«      }
|
j	                  |«      }|
j
                  j                  «       }t        d¬«      5  |j                  ||¬«      |j                  |	|¬«      }}| j                  ||«      }|j	                  |«      }|j                  |j                  cxk(  r|j                  k(  sJ ‚ J ‚t        t        |t        d¬«      |«       t        t        |j
                  t        d¬«      |«       d d d «       y # 1 sw Y   y xY w)Nr   ©rU   Trï  rí  rñ  rò  )r/   r
   r?  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�J€BˆÜ)°qÔ9�D€A€qØ�8‰8�JÓ€DØ�8‰8�JÓ€DØ�}‰}˜T 4Ó(€HØ×Ñ˜tÓ$€GØ×"Ñ"×'Ñ'Ó)€JÜ	¨4Ô	0ñ XØ—Z‘Z ¨V�ZÓ4°b·j±jÀÈf°jÓ6UˆdˆØ—=‘=  tÓ,ˆØ×"Ñ" 4Ó(ˆØ�}‰} §¡Ô8°·±Ò8Ð8Ñ8Ð8Ð8Üœ ¬B°uÔ=¸wÔGÜœ7 8×#4Ñ#4¼ÀEÔJÈJÔW÷X÷ Xñ Xús   ÂB:EÅEc           	      óâ  — t        | ||«      \  }}t        ddd¬«      \  }}|j                  |«      }|j                  |«      }t        j                  g d¢|¬«      }	t        |	d¬«      j                  ||«      }
|
j                  |«      }t        d	¬
«      5  |j	                  ||¬«      |j	                  ||¬«      }}|	|j	                  |	|¬«      fD ]…  }t        |d¬«      j                  ||«      }|j                  |«      }|j                  |j                  cxk(  r|j                  k(  sJ ‚ J ‚t        t        |t        d¬«      |t        |«      ¬«       Œ‡ 	 ddd«       y# 1 sw Y   yxY w)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º   r5  rƒ   )rA  r7   rì   Trï  rí  rñ  rò  r£   N)r/   r   r?  r@   r%  r   r�   r°   r   r—   r*   r&   r%   )r÷  rø  rù  ró  rî  rp   ry   r  r  r<  r  r  r  r  rz   r  r  s                    rF   Ú%test_ridge_per_target_alpha_array_apir  ä  sN  € ô & o°{ÀJÓO�J€BˆÜ Q°2ÀAÔF�D€A€qØ�8‰8�JÓ€DØ�8‰8�JÓ€DÜ�Z‰ZÒ(°
Ô;€Fä˜6¨%Ô0×4Ñ4°T¸4Ó@€HØ×Ñ˜tÓ$€Gä	¨4Ô	0ñ Ø—Z‘Z ¨V�ZÓ4°b·j±jÀÈf°jÓ6Uˆdˆð ˜bŸj™j¨¸˜jÓ?Ð@ò 	ˆEÜ 5°Ô7×;Ñ;¸DÀ$ÓGˆHØ×&Ñ& tÓ,ˆGØ—=‘= G§M¡MÔ<°Q·W±WÒ<Ð<Ñ<Ð<Ð<ÜÜ˜¤B¨uÔ5ØÜ# JÓ/öñ		÷	÷ ñ ús   ÂCE%Å%E.r÷  )Úinclude_numpy_namespacesc                 óä  — t        | d ¬«      \  }}|j                  t        d d «      }|j                  t        d d «      }t        j
                  d   d   j                  }|ddhz
  D ]p  }t	        ||dk(  ¬«      }d	|j                  › d
|› d�}t        j                  t        |¬«      5  t        d¬«      5  |j                  ||«       d d d «       d d d «       Œr t	        dd¬«      }d|j                  › d�}t        j                  t        |¬«      5  t        d¬«      5  |j                  ||«       d d d «       d d d «       t	        «       }d|j                  › d�}t        j                  t        |¬«      5  t        d¬«      5  |j                  ||«       d d d «       d d d «       y # 1 sw Y   ŒáxY w# 1 sw Y   �ŒWxY w# 1 sw Y   Œ�xY w# 1 sw Y   Œ”xY w# 1 sw Y   ŒCxY w# 1 sw Y   y xY w)N©rø  rÍ   r€   r   rž  r7   Úlbfgs©r€   r+  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�E€Bˆà—
‘
œ6 " 1˜:Ó&€IØ—
‘
œ6 " 1˜:Ó&€Iä×4Ñ4°XÑ>¸qÑA×IÑIÐØ# v¨u oÑ5ò 	0ˆÜ˜V¨f¸Ñ.?Ô@ˆà.¨r¯{©{¨mð <"Ø"( ¨ð-ð 	ô
 �]‰]œ:¨\Ô:ñ 	0Ü°4Ô8ñ 0Ø—	‘	˜) YÔ/÷0÷	0ð 	0ð	0ô ˜¨$Ô/€Eð	+Ø+-¯;©;¨-ð 8.ð	.ð ô 
�‰”z¨Ô	6ñ ,Ü¨tÔ4ñ 	,Ø�I‰I�i Ô+÷	,÷,ô ‹G€Eà
0°·±°ð >Dð 	Dð ô 
�‰”k¨Ô	6ñ ,Ü¨tÔ4ñ 	,Ø�I‰I�i Ô+÷	,÷,ð ,÷-0ð 0ú÷	0ñ 	0ú÷	,ð 	,ú÷,ð ,ú÷	,ð 	,ú÷,ð ,úsl   Â)F5Â6F)Ã	F5ÄGÄ GÄ3GÅ8G&ÆGÆG&Æ)F2Æ.F5Æ5F?	ÇG	ÇGÇGÇG#	ÇG&Ç&G/c                 ó  — t        | d ¬«      \  }}|j                  t        d d «      }|j                  t        d d «      }t	        «       }d}t        j                  «       5  t        j                  d|t        ¬«       t        d¬«      5  |j                  ||«       d d d «       d d d «       t        d¬«      5  t	        dd¬	«      j                  ||«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   ŒHxY w# 1 sw Y   y xY w)
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_warningr*  2  së   € ä  ¸dÔC�E€Bˆà—
‘
œ6 " 1˜:Ó&€IØ—
‘
œ6 " 1˜:Ó&€Iä‹G€Eð	;ð ô
 
×	 Ñ	 Ó	"ñ ,Ü×Ñ °ÌÕTÜ¨tÔ4ñ 	,Ø�I‰I�i Ô+÷	,÷,ô 
¨4Ô	0ñ FÜ�V dÔ+×/Ñ/°	¸9ÔE÷Fð F÷	,ð 	,ú÷,ð ,ú÷Fð Fús0   Á!)C,Â
C ÂC,Â9C8Ã C)	Ã%C,Ã,C5Ã8DÚ	test_funcc                 óL   —  | d «      } | |«      }|�|�t        ||d¬«       y y y )Nrü   rÐ  )r,   )r+  rý   Ú	ret_denseÚ
ret_sparses       rF   Útest_dense_sparser/  J  s6   € ñ ˜$“€Iá˜=Ó)€JàÐ Ð!7Ü! )¨ZÀÖCð "8ÐrH   c                  ó®  — t        j                  ddgddgddgddgddgg«      } g d¢}t        d ¬«      }|j                  | |«       t	        |j                  ddgg«      t        j                  d	g«      «       t        d	d
i¬«      }|j                  | |«       t	        |j                  ddgg«      t        j                  dg«      «       t        d¬«      }|j                  | |«       t	        |j                  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 ¬«      }|j                  | |«       t        d¬«      }|j                  | |«       t        |j                  «      dk(  sJ ‚t        |j                  |j                  «       t        |j                  |j                  «       y )Nç      ð¿r   çš™™™™™é¿rƒ   rÐ   ©rV   rV   rV   rW   rW   ©Úclass_weightr8  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_weightsr8  `  sƒ  € ä
�‰�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÓQ€AÚ€Aä
 tÔ
,€CØ‡G�GˆAˆq„MÜ�s—{‘{ S¨$ K =Ó1´2·8±8¸Q¸C³=ÔAô ¨¨5 zÔ
2€CØ‡G�GˆAˆq„Mô �s—{‘{ S¨$ K =Ó1´2·8±8¸R¸D³>ÔBô  zÔ
2€CØ‡G�GˆAˆq„MÜ�s—{‘{ S¨$ K =Ó1´2·8±8¸Q¸C³=ÔAô 	�‰�4˜�,  q 	¨D°$¨<¸#¸s¸ÐDÓE€AÚ€AÜ
 tÔ
,€CØ‡G�GˆAˆq„MÜ¨
Ô3€DØ‡H�HˆQ�„NÜˆt�}‰}Ó Ò"Ð"Ð"Ü˜cŸi™i¨¯©Ô4Ü˜cŸn™n¨d¯o©oÕ>rH   rØ  c                 óú  —  | «       }|j                  t        j                  t        j                  «        | d¬«      }|j                  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œ} | «       }|j                  t        j                  t        j                  |«        | |¬«      }|j                  t        j                  t        j                  «       t	        |j
                  |j
                  «        | «       }|j                  t        j                  t        j                  |dz  «        | |¬«      }|j                  t        j                  t        j                  |«       t	        |j
                  |j
                  «       y	)
z5Check class_weights resemble sample_weights behavior.r6  r4  rV   rq  rƒ   g      Y@)r   rV   rJ   rJ   N)	r�   ÚirisÚdatarõ   r+   r”   r@   r–   r—   )rØ  Úreg1Úreg2rŒ   r5  s        rF   Ú"test_class_weight_vs_sample_weightr>  ƒ  s=  € ñ
 ‹5€DØ‡H�HŒT�Y‰YœŸ™Ô$Ù˜JÔ'€DØ‡H�HŒT�Y‰YœŸ™Ô$Ü˜Ÿ
™
 D§J¡JÔ/ô —G‘GœDŸK™K×-Ñ-Ó.€MØ”$—+‘+ Ñ"Ó# sÑ*Ó#Ø˜u¨Ñ-€LÙ‹5€DØ‡H�HŒT�Y‰YœŸ™ ]Ô3Ù˜LÔ)€DØ‡H�HŒT�Y‰YœŸ™Ô$Ü˜Ÿ
™
 D§J¡JÔ/ñ ‹5€DØ‡H�HŒT�Y‰YœŸ™ ]°AÑ%5Ô6Ù˜LÔ)€DØ‡H�HŒT�Y‰YœŸ™ ]Ô3Ü˜Ÿ
™
 D§J¡JÕ/rH   c                  ó@  — t        j                  ddgddgddgddgddgg«      } g d¢}t        d g d¢¬«      }|j                  | |«       t        d	d
ig d¢¬«      }|j                  | |«       t	        |j                  ddgg«      t        j                  dg«      «       y )Nr1  r   r2  rƒ   rÐ   r3  )rº   r5  rV   )r5  r<  rV   rX   )rº   r5  rV   rZ   gš™™™™™É¿rJ   rW   )r@   rï   r   r�   r-   r°   )rp   ry   rØ  s      rF   Útest_class_weights_cvr@     s�   € ä
�‰�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÓQ€AÚ€Aä
¨²nÔ
E€CØ‡G�GˆAˆq„Mô ¨!¨U¨Ò<NÔ
O€CØ‡G�GˆAˆq„Mä�s—{‘{ T¨1 I ;Ó/´·±¸2¸$³Õ@rH   rG  c                 ó‚  — t         j                  j                  d«      }d}d}|j                  ||«      }g d¢}t	        |«      }t        | «      rt        | «      n| }t        |d d|¬«      }|j                  |«      }	|j                  ||	«       |j                  j                  ||fk(  sJ ‚d}
|j                  ||
«      }	|j                  ||	«       |j                  j                  ||
|fk(  sJ ‚t        dd| ¬«      }t        j                  t        d	¬
«      5  |j                  ||	«       d d d «       y # 1 sw Y   y xY w)Nrê   r   rÍ   rE  T©r<  ra  rI  rH  rü   )ra  rI  rH  zcv!=None and store_cv_resultsrÎ   )r@   rb   rc   rÒ   r  rÜ  r   r   r�   rK  r—   r’   rñ   rò   )rH  ro   rR   rS   rª  r<  Ún_alphasrÝ  Úrry   ró   s              rF   Útest_ridgecv_store_cv_resultsrE  ¯  s  € ô �)‰)×
Ñ
 Ó
#€Cà€IØ€JØ�	‰	�)˜ZÓ(€AÚ€FÜ�6‹{€Hä'/°Ô'8Œ{˜7Ô#¸g€Hä�v $¸ÀxÔP€Að 	�	‰	�)Ó€AØ‡E�Eˆ!ˆQ„KØ�=‰=×Ñ 9¨hÐ"7Ò7Ð7Ð7ð €IØ�	‰	�)˜YÓ'€AØ‡E�Eˆ!ˆQ„KØ�=‰=×Ñ 9¨i¸Ð"BÒBÐBÐBä�1 t°WÔ=€AÜ	�‰”zÐ)HÔ	Iñ Ø	�‰ˆa�Œ÷÷ ñ ús   ÄD5Ä5D>c                 ó>  — 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                  j                  |||fk(  sJ ‚t        j                  g d¢g d¢g d¢g«      j                  «       }|j                  d
   }|j                  ||«       |j                  j                  |||fk(  sJ ‚y )Nr1  r   r2  rƒ   rÐ   r3  rE  TrB  rV   )rV   rW   rV   rW   rV   )rW   rW   rV   rW   rW   )
r@   rï   r—   r  rÜ  r   r   r�   rK  Ú	transpose)	rH  rª  ry   rR   r<  rC  rÝ  rD  ró   s	            rF   Ú)test_ridge_classifier_cv_store_cv_resultsrH  Ï  s  € ä
�‰�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÓQ€AÜ
�‰Ò"Ó#€Aà—‘˜‘
€IÚ€FÜ�6‹{€Hä'/°Ô'8Œ{˜7Ô#¸g€HäØ˜$°¸xô	€Að
 €IØ‡E�Eˆ!ˆQ„KØ�=‰=×Ñ 9¨i¸Ð"BÒBÐBÐBô 	�‰Ú	Ò-Ò/BÐCó	ç�iƒkð ð —‘˜‘
€IØ‡E�Eˆ!ˆQ„KØ�=‰=×Ñ 9¨i¸Ð"BÒBÐBÑBrH   Ú	Estimatorc                 óœ  — t         j                  j                  d«      }d}d\  }}| t        u r|j	                  |«      }n|j                  dd|«      }|j	                  ||«      } | |¬«      }|j                  |u sJ d| j                  › d�«       ‚|j                  ||«       t        |j                  t        j                  |«      «       y )Nr   rE  r�  rJ   r;  z`alphas` was mutated in `z
.__init__`)r@   rb   rc   r   rÒ   rJ  r<  r  r�   r-   r%  )rI  ro   r<  rR   rS   ry   rp   Ú	ridge_ests           rF   Útest_ridgecv_alphas_conversionrL  ì  s¾   € ä
�)‰)×
Ñ
 Ó
"€CØ€Fà Ñ€IˆzØ”GÑØ�I‰I�iÓ ‰à�K‰K˜˜1˜iÓ(ˆØ�	‰	�)˜ZÓ(€Aá Ô(€IØ×Ñ˜vÑ%ð Ø
# I×$6Ñ$6Ð#7°zÐBóÐ%ð ‡M�M�!�QÔÜ�y×'Ñ'¬¯©°FÓ);Õ<rH   c                 ó�  — t         j                  j                  d«      }d}d\  }}|t        u r|j	                  |«      }n|j                  dd|«      }|j	                  ||«      } ||| ¬«      }| €7t        j                  t        d¬«      5  |j                  ||«       ddd«       y|j                  ||«       y# 1 sw Y   yxY w)	z1Check alpha=0.0 raises error only when `cv=None`.r   )rÐ   rƒ   rF  r�  rJ   ©r<  ra  Nz"alphas\[0\] == 0.0, must be > 0.0.rÎ   )
r@   rb   rc   r   rÒ   rJ  r’   rñ   rò   r�   )	ra  rI  ro   r<  rR   rS   ry   rp   rK  s	            rF   Útest_ridgecv_alphas_zerorO    s·   € ô �)‰)×
Ñ
 Ó
"€CØ€Fà Ñ€IˆzØ”GÑØ�I‰I�iÓ ‰à�K‰K˜˜1˜iÓ(ˆØ�	‰	�)˜ZÓ(€Aá ¨BÔ/€IØ	€zÜ�]‰]œ:Ð-RÔSñ 	 Ø�M‰M˜!˜QÔ÷	 ð 	 ð 	�‰�a˜Õ÷	 ð 	 ús   ÂB<Â<Cc                  ó  — t         j                  j                  d«      } d}dD ]å  \  }}| j                  |«      }| j                  ||«      }d| j	                  |«      z   }t        d«      }t        ||¬«      }|j                  |||¬«       d|i}	t        t        «       |	|¬	«      }
|
j                  |||¬«       |j                  |
j                  j                  k(  sJ ‚t        |j                  |
j                  j                  «       Œç y )
Nr   rE  )©r¼  rÍ   r×   rƒ   rÍ   rN  r‹   rz   rŒ  )r@   rb   rc   rÒ   Úrandr   r   r�   r   r   rc  Úbest_estimator_rz   r,   r”   )ro   r<  rR   rS   ry   rp   rŒ   ra  r1  Ú
parametersÚgss              rF   Útest_ridgecv_sample_weightrV    sñ   € Ü
�)‰)×
Ñ
 Ó
"€CØ€Fð "3ò KÑˆ	�:Ø�I‰I�iÓ ˆØ�I‰I�i Ó,ˆØ˜cŸh™h yÓ1Ñ1ˆä�1‹XˆÜ ¨BÔ/ˆØ�‰�A�q¨ˆÔ6ð ˜vÐ&ˆ
Üœ%›' :°"Ô5ˆØ
�‰ˆq�! =ˆÔ1à�~‰~ ×!3Ñ!3×!9Ñ!9Ò9Ð9Ð9Ü! '§-¡-°×1CÑ1C×1IÑ1IÕJñKrH   c                  óð  ‡‡‡‡‡— ddg} ddg}t         j                  j                  d«      }t        | |«      D �]!  \  }}|j	                  ||«      Š|j	                  |«      Š|j	                  |«      dz  dz   }d}d}|d d …t         j
                  f   Š|t         j
                  d d …f   Št        d¬«      Š‰j                  ‰‰|«       ‰j                  ‰‰|«       ‰j                  ‰‰|«       ˆˆˆˆfd„}ˆˆˆˆfd	„}	d
}
t        j                  t        |
¬«      5   |«        d d d «       d
}
t        j                  t        |
¬«      5   |	«        d d d «       �Œ$ y # 1 sw Y   Œ:xY w# 1 sw Y   �Œ<xY w)NrJ   rü   rê   rV   rƒ   g       @rÃ   c                  ó,   •— ‰j                  ‰ ‰‰«       y 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Õ2rH   c                  ó,   •— ‰j                  ‰ ‰‰«       y r?   rY  )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Õ4rH   z)Sample weights must be 1D array or scalarrÎ   )r@   rb   rc   rð   rÒ   rÙ   r   r�   r’   rñ   rò   )Ú
n_samplessÚn_featuressro   rR   rS   Úsample_weights_OKÚsample_weights_OK_1Úsample_weights_OK_2r[  r^  rù   rp   rà   rZ  r]  ry   s              @@@@@rF   Ú9test_raises_value_error_if_sample_weights_greater_than_1drd  /  s\  ü€ ð �Q�€JØ�a�&€Kä
�)‰)×
Ñ
 Ó
#€Cä!$ Z°Ó!=ó !Ñˆ	�:Ø�I‰I�i Ó,ˆØ�I‰I�iÓ ˆØŸI™I iÓ0°AÑ5¸Ñ9ÐØ!ÐØ!ÐØ 1²!´R·Z±Z°-Ñ @ÐØ"3´B·J±JÂ°MÑ"BÐä˜A”ˆð 	�	‰	�!�QÐ)Ô*Ø�	‰	�!�QÐ+Ô,Ø�	‰	�!�QÐ+Ô,÷	3÷	5ð >ˆÜ�]‰]œ:¨WÔ5ñ 	ÙÔ÷	ð >ˆÜ�]‰]œ:¨WÔ5ñ 	!ÙÔ ÷	!ñ 	!ñ7!÷.	ð 	ú÷	!ñ 	!ús   ÄEÅE+ÅE(	Å+E5	zn_samples,n_featuresrJ   c                 óŽ  — t         j                  j                  d«      }t        dd¬«      }t        dd¬«      }|j	                  | |«      }|j	                  | «      }|j	                  | «      dz  dz   } ||«      }	|j                  |	||¬«       |j                  |||¬«       t        |j                  |j                  d¬	«       y )
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_weightsri  V  s¯   € ô �)‰)×
Ñ
 Ó
#€Cä˜s°%Ô8€LÜ˜c°Ô7€Kà�	‰	�)˜ZÓ(€AØ�	‰	�)Ó€AØ—Y‘Y˜yÓ)¨QÑ.°Ñ2€NÙ Ó"€HØ×Ñ�X˜q°ÐÔ?Ø‡O�O�A�q¨€OÔ7ä˜l×0Ñ0°+×2CÑ2CÈQÖOrH   c                  ó�   — t        j                  ddgddgddgddgddgg«      } g d¢}t        d¬«      }|j                  | |«       y )	Nr1  r   r2  rƒ   rÐ   r3  )rV   rZ   rq  r;  )r@   rï   r   r�   )rp   ry   rà   s      rF   Útest_ridgecv_int_alphasrk  l  sM   € Ü
�‰�4˜�,  q 	¨D°$¨<¸#¸s¸ÀcÈ3ÀZÐPÓQ€AÚ€Aô ˜<Ô(€EØ	‡I�Iˆa�…OrH   zparams, err_type, err_msgr<  )rV   rW   iœÿÿÿz alphas\[1\] == -1, must be > 0.0)gš™™™™™¹¿r1  g      $Àz"alphas\[0\] == -0.1, must be > 0.0)rV   rƒ   Ú1z1alphas\[2\] must be an instance of float, not strc                 óð   — d\  }}t         j                  ||«      }t         j                  dd|«      }t        j                  ||¬«      5   | di |¤Žj                  ||«       ddd«       y# 1 sw Y   yxY w)z?Check the `alphas` validation in RidgeCV and RidgeClassifierCV.r�  r   rJ   rÎ   Nr�   )ro   rÒ   rJ  r’   rñ   r�   )rI  rN   Úerr_typerù   rR   rS   rp   ry   s           rF   Útest_ridgecv_alphas_validationro  u  sk   € ð( !Ñ€IˆzÜ�	‰	�)˜ZÓ(€AÜ�‰�A�q˜)Ó$€Aä	�‰�x wÔ	/ñ &ÙÑ�FÑ×Ñ  1Ô%÷&÷ &ñ &ús   Á
A,Á,A5c                 óÖ   — d\  }}t         j                  ||«      }| t        u rt         j                  |«      }nt         j                  dd|«      } | d¬«      j	                  ||«       y)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   r;  N)ro   rÒ   r   rJ  r�   )rI  rR   rS   rp   ry   s        rF   Útest_ridgecv_alphas_scalarrq  ‘  s[   € ð !Ñ€IˆzÜ�	‰	�)˜ZÓ(€AØ”GÑÜ�I‰I�iÓ ‰ä�K‰K˜˜1˜iÓ(ˆá�QÔ×Ñ˜A˜qÕ!rH   c                  ó°   — t        dd¬«      } | j                  t        t        «       | j                  j
                  d   t        j
                  d   k(  sJ ‚y )Nr8   rV   )r€   r½   r   )r   r�   rÆ   rÄ   r”   r—   )rØ  s    rF   Útest_sparse_cg_max_iterrs  £  sB   € Ü
�{¨QÔ
/€CØ‡G�GŒJœ
Ô#Ø�9‰9�?‰?˜1Ñ¤×!1Ñ!1°!Ñ!4Ò4Ð4Ñ4rH   z-ignore::sklearn.exceptions.ConvergenceWarningc            	      ó’  — d} t         t        }}t        j                  || df«      j                  }t        dd«      D ]S  }dD ]L  }t        ||d¬«      }|j                  ||«       t        |j                  t        j                  || «      «       ŒN ŒU dD ]0  }t        |dd¬«      }|j                  ||«       |j                  €Œ0J ‚ y )	NrJ   rV   rQ   )r;   r<   r:   rí   )r€   r½   rˆ   )r8   r7   r9   r5  )
rÆ   rÄ   r@   Útilerg   Úranger   r�   r-   Ún_iter_)ró   rp   ry   Úy_nr½   r€   rØ  s          rF   Útest_n_iterry  ©  sÄ   € ð €IÜ”z€q€AÜ
�'‰'�!�i �^Ó
$×
&Ñ
&€Cä˜!˜Q“Kò JˆØ-ò 	JˆFÜ˜v°¸eÔDˆCØ�G‰G�A�sŒOÜ˜sŸ{™{¬B¯G©G°H¸iÓ,HÕIñ	JðJð 3ò #ˆÜ˜6¨A°4Ô8ˆØ�‰��3ŒØ�{‰{Ñ"Ð"Ð"ñ#rH   )r:   r8   r  rž  Úwith_sample_weightc                 óä  — | dk(  }t        d||¬«      \  }}d}|rAt        j                  j                  |«      }d|j	                  |j
                  d   ¬«      z   }| dk(  rd	n| }	t        |	d
|¬«      }
t        | d
|¬«      }|
j                  |||¬«       |j                   ||«      ||¬«       t        |
j                  |j                  «       t        |
j                  |j                  d¬«       y)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   r+  Nrƒ   r   r_   rž  r8   rí   )r€   rˆ   r+  r‹   g�íµ ÷Æ >r‡  )r/  r@   rb   rc   re   r—   r   r�   r*   r‘   r”   )r€   rz  rl   rý   r+  rp   ry   rŒ   ro   Údense_solverrg  rf  s               rF   Útest_ridge_fit_intercept_sparser}  ¼  sæ   € ð  ˜Ñ €HÜ)ØÐ$6Àô�D€A€qð €MÙÜ�i‰i×#Ñ#Ð$6Ó7ˆØ˜cŸk™k¨q¯w©w°q©z˜kÓ:Ñ:ˆð #)¨FÒ"2‘;¸€LÜ˜|°ÀÔJ€KÜ ¨E¸HÔE€Là‡O�O�A�q¨€OÔ6Ø×Ñ‘] 1Ó% q¸ÐÔFä�K×*Ñ*¨L×,CÑ,CÔDÜ�K×%Ñ% |×'9Ñ'9ÀÖErH   )r<   r7   r9   c                 óò   — t        dd¬«      \  }} ||«      }t        | ¬«      }dj                  | «      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nrë   r   )rS   rU   r  zsolver='{}' does not supportrÎ   )r/  r   Úformatr’   rñ   rò   r�   )r€   rý   rp   ry   ÚX_csrrf  rù   s          rF   Ú%test_ridge_fit_intercept_sparse_errorr�  å  sk   € ô *°RÀaÔH�D€A€qÙ˜!Ó€EÜ Ô'€LØ,×3Ñ3°FÓ;€GÜ	�‰”z¨Ô	1ñ #Ø×Ñ˜ Ô"÷#÷ #ñ #ús   ÁA-Á-A6c                 ó  — t        dd|d¬«      \  }}| rBt        j                  j                  |«      }d|j	                  |j
                  d   ¬«      z   }nd } ||«      }t        ddd	d
d¬«      }t        di |¤Ž}	t        di |¤Ž}
|	j                  |||¬«       t        j                  «       5  t        j                  dt        «       |
j                  |||¬«       d d d «       t        |	j                  |
j                  d¬«       t        |	j                  |
j                  d¬«       t!        j"                  t        d¬«      5  t        dd	dd ¬«      j                  ||«       d d d «       y # 1 sw Y   Œ‘xY w# 1 sw Y   y xY w)NrÍ   rë   g      @)rS   rR   rU   r*  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�   )r/  r@   rb   rc   re   r—   rŽ   r   r�   r'  r(  Úsimplefilterr   r*   r‘   r”   r’   rÓ   )rz  rl   rý   rp   ry   ro   rŒ   r€  rN   rg  rf  s              rF   Ú#test_ridge_fit_intercept_sparse_sagr…  ð  sg  € ô
 *Ø Ð1CÈcô�D€A€qñ Ü�i‰i×#Ñ#Ð$6Ó7ˆØ˜cŸk™k¨q¯w©w°q©z˜kÓ:Ñ:‰àˆÙ˜!Ó€EäØ˜%¨t¸Èô€Fô ‘/˜&‘/€KÜ‘?˜6‘?€LØ‡O�O�A�q¨€OÔ6Ü	×	 Ñ	 Ó	"ñ @Ü×Ñ˜g¤{Ô3Ø×Ñ˜ °ÐÔ?÷@ô �K×*Ñ*¨L×,CÑ,CÈ$ÕOÜ�K×%Ñ% |×'9Ñ'9ÀÕEÜ	�‰”kÐ)BÔ	Cñ WÜ�U¨$°DÀ4ÔH×LÑLÈUÐTUÔV÷Wð W÷@ð @ú÷
Wð Wús   Â//E.Å E:Å.E7Å:FÚreturn_interceptrŒ   rÅ  Ú	container)rž  r8   r9   r:   r;   r<   r  c                 óè  — t        d«      }|j                  dd«      }g d¢}t        j                  ||«      }d}| rd}||z  } ||«      }	d\  }
}t        rdnd	}|d
k(  }|dvr;| r9t        j                  t        d¬«      5  t        |	||
||| |||¬«	       ddd«       yt        |	||
|||| ||¬«	      }| r$|\  }}t        ||d|¬«       t        ||d|¬«       yt        ||d|¬«       y# 1 sw Y   yxY w)z=check if all combinations of arguments give valid estimationsrê   rÅ  rü   )rV   rJ   r5  rÐ   g     ˆÃ@)rX   ç�íµ ÷Æ°>rX   rƒ  r  )r;   rž  zIn Ridge, only 'sag' solverrÎ   )rz   r€   rŒ   r†  r+  rˆ   rU   N)rz   r€   rŒ   r+  r†  rˆ   rU   r   rô  )
r#   rR  r@   rÇ   r1   r’   rñ   rò   r   r*   )r†  rŒ   r‡  r€   ro   rp   Ú
true_coefsry   Útrue_interceptÚ	X_testingrz   rˆ   r¤   r+  Ú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 $€Dà˜Ñ €Hà�_Ñ$Ñ)9Ü�]‰]œ:Ð-JÔKñ 	ÜØØØØØ+Ø!1Ø!ØØ õ
÷	ð 	ä
ØØ	ØØØ#ØØ)ØØô
€Cñ Ø‰ˆˆiÜ˜˜j¨q°tÕ<Ü˜	 >¸ÀÖEä˜˜Z¨a°dÖ;÷?	ð 	ús   Â C(Ã(C1)r7   r8   r9   r:   r;   r<   r  c                 óŽ  — t         j                  j                  d«      }d}| dk(  }d\  }}|j                  ||«      }|j                  |«      }|j	                  t         j
                  «      }|j	                  t         j
                  «      }	dt        j                  t         j
                  «      j                  z  }
t        || d|
|¬«      }|j                  ||	«       |j                  }t        || d|
|¬«      }|j                  ||«       |j                  }|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |«      j                  |j                  k(  sJ ‚|j                  |«      j                  |j                  k(  sJ ‚t        |j                  |j                  dd	¬
«       y )Nr   rƒ   r  rQ  rJ   éô  )rz   r€   r½   rˆ   r+  rƒ  gü©ñÒMb@?rô  )r@   rb   rc   rÒ   r?  r4  ÚfinfoÚ
resolutionr   r�   r”   rA  r°   r*   )r€   ro   rz   r+  rR   rS   ÚX_64Úy_64ÚX_32Úy_32rˆ   Úridge_32Úcoef_32Úridge_64Úcoef_64s                  rF   Útest_dtype_matchr›  M  sx  € ô �)‰)×
Ñ
 Ó
"€CØ€EØ˜Ñ €Hà Ñ€IˆzØ�9‰9�Y 
Ó+€DØ�9‰9�YÓ€DØ�;‰;”r—z‘zÓ"€DØ�;‰;”r—z‘zÓ"€Dà
Œb�h‰h”r—z‘zÓ"×-Ñ-Ñ
-€CäØ˜F¨S°cÀHô€Hð ‡L�L��tÔØ�n‰n€Gô Ø˜F¨S°cÀHô€Hð ‡L�L��tÔØ�n‰n€Gð �=‰=˜DŸJ™JÒ&Ð&Ð&Ø�=‰=˜DŸJ™JÒ&Ð&Ð&Ø×Ñ˜DÓ!×'Ñ'¨4¯:©:Ò5Ð5Ð5Ø×Ñ˜DÓ!×'Ñ'¨4¯:©:Ò5Ð5Ð5Ü�H—N‘N H§N¡N¸ÀDÖIrH   c                  óD  — t         j                  j                  d«      } t        j                  ddg«      }d\  }}}| j	                  ||«      }| j	                  ||«      }|j                  t         j                  «      }|j                  t         j                  «      }t        |d¬«      }	|	j                  ||«       |	j                  }
t        |d¬«      }|j                  ||«       |j                  }|
j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚|	j                  |«      j                  |j                  k(  sJ ‚|j                  |«      j                  |j                  k(  sJ ‚t        |	j                  |j                  d¬«       y )	Nr   rƒ   r¡   )r¼  r  rJ   r9   rì   rÍ   rÐ  )r@   rb   rc   rï   rÒ   r?  r4  r   r�   r”   rA  r°   r+   )ro   rz   rR   rS   Ún_targetr“  r”  r•  r–  r—  r˜  r™  rš  s                rF   Útest_dtype_match_choleskyrž  r  sL  € ô �)‰)×
Ñ
 Ó
"€CÜ�H‰H�c˜3�ZÓ €Eà&-Ñ#€Iˆz˜8Ø�9‰9�Y 
Ó+€DØ�9‰9�Y Ó)€DØ�;‰;”r—z‘zÓ"€DØ�;‰;”r—z‘zÓ"€Dô ˜5¨Ô4€HØ‡L�L��tÔØ�n‰n€Gô ˜5¨Ô4€HØ‡L�L��tÔØ�n‰n€Gð �=‰=˜DŸJ™JÒ&Ð&Ð&Ø�=‰=˜DŸJ™JÒ&Ð&Ð&Ø×Ñ˜DÓ!×'Ñ'¨4¯:©:Ò5Ð5Ð5Ø×Ñ˜DÓ!×'Ñ'¨4¯:©:Ò5Ð5Ð5Ü˜Ÿ™¨¯©ÀÖBrH   )r7   r9   r:   r8   r;   r<   r  Úseedc                 óô  — t         j                  j                  |«      }d\  }}|j                  ||«      }|j                  |«      }t        j                  ||«      d|j                  |«      z  z   }d}| dk(  }	t        «       }
| dk(  rdnd}t         j                  t         j                  fD ]9  }t        |j                  |«      |j                  |«      || |d |	dd	d
d
¬«      |
|<   Œ; |
t         j                     j                  t         j                  k(  sJ ‚|
t         j                     j                  t         j                  k(  sJ ‚t        |
t         j                     |
t         j                     |¬«       y )NrQ  rº   rƒ   r  r8   rX   rb  r�  r†   F)	rz   r€   rU   rŒ   r+  r½   rˆ   Úreturn_n_iterr†  r£   )r@   rb   rc   rÒ   rÇ   rŽ   r4  r7  r   r?  rA  r*   )r€   rŸ  rU   rR   rS   rp   r™   ry   rz   r+  Úresultsr¤   Úcurrent_dtypes                rF   Ú%test_ridge_regression_dtype_stabilityr¤  �  sN  € ô
 —9‘9×(Ñ(¨Ó.€LØ Ñ€IˆzØ×Ñ˜9 jÓ1€AØ×Ñ˜jÓ)€DÜ
�‰ˆq�$‹˜$ ×!3Ñ!3°IÓ!>Ñ>Ñ>€AØ€EØ˜Ñ €HÜ‹f€Gð ˜[Ò(‰4¨d€DÜŸ*™*¤b§j¡jÐ1ò 
ˆÜ!1Ø�H‰H�]Ó#Ø�H‰H�]Ó#ØØØ%ØØØØØØ"ô"
ˆ�Òð
ð ”2—:‘:Ñ×$Ñ$¬¯
©
Ò2Ð2Ð2Ø”2—:‘:Ñ×$Ñ$¬¯
©
Ò2Ð2Ð2Ü�GœBŸJ™JÑ'¨´·±Ñ)<À4ÖHrH   c                  ó¬   — t        d¬«      \  } }t        j                  | «      } | d d d…d d …f   } |d d d…   }t        d¬«      j	                  | |«       y )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ˆ&‰	€AØ	‰#ˆAˆ#‰€AÜ	�Ô×Ñ˜A˜qÕ!rH   zClassifier, paramsc                 ón  — t        dd¬«      \  }}|j                  dd«      }t        j                  ||gd¬«      } | d	i |¤Žj	                  ||«      }|j                  |«      }|j                  |j                  k(  sJ ‚t        |dd…df   |dd…df   «       t        d¬«      j	                  ||«       y)
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�D€A€qØ	�	‰	�"�aÓ€AÜ
�‰˜˜1�v AÔ&€AÙ
Ñ
�vÑ
×
"Ñ
" 1 aÓ
(€CØ�[‰[˜‹^€Fà�<‰<˜1Ÿ7™7Ò"Ð"Ð"Ü�vša ˜d‘| VªA¨q¨D¡\Ô2Ü	�Ô×Ñ˜A˜qÕ!rH   rž  r  )rX   rº   r5  rƒ   c                 óR  — t        j                  ddgddgddgddgg«      }t        j                  dd	g«      }|rd
}|j                  |«      |z   }n|j                  |«      }t        |d| |¬«      }|j	                  ||«       t        j
                  |j                  dk\  «      sJ ‚y)z:Test that positive Ridge finds true positive coefficients.rV   rJ   rü   rQ   rÍ   r¼  r  r   rY   rë   T©rz   r+  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€AÜ�8‰8�Q˜�HÓ€DÙØˆ	Ø�E‰E�$‹K˜)Ñ#‰à�E‰E�$‹KˆäØ˜d¨6Àô€Eð 
‡I�Iˆa�„OÜ�6‰6�%—+‘+ Ñ"Ô#Ð#Ñ#rH   c                 ó´  — t         j                  j                  d«      }|j                  dd«      }|j	                  dd|j
                  d   ¬«      }| rd}||z  |z   }n||z  }||j                  |j
                  d   ¬«      d	z  z  }g }d
D ]<  }t        ||| d¬«      }	|j                  |	j                  ||«      j                  «       Œ> t        |dddœŽ y)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ê   é,  rq  r5  rƒ   rV   r_   r   rº   )TFr†   )rz   r+  r�   rˆ   r‰  r=  N)r@   rb   rc   rÒ   re   r—   rf   r   r¬  r�   r”   r*   )
r�   rz   ro   rp   r™   rž   ry   r¢  r+  r�   s
             rF   Ú%test_ridge_ground_truth_positive_testr°  è  sØ   € ô �)‰)×
Ñ
 Ó
#€CØ�	‰	�#�sÓ€AØ�;‰;�s˜C a§g¡g¨a¡jˆ;Ó1€DÙØˆ	Ø�‰H�yÑ ‰à�‰HˆØˆ�‰˜Ÿ™ ™ˆÓ	$ tÑ	+Ñ+€Aà€GØ!ò .ˆÜØ (¸-ÈUô
ˆð 	�‰�u—y‘y  A“×,Ñ,Õ-ð	.ô
 �W 4¨aÔ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  |j                  ||«       ddd«       t        j                  t
        d¬«      5  t        |||d| d¬«      \  }}ddd«       y# 1 sw Y   ŒBxY w# 1 sw Y   yxY w)z5Test input validation for positive argument in Ridge.r5  rV   rJ   rü   rQ   rW   TFr¬  zdoes not support positiverÎ   Nzonly 'lbfgs' solver can be used)r+  r€   r†  )r@   rï   r   r’   rñ   rò   r�   r   )r€   rz   rp   r™   ry   r�   rw   s          rF   Útest_ridge_positive_error_testr²  	  sÆ   € ð
 €EÜ
�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ�8‰8�Q˜�GÓ€DØ	ˆD‰€Aä˜¨°VÈ5ÔQ€EÜ	�‰”zÐ)DÔ	Eñ Ø�	‰	�!�QŒ÷ô 
�‰”zÐ)JÔ	Kñ 
ÜØˆq�% $¨vÈô
‰ˆˆ1÷
ð 
÷ð ú÷
ð 
ús   Á$B8ÂCÂ8CÃCc                 ó&  ‡ ‡	‡
— t        ddd¬«      \  Š	Š
dŠ d}dˆ	ˆ ˆ
fd„	}t        ‰ ¬«      j                  ‰	‰
«      }t        ‰ d	¬
«      j                  ‰	‰
«      } ||«      } ||«      }||k  sJ ‚t        |«      D ]  } |||¬«      }||k  rŒJ ‚ y)z?Check ridge loss consistency when positive argument is enabled.r¯  rê   r}  r5  rq  Nc                 óh  •— | j                   }|�Ut        j                  j                  |«      }| 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ˆCØ—;‘; §¡¨Q°À%Ç+Á+×BSÑBS Ó!TÑT‰Dà—;‘;ˆDà”R—V‘V˜Q  T¡™\¨IÑ5¸!Ñ;Ó<Ñ<¸sÀU¹{ÌRÏVÉVØ�!‰GóN
ñ @
ñ 
ð 	
rH   rÃ   T)rz   r+  r  )Nr¢   )r   r   r�   rv  )rz   Ún_checksr¶  r�   Úmodel_positiveÚlossÚloss_positiverU   Úloss_perturbedrp   ry   s   `        @@rF   Útest_positive_ridge_lossr¼  	  s«   ú€ ô  S°SÀrÔJ�D€A€qØ€EØ€H÷

ô ˜Ô×"Ñ" 1 aÓ(€EÜ °Ô6×:Ñ:¸1¸aÓ@€Nñ
 �eÓ€DÙ˜~Ó.€MØ�=Ò Ð Ð ô ˜h›ò /ˆÙ# 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
¬«       y)zETest that LBGFS gets almost the same coef of svd when positive=False.r¯  rê   r}  rV   Frm  i ¡ )r+  rˆ   r½   rƒ  r   r=  N)r   r@   Úexpand_dimsr%  r   r   r*   )rz   rp   ry   ÚconfigÚ
coef_lbfgsrö   s         rF   Útest_lbfgs_solver_consistencyrÁ  =	  sw   € ô  S°SÀrÔJ�D€A€qÜ
�‰�q˜!Ó€AÜ�J‰J˜�wÓ€EàØØñ€Fô ˜a  EÑ4¨VÑ4€JÜ˜q ! UÓ+€MÜ�J °D¸qÖ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  |j                  | |«       ddd«       y# 1 sw Y   yxY w)z1Test that LBFGS solver raises ConvergenceWarning.rV   rW   g    _ Âg    _ Brº   r  Frí   T)rz   r€   r�   rˆ   r+  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ñ Ø�	‰	�!�QŒ÷÷ ñ ús   ÁA;Á;Br;  c                 ón  — |� |dk(  s|dv r| rt        j                  d«       t        j                  j	                  d«      }d}|dk(  r|dz  }n|dz  }|j                  ||«      }|j                  |«      }	|� ||«      }t        | d	||d
k(  |d¬«      }
t        di |
¤Žj                  ||	d¬«      }|j                  j                  «       }| r|j                  }t        j                  |	«      }|j                  ||	|¬«       t        |j                  |d¬«       | rt        |j                  «       |j                  dd|j                  d   ¬«      }d|dd |	ddxxx dz  ccc |j                  ||	|¬«       |j                  j                  «       }| r|j                  }|j                  |dd…dd…f   |	dd |dd ¬«       t        |j                  |d¬«       | rt        |j                  «       t        di |
¤Žj!                  t        j"                  |
d   z  ¬«      }|j                  ||	t        j"                  |z  ¬«       |dv r| st        j$                  d|› d�«       t        |j                  |d¬«       | rt        |j                  «       |�|j'                  «       }t        j(                  ||d|dz   gd¬«      }t        j(                  |	|	d|dz   g«      }|j                  «       }|d|dz  xxx dz  ccc t        j(                  ||d|dz   gd¬«      }|� ||«      } ||«      }t        di |
¤Žj                  ||	|¬«      }t        di |
¤Žj                  |||¬«      }t        |j                  |j                  «       | r!t        |j                  |j                  «       yy)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   rU  rJ   rƒ   r  rí   )r�   rz   r€   r+  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   rR  rŽ   r   r�   r”   r'  r‘   Ú	ones_liker*   re   r—   r¸  Úpir±   Útoarrayr¥   )r�   r¹   r;  r€   rl   ro   rR   rS   rp   ry   rN   rØ  r™   rž   rŒ   r=  ÚX2Úy2Úsample_weight_1Úsample_weight_2r<  s                        rF   Ú$test_ridge_sample_weight_consistencyrÍ  _	  s{  € ð Ð#Ø�UŠ?˜vÐ)=Ñ=Á-Ü�K‰KÐ3Ô4ô
 �)‰)×
Ñ
 Ó
#€CØ€IØˆv‚~Ø !‘^‰
à ‘]ˆ
à�‰�˜JÓ'€AØ�‰�Ó€AØÐ#Ù˜QÓˆÜØ#ØØØ˜GÑ#Ø'Øô€Fô ‰/�&‰/×
Ñ
˜a °$Ð
Ó
7€CØ�9‰9�>‰>Ó€DÙØ—N‘Nˆ	Ü—L‘L “O€MØ‡G�GˆAˆq €GÔ.Ü�C—I‘I˜t¨$Õ/ÙÜ˜Ÿ™¨	Ô2ð
 —K‘K D¨q°q·w±w¸q±z�KÓB€MØ€M�"�#ÐØ€b€cƒFˆd�NƒFØ‡G�GˆAˆq €GÔ.Ø�9‰9�>‰>Ó€DÙØ—N‘Nˆ	Ø‡G�GˆAˆcˆrˆc’1ˆf‰I�q˜˜"�v¨]¸3¸BÐ-?€GÔ@Ü�C—I‘I˜t¨$Õ/ÙÜ˜Ÿ™¨	Ô2ô ‰?�6‰?×%Ñ%¬B¯E©E°F¸7±OÑ,CÐ%ÓD€DØ‡H�HˆQ�¤§¡¨Ñ!6€HÔ7Ø�Ñ ©Ü�‰�w˜v˜hÐ&SÐTÔUÜ�D—J‘J ¨4Õ0ÙÜ˜Ÿ™¨Ô3ð Ð#Ø�I‰I‹KˆÜ	�‰˜˜AÐ. 	¨Q¡Ð/Ð0°qÔ	9€BÜ	�‰˜˜AÐ. 	¨Q¡Ð/Ð0Ó	1€BØ#×(Ñ(Ó*€OØÐ$�i 1‘nÓ%¨Ñ*Ó%Ü—n‘nØ	˜Ð&6¨	°Q©Ð7Ð8¸qô€Oð Ð#Ù˜QÓˆÙ˜bÓ!ˆÜ‰?�6‰?×Ñ˜q !°?ÐÓC€DÜ‰?�6‰?×Ñ˜r 2°_ÐÓE€DÜ�D—J‘J §
¡
Ô+ÙÜ˜Ÿ™¨¯©Õ9ð rH   )rr  rZ   )rZ   rr  Úno_swÚwith_swÚno_interceptÚwith_interceptró   c                 óÜ  — |\  }}t        |||d¬«      \  }}|r-t        j                  |j                  d   f¬«      }	d|	ddd…<   nd}	t        j                  ddd	«      }
t        | |
d
|d¬«      }|j                  |||	¬«       t        j                  g |j                  ¢t        |
«      ‘­¬«      }t        «       }t        |
«      D ]‹  \  }}t        |j                  ||«      «      D ]h  \  }\  }}t        ||d¬«      }|r|j                  ||   ||   |	|   ¬«       n|j                  ||   ||   «       |j                  ||   «      ||d|f<   Œj Œ� t        |j                  |d¬«       y)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Í   rG  T)rQ  r<  rH  r�   rI  r‹   r7   )rz   r�   r€   .r‰  r‡  )r   r@   r–   r—   ræ  r   r�   Úemptyr  r    Ú	enumerater�  r   r°   r*   rK  )rQ  rT  rz  r�   ró   rR   rS   rp   ry   rŒ   r<  r¹  r—  ra  Ú	alpha_idxrz   ÚidxÚ	train_idxÚtest_idxrà   s                       rF   Ú!test_ridge_cv_results_predictionsrÚ  Â	  sˆ  € ð. $Ñ€IˆzÜØ¨
¸iÐVWô�D€A€qñ ÜŸ™ q§w¡w¨q¡z mÔ4ˆØ ˆ‘c˜�cÒàˆô �[‰[˜˜Q Ó"€Fô ØØØ(Ø#Øô€Hð ‡L�L��A ]€LÔ3ô —(‘(Ð!8 1§7¡7Ð!8¬C°«KÑ!8Ô9€KÜ	‹€BÜ% fÓ-ò 	JÑˆ	�5Ü*3°B·H±H¸QÀ³NÓ*Cò 	JÑ&ˆCÑ&�)˜XÜ °]È5ÔQˆEÙ!Ø—	‘	Ø�i‘L ! I¡,¸mÈIÑ>Vð õ ð —	‘	˜!˜I™,¨¨)©Ô5Ø/4¯}©}¸Q¸x¹[Ó/IˆK˜˜S )Ð+Ò,ñ	Jð	Jô �H×(Ñ(¨+¸DÖArH   c                 óö  — |\  }}t        ||d|¬«      \  }}t        j                  |«      }t        | dd¬«      }|j	                  |||¬«       t        «       }	t        |j                  ¬«      }
t        j                  |	j                  |«      D ��cg c]4  \  }}|
j	                  ||   ||   ||   ¬«      j                  ||   «      ‘Œ6 c}}«      }t        |j                  t        ||«       «       yc c}}w )	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Ó  rG  T)rQ  rH  rI  r‹   rÃ   N)r   r@   r–   r   r�   r    r   rc  Úsqueezer�  r°   r*   rÂ  r   )rQ  rT  rl   rR   rS   rp   ry   rŒ   r¹  ra  rà   ÚtrainÚtestÚ
y_pred_loos                 rF   Ú'test_ridge_cv_multioutput_sample_weightrà  
  s÷   € ð $Ñ€IˆzÜØØØØ'ô	�D€A€qô —G‘G˜IÓ&€MäØÐ#;Èdô€Hð ‡L�L��A ]€LÔ3ä	‹€BÜ˜Ÿ™Ô(€EÜ—‘ð
  "Ÿx™x¨›{÷		
ñ ��tð �I‰I�a˜‘h  %¡¸ÀeÑ8LˆIÓM×UÑUØ�$‘õó	
ó€Jô �H×(Ñ(Ô+=¸aÀÓ+LÐ*LÕMùó	
s   Â9C5
c                 óÆ  ‡— | \  }}t        ||dd¬«      \  }}d„ Šˆfd„}t        |¬«      }|j                  ||«       t        «       }t	        |j
                  ¬«      }t        j                  |j                  |«      D �	�
cg c]/  \  }	}
|j                  ||	   ||	   «      j                  ||
   «      ‘Œ1 c}
}	«      }t        |j                   ‰||«       «       yc c}
}	w )	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
  sP   € Ø˜6‘/ aÑ'ˆÜ—g‘g˜f¨1Ô-ˆØ×Ñ˜qÒ ä—J‘J˜{°Q¸°FÔ;Ð;Ð;ð ˆ|ÐrH   c                 ó6   •—  ‰|| j                  |«      «       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Ó5Ð5Ð5rH   )rH  rÃ   N)r   r   r�   r    r   rc  r@   rÜ  r�  r°   r*   rÂ  )rT  rR   rS   rp   ry   ré  r¹  ra  rà   rÝ  rÞ  rß  rç  s               @rF   Ú'test_ridge_cv_custom_multioutput_scorerrê  (
  sÍ   ø€ ð $Ñ€IˆzÜØ¨
¸aÈaô�D€A€qòô6ô Ð8Ô9€HØ‡L�L��AÔä	‹€BÜ˜Ÿ™Ô(€EÜ—‘ØKMÏ8É8ÐTUË;×W¹K¸EÀ4ˆ�‰�1�U‘8˜Q˜u™XÓ	&×	.Ñ	.¨q°©wÕ	7ÓWó€Jô �H×(Ñ(©<¸¸:Ó+FÐ*FÕGùó 	Xs   Â4C
Úmetaestimator)Úenable_metadata_routingc                 ó.   —  | «       j                  «        y)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   € ñ ƒO×(Ñ(Õ*rH   zmetaestimator, make_datasetc                 óž   —  |ddd¬«      \  }}t        | «      } | j                  ||t        j                  |j                  d   «      ¬«       y)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.rq  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
  sF   € ñ  #°!À"ÔE�D€A€qÜ˜-Ó(€MØ×Ñ�a˜¬"¯'©'°!·'±'¸!±*Ó*=ÐÕ>rH   )rq  rq  r¡   rZ   rV   g      *@rY  rY  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Údiabetesr;  rõ   rÆ   rÄ   rî   r—   Úindrb   rc   ro   r$  Ú	load_irisr:  rÖ  rÕ  rG   rK   Úfixturer   ÚmarkÚparametrizerŸ   r©   r«   r²   r¶   r¸   rÁ   rË   rÕ   rá   rã   rè   rú   r	  r  r  r/  rC  rP  r4  r7  r%  rg  rl  ry  r‚  r„  rˆ  rœ  r¦  rµ  rº  rÀ  rÃ  rË  rÎ  rÒ  rÙ  rß  rç  rë  r  r	  r  r  r"  Úsortedr*  r/  r8  r>  r@  rE  rH  rL  rO  rV  rd  ri  rk  rò   Ú	TypeErrorro  rq  rs  r)  ry  r}  r�  r…  r–   rï   rŽ  r›  rž  rv  r¤  r§  rª  r­  r°  r²  r¼  rÁ  rÃ  rÍ  rÚ  rà  rê  rï  rñ  r�   rH   rF   ú<module>r     sU  ðÛ Ý ã Û Ý ç ,Ý ÷ó õ 2÷÷ ÷÷ ñ ÷ HÑ G÷õ õ /Ý ,÷õ õ S÷õ ÷÷÷ ò B€Ø 4Ð Ø#SÐ  à!ˆ8×!Ñ!Ó#€Ø!Ÿ™¨¯©Ð €
ˆJØ€b‡i�i�
× Ñ  Ñ#Ó$€Ø‡i�i×Ñ˜AÓ€Ø ‡�ˆCÔ Ø	ˆ$ˆ3€i€Ø# C™¨*°S©/Ð €
ˆJà€x×ÑÓ€Ø—‘˜DŸK™K€€ˆò%ò+ð €‡�˜ Ð'Ô(ñC&ó )ðC&ðL ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ)#ó 9ó ,ð)#ðX ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ#?ó 9ó ,ð#?ðL ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ%2ó 9ó ,ð%2ðP ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ2+ó 9ó ,ð2+ðj ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ28ó 9ó ,ð28ðj ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8ñ2+ó 9ó ,ð2+ðj ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨4°¨-Ó8Ø‡�×ÑÐ+¨d¨V°nÑ-DÓEØ‡�×Ñ˜ 3¨ +Ó.ñ/'ó /ó Fó 9ó ,ð/'òd+ò
ò4ò<>ò$0ò*ð@ ‡�×Ñ˜Ò"2Ó3Ø‡�×Ñ˜¨.Ó9ñ
Dó :ó 4ð
Dð ‡�×Ñ˜Ò"NÓOØ‡�×ÑÐ*¨T°5¨MÓ:Ø‡�×Ñ˜¨.Ó9ñ.ó :ó ;ó Pð.ð" ‡�×Ñ˜Ò"NÓOØ‡�×ÑÐ*¨T°5¨MÓ:Ø‡�×Ñ˜¨.Ó9ñ3ó :ó ;ó Pð3ð$ ØØØØØ	ØØ
ØØ	ØØó*ðZ ‡�×ÑØñá*1ÚGØˆF�^Ñ#ó+
ôó
ð ‡�×ÑØ(ÚFóñ+Ró	ó
ð+Rò\5ð, ‡�×Ñ˜ e¨WÐ%5Ó6Ø‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜¨¯©¨°~Ñ(EÓFØ‡�×Ñ˜ W¨hÐ$7¸fÀfÐ=MÐÓNØ‡�×Ñ˜¨4°¨-Ó8Ø‡�×ÑØòóñ)Kóó 9ó Oó Gó <ó 7ð)KòX
Jð ‡�×Ñ˜ 5¨$ -°lÀKÐ5PÐÓQØ‡�×Ñ˜Ò#KÓLØ‡�×Ñ˜¨4°¨-Ó8Ø‡�×Ñ˜ Y°	Ð$:ÀÈÐ@PÐÓQØ‡�×Ñ˜¨¯©¨°~Ñ(EÓFñFó Gó Ró 9ó Mó Rð
Fð2 ‡�×Ñ˜ 5¨$ -°lÀKÐ5PÐÓQØ‡�×Ñ˜ i [Ó1Ø‡�×Ñ˜¨4°¨-Ó8Ø‡�×ÑØÚ$Ú"ð ó ð
 ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜¨¯©¨°~Ñ(EÓFñ*Ió Gó <óó 9ó 2ó Rð*IðZ ‡�×Ñ˜ 5¨$ -°lÀKÐ5PÐÓQØ‡�×Ñ˜ e¨WÐ%5Ó6Ø‡�×Ñ˜¨4°¨-Ó8Ø‡�×ÑØÚ$Ú"ð ó ð
 ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×Ñ˜¨¯©¨°~Ñ(EÓFñIó Gó <óó 9ó 7ó RðIò<Kð@ ‡�×Ñ˜ e¨WÐ%5Ó6Ø‡�×Ñ˜¨¯©¨°~Ñ(EÓFØ‡�×Ñ˜¨¨2 wÓ/Ø‡�×ÑØ#òóñ=Góó 0ó Gó 7ð=Gð@ ‡�×ÑÐ+¨d¨V°nÑ-DÓEØ‡�×ÑØÚÚ"ð ó ð
 ‡�×Ñ˜Ò%=Ó>ñ:ó ?óó Fð:ò(6òr3ð$ ‡�×ÑØá	 %Ô	(¨/Ð:Ù	¨EÔ	2Ð4GÐHðóñ-óð-ð ‡�×ÑØÙƒi�Ð!Ñ$5Ó$7Ð9LÐ#MÐNóð ‡�×Ñ˜  a˜yÓ)ñ0ó *ó	ð
0òDòN3òPò,ð$ ‡�×Ñ˜ T¨:Ð7IÐ$JÓKØ‡�×Ñ˜ ¡e¨A£hÐ/Ó0Ø‡�×ÑÐ+¨d¨V°nÑ-DÓEñ"ó Fó 1ó Lð"ð ‡�×Ñ˜ ¡e¨A£hÐ/Ó0Ø‡�×ÑÐ+¨d¨V°nÑ-DÓEñ2ó Fó 1ð2ò ð EIó$
ðN ‡�×ÑØ.Ù-Ó/óð ‡�×ÑØØ%Ð'AÐBØ ð ó ð
 ‡�×ÑØá�UÔÙ˜uÔ%Ù˜ÔÙ˜Ô!ÙÓðð 	!ð ó 
ñ
ó
óó	ð(
ð ‡�×ÑØ‘/¨Ô/Ñ1BÓ1DÐEóð ‡�×ÑØ.Ù-Ó/óñXó	óðXð& ‡�×ÑØ.Ù-Ó/óñó	ðð: ‡�×ÑØÑ'ÀÔGóñ',óð',ðT ‡�×ÑÐ*©FÐ3IÓ,JÓKñFó LðFð. ‡�×ÑØàØØØ"ØØðó
ð ‡�×Ñ˜¨.Ó9ñDó :ó
ðDò ?ðF ‡�×Ñ˜ Ð2CÐ DÓEñ0ó Fð0ò8Að ‡�×ÑØ�Ð.Ð0LÐMóñóðð: ‡�×Ñ˜ T¨:Ð7IÐ$JÓKñCó LðCð8 ‡�×Ñ˜ wÐ0AÐ&BÓCñ=ó Dð=ð( ‡�×Ñ˜  a˜yÓ)Ø‡�×Ñ˜ wÐ0AÐ&BÓCñó Dó *ðò(Kò0$!ðN ‡�×ÑÐ/°1°a°&¸1¸a¸&Ð1AÓBØ‡�×ÑØØ�^Ñ# nÑ4°~ÑEÈÑVóñPó	ó Cð
Pò"ð ‡�×Ñ˜ wÐ0AÐ&BÓCØ‡�×ÑØà
�MÐ	" JÐ0SÐTàÐ*Ð+ØØ1ð	
ð �}Ð%ØØ@ð	
ðóñ &ó!ó Dð"&ð ‡�×Ñ˜ wÐ0AÐ&BÓCñ"ó Dð"ò"5ð ‡�×ÒÐKÓLñ#ó Mð#ð$ ‡�×Ñ˜Ò#IÓJØ‡�×ÑÐ-°°e¨}Ó=Ø‡�×Ñ˜¨.Ó9ñ#Fó :ó >ó Kð#FðL ‡�×Ñ˜Ò#>Ó?Ø‡�×Ñ˜¨.Ó9ñ#ó :ó @ð#ð ‡�×ÑÐ-°°e¨}Ó=Ø‡�×Ñ˜¨.Ó9ñWó :ó >ðWð8 ‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×Ñ˜¨4°°·²¸³Ð*?Ó@Ø‡�×Ñ˜ r§x¢x j°>Ñ&AÓBØ‡�×ÑØÒOóñ6<óó Có Aó <ð6<ðr ‡�×ÑØÒNóñJóðJòDCð< ‡�×ÑØÒNóð ‡�×Ñ˜¡ q£Ó*ñIó +óðIò@"ð ‡�×ÑØà	˜"ÐØ	˜T 4˜LÐ)Ø	˜T 1˜IÐ&ðóñ"óð"ð ‡�×Ñ˜ F¨GÐ#4Ó5Ø‡�×Ñ˜¨4°¨-Ó8Ø‡�×Ñ˜Ò"8Ó9ñ$ó :ó 9ó 6ð$ð" ‡�×Ñ˜¨4°¨-Ó8Ø‡�×Ñ˜Ò"8Ó9ñ1ó :ó 9ð1ð2 ‡�×ÑØÒEóñ
óð
ð" ‡�×Ñ˜Ò"8Ó9ñ"/ó :ð"/ðJ ‡�×Ñ˜Ò"8Ó9ñBó :ðBò ð" ‡�×Ñ˜¨5°$¨-Ó8Ø‡�×ÑÐ+¨d¨V°nÑ-DÓEØ‡�×Ñ˜ &¨&Ð!1Ó2Ø‡�×Ñ˜ 7¨g¨YÑ#6Ó7ñ\:ó 8ó 3ó Fó 9ð\:ð~ ‡�×Ñ˜ X¨xÐ$8¸vÀvÐ>NÐÓOØ‡�×ÑÐ-°°t¨}À7ÈIÐBVÐÓWØ‡�×ÑØ�e˜T�]¨Ð9IÐ(Jð ó ð ‡�×Ñ˜ e¨WÐ%5Ó6Ø‡�×Ñ˜ q¨! fÓ-ñ8Bó .ó 7óó Xó Pð8Bðv ‡�×Ñ˜ e¨WÐ%5Ó6Ø‡�×Ñ˜ X¨xÐ$8¸vÀvÐ>NÐÓOñNó Pó 7ðNðD ‡�×Ñ˜ X¨xÐ$8¸vÀvÐ>NÐÓOñHó PðHðJ ‡�×Ñ˜¨7Ð4EÐ*FÓGÙ¨Ô-ñ+ó .ó Hð+ð ‡�×ÑØ!á	‹�OÐ$Ù	Ó	Ð1Ð2ðóñ ¨Ô-ñ?ó .óñ?rH   