Spec-Zone.ru › NumPy 1.10

numpy.random.multivariate_normal

numpy.random.multivariate_normal(mean, cov[, size])

Генерация случайных выборок из многомерного нормального распределения.

Многомерное нормальное распределение (или многомерное гауссово распределение) — это обобщение одномерного нормального распределения на многомерный случай. Такое распределение определяется своим средним значением и ковариационной матрицей. Эти параметры аналогичны среднему (среднему арифметическому или «центру») и дисперсии (квадрату стандартного отклонения или «ширине») одномерного нормального распределения.

Параметры:

mean : массив 1-D, длины N

Среднее значение N-мерного распределения.

cov : массив 2-D, формы (N, N)

Ковариационная матрица распределения. Она должна быть симметричной и положительно полуопределенной для корректной генерации выборок.

size : целое число или кортеж целых чисел, необязательно

Если задана форма, например, (m,n,k), генерируются m*n*k выборки, упакованные в m-на-n-на-k структуру. Поскольку каждая выборка N-мерна, форма выходных данных — (m,n,k,N). Если форма не задана, возвращается одна (N-мерная) выборка.

Возвращает:

out : массив ndarray

Сгенерированные выборки, с формой size, если она была задана. Если нет, форма — (N,).

Другими словами, каждый элемент out[i,j,...,:] представляет N-мерное значение, взятое из распределения.

Примечания

Среднее значение — это координата в N-мерном пространстве, представляющая местоположение, где выборки наиболее вероятно будут сгенерированы. Это аналогично пику кривой Гаусса для одномерного или унивариантного нормального распределения.

Ковариация указывает на степень совместного изменения двух переменных. Из многомерного нормального распределения мы извлекаем N-мерные выборки, X = [x_1, x_2, ... x_N]. Элемент ковариационной матрицы C_{ij} представляет ковариацию x_i и x_j. Элемент C_{ii} — это дисперсия x_i (т.е. её «разброс»).

Вместо указания полной ковариационной матрицы, популярны такие приближения:

  • Сферическая ковариация (cov является кратным единичной матрице)
  • Диагональная ковариация (cov имеет неотрицательные элементы только на диагонали)

Это геометрическое свойство можно увидеть в двух измерениях, нарисовав точки сгенерированных данных:

>>> mean = [0, 0]
>>> cov = [[1, 0], [0, 100]]  # diagonal covariance

Диагональная ковариация означает, что точки ориентированы вдоль оси x или оси y:

>>> import matplotlib.pyplot as plt
>>> x, y = np.random.multivariate_normal(mean, cov, 5000).T
>>> plt.plot(x, y, 'x')
>>> plt.axis('equal')
>>> plt.show()

Обратите внимание, что ковариационная матрица должна быть положительно полуопределенной (также известна как неотрицательно определенная). В противном случае поведение данного метода неопределено, и обратная совместимость не гарантируется.

Ссылки

[R241] Papoulis, A., “Вероятность, случайные величины и случайные процессы,” 3-е изд., Нью-Йорк: McGraw-Hill, 1991.
[R242] Duda, R. O., Hart, P. E., and Stork, D. G., “Классификация образов,” 2-е изд., Нью-Йорк: Wiley, 2001.

Примеры

>>> mean = (1, 2)
>>> cov = [[1, 0], [0, 1]]
>>> x = np.random.multivariate_normal(mean, cov, (3, 3))
>>> x.shape
(3, 3, 2)

Следующее утверждение, вероятно, верно, учитывая, что 0,6 примерно вдвое больше стандартного отклонения:

>>> list((x[0,0,:] - mean) < 0.6)
[True, True]

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.random.multivariate_normal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API