Библиотеки: RL GMDH - страница 4

 
mov:

Возможно стучусь в открытую дверь, но т.к. в исходном не было...

Рекомендуют перед приведением к диапазону [0,1] предобработку:

1. удаление периодичности, выполнил в periodicityArrays() - из ряда вычитается профиль, составленный по дням недели и часу за месяц (правда для пробы сделал только для часового таймфрейма).

2.Удаление линейного тренда в linearTrendArrays() как рекомендуют a[i]=a[i]-a[i+1].

3.А вот здесь и должна быть проверка автокорреляции (пока не реализовано)


предсказательность после 1и 2 действий повысилась значительно. Код прикладываю.

Спасибо за проделанный труд, обязательно посмотрю сегодня-завтра

по поводу удаления линейного тренда - это использование приращений, в RF recursive так сделано, например. Но используются частные цен а не разницы, и происходит перебор приращений с различным лагом. То есть на вход подаются просто цены, а затем идет препроцесинг с выделнием наилучших приращений (вообще это называется последовательное выделение трендов, в литературе, здесь такая операция не дословная, но аналог). У Вас используются приращения с единичным лагом, то есть по сути вся долгосрочная информация теряется. Крупные тренды все же нужно как-то учитывать на рынке. Более того, во многих источниках по прогнозированию ВР явно указывается, что линейный тренд обязательно должен учитываться, даже просто зависимость от времени. Есть небольшая путаница в головах машинлернеров в части нормализации и стандартизации переменных для предсказания псевдостационарных процессов и для предсказания временных рядов. Они начинают применять подходы, которые не работают для задач прогнозирования ВР. В предсказании временных рядов тренд - это чуть ли не самое главное :) Возможно, есть смысл в кач-ве инпутов подавать не сам линейный тренд, а стат. характеристики за выбранный период (моменты распределений), не пробовал

for(int bf=0;bf<features;bf++) {  
     for(int bf2=bf+1;bf2<features;bf2++) {               
      for(int i=0;i<RDFpolicyMatrix.Size();i++) {   
        m[i].Set(0,RDFpolicyMatrix[i][bf]/RDFpolicyMatrix[i][bf2]);         
        m[i].Set(1,RDFpolicyMatrix[i][features]);   
        m[i].Set(2,RDFpolicyMatrix[i][features+1]); 
       }         
      CDForest::DFBuildRandomDecisionForest(m,RDFpolicyMatrix.Size(),1,2,trees,r,RDFinfo,mRDF,mRep);         
      ArrayResize(models1,ArraySize(models1)/3+1);
      models1[modelCounterInitial][0] = mRep.m_oobavgce;   
      models1[modelCounterInitial][1] = bf; 
      models1[modelCounterInitial][2] = bf2;   
      modelCounterInitial++;                     
     }  
    }

по поводу периодичности - не очень уловил мысль

не заметил больших улучшений на ООС по сравнению с базовой версией

 

Maxim Dmitrievsky:

Есть небольшая путаница в головах машинлернеров в части нормализации и стандартизации переменных для предсказания псевдостационарных процессов и для предсказания временных рядов. Они начинают применять подходы, которые не работают для задач прогнозирования ВР. В предсказании временных рядов тренд - это чуть ли не самое главное :) Возможно, есть смысл в кач-ве инпутов подавать не сам линейный тренд, а стат. характеристики за выбранный период (моменты распределений), не пробовал

по поводу периодичности - не очень уловил мысль

не заметил больших улучшений на ООС по сравнению с базовой версией

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

Поясню, каким образом я тестирую. Берется  год со сдвигом на месяц назад. Обучение модели. Проверка модели на последнем месяце (не входившем в обучение). Возможно месяц мало, но я исхожу из того, что модель должна работать на будущий период. Больше месяца смотреть нет смысла, модель будет за этот срок пере- оптимизирована. При таком подходе мне важна прибыльность в первые дни (ну и субъективная оценка - срок, через который необходимо пере оптимизировать). При предыдущих вариантах удавалось добиться + торговли на 1-1,5 недели вперед стабильно, потом начинались горки. С использованием указанной пред- обработки, удалось добиться 2-2,5 недели в +. Именно это я назвал повышением предсказательности. Возможно мой подход не совсем статистически верен, но на мой взгляд практичен. 2 недели стабильной работы метода уже позволяют использовать в реальной торговле с пере- оптимизацией через неделю. Естественно для торгов будет для обучения использован последний период (без отступления).

 
mov:

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

Поясню, каким образом я тестирую. Берется  год со сдвигом на месяц назад. Обучение модели. Проверка модели на последнем месяце (не входившем в обучение). Возможно месяц мало, но я исхожу из того, что модель должна работать на будущий период. Больше месяца смотреть нет смысла, модель будет за этот срок пере- оптимизирована. При таком подходе мне важна прибыльность в первые дни (ну и субъективная оценка - срок, через который необходимо пере оптимизировать). При предыдущих вариантах удавалось добиться + торговли на 1-1,5 недели вперед стабильно, потом начинались горки. С использованием указанной пред- обработки, удалось добиться 2-2,5 недели в +. Именно это я назвал повышением предсказательности. Возможно мой подход не совсем статистически верен, но на мой взгляд практичен. 2 недели стабильной работы метода уже позволяют использовать в реальной торговле с пере- оптимизацией через неделю. Естественно для торгов будет для обучения использован последний период (без отступления).

Спасибо. взгляну. Признаться, я немного запутался в том, чем же все-таки лучше кормить модель. Множественные трансформации уводят в дебри, совершенно не интуитивно

На данный момент исследую применимость линейных моделей в данном подходе

з.ы. у вас не в электронном виде?

 

Maxim Dmitrievsky:

з.ы. у вас не в электронном виде?

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

 
mov:

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

вот именно про удаление периодичности хотелось бы, как он\они это видят, с остальным понятно

 
Алгоритм в разделе 6.4.2, ссылка идет на 5.2.1 конец. На всякий случай сделал обе главы целиком, извиняюсь без обработки сканов, но на работе мало свободного времени (а сканер рабочий).
Файлы:
im65-6.zip  1452 kb
 
mov:
Алгоритм в разделе 6.4.2, ссылка идет на 5.2.1 конец. На всякий случай сделал обе главы целиком, извиняюсь без обработки сканов, но на работе мало свободного времени (а сканер рабочий).

спасибо! начал читать

 
Maxim Dmitrievsky:

спасибо! начал читать

Извините, возможно будет полезно: Гайдышев Анализ и обработка данных Специальный справочник  2001. гл6 методы снижения размерности (книга хороша примерами на С). В сети есть pdf, приложить смог только djvu(ограничение на размер файла)
 
Олег:
Извините, возможно будет полезно: Гайдышев Анализ и обработка данных Специальный справочник  2001. гл6 методы снижения размерности (книга хороша примерами на С). В сети есть pdf, приложить смог только djvu(ограничение на размер файла)

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

 
Олег:
Извините, возможно будет полезно: Гайдышев Анализ и обработка данных Специальный справочник  2001. гл6 методы снижения размерности (книга хороша примерами на С). В сети есть pdf, приложить смог только djvu(ограничение на размер файла)

https://www.mql5.com/ru/forum/86386/page1189#comment_9795331

Машинное обучение в трейдинге: теория и практика (торговля и не только)
Машинное обучение в трейдинге: теория и практика (торговля и не только)
  • 2018.12.06
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...