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

 
anonymous:

и транспонировать по необходимости в зависимости от размерности матрицы

Просто используйте две функции kohonen::classvec2classmat, kohonen::classmat2classvec. Можете просто скопировать себе эти функции и использовать их по необходимости.

> classvec2classmat
function (yvec) 
{
    if (!is.factor(yvec)) 
        yvec <- factor(yvec)
    nclasses <- nlevels(yvec)
    outmat <- matrix(0, length(yvec), nclasses)
    dimnames(outmat) <- list(NULL, levels(yvec))
    for (i in 1:nclasses) outmat[which(as.integer(yvec) == i), 
        i] <- 1
    outmat
}
> classmat2classvec
function (ymat, threshold = 0) 
{
    class.names <- dimnames(ymat)[[2]]
    if (is.null(class.names)) 
        class.names <- 1:ncol(ymat)
    classes <- apply(ymat, 1, function(x) which(x == max(x))[1])
    classes[apply(ymat, 1, max) < threshold] <- NA
    factor(class.names[classes], levels = class.names)
}

Удачи

 
elibrarius:

Еще проблема с R.

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

Например

darch.unitFunction = linearUnit - вызывало крах Rterm.exe

поменял на

darch.unitFunction = "linearUnit"

эту точку стал проходить до следующей ошибки.

так же пришлось поменять library(darch) на require(darch)

Теперь на самом обучении облом.

    R_NN <- darch(
        darch = NULL,
        x = MatrixLearnX ,
        y = MatrixLearnY ,
        paramsList = params
    )

много вариантов перепробовал, всегда происходит крах Rterm.exe

У R  есть какое-то регулирование уровня ошибки? Может на втором ПК у меня оказался уровень ошибок для разаработки, когда остановка при каждом warning-е происходит?

На обоих компьютерах R ставил с настройками по умолчанию, пакеты все установил.
Как исправить?

Сделайте снимок сессии на одном и другом компьютере и сравните их. Например

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] kohonen_3.0.4        RevoUtils_10.0.6    
[3] RevoUtilsMath_10.0.1

loaded via a namespace (and not attached):
[1] MASS_7.3-47    compiler_3.4.2
[3] tools_3.4.2    Rcpp_0.12.13  

удачи

 
Vladimir Perervenko:

Сделайте снимок сессии на одном и другом компьютере и сравните их. Например

удачи

Не таким методом, но разобрался - скорее методом проб и ошибок.
Спасибо

 

Кстати, встречал тут выражение "захардкодить" сеть.
Видимо это получить функцию с весами  и смещениями и посчитать выходы.

Вот например, как достать веса из darch для первого слоя: print(NN@layers[[1]]$weights)

Есть ли какой то готовый скрипт по созданию такой захардкоденой функции?

 

Сделал базовый функционал для торговли криптовалютой через R. Криптобиржа - bittrex, когда-то там проходил все проверки, поэтому сейчас мог сразу проверить код в действии.
В коде нужно заменить значения API_KEY и API_SECRET на те что биржа выдаст вам лично в настройках профиля.

Минус этой биржи - у их апи нету функций для получения ohlc значений, тики нужно собирать самому и по ним строить ohlc бары (или загружать их со стороннего ресурса). А для доступа к апи и троговли через него (и через R) нужно пройти проверку личности, и активировать 2fa. 

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

 
Maxim Dmitrievsky:

 а так да, 90% это датамайнинг 10% выбор модели

+100!
 
Yuriy Asaulenko:

Этак Вам вскоре придется майнинг ферму заводить для добычи стратегий.


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

 
Maxim Dmitrievsky:

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

Не понял, что есть оптимизатор?

ЗЫ когда я слышу - оптимизатор, у меня нехорошие ассоциации с тестером-оптимизатором МТ.

 
Yuriy Asaulenko:

Не понял, что есть оптимизатор?

ЗЫ когда я слышу - оптимизатор, у меня нехорошие ассоциации с тестером-оптимизатором МТ.


да, почему не хорошие? МО это и есть оптимизация по сути, пока ИИ не изобрели

генетика тоже к МО относится

 
Maxim Dmitrievsky:

да, почему не хорошие? МО это и есть оптимизация по сути, пока ИИ не изобрели

генетика тоже к МО относится

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