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

 
마이클 마르쿠카이테스 :


여기에서 내가 기꺼이 논쟁할 수 있습니다. 이것은 연습에서 나온 것입니다. 옵티마이저를 사용하면서 관찰한 것.


그러나 그의 사이트에 있는 데모에는 5개의 열과 많은 수의 행이 있습니다.
 
마이클 마르쿠카이테스 :


여기에서 내가 기꺼이 논쟁할 수 있습니다. 이것은 연습에서 나온 것입니다. 옵티마이저를 사용하면서 관찰한 것.

행보다 열이 적은 경우 입력 개수는 네트워크 다항식의 조건부 크기보다 작아집니다.

열과 행의 수가 같으면 입력의 수와 다항식의 크기가 거의 같습니다.

행보다 열이 더 많은 경우 다항식의 크기는 입력 수보다 작습니다.

즉, 열과 행의 개수가 거의 같아야 합니다. 그런 다음 충분한 수의 입력과 거의 동일한 수의 입력에 대한 크기를 사용하여 다항식을 얻습니다.

다른 말로 하면. 파일이 클수록 모델이 더 많은 다변수가 됩니다. 입력의 수와 다항식의 크기가 증가하여 모델이 점점 더 똑똑해지고 있음을 나타냅니다. 이 같은.

동일한 파일을 여러 번 실행하더라도 입력 매개변수 집합은 항상 다릅니다. 이는 분할 중 샘플이 무작위로 분할되기 때문입니다. 그러나 동일한 파일을 실행하고 완전히 다른 모델을 얻는다면 여전히 거의 동일한 방식으로 작동합니다. 최소한 그래야 합니다. 이것은 이 파일에서 어떤 종류의 물고기를 도살하느냐는 질문에 대한 답변입니다. 실행할 때마다 데이터가 다르다면 데이터가 출력과 아무 관련이 없다는 의미입니다. 이 같은....

다항식은 모든 것을 버리고 한 네트워크에 3, 다른 네트워크에 3을 남겨두기 위해 만들어졌습니다.
 
도서관 :
다항식은 모든 것을 버리고 한 네트워크에 3, 다른 네트워크에 3을 남겨두기 위해 만들어졌습니다.

코드를 잘 보세요. 1, 0, -1의 세 가지 상태가 있습니다. 따라서 이것은 거래를 위해 신호를 전송하기 위한 두 개의 그리드 작업의 결과입니다....
 
마이클 마르쿠카이테스 :


예, 연결 계수는 무엇입니까, 무엇을 말하는 것입니까? 다음은 사용된 입력 목록입니다. 각 다항식 앞에 있는 것은 정규화이며 8개의 입력이 있습니다. 여기에 설명되어 있습니다. 파일 맨 아래에서 아래를 보십시오.

//변수 x0: Del

//변수 x1: Del1

//변수 x2: V Del

//변수 x3: Vdel1

//변수 x4: Vdel6

//변수 x5: ST5

//변수 x6: VAD11

//변수 x7: VVolum4

3번 출입구가 어디인가요???? 여덟 개가 있을 때
당신은 x0 .. x7 = p0 ... p7을 가지고 있습니다 - 위의 공식에서 (단지 다르게 명명됨), 공식은 그의 뉴런을 설명하는 Reshetov의 기사에서 가져옵니다. 그리고 입력 공식에 따르면 A, B, C 3개만 존재합니다.
 
막심 드미트리예프스키 :

그러나 그의 사이트에 있는 데모에는 5개의 열과 많은 수의 행이 있습니다.

사실 나는 그의 데모 파일을 알아 냈습니다 ..... 거기에 트릭은 중복 데이터가 있다는 것입니다. 5 개의 열이 있고 세 가지 값 1-1il0 중 하나만 쓸 수 있다고 상상해보십시오. 각각의 라인에서. 이 시나리오를 사용하면 반복되는 줄이 있고 이제 내 데이터 세트가 두 배로 늘어납니다. 어리석게 라인을 복사하면 일반화 수준이 최대 90%까지 크게 증가하지만 불행히도 REEDUCATION이 될 것입니다. 나도 알아...두 번 이상 확인했으니까...
 
