Порождение нелинейных регрессионных моделей (пример)
Материал из MachineLearning.
(→Литература) |
м (викификация) |
||
Строка 1: | Строка 1: | ||
- | '''Порождение нелинейных регрессионных моделей''' | + | '''Порождение нелинейных регрессионных моделей''' — порождение функций, зависящих от параметров и от одной или нескольких свободных переменных. Зависимость от параметров предполагается нелинейной. |
- | + | ||
== Постановка задачи == | == Постановка задачи == | ||
Строка 33: | Строка 32: | ||
Для этого совершим обход дерева в глубину и поставим вершине типа '''А''' в соответствие конструкцию <tex>2( , )</tex>, вершине '''В''' – <tex>1( )</tex>, вершине '''C''' – <tex>1</tex>. | Для этого совершим обход дерева в глубину и поставим вершине типа '''А''' в соответствие конструкцию <tex>2( , )</tex>, вершине '''В''' – <tex>1( )</tex>, вершине '''C''' – <tex>1</tex>. | ||
- | |||
== Уточнение типа функции == | == Уточнение типа функции == | ||
Для порождения полного списка возможных суперпозиций, в которых вместо <tex>g_i^{_{(1)}}</tex> и <tex>g_i^{_{(2)}}</tex> стоят <tex>1</tex> и <tex>2</tex>, – нужно, воспользовавшись тем, что <tex>g_i^{_{(2)}}(x,y)</tex> может быть вызвана как <tex>g_i^{_{(2)}}(x)</tex>, заменить в каждой строке суперпозиции всеми возможными способами цифру <tex>1</tex> на <tex>2</tex>. Это несложно реализуется полным перебором – в каждом вхождении <tex>1</tex> нужно выбрать, заменять её или нет.<br /><br /> | Для порождения полного списка возможных суперпозиций, в которых вместо <tex>g_i^{_{(1)}}</tex> и <tex>g_i^{_{(2)}}</tex> стоят <tex>1</tex> и <tex>2</tex>, – нужно, воспользовавшись тем, что <tex>g_i^{_{(2)}}(x,y)</tex> может быть вызвана как <tex>g_i^{_{(2)}}(x)</tex>, заменить в каждой строке суперпозиции всеми возможными способами цифру <tex>1</tex> на <tex>2</tex>. Это несложно реализуется полным перебором – в каждом вхождении <tex>1</tex> нужно выбрать, заменять её или нет.<br /><br /> | ||
Этот этап будет излишним в реализации альтернативного варианта алгоритма. | Этот этап будет излишним в реализации альтернативного варианта алгоритма. | ||
- | |||
== Подстановка номера функции == | == Подстановка номера функции == | ||
Заключительный этап заключается в том, чтобы по двум спискам с номерами функций: в первом – номера <tex>g_i^{_{(1)}}(x)</tex>, во втором – <tex>g_i^{_{(2)}}(x,y)</tex> – и подготовленному на предыдущем шаге списку получить необходимый список суперпозиций. Осуществляется, опять же, полным перебором: рассматриваются все варианты замены <tex>1</tex> в каждом вхождении на номера из первого списка умножить на все варианты замены <tex>2</tex> в каждом вхождении на номера из второго списка.<br /><br /> | Заключительный этап заключается в том, чтобы по двум спискам с номерами функций: в первом – номера <tex>g_i^{_{(1)}}(x)</tex>, во втором – <tex>g_i^{_{(2)}}(x,y)</tex> – и подготовленному на предыдущем шаге списку получить необходимый список суперпозиций. Осуществляется, опять же, полным перебором: рассматриваются все варианты замены <tex>1</tex> в каждом вхождении на номера из первого списка умножить на все варианты замены <tex>2</tex> в каждом вхождении на номера из второго списка.<br /><br /> | ||
Список, полученный после этого шага, будет искомым. | Список, полученный после этого шага, будет искомым. | ||
- | |||
== Выбор оптимальной модели == | == Выбор оптимальной модели == | ||
Строка 60: | Строка 56: | ||
* [[Регрессионный анализ]] | * [[Регрессионный анализ]] | ||
* [[MVR Composer]] | * [[MVR Composer]] | ||
- | |||
== Литература == | == Литература == |
Версия 06:11, 21 апреля 2010
Порождение нелинейных регрессионных моделей — порождение функций, зависящих от параметров и от одной или нескольких свободных переменных. Зависимость от параметров предполагается нелинейной.
Постановка задачи
Задана выборка из пар . Задан набор порождающих функций одного и двух аргументов , которые зависят от параметров и свободных переменных . Функции гладкие параметрические. Требуется создать алгоритм, порождающий лексикографически упорядоченные суперпозиции возрастающей сложности. Каждая суперпозиция является регрессионной моделью одной независимой переменной. Сравнить качество моделей и регрессионные остатки на порожденном множестве.
Дополнительные предположения
Предполагается, что функции корректно работают в случае вызова в виде .
Интерпретация на языке деревьев
Заметим вначале, что суперпозиция функций может быть задана двоичным деревом , вершины которого ∈, корень – самая внешняя функция суперпозиции. Под глубиной вершины будем понимать расстояние от неё до корня. Если у вершины один потомок, то соответствующая функция запишется как , если два – то , если ноль – то или .
Так, дереву А соответствует суперпозиция , а дереву Б – суперпозиция .
Альтернативная интерпретация
Эта интерпретация особенно ценна, если нельзя вызвать в виде . Изменение состоит в том, что листья дерева суперпозиции считаются не функциями, а свободными переменными. В этом случае дереву А будет соответствовать суперпозиция дереву Б – суперпозиция .
Порождение множества деревьев суперпозиций
Комбинаторная простота этого шага алгоритма заключается в том, что изоморфные деревья задают разные суперпозиции. Однако простые смещения вершин не дают новых деревьев.
Так, деревья А и В различны с точки зрения задаваемых суперпозиций, но деревья А и Б идентичны. Поэтому при машинной реализации можно вообще исключить деревья типа Б, т.е. если из вершины исходит одно ребро, будем «рисовать» его «сверху вниз, справа налево», как в деревьях А и В.
Порождение деревьев осуществим по уровням глубины. Т.е. для задачи порождения деревьев высоты не больше породим все деревья высоты не больше и запишем их в список . В список поместим все деревья высоты ровно . Далее возьмём дерево из списка , построим всевозможные деревья высоты из него, получаемые добавлением рёбер к вершинам нижнего уровня глубины, и поместим их в конец списка . То же проделаем со всеми остальными деревьями списка .
Обход дерева суперпозиции
Следующий этап алгоритма – это получение по дереву задаваемой им суперпозиции в виде строки символов { }, где и означают и .
Для этого совершим обход дерева в глубину и поставим вершине типа А в соответствие конструкцию , вершине В – , вершине C – .
Уточнение типа функции
Для порождения полного списка возможных суперпозиций, в которых вместо и стоят и , – нужно, воспользовавшись тем, что может быть вызвана как , заменить в каждой строке суперпозиции всеми возможными способами цифру на . Это несложно реализуется полным перебором – в каждом вхождении нужно выбрать, заменять её или нет.
Этот этап будет излишним в реализации альтернативного варианта алгоритма.
Подстановка номера функции
Заключительный этап заключается в том, чтобы по двум спискам с номерами функций: в первом – номера , во втором – – и подготовленному на предыдущем шаге списку получить необходимый список суперпозиций. Осуществляется, опять же, полным перебором: рассматриваются все варианты замены в каждом вхождении на номера из первого списка умножить на все варианты замены в каждом вхождении на номера из второго списка.
Список, полученный после этого шага, будет искомым.
Выбор оптимальной модели
Необходимо понять, на каком этапе прекращать работу алгоритма и как из полученного множества моделей выбрать нужную. Вопрос выбора встаёт по той причине, что данные всегда зашумлены и функция, идеально приближающая обучающую выборку, может оказаться слишком сложной и, как следствие, неподходящей. Основная идея в том, чтобы ввести два параметра и , характеризующие функцию. Параметр характеризует степень приближения функцией данных на обучающей выборке (например, сумма квадратов остатков). Параметр характеризует сложность функции. Выбор его может быть самым разнообразным и зависеть от самих функций (например, скорее всего, вес или много больше веса ), или же от дерева суперпозиции, или от того и другого. При выборе зависимости от дерева суперпозиции также есть варианты среди всевозможных характеристик дерева: высоты , числа вершин , длины наибольшего пути и др. Одна из характеристик (предложена Е.Владиславлевой) – сумма количеств вершин по всем поддеревьям дерева суперпозиции . Под поддеревом понимается дерево, состоящее из некоторой вершины и всех её потомков.
Например, на рисунках Б – Д обведены всевозможные поддеревья дерева А. Сложность по Владиславлевой дерева А равна .
Исходный код
Скачать программную реализацию можно здесь: [1]
См. также
- Конструктивное построение множества суперпозиций
- Нелинейная регрессия
- Регрессионный анализ
- MVR Composer
Литература
- Стрижов В.В. Поиск параметрической регрессионной модели в индуктивно заданном множестве. [2]
- E. Vladislavleva, G. Smits, and D. den Hertog. “Order of Nonlinearity as a complexity measure for models generated by symbolic regression via Pareto genetic programming”, doi 10.1109/TEVC.2008.926486