exponenta event banner

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) числовая матрица кумулятивных ошибок регрессии квантиля. err(j,k) является tau(k) ошибка регрессии квантиля с использованием обучающихся в Mdl.Trees(1:j) только.

'ensemble'

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

'individual'

err является Mdl.NumTreesоколо-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около-numel(tau) матрица. tau - значение Quantile.

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

  • Для 'Mode','cumulative', err является numel(trees)около-numel(tau) числовая матрица. err(j,k) является tau(k) кумулятивная ошибка квантовой регрессии вне пакета с использованием обучающихся в Mdl.Trees(trees(1:j)).

  • Для 'Mode','ensemble', err является 1около-numel(tau) числовой вектор. err(k) является tau(k) кумулятивная ошибка квантовой регрессии вне пакета с использованием обучающихся в Mdl.Trees(trees).

  • Для 'Mode','individual', err является numel(trees)около-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.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] Брейман, Л. «Случайные леса». Машинное обучение 45, стр. 5-32, 2001.

[2] Мейнсхаузен, Н. «Квантильные регрессионные леса». Журнал исследований машинного обучения, том 7, 2006, стр. 983-999.

Представлен в R2016b