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

 
fxsaber #:

Дело не в переводе.

Понятно, что сотня наборов зависят от ФФ.

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

Не уверен, что это выглядит осмысленно в рамках задач трейдинга.

 
fxsaber #:

Кто-нибудь видел этот простой для понимания ТОП с возможностью рассчитать рейтинг своего алгоритма оптимизации?

https://habr.com/ru/users/belyalova/publications/articles/

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

 
mytarmailS #:

Я думаю он путает ФФ с оптимизационной поверхностью

Я уже хз кто что думает, похоже на какой-то стеб
И все это бессмысленно в плане поиска закономерностей или оценки робастности 
 
У Андрея, например, ни разу не было нормальной ТС, но он так свято верит в свою правоту на протяжении 20 лет, и что он занимается чем-то истинно значимым.
И все типа аргументы, как мертвому припарки 
 
fxsaber #:

Есть в этом некое лукавство. Ссылки, чтобы убедиться, что они открываются. Вникать никто из "интересующихся" не будет. В разжеванные статьи Андрея никто не вникает, не говоря уже про труды академического характера.


Кто-нибудь видел этот простой для понимания ТОП с возможностью рассчитать рейтинг своего алгоритма оптимизации?

https://habr.com/ru/users/belyalova/publications/articles/


Это градиентные методы оптимизации для нейронок ,

а мы говорим про без градиентные методы глобальной оптимизации,

ну что же вы Сабер?

Это же азбука..

Про которую кстати ваш местный експерт по оптимизациям ничего не сказал в своих типа статьях(потому что сам дуб-дерево в АО)

 
Aleksey Nikolayev #:

Почитайте это, особенно раздел "Функция потерь != метрика качества". Вряд ли смогу написать понятнее.

Не смог открыть, нас немного блокируют(

Aleksey Nikolayev #:
Это приводит к потенциальной неограниченности числа параметров, поскольку функциональные пространства бесконечномерны. На практике это приводит к необходимости как-то контролировать число параметров - для деревьев это обрезка листьев, например.

Ну например АМО форесты, бусты состоят из примитивов , правил.


Мы может создать граматику Бекуса Наура правил какие нам надо

типа такого(граматика одного правила)

grammarDef
<ex3> ::= <ex2> | <ex2> & <ex2> | <ex2> & <ex3>
<ex2> ::= <ex1> | <com>(<ex1>, <ex1>)
<ex1> ::= <op>(<var>, <var>)
<com> ::= "&" | "|"
<op>  ::= ">=" | "<=" | "==" | "!="
<var> ::= x1 | x2 | x3 | x4

за каждым правилом стоит код/строка/генотип

2 3 1 3 2 4 3 2 3 1 4 4 1 2 1 4 3 2 4 3 4 1 3 4 3 1 2 1 1 3 2 4 1 4 2 4 3 3 1 4 3 2 3  ->  (x1 == x4 | x2 != x1) & (x4 >= x3 & x1 != x2) & (x3 <= x2 & x3 != x1) 
1 1 4 4 1 4 1 4 2 3 1 4 1 1 1 3 1 4 2 3 4 1 1 3 4 3 2 4 1 4 2 3 4 3 3 2 3 4 2 2 4 4 3  ->  x1 <= x2 & x4 == x2 & x2 <= x4 
2 4 1 4 1 1 1 2 1 4 4 1 2 1 3 1 2 3 3 3 3 4 4 2 2 3 1 3 4 2 2 1 2 4 2 1 4 4 3 3 1 4 3  ->  x2 >= x2 & x1 >= x2 & x2 != x3 
4 3 1 3 2 4 2 2 3 4 4 1 1 2 2 1 3 2 4 3 4 3 3 1 3 1 3 2 2 2 4 4 2 3 2 1 4 1 3 1 3 2 4  ->  (x1 == x3 | x1 != x1) & (x2 == x4 | x4 >= x1) 
1 3 3 1 4 2 2 3 4 3 3 4 4 2 2 4 3 1 4 2 1 1 3 4 2 3 1 2 3 1 1 1 3 3 2 2 2 2 2 3 3 1 2  ->  (x3 >= x3 | x4 >= x4) & x3 == x1 
2 1 2 1 3 3 1 2 3 3 2 3 3 3 2 3 4 4 4 3 4 3 2 2 3 1 4 3 4 2 4 3 4 1 2 3 1 2 1 3 1 4 3  ->  x4 != x2 & x4 != x3 & (x1 != x1 | x1 != x4) 
3 3 1 1 3 3 3 2 4 2 2 3 1 2 2 3 2 4 1 4 3 4 4 2 2 4 1 2 2 4 3 4 2 2 3 4 3 4 4 3 4 4 2  ->  x4 != x4 | x3 >= x3 
3 2 1 1 3 4 2 3 2 2 2 4 3 2 3 4 2 2 4 4 1 1 3 1 2 3 2 4 1 2 1 2 1 2 1 4 3 2 4 1 1 4 2  ->  x4 <= x1 
4 2 3 2 4 4 3 3 3 4 1 4 3 3 3 2 4 3 1 3 4 4 1 4 4 2 1 2 3 1 3 3 4 2 4 1 4 2 3 4 3 4 3  ->  x1 == x1 & (x2 >= x1 | x4 != x3) 
3 2 2 1 2 3 2 4 3 3 4 2 4 4 2 4 3 4 2 2 1 1 2 2 1 3 1 4 3 4 3 2 4 4 3 2 2 2 2 2 3 1 1  ->  x3 <= x4 

слева генотип , справа правило что генерируется, вот этот генотип и можно искать с помощью АО

Сумма правил и будет тот же буст или форест..

Как бы нету никакой сложности..


Вот код который это все реализует

library(gramEvol)
grammarDef <- CreateGrammar(list(
  ex3 = grule(ex2, ex2 & ex2, ex2 & ex3),
  ex2 = grule(ex1, com(ex1, ex1)),
  ex1 = grule( op(var, var) ),
  com = grule("&","|"),
  op = grule(">=","<=","==","!="),
  var = grule(x1,x2,x3,x4)))


for(i in 1:10){
  genotype <- sample(1:4,size = 43,replace = T)
  rule <- as.character(GrammarMap(genotype, grammarDef))
  cat(as.character(genotype), " -> ", rule, "\n")
}

Документация по пакету

 

Так что как бы я не вижу никаких препятствий чтобы реализовать свой АМО чисто на оптимизации и грамматике


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



Тот же форест, никакой разницы

X <- iris[,1:(ncol(iris)-1)]
target <- iris[,"Species"] 


library(inTrees)
library(RRF)

target |> 
as.factor() |> 
RRF(x = X,ntree=100) |> 
RF2List() |> 
extractRules(X = X) 






697 rules (length<=6) were extracted from the first 100 trees.
       condition                                                                        
  [1,] "X[,4]<=0.8"                                                                     
  [2,] "X[,4]>0.8 & X[,4]<=1.65 & X[,4]<=1.45"                                          
  [3,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]<=1.55"               
  [4,] "X[,3]>4.95 & X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]<=1.55"                
  [5,] "X[,4]>0.8 & X[,4]<=1.65 & X[,4]>1.45 & X[,4]>1.55"                              
  [6,] "X[,3]<=4.75 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]<=1.75"               
  [7,] "X[,3]>4.75 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]<=1.75"                
  [8,] "X[,1]<=5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"  
  [9,] "X[,1]>5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"   
 [10,] "X[,3]>4.85 & X[,4]>0.8 & X[,4]>1.65 & X[,4]<=1.85 & X[,4]>1.75"                 
 [11,] "X[,4]>0.8 & X[,4]>1.65 & X[,4]>1.85"                                            
 [12,] "X[,4]<=0.8"                                                                     
 [13,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.55"                                          
 [14,] "X[,3]>4.95 & X[,4]>0.8 & X[,4]<=1.55"                                           
 [15,] "X[,1]<=5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                             
 [16,] "X[,1]>5.45 & X[,3]<=5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                
 [17,] "X[,1]>5.45 & X[,3]>5.45 & X[,4]>0.8 & X[,4]>1.55 & X[,4]<=1.75"                 
 [18,] "X[,1]<=5.95 & X[,3]<=4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                 
 [19,] "X[,1]>5.95 & X[,3]<=4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                  
 [20,] "X[,3]>4.9 & X[,4]>0.8 & X[,4]>1.55 & X[,4]>1.75"                                
 [21,] "X[,4]<=0.8"                                                                     
 [22,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.7"                                           
 [23,] "X[,1]<=5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.7"                              
 [24,] "X[,1]>5.95 & X[,3]<=4.85 & X[,4]>0.8 & X[,4]>1.7"                               
 [25,] "X[,1]<=6.6 & X[,3]>4.85 & X[,4]>0.8 & X[,4]<=1.65"                              
 [26,] "X[,1]>6.6 & X[,3]>4.85 & X[,4]>0.8 & X[,4]<=1.65"                               
 [27,] "X[,3]>4.85 & X[,4]>0.8 & X[,4]>1.65"                                            
 [28,] "X[,3]<=2.45"                                                                    
 [29,] "X[,3]>2.45 & X[,3]<=5.35 & X[,4]<=1.75"                                         
 [30,] "X[,3]>2.45 & X[,3]>5.35 & X[,4]<=1.75"                                          
 [31,] "X[,1]<=5.95 & X[,3]>2.45 & X[,3]<=4.85 & X[,4]>1.75"                            
 [32,] "X[,1]>5.95 & X[,3]>2.45 & X[,3]<=4.85 & X[,4]>1.75"                             
 [33,] "X[,3]>2.45 & X[,3]>4.85 & X[,4]>1.75"                                           
 [34,] "X[,3]<=2.45"           
...
..
..
..
.
.
.
 
mytarmailS #:
Не смог открыть, нас немного блокируют(

Нас блокируют много, как-то приспосабливаемся(

mytarmailS #:
Ну например АМО форесты, бусты состоят из примитивов , правил.

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

 
Aleksey Nikolayev #:

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

Язык MQL5 позволяет компенсировать отсутствие любых штатных возможностей тестера и оптимизатора. Там, где требуется динамический набор параметров, можно написать на MQL5 внешний оптимизатор для модели.

 
Andrey Dik #:

Язык MQL5 позволяет компенсировать отсутствие любых штатных возможностей тестера и оптимизатора. Там, где требуется динамический набор параметров, можно написать на MQL5 внешний оптимизатор для модели.

Обязательно надо написать градиентный бустинг на mql5, чтобы стать создателем самого корявого велосипеда.
 

Студент задаёт вопросы искусственному интеллекту.

Вопрос: Как тебя зовут?

Ответ: Вася. Пошел к чёрту.

Вопрос: Что такое пошел к чёрту?

Ответ: Это ответ на твой второй вопрос Вася.

P.Z.

Вопрос потряс нейронную систему.

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