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.

Тип ошибки Ensemble, заданный как разделенная разделенными запятой парами, состоящая из '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' и числовой вектор числа (trees) неотрицательные значения. trees - значение Trees.

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

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

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

расширить все

Половина ошибки регрессии вне мешка, возвращенная как числовой скаляр или 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) является tau(k) off-of-bag ошибка регрессии квантиля с использованием учащегося в 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')

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] Breiman, L. «Random Forests». Машинное обучение 45, стр. 5-32, 2001.

[2] Meinshausen, N. «Quantle Regression Forests». Journal of Машинное Обучение Research, Vol. 7, 2006, pp. 983-999.

Введенный в R2016b
Для просмотра документации необходимо авторизоваться на сайте