§
    qŠtjx  ã                   óÂ  — d Z ddlZddlZddlmZmZ ddlmZ ddl	m
Z
mZ ddlmZ ddgZ ej        d	¬
¦  «        d„ ¦   «         Zej                             ddg¦  «        ej                             dd¦  «        d„ ¦   «         ¦   «         Zej                             dd¦  «        d„ ¦   «         Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dd¦  «        d„ ¦   «         Zej                             de¦  «        d„ ¦   «         Zd„ Zej                             dd¦  «        ej                             dddg¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         ¦   «         Zej                             dd¦  «        ej                             de¦  «        d„ ¦   «         ¦   «         Zej                             de¦  «        d „ ¦   «         Zej                             de¦  «        d!„ ¦   «         Zd"„ Zej                             d#g d$¢¦  «        ej                             dd¦  «        d%„ ¦   «         ¦   «         ZdS )&zTest truncated SVD transformer.é    N)ÚPCAÚTruncatedSVD)Úcheck_random_state)Úassert_allcloseÚassert_array_less)Ú_sparse_random_arrayÚarpackÚ
randomizedÚmodule)Úscopec                  ó–   — t          d¦  «        } t          ddd| ¬¦  «        }dt          j        |j        ¦  «        z   |j        d d …<   |S )Né*   )é<   é7   çš™™™™™É?Úcsr)ÚdensityÚformatÚrngé   )r   r   ÚnpÚlogÚdata)r   ÚXs     úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/decomposition/tests/test_truncated_svd.pyÚX_sparser      sJ   € õ ˜RÑ
 Ô
 €CÝ˜X¨s¸5ÀcÐJÑJÔJ€AØ•B”F˜1œ6‘N”NÑ"€A„Fˆ1ˆ1ˆ1�IØ€Hó    ÚsolverÚkind)ÚdenseÚsparsec                 ó  — |dk    r| n|                       ¦   «         }t          dd¬¦  «        }t          d|dd¬¦  «        }|                     |¦  «        d d …d d…f         }|                     |¦  «        d d …d d…f         }t          ||d	¬
