Нелинейная функция с древовидным разбиением для нелинейных моделей 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