Ответ
В машинном обучении и статистике я часто работаю со следующими распределениями:
Дискретные распределения:
- Распределение Бернулли: Моделирует одно испытание с двумя исходами (успех/неудача). Параметр — вероятность успеха
p.from scipy.stats import bernoulli # Моделируем 10 подбрасываний монеты с p=0.5 data = bernoulli.rvs(p=0.5, size=10) - Биномиальное распределение: Описывает количество успехов в
nнезависимых испытаниях Бернулли. Параметры:n(число испытаний) иp(вероятность успеха).from scipy.stats import binom # Вероятность получить ровно 7 орлов в 10 подбрасываниях честной монеты prob = binom.pmf(k=7, n=10, p=0.5) - Распределение Пуассона: Используется для моделирования числа редких событий, происходящих за фиксированный интервал времени или пространства. Параметр
λ(лямбда) — среднее количество событий.from scipy.stats import poisson # Моделируем число кликов на баннер за час (λ=5) clicks = poisson.rvs(mu=5, size=100)
Непрерывные распределения:
- Нормальное (Гауссово) распределение: Фундаментальное распределение, описывающее многие природные процессы. Параметры:
μ(среднее) иσ(стандартное отклонение).import numpy as np # Генерация данных и оценка параметров data = np.random.normal(loc=100, scale=15, size=1000) sample_mean = np.mean(data) sample_std = np.std(data) - Равномерное распределение: Все значения в заданном интервале
[a, b]равновероятны.# Генерация случайной точки на отрезке [0, 1] point = np.random.uniform(low=0.0, high=1.0) - Экспоненциальное распределение: Моделирует время между событиями в пуассоновском процессе. Параметр
λ— интенсивность (обратное среднему времени).from scipy.stats import expon # Моделируем время между запросами к серверу (среднее время = 2 сек) times = expon.rvs(scale=2, size=50)
Выбор распределения зависит от природы данных и решаемой задачи. Например, для ошибок регрессии часто предполагают нормальность, а для подсчета событий — Пуассона.