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

 
Yury Reshetov:
Не говорите ерунды. В jPrediction реализован алгоритм понижения размерности входов, чтобы не получить на выходе модель, которая обучалась на шумных или малозначимых предикторах. Т.е. производится выбор из множества моделей с различными комбинациями предикторов, из которых останется только та, что имеет наилучшую обобщающую способность.

гипотетическая ситуация....

есть у нас 100 потенцыальных предикторов, для простоты объяснения пусть это будут индикаторы.

 Представим что мы изначально знаем что во всех этих предикторах  есть только одна прибыльная ситуация, это когда РСИ пересек отметку 90 а стохастик только что стал ниже нуля (ситуация из потолка естественно) ,  такая ситуация дает падение цены с вероятностью 90%, все остальные предикторы являются полнейшим шумом, все остальные ситуации в предикторах РСИ и стохастик тоже являются полнейшим шумом, а ситуаций там всяких разных еще сотни и сотни....

 то бишь имеем около 0.01% полезного сигнала к 99,9% шума 

Допустим каким то чудом ваш МО отсеет все 98 предикторов и оставит  только два - РСИ и стохастик

 в РСИ есть сотни ситуацый РСИ>0, РСИ>13, РСИ<85, РСИ=0, РСИ<145, ............ и так сотни и сотни, в схохастике ситуаций не меньше, рабочая ситуация только одна, по скольку вы тренируете МО распознавать все движения цены то МО будет строить модели учитывая все возможные ситуации которые имеються в РСИ и стохастике, а вероятность в тех ситуациях что они сработают почти нулевая, но МО обязан их учитывать и строить какие то модели по ним , не смотря на то что это есть самый настоящий шум,  а та одна рабочая ситуация просто затеряется среди сотен других решений, вот оно переобучение....

 НУ как дошло наконец???

 

Смешали все в кучу.

Есть разные, независимые друг от друга проблемы. НО ОНИ КАК КИРПИЧИ ДЛЯ ДОМА: ТОЛЬКО ВСЕ ВМЕСТЕ ДАДУТ ТОРГОВУЮ СИСТЕМУ.

 

1. Подготовка предикторов. На этом этапе достаточно большое число целей и соответствующих им инструментов. Я умышленно всю проблематику этого этапа перекосил в стороны избавления от шума, т.е. поиска таких предикторов, которые обладают предсказательной способностью для данной КОНКРЕТНОЙ целевой переменной. Опишу идеал. Взял из статьи по генетике. Но  на своем примере.

Берем целевую переменную "мусульмане" (для чистоты). Предиктор "одежда", который имеет два значения "штаны" и "юбка". Часть значений предиктора "одежда" со значение "штаны" однозначно предсказывает класс "мужчина", а вторая часть предсказывает женщин. У нас также имеются такие в своем идеале предикторы,например, RSI для целевой переменной "buy/sell". Мы все знаем, что индикатор частенько врет, но часть его предсказывает один класс, а часть другой. Поэтому надо искать предикторы, часть которых предсказывала один класс,а часть другой. Причем, чем меньше пересечение (ложные срабатывания), тем качественнее предиктор. Идеал "штаны/юбки", когда предиктор может быть вообще разделен на две части без пересечений. Но это работает только для мусульман, а для европейцев....  

Есть алгоритмические методы (РСА, к примеру, но не классический, а с уточнением), но начинать надо с содержния предикторов. На основе содержательных соображений изначально надо отбросить кольца Сатурна, кофейную гущу и прочая....    При этом важна НЕ коррелированность этих предикторов. Например, берем некоторые производные от котира - они все из котира, а вот берем открытый интерес, объемы... Потом почему-то не обусждаются другие валютные пары, макроэкономика...

 

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

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

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

 

3. Бинарный-тернарный классификатор. Решетов, как всегда, запутал вопрос со своим понимаем тернарного классификатора.  Тернарный - это когда целевая переменная имеет три значения, а вообще говоря любое количество качественных (номинальных, категорийных) значений. У Решетова два бинарника, из которых он получает рабочий сигнал, который на форе ОЧЕНЬ ЖЕЛАТЕЛЕН - иметь тернарный сигнал  "buy/flet/sell". Я использую бинарную целевую переменную для классификации, а для торговли из результатов двух бинарных классификаций получаю три сигнала - точь-в-точь как Решетов.

 

4. Сведение результатов нескольких моделей в сигнал для торговли - это отдельная проблема. Имеется решение, предложенное Решетовым. Но выше в ветке предлагались другие решения. Выше Dik предлагал учитывать те значения, из которых получается класс. Можно вникнуть и в эту проблему, особенно если помнить, что алгоритмы классификации выдают значение ВЕРОЯТНОСТИ класса, из которого получают класс. Когда мы сваливаем результаты нескольких моделей в один результат, то учет этих вероятностей напрашивается сам собой. Имеются алгоритмы, которые делят эти вероятности не пополам, а иначе, что уменьшает ошибку классификации.

 

