트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 2650

 
mytarmailS #:

기호 회귀를 사용하여 다른 알고리즘이 제안하는 것이 아니라 원하는 것을 정확하게 디자인하세요.

Rku는 패키지가 있고, 예제가 있으며, 모든 것이 이전에 그리고 우리를 위해 수행되었습니다.

작업 중입니다. 아직 성배는 없습니다.)

 
elibrarius #:
1과 2만 상호 작용할 수 있는 경우. 또는 3,4,5. 그러면 예를 들어 3에서 첫 번째 분할 후 모든 다운스트림 분할은 3,4,5 세트에서만 이루어집니다.
단순히 1,2와 3,4,5 세트에서 2 개의 트리를 구축한다고 가정합니다. 세트가 10개이면 트리가 10개가 됩니다. 이런 식으로요.

그룹을 그룹으로 병합하는 것도 가능합니다-트리 (목록 목록 목록 목록 목록 목록 ...)를 얻을 수 있습니다.

우리의 경우 이러한 그룹을 구축하는 일반적인 원칙은 명확하지 않습니다.

 
Aleksey Nikolayev #:

작업 중입니다. 아직 성배는 없습니다.)

그램에볼 패키지를 마스터하고 있나요?

 
mytarmailS #:
그램에볼 패키지를 받고 계신가요?

gramEvol? 문법에 관해서는 규칙에 최적화할 숫자 매개변수가 있는 파라메트릭 문법이 필요합니다. 언뜻 보기에는 패키지에서 그런 기능이 보이지 않았습니다. x1-x2*x3<0 규칙뿐만 아니라 A<x1-x2*x3<B 형식의 모든 가능한 규칙 (여기서 x1, x2, x3은 예측자, A와 B는 매개 변수)을 얻어야 한다는 뜻입니다.

아니요, 저는 가장 낮은 수준에서 올바른 수학을 찾으려고 Rcpp를 만지작거리고 있습니다.

 
Aleksey Nikolayev #:

언뜻 보기에는 패키지에서 볼 수 없었습니다.

모든 것이 있습니다. 여러분이 생각할 수 있는 모든 것이 거기에서 구현될 수 있습니다.

비네팅의 예제를 살펴보고 질문에서 작성자의 gthub를 살펴보고 거기에서도 규칙에 대해 많은 질문을했습니다.
 
mytarmailS #:
모든 것이 그곳에 있습니다. 상상할 수 있는 모든 것이 그곳에서 실현될 수 있습니다.

비네팅의 예를 살펴보고 질문에서 작성자의 gthub를 살펴보고 거기에서도 규칙에 대해 많은 질문을했습니다.

감사합니다, 시간이 되면 자세히 살펴볼게요.

 
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)
 
mytarmailS #:

제가 제대로 이해했는지 모르겠지만, 모니터에 머리를 살짝 두드리고 간단한 예제를 작성해 보았습니다.

원하셨던 게 그거였나요?

그런 것 같지만 매개 변수는 임의의 실수가 아닌 지정된 몇 가지 값만 사용할 수 있는 것 같습니다.

 
Aleksey Nikolayev #:

비슷하지만 매개변수는 임의의 실수가 아닌 몇 가지 주어진 값만 사용할 수 있는 것 같습니다.


my_var <- round(seq(-10,10,length.out = 100),2)

library(gramEvol)
ruleDef <- list(
  logyc_exp     = grule(comparison(big_math_expr, parameters)),
  comparison    = grule(">=","<=","!=","=="),
  #parameters    = grule(100,200,300),  #   A и B - параметры.
  parameters    = do.call(gsrule, as.list(my_var)),  #   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(x1 - x2 != 9.6)

[[2]]
expression(x3 + x1 != 9.8)

[[3]]
expression(x2 - x1 - x1 * x1 == 9.8)

[[4]]
expression(x4/x3 - (x2 - x3) != 8.59)

[[5]]
expression(x4 + x2 >= -8.18)

[[6]]
expression((x1 - x4)/(x3 * x2) <= 6.57)

[[7]]
expression(x2 - x1 >= 1.92)

[[8]]
expression(x1 * x3 + x3/x4 != -2.93)


더 나은가요?


=====================

표현식을 복잡하게 만들 수도 있습니다.

library(gramEvol)
ruleDef <- list(
  
  final_exp     = grule(logyc_exp , logyc_exp | logyc_exp , logyc_exp & logyc_exp),
  
  
  logyc_exp     = grule(logyc_oper(big_math_expr, parameters),
                        logyc_oper(big_math_expr, big_math_expr)),
  
  
  logyc_oper    = grule(">=","<=","!=","=="),
  parameters    = do.call(gsrule, as.list(my_var)),  #   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(x3 * x2 <= x2 * x3 - (x4 - x4))

[[2]]
expression(x2/x1 != x3 - x1 | (x1 + x3)/(x1 * x3) >= -9.6)

[[3]]
expression(x4 + x3 - (x2 - x2) >= 3.94 & x3 * x2 * (x1 - x3) == x2 * x1)

[[4]]
expression(x3 * x3 - x2 * x4 == -6.97)

[[5]]
expression(x4 * x4 - (x1 + x4) <= x4/x4 - x3/x2 | (x3 + x1)/(x4 - x1) >= x2 * x3)

[[6]]
expression(x2 + x3 + x2/x1 != -3.74)

[[7]]
expression((x1 - x2)/(x2 + x1) <= (x3 - x3)/(x2 - x1) & x4/x2 - x4 * x2 <= 6.97)
사유: