Я строю генетический c алгоритм, который делает прогноз временных рядов в регрессионном анализе символов c. Я пытаюсь получить алгоритм, чтобы найти уравнение, которое будет соответствовать основной тенденции данных. (прогнозировать ежемесячные продажи пива)
Идея состоит в том, чтобы использовать выражения типа lisp, которые записывают уравнение в дереве. Это позволяет менять ветку на этапе кроссовера / спаривания.
5* (5 +5)
Написано как:
X = '(mul 5 (add 5 5))'
Y = parser(X)
y = ['mul', 5, ['add', 5, 5]]
Я хочу знать, как создать начальный набор совокупности, в котором отдельные лица автоматически представляют разные выражения. Где «пригодность» связана с тем, насколько хорошо каждое уравнение соответствует основной тенденции.
Например, один человек может быть: '(добавьте 100 (mul x (sin (mul x 3))))' где x - время в месяцах.
Как автоматически генерировать выражения для моего населения? Я понятия не имею, как это сделать, любая помощь будет принята с благодарностью.