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

 
mytarmailS:

Здравствуйте! 

у меня к вам два вопроса

1) по поводу рекурентных сетей из прошлой страницы я закинул пакет "rnn"  он действительно какой то странный и мало продуманный и переключился на  "RSNNS" взял сеть "Элмана" закинул данные все заработало отлично но есть одно "НО" я так и не понял где и как там устанавливать на "сколько далеко сеть помнит себя в прошлом" вот в "rnn" там сразу было понятно каждая переменная превращалась в матрицу где кол. колонок соответствовало как бы размеру памяти сети, а вот в "RSNNS"  я такого параметра не нашел, но это же невозможно чтоб его не было ведь суть рекурентной сети именно в этом.

 2) Что именно мне посмотреть в  "rminer" ? Если вы имеете ввиду что то типа "arima" то такое не подойдет уже обсуждали.

 

 Я сам попробовал написать такую целевую для классификатора чтоб прогнозировать на несколько шагов,  спрогнозировать не удалось, резы какие то странные, во первых качество упало (это нормально ведь прогноз не след свечу а на 5-тую или 10-тую) , анти корреляция сохранялась хоть и менее выражено , но прикол в том что опережающего  эффекта я не получил развороты индикатора были там же где и развороты рынка, то есть по сути я получил то что имел раньше но хужего качества, почему так мне не понятно...

 

 Добрый день.

1. Сеть Элмана как и сеть Джордана помнят только предыдущий шаг. Для учета многих предыдущих шагов нужно соединить RNN в цепь, это так называемая  LSTM. В этой статье довольно доходчиво описано о таких сетях. К сожалению они реализованы на Питоне. Но это же не проблема? Python и R отлично интегрированы.

2. В rminer есть функция lforecast -  Performs multi-step forecasts by iteratively using 1-ahead predictions as inputs.  Говоря о прогнозировании на несколько шагов вперед Вы конечно имеете в виду регрессию?

Удачи 

 
mytarmailS:


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

Что-то вычленить из признака можно только на исторических данных. Когда приходит новый бар, то признак должен что-то предсказывать, а чтобы он предсказывал, то он должен обладать предсказательной способностью. Предсказательная способность - это некоторая потенция признака, это когда одни значения признака предсказывают один класс, а другие значения признака предсказывают другой класс. Я уже приводил пример такой предсказательной способности. Целевая: "мужчины/женщины". Признак: "одежда". Если признак имеет только два значения: штаны/юбки, то в мусульманском обществе  такой признак с такими значениями однозначно предсказывает класс. Но в не мусульманском обществе имеется одежда юнисекс, кроме того еще огромное число наименований.  

Поэтому проблема определения предсказательной способности признака "одежда" для целевой переменной, имеющей два значения класса "мужчина/женщина" формулируется так: какой процент значений признака одежда будет однозначно предсказывать мужчин, а какой женщин? Если это западное общество и вся одежда "юнисекс", то признак "одежда" не обладает предсказательной способностью. В мусульманском обществе признак "одежда" будет обладать очень хорошей предсказательной способностью. Если мы сделаем наш пример более реальным, введя возраст...., то получим более реальную предсказательную способностью. Она будет конкретной и именно такая предсказательная способностью будет определять ошибку предсказания.

Т.е. из предсказательной способности предиктора вытекает ошибка предсказания и при соответствии выбранной модели имеющейся проблеме эта ошибка мало зависит от выбора модели. 

Из идей и предложений.

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

Из инструментов я давал ссылку на статью и  Dr.Trader попробовал применить, но не удачно. Отрицательность его результата я отношу к специфичности его набора признаков: большое число признаков, имеющее малое значение. Это очень специфический для форекса набор признаков. На форексе любой признак может иметь тысячи значений, а него десятки. 

Principal Components Regression, Pt. 3: Picking the Number of Components | R-bloggers
Principal Components Regression, Pt. 3: Picking the Number of Components | R-bloggers
  • Nina Zumel
  • www.r-bloggers.com
