Создайте марковскую цепочку Monte Carlo (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' | Случайная прогулка Metropolis sampler |
'hmc' | Гамильтониан Монте-Карло (HMC) семплер |
Пример: 'Sampler','hmc'
Типы данных: char
| string
'Width'
- Типичная выборка - ширина интервалаТипичная ширина дискретизации-интервала вокруг текущего значения в маргинальных распределениях для дискретизатора среза, заданная как разделенная разделенными запятой парами, состоящая из 'Width'
и положительный числовой скаляр или an (intercept
+ numPredictors
+ 1
) -на-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)
-by- (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'
- Количество итераций для настройки размера шага100
(по умолчанию) | положительное целое числоКоличество итераций для настройки размера шага, заданное как разделенная разделенными запятой парами, состоящая из 'NumStepSizeTuningIterations'
и положительное целое число. Для получения дополнительной информации смотрите 'NumStepSizeTuningIterations'
.
Пример: 'NumStepSizeTuningIterations',200
Типы данных: single
| double
'TargetAcceptanceRatio'
- Целевой коэффициент приемки0.65
(по умолчанию) | скаляр из 0
через 1
Целевой коэффициент принятия, заданный как разделенная разделенными запятой парами, состоящая из 'TargetAcceptanceRatio'
и скаляр из 0
через 1
. Для получения дополнительной информации смотрите 'TargetAcceptanceRatio'
.
Пример: 'TargetAcceptanceRatio',0.5
Типы данных: single
| double
'NumStepsLimit'
- Максимальное количество шагов чехарды2000
(по умолчанию) | положительное целое числоМаксимальное количество шагов чехарды, заданное как разделенная разделенными запятой парами, состоящая из 'NumStepsLimit'
и положительное целое число. Для получения дополнительной информации смотрите 'NumStepsLimit'
.
Пример: 'NumStepsLimit',5000
Типы данных: single
| double
'VerbosityLevel'
- Уровень подробностей окна Command Window0
(по умолчанию) | неотрицательное целое числоУровень подробностей окна Command Window, заданный как разделенная разделенными запятой парами, состоящая из 'VerbosityLevel'
и неотрицательное целое число. Для получения дополнительной информации смотрите 'VerbosityLevel'
.
Пример: 'VerbosityLevel',1
Типы данных: single
| double
'NumPrint'
- Подробная выходная частота100
(по умолчанию) | положительное целое числоПодробная выходная частота, заданная как разделенная разделенными запятой парами, состоящая из 'NumPrint'
и положительное целое число. Для получения дополнительной информации смотрите 'NumPrint'
.
Пример: 'NumPrint',10
Типы данных: single
| double
options
- опции пробоотборникаОпции сэмплера для байесовской линейной регрессионой модели с пользовательским предшествующим распределением, возвращенные как массив структур. После создания структуры опций сэмплера можно настроить значения параметров настройки, кроме сэмплера, используя запись через точку.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.