Ошибка регрессии
возвращает среднеквадратическую ошибку между прогнозами 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
mustBeNonempty. Другими словами, вырастите 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.