Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Deep Learning avec Python
et Keras et Tensorflow
Voir le programme détaillé
Classe « Generator »

Méthode numpy.random.Generator.exponential

Signature de la méthode exponential

def exponential(self, scale=1.0, size=None) 

Description

help(Generator.exponential)

        exponential(scale=1.0, size=None)

        Draw samples from an exponential distribution.

        Its probability density function is

        .. math:: f(x; \frac{1}{\beta}) = \frac{1}{\beta} \exp(-\frac{x}{\beta}),

        for ``x > 0`` and 0 elsewhere. :math:`\beta` is the scale parameter,
        which is the inverse of the rate parameter :math:`\lambda = 1/\beta`.
        The rate parameter is an alternative, widely used parameterization
        of the exponential distribution [3]_.

        The exponential distribution is a continuous analogue of the
        geometric distribution.  It describes many common situations, such as
        the size of raindrops measured over many rainstorms [1]_, or the time
        between page requests to Wikipedia [2]_.

        Parameters
        ----------
        scale : float or array_like of floats
            The scale parameter, :math:`\beta = 1/\lambda`. Must be
            non-negative.
        size : int or tuple of ints, optional
            Output shape.  If the given shape is, e.g., ``(m, n, k)``, then
            ``m * n * k`` samples are drawn.  If size is ``None`` (default),
            a single value is returned if ``scale`` is a scalar.  Otherwise,
            ``np.array(scale).size`` samples are drawn.

        Returns
        -------
        out : ndarray or scalar
            Drawn samples from the parameterized exponential distribution.

        Examples
        --------
        Assume a company has 10000 customer support agents and the time 
        between customer calls is exponentially distributed and that the 
        average time between customer calls is 4 minutes.

        >>> scale, size = 4, 10000
        >>> rng = np.random.default_rng()
        >>> time_between_calls = rng.exponential(scale=scale, size=size)

        What is the probability that a customer will call in the next 
        4 to 5 minutes? 
        
        >>> x = ((time_between_calls < 5).sum())/size
        >>> y = ((time_between_calls < 4).sum())/size
        >>> x - y
        0.08  # may vary

        The corresponding distribution can be visualized as follows:

        >>> import matplotlib.pyplot as plt
        >>> scale, size = 4, 10000
        >>> rng = np.random.default_rng()
        >>> sample = rng.exponential(scale=scale, size=size)
        >>> count, bins, _ = plt.hist(sample, 30, density=True)
        >>> plt.plot(bins, scale**(-1)*np.exp(-scale**-1*bins), linewidth=2, color='r')
        >>> plt.show()

        References
        ----------
        .. [1] Peyton Z. Peebles Jr., "Probability, Random Variables and
               Random Signal Principles", 4th ed, 2001, p. 57.
        .. [2] Wikipedia, "Poisson process",
               https://en.wikipedia.org/wiki/Poisson_process
        .. [3] Wikipedia, "Exponential distribution",
               https://en.wikipedia.org/wiki/Exponential_distribution

        


Vous êtes un professionnel et vous avez besoin d'une formation ? Machine Learning
avec Scikit-Learn
Voir le programme détaillé