Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1373

 
Vladimir Perervenko:

Этот очень интересный доклад не просто о простом и сложном. Акцент на том, что используя сложный препроцессинг можно свести решение задачи простыми моделями. Просто подтверждение простой истины которую я не устаю повторять в своих статьях: "Основные усилия должны быть направлены на препроцессинг предикторов, модели вторичны.

Докладчик веселый.

Удачи

В XGBOOST есть входной массив weights с весами строк. В некоторых др. пакетах это тоже есть.
Я вот подумал, что туда можно записать веса строк от 1 (для свежих) до 0,5 для старых строк. Тем самым повысится влияние новых данных.
Я попробовал - особых улучшений не заметил.

Кто-то еще пробовал - есть улучшения?

 
elibrarius:
В XGBOOST есть входной массив weights с весами строк. В некоторых др. пакетах это тоже есть.
Я вот подумал, что туда можно записать веса строк от 1 (для свежих) до 0,5 для старых строк. Тем самым повысится влияние новых данных.
Я попробовал - особых улучшений не заметил.

Кто-то еще пробовал - есть улучшения?

Немного не так. У вас есть например train[2000, ] и test[500, ]. Обучаете на train с начальными весами примеров = 1.0 , делаете предикт test[] обученной моделью. На основании качества предикта каждого примера test выставляете ему вес. Далее объединяете train и  test и формируете новую обучающую выборку, обучаете модель, тестируете и т.д. пока вся обучающаяся выборка будет иметь веса полученные таким образом. Можно к ним применить понижающий коэффициент для более старых баров, но я это не проверял. Все это для классификации конечно.

now_train <- rbind(train,test)%>% tail(dim(train)[1])

Проверял с ELM, дает хорошие результаты.

Удачи

 
Vladimir Perervenko:

Немного не так. У вас есть например train[2000, ] и test[500, ]. Обучаете на nrain с начальными весами примеров = 1.0 , делаете предикт test[] обученной моделью. На основании качества предикта каждого примера test выставляете ему вес. Далее объединяете train и  test и формируете новую обучающую выборку, обучаете модель, тестируете и т.д. пока вся обучающаяся выборка будет иметь веса полученные таким образом. Можно к ним применить понижающий коэффициент для более старых баров, но я это не проверял. Все это для классификации конечно.

Проверял с ELM, дает хорошие результаты.

Удачи

Это как в кросс валидации - поделить данные на 5 -10 частей и а каждом цикле проставлять веса части строк, пока все проставятся. Думаю надо 2-3 полных круга сделать, для уравновешивания.

Напоминает несколько итераций как в  самообучении для задания наилучших весов строк.
 
elibrarius:
Это как в кросс валидации - поделить данные на 5 -10 частей и а каждом цикле проставлять веса части строк, пока все проставятся. Думаю надо 2-3 полных круга сделать, для уравновешивания.

Напоминает несколько итераций как в  самообучении для задания наилучших весов строк.

Можно проверить с кроссспособом.

 
elibrarius:
В XGBOOST есть входной массив weights с весами строк. В некоторых др. пакетах это тоже есть.
Я вот подумал, что туда можно записать веса строк от 1 (для свежих) до 0,5 для старых строк. Тем самым повысится влияние новых данных.
Я попробовал - особых улучшений не заметил.

Кто-то еще пробовал - есть улучшения?

 ну и обучитесь только под новые тогда. Эти веса для выравнивания дисперсии модели на датасете, в логит регрессии с переменной дисперсией тоже используется (если не путаю о чем речь)

никаких концептуально существенных лучшений, кроме подгонки под датасет, не должно дать

если вам нужно достоверное обобщение для генеральной совокупности по небольшой подвыборке, то это байесовские подходы
 
elibrarius:
В XGBOOST есть входной массив weights с весами строк. В некоторых др. пакетах это тоже есть.
Я вот подумал, что туда можно записать веса строк от 1 (для свежих) до 0,5 для старых строк. Тем самым повысится влияние новых данных.
Я попробовал - особых улучшений не заметил.

Кто-то еще пробовал - есть улучшения?

По идеи эти веса будут влиять на построение первого дерева, т.е. почти тот же seed и баггинг, разные методики. Теоретически результат может сильно меняться, если сдвинуть хорошо разделяемые выборку предикторы на второй план в тех строках, где они дают правильную классификацию.

А там нет возможности задания применения предиктора только начиная с X сплита? Мне кажется это очень полезная вещь для поиска хорошей модели.
 
Maxim Dmitrievsky:

 ну и обучитесь только под новые тогда. Эти веса для выравнивания дисперсии модели на датасете, в логит регрессии с переменной дисперсией тоже используется (если не путаю о чем речь)

никаких концептуально существенных лучшений, кроме подгонки под датасет, не должно дать

если вам нужно достоверное обобщение для генеральной совокупности по небольшой подвыборке, то это байесовские подходы

Т.е. выравнивание подбирается методом который Владимир предложил?

 
Aleksey Vyazmikin:

По идеи эти веса будут влиять на построение первого дерева, т.е. почти тот же seed и баггинг, разные методики. Теоретически результат может сильно меняться, если сдвинуть хорошо разделяемые выборку предикторы на второй план в тех строках, где они дают правильную классификацию.

А там нет возможности задания применения предиктора только начиная с X сплита? Мне кажется это очень полезная вещь для поиска хорошей модели.

Эти веса не только в бустинг, но и в случ. леса и в НС могут подаваться. Видимо методика общая для всех систем МО.
Первый эксперимент с понижением влияния старых данных не показал улучшений.

При обучении на 30000 строк тест выглядит лучше, чем при обучении на 80000. На 80000 и сделок меньше и ошибка выше. Попробовал пропорционально уменьшить вес ( от 1 для свежих к 0,5 для старых) - результаты почти не изменились.


Видимо это все таки для выравнивания дисперсии, как обозначил Максим, методом изложенным Владимиром

 
elibrarius:

Т.е. выравнивание подбирается методом который Владимир предложил?

Наверное, это не совсем то что я подумал. Не знаю, не юзал, надо читать справку

есть где че почитать про эти параметры? че гадать
 
elibrarius:

Эти веса не только в бустинг, но и в случ. леса и в НС могут подаваться. Видимо методика общая для всех систем МО.
Первый эксперимент с понижением влияния старых данных не показал улучшений.

При обучении на 30000 строк тест выглядит лучше, чем при обучении на 80000. На 80000 и сделок меньше и ошибка выше. Попробовал пропорционально уменьшить вес ( от 1 для свежих к 0,5 для старых) - результаты почти не изменились.


Видимо это все таки для выравнивания дисперсии, как обозначил Максим, методом изложенным Владимиром

Да я говорю о целесообразности уменьшать веса тем строкам, в которых нужно сдвинуть разбитие предикторов на более низкий уровень дерева. Просто давать вес более новым данным может и есть смысл, если считаем, что рынок изменился...

Причина обращения: