Класс: 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.