oobQuantileError

Класс: TreeBagger

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

Описание

пример

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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

err Mdl.NumTrees- numel (tau) числовая матрица совокупных ошибок регрессии квантиля. допустите ошибку (jK) tauK) ошибка регрессии квантиля ученики в Mdl. Деревья (1:j) только.

'ensemble'

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

'individual'

err Mdl.NumTrees- numel (tau) числовая матрица ошибок регрессии квантиля от отдельных учеников. допустите ошибку (jK) tauK) ошибка регрессии квантиля ученик в Mdl. Деревья (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).

\forall, 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- 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.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