Ошибка регрессии
L = loss(tree,tbl,ResponseVarName)L = loss(tree,x,y)L = loss(___,Name,Value)[L,se,NLeaf,bestlevel]
= loss(___) возвращает среднеквадратическую ошибку между прогнозами 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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
Эта функция поддерживает длинные массивы для данных, которые не помещаются в память, с ограничением:
Только один вывод поддерживается.
Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.