Ошибка регрессии
возвращает среднюю квадратичную ошибку между предсказаниями 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 равна
2∑wn.
Примечания и ограничения по использованию:
Поддерживается только один выход.
С помощью этой функции можно использовать модели, обученные работе с данными в памяти или с данными высокого уровня.
Дополнительные сведения см. в разделе Массивы Tall.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.