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

 

кто проповал что то типа этого применить?

https://cs.stanford.edu/people/karpathy/convnetjs/demo/rldemo.html

 
mytarmailS #:

кто проповал что то типа этого применить?

https://cs.stanford.edu/people/karpathy/convnetjs/demo/rldemo.html

а оно работает ?

демо про таракана (кружочек с лапками-глазками), правила "  we'll start out with something more simple: a 2D agent that has 9 eyes pointing in different angles ahead and every eye senses 3 values along its direction (up to a certain maximum visibility distance): distance to a wall, distance to a green thing, or distance to a red thing. The agent navigates by using one of 5 actions that turn it different angles. The red things are apples and the agent gets reward for eating them. The green things are poison and the agent gets negative reward for eating them. The training takes a few tens of minutes with current parameter settings."

можно ткнуть start learning...потом stop learning.. 

предполагается что таракан будет бегать и предпочитать красные точки, избегая зелёных..

в реале : после stop learning он более-менее следует последнему паттерну движения и не различает красное-зелёное. Или мне попался на редкость тупой таракан :-)

 
Maxim Kuznetsov #:

а оно работает ?

демо про таракана (кружочек с лапками-глазками), правила "  we'll start out with something more simple: a 2D agent that has 9 eyes pointing in different angles ahead and every eye senses 3 values along its direction (up to a certain maximum visibility distance): distance to a wall, distance to a green thing, or distance to a red thing. The agent navigates by using one of 5 actions that turn it different angles. The red things are apples and the agent gets reward for eating them. The green things are poison and the agent gets negative reward for eating them. The training takes a few tens of minutes with current parameter settings."

можно ткнуть start learning...потом stop learning.. 

предполагается что таракан будет бегать и предпочитать красные точки, избегая зелёных..

в реале : после stop learning он более-менее следует последнему паттерну движения и не различает красное-зелёное. Или мне попался на редкость тупой таракан :-)

потому что не надо  тыкать  stop learning до того как завершыться   learning

 
mytarmailS #:

потому что не надо  тыкать  stop learning до того как завершыться   learning

ура! заработала...3 часа обучения, я уж и забыл почти про него

теперь-ча таракан бегает как положено (почти) старается избегать зелёных и жрёт красненькие.

Видимо так склалось, что одно "щупало" менее щупально обучилось :-) То есть если штрафной зелёный с определённой стороны, то он будет немедленно съеден. И наоборот красные по некоторому траверзу избегаются

но это наверное системный огрих. 

 
Aleksey Nikolayev #:

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

Может есть какое уже решение на том же R, но его надо просто поискать?

Aleksey Nikolayev #:

Есть у вас тяга к тяжёлым переборным вычислениям) Придётся же добавить (к уже немалому объёму перебора) перебор по видам признаков и, наверняка, по параметрам признаков.

Тем не менее, мне кажется что рациональное зерно в вашем подходе имеется, есть над чем поразмышлять.

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

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

 
mytarmailS #:
Может вместо стат критериев однородности выборки просто смотреть изменение feature importance модели в динамике (в скользящем окне)

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

Плюсы:
1.Тебе не надо программировать стат. Тесты, все уже готово из коробки
2. Учитывается не только изменение во времени выборки но и изменение целевой что думаю не мение важно

В какой момент смотреть, в момент обучения? И как смотреть в динамике предлагаете, как реализоать?

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

 
Aleksey Vyazmikin #:

В какой момент смотреть, в момент обучения? И как смотреть в динамике предлагаете, как реализоать?

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

Смотреть на старую модель нет смысла,  она не фиксирует изменения рынка..

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


Вот пример на рандомно сгенерированой выборке 5 признаков и 1 бинарная целевая

для фореста и для фиче-селектора

X <- matrix(rnorm(1000),ncol = 5)
Y <- as.factor(sample(0:1,nrow(X),replace = T))

head(X)
head(Y)

#install.packages("randomForest")
library(randomForest)
rf_imp_mat <- matrix(ncol = ncol(X),nrow = nrow(X))
for(i in 30:nrow(X)){
  ii <- (i-29):i
  rf <- randomForest(Y[ii]~.,X[ii,],ntree=100)
  rf_imp_mat[i,] <- importance(rf)[,1]
}

#install.packages("FSelectorRcpp")
library(FSelectorRcpp)
fs_imp_mat <- matrix(ncol = ncol(X),nrow = nrow(X))
for(i in 30:nrow(X)){
  ii <- (i-29):i
  infg <- information_gain(y = Y[ii],x = as.data.frame(X[ii,]))
  fs_imp_mat[i,] <-  infg$importance
}

par(mfrow=c(1,2))
matplot(rf_imp_mat , t="l",lty=1,main="rf_var_imp")
matplot(fs_imp_mat , t="l",lty=1,main="fs_var_imp")


В Р-ке конечно не принято писать циклами если в этом нет необходимости, но этот стиль путает новичноков, да и середнячков как я тоже путает..

но можно кароч и так писать, кода в 3 раза меньше, результат тот же 

X <- matrix(rnorm(1000),ncol = 5)
Y <- as.factor(sample(0:1,nrow(X),replace = T))
idx <- embed(1:nrow(X),dimension = 30)[,30:1]

library(randomForest)
rf_imp_mat <- t(apply(idx,1,function(i) importance(randomForest(Y[i]~.,X[i,]))[,1]))
library(FSelectorRcpp)
fs_imp_mat <- t(apply(idx,1,function(i) information_gain(y=Y[i],x=as.data.frame(X[i,]))$importance))

par(mfrow=c(1,2))
matplot(rf_imp_mat , t="l",lty=1,main="rf_var_imp")
matplot(fs_imp_mat , t="l",lty=1,main="fs_var_imp")


Также разные фиче-селекторы на любой вкус , наверное 5% от того что есть в Р-ке

GitHub - FrancisArgnR/R-FeatureSelection-Packages: Brief guide to feature selection packages in R
GitHub - FrancisArgnR/R-FeatureSelection-Packages: Brief guide to feature selection packages in R
  • FrancisArgnR
  • github.com
Feature selection or variable selection in machine learning is the process of selecting a subset of relevant features (variables or predictors) for use in model construction. Packages FSinR Boruta caret spFSR varSelRF CORElearn FSelector
 

или смотреть в окошки на двух-трёх валютах, а торговать с задержкой в третьей.

то есть глядеть на вторую половину дня EUR,CHF к USD CAD а открывать рано утром JPY (AUD,NZD)...чтобы система научилась-таки определять тренд USD и успевала сторговать пока "он не протух"

просто боюсь что в отдельно-взятой котировке "все тропки исхожены" и доступными методами рыбку оттуда не достать.

 
Чтобы что-то изобретать нужно определить объект исследования, потом определить его свойства, тогда это не будет похоже на мартышку и очки
 
Maxim Dmitrievsky #:
Чтобы что-то изобретать нужно определить объект исследования, потом определить его свойства, тогда это не будет похоже на мартышку и очки

Рано еще определять объект исследования и его свойства, форуму всего 6 лет. Не надо так гнать!