도서관 :
당신은 x0 .. x7 = p0 ... p7을 가지고 있습니다 - 위의 공식에서 (단지 다르게 명명됨), 공식은 그의 뉴런을 설명하는 Reshetov의 기사에서 가져옵니다. 그리고 입력 공식에 따르면 A, B, C 3개만 존재합니다.

네, RNN에 대한 그 기사는 이 옵티마이저와 아무 관련이 없습니다. 이해하지 못하시겠지만 완전히 다른 작업입니다. 옵티마이저 내부에서 뭔가를 사용하고 있긴 하지만 이 글에서 따온 것일 수도 있지만 만약 있다면 전혀 다른 작업.....
 
마이클 마르쿠카이테스 :

사실 나는 그의 데모 파일을 알아 냈습니다 ..... 거기에 트릭은 중복 데이터가 있다는 것입니다. 5 개의 열이 있고 세 가지 값 1-1il0 중 하나만 쓸 수 있다고 상상해보십시오. 각각의 라인에서. 이 시나리오를 사용하면 반복되는 줄이 있고 이제 내 데이터 세트가 두 배로 늘어납니다. 어리석게 라인을 복사하면 일반화 수준이 최대 90%까지 크게 증가하지만 불행히도 REEDUCATION이 될 것입니다. 알아...두 번 이상 확인했으니까...

50~50개의 샘플이 나누어져 있습니까? 이제 다른 모델과 비교하고 있습니다.
 
어, 어디서 힘을 얻을 수 있지.... 네, 더 강력합니다 :-)
 
막심 드미트리예프스키 :

50~50개의 샘플이 나누어져 있습니까? 이제 다른 모델과 비교하고 있습니다.


사실 훈련 세트를 두 개의 샘플로 나누는 것은 매우 까다롭습니다... 과거에서 미래로 시간 개념이 없습니다. 이것은 분류에 필요하지 않고 근사에 필요합니다.

그러나 분할은 매우 까다로운 방식으로 발생합니다. 내가 힌트를 줄게. 출력 변수의 0과 1의 수가 동일한 것이 중요합니다. 그런 다음 숫자가 같지 않으면 이해할 수있는대로 나누기가 진행됩니다. 일반적으로 거기에서 나누는 까다로운 방법이 있다면 ...

 
마이클 마르쿠카이테스 :

코드를 잘 보세요. 1, 0, -1의 세 가지 상태가 있습니다. 따라서 이것은 거래를 위해 신호를 전송하기 위한 두 개의 그리드 작업의 결과입니다....

각 네트워크의 동작을 따로따로 알아냅니다. 그리고 그들의 출력에서 무엇을 얻을지는 취향의 문제입니다)

그건 그렇고, 나는 당신의 파일에서 코드를 봅니다 - 기사에서와 달리 다른 공식이 있습니다. ~ 아니다

double RNN(double p1,double p2,double p3)
  {
//--- вероятности для правил из базы знаний экспертной системы
   double y0 = x0; // Вероятность правила №0 в процентах
   double y1 = x1; // Вероятность правила №1 в процентах
   double y2 = x2; // Вероятность правила №2 в процентах
   double y3 = x3; // Вероятность правила №3 в процентах
   double y4 = x4; // Вероятность правила №4 в процентах
   double y5 = x5; // Вероятность правила №5 в процентах
   double y6 = x6; // Вероятность правила №6 в процентах
   double y7 = x7; // Вероятность правила №7 в процентах

//--- база знаний, состоящая из набора взаимоисключающих правил
   double probability=
                      (1.0 - p1) * (1.0 - p2) * (1.0 - p3) * y0 + // Правило №0
                      (1.0 - p1) * (1.0 - p2) * p3 * y1 +         // Правило №1
                      (1.0 - p1) * p2 * (1.0 - p3) * y2 +         // Правило №2
                      (1.0 - p1) * p2 * p3 * y3 +                 // Правило №3
                      p1 * (1.0 - p2) * (1.0 - p3) * y4 +         // Правило №4
                      p1 * (1.0 - p2) * p3 * y5 +                 // Правило №5
                      p1 * p2 * (1.0 - p3) * y6 +                 // Правило №6
                      p1 * p2 * p3 * y7;                          // Правило №7

//--- конвертируем проценты в вероятности
   probability=probability/100.0;

//--- возвращаем результат в виде вероятности
   return(probability);
  }

