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

 
Aleksey Nikolayev #:

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

Если взаимодействовать могут только 1 и 2. Или 3,4,5. То после первого же сплита, например по 3, все нижестоящие сплиты будут только из набора 3,4,5.
Предполагаю, что просто строится 2 дерева из 1,2 и из 3,4,5 наборов. Если 10 наборов, то 10 деревьев. И т.п.
 
Хотя это же бустинг. Тогда первое дерево по одному набору. 2-е уточняющее по любому другому набору и т.д.
 
mytarmailS #:

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

Вы же знаете Рку, есть пакет, есть примеры, все уже сделано до нас и для нас

Работаю над этим. Грааля пока не получается)

 
elibrarius #:
Если взаимодействовать могут только 1 и 2. Или 3,4,5. То после первого же сплита, например по 3, все нижестоящие сплиты будут только из набора 3,4,5.
Предполагаю, что просто строится 2 дерева из 1,2 и из 3,4,5 наборов. Если 10 наборов, то 10 деревьев. И т.п.

Там же ещё возможно объединение групп в группы - получается уже дерево (список списков списков ...).

Не вполне понятен общий принцип построения таких групп в нашем случае.

 
Aleksey Nikolayev #:

Работаю над этим. Грааля пока не получается)

Осваиваете пакет  grammEvol??

 
mytarmailS #:
Осваиваете пакет  grammEvol??

gramEvol? Если в терминах грамматики, то нужны параметрические грамматики, где в правилах есть числовые параметры, по которым тоже надо оптимизировать. На первый взгляд не увидел их в пакете. В смысле, чтобы получать не только правила x1-x2*x3<0, а все возможные правила вида A<x1-x2*x3<B, где x1, x2, x3 - предикторы, A и B - параметры.

Нет, вожусь на самом низком уровне - с Rcpp, пытаясь подобрать подходящую математику.

 
Aleksey Nikolayev #:

  На первый взгляд не увидел их в пакете.

Есть там все. Все что можете придумать там можно реализовать.

Посмотрите примеры из винеток,  посмотрите гтхаб автора в вопросах,  там и я много вопров задавал про правила
 
mytarmailS #:
Есть там все. Все что можете придумать там можно реализовать.

Посмотрите примеры из винеток,  посмотрите гтхаб автора в вопросах,  там и я много вопров задавал про правила

Спасибо, посмотрю повнимательнее как появится время.

 
Aleksey Nikolayev #:

Спасибо, посмотрю повнимательнее как появится время.

Это фактически конструктор кода, вы задаете только нужные вам елементы.

Тоесть оно может само писать реальный код, с цыклами , масивами всем, всем...

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

 
Aleksey Nikolayev #:

gramEvol? Если в терминах грамматики, то нужны параметрические грамматики, где в правилах есть числовые параметры, по которым тоже надо оптимизировать. На первый взгляд не увидел их в пакете. В смысле, чтобы получать не только правила x1-x2*x3<0, а все возможные правила вида A<x1-x2*x3<B, где x1, x2, x3 - предикторы, A и B - параметры.

Нет, вожусь на самом низком уровне - с Rcpp, пытаясь подобрать подходящую математику.

Не знаю правильно ли я тебя понял, немножно по бившысь головой об монитор написал простой пример

library(gramEvol)
ruleDef <- list(
  logyc_exp     = grule(comparison(big_math_expr, parameters)),
  comparison    = grule(">=","<=","!=","=="),
  parameters    = grule(100,200,300),  #  A и B - параметры.
  
  
  big_math_expr = grule( math_expr,  math_oper(math_expr, math_expr)),
  math_expr     = grule(math_oper(predictors, predictors)),
  math_oper     = grule("+", "-", "*","/"),
  predictors    = grule(x1,x2,x3,x4) #  где x1, x2, x3 - предикторы
  )

grammarDef <- CreateGrammar(ruleDef)
GrammarRandomExpression(grammarDef,numExpr = 10)

Этого ты хотел?

[[1]]
expression(x4 * x1 + (x2 + x4) <= 100)

[[2]]
expression(x1/x3 * (x4/x1) >= 300)

[[3]]
expression(x2/x1 + x1 * x1 != 300)

[[4]]
expression(x4 - x3 + (x3 + x1) != 100)

[[5]]
expression(x2/x1/(x2 + x1) != 300)

[[6]]
expression(x3/x1 + (x3 + x3) >= 100)

[[7]]
expression(x1 * x1 >= 200)

[[8]]
expression(x3/x2 - x3/x2 <= 100)

[[9]]
expression((x3 + x4)/(x4 - x1) <= 300)

[[10]]
expression(x3/x1 <= 200)