Символьная регрессия

advertisement
Занятие 10. Символьная регрессия
•
•
•
•
Краткое содержание
Понятие символьной регрессии
Синтаксические деревья и обратная польская запись
Понятие генетического алгоритма
Символьная регрессия: практический пример
Символьная регрессия - метод построения регрессионных моделей
путём перебора суперпозиций заранее заданного набора функций
Достоинства:
1. Возможно использовать в том случае, когда неизвестен вид
модели
Недостатки:
1. Ресурсоёмкость
2. Нередко полученные модели избыточно сложны
Для поиска оптимальной модели применяют так называемые
генетические алгоритмы.
Привычная для нас запись формул сложна и неудобна для
использования в генетических алгоритмах (из-за разного приоритета
операций, скобок и т.п.)
Синтаксическое дерево
𝒚=
• Обычно
получают
в
ходе
синтаксического анализа формул
• Не требуется задание приоритета
операций в самом дереве
• Расчёт с помощью рекурсии (т.е.
спуск по поддеревьям)
𝒙𝟐 − 𝟑𝒙 + 𝟐
+
−
𝟐
^
𝒙
∗
𝟐
𝟑
𝒙
Обратная польская запись
Обратная польская (постфиксная) запись
3 5 + 2 * 6 7 + 8 9 - / -
Традиционная (инфиксная) запись
2*(3+5) – (6+7)/(8-9)
Вычисление выражения
Вычисление выражения
Вход
Стек
3 5 + 2 * 6 7 + 8 9 - / 3 5
Вход
Стек
+ 2 * 6 7 + 8 9 - / 8 2
Вход
Стек
* 6 7 + 8 9 - / 16 6 7
Вход
Стек
+ 8 9 - / 16 13 8 9
Вход
Стек
- / 16 13 -1
Вход
Стек
/ 16 -13
Вход
Стек
29
3+5 = 8; 8*2 = 16
6+7 = 13; 8-9 = -1
13/-1 = -13;
16 – (-13) = 29
Особенности обратной польской
записи:
• У операций отсутствует приоритет
• Не нужны скобки
• Все операции записываются
единообразно
Особенности работы со стеком
1. Новые значения добавляются на
его вершину
2. Операции берут значения с
вершины стека и помещают
результат на вершину
Генетические алгоритмы
Генетические алгоритмы –
алгоритмы нелинейной
оптимизации. Ключевые
характеристики:
• Работа с большим количеством
потенциальных решений
(«популяцией»)
• Использование целевой функции
для отбора членов популяции
• Получение новых членов
популяции операциями
«скрещивания»
(комбинированием) и
«мутациями» (случайные
изменения)
Ср. с процессом эволюции в живой
природе
(идея
генетического
алгоритма была взята именно из
биологии)
Генерация исходной
(случайной) популяции
Отбор части популяции с
использованием целевой
функции
ДА
Желаемый
результат
достигнут?
НЕТ
Вернуть
результат
Получение недостающей
части популяции
скрещиванием и
мутациями
Пример символьной регрессии
Базовые операции
Скрещивание
Поместить в стек x
Поместить в стек число
Сложение и вычитание
Умножение и деление (в виде
𝑥/(𝑦 + 𝛿))
5. Возведение в степень (в виде
𝑥 𝑦)
6. Унарный минус
Шаг 1. Взять два случайных члена
популяции
Шаг 2. Разделить каждое
выражение на две части и
поменять их местами
Внимание! Они должны
возвращать корректный результат
при любых входных данных!
Шаг 3. Внести случайные
изменения («мутации» в
коэффициенты и операции)
1.
2.
3.
4.
Члены популяции
Выражения в обратной польской
записи
A B + C D
C D / B A
Результат
A B + C /
C D D + *
+ * => (A+B)*(C+D)
^ + => (C/D)+B^A
B A ^ + => (A+B)/C+B^A
=> C*(D+D)
Функция приспособленности
𝑅𝑆𝑆 =
𝑦𝑖 − 𝑦𝑖
𝑖
2
Пример символьной регрессии
𝑦 = 𝑥 2 − 2𝑥 + 3
Результат регрессии
X [-1.0409] +
U- [2.0115] ^ [3.8315] [0.3417] ^ [0.6995] / [0.6995] ^ +
Упрощенный результат регрессии
(X – 1.0409)^2.0115 + (3.8315^0.3417)^0.6995/0.6995 =
= (X – 1.0409)^2.0115 + 1.5825
Download