Я пытаюсь реализовать прогнозирование временных рядов с использованием программирования c. Я создаю случайные деревья (Ramped Half-n-Half) с s-выражениями и оцениваю каждое выражение, используя RMSE для расчета пригодности. Моя проблема в тренировочном процессе. Если я хочу предсказать цены на золото и данные об обучении выглядят так:
date open high low close
28/01/2008 90.959999 91.889999 90.75 91.75
29/01/2008 91.360001 91.720001 90.809998 91.150002
30/01/2008 90.709999 92.580002 90.449997 92.059998
31/01/2008 90.919998 91.660004 90.739998 91.400002
01/02/2008 91.75 91.870003 89.220001 89.349998
04/02/2008 88.510002 89.519997 88.050003 89.099998
05/02/2008 87.900002 88.690002 87.300003 87.68
06/02/2008 89 89.650002 88.75 88.949997
07/02/2008 88.949997 89.940002 88.809998 89.849998
08/02/2008 90 91 89.989998 91
Как я понимаю, эти данные являются нелинейными, поэтому мои вопросы:
1- Нужно ли какие-либо изменения в этих данных, такие как экспоненциальное сглаживание? и почему?
2- При циклическом расчете текущей популяции и оценке пригодности каждого выражения на тренировочных данных мне следует рассчитать среднеквадратическое среднеквадратичное отклонение только для части этих данных или для всех?
3- Когда алгоритм заканчивается и я получаю выражение с наилучшей (самой низкой) пригодностью, означает ли это, что, когда я применяю какую-либо строку из данных тренировки, на выходе должна быть цена следующего дня?
Я читал некоторые исследовательские работы по этому поводу, и я заметил, что некоторые из них упоминают деление тренировочных данных при вычислении физической формы, и некоторые из них выполняют экспоненциальное сглаживание. Однако я нашел их немного сложными для чтения и понимания, и большинство реализаций, которые я нашел, находятся либо в python, либо в R, с которыми я не знаком.
Я ценю любую помощь по этому вопросу. Спасибо.