Ошибка регрессии
возвращает среднюю квадратичную невязку между предсказаниями L = loss(tree,tbl,ResponseVarName)tree к данным в tbl, по сравнению с истинными ответами tbl.ResponseVarName.
вычисляет ошибку в предсказании с дополнительными опциями, заданными одним или несколькими L = loss(___,Name,Value)Name,Value аргументы в виде пар, с использованием любого из предыдущих синтаксисов.
tree - Обученное дерево регрессииRegressionTree | объекта CompactRegressionTree объектОбученное дерево регрессии, заданное как RegressionTree объект, созданный fitrtree или CompactRegressionTree объект, созданный compact.
x - Значения предиктораПредикторные значения, заданные как матрица значений с плавающей точкой. Каждый столбец x представляет одну переменную, и каждая строка представляет одно наблюдение.
Типы данных: single | double
ResponseVarName - Имя переменной откликаtblИмя переменной отклика, заданное как имя переменной в tbl.
Вы должны задать ResponseVarName как вектор символов или строковый скаляр. Для примера, если переменная отклика y хранится как tbl.y, затем задайте ResponseVarName как 'y'. В противном случае программное обеспечение обрабатывает все столбцы tbl, включая y, как предикторы при обучении модели.
Типы данных: char | string
y - Данные откликаДанные отклика, заданные как числовой вектор-столбец с одинаковым числом строк, как x. Каждая запись в y - ответ на данные в соответствующей строке x.
Типы данных: single | double
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'LossFun' - Функция потерь'mse' (по умолчанию) | указатель на функциюФункция потерь, заданная как разделенная разделенными запятой парами, состоящая из 'LossFun' и указатель на функцию для потерь, или 'mse' представление средней квадратной ошибки. Если вы передаете указатель на функцию fun, loss вызывает fun как:
fun(Y,Yfit,W)
Y - вектор истинных откликов.
Yfit - вектор предсказанных откликов.
W - веса наблюдений. Если вы сдаете Wэлементы нормированы в сумме к 1.
Все векторы имеют одинаковое число строк как Y.
Пример: 'LossFun','mse'
Типы данных: function_handle | char | string
'Subtrees' - Уровень обрезки'all'Уровень обрезки, заданный как разделенная разделенными запятой парами, состоящая из 'Subtrees' и вектор неотрицательных целых чисел в порядке возрастания или 'all'.
Если вы задаете вектор, то все элементы должны быть как минимум 0 и самое большее max(tree.PruneList). 0 указывает полное, несрезанное дерево и max(tree.PruneList) указывает полностью обрезанное дерево (т.е. только корневой узел).
Если вы задаете 'all', затем loss работает со всеми поддеревьями (т.е. со всей последовательностью обрезки). Эта спецификация эквивалентна использованию 0:max(tree.PruneList).
loss черносливы tree каждому уровню, указанному в Subtrees, а затем оценивает соответствующие выходные аргументы. Размер Subtrees определяет размер некоторых выходных аргументов.
Для вызова Subtrees, свойства PruneList и PruneAlpha от tree должно быть непустым. Другими словами, расти tree путем установки 'Prune','on', или путем обрезки tree использование prune.
Пример: 'Subtrees','all'
Типы данных: single | double | char | string
'TreeSize' - Размер дерева'se' (по умолчанию) | 'min'Размер дерева, заданный как разделенная разделенными запятой парами, состоящая из 'TreeSize' и одно из следующих:
'se' — loss возвращает bestlevel что соответствует наименьшему дереву, средняя квадратичная невязка (MSE) которого находится в пределах одной стандартной ошибки минимального MSE.
'min' — loss возвращает bestlevel что соответствует минимальному дереву MSE.
Пример: 'TreeSize','min'
'Weights' - Веса наблюденийones(size(X,1),1) (по умолчанию) | вектор скалярных значений | имя переменной в tblВеса наблюдений, заданные как разделенная разделенными запятой парами, состоящая из 'Weights' и вектор скалярных значений. Программа взвешивает наблюдения в каждой строке x или tbl с соответствующим значением в Weights. Размер Weights должно равняться количеству строк в x или tbl.
Если вы задаете входные данные как таблицу tbl, затем Weights может быть именем переменной в tbl который содержит числовой вектор. В этом случае необходимо задать Weights как имя переменной. Для примера, если вектор весов W хранится как tbl.W, затем задайте Weights как 'W'. В противном случае программное обеспечение обрабатывает все столбцы tbl, включая W, как предикторы при обучении модели.
Типы данных: single | double | char | string
L - Ошибка классификацииКлассификационная ошибка, возвращенная в качестве вектора длину Subtrees. Ошибка для каждого дерева является средней квадратичной невязкой, взвешенной с Weights. Если вы включаете LossFun, L отражает потери, рассчитанные с помощью LossFun.
se - Стандартная ошибка потерьСтандартная ошибка потерь, возвращенная в качестве вектора длина Subtrees.
NLeaf - Количество листовых узловКоличество листьев (терминальных узлов) в обрезанных поддеревьях, возвращаемое как вектор длину Subtrees.
bestlevel - Лучший уровень обрезкиЛучший уровень обрезки, как определено в TreeSize Пара "имя-значение", возвращенный как скаляр, значение которого зависит от TreeSize:
TreeSize = 'se' — loss возвращает наивысший уровень обрезки с потерями в пределах одного стандартного отклонения от минимального (L+ se, где L и se относятся к наименьшему значению в Subtrees).
TreeSize = 'min' — loss возвращает элемент Subtrees с наименьшими потерями, обычно наименьший элемент Subtrees.
Загрузите carsmall набор данных. Рассмотрим Displacement, Horsepower, и Weight как предикторы отклика MPG.
load carsmall
X = [Displacement Horsepower Weight];Вырастите дерево регрессии, используя все наблюдения.
tree = fitrtree(X,MPG);
Оцените MSE в выборке.
L = loss(tree,X,MPG)
L = 4.8952
Загрузите carsmall набор данных. Рассмотрим Displacement, Horsepower, и Weight как предикторы отклика MPG.
load carsmall
X = [Displacement Horsepower Weight];Вырастите дерево регрессии, используя все наблюдения.
Mdl = fitrtree(X,MPG);
Просмотрите дерево регрессии.
view(Mdl,'Mode','graph');

Найдите лучший уровень обрезки, который приводит к оптимальным потерям в выборке.
[L,se,NLeaf,bestLevel] = loss(Mdl,X,MPG,'Subtrees','all'); bestLevel
bestLevel = 1
Лучшим уровнем обрезки является уровень 1.
Обрезать дерево до уровня 1.
pruneMdl = prune(Mdl,'Level',bestLevel); view(pruneMdl,'Mode','graph');

Необрезанные деревья решений, как правило, перегружаются. Один из способов сбалансировать сложность модели и эффективности вне выборки - это обрезать дерево (или ограничить его рост), чтобы эффективность в выборке и вне выборки были удовлетворительными.
Загрузите carsmall набор данных. Рассмотрим Displacement, Horsepower, и Weight как предикторы отклика MPG.
load carsmall
X = [Displacement Horsepower Weight];
Y = MPG;Разделите данные на наборы для обучения (50%) и валидации (50%).
n = size(X,1); rng(1) % For reproducibility idxTrn = false(n,1); idxTrn(randsample(n,round(0.5*n))) = true; % Training set logical indices idxVal = idxTrn == false; % Validation set logical indices
Вырастите дерево регрессии с помощью набора обучающих данных.
Mdl = fitrtree(X(idxTrn,:),Y(idxTrn));
Просмотрите дерево регрессии.
view(Mdl,'Mode','graph');

Дерево регрессии имеет семь уровней обрезки. Уровень 0 является полным, несрезанным деревом (как показано). Уровень 7 является только корневым узлом (то есть без разделений).
Исследуйте обучающую выборку MSE для каждого поддерева (или уровня обрезки), исключая самый высокий уровень.
m = max(Mdl.PruneList) - 1;
trnLoss = resubLoss(Mdl,'SubTrees',0:m)trnLoss = 7×1
5.9789
6.2768
6.8316
7.5209
8.3951
10.7452
14.8445
MSE для полного, несрезанного дерева составляет около 6 модули.
MSE для дерева, обрезанного до уровня 1, составляет около 6,3 модули.
MSE для дерева, обрезанного до уровня 6 (т.е. пня), составляет около 14,8 модули.
Исследуйте выборку валидации MSE на каждом уровне, исключая самый высокий уровень.
valLoss = loss(Mdl,X(idxVal,:),Y(idxVal),'SubTrees',0:m)valLoss = 7×1
32.1205
31.5035
32.0541
30.8183
26.3535
30.0137
38.4695
MSE для полного, несрезанного дерева (уровень 0) составляет около 32,1 модули.
MSE для дерева, обрезанного до уровня 4, составляет около 26,4 модули.
MSE для дерева, обрезанного до уровня 5, составляет около 30,0 модули.
MSE для дерева, обрезанного до уровня 6 (т.е. пня), составляет около 38,5 модули.
Чтобы сбалансировать сложность модели и несовпадающую эффективность, рассмотрите обрезку Mdl на уровень 4.
pruneMdl = prune(Mdl,'Level',4); view(pruneMdl,'Mode','graph')

Средняя квадратная m ошибок f предсказаний (Xn) с вектором веса w является
Указания и ограничения по применению:
Поддерживается только один выход.
Вы можете использовать модели, обученные на памяти или высоких данных с этой функцией.
Для получения дополнительной информации см. Раздел «Длинные массивы»
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.