Создайте опции сэмплера Цепи Маркова Монте-Карло (MCMC)
дополнительные опции использования заданы одним или несколькими options
= sampleroptions(Name,Value
)Name,Value
парные аргументы. Например, 'Sampler','hmc','StepSizeTuningMethod','none'
задает выборку от следующего использования гамильтонова сэмплера Монте-Карло и никакого настраивающего метода неродного размера.
Предположим, что вы планируете оценить, симулировать или предсказать Байесовую модель линейной регрессии, которая имеет пользовательское объединенное предшествующее распределение. В этом случае MATLAB® обращается к MCMC, производящему для следующей симуляции и оценки. Можно выбрать сэмплер и настроить его параметры с помощью структуры опций сэмплера.
Создайте структуру опций сэмплера по умолчанию.
options = sampleroptions
options = struct with fields:
Sampler: 'Slice'
Width: []
options
задает сэмплер среза, и его типичная ширина пуста. Пустая ширина указывает на использование ширины по умолчанию для следующей выборки.
Задайте типичную ширину 10 для сэмплера среза.
options.Width = 10
options = struct with fields:
Sampler: 'Slice'
Width: 10
Чтобы реализовать выборку среза с демонстрационной шириной 10 для следующей оценки, создайте customblm
модель, и затем задает структуру опций сэмплера options
при помощи 'Options'
аргумент пары "имя-значение" estimate
, simulate
, или forecast
.
Чтобы задать различный сэмплер MCMC, создайте новую структуру опций сэмплера.
Предположим, что вы планируете оценить, симулировать или предсказать Байесовую модель линейной регрессии, которая имеет пользовательское объединенное предшествующее распределение, и вы хотите реализовать сэмплер Гамильтонова Монте-Карло (HMC).
Создайте структуру опций сэмплера, которая задает выборку с помощью сэмплера HMC. Задайте уровень многословия 1.
options = sampleroptions('Sampler','hmc','VerbosityLevel',1)
options = struct with fields:
Sampler: 'HMC'
StepSizeTuningMethod: 'dual-averaging'
MassVectorTuningMethod: 'iterative-sampling'
NumStepSizeTuningIterations: 100
TargetAcceptanceRatio: 0.6500
NumStepsLimit: 2000
VerbosityLevel: 1
NumPrint: 100
options
массив структур, и список его полей отображен в командной строке. Поля являются настраивающимися параметрами сэмплера. Все значения являются значениями по умолчанию для сэмплера HMC, кроме VerbosityLevel
.
Можно также настроить значения полей в командной строке при помощи записи через точку. Например, измените целевое приемное отношение в 0,75.
options.TargetAcceptanceRatio = 0.75
options = struct with fields:
Sampler: 'HMC'
StepSizeTuningMethod: 'dual-averaging'
MassVectorTuningMethod: 'iterative-sampling'
NumStepSizeTuningIterations: 100
TargetAcceptanceRatio: 0.7500
NumStepsLimit: 2000
VerbosityLevel: 1
NumPrint: 100
Чтобы реализовать сэмплер HMC, создайте customblm
модель, и затем задает структуру опций сэмплера options
при помощи 'Options'
аргумент пары "имя-значение" estimate
, simulate
, или forecast
.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Sampler','hmc','VerbosityLevel',1
задает сэмплер HMC и отображает детали размера шага, настраивающегося в процессе моделирования.'Sampler'
— Сэмплер MCMC'slice'
(значение по умолчанию) | 'metropolis'
| 'hmc'
Сэмплер MCMC в виде разделенной запятой пары, состоящей из 'Sampler'
и значение в этой таблице.
Значение | Описание |
---|---|
'slice' | Сэмплер среза |
'metropolis' | Случайный сэмплер Столицы обхода |
'hmc' | Сэмплер Гамильтонова Монте-Карло (HMC) |
Пример: 'Sampler','hmc'
Типы данных: char |
string
'Width'
— Типичная ширина интервала выборкиТипичная ширина интервала выборки вокруг текущего значения в предельных распределениях для сэмплера среза в виде разделенной запятой пары, состоящей из 'Width'
и положительный числовой скаляр или (intercept
+ numPredictors
+ 1 )-by-1 числовой вектор из положительных значений.
numPredictors
количество переменных предикторов (столбцы в данных о предикторе), и intercept
1
когда модель содержит точку пересечения и 0
в противном случае. Первый элемент Width
соответствует точке пересечения модели, если вы существуете в модели. Порядок следующего numPredictors
элементы соответствуют порядку переменных предикторов в данных о предикторе. Последний элемент соответствует отклонению модели.
Если Width
скаляр, затем MATLAB® применяет Width
ко всему intercept
+ numPredictors
+ 1 предельные распределения.
Если Width
числовой вектор, затем MATLAB применяет первый элемент к точке пересечения (если вы существуете), следующий numPredictors
элементы к коэффициентам регрессии, соответствующим переменным предикторам в X
, и последний элемент к отклонению воздействия.
Если объем выборки (количество строк в данных о предикторе) меньше 100
, затем Width
10
по умолчанию.
Если объем выборки - по крайней мере 100, то по умолчанию MATLAB устанавливает Width
к вектору из соответствующих следующих стандартных отклонений, принимая рассеянную предшествующую модель (diffuseblm
).
MATLAB диспетчеризирует Width
к slicesample
функция. Для получения дополнительной информации смотрите slicesample
.
Совет
Типичная ширина сэмплера среза не влияет на сходимость выборки MCMC. Однако это действительно влияет на количество необходимых вычислений функции, то есть, КПД алгоритма. Если ширина слишком мала, то алгоритм может реализовать чрезмерное количество вычислений функции, чтобы определить соответствующую ширину выборки. Если ширина является слишком большой, то алгоритму придется уменьшить ширину к соответствующему размеру, который требует вычислений функции.
Пример: 'Width',[100*ones(3,1);10]
'Distribution'
— Распределение предложения'mvn'
(значение по умолчанию) | 'mvt'
Распределение предложения в виде разделенной запятой пары, состоящей из 'Distribution'
и значение в этой таблице.
Значение | Описание |
---|---|
'mvn' | Многомерное нормальное распределение. Чтобы настроить сэмплер, задайте его ковариационную матрицу при помощи 'ScaleMatrix' аргумент пары "имя-значение". |
'mvt' | Многомерное распределение t. Чтобы настроить сэмплер, задайте его ковариационную матрицу или степени свободы (или оба) при помощи 'ScaleMatrix' или 'DegreeOfFreedom' аргумент пары "имя-значение", соответственно. |
Пример: 'Distribution','mvt'
Типы данных: string
| char
'ScaleMatrix'
— Распределение предложения масштабирует матрицуРаспределение предложения масштабирует матрицу в виде разделенной запятой пары, состоящей из 'ScaleMatrix'
и (intercept + numPredictors + 1)
- (intercept + numPredictors + 1)
симметричная, положительная определенная, числовая матрица. Для значения строк и столбцов смотрите 'Width'
.
По умолчанию, ScaleMatrix
следующая ковариационная матрица коэффициентов регрессии (Beta
) и отклонение модели (Sigma2
) принятие рассеянной модели.
Пример: 'ScaleMatrix',eye(intercept + numPredictors + 1)
Типы данных: double
'DegreeOfFreedom'
— Степени свободы распределения предложенияInf
(значение по умолчанию) | положительная скалярная величинаСтепени свободы распределения предложения в виде разделенной запятой пары, состоящей из 'DegreeOfFreedom'
и положительная скалярная величина. Если 'Distribution'
'mvn'
то sampleroptions
игнорирует DegreeOfFreedom
.
Пример: 'DegreeOfFreedom',3
Типы данных: double
'StepSizeTuningMethod'
— Метод для настройки размера шага'dual-averaging'
(значение по умолчанию) | 'none'
Метод для настройки размера шага в виде разделенной запятой пары, состоящей из 'StepSizeTuningMethod'
и 'dual-averaging'
или 'none'
. Для получения дополнительной информации смотрите 'StepSizeTuningMethod'
.
Пример: 'StepSizeTuningMethod','none'
Типы данных: char
'MassVectorTuningMethod'
— Метод для настройки массового вектора'iterative-sampling'
(значение по умолчанию) | 'hessian'
| 'none'
Метод для настройки массового вектора в виде разделенной запятой пары, состоящей из 'MassVectorTuningMethod'
и 'iterative-sampling'
, 'hessian'
, или 'none'
. Для получения дополнительной информации смотрите 'MassVectorTuningMethod'
.
Пример: 'MassVectorTuningMethod','hessian'
Типы данных: char
'NumStepSizeTuningIterations'
— Количество итераций для настройки размера шага
(значение по умолчанию) | положительное целое числоКоличество итераций для настройки размера шага в виде разделенной запятой пары, состоящей из 'NumStepSizeTuningIterations'
и положительное целое число. Для получения дополнительной информации смотрите 'NumStepSizeTuningIterations'
.
Пример: 'NumStepSizeTuningIterations',200
Типы данных: single
| double
'TargetAcceptanceRatio'
— Целевое приемное отношение
(значение по умолчанию) | скаляр от 0
через 1
Целевое приемное отношение в виде разделенной запятой пары, состоящей из 'TargetAcceptanceRatio'
и скаляр от 0
через 1
. Для получения дополнительной информации смотрите 'TargetAcceptanceRatio'
.
Пример: 'TargetAcceptanceRatio',0.5
Типы данных: single
| double
'NumStepsLimit'
— Максимальное количество шагов чехарды
(значение по умолчанию) | положительное целое числоМаксимальное количество чехарды продвигается в виде разделенной запятой пары, состоящей из 'NumStepsLimit'
и положительное целое число. Для получения дополнительной информации смотрите 'NumStepsLimit'
.
Пример: 'NumStepsLimit',5000
Типы данных: single
| double
'VerbosityLevel'
— Уровень многословия окна Command Window
(значение по умолчанию) | неотрицательное целое числоУровень многословия окна Command Window в виде разделенной запятой пары, состоящей из 'VerbosityLevel'
и неотрицательное целое число. Для получения дополнительной информации смотрите 'VerbosityLevel'
.
Пример: 'VerbosityLevel',1
Типы данных: single
| double
'NumPrint'
— Многословная выходная частота
(значение по умолчанию) | положительное целое числоМногословная выходная частота в виде разделенной запятой пары, состоящей из 'NumPrint'
и положительное целое число. Для получения дополнительной информации смотрите 'NumPrint'
.
Пример: 'NumPrint',10
Типы данных: single
| double
options
— Опции сэмплераОпции сэмплера для Байесовой модели линейной регрессии с пользовательским предшествующим распределением, возвращенным как массив структур. После создания структуры опций сэмплера можно настроить настраивающиеся значения параметров, кроме сэмплера, при помощи записи через точку.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.