¦  «         t	          j        |j        ¦  «        }t	          j        |j        ¦  «        }	t          |d d…         |	d d…         d¬
¦  «         t          |dd …         |	dd …         d¬¦  «         d S )Nr!   é   r	   ©Ú	algorithmr   éd   )r%   Úrandom_stateÚn_oversamplesé   gü©ñÒMb`?©Úrtolé	   gü©ñÒMbP?ç{®Gáz„?©Úatol)Útoarrayr   Úfit_transformr   r   ÚabsÚcomponents_)
r   r   r   r   Úsvd_aÚsvdÚXaÚXrÚcomp_aÚcomps
             r   Útest_solversr:      s  € ð ˜HÒ$Ð$ˆˆ¨(×*:Ò*:Ñ*<Ô*<€AÝ˜ xÐ0Ñ0Ô0€EÝ
�r V¸"ÈCÐ
PÑ
PÔ
P€Cà	×	Ò	˜QÑ	Ô	    2 A 2 Ô	&€BØ	×	Ò	˜1Ñ	Ô	˜a˜a˜a  ! ˜eÔ	$€BÝ�B˜ Ð&Ñ&Ô&Ð&åŒV�EÔ%Ñ&Ô&€FÝŒ6�#”/Ñ"Ô"€Då�F˜2˜A˜2”J  R a R¤¨tÐ4Ñ4Ô4Ð4Ý�F˜1˜2˜2”J  Q R R¤¨tÐ4Ñ4Ô4Ð4Ð4Ð4r   Ún_components)é
   é   é)   r   c                 ó¦   — |j         d         }t          | ¦  «                             |¦  «        }|j        | k    sJ ‚|j        j         | |fk    sJ ‚d S )Nr   )Úshaper   Úfitr;   r3   )r;   r   Ú
n_featuresÚtsvds       r   Útest_attributesrD   )   s_   € à” Ô"€JÝ˜Ñ%Ô%×)Ò)¨(Ñ3Ô3€DØÔ Ò,Ð,Ð,Ð,ØÔÔ! l°JÐ%?Ò?Ð?Ð?Ð?Ð?Ð?r   zalgorithm, n_components))r	   r   )r	   é8   )r
   rE   c                 ó¶   — t          ||¬¦  «        }t          j        t          ¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r;   r%   )r   ÚpytestÚraisesÚ
ValueErrorrA   )r   r%   r;   rC   s       r   Útest_too_many_componentsrJ   1   sœ   € õ  \¸YÐGÑGÔG€DÝ	Œ•zÑ	"Ô	"ð ð Ø�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   «AÁAÁAÚfmt)Úarrayr   ÚcscÚcooÚlilc                 ó:  — |j         d         }| dk    r|                     ¦   «         n t          |d| z   ¦  «        ¦   «         }t          d¬¦  «        }|                     |¦  «        }|j         |dfk    sJ ‚|                     |¦  «        }|j         |dfk    sJ ‚d S )Nr   r    Útoé   ©r;   )r@   r0   Úgetattrr   r1   Ú	transform)rK   r   Ú	n_samplesÚXfmtrC   ÚXtranss         r   Útest_sparse_formatsrY   ?   s«   € à”˜qÔ!€IØ!$¨¢ ˆ8×ÒÑÔÐÐ5RµW¸XÀtÈcÁzÑ5RÔ5RÑ5TÔ5T€DÝ RÐ(Ñ(Ô(€DØ×Ò Ñ%Ô%€FØŒ<˜I r˜?Ò*Ð*Ð*Ð*Ø�^Š^˜DÑ!Ô!€FØŒ<˜I r˜?Ò*Ð*Ð*Ð*Ð*Ð*r   Úalgoc                 óÈ   — t          dd| ¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          ||                     ¦   «         dd¬¦  «         d S )Né4   r   )r;   r'   r%   gš™™™™™¹?r   )r+   r/   )r   r1   Úinverse_transformr   r0   )rZ   r   rC   ÚXtÚXinvs        r   Útest_inverse_transformr`   J   sg   € õ  R°bÀDÐIÑIÔI€DØ	×	Ò	˜HÑ	%Ô	%€BØ×!Ò! "Ñ%Ô%€DÝ�D˜(×*Ò*Ñ,Ô,°4¸dÐCÑCÔCÐCÐCÐCr   c                 óÐ   — | j         d         }|                      t          j        ¦  «        }t	          d¬¦  «        }|                     |¦  «        }|j         ||j        fk    sJ ‚d S )Nr   r)   rS   )r@   Úastyper   Úint64r   r1   r;   )r   rV   ÚXintrC   rX   s        r   Útest_integersre   T   se   € Ø”˜qÔ!€IØ�?Š?�2œ8Ñ$Ô$€DÝ QÐ'Ñ'Ô'€DØ×Ò Ñ%Ô%€FØŒ<˜I tÔ'8Ð9Ò9Ð9Ð9Ð9Ð9Ð9r   r<   é   c                 óÖ  — |dk    r| n|                       ¦   «         }t          ||¬¦  «        }|                     |¦  «        }t          d|j        ¦  «         t          |j                             ¦   «         d¦  «         t          j        |                       ¦   «         d¬¦  «                             ¦   «         }t          j        |d¬¦  «        }||z  }	t          |j        |	¦  «         d S )Nr!   r$   ç        ç      ð?r   ©Úaxis)	r0   r   r1   r   Úexplained_variance_ratio_Úsumr   Úvarr   )
r   r   r;   r   r   r5   ÚX_trÚtotal_varianceÚ	variancesÚtrue_explained_variance_ratios
             r   Útest_explained_variancers   \   sî   € ð ˜HÒ$Ð$ˆˆ¨(×*:Ò*:Ñ*<Ô*<€AÝ
�|¨vÐ
6Ñ
6Ô
6€CØ×Ò˜QÑÔ€Då�c˜3Ô8Ñ9Ô9Ð9õ �cÔ3×7Ò7Ñ9Ô9¸3Ñ?Ô?Ð?õ ”V˜H×,Ò,Ñ.Ô.°QÐ7Ñ7Ô7×;Ò;Ñ=Ô=€NÝ”�t !Ð$Ñ$Ô$€IØ$-°Ñ$>Ð!åØÔ%Ø%ñô ð ð ð r   c                 ó†  — |dk    r| n|                       ¦   «         }t          d|d¬¦  «                             |¦  «        }t          d|d¬¦  «                             |¦  «        }t          |j        |j        d d…         d¬¦  «         |j                             ¦   «         |j                             ¦   «         k    sJ ‚d S )Nr!   r<   )r%   Ún_iterrf   g{®Gázt?r*   )r0   r   rA   r   rl   rm   )r   r   r   r   Úsvd_10Úsvd_20s         r   Ú(test_explained_variance_components_10_20rx   t   sÏ   € ð ˜HÒ$Ð$ˆˆ¨(×*:Ò*:Ñ*<Ô*<€AÝ˜"¨°rÐ:Ñ:Ô:×>Ò>¸qÑAÔA€FÝ˜"¨°rÐ:Ñ:Ô:×>Ò>¸qÑAÔA€Fõ ØÔ(ØÔ(¨¨"¨Ô-Øðñ ô ð ð 	Ô(×,Ò,Ñ.Ô.°Ô1Q×1UÒ1UÑ1WÔ1WÒWÐWÐWÐWÐWÐWr   c           	      ó  — t           j                             |¦  «        }d\  }}|                     ||¦  «        }t	          d| |¬¦  «                             |¦  «        }|                     |¦  «        }t          t          j        |j	        dz  ¦  «        t           j
                             |d¦  «        dz  d¬¦  «         t          |j	        t          j        t          j        |dz  d¬	¦  «        ¦  «        d¬¦  «         d S )
N)r&   éP   é   ©r;   r%   r'   ç       @Úfror-   r*   r   rj   )r   ÚrandomÚRandomStateÚrandnr   rA   rU   r   rm   Úsingular_values_ÚlinalgÚnormÚsqrt)r   Úglobal_random_seedr   rV   rB   r   ÚpcaÚX_pcas           r   Ú test_singular_values_consistencyr‰   ˆ   sý   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ#Ñ€IˆzØ�	Š	�)˜ZÑ(Ô(€Aå
 A°ÀcÐ
JÑ
JÔ
J×
NÒ
NÈqÑ
QÔ
Q€Cð �MŠM˜!ÑÔ€EÝÝ
ŒˆsÔ# SÑ(Ñ)Ô)Ý
Œ	�Š�u˜eÑ$Ô$¨Ñ+Øðñ ô ð õ ØÔ�bœg¥b¤f¨U°C©Z¸aÐ&@Ñ&@Ô&@ÑAÔAÈðñ ô ð ð ð r   c                 ó  — t           j                             |¦  «        }d}d}|                     ||¦  «        }t	          d| |¬¦  «        }|                     |¦  «        }|t          j        t          j        |dz  d¬¦  «        ¦  «        z  }|d d …dfxx         dz  cc<   |d d …d	fxx         d
z  cc<   t          j        ||j	        ¦  «        }| 
                    |¦  «         t          |j        g d¢d¬¦  «         d S )Nr&   én   é   r|   r}   r   rj   ç‰A`åÐ"	@r   çX9´Èv¾@)r�   rŽ   ri   g›+¡†›„=r*   )r   r   r€   r�   r   r1   r…   rm   Údotr3   rA   r   r‚   )	r   r†   r   rV   rB   r   r‡   rˆ   Ú	X_hat_pcas	            r   Útest_singular_values_expectedr‘   Ÿ   s  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ€IØ€Jà�	Š	�)˜ZÑ(Ô(€Aå
 A°ÀcÐ
JÑ
JÔ
J€CØ×Ò˜aÑ Ô €Eà	�RŒW•R”V˜E 3™J¨QÐ/Ñ/Ô/Ñ0Ô0Ñ0€EØ	ˆ!ˆ!ˆ!ˆQˆ$€K€K„K�5Ñ€K€K�KØ	ˆ!ˆ!ˆ!ˆQˆ$€K€K„K�5Ñ€K€K�Kå”�u˜cœoÑ.Ô.€IØ‡G‚GˆIÑÔÐÝ�CÔ(Ð*=Ð*=Ð*=ÀEÐJÑJÔJÐJÐJÐJr   c                 ó”  — |                       ¦   «         }||                     d¬¦  «        z
  }t          dd¬¦  «        }t          dddi|¤Ž}t	          dddi|¤Ž}|                     |¦  «        }|                     |¦  «        }t          ||d	¬
¦  «         t          |j        dd	¬¦  «         t          |j        |j        ¦  «         d S )Nr   rj   r<   r   )r;   r'   r%   r	   Ú
svd_solverg•Ö&è.>r*   r.   © )	r0   ÚmeanÚdictr   r   r1   r   Úmean_r3   )r   ÚX_denseÚX_cÚparamsr5   r‡   ÚXt_svdÚXt_pcas           r   Útest_truncated_svd_eq_pcar�   ´   sÛ   € ð ×ÒÑ Ô €Gà
�G—L’L a�LÑ(Ô(Ñ
(€Cå˜r°Ð3Ñ3Ô3€Få
Ð
4Ð
4 Ð
4¨VÐ
4Ð
4€CÝ
Ð
,Ð
,˜Ð
, VÐ
,Ð
,€Cà×Ò˜sÑ#Ô#€FØ×Ò˜sÑ#Ô#€Få�F˜F¨Ð.Ñ.Ô.Ð.Ý�C”I˜q tÐ,Ñ,Ô,Ð,Ý�C”O S¤_Ñ5Ô5Ð5Ð5Ð5r   zalgorithm, tol, normalizer))r
   rh   Úauto)r
   rh   ÚQR)r
   rh   ÚLU)r
   rh   Únone)r	   g�íµ ÷Æ°>rž   )r	   rh   rž   c                 ó  — |dk    r| n|                       ¦   «         }t          ddd|||¬¦  «        }|                     |¦  «        }|                     |¦  «                             |¦  «        }t          ||¦  «         d S )Nr!   é   é   r   )r;   ru   r'   r%   Úpower_iteration_normalizerÚtol)r0   r   r1   rA   rU   r   )	r   r%   r¦   r   Ú
normalizerr   r5   ÚX_transformed_1ÚX_transformed_2s	            r   Útest_fit_transformrª   È   s‘   € ð ˜HÒ$Ð$ˆˆ¨(×*:Ò*:Ñ*<Ô*<€AÝ
ØØØØØ#-Øðñ ô €Cð ×'Ò'¨Ñ*Ô*€OØ—g’g˜a‘j”j×*Ò*¨1Ñ-Ô-€OÝ�O _Ñ5Ô5Ð5Ð5Ð5r   )Ú__doc__Únumpyr   rG   Úsklearn.decompositionr   r   Úsklearn.utilsr   Úsklearn.utils._testingr   r   Úsklearn.utils.fixesr   ÚSVD_SOLVERSÚfixturer   ÚmarkÚparametrizer:   rD   rJ   rY   r`   re   rs   rx   r‰   r‘   r�   rª   r”   r   r   ú<module>rµ      sn  ðØ %Ð %à Ð Ð Ð Ø €€€à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 4Ð 4Ð 4Ð 4Ð 4Ð 4à˜Ð&€ð €„�hÐÑÔðð ñ  Ôðð „×Ò˜ L >Ñ2Ô2Ø„×Ò˜Ð!4Ñ5Ô5ð5ð 5ñ 6Ô5ñ 3Ô2ð5ð  „×Ò˜Ð)9Ñ:Ô:ð@ð @ñ ;Ô:ð@ð „×ÒØðð ð ñô ðð ñô ðð „×Ò˜Ð EÑFÔFð+ð +ñ GÔFð+ð „×Ò˜ Ñ-Ô-ðDð Dñ .Ô-ðDð:ð :ð :ð „×Ò˜Ð!4Ñ5Ô5Ø„×Ò˜¨"¨b¨Ñ2Ô2Ø„×Ò˜ ;Ñ/Ô/ðð ñ 0Ô/ñ 3Ô2ñ 6Ô5ðð* „×Ò˜Ð!4Ñ5Ô5Ø„×Ò˜ ;Ñ/Ô/ðð ñ 0Ô/ñ 6Ô5ðð$ „×Ò˜ ;Ñ/Ô/ðð ñ 0Ô/ðð, „×Ò˜ ;Ñ/Ô/ðKð Kñ 0Ô/ðKð(6ð 6ð 6ð( „×ÒØ ðð ð ñ
ô 
ð „×Ò˜Ð!4Ñ5Ô5ð6ð 6ñ 6Ô5ñ
ô 
ð6ð 6ð 6r   