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

 
Renat Akhtyamov #:

вроде бы тут такое было уже ранее

ну и снова выкатится проблема флета и тренда


...........

Метод состоит заключается в:

1)У вас есть некая модель (например линейная регрессия)

2)Некоторый набор наблюдений, в точности которого вы не уверены

Тогда создадим некоторый случайный шум и объединим его с набором наблюдений, повторим несколько раз.

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

Опционально можно выбрать самый устойчивый вариант поведения как предпочтительный.

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

 
LenaTrap #:

...........

Метод состоит заключается в:

1)У вас есть некая модель (например линейная регрессия)

2)Некоторый набор наблюдений, в точности которого вы не уверены

Тогда создадим некоторый случайный шум и объединим его с набором наблюдений, повторим несколько раз.

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

Опционально можно выбрать самый устойчивый вариант поведения как предпочтительный.

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

Нипанятна. Есть детерминированный ряд и модель, которая описывает его с точностью 100%. Добавили шум - точность описания модели стала 52%. Вы чем смысл этого действия? 
 
Dmytryi Nazarchuk #:
Нипанятна. Есть детерминированный ряд и модель, которая описывает его с точностью 100%. Добавили шум - точность описания модели стала 52%. Вы чем смысл этого действия? 

В азбуке морзе и связистах. это оттуда.

 
LenaTrap #:

...........

Метод состоит заключается в:

1)У вас есть некая модель (например линейная регрессия)

2)Некоторый набор наблюдений, в точности которого вы не уверены

Тогда создадим некоторый случайный шум и объединим его с набором наблюдений, повторим несколько раз.

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

Опционально можно выбрать самый устойчивый вариант поведения как предпочтительный.

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

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

 
Dmytryi Nazarchuk #:
Нипанятна. Есть детерминированный ряд и модель, которая описывает его с точностью 100%. Добавили шум - точность описания модели стала 52%. Вы чем смысл этого действия? 

Если вы можете получить точные значения из этого ряда, то нет никакого смысла. Если же вы можете получить только примерные значения, то смысл достаточно простой, проверить не является ли результат модели погрешностью ваших неточных измерений оригинального(идеального) ряда. Для этого есть точные математические формулы и определения, но я не понимаю их.

 
LenaTrap #:

Если вы можете получить точные значения из этого ряда, то нет никакого смысла. Если же вы можете получить только примерные значения, то смысл достаточно простой, проверить не является ли результат модели погрешностью ваших неточных измерений оригинального(идеального) ряда. Для этого есть точные математические формулы и определения, но я не понимаю их.

Смысл в надежности выделения искомого, а не в точности значений. Есть искомое, смешиваем на 10 процентов, выделяем 99, смешиваем 50, выделяем 80 или 20... все зависит от алгоритма выделения искомых данных.

зы. ну и от качества шума конечно. завуалировать можно любой сигнал, если знать сигнал. и иногда это происходит случайно.
 
LenaTrap #:

Если вы можете получить точные значения из этого ряда, то нет никакого смысла. Если же вы можете получить только примерные значения, то смысл достаточно простой, проверить не является ли результат модели погрешностью ваших неточных измерений оригинального(идеального) ряда. Для этого есть точные математические формулы и определения, но я не понимаю их.

Это не для регрессии 
 
elibrarius #:
Я заполнял предикторы и выход рандомом. Просто чтобы убедиться, что обучение невозможно. Убедился в 50/50%.
С котировками и с целевой при ТП=СЛ тоже получается 50/50%.

А если целевую не рандомно поставить?

Тут провел эксперимент - у меня обычно выборка разбита на 3 части, так вот я взял, объединил в одну выборку и обучил модель из 100 деревьев, потом посмотрел, какие предикторы не использовались и заблокировал их. Далее уже как обычно обучал модель с остановкой по переобучению на второй выборке, и сравнил результаты на третьей выборке с вариантом, когда я обучаюсь без исключения предикторов. Оказалось, что результаты были лучше на отобранных предикторах, и тут я затрудняюсь с выводами данного эффекта мысли такие "выбор разных предикторов происходит из-за различия выборок на интервале, обучаясь на всей выборке мы автоматически отбираем предикторы, которые не теряют свою значимость на протяжении долгого времени.". Однако, значит ли это, что чем больше выборка, тем устойчивей модель на длительном горизонте? Можно ли таким образом отбирать предикторы для обучения, т.е. не способствует ли это переобучению? В общем то слышал рекомендацию от создателей CatBoost, что нужно найти гиперпараметры модели, а потом тупо обучиться на всей доступной выборки для применения модели в работе.


elibrarius #:
Был вариант с ошибкой 47,5%, выглядел круто, но когда подключил к тестеру МТ, то вместо роста оказалось падение. Оказалось что комиссию не учитывал, она эти 2% преимущества и съела.

Вот думаю как комиссию учитывать...
Хотел добавить 4 пт к спреду. Но это неправильно. Т.к.ТП и СЛ будут срабатывать иногда по завышенному Ask-у не на том баре, где должно было быть в тестере, из за этого весь порядок последующих сделок может измениться.
Но и тестер использует минимальный спред на баре, от реальности он тоже будет отличаться.

Пока не придумал как лучше.

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

На Moex стопы срабатывают там, где была цена, поэтому конечно проще с этим.

 
Aleksey Vyazmikin #:

А если целевую не рандомно поставить?

А как?  Дублировать один из входов в выход? Обучится хорошо. Кажется даже пробовал.

Aleksey Vyazmikin #:

Тут провел эксперимент - у меня обычно выборка разбита на 3 части, так вот я взял, объединил в одну выборку и обучил модель из 100 деревьев, потом посмотрел, какие предикторы не использовались и заблокировал их. Далее уже как обычно обучал модель с остановкой по переобучению на второй выборке, и сравнил результаты на третьей выборке с вариантом, когда я обучаюсь без исключения предикторов. Оказалось, что результаты были лучше на отобранных предикторах, и тут я затрудняюсь с выводами данного эффекта мысли такие "выбор разных предикторов происходит из-за различия выборок на интервале, обучаясь на всей выборке мы автоматически отбираем предикторы, которые не теряют свою значимость на протяжении долгого времени.".

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

Aleksey Vyazmikin #:

Однако, значит ли это, что чем больше выборка, тем устойчивей модель на длительном горизонте? Можно ли таким образом отбирать предикторы для обучения, т.е. не способствует ли это переобучению?

Как говорят - рынок меняется. Приходят новые игроки, создают новых роботов, а старых отключают и т.д. Думаю, что на очень большой выборке модель будет приходить к усредненному для всех тех изменений результату, возможно что к нулевому. Думаю надо подбирать глубину обучения по максимальной эффективности и регулярно переобучать. Сам экспериментирую с одинаковым периодом (например тест за 2 года, переобучаю по субботам, размер данных пробовал от нескольких дней до года - двух).
Теоретически, было бы лучше как то автоматически определять размер выборки для обучения, для каждого переобучения. Но пока не знаю как.

Aleksey Vyazmikin #:
В общем то слышал рекомендацию от создателей CatBoost, что нужно найти гиперпараметры модели, а потом тупо обучиться на всей доступной выборки для применения модели в работе.

Создатели плохого не посоветуют) Я гиперпараметры подбираю на Валкинг-Форварде (ВФ), т.к. последовательность данных останется и тут как раз можно будет подбирать глубину истории для обучения, по ухудшению влияния старых данных. Можно и на Кросс-Валидации (КВ), если данные не меняются со временем, но это не про рынки.
После подбора, естественно обучаться надо до настоящего момента и пользоваться моделью то время, которое было у вас в форвардном участке на КВ или ВФ.
Обучаясь на одном участке с тестовым участком, вы подгоняете модель и гиперпараметры под этот 1 тест. А обучившись 10-50 раз по КВ или ВФ - вы найдете лучшие гиперпараметры для большого участка истории.
Может это лучше, а может мне просто лень подбирать гиперпараметры раз в неделю)) Так-что, что  на самом деле лучше - покажет практика.

 
elibrarius #:
Теоретически, было бы лучше как то автоматически определять размер выборки для обучения, для каждого переобучения. Но пока не знаю как

ДЛЯ ОПРЕДЕЛЕНИЯ СРЕДНЕЙ

если размер ген. совок-ти неизвестен - считают объём повторной выборки

n=(t^2*sigma^2)/delta_y^2

- для случайной выборки (для расслоённых и  серийных выборок  немного усложняется формула)

т.е. надо определиться с требуемой доверительной вероятностью P и соответствующим ей коэф доверия (степень надёжности) t=2 для вер-ти 95%... допустимую макс предельную ошибку средней (должен знать сам эксперт по отрасли, если вы трейдер) в делитель... и дисперсию (sigma) которая как бы неизвестна, но может быть известна  из предыдущих наблюдений...

вообще я об этом и писала свои сомнения, когда говорила о плавающем окне [в принципе можно и так сказать "размер выборки"] и t-statistics для определения флета-тренда и вероятности "где мы" - чтобы закладываться на reject RS или absorb RS...

понятное дело, при условии что у вас ваша feature имеет норм. распр-е, ну и она как бы главный фактор, влияющий на результат (возможно, вы уже определили её dy/dx->min)... речь не о многофакторной модели (наверно, в этом случае можно взять макс. значение из рассчитанных... имхо)

ДЛЯ ОПРЕДЕЛЕНИЯ ДОЛИ ПРИЗНАКА

так же, но вместо показателей ошибки и дисперсии средней использовать предельную ошибку доли(delta_w) и дисперсию альтернативного признака w(1-w)

если частость(w) даже приблизительно неизвестна, в рассчётах учитывается макс. величина дисперсии доли, 0,5(1-0,5)=0,25

cboe по опцам в оценку ассиметрии вкладывают минуты до даты экспирации 2х ближайших К_opt (как альтернативные признаки)...

или люб. др. признаки на вкус и цвет (если без опцов)

p.s. примерно как здесь

p.p.s. как бы так по логике, а уж как внедрить расчёт достаточности выборки в построение модели при неизвестной ген. совокупности - это вопрос наличия исх. данных и логики... но 2года - мне тоже кажется норм. диапазон для ген совокупности... имхо

Определение объема выборки
Определение объема выборки
  • 2013.08.16
  • baguzin.ru
Ранее мы рассмотрели методы построения доверительного интервала для математического ожидания генеральной совокупности. В каждом из рассмотренных случаев мы заранее фиксировали объем выборки, не учитывая ширину доверительного интервала. В реальных задачах определить объем выборки довольно сложно. Это зависит от наличия финансовых ресурсов...