Alglib MLP (нейронная сеть) портировали неправильно? - страница 2

 
Stanislav Korotky:
Гипотетический R в виде библиотеки для МТ - это не внешний инструмент. ;-)


Для кода на МТ4/5 обращение к R - это библиотека. Аши + обращения к функциям загруженной библиотеки. Но никто не мешает подготовить код на R без мкл, что очень удобно в режиме интерпретации. Код чрезвычайно компактный. R прекрасно документирован... Есть отладчик для отладки связи R <-> МТ4/5

 
СанСаныч Фоменко:


Для кода на МТ4/5 обращение к R - это библиотека. Аши + обращения к функциям загруженной библиотеки. Но никто не мешает подготовить код на R без мкл, что очень удобно в режиме интерпретации. Код чрезвычайно компактный. R прекрасно документирован... Есть отладчик для отладки связи R <-> МТ4/5

Проблема в том, что если в тестер стратегий засунуть библиотеки R на 10 000 000 - 15 000 000 тиков/вызовов, то время теста может устремиться в далекую даль.
 
Renat Fatkhullin:
Проблема в том, что если в тестер стратегий засунуть библиотеки R на 10 000 000 - 15 000 000 тиков/вызовов, то время теста может устремиться в далекую даль.


Майкрософт  для R реализовало схему "клиент-сервер", в которой исполнительная часть R сидит на сервере, а этот сервер в облаке... Может быть там, в облаке, и встретился бы Ваш тестер стратегий с R при работе с тиками. Да и SQL там же проживает вместе с R.

Когда едешь по магистрали, то можно встретить кого угодно. Предсказать не возможно. Но можно гарантировать, что на магистралях публика приличная.

 
СанСаныч Фоменко:


Майкрософт  для R реализовало схему "клиент-сервер", в которой исполнительная часть R сидит на сервере, а этот сервер в облаке... Может быть там, в облаке, и встретился бы Ваш тестер стратегий с R при работе с тиками. Да и SQL там же проживает вместе с R.

Когда едешь по магистрали, то можно встретить кого угодно. Предсказать не возможно. Но можно гарантировать, что на магистралях публика приличная.

Тем более задержки вырастут еще на пару порядков.

Просто сделайте хотя бы 10 000 000 вызовов какой-либо тяжелой функции и посмотрите на время.

 
Maxim Dmitrievsky:


Людям не нужен весь этот геморрой, какова бы хороша среда и язык не были.. люди хотят работать в мт5 без левого софта

Ничего там прекрасно не доступно из мт4/5 а через кучу костылей, так работать просто невозмнжно, нужно быть великим энтузиастом что бы тратить нереальное кол-во времени на весь этот отстой, новички вообще никогда в жизни не станут этим заниматься

И нет ни одной доступной статьи для простого обывателя, как эффективно работать со связкой мт-R, есть 2-3 людей, включая Вас, кто этим занимается, и всё на этом. Все статьи по R написаны в специфическом жанре и со своими "тараканами", и нет ни одной статьи, которая бы доказывала что есть хоть малейший смысл его использовать, не жалея потом о потраченных месяцах

сто пудофф
 
Те пакеты R, которые реализованы на C/C++, должно быть относительно просто портировать в MQL. Хотя работа - объемная, учитывая количество потенциально интересных пакетов и их функционал.
 

Там ошибка в коде библиотеки.

Ибо функции поиска параметров сети с кросс валидацией их (параметры) то вычесляют, но по окончанию работы результат сбрасывают.

Это видно по коду общей функции void CMLPTrain::MLPKFoldCVGeneral(....

 
mbczl:

Там ошибка в коде библиотеки.

Ибо функции поиска параметров сети с кросс валидацией их (параметры) то вычесляют, но по окончанию работы результат сбрасывают.

Это видно по коду общей функции void CMLPTrain::MLPKFoldCVGeneral(....

Интересно узнать в какой строке ошибка, как сейчас и как надо?
 
elibrarius:
Интересно узнать в какой строке ошибка, как сейчас и как надо?
   info=1;
   //--- function call
   CMLPBase::MLPCopy(network, n);

  }

Вставить этот код после "info=1;" в конец функции-


//+------------------------------------------------------------------+

//| Internal cross-validation subroutine                             |

//+------------------------------------------------------------------+

static void CMLPTrain::MLPKFoldCVGeneral(CMultilayerPerceptron &n,.....

которая в файле

MQL5\Include\Math\Alglib\dataanalysis.mqh

 
mbczl:
   CMLPBase::MLPCopy(network, n);

Кроссвалидация и не должна изменять сеть. Она служит для лучшей оценки структуры сети и поданных ей фичей. Это написано в заголовке функции:

//| Cross-validation estimate of generalization error.               |
//| Base algorithm - Levenberg-Marquardt.                            |
//| INPUT PARAMETERS:                                                |
//|     Network     -   neural network with initialized geometry.    |
//|                     Network is not changed during                |
//|                     cross-validation - it is used only as a      |
//|                     representative of its architecture.          |

Кроссвалидация делит данные на несколько (FoldsCount) разных перемешанных наборов и проверяет результат, например на 10.

Выполнив команду MLPCopy(network, n); вы скопируете последнюю из этих 10 сетей (обученную на случайном поднаборе данных и она не обязательно будет лучшей).

Так что функции оценки она выполняет, как и написано в описании.
Ну если вам нужно выполнять какие-то свои задачи - вы можете править код на свое усмотрение.