5. Финальная оценка модели. Это то, о чем у меня не удалось достигнуть взаимопонимания с Бурнаковым.   Берем модель и прогоняем "вне выборки", причем "вне" понимаем как вне временного интервала,на котором вели обучение, тестирование, кроссвалидацию... Этот шаг не является конструктивным, так как не говорит, что надо делать. На этом шаге выносится приговор: оставить или выбросить. Причина "выбросить" не слишком большая ошибка, а ее ПЕРЕМЕНЧИВОСТЬ ПО СРАВНЕНИЮ С ПРЕДЫДУЩИМИ ШАГАМИ. Выбросить потому, что модель переобучена, она безнадежна и опасна. Если этот шаг преодолели, то переходим в тестер, получая от него такой же результат "оставить - выбросить".

 
mytarmailS:

гипотетическая ситуация....

...

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

по скольку вы тренируете МО распознавать все движения цены то МО ...

...

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

jPrediction не обязан учитывать все возможные ситуации. Он работает намного проще, чем Вы насочиняли.

Принцип последовательного подбора предикторов (а не полного перебора комбинаций, как Вы пытаетесь выдумать) имеется в моём сообщении на стр. 109

Если у Вас амнезия, то напомню, что Вы уже уточняли порядок подбора предикторов на стр. 110

 

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

Решетов, как всегда, запутал вопрос со своим понимаем тернарного классификатора. 

...

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


Ну не негодяй ли этот Решетов?

Он так запутал вопрос, что теперича даже Фоменко вынужден делать точь в точь, как Решетов.

Шурик Шурикович, возьмите с полки пирожок. Ведь Вы его честно заслужили на поприще критиканства редиски и нехорошего человека - Решетова.

 
Yury Reshetov:

jPrediction не обязан учитывать все возможные ситуации. Он работает намного проще, чем Вы насочиняли.

Принцип последовательного подбора предикторов (а не полного перебора комбинаций, как Вы пытаетесь выдумать) имеется в моём сообщении на стр. 109

Если у Вас амнезия, то напомню, что Вы уже уточняли порядок подбора предикторов на стр. 110

Я вам о том почему МО(любой) не может нормально отобрать признаки, а вы мне про зеленое...

 
mytarmailS:

Я вам о том почему МО(любой) не может нормально отобрать признаки, а вы мне про зеленое...

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

Суть в том, что не надо проецировать собственные предубеждения на любые методы машинного обучения (и не только в области  МО).

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

 
Yury Reshetov:

Ну не негодяй ли этот Решетов?

Он так запутал вопрос, что теперича даже Фоменко вынужден делать точь в точь, как Решетов.

Шурик Шурикович, возьмите с полки пирожок. Ведь Вы его честно заслужили на поприще критиканства редиски и нехорошего человека - Решетова.

Успокойся.

Обидеть тебя лично у меня НИКОГДА даже в мыслях не было, так как мы с тобой одной крови.

 

А вот твое "на заборе" у меня вызывает несомненный интерес.

Дело вот в чем. На примере бинарника.

Предположим вероятность одного класса 0.49, а второго, соответственно, 0.51. Это два класса или "на заборе"? 

 
Yury Reshetov:

Самый тупой и самый бесперспективный тернарный велосипед, хотя самый примитивный в реализации: это ИНС с тремя выходами. Если у каждого такого выхода есть свой порог классификации, то на них получается не три, а восемь потенциально возможных состояний, из которых только три однозначны (значение выше порога только на одном из трёх выходов), а пять непонятно как интерпретировать (значения выше порога более чем на одном из выходов, либо ниже порога на всех трёх выходах). 

Для классификации всё гораздо проще, принято брать тот выход у которого значение больше. Если результаты на трёх выходах будут (0.1;0.3;0.2) то самый большое значение = 0.4, и активен выход номер 2.
Торговая модель может иметь такую логику:
Самое большое значение на первом выходе -> длинная позиция,
Самое большое значение на втором выходе -> выйти из всех сделок и не торговать,
Самое большое значение на третьем выходе -> короткая позиция.
И всё, никаких порогов, состояний, итд.

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

Dr.Trader:

Торговая модель может иметь такую логику:


  • Самое большое значение на первом выходе -> длинная позиция,
  • Самое большое значение на втором выходе -> выйти из всех сделок и не торговать,
  • Самое большое значение на третьем выходе -> короткая позиция.


И всё, никаких порогов, состояний, итд.

Тоже вариант. Хотя не факт, что такой тривиальный подход даст нормальную обобщающую способность. Иногда простота хуже воровства. Т.е. нужно проверять эмпирически - вскрытие покажет.
 
СанСаныч Фоменко:

Предположим вероятность одного класса 0.49, а второго, соответственно, 0.51. Это два класса или "на заборе"? 

Потому, что мороженное.

Извиняюсь, но каков вопрос, таков и ответ.

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

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