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

 
Dr.Trader:

Vtreat лучше. Он оценивает всё статистически, насколько в целом предиктор хорош/плох для предсказани целевой переменной, без подгонки под конкретную предсказательную модель. Рекомендуется использовать предикторы с оценкой не больше 1/(кол-во предикторов). Например если есть 200 предикторов - берём из них только те, у которых оценка меньше 1/200. Можно оценить предикторы, и если все оценки выше порога -  вместо безуспешных попыток обучить модель и предсказать новые данные - лучше сразу просто начать искать другие предикторы.

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

Вообще-то корелированность предикторов - зло.

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

Может так? 

 
СанСаныч Фоменко:

Вообще-то корелированность предикторов - зло.

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

Может так? 

Кстати, никто не отменял data mining. Здесь на сайте имеется шикарная статья нашего коллеги на эту тему. К сожалению автор не принимает участие на этой ветке.
 
Dr.Trader:

Хороший у вас выработался инструментарий для оценки эвристики, солидно. Вы доказали что выработанный вами способ обучения модели (комитета) не подходит для форекс, но что дальше?


Еще точку на методе не поставил. Он интригует хотя бы тем, что 1/3 лучших моделей на обучении и тесте проходят еще 5 лет валидации с плюсом. Если бы все сливали.

КРоме того, есть еще одна мысль касаемо моего графика. Если модель настолько хороша, что 95% ее значений лежали бы выше 0 на валдиации, то можно забыть о связи валидации и теста и брать любую обученную модель.

В этом смысл искать мощные модели (с хороших обобщающим эффектом). 

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

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

Вопрос, есть ли смысл в этом всём?
Потому, что на моем опыте, чем проще и понятнее система, тем она прибыльней.
 
СанСаныч Фоменко:

.... Но только после отсеивания шума. А факт отсутствия шума определяется примерной неизменностью показателей результативности модели на разных выборках. Не абсолютная величина ошибки предсказания, а факт примерного равенства показателей результативности, которое (равенство) трактуем как доказательство отсутствия переобученности модели. ОТСУТСТВИЕ ПЕРЕОБУЧЕННОСТИ наше все.  

Хочу ответить и вам.

Вот вы смотрите на равенство показателей. Называете это отсутствием переобученности. А пробовали ли вы оценить реально отсутствие переобученности тестом вашей отобранной модели еще одной большой выборкой - отложенной? Не получится ли так, что равенство на одной части данных выродится в подгонку под эти данные модели, а модель сольет в будущем? Я следую в своем исследовании такой схеме. 

 
Почитайте про elasticnet. Это метод и пакет. Гибридная регуляризация для линейных моделей. Там корреляция предикторов как раз обрабатывается.
 
Кто нибудь тренирует свои модели раздельно для бай и сел?
 
Alexey Burnakov:

Хочу ответить и вам.

Вот вы смотрите на равенство показателей. Называете это отсутствием переобученности. А пробовали ли вы оценить реально отсутствие переобученности тестом вашей отобранной модели еще одной большой выборкой - отложенной? Не получится ли так, что равенство на одной части данных выродится в подгонку под эти данные модели, а модель сольет в будущем? Я следую в своем исследовании такой схеме. 

У меня свой алгоритм отсеивания шума. 

Если применить, на отобранных предикторах обучить модель, то на любых выборках примерно равные показатели эффективности этой модели. Мои мысли о доверительных интервалах отсюда, чтоб избавиться от слов "примерно равны". 

 

Скажу более этого.

Практика выглядит иначе.

Приходится работать в окне. Так для работы в окне из моего предварительного отобранного набора предикторов начинаю отбирать предикторы по   rfe из caret. Для конкретного окна получаю некоторое подмножество, которое понижает ошибку на 5-7%. На Н1 делаю раз в неделю. Это подмножество меняется в очередные выходные. Так живу с прошлого года.

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

 
Andrey Dik:
Кто нибудь тренирует свои модели раздельно для бай и сел?

Я предсказываю всего 2 класса - "купить" и "продать", то есть у меня всегда будет открыта какая-нибудь сделка. Работаю с одной моделью, не вижу смысла делать две модели дающие просто противоположные результаты.

Но хотелось бы постепенно перейти к 3 классам - "купить"/"закрыть всё и не торговать"/"продать". Это даст возможность торговать с более сложной стратегией. Я пару раз пробовал, но у меня были проблемы с обучением моделей на три класса, особенно если модель регрессионная с последующим округлением результата к классам.
Я думаю что стоит попробовать создать две модели, в которой оригинальные классы 1/0/-1 трансформированы в 1/0/0 для первой модели (только покупка), и 0/0/1 для второй модели (только продажа). Это приведёт к несбалансированным классам в каждой модели (количество примеров с одним классом гораздо больше чем с другим), но я нашёл хорошие метрики для оценки модели которые работают в таких условиях - F-score и kappa. Ничего толком в этом направлении ещё не делал, но такой план выглядит достаточно возможным.

 
СанСаныч Фоменко:

Вообще-то корелированность предикторов - зло.

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

Может так? 

Нет, vtreat просто вообще не занимается анализом взаимодействия предикторов, к сожалению. Он их изучает строго по одному. Это не граальный пакет :(
Не думаю что шкалирование или центрирование как-то повлияют на результат. И если включить опцию y-aware - то пакет отмасштабирует и отцентрирует данные сам. 

Интересная статья от Владимира, спасибо за ссылку. Про анализ взаимодействия предикторов как раз в тему.

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