double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7) {
   double x0 = 2.0 * (v0 + 1189.0) / 2047.0 - 1.0;
   double x1 = 2.0 * (v1 + 810.0) / 2247.0 - 1.0;
   double x2 = 2.0 * (v2 + 1636.0) / 2155.0 - 1.0;
   double x3 = 2.0 * (v3 + 558.0) / 1252.0 - 1.0;
   double x4 = 2.0 * (v4 + 139.0) / 494.0 - 1.0;
   double x5 = 2.0 * (v5 + 74.97643) / 144.15451 - 1.0;
   double x6 = 2.0 * (v6 + 1026.56016) / 1938.48639 - 1.0;
   double x7 = 2.0 * (v7 + 4167.0) / 7074.0 - 1.0;
   double decision = 3.162907268170426 * sigmoid(x0)
  -1.0554004772410066 * sigmoid(x1 + x2 + x3)
  + 3.8921930574940347 * sigmoid(x0 + x1 + x4)
  -1.3775531643479957 * sigmoid(x1 + x2 + x3 + x4)
  -0.44704575810784447 * sigmoid(x0 + x5)
  -0.012703915477316044 * sigmoid(x0 + x1 + x5)
  -7.231026668467576 * sigmoid(x2 + x5)
  -0.059339966683175004 * sigmoid(x2 + x4 + x5)
  -2.786314588867378 * sigmoid(x0 + x1 + x2 + x4 + x5)
  + 2.1339726561913768 * sigmoid(x0 + x1 + x6)
  -0.49562529077183975 * sigmoid(x0 + x4 + x6)
  + 5.2147434454399475 * sigmoid(x0 + x3 + x4 + x6)
  -2.890797352663095 * sigmoid(x5 + x6)
  + 0.10933021175693726 * sigmoid(x0 + x5 + x6)
  -1.6844056248405446 * sigmoid(x1 + x2 + x5 + x6)
  -0.18093137034202272 * sigmoid(x1 + x3 + x5 + x6)
  + 0.6607987033451893 * sigmoid(x1 + x7)
  -1.8854921735476415 * sigmoid(x0 + x1 + x3 + x7)
  -1.1169615655906233 * sigmoid(x2 + x5 + x7)
  -0.6844731589452674 * sigmoid(x4 + x6 + x7)
  -0.4231236774571158 * sigmoid(x1 + x2 + x3 + x4 + x6 + x7)
  + 5.763615625891075 * sigmoid(1.0 + x1 + x2 + x3 + x5)
  -0.3138985187519697 * sigmoid(1.0 + x0 + x1 + x4 + x5)
  -1.8910224663455044 * sigmoid(1.0 + x1 + x3 + x4 + x5)
  + 2.1204658352467995 * sigmoid(1.0 + x2 + x3 + x4 + x5)
  + 6.219005597826903 * sigmoid(1.0 + x2 + x3 + x4 + x6)
  -3.740916662914772 * sigmoid(1.0 + x0 + x1 + x3 + x4 + x5 + x6);
   return decision;
}

분명히 저자는 공식을 수정했습니다.

따라서 원래 공식에 따르면 3개의 입력이 아니라 여전히 8개의 입력이 있습니다. 새 공식의 본질을 이해할 때까지는 여전히 8개입니다.

사유: