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

 
Yuriy Asaulenko:

Максим, ты не прав! Польза для вас есть, польза в самой формулировке и изложении задач. Впрочем, не уговариваю.

Ну вы же видите что тут клинические долбэ обитают, это не форумные маски а реальные клинические случаи, ты им слово они тебе два, через каждое сообщение

 
elibrarius:

Непонятный код в лесах Alglib-a нашел. Полный код ф-ии расчета кросс этропии из dataanalysis.mqh:

//+------------------------------------------------------------------+
//| Average cross-entropy (in bits per element) on the test set      |
//| INPUT PARAMETERS:                                                |
//|     DF      -   decision forest model                            |
//|     XY      -   test set                                         |
//|     NPoints -   test set size                                    |
//| RESULT:                                                          |
//|     CrossEntropy/(NPoints*LN(2)).                                |
//|     Zero if model solves regression task.                        |
//+------------------------------------------------------------------+
static double CDForest::DFAvgCE(CDecisionForest &df,CMatrixDouble &xy,
                                const int npoints)
  {
//--- create variables
   double result=0;
   int    i=0;
   int    j=0;
   int    k=0;
   int    tmpi=0;
   int    i_=0;
//--- creating arrays
   double x[];
   double y[];
//--- allocation
   ArrayResizeAL(x,df.m_nvars);
   ArrayResizeAL(y,df.m_nclasses);
//--- initialization
   result=0;
   for(i=0;i<=npoints-1;i++)
     {
      for(i_=0;i_<=df.m_nvars-1;i_++)
         x[i_]=xy[i][i_];
      //--- function call
      DFProcess(df,x,y);
      //--- check
      if(df.m_nclasses>1)
        {
         //--- classification-specific code
         k=(int)MathRound(xy[i][df.m_nvars]);
         tmpi=0;
         for(j=1;j<=df.m_nclasses-1;j++)
           {
            //--- check
            if(y[j]>(double)(y[tmpi]))
               tmpi=j;
           }

         //--- check
         if(y[k]!=0.0)
            result=result-MathLog(y[k]);
         else
            result=result-MathLog(CMath::m_minrealnumber);
        }
     }
//--- return result
   return(result/npoints);
  }

Кусок кода выделенный красным считает нечто (tmpi), что ниже по коду никак не используется. Зачем он тогда включен?
Либо что-то не доделали, либо не до конца подчистили код.
А вообще я в этой ф-ии разбираться начал, потому-что захотел 1 дерево поисследовать. И задав кол-во деревьев в лесе = 1 увидел, что все ошибки между 0 и 1, а эта от 100 до 300+ бывает.
Кто-то разбирается в кросс энтропии - код вообще правильный, или что-то недоделали?

По википедии должно быть

 

Значение вообще до бесконичности м.б. при расчете логлосса если для правильного класса нулевая вероятность предсказана, потому что в формулу все остальные классы кроме него с нулевым коэффициентом входят, а там походу пытались как то разрулить этот глюк - в tmpi в цикле находят класс, который в данном сэмпле имеет наибольшее значение вероятности, может хотели добавить в формулу, но видимо не недодумали:)
 
Ivan Negreshniy:
Значение вообще до бесконичности м.б. при расчете логлосса если для правильного класса нулевая вероятность предсказана, потому что в формулу все остальные классы кроме него с нулевым коэффициентом входят, а там походу пытались как то разрулить этот глюк - в tmpi в цикле находят класс, который в данном сэмпле имеет наибольшее значение вероятности, может хотели добавить в формулу, но видимо не недодумали:)
tmpi только в 1-й из 5-ти ф-ий ошибки используется. Видимо ее использовали как болванку для др. функций, но в других забыли удалить.
Итого в 1-й tmpi есть и используется, еще в 2-х есть но не используется.
В целом на работу это не влияет.
 
elibrarius:
tmpi только в 1-й из 5-ти ф-ий ошибки используется. Видимо ее использовали как болванку для др. функций, но в других забыли удалить.
Итого в 1-й tmpi есть и используется, еще в 2-х есть но не используется.
В целом на работу это не влияет.

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

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

Видимо поэтому я предпочитаю регрессию с квадратичной ошибкой:)

 
Ivan Negreshniy:
Я в принципе о том, что хорошая формула расчета ошибки могла бы учитывать распределение вероятности по всем классам, а не только по одному правильному.
Ну там 5 ф-й ошибки. Эта какая-то странная, но остальные 4, как и положено от 0 до 1 изменяются. Так что выбор есть)
 
Пусть теперь Кеша (внук СанСаныча) и почиканный инвесторами Алёша ветку ведут. Это будет справедливо.
 
Alexander_K2:
Пусть теперь Кеша (внук СанСаныча) и почиканный инвесторами Алёша ветку ведут. Это будет справедливо.

Логичнее эту тему бросить, и начать новую, более адекватную, с другой смежной тематикой.

Кстати, нашел в ценах нормальное распределение. Я уже писал в ТиП, что вся ненормальность от "неправильной" обработки данных - сами и вносим.)

На днях или раньше выложу в Питоновской теме.

 
Yuriy Asaulenko:

Логичнее эту тему бросить, и начать новую, более адекватную, с другой смежной тематикой.

Кстати, нашел в ценах нормальное распределение. Я уже писал в ТиП, что вся ненормальность от "неправильной" обработки данных - сами и вносим.)

На днях или раньше выложу в Питоновской теме.

Увы, ввиду отсутствия на форуме людей уровня Математа, Северного Ветра и Привала, все эти темы не имеют будущего. ИМХО.

 
Alexander_K2:

Увы, ввиду отсутствия на форуме людей уровня Математа, Северного Ветра и Привала, все эти темы не имеют будущего. ИМХО.

А кто это? Нашел себе авторитеты.))

Не сотвори себе кумира, однако. Пора, однако, начинать своей головой думать, а не надеяться на дядю.

 
Yuriy Asaulenko:

А кто это? Нашел себе авторитеты.))

Не сотвори себе кумира, однако. Пора, однако, начинать своей головой думать, а не надеяться на дядю.

:))) Пусть внук Кеша с почиканным Алёшей думают и подчистую здеся все рассказывают как на Страшном Суде. А я тупо их заповеди в валюту конвертировать буду. Красота!

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