Создание параметров выборки цепи Маркова 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' | Выборка Random Walk Metropolis |
'hmc' | Гамильтонианский образец Монте-Карло (HMC) |
Пример: 'Sampler','hmc'
Типы данных: char | string
'Width' - Типовая ширина интервала выборкиТипичная ширина интервала выборки вокруг текущего значения в предельных распределениях для дискретизатора среза, указанного как пара, разделенная запятыми, состоящая из 'Width' и положительный числовой скаляр или (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)около-(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' - Уровень детализации выходных данных окна команд0 (по умолчанию) | неотрицательное целое числоУровень детализации выходных данных командного окна, определяемый как разделенная запятыми пара, состоящая из 'VerbosityLevel' и неотрицательное целое число. Дополнительные сведения см. в разделе 'VerbosityLevel'.
Пример: 'VerbosityLevel',1
Типы данных: single | double
'NumPrint' - Подробная выходная частота100 (по умолчанию) | положительное целое числоПодробная выходная частота, указанная как разделенная запятыми пара, состоящая из 'NumPrint' и положительное целое число. Дополнительные сведения см. в разделе 'NumPrint'.
Пример: 'NumPrint',10
Типы данных: single | double
options - Параметры пробоотборникаОпции выборки для байесовской модели линейной регрессии с пользовательским предварительным распределением, возвращаемые в виде структурного массива. После создания структуры опций пробоотборника можно скорректировать значения параметров настройки, за исключением пробоотборника, с помощью точечной нотации.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.