Логнормальным называется распределение случайной величины (X), логарифм которой распределён по нормальному закону. В этом случае функция плотности вероятности случайной величины (X) вычисляется следующим образом:
$$f(X) = \frac{1}{x \sigma \sqrt{2\pi}} e^{-\frac{1}{2} \left( \frac{\ln(x) - \mu}{\sigma} \right)^2} $$
где (μ) и (\sigma) - математическое ожидание и стандартное отклонение логарифма случайной величины (X).
Логнормальное распределение широко применяется в различных областях, включая машинное обучение. В частности, оно используется для моделирования данных с тяжелыми хвостами, таких как распределение размеров файлов или доход пользователей.
В машинном обучении логнормальное распределение часто используется в следующих задачах:
Для примера рассмотрим задачу регрессии, в которой целевая переменная (y) распределена по логнормальному закону. В этом случае мы можем использовать модель линейной регрессии с логарифмическим преобразованием целевой переменной:
$$ \ln(y) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_n x_n + \epsilon $$
где (x_1, x_2, ..., x_n) - признаки, (β_0, β_1, ..., β_n) - коэффициенты регрессии, а (\epsilon) - случайная ошибка.
После обучения модели на данных мы можем использовать ее для предсказания логарифма целевой переменной ( \ln(y)). Чтобы получить предсказание (y) в исходном масштабе, мы можем взять экспоненту от предсказанного логарифма:
$$ y = e^{\ln(y)} $$
Рассмотрим пример использования логнормального распределения для моделирования данных о размерах файлов. Предположим, что у нас есть набор данных о размерах файлов, которые распределены по логнормальному закону со следующими параметрами:
μ = 5
σ = 2
Мы можем сгенерировать выборку из логнормального распределения с помощью следующего кода на Python:
import numpy as np
import scipy.stats as stats
# Генерируем 1000 размеров файлов
sizes = stats.lognorm.rvs(5, 2, size=1000)
Теперь мы можем построить гистограмму размеров файлов:
import matplotlib.pyplot as plt
plt.hist(sizes, bins=50)
plt.xlabel("Размер файла (байты)")
plt.ylabel("Частота")
plt.show()
Гистограмма будет иметь колоколообразную форму с тяжелыми хвостами, что характерно для логнормального распределения.
Логнормальное распределение является полезным инструментом для моделирования данных с тяжелыми хвостами. Оно находит применение в различных областях, включая машинное обучение, где оно используется для регрессии, кластеризации и выявления выбросов.