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

 
Mihail Marchukajtes:


Вот тут готов поспорить. Это из практики. То что я наблюдаю на протяжении использования оптимизатора.


Но в демонстрационном примере на его сайте 5 столбцов и большое кол-во строк
 
Mihail Marchukajtes:


Вот тут готов поспорить. Это из практики. То что я наблюдаю на протяжении использования оптимизатора.

Если столбцов меньше чем строк, то количество входов становится меньше чем условный размер полинома сети.

Если количестов столбцов и строк равно, то количество входов и размер полинома примерно одинаков.

Если столбцов больше чем строк то размер полинома меньше количества входов.

Другими словами необходимо чтобы количество столбцов и строк было примерно одинаковым. Тогда полином получается с достаточным количеством входов, а также размер его примерно одинаком количеству входов.

Другими и другими словами. Чем больше файл, тем многопараметрической становится модель. Увеличивается количество входов и размер полинома, что говорит о том что модель становится умнее. Как то так.

И ещё при неоднократном прогоне одного и тогоже файла, набор входных параметров всегда разный. Это связанно со случайным разбиением выборке при делении. Но если мы запустим один и тот же файл и получим абсалютно разные модели, то работать они всё равно будут примерно одинаково, во всяком случае должны. Это и есть ответ на вопрос, какая рыба забита в данном фале. Если данные разняться прогон от прогона, это говрит о том что данные не имеют никакого отношения к выходу. Как то так....

Полином строится только для того, чтобы из него все выкинуть и оставить 3 для одной сети и 3 для другой.
 
elibrarius:
Полином строится только для того, чтобы из него все выкинуть и оставить 3 для одной сети и 3 для другой.

Посмотрите внимательно код. Есть три смостояния это 1, 0 и -1. Так это результат работы двух сеток, для передачи сигналов в торговлю....
 
Mihail Marchukajtes:


Да какие коэфицента связи, что вы говорите. Вот перечень используемых входов, а то что вы видети там перед каждым полиномом идёт нормализация, а входов там 8 вот они описаны, посмотрите ниже в самом низу фала.

//Variable x0: Del

//Variable x1: Del1

//Variable x2: VDel

//Variable x3: VDel1

//Variable x4: VDel6

//Variable x5: ST5

//Variable x6: VAD11

//Variable x7: VVolum4

Где тут три входа????? Когда их восемь.
у Вас х0.. х7 = р0...р7 - из формулы выше (просто по другому названы) формула взята из статьи Решетова описывающей его нейрон. И согласно формуле входа всего 3 - A,B и С
 
Maxim Dmitrievsky:

Но в демонстрационном примере на его сайте 5 столбцов и большое кол-во строк

Дело в том что я расскусил его файл демонстрационный..... Там фишка в том что есть повторяющиеся данные, представь что 5 столбцов и в каждой их строчек может быть записано только одно из трёх значений 1-1ил0. При таком расскладе получится что будут повторяющие строки, а теперь увелить мой датасет в два раза. Тупо расскопируй строки и уровень обобщения выростит значительно, вплодь до 90% НО к сожалению это будет ПЕРЕОБУЧЕНИЕ. Знаю... проверял не однократно, так что.....
 
elibrarius:
у Вас х0.. х7 = р0...р7 - из формулы выше (просто по другому названы) формула взята из статьи Решетова описывающей его нейрон. И согласно формуле входа всего 3 - A,B и С

Да та статья про RNN она к данному оптимизатору отношения никакого не имеет это совершенно разные работы, как вы не понимаете. Хотя внутри оптимизатора что то и используется может быть из этой статьи, но это совершенно разные работы еслив что.....
 
Mihail Marchukajtes:

Дело в том что я расскусил его файл демонстрационный..... Там фишка в том что есть повторяющиеся данные, представь что 5 столбцов и в каждой их строчек может быть записано только одно из трёх значений 1-1ил0. При таком расскладе получится что будут повторяющие строки, а теперь увелить мой датасет в два раза. Тупо расскопируй строки и уровень обобщения выростит значительно, вплодь до 90% НО к сожалению это будет ПЕРЕОБУЧЕНИЕ. Знаю... проверял не однократно, так что.....

Там 50 на 50 же выборки делятся? сейчас делаю сравнение с другими моделями
 
Эх, где бы взять мощностя.... да по мощьнее :-)
 
Maxim Dmitrievsky:

Там 50 на 50 же выборки делятся? сейчас делаю сравнение с другими моделями


На самом деле делении обучающего множества на две выборки очень хитрое... Там нет понятия времени, из прошлого в будущее. в этом нет необходимости при классификации, это нужно при апроксимации.

Но и деление происходит очень хитрым способом. Подскажу. Важно чтобы в выходной переменной количество нулей и единичек было равным. Тогда деление идёт как то понятно, если количество не равное то там идёт добавление. Вообщем хитрый способ деления там если в что...

 
Mihail Marchukajtes:

Посмотрите внимательно код. Есть три смостояния это 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... пока не понял суть новой формулы.

Причина обращения: