treepartition

Класс, представляющий средство оценки нелинейности двоичного дерева для нелинейных моделей ARX

Синтаксис

t=treepartition(Property1,Value1,...PropertyN,ValueN)
t=treepartition('NumberOfUnits',N)

Описание

treepartition является объектом, который хранит двоичное дерево нелинейное средство оценки для оценки нелинейных моделей ARX. Объект задает нелинейную функцию y=F(x), где F является кусочно-линейной (аффинной) функцией x, y является скаляром, и x является 1 m вектором. Вычислите значение F с помощью evaluate(t,x), где t является объектом treepartition в x.

Конструкция

t=treepartition(Property1,Value1,...PropertyN,ValueN) создает объект средства оценки нелинейности двоичного дерева, заданный свойствами в treepartition Свойствах. Дерево имеет количество листов, равных 2^(J+1)-1, где J является количеством узлов в дереве и наборе свойством NumberOfUnits. Значение по умолчанию NumberOfUnits вычисляется автоматически и устанавливает верхний предел для фактического количества древовидных узлов, используемых средством оценки.

t=treepartition('NumberOfUnits',N) создает объект средства оценки нелинейности двоичного дерева с условиями N в расширении двоичного дерева (количество узлов в дереве). Когда вы оцениваете модель, содержащую t, значение свойства NumberOfUnits, N, в t автоматически изменяется, чтобы показать фактическое количество используемых листов — который является самым большим целым числом формы 2^n-1 и меньше чем или равный N.

Свойства treepartition

Можно включать пары значения свойства в конструктора, чтобы задать объект.

После создания объекта можно использовать get или запись через точку, чтобы получить доступ к значениям свойства объекта. Например:

% List all property values
get(t)
% Get value of NumberOfUnits property
t.NumberOfUnits

Можно также использовать функцию set, чтобы установить значение конкретных свойств. Например:

set(t, 'NumberOfUnits', 5)
Первый аргумент к set должен быть именем переменной MATLAB®.

PropertyName Описание
NumberOfUnits

Целое число задает количество узлов в дереве.
Default='auto' выбирает количество узлов от данных с помощью алгоритма сокращения.

Когда вы оцениваете модель, содержащую нелинейность treepartition, значение NumberOfUnits автоматически изменяется, чтобы показать фактическое количество используемых листов — который является самым большим целым числом формы 2^n-1 и меньше чем или равный N (целочисленное значение модулей, которые вы задаете).

Например:

treepartition('NumberOfUnits',5)
Parameters

Структура, содержащая следующие поля:

  • RegressorMean: 1 m вектором, содержащим средние значения x в данных об оценке, r.

  • RegressorMinMax: m-by-2 матрица, содержащая максимальные и минимальные значения регрессора данных оценки.

  • OutputOffset: скалярный d.

  • LinearCoef: m-by-1 вектор L.

  • SampleLength: Длина данных об оценке.

  • NoiseVariance: Предполагаемое отклонение шума в данных об оценке.

  • Tree: структура, содержащая следующие древовидные параметры:

    • TreeLevelPntr: N-by-1 вектор, содержащий уровни j каждого узла.

    • AncestorDescendantPntr: N-by-3 матрица, такая, что запись (k,1) является предком узла k и записи (k,2) и (k,3), является левыми и правыми потомками, соответственно.

    • LocalizingVectors: N-by-(m+1) матрица, такая, что r th строка является B_r.

    • LocalParVector: N-by-(m+1) матрица, такая, что k th строка является C_k.

    • LocalCovMatrix: N-by-((m+1)m/2) матрицирует таким образом, что k th строка является ковариационной матрицей C_k. C_k изменен как вектор - строка.

Options

Структура, содержащая следующие поля, которые влияют на первоначальную модель:

  • FinestCell: Целое число или вектор символов, задающий минимальное количество точек данных в самом маленьком разделе.
    Значение по умолчанию: 'auto', который вычисляет значение из данных.

  • 'Порог' : Пороговый параметр используется адаптивным алгоритмом сокращения. Меньшее пороговое значение соответствует более короткому ответвлению, которое отключено активным разделом D_a. Более высокое пороговое значение приводит к более длительному ответвлению.
    Значение по умолчанию: 1.0.

  • Stabilizer: параметр Штрафа оштрафованного алгоритма наименьших квадратов раньше вычислял локальные векторы параметра C_k. Более высокое значение стабилизатора улучшает устойчивость, но может ухудшить точность оценки наименьшего квадрата.
    Значение по умолчанию: 1e-6.

Примеры

Используйте treepartition, чтобы задать нелинейное средство оценки в нелинейных моделях ARX. Например:

m=nlarx(Data,Orders,treepartition('num',5));

Следующие команды обеспечивают пример использования усовершенствованных опций treepartition:

% Define the treepartition object.
t=treepartition('num',100);
% Set the Threshold, which is a field
% in the Options structure.
t.Options.Threshold=2;
% Estimate the nonlinear ARX model.
m=nlarx(Data,Orders,t);

Алгоритмы

F отображения задан двухместным разделом P x - пробел, такой, что на каждом элементе раздела Pk, F является линейным отображением. Когда x принадлежит Pk, F (x) дают:

F(x)=d+xL+(1,x)Ck,

где L 1 m вектором, и d является скаляром, характерным для всех элементов раздела. C k является 1 на (m +1) вектор.

Отображение F и сопоставленный раздел P x - пробел вычисляется можно следующим образом:

  1. Учитывая значение J, двухместного дерева с уровнями J и N = 2J–1 узлы инициализируется.

  2. Каждый узел на уровне 1 <j <J имеет двух потомков на уровне j + 1 и один родительский элемент на уровне j – 1.

    • Корневой узел на уровне 1 имеет двух потомков.

    • Узлы на уровне J отключает листы дерева и имеет один родительский элемент.

  3. Один элемент раздела сопоставлен к каждому узлу k дерева.

    • Вектор коэффициентов Ck вычисляется с помощью наблюдений относительно соответствующего элемента раздела Pk оштрафованным алгоритмом наименьших квадратов.

    • Когда узел, k не является останавливающимся листом, элемент раздела P k, сокращается в два, чтобы получить элементы раздела порожденных узлов. Сокращение задано полупространствами (1, x) Bk > 0 или <=0 (переместитесь к левому или правому потомку), где Bk выбран, чтобы улучшить устойчивость вычисления наименьшего квадрата на разделах в порожденных узлах.

  4. Когда значение отображения, F, заданный объектом treepartition, вычисляется в x, адаптивный алгоритм, выбирает активный узел k дерева на ответвлении разделов, которые содержат x.

Когда опцией Focus в nlarxOptions является 'prediction', treepartition использует неитеративный метод для оценки параметров. Итеративные улучшения не возможны для моделей, содержащих это средство оценки нелинейности.

Вы не можете использовать treepartition, когда Focus является 'simulation', потому что эта нелинейность средства оценки не дифференцируема. Минимизация ошибки симуляции требует дифференцируемых нелинейных функций.

Смотрите также

Представленный в R2007a