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

 
Aleksey Vyazmikin:

При запуске скрипта выдал ошибку о том, что версия требуется такая 

хз вот требования

Version:        4.1-1
Depends:        R (≥ 3.6.0), Matrix (≥ 1.0-6)
Imports:        methods, utils, foreach, shape, survival
Suggests:       knitr, lars, testthat, xfun, rmarkdown
Published:      2021-02-21

У тебя наверное стояла версия меньше 3.6.0

 
mytarmailS:

Ахахах, експерт сравниватель ))) 

Давай еще про ЦОС поразсуждай )))

Нужно больше фейспалмов )))))))))))

да что тут разсуждать и двасуждать.. юзали, знаем

 
mytarmailS:

хз вот требования

У тебя наверное стояла версия меньше 3.6.0

У меня разные версии, но там была 4.0.2.

Можете добавить возможность прям загрузки файла с выборкой - файл прикладываю? Я так понимаю, что нужно два файла для обучения и для применения модели?

Целевая "Target_100".
Файлы:
test.zip  937 kb
 
Aleksey Vyazmikin:

У меня разные версии, но там была 4.0.2.

Можете добавить возможность прям загрузки файла с выборкой - файл прикладываю? Я так понимаю, что нужно два файла для обучения и для применения модели?

Целевая "Target_100".

А таргеты сдвинуты назад на шаг? или нужно сдвигать?


по ходу надо сдвигать..

X <- read.csv2("C:\\Users\\..........\\Desktop\\test.csv")
Y <- X$Target_P
X <- as.matrix(within(X, rm("Time","Target_P","Target_100",
                      "Target_100_Buy","Target_100_Sell")))
Y <- c(Y[-1],1)

library(glmnet)
tr <- 1:1000 # train idx

best_lam <- cv.glmnet(x = X[tr,], 
                      y = Y[tr],alpha = 1, 
                      lambda = 10^seq(2, -2, by = -.1), 
                      nfolds = 5)$lambda.min


lasso_best <- glmnet(x = X[tr,], y = Y[tr], alpha = 1, lambda = best_lam)
pred <- predict(lasso_best, s = best_lam, newx = X[-tr,])


pred2 <- c(sign(pred))
caret::confusionMatrix(as.factor(pred2),as.factor(Y[-tr]))
Confusion Matrix and Statistics

          Reference
Prediction  -1   1
        -1 215 142
        1   76 128
                                         
               Accuracy : 0.6114      


Обычное барахло, как и все остальное...

 
mytarmailS:

А таргеты сдвинуты назад на шаг? или нужно сдвигать?

Это готовая выборка, ничего двигать не надо.

Только отфильтровать столцы

Time Target_P
Target_100_Buy Target_100_Sell
 
Aleksey Vyazmikin:

Это готовая выборка, ничего двигать не надо.

Ты сдвигал?

Еще раз  -  Ты сдвигал?

 
mytarmailS:

Ты сдвигал?

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

 
Aleksey Vyazmikin:

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

Я не знаю что ты там и как пишешь, это твое, НО мне надо знать что в таргете значение из будущего на один шаг относительно выборки , ЭТО ТАК или НЕТ ?

 
mytarmailS:

Я не знаю что ты там и как пишешь, это твое, НО мне надо знать что в таргете значение из будущего на один шаг относительно выборки , ЭТО ТАК или НЕТ ?

Замысловато зачем так, в таргете результат принятия решения по текущей строке предикторов. Т.е. сдвигать ничего не надо.

 
Aleksey Vyazmikin:

Замысловато зачем так, в таргете результат принятия решения по текущей строке предикторов. Т.е. сдвигать ничего не надо.

Кароч все сделал как ты хотел, даже  тюнингом

Accuracy : 0.535  
X <- read.csv2("C:\\Users\\....\\Desktop\\test.csv")
Y <- X$Target_100
X <- as.matrix(within(X, rm("Time","Target_P","Target_100",
                      "Target_100_Buy","Target_100_Sell")))
library(glmnet)
tr <- 1:1300 # train idx
best_lam <- cv.glmnet(x = X[tr,], 
                      y = Y[tr],alpha = 1, 
                      lambda = 10^seq(2, -2, by = -.1), 
                      nfolds = 5)$lambda.min

lasso_best <- glmnet(x = X[tr,], y = Y[tr], alpha = 1, lambda = best_lam)
pred <- predict(lasso_best, s = best_lam, newx = X[-tr,])

sma <- TTR::SMA(pred,20)
pred2 <- c(pred-sma) ; pred2[pred2>0] <- 1 ; pred2[pred2<=0] <- 0

yy <- tail(Y[-tr] ,200)
pp <- tail(pred2 ,200)
caret::confusionMatrix(as.factor(yy),as.factor(pp))

Выкинуть и забыть 


"Target_P"

дает 0,97 акураси

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