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

 
박사 상인 :

나는 이미 여기에 뉴런의 예를 게시했습니다. 적절한 것을 찾아 귀하의 데이터(및 위원회와 함께)에 대해 다시 실행할 것입니다. 입문 강의는 쓰지 않겠지만 코드에 주석을 더 추가하겠습니다.


죄송합니다. 루프에서 c(F,T) 변수의 의미를 이해하지 못합니다.

 for (i in c( 1 :nrow(table))[c(F,T)]){
   ..... table[i,] ..... 
}

즉, 이 주기는 테이블의 짝수 행을 통과하지만 홀수 행을 통해 어떻게 ???

 

F와 T는 boolean 값 FALSE와 TRUE의 약자로, 원칙적으로 c(T,F) 또는 c(TRUE,FALSE)를 써도 상관없으며, 첫 번째 옵션이 더 짧을 뿐입니다.

테이블에 10개의 행이 있는 경우 c(1:nrow(table))은 벡터 c(1,2,3,4,5,6,7,8,9,10)일 뿐입니다.
이 경우 부울 값이 있는 배열은 원하는 길이로 반복되며 c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)를 얻습니다.

저것들. c(1:nrow(table))[c(F,T)] R은 어떻게
c(1,2,3,4,5,6,7,8,9,10)[c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)]
TRUE와 일치하는 벡터 요소를 순서대로 가져옵니다.

예를 들어 모든 세 번째 요소를 가져오려면 다음과 같이 작성할 수 있습니다.
c(1,2,3,4,5,6,7,8,9,10)[c(거짓,거짓,참,거짓,거짓,참,거짓,거짓,참,거짓)]
또는 짧게
c(1:10)[c(F,F,T)]


홀수 요소의 경우 T와 F를 교환하십시오. c(1:nrow(table))[c( T,F )]

 
박사 상인 :

F와 T는 boolean 값 FALSE와 TRUE의 약자로, 원칙적으로 c(T,F)나 c(TRUE,FALSE)를 써도 상관없으며 첫 번째 옵션이 더 짧을 뿐입니다.

테이블에 10개의 행이 있는 경우 c(1:nrow(table))은 벡터 c(1,2,3,4,5,6,7,8,9,10)일 뿐입니다.
이 경우 부울 값이 있는 배열은 원하는 길이로 반복되며 c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)를 얻습니다.

저것들. c(1:nrow(table))[c(F,T)] R은 어떻게
c(1,2,3,4,5,6,7,8,9,10)[c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)]
TRUE와 일치하는 벡터 요소를 순서대로 가져옵니다.

예를 들어 모든 세 번째 요소를 가져오려면 다음과 같이 작성할 수 있습니다.
c(1,2,3,4,5,6,7,8,9,10)[c(거짓,거짓,참,거짓,거짓,참,거짓,거짓,참,거짓)]
또는 짧게
c(1:10)[c(F,F,T)]


홀수 요소의 경우 T와 F를 교환하십시오. c(1:nrow(table))[c( T,F )]

이렇게 자세한 설명을 쉬지 않고 써주셔서 감사합니다. 실제로 많은 것이 분명해집니다. 물어보기도 민망하지만 결정하겠습니다. 문제의 의미는 다음과 같습니다...

교육 파일은 동일한 수의 대상 클래스로 구성됩니다. 즉, 타겟에 24개의 1과 24개의 0이 있습니다. 반복한다, 레셰토프처럼 하고 싶다.....

훈련 테이블을 두 개의 테이블로 나눕니다. 하나에는 모든 벡터가 있고 목표는 1이고 다른 하나는 목표가 0입니다.

목표 1이 있는 테이블을 여기에서 두 개의 하위 테이블을 만들어야 합니다. 여기서 주식도 Train1에 작성되어야 하고 주식도 Train2에 작성해서는 안 됩니다.

먼저 우리는 심지어

 for (i in c( 1 :nrow(Qwe_true))[c(F,T)]){
  Train1[i,]<-Qwe_true[i,]
  }

그러나 Train1 테이블에는 NA가 포함된 행이 포함되며 Train1은 24개 행 중 12개만 짝수이므로 크기가 12개 행이어야 합니다. 이걸 어떻게 해야할지 머리가 아팠다....

 

물론이죠.

R의 경우 다른 사고 방식이 필요하고 벡터로 정신적으로 작동해야 하며 코드 작성은 매우 간단합니다. 그런 걸 전문가들은 한 줄로 써도 이해가 안 가는데, 나 자신도 몇 줄씩 번갈아가며 쓴다.

Train1 <- rbind(Qwe[ which(Qwe[,"target"]==1)[c(T,F)], ], Qwe[ which(Qwe[,"target"]==0)[c(T ,F)], ])
Train2 <- rbind(Qwe[which(Qwe[,"target"]==1)[c(F,T)], ], Qwe[which(Qwe[,"target"]==0)[c(F ,T)], ])

단계별로 -
which(Qwe[,"target"]==1) - 대상이 1인 행 번호
which(Qwe[,"target"]==1)[c(T,F)] - target1이 있는 줄 번호, 1 건너뛰기
Qwe[ which(Qwe[,"target"]==1)[c(T,F)], ] - Qwe에서 파생된 플레이트, 대상 1은 1을 건너뛰었습니다.
rbind(... , ...) - 두 레이블의 합집합(대상 1 및 대상 0 포함)

 
박사 상인 :

물론이죠.

R의 경우 다른 사고 방식이 필요하고 벡터로 정신적으로 작동해야 하며 코드 작성은 매우 간단합니다. 그런 걸 전문가들은 한 줄로 써도 이해가 안 가는데, 나 자신도 몇 줄씩 번갈아가며 쓴다.

Train1 <- rbind(Qwe[ which(Qwe[,"target"]==1)[c(T,F)], ], Qwe[ which(Qwe[,"target"]==0)[c(T ,F)], ])
Train2 <- rbind(Qwe[which(Qwe[,"target"]==1)[c(F,T)], ], Qwe[which(Qwe[,"target"]==0)[c(F ,T)], ])

당신은 그냥 괴물입니다. 어깨가 있는 산과 같은 두 개의 선. 알겠습니다. 계속 이해하고 있습니다... 감사합니다!!!

 
금요일 저녁... 더 이상 머리가 끓지 않습니다. 이론을 함께 테스트하는 것은 어떻습니까.... R로 작성하는 능력과 문제를 설정하는 능력(정확도)으로 우리는 이미 모든 것을 30분 만에 검사했을 것입니까? 시간 있어? 닥터 트레이더
 
아니, 계속 공부해. 질문이 있으면 도와드리겠습니다.
 

이 두 샘플에 두 개를 더 추가해야 합니다.

MLP1=트레인1+테스트(트레인2)

MPL2=열차2+테스트(열차1)

Test(Train2)+Test(Train1)를 추가하면 전체 교육 섹션에 대한 결과를 얻을 수 있으며 이 섹션은 각 다항식에 대한 테스트가 됩니다.

지금이 불가능한 경우 시간을 선택할 수 있습니까? 그러나 그것은 30 분이며 확인했습니다. 거울만 만들고 싶어요. 나는 같은 파일을 가지고 두 가지 방법으로 가르칠 것이다. 그런 다음 제어 영역에 모두 던지면 모든 것이 표시됩니다. 무슨 말을 합니까?

 

rbind() 함수로 테이블을 결합할 수 있습니다.
MLP1 <- rbind(기차1, 테스트)

테스트(트레인2)란? 훈련 테이블과 테스트 테이블을 결합하는 이유는 무엇입니까? 테스트는 이미 준비된 훈련된 모델을 확인하기 위해 분리되어야 합니다.

모든 것이 원하는 만큼 쉽고 빠르지는 않을 것입니다. 간단히 데이터를 가져와서 Reshetov 모델에 제출하면 모델 자체가 예측 변수를 선별하고 가중치, 뉴런 수 및 기타 사항을 결정하는 데 사용됩니다. 그러나 일반 뉴런에서는 이것이 불가능합니다. 예를 들어 오늘 제가 여기에 쓴 예나 Vladimir Perervenko의 기사에서와 같이 뉴런의 매개변수는 교차 검증을 통해 선택해야 합니다.


내가 거기에 쓴 것을 다시보십시오 - https://www.mql5.com/ru/forum/86386/page753#comment_6821981
해당 코드의 설명에 따라 데이터를 대체하고 실행하십시오. 예측 변수를 모두 연속으로 선택하고 제거하지 않으면 처음에는 모든 것이 나빠질 것입니다. 코드 실행 후 추가로 max(gaResult@fitness) 명령을 실행하면 유전학에서 찾은 최상의 모델의 점수가 R2에 표시됩니다. 점수가 1에 가까우거나 약간 낮으면 양호, 0에 가까우거나 심지어 음수이면 불량입니다.

그런 다음, PREDICTOR_COLUMNS에서 정의한 특정 열 번호를 양호로 지정하고 코드를 다시 실행하면 모델이 이러한 예측자에 대해서만 학습합니다. 이상적으로, 발견된 유전학에 의한 최상의 모델의 점수는 1에 가까워야 하고 훈련 및 테스트 플레이트의 정확도는 1.00이어야 합니다.

테스트 테이블 - 마치 이 모델이 이미 시장에서 거래되고 있는 것처럼 훈련 데이터 이후에 정확히 시간 내에 있어야 합니다.

해당 코드에서 아무 일도 일어나지 않는다면( KFOLDS=10 에서도) 그것은 운명이 아닙니다. 문제가 해결되면 Reshetov 모델에 대한 좋은 대안이 있으며 이 코드를 추가로 처리하고 모델을 mql로 전송할 수 있습니다.

 

일반적으로 Reshetov의 모델에서와 같은 작업을 수행하고 무언가를 추가한 다음 일반 뉴런을 가져와 어떻게든 이전 단계와 혼합하고 Reshetov처럼 작동할 때까지 기다리면 희망이 없는 것으로 판명됩니다. 내가 구독하지 않는 긴 프로세스.

Reshetov와 동일한 결과를 원하지만 R에서는 R에서 모델의 전체 Java 코드를 가져와서 다시 작성해야 합니다.

그러나 많은 대안이 있습니다. 그들과 함께 Reshetov보다 훨씬 더 나은 것으로 판명되면 일반적으로 우수하고 더 이상 필요하지 않으며 모든 것이 준비되었습니다.