Класс: TreeBagger
Количество вне мешка потери мешка регрессионных деревьев
возвращает половину среднего абсолютного отклонения (MAD) вне сумки от сравнения истинных откликов в err
= oobQuantileError(Mdl
)Mdl.Y
к предсказанным медианам вне мешка при Mdl.X
, данные предиктора и использование сумки регрессионых деревьев Mdl
. Mdl
должен быть TreeBagger
объект модели.
использует дополнительные опции, заданные одним или несколькими err
= oobQuantileError(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'
Тип ошибки Ensemble, заданный как разделенная разделенными запятой парами, состоящая из 'Mode'
и значение в этой таблице. Предположим tau
- значение Quantile
.
Значение | Описание |
---|---|
'cumulative' |
|
'ensemble' |
|
'individual' |
|
Для 'cumulative'
и 'individual'
, если вы решите включить меньше деревьев в оценку квантиля с помощью Trees
, затем это действие влияет на количество строк в err
и соответствующие индексы строк.
Пример: 'Mode','cumulative'
'Quantile'
- Вероятность квантования0.5
(по умолчанию) | числовой вектор, содержащий значения в [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
).
Для 'all'
, oobQuantileError
использует все деревья ансамбля (то есть индексы 1:Mdl.NumTrees
).
Значения, отличные от значения по умолчанию, могут влиять на количество строк в err
.
Пример: 'Trees',[1 10 Mdl.NumTrees]
Типы данных: char
| string
| single
| double
'TreeWeights'
- Веса для атрибуции откликов от отдельных деревьевones(Mdl.NumTrees,1)
(по умолчанию) | числовой вектор неотрицательных значенийВеса для атрибута откликов из отдельных деревьев, заданные как разделенная разделенными запятой парами, состоящая из 'TreeWeights'
и числовой вектор числа
неотрицательные значения. (trees
)trees
- значение Trees
.
Если вы задаете 'Mode','individual'
, затем oobQuantileError
игнорирует TreeWeights
.
Типы данных: single
| double
err
- Половина несовпадающей ошибки регрессии квантиляПоловина ошибки регрессии вне мешка, возвращенная как числовой скаляр или T
-by-numel
матрица. (tau
)tau
- значение Quantile
.
T
зависит от значений Mode
, Trees
, и Quantile
. Предположим, что вы задаете 'Quantle',
и tau
'Trees',
.trees
Для 'Mode','cumulative'
, err
является числителем
-(trees
)by-numel
числовая матрица. (tau
)err
является (j
, k
)
совокупная ошибка регрессии квантиля вне мешка с использованием учащихся в tau
(k
)Mdl.Trees
.(trees
(1: j
))
Для 'Mode','ensemble'
, err
является 1
-by-numel
числовой вектор. (tau
)err
является (k
)
совокупная ошибка регрессии квантиля вне мешка с использованием учащихся в tau
(k
)Mdl.Trees
.(trees
)
Для 'Mode','individual'
, err
является числителем
-(trees
)by-numel
числовая матрица. (tau
)err
является (j
, k
)
off-of-bag ошибка регрессии квантиля с использованием учащегося в tau
(k
)Mdl.Trees
.(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.5349
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] Breiman, L. «Random Forests». Машинное обучение 45, стр. 5-32, 2001.
[2] Meinshausen, N. «Quantle Regression Forests». Journal of Машинное Обучение Research, Vol. 7, 2006, pp. 983-999.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.