oobQuantileError

Класс: TreeBagger

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

Описание

пример

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

пример

err = oobQuantileError(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.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')

Figure contains an axes. The axes with title Cumulative, Out-of-Bag, Quantile Regression Error contains 3 objects of type line. These objects represent 0.25 quantile error, 0.5 quantile error, 0.75 quantile error.

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

Больше о

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

Советы

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

Ссылки

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

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

Введенный в R2017b