oobQuantileError

Класс: TreeBagger

Потеря квантиля из сумки мешка деревьев регрессии

Синтаксис

err = quantileError(Mdl)
err = quantileError(Mdl,Name,Value)

Описание

пример

err = quantileError(Mdl) возвращает половину среднего абсолютного отклонения (MAD) из сумки в сравнение истинных ответов в Mdl.Y к предсказанным, медианам из сумки в Mdl.X, данных о предикторе и использовании мешка деревьев регрессии Mdl. Mdl должен быть объектом модели TreeBagger.

пример

err = quantileError(Mdl,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value. Например, задайте вероятности квантиля, ошибочный тип, или который деревья включать в оценку погрешности регрессии квантиля.

Входные параметры

развернуть все

Мешок деревьев регрессии, заданных как объект модели TreeBagger, создается TreeBagger.

  • Значением Mdl.Method должен быть regression.

  • Когда вы обучаете Mdl с помощью TreeBagger, необходимо задать пару "имя-значение" 'OOBPrediction','on'. Следовательно, TreeBagger сохраняет требуемую индексную матрицу наблюдения из сумки в Mdl.OOBIndices.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Ошибочный тип ансамбля, заданный как пара, разделенная запятой, состоящая из 'Mode' и значения в этой таблице. Предположим, что tau является значением Quantile.

ЗначениеОписание
'cumulative'

err является Mdl.NumTrees-by-numel(tau) числовая матрица совокупных ошибок регрессии квантиля. err(j,k) является ошибкой регрессии квантиля tau(k) ученики в Mdl.Trees(1:j) только.

'ensemble'

err является 1 numel(tau) числовым вектором совокупных ошибок регрессии квантиля для целого ансамбля. err(k) является ошибкой регрессии квантиля ансамбля tau(k).

'individual'

err является Mdl.NumTrees-by-numel(tau) числовая матрица ошибок регрессии квантиля от отдельных учеников. err(j,k) является ошибкой регрессии квантиля tau(k) ученик в Mdl.Trees(j) только.

Для 'cumulative' и 'individual', если вы принимаете решение включать меньше деревьев в оценку квантиля с помощью Trees, затем это действие влияет на количество строк в err и соответствующих индексах строки.

Пример: 'Mode','cumulative'

Вероятность квантиля, заданная как пара, разделенная запятой, состоящая из 'Quantile' и числового вектора, содержащего значения в интервале [0,1]. Для каждого наблюдения (строка) в Mdl.X oobQuantileError оценивает соответствующие квантили для всех вероятностей в Quantile.

Пример: 'Quantile',[0 0.25 0.5 0.75 1]

Типы данных: single | double

Индексы деревьев, чтобы использовать в ответ оценку, заданную как пара, разделенная запятой, состоящая из 'Trees' и 'all' или числового вектора положительных целых чисел. Индексы соответствуют ячейкам Mdl.Trees; каждая ячейка там содержит дерево в ансамбле. Максимальное значение Trees должно быть меньше чем или равно количеству деревьев в ансамбле (Mdl.NumTrees).

Для 'all' oobQuantileError использует все деревья в ансамбле (то есть, индексы 1:Mdl.NumTrees).

Значения кроме значения по умолчанию могут влиять на количество строк в err.

Пример: 'Trees',[1 10 Mdl.NumTrees]

Типы данных: char | string | single | double

Веса, чтобы приписать ответам от отдельных деревьев, заданных как пара, разделенная запятой, состоящая из 'TreeWeights' и числовой вектор numel(trees) неотрицательные значения. trees является значением Trees.

Если вы задаете 'Mode','individual', то oobQuantileError игнорирует TreeWeights.

Типы данных: single | double

Выходные аргументы

развернуть все

Половина ошибки регрессии квантиля из сумки, возвращенной в виде числа или T-by-numel(tau) матрица. tau является значением Quantile.

T зависит от значений Mode, Trees и Quantile. Предположим, что вы задаете 'Quantile',tau и 'Trees',trees.

  • Для 'Mode','cumulative' err является numel(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 является numel(trees)-by-numel(tau) числовая матрица. err(j,k) является 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.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 деревьев, кажется, достаточно, чтобы достигнуть минимальной ошибки квантиля для трех вероятностей квантиля.

Больше о

развернуть все

Советы

Ошибочное средство оценки ансамбля из сумки является несмещенным для истинной ошибки ансамбля. Так, к настройкам параметров случайного леса оцените ошибку ансамбля из сумки вместо того, чтобы реализовать перекрестную проверку.

Ссылки

[1] Бреимен, L. Случайные Леса. Машинное обучение 45, стр 5–32, 2001.

[2] Meinshausen, N. “Леса Регрессии квантиля”. Журнал Исследования Машинного обучения, Издания 7, 2006, стр 983–999.

Введенный в R2017b