exponenta event banner

случайный

Случайная вариация из распределения гауссовой смеси

Описание

пример

Y = random(gm) генерирует случайную переменную 1 на m из m-мерного распределения гауссовой смеси gm.

пример

Y = random(gm,n) прибыль n случайные вариации. Каждая строка Y - случайная вариация, генерируемая из m-мерного распределения гауссовой смеси gm.

пример

[Y,compIdx] = random(___) также возвращает nвектор индекса -by-1 compIdx для любого из входных аргументов в предыдущих синтаксисах. compIdx(i) указывает компонент смеси, используемый для создания iслучайная вариация Y(i,:).

Примеры

свернуть все

Создать gmdistribution и генерировать случайные вариации.

Определите параметры распределения (средние и ковариации) двухкомпонентного двумерного гауссова распределения смеси.

mu = [1 2;-3 -5];
sigma = [1 1]; % shared diagonal covariance matrix

Создать gmdistribution с помощью gmdistribution функция. По умолчанию функция создает смесь равных долей.

gm = gmdistribution(mu,sigma)
gm = 

Gaussian mixture distribution with 2 components in 2 dimensions
Component 1:
Mixing proportion: 0.500000
Mean:     1     2

Component 2:
Mixing proportion: 0.500000
Mean:    -3    -5

Создать 1000 случайных вариаций.

rng('default'); % For reproducibility
[Y,compIdx] = random(gm,1000);

compIdx(i) указывает компонент смеси, используемый для создания iслучайная вариация Y(i,:). Подсчитать количество случайных вариаций, сгенерированных Component 1.

numIdx1 = sum(compIdx == 1)
numIdx1 = 512

random генерирует около половины случайных вариаций с помощью Component 1 потому что gm имеет равные пропорции смешивания.

Постройте график сгенерированных случайных вариаций с помощью scatter.

scatter(Y(:,1),Y(:,2),10,'.') % Scatter plot with points of size 10

Figure contains an axes. The axes contains an object of type scatter.

Сбросьте генератор случайных чисел, чтобы создать ту же переменную случайных чисел.

Определите параметры распределения (средние значения, ковариации и пропорции смешивания) двух двухмерных гауссовых компонентов смеси.

p = [0.4 0.6];               % Mixing proportions     
mu = [1 2;-3 -5];            % Means
sigma = cat(3,[2 .5],[1 1])  % Covariances 1-by-2-by-2 array
sigma = 
sigma(:,:,1) =

    2.0000    0.5000


sigma(:,:,2) =

     1     1

cat функция объединяет ковариации вдоль третьей размерности массива. Определенные ковариационные матрицы являются диагональными матрицами. sigma(1,:,i) содержит диагональные элементы ковариационной матрицы компонента i.

Создать gmdistribution с помощью gmdistribution функция.

gm = gmdistribution(mu,sigma);

Сохраните текущее состояние генератора случайных чисел, а затем создайте случайную переменную с помощью gm.

s = rng;
r = random(gm)
r = 1×2

   -1.1661   -7.2588

Восстановление состояния генератора случайных чисел в s, а затем создать случайную переменную с помощью gm. Значения те же, что и ранее.

rng(s);
r1 = random(gm)
r1 = 1×2

   -1.1661   -7.2588

Входные аргументы

свернуть все

Распределение гауссовой смеси, также называемое моделью гауссовой смеси (GMM), указанное как gmdistribution объект.

Можно создать gmdistribution объект с использованием gmdistribution или fitgmdist. Используйте gmdistribution для создания функции gmdistribution путем указания параметров распределения. Используйте fitgmdist функция для соответствия gmdistribution модель для данных с фиксированным числом компонентов.

Число генерируемых случайных вариаций, указанное как положительное целое число.

Типы данных: single | double

Выходные аргументы

свернуть все

Случайная вариация, возвращаемая как числовой вектор 1 на m или n- числовая матрица по m. Каждая строка Y - случайная вариация, генерируемая из m-мерного распределения гауссовой смеси gm.

Индекс компонента, возвращаемый как положительное целое число или n-по-1 вектор индекса, где compIdx(i) указывает компонент смеси, используемый для создания iслучайная вариация Y(i,:).

Представлен в R2007b