Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3047
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ONNX модель - это разложенный на элементарные операции граф обученной модели. Обучать модель в формате ONNX в Винде невозможно. Пишут о такой возможности в Линукс.
Ее можно использовать только получения предикта (исполняет намного быстрее чем предикт модели) и без Питона. Очень интересное применение модели ONNX в пакете carefree-learn. Внизу рисунок.Взят из описания пакета.
Вопрос про ONNX из ONNX возник просто из сопоставления двух встречавшихся утверждений: 1) получение модели представимо в виде конвейера, 2) конвейер можно конвертировать в ONNX формат.
Понятно, что на практике это вряд ли возможно. Собственно, хотелось бы понять что именно не даёт реализовать такую возможность, чтобы осознать принципиальные ограничения этой технологии в целом.
Одно дело, если это ограничения типа невозможности записи в файл и другое, если это ограничения вроде отсутствия поддержки типов данных (датафреймов, например).
Виктор Григорьевич, моё почтение xD
А прошлый код-скрипт, что ранее чуть выложили - перестал работать - раньше работал - до обновлений.
library(patchwork)Установлена?
В общем обновил, даже ошибки не пишет, но результат такой же - все ввысь почти.
запустил, у меня такая же картинка ))
Понял ошибку, там у меня было заглядывание в будущее в целевой.. мда.. теряем хватку
вот эту строку надо заменить
dp <- с(diff(close),0)на
dp <- tail(c(diff(close),0),nrow(X))немножко переписал код в более читабельный
вспомагательные функции
make_rules <- function(y, x){ library(inTrees) # ?inTrees::getRuleMetric() library(RRF) rf <- RRF(x = x,y = y,ntree=100) rule <- getRuleMetric(unique(extractRules(RF2List(rf),x)),x,y) rule <- data.frame(rule,stringsAsFactors = F) for(i in c(1,2,3,5)) rule[,i] <- as.numeric(rule[,i]) return(rule)} make_data <- function(close){ sw <- embed(x = close,dimension = 10)[,10:1] # make slide window data X <- t(apply(sw,1,scale)) # normalase data dp <- tail(c(diff(close),0),nrow(X)) # diff prices Y <- as.factor( ifelse(dp>=0,1,-1) ) # target for classification res <- list(Y=Y,X=X,diff_price=dp) return(res) }ну если нет никаких других критериев оценки, то через устойчивость параметров
можно еще представить выходные значения ТС как сигналы во времени и померить их энтропию и сравнить с рандомом. Если ТС захватывает какие-то закономерности, которые повторяются с некоторой периодичностью, то это будет отражено.
Для строителей кастомных ФФ может быть полезно.
самое лучшее мерило - это время и тесты в реале. Любая ТС перестает работать.Я уже понял почему это все не работает на новых данных , и даже пориблизительно понимаю что надо делать
Вопрос про ONNX из ONNX возник просто из сопоставления двух встречавшихся утверждений: 1) получение модели представимо в виде конвейера, 2) конвейер можно конвертировать в ONNX формат.
Понятно, что на практике это вряд ли возможно. Собственно, хотелось бы понять что именно не даёт реализовать такую возможность, чтобы осознать принципиальные ограничения этой технологии в целом.
Одно дело, если это ограничения типа невозможности записи в файл и другое, если это ограничения вроде отсутствия поддержки типов данных (датафреймов, например).
Оба утверждения верны. Получение модели включая препроцессинг - возможно. К сожалению не во все фреймворках и только простейшие. ТФ/Керас внедряют первые слои NN выполняющие препроцессинг. scikit-learn имеет самый богатый выбор pipeline+model . Смотрите scl2onnx.
Радует то, что серьезные участники понимают, что ONNX должен включать весь конвейер (pipeline) начиная с препроцессинга. Новые данные в производстве должны проходить те же этапы препроцесинга что и при обучении. Иначе результаты работы модели ONNX будут непредсказуемые.
Это направление стремительно развивается и я думаю, что скоро и этот вопрос будет решен. Пока нужно экспериментировать.
Удачи
запустил, у меня такая же картинка ))
Понял ошибку, там у меня было заглядывание в будущее в целевой.. мда.. теряем хватку
вот эту строку надо заменить
на
немножко переписал код в более читабельный
вспомагательные функции
Пробую измененный код
Получаю ошибку
Пробую измененный код
Получаю ошибку
Потому что функции надо сначало объявить, а потом использовать..
Откуда я знал...
Тогда такая ошибка выдаётся