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

 

기억하세요. 2018년 1월 31일부터 지금까지 상승세를 타고 있는 모델을 받았지만, 2018년 5월 3일부터 현재까지 2주 동안 이 모델이 작동한 방식은 다음과 같습니다. 검사 결과.

40점에서 훈련을 받았고 이미 OOS에서 1.5개월 동안 일한 노파에게는 전혀 나쁘지 않습니다.

2018년 1월 31일부터 그녀의 전체 OOC가 있습니다.

아직도 적성에 맞는 것 같나요???? 스크린샷에서 OOS 사이트

 

다음은 모든 것이 비어 있음을 보여주는 계산입니다.

  • 예측 변수가 대상 변수에 영향을 미친다는 신중한 정당화 없이
  • 과적합(overfitting)은 훈련 시간 외의 TIME 파일에 대해서만 결정됩니다.

초기 데이터:

54개의 예측 변수와 추세 반전 대상 변수가 있는 두 개의 연속 파일: short-out-long

계산은 첫 번째 R 파일인 딸랑이로 수행됩니다. Rat_DF1a는 학습, 테스트, 검증의 세 부분으로 나뉩니다. 부품으로의 분할은 샘플에 따라 이루어집니다. 소스 파일의 막대가 무작위로 선택됩니다.

RF 계산 결과: 500개의 트리, 노드당 7개의 예측자.

모델 구축에 사용된 관측치 수: 2491

결측값 대치가 활성 상태입니다.


전화:

randomForest(수식 = trainY ~ .,

데이터 = crs$dataset[crs$sample, c(crs$input, crs$target)],

ntree = 500, mtry = 7, 중요도 = TRUE, 바꾸기 = FALSE, na.action = randomForest::na.roughfix)


랜덤 포레스트 유형: 분류

나무 수: 500

아니요. 각 분할에서 시도된 변수의 수: 7


오류율의 OOB 추정치: 1.61%

혼란 매트릭스:

-1 0 1 클래스.오류

-1 498 5 2 0.01386139

0 3 1067 17 0.01839926

1 1 12 886 0.01446051

가장 멋진 결과! 큰 쟁반! OOB는 훈련에 사용되지 않은 파일의 일부입니다.

여기서 학습 오류를 살펴보자. 우리는 500개가 필요하지 않다는 것을 알았습니다. 50개 또는 100개의 나무로 살 수 있습니다.



시험장에서 확인

Rat_DF1a [테스트](개수)의 랜덤 포레스트 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 110 3 0 2.7

0 3 221 2 2.2

1 0 2 194 1.0


Rat_DF1a [테스트](비율)에 대한 랜덤 포레스트 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 20.6 0.6 0.0 2.7

0 0.6 41.3 0.4 2.2

1 0.0 0.4 36.3 1.0


전체 오차: 1.8%, 평균 클래스 오차: 1.966667%


래틀 타임스탬프: 2018-03-14 10:57:23 사용자


학습 결과가 확인되었습니다. 큰 쟁반!


유효성 검사 사이트에서 다시 확인합니다.

Rat_DF1a [validate](counts)에 대한 Random Forest 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 105 1 0 0.9

0 1 218 2 1.4

1 0 1 205 0.5


Rat_DF1a [validate](비율)에 대한 Random Forest 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 19.7 0.2 0.0 0.9

0 0.2 40.9 0.4 1.4

1 0.0 0.2 38.5 0.5


전체 오차: 0.9%, 평균 클래스 오차: 0.9333333%


래틀 타임스탬프: 2018-03-14 10:59:52 사용자


큰 쟁반! 소액금융회사로 달려가서 최대한 많은 돈을 빌릴 수 있습니다!


그러나 한 가지가 있습니다. 파일 분할은 임의의 막대 선택에 의해 수행되었으며 거래는 엄격하게 오름차순으로 진행됩니다.

이 연대기가 저장된 파일을 확인합시다. 이것은 Rat_DF1b입니다.