In our previous note we demonstrated Y-Aware PCA and other y-aware approaches to dimensionality reduction in a predictive modeling context, specifically Principal Components Regression (PCR). For our examples, we selected the appropriate number of principal components by eye. In this note, we will look at ways to select the appropriate number...
 
СанСаныч Фоменко:

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

Может потому что эта точка зрения не подкреплена ни тестированием ни результатом тестирования с вашей стороны?   :)

 И вообще зачем эти километровые ликбезы , вопрос был в том как из признака вытащить полезное, а не как отбирать признаки, это разные вещи и тут ваша ссылка на статью вообще ник месту ...

 
mytarmailS:

Может потому что эта точка зрения не подкреплена ни тестированием ни результатом тестирования с вашей стороны?   :)

 И вообще зачем эти километровые ликбезы , вопрос был в том как из признака вытащить полезное, а не как отбирать признаки, это разные вещи и тут ваша ссылка на статью вообще ник месту ...

Приходится писать километровые ликбезы. Если кратко: признак - это единое целое и ничего из него вытащить нельзя. Можно определить, подходит признак целиком или нет.

 

ПС.

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

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

Приходится писать километровые ликбезы. Если кратко: признак - это единое целое и ничего из него вытащить нельзя. Можно определить, подходит признак целиком или нет.

Ну если вы не понимаете как это можно сделать это же не значит что это не возможно верно? даже у меня есть несколько вариантов, хоть я щитаю себя  далеким от теории маш. обучения
 
СанСаныч Фоменко:

ПС.

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

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

Да и вообще Саныч может хватит уже?!?!

говорить о том чего нет на самом деле, мне уже давно стало все понятно...

 

Это мягко говоря не хорошо, по отношению к другим участникам, которые вас читают и потом тратят время на поход по дороге в никуда

 
mytarmailS:

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

Да и вообще Саныч может хватит уже?!?!

говорить о том чего нет на самом деле, мне уже давно стало все понятно...

 

Это мягко говоря не хорошо, по отношению к другим участникам, которые вас читают и потом тратят время на поход по дороге в никуда

Удачи.
 
mytarmailS:

Давайте отвлечемся и подумаем как работает профессиональный  трейдер(помним, я все еще утрирую :)) у которого скажем есть всего два признака - уровни и индикатор "RSI" , и есть торговая система в которой сделка на продажу звучит так -  если уровень пробит вверх и RSI больше 0,9  то продажа...

Что есть торговая система? торг.сис. в этом случае выступает как фильтр данных, фильтр который не дает трейдеру заходить в шуме а доля шума в данном примере с RSI не шуточная 95%  ведь диапазон у RSI от -1 до 1 а трейдеру надо всего лишь то что >0.9  те 5%...

Это вполне сработает если взять десяток индикаторов с десятком разных лагов. Но, какие именно индикаторы брать, и с какими лагами, ещё нужно определить. Для начала взять их большой набор, отобрать часть из них по каким-то правилам, и совокупность всей этой сотни финальных предикторов уже даст вам реальный шанс предсказать будущее. Берёте модель лес в rattle (random forest), подаёте ей данные, дальше строится дерево решений. Например если rsi[20]>0.4, и ma(16)[20] > 1.2, итд - то покупка. А если rsi <0.1 то уже продажа. Примерные картинки как выглядит лес можно посмотреть тут http://www.intuit.ru/studies/courses/6/6/lecture/174 . В общем, лес вам даст те самые признаки с вычлененными полезными значениями и порогами, как раз что вы хотели, для десятков индикаторов сразу.

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

 
mytarmailS:

Это мягко говоря не хорошо, по отношению к другим участникам, которые вас читают и потом тратят время на поход по дороге в никуда

Я полностью согласен с тем что когда-либо тут писал СанСаныч, рекомендую таки прислушаться. Много от него узнал, проверил, записал на память.
 
Dr.Trader:
Я полностью согласен с тем что когда-либо тут писал СанСаныч, рекомендую таки прислушаться. Много от него узнал, проверил, записал на память.
А как вам мнение, что если вы пойдете по пути Саныча, вы заметно снижаете и так низкую вероятность попадания в заветный 1%?
Причина обращения: