Нелинейная функция с древовидным разбиением для нелинейных моделей ARX
A treepartition
объект реализует древовидную нелинейную функцию и является нелинейной функцией отображения для оценки нелинейных моделей ARX. Функция отображения, которая также упоминается как nonlinearity, использует комбинацию линейных весов, смещения и нелинейной функции, чтобы вычислить ее выход. Нелинейная функция содержит treepartition
модули, которые работают с радиальной комбинацией входов.
Математически, treepartition
является нелинейной функцией который отображает m входы X (t) = [x (t 1), x 2 (t),..., xm (t)]T в скалярный выходной y (t). F является кусочно-линейной (аффинной) функцией x:
Здесь x принадлежит Pk разбиения. L является вектором 1-by- m, Ck является 1-by- m
+ 1 вектор, а Pk является разбиением x - пространство.
Для получения дополнительной информации о функции отображения F (x) см. Алгоритмы.
Использование treepartition
как значение OutputFcn
свойство idnlarx
модель. Для примера задайте treepartition
когда вы оцениваете idnlarx
модель с помощью следующей команды.
sys = nlarx(data,regressors,treepartition)
nlarx
оценивает модель, она по существу оценивает параметры treepartition
функция.
Можно сконфигурировать treepartition
функция для фиксации параметров. Чтобы опустить линейный компонент, установите LinearFcn.Use
на false
. Использовать evaluate
вычислить выход функции для заданного вектора входов.
создает T
= treepartitiontreepartition
t объекта
это двоичный древовидный объект нелинейного отображения. Функция вычисляет количество J узлов дерева, представленных свойством NumberOfUnits
, автоматически во время оценки. Дерево имеет количество листьев, равное 2^(J+1)-1
.
задает количество T
= treepartition(numUnits
)treepartition
узлы numUnits
.
F отображения определяется диадическим P раздела x -пространство, таким образом, что на каждом элементе раздела Pk, F является линейным отображением. Когда x принадлежит Pk, F (x) задается:
где L является вектором 1-by m, а d является скалярным общим для всех элементов разбиения. C k является вектором 1-бай- (m + 1).
F отображения и связанные P раздела x -пространство вычисляются следующим образом:
Учитывая значение J, диадического дерева с J уровнями и N = 2J–1 узлы инициализированы.
Каждый узел на уровне 1 < j < J имеет два потомка на уровне j + 1 и один родительский элемент на уровне j - 1.
Корневой узел на уровне 1 имеет два потомка.
Узлы на J уровне являются конечными листьями дерева и имеют один родительский элемент.
Один элемент разбиения связан с каждым узлом k дерева.
Вектор коэффициентов Ck вычисляется с помощью наблюдений за соответствующим элементом разбиения, Pk пенализованным алгоритмом наименьших квадратов.
Когда узел k не является оконечным листом, элемент P k разбиения разрезается на две части, чтобы получить элементы разбиения дочерних узлов. Вырез определяется полупространствами (1, x) Bk > 0 или < = 0 (перемещение влево или вправо потомка), где Bk выбирается для улучшения устойчивости наименьших квадратов расчета на разбиениях в дочерних узлах.
Когда значение отображения F, заданное как treepartition
объект, вычисляется в x, адаптивный алгоритм выбирает активный узел
k дерева в ветви разделов, которые содержат x.
Когда Focus
опция в nlarxOptions
является 'prediction'
, treepartition
использует нетеративный метод для оценки параметров. Итерационные уточнения не возможны для моделей, содержащих эту оценку нелинейности.
Вы не можете использовать treepartition
когда Focus
является 'simulation'
поскольку этот нелинейный объект отображения не является дифференцируемым. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций.
customnet
| evaluate
| idnlarx
| linear
| linearRegressor
| neuralnet
| nlarx
| polynomialRegressor
| sigmoidnet
| wavenet