Класс: TreeBagger
Потеря квантиля из сумки мешка деревьев регрессии
возвращает половину среднего абсолютного отклонения (MAD) из сумки в сравнение истинных ответов в err
= quantileError(Mdl
)Mdl.Y
к предсказанным, медианам из сумки в Mdl.X
, данные о предикторе и использование мешка деревьев регрессии Mdl
. Mdl
должен быть TreeBagger
объект модели.
дополнительные опции использования заданы одним или несколькими err
= quantileError(Mdl
,Name,Value
)Name,Value
парные аргументы. Например, задайте вероятности квантиля, ошибочный тип, или который деревья включать в оценку погрешности регрессии квантиля.
Mdl
— Мешок деревьев регрессииTreeBagger
объект модели (значение по умолчанию)Мешок деревьев регрессии, заданных как TreeBagger
объект модели создается TreeBagger
.
Значение Mdl.Method
должен быть regression
.
Когда вы обучаете Mdl
использование TreeBagger
, необходимо задать пару "имя-значение" 'OOBPrediction','on'
. Следовательно, TreeBagger
сохраняет требуемую матрицу индекса наблюдения из сумки в Mdl.OOBIndices
.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Mode'
— Ошибочный тип ансамбля'ensemble'
(значение по умолчанию) | 'cumulative'
| 'individual'
Ошибочный тип ансамбля, заданный как разделенная запятой пара, состоящая из 'Mode'
и значение в этой таблице. Предположим tau
значение Quantile
.
Значение | Описание |
---|---|
'cumulative' |
|
'ensemble' |
|
'individual' |
|
Для 'cumulative'
и 'individual'
, если вы принимаете решение включать меньше деревьев в оценку квантиля с помощью Trees
, затем это действие влияет на количество строк в err
и соответствующие индексы строки.
Пример: 'Mode','cumulative'
'Quantile'
— Вероятность квантиля
(значение по умолчанию) | числовой вектор, содержащий значения в [0,1]Вероятность квантиля, заданная как разделенная запятой пара, состоящая из 'Quantile'
и числовой вектор, содержащий значения в интервале [0,1]. Для каждого наблюдения (строка) в Mdl.X
, oobQuantileError
оценки соответствующие квантили для всех вероятностей в Quantile
.
Пример: 'Quantile',[0 0.25 0.5 0.75 1]
Типы данных: single
| double
'Trees'
— Индексы деревьев, чтобы использовать в ответ оценку'all'
(значение по умолчанию) | числовой вектор положительных целых чиселИндексы деревьев, чтобы использовать в ответ оценку, заданную как разделенная запятой пара, состоящая из 'Trees'
и 'all'
или числовой вектор положительных целых чисел. Индексы соответствуют ячейкам Mdl.Trees
; каждая ячейка там содержит дерево в ансамбле. Максимальное значение Trees
должно быть меньше чем или равно количеству деревьев в ансамбле (Mdl.NumTrees
).
\forall
, oobQuantileError
использование все деревья в ансамбле (то есть, индексы 1:Mdl.NumTrees
).
Значения кроме значения по умолчанию могут влиять на количество строк в err
.
Пример: 'Trees',[1 10 Mdl.NumTrees]
Типы данных: char |
string
| single
| double
'TreeWeights'
— Веса, чтобы приписать ответам от отдельных деревьевones(Mdl.NumTrees,1)
(значение по умолчанию) | числовой вектор неотрицательных значенийВеса, чтобы приписать ответам от отдельных деревьев, заданных как разделенная запятой пара, состоящая из 'TreeWeights'
и числовой вектор numel (
неотрицательные значения. trees
)trees
значение Trees
.
Если вы задаете 'Mode','individual'
, затем oobQuantileError
игнорирует TreeWeights
.
Типы данных: single
| double
err
— Половина ошибки регрессии квантиля из сумкиПоловина ошибки регрессии квантиля из сумки, возвращенной в виде числа или T
- numel (
матрица. tau
)tau
значение Quantile
.
T
зависит от значений Mode
, Trees
, и Quantile
. Предположим, что вы задаете 'Квантиль',
и tau
'Деревья',
.trees
Для 'Mode','cumulative'
, err
numel (
- trees
)numel (
числовая матрица. tau
)допустите ошибку (
j
K
)
совокупная, ошибка регрессии квантиля из сумки ученики в tau
K
)Mdl. Деревья (
.trees
(1:j
))
Для 'Mode','ensemble'
, err
1
- numel (
числовой вектор. tau
)допустите ошибку (
k
)
совокупная, ошибка регрессии квантиля из сумки ученики в tau
K
)Mdl. Деревья (
.trees
)
Для 'Mode','individual'
, err
numel (
- trees
)numel (
числовая матрица. tau
)допустите ошибку (
j
K
)
ошибка регрессии квантиля из сумки ученик в tau
K
)Mdl. Деревья (
.trees
J
))
Загрузите carsmall
набор данных. Рассмотрите модель, которая предсказывает экономию топлива автомобиля, учитывая его объем двигателя, вес и количество цилиндров. Рассмотрите Cylinders
категориальная переменная.
load carsmall
Cylinders = categorical(Cylinders);
X = table(Displacement,Weight,Cylinders,MPG);
Обучите ансамбль сложенных в мешок деревьев регрессии с помощью целого набора данных. Задайте 100 слабых учеников и сохраните индексы из сумки.
rng(1); % For reproducibility Mdl = TreeBagger(100,X,'MPG','Method','regression','OOBPrediction','on');
Mdl
TreeBagger
ансамбль.
Выполните регрессию квантиля и оценку из сумки MAD целого ансамбля, использующего предсказанные условные медианы.
oobErr = oobQuantileError(Mdl)
oobErr = 1.5321
oobErr
объективная оценка ошибки регрессии квантиля для целого ансамбля.
Загрузите carsmall
набор данных. Рассмотрите модель, которая предсказывает экономию топлива автомобиля, учитывая его объем двигателя, вес и количество цилиндров.
load carsmall
X = table(Displacement,Weight,Cylinders,MPG);
Обучите ансамбль сложенных в мешок деревьев регрессии с помощью целого набора данных. Задайте 250 слабых учеников и сохраните индексы из сумки.
rng('default'); % For reproducibility Mdl = TreeBagger(250,X,'MPG','Method','regression',... 'OOBPrediction','on');
Оцените совокупное; из сумки; 0.25, 0.5, и 0,75 ошибки регрессии квантиля.
err = oobQuantileError(Mdl,'Quantile',[0.25 0.5 0.75],'Mode','cumulative');
err
250 3 матрица совокупных, из сумки, ошибок регрессии квантиля. Столбцы соответствуют вероятностям квантиля, и строки соответствуют деревьям в ансамбле. Ошибки совокупны, таким образом, они включают агрегированные прогнозы от предыдущих деревьев.
Постройте совокупное, из сумки, ошибки квантиля на том же графике.
figure; plot(err); legend('0.25 quantile error','0.5 quantile error','0.75 quantile error'); ylabel('Out-of-bag quantile error'); xlabel('Tree index'); title('Cumulative, Out-of-Bag, Quantile Regression Error')
Все кривые ошибок квантиля, кажется, выравниваются после обучения приблизительно 50 деревьев. Так, обучение 50 деревьев, кажется, достаточно, чтобы достигнуть минимальной ошибки квантиля для трех вероятностей квантиля.
В уволенном ансамбле наблюдениями является out-of-bag, когда они упущены из учебной выборки для конкретного ученика. Наблюдениями является in-bag, когда они используются, чтобы обучить конкретного ученика.
При увольнении учеников практик берет выборку начальной загрузки (то есть, случайная выборка с заменой) размера n для каждого ученика, и затем обучает учеников, использующих их соответствующие выборки начальной загрузки. Вытягивание n из наблюдений n с заменой не использует в среднем приблизительно 37% наблюдений для каждого ученика.
Ошибка ансамбля из сумки, ошибка ансамбля, оцененная с помощью наблюдений из сумки только, является несмещенным средством оценки истинной ошибки ансамбля.
quantile regression error модели, данной наблюдаемые данные о предикторе и ответы, является взвешенным средним абсолютное отклонение (MAD). Если модель под - предсказывает ответ, то весами отклонения является τ, вероятность квантиля. Если модель завышает, то веса отклонения равняются 1 – τ.
Таким образом, ошибка регрессии квантиля τ
yj является истинным ответом j, квантиль τ, который предсказывает модель, и wj является весом наблюдения j.
Ошибочное средство оценки ансамбля из сумки является несмещенным для истинной ошибки ансамбля. Так, к настройкам параметров случайного леса оцените ошибку ансамбля из сумки вместо того, чтобы реализовать перекрестную проверку.
[1] Бреимен, L. Случайные Леса. Машинное обучение 45, стр 5–32, 2001.
[2] Meinshausen, N. “Леса Регрессии квантиля”. Журнал Исследования Машинного обучения, Издания 7, 2006, стр 983–999.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.