Гребневая регрессия - страница 2

 
Ivan Butko #:
for (int i = 0; i >= 0; i--)

Вот это кривизна какая-то.

Но для начала, как тут советовали, надо бы делить на обучающую и тестовую подвыборки по хронологии.

 
Ivan Butko #:

Поскольку делал эту штуку год назад, по-моему, то проверил сейчас на новых данных 

2023-2024

Либо подсчёт неправильный, либо что-то ещё. 

Интересно, очень оптимистично выглядит.

Убедись, что совершенно нет заглядывания в будущее, даже зная 1 бар вперёд - получаются граальные результаты. Хотя, косвенно подтверждает правильность работы то, что с ростом количества символов результаты улучшаются, если бы было заглядывание, то уже на одном символе бы граалил.

 

Подсчет результатов неправильный.

И трактовка почему улучшается результат неправильная.

Надо бы подкачать регрессионный анализ.

 
А как применять гребневую регрессию на Форексе?
 
Vladislav Vidiukov #:
А как применять гребневую регрессию на Форексе?

Также, как и всё остальное - она предсказывает будущую цену, либо следующее число (если у вас всякие преобразования). 

 
Ivan Butko #:

Также, как и всё остальное - она предсказывает будущую цену, либо следующее число (если у вас всякие преобразования). 

Как она предсказывает цену? Можно подробнее?
 
Vladislav Vidiukov #:
Как она предсказывает цену? Можно подробнее?

Как я понял, пихаешь входные данные в неё и она делает предсказание следующего числа. 

Делает с помощью формулы, в которой есть коэффициенты, автоматически подбирающиеся, и какой-то регуляризации - штрафного элемента. Чем и отличается от обычной регрессии. 

Ну, так говорит интернет и чат-гпт про неё

 
Aleksey Vyazmikin #:

Попробуйте разбить выборку не рандомно, а по хронологии.

Вы имеете ввиду вот так


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False)


Тогда да - результаты хуже на новых данных

УГАДАНО     152  или  58%

НЕ УГАДАНО  108  или  42%


Меня ещё смущает запись 

# Разделение данных на признаки и целевую переменную
X = data.iloc[:, 0:20]  # Первые столбцы (по позиции)
y = data.iloc[:, 20]  # Последний столбец (по позиции)


То есть, он берёт на вход только 20 значений. А 21 вроде как целевая. 

Но в csv-файле 22 ячейки в строчке. Где последние две: это входная EURUSD и следом - целевая EURUSD. 

Видимо здесь и есть техническая ошибка. 

Ладно тогда. Отбой.



Благодарю всех участников ветки за помощь. 

 
Квадратноземельщики опять не смогли создать ИИ. Даже если индексация колонок будет правильная (я не вижу что в них, нужна распечатка колонок), все остальное все равно будет неправильное: подсчет результата и вывод относитьельно того, что добавление инструментов улучшает результат. 
 
Maxim Dmitrievsky #:
Квадратноземельщики опять не смогли создать ИИ
Ути батюшки, обидели ребёнка

Я не называл в той ветке имён, ты сам себя в плоскоземельщики записал

Учись у Пети, тот меня игнорит