결과는 다음과 같습니다.

Rat_DF1b(개수)의 Random Forest 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 0 324 237 100.0

0 0 633 540 46.0

10 152 697 17.9


Rat_DF1b(비율)의 랜덤 포레스트 모델에 대한 오류 행렬:


예측

실제 -1 0 1 오류

-1 0 12.5 9.2 100.0

0 0 24.5 20.9 46.0

10 5.9 27.0 17.9


전체 오차: 48.5%, 평균 클래스 오차: 54.63333%


래틀 타임스탬프: 2018-03-14 11:02:16 사용자


대단원! 모델이 재장전되었습니다! 목표 변수에 대한 예측자는 단지 노이즈일 뿐이며 노이즈에서만 이러한 놀라운 결과를 제공할 수 있습니다.


대학생 수준의 평범하고 평범한 모델을 피팅하고 체크하는 도식을 보여주었다. 주요 단점은 예측 변수와 대상 변수 간의 관계에 대한 고려 사항이 없다는 것입니다.

그러나 체계는 항상 최소한 이와 같아야 하며 아직 완전하지 않습니다. 일반 직렬 파일에서 테스트 결과를 확인하는 테스터 실행이 여전히 필요합니다. 글쎄, 그리고 나서 소액 금융 회사에.



 
산산이치 포멘코 :

다음은 모든 것이 비어 있음을 보여주는 계산입니다.

  • 과적합(overfitting)은 훈련 시간 외의 TIME 파일에 대해서만 결정됩니다.

테스트, 검증에서 이렇게 좋은 결과를 얻었다는 것이 이상합니다. 내 실험과 그곳의 모든 것이 훨씬 더 나빴습니다. 혼합하기 전에 RNG를 다르게 초기화함으로써 테스트 및 유효성 검사에 대해 다른 결과를 얻었습니다. 오류 및 트랜잭션 수에 따라 RNG마다 매우 다릅니다.

그 결과 테스트와 검증이 전혀 필요없고, 한 영역에서 훈련하고 다른 영역에서 평가(별도의 파일로 가지고 있음)가 필요하다는 결론에 도달했습니다. 이렇게 하면 "성공" 혼합의 무작위 요소가 제거됩니다.

 

여러분, 성배 준비됐나요?

 
산산이치 포멘코 :

다음은 모든 것이 비어 있음을 보여주는 계산입니다.

  • 예측 변수가 대상 변수에 영향을 미친다는 신중한 정당화 없이
  • 과적합(overfitting)은 훈련 시간 외의 TIME 파일에 대해서만 결정됩니다.

초기 데이터:

54개의 예측 변수와 추세 반전 대상 변수가 있는 두 개의 연속 파일: short-out-long

계산은 첫 번째 R 파일인 딸랑이로 수행됩니다. Rat_DF1a는 학습, 테스트, 검증의 세 부분으로 나뉩니다. 부품으로의 분할은 샘플에 따라 이루어집니다. 소스 파일의 막대가 무작위로 선택됩니다.



그러나 한 가지가 있습니다. 파일 분할은 임의의 막대 선택에 의해 수행되었으며 거래는 엄격하게 오름차순으로 진행됩니다.

이 연대기가 저장된 파일을 확인합시다. 이것은 Rat_DF1b입니다.



전체 오차: 48.5%, 평균 클래스 오차: 54.63333%


래틀 타임스탬프: 2018-03-14 11:02:16 사용자


대단원! 모델이 재장전되었습니다! 목표 변수에 대한 예측자는 단지 노이즈일 뿐이며 노이즈에서만 이러한 놀라운 결과를 제공할 수 있습니다.


대학생 수준의 평범하고 평범한 모델을 피팅하고 체크하는 도식을 보여주었다. 주요 단점은 예측 변수와 대상 변수 간의 관계에 대한 고려 사항이 없다는 것입니다.

