§
    rŠtjÖ  ã                   óX   — d Z ddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ dgZdd„ZdS )	zUtilities for random sampling.é    N)Úcheck_random_state)Úsample_without_replacement)Ú_align_api_if_sparser   c           	      ón  — t          j         d¦  «        }t          j         d¦  «        }t          j         ddg¦  «        }t          t          |¦  «        ¦  «        D �]}t          j        ||         ¦  «        ||<   ||         j        j        dk    rt          d||         j        z  ¦  «        ‚||                              t          j	        d¬¦  «        ||<   |€Pt          j
        ||         j        d         ¬¦  «        }|                     d||         j        d         z  ¦  «         nt          j        ||         ¦  «        }t          j        t          j        |¦  «        d	¦  «        s"t          d
                     |¦  «        ¦  «        ‚|j        d         ||         j        d         k    r@t          d                     |||         j        d         |j        d         ¦  «        ¦  «        ‚d||         vr5t          j        ||         dd¦  «        ||<   t          j        |dd¦  «        }t#          |¦  «        }	||         j        d         dk    �rt          j        ||         dk    ¦  «                             ¦   «         }
d||
         z
  }t)          | |z  ¦  «        }t+          | ||¬¦  «        }|                     |¦  «         ||         dk    }||         }|t          j        |¦  «        z  }t          j        |                     ¦   «         |	                     |¬¦  «        ¦  «        }|                     ||         |         |         ¦  «         |                     t          |¦  «        ¦  «         �Œt7          j        |||f| t          |¦  «        ft(          ¬¦  «        }t;          |¦  «        S )aä  Generate a sparse random matrix given column class distributions

    Parameters
    ----------
    n_samples : int,
        Number of samples to draw in each column.

    classes : list of size n_outputs of arrays of size (n_classes,)
        List of classes for each column.

    class_probability : list of size n_outputs of arrays of         shape (n_classes,), default=None
        Class distribution of each column. If None, uniform distribution is
        assumed.

    random_state : int, RandomState instance or None, default=None
        Controls the randomness of the sampled classes.
        See :term:`Glossary <random_state>`.

    Returns
    -------
    random_matrix : sparse csc matrix of size (n_samples, n_outputs)

    Úir   zclass dtype %s is not supportedF)ÚcopyN)Úshapeé   g      ð?z2Probability array at index {0} does not sum to onezXclasses[{0}] (length {1}) and class_probability[{0}] (length {2}) have different length.g        )Ún_populationÚ	n_samplesÚrandom_state)Úsize)Údtype)ÚarrayÚrangeÚlenÚnpÚasarrayr   ÚkindÚ
ValueErrorÚastypeÚint64Úemptyr	   ÚfillÚiscloseÚsumÚformatÚinsertr   ÚflatnonzeroÚitemÚintr   ÚextendÚsearchsortedÚcumsumÚuniformÚappendÚspÚ	csc_arrayr   )r   ÚclassesÚclass_probabilityr   ÚdataÚindicesÚindptrÚjÚclass_prob_jÚrngÚindex_class_0Ú	p_nonzeroÚnnzÚ
ind_sampleÚclasses_j_nonzeroÚclass_probability_nzÚclass_probability_nz_normÚclasses_indÚcscs                      úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/utils/random.pyÚ_random_choice_cscr;      sz  € õ2 Œ;�sÑÔ€DÝŒk˜#ÑÔ€GÝŒ[˜˜q˜cÑ"Ô"€Få•3�w‘<”<Ñ Ô ð 5$ñ 5$ˆÝ”Z ¨¤
Ñ+Ô+ˆ�‰
Ø�1Œ:ÔÔ  CÒ'Ð'ÝÐ>ÀÈÄÔAQÑQÑRÔRÐRØ˜Q”Z×&Ò&¥r¤x°eÐ&Ñ<Ô<ˆ�‰
ð Ð$Ýœ8¨'°!¬*Ô*:¸1Ô*=Ð>Ñ>Ô>ˆLØ×Ò˜a '¨!¤*Ô"2°1Ô"5Ñ5Ñ6Ô6Ð6Ð6åœ:Ð&7¸Ô&:Ñ;Ô;ˆLåŒz�"œ& Ñ.Ô.°Ñ4Ô4ð 	ÝØD×KÒKÈAÑNÔNñô ð ð Ô˜aÔ  G¨A¤JÔ$4°QÔ$7Ò7Ð7Ýð$ç$*¢FØ�w˜q”zÔ'¨Ô*¨LÔ,>¸qÔ,Añ%ô %ñô ð ð �G˜A”JÐÐÝœ 7¨1¤:¨q°!Ñ4Ô4ˆG�A‰JÝœ9 \°1°cÑ:Ô:ˆLõ ! Ñ.Ô.ˆØ�1Œ:Ô˜AÔ Ò"Ñ"ÝœN¨7°1¬:¸ª?Ñ;Ô;×@Ò@ÑBÔBˆMØ˜L¨Ô7Ñ7ˆIÝ�i )Ñ+Ñ,Ô,ˆCÝ3Ø&°#ÀLðñ ô ˆJð �NŠN˜:Ñ&Ô&Ð&ð !(¨¤
¨a¢ÐØ#/Ð0AÔ#BÐ Ø(<½r¼vØ$ñ@ô @ñ )Ð%õ œ/Ø)×0Ò0Ñ2Ô2°C·K²KÀS°KÑ4IÔ4Iñô ˆKð �KŠK˜ œ
Ð#4Ô5°kÔBÑCÔCÐCØ�Š•c˜'‘l”lÑ#Ô#Ð#Ñ#å
Œ,˜˜g vÐ.°½CÀ¹L¼LÐ0IÕQTÐ
UÑ
UÔ
U€CÝ Ñ$Ô$Ð$ó    )NN)Ú__doc__r   Únumpyr   Úscipy.sparseÚsparser'   Úsklearn.utilsr   Úsklearn.utils._randomr   Úsklearn.utils._sparser   Ú__all__r;   © r<   r:   ú<module>rF      s–   ðØ $Ð $ð
 €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø <Ð <Ð <Ð <Ð <Ð <Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6à'Ð
(€ðU%ð U%ð U%ð U%ð U%ð U%r<   