Класс: 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'Ошибка ансамбля вводит в виде разделенной запятой пары, состоящей из '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)допустите ошибку ( jK) совокупная, ошибка регрессии квантиля из сумки ученики в tauK)Mdl. Деревья (.trees(1:j))
Для 'Mode','ensemble', err 1- numel ( числовой вектор. tau)допустите ошибку ( k) совокупная, ошибка регрессии квантиля из сумки ученики в tauK)Mdl. Деревья (.trees)
Для 'Mode','individual', err numel (- trees)numel ( числовая матрица. tau)допустите ошибку ( jK) ошибка регрессии квантиля из сумки ученик в tauK)Mdl. Деревья (.treesJ))
Загрузите 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] Бреимен, L. "Случайные Леса". Машинное обучение 45, стр 5–32, 2001.
[2] Meinshausen, N. “Леса Регрессии квантиля”. Журнал Исследования Машинного обучения, Издания 7, 2006, стр 983–999.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.