그러나 체계는 항상 최소한 이와 같아야 하며 아직 완전하지 않습니다. 일반 직렬 파일에서 테스트 결과를 확인하는 테스터 실행이 여전히 필요합니다. 글쎄, 그리고 나서 소액 금융 회사에.



하위 집합(train/val/test)으로 분할할 때 발생하는 주요 오류입니다. 순서는 다음과 같아야 합니다.

  1. 시간 순서 데이터 세트를 train/val/test로 분할합니다.
  2. 훈련할 때 훈련 세트만 혼합합니다(검증 및 테스트는 안 함) . 분류에 대해 이야기하고 있습니다.
  3. 모든 변환 매개변수, 예측자 변환은 훈련 세트에서만 얻습니다. val/test에서 우리는 그것들을 사용합니다.
  4. 훈련 세트에서만 예측, 선택, 생성을 추정합니다.

행운을 빕니다

 

모델을 사용하여 예측 변수를 평가하는 것에 대해 이야기한다면 가장 발전된 패키지는 RandomUniformForest라고 생각합니다. 다양한 관점에서 예측 변수의 중요성에 대해 자세히 설명합니다. 공부를 추천합니다. 내 기사 중 하나에서 나는 그것에 대해 자세히 이야기했습니다.

모델 예측자 선택 사용을 포기했습니다. 사용된 모델의 기능에 의해 제한됩니다.

행운을 빕니다

 
블라디미르 페레르벤코 :
  1. 훈련할 때 훈련 세트만 혼합합니다(검증 및 테스트는 안 함) . 분류에 대해 이야기하고 있습니다.

Nikonenko S., Kadurin A., Arkhangelskaya E. "딥 러닝" p. 139에서.


검증 데이터가 훈련 데이터와 동일한 특성을 가지려면 이들을 함께 혼합해야 합니다. 그렇지 않으면 추세 또는 평면의 무작위 조각이 있을 수 있습니다. 결과적으로 일반화할 수 있는 모델에 대한 평가는 없지만 유효한 섹션에서 연속 기록의 특정 부분에 대한 조정이 있을 것입니다(중단할 것입니다).

그러나 위에서 쓴 것처럼 다른 RNG 초기화로 실험을 하고 다른 성공 세트를 얻은 후 유효한 섹션이 필요하지 않을 수 있다는 결론에 도달했습니다. 그 외에도 다른 정규화 방법을 사용할 수 있습니다. 그러나 이 실험은 적은 양의 데이터(5일)에 대한 것이며 예제의 수를 10배 늘리면 혼합이 더 균일하고 이 영역의 데이터가 더 균질해질 수 있습니다. (즉, 같은 성격) - 이 경우 valid가 유용할 수 있습니다.

업데이트: 데이터가 많고 여러 플랫 및 양방향 추세가 유효한 영역에 속하는 경우 훈련 세트와 혼합할 필요가 없을 수 있습니다.
 
블라디미르 페레르벤코 :

모델을 사용하여 예측 변수를 평가하는 것에 대해 이야기한다면 가장 발전된 패키지는 RandomUniformForest라고 생각합니다. 다양한 관점에서 예측 변수의 중요성에 대해 자세히 설명합니다. 공부를 추천합니다. 내 기사 중 하나에서 나는 그것에 대해 자세히 이야기했습니다.

나는 예측 변수의 모델 선택 사용을 포기했습니다. 사용된 모델의 기능에 의해 제한됩니다.

행운을 빕니다

그리고 가장 앞선 것은 완전히 다른 제품이라고 생각합니다 ;-).... 조금 다르게 구현한 부분입니다.

샘플이 2개의 하위 샘플로 나누어지는 두 개의 네트워크는 훈련 및 테스트를 수행합니다. 여기서 네트워크 B(두 번째 다항식)의 경우 트레인은 테스트이고 테스트는 트레인입니다. 이 경우 하나의 다항식이 절반을 충족하고 나머지 절반이 충족되는 테스트 샘플만 고려됩니다. 그리고 클래스는 균등하게 나뉩니다. 즉, 1을 트레인과 테스트로 균등하게 나누었고, 따라서 0도 균등하게 나누었다. 그리고 불행히도 거기에는 시간이 없습니다. 파일은 최소한 벡터의 순서에 따라 제출할 수 있습니다. 이것이 과적합을 줄이는 열쇠가 아닐까요???


사실, 나는 잘 이해하지 못합니다. 아마도 유효성 검사 섹션에 대해 말할 것입니다. 이것은 내가 가장 좋아하는 최적화 도구의 기차 섹션입니다 ???

그리고 귀하의 경우 테스트 섹션은 제어 섹션입니다. 잠시 동안 네트워크가 작동하도록 하면 ... 개념이 혼란스러워졌습니다 ...

 

어쨌든 테스트 섹션은 훈련 섹션에 어떤 식으로든 영향을 미칠 수 없으며 제어 섹션이 시간에 따라 정렬되더라도 바로 이 시간에 의존하지 않을 분류 작업을 위해 가능한 한 무작위로 구성되어야 한다고 생각합니다. 왜요? 예, 모든 데이터를 혼합하여 이 집합에서 실제 잠재력을 추출하려고 하기 때문에 순서의 형태로 상황을 성공적으로 조합하는 것이 아닙니다. 일반적으로 데이터를 혼합하면 실제로 그들이 할 수 있는 것이 무엇인지 알 수 있습니다. 이 데이터는 ... 이와 같은 것 ....

최적화를 반복하면 결과가 10-20% 내로 점프해야 합니다. 이것은 데이터의 순서 때문이고, 한 번은 잘 정렬되었고, 다음에는 조금 더 나빴습니다. 등등... IMHO !!!

 
도서관 :

Nikonenko S., Kadurin A., Arkhangelskaya E. "딥 러닝" p. 139에서.


검증 데이터가 훈련 데이터와 같은 특성을 가지려면 이들을 함께 혼합해야 합니다. 그렇지 않으면 추세 또는 평면의 무작위 조각이 있을 수 있습니다. 결과적으로 일반화할 수 있는 모델에 대한 평가는 없지만 유효한 섹션에서 연속 기록의 특정 부분에 대한 조정이 있을 것입니다(중단할 것입니다).

그러나 위에서 쓴 것처럼 다른 RNG 초기화로 실험을 하고 다른 성공 세트를 얻은 후 유효한 섹션이 필요하지 않을 수 있다는 결론에 도달했습니다. 그 외에도 다른 정규화 방법을 사용할 수 있습니다. 그러나 이 실험은 적은 양의 데이터(5일)에 대한 것이며 예제의 수가 10배 증가하면 혼합이 더 균일하고 이 영역의 데이터가 더 균질할 것입니다(즉, 같은 성격).

업데이트: 데이터가 많고 여러 플랫 및 양방향 추세가 유효한 영역에 속하는 경우 훈련 세트와 혼합할 필요가 없을 수 있습니다.

젊음의 모순 정신은 불굴 :)

시계열 분류에 대해 이야기했습니다. 예를 들어, M15의 경우 약 1000개 바를 훈련하는 데 2주가 소요됩니다. 유효성 검사를 위한 다음 주 - 500개 바. 훈련할 때 훈련 세트는 섞이지만 검증 세트는 섞이지 않습니다.

분리하기 전에 전체 세트를 혼합하는 것은 계층화된 세트와 교차 검증의 두 가지 경우에 필요합니다. 그리고 이 경우 두 세트에서 동일한 예가 나오지 않도록 샘플링을 교체하지 않고 수행해야 합니다.

예제 수에 제한이 없고 여전히 시계열이라는 점을 고려할 때 혼합하기 전에 나누는 것이 좋습니다. 임호

사유: