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

 
Evgeny Dyuka:

Вот живой пример того как можно сжать информацию , это не то что я делаю, но я стремлюсь к этой концепции

Данные - ирисы Фишера

iris[sample(100,100),] 
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
51           7.0         3.2          4.7         1.4 versicolor
31           4.8         3.1          1.6         0.2     setosa
79           6.0         2.9          4.5         1.5 versicolor
33           5.2         4.1          1.5         0.1     setosa
73           6.3         2.5          4.9         1.5 versicolor
80           5.7         2.6          3.5         1.0 versicolor
16           5.7         4.4          1.5         0.4     setosa
74           6.1         2.8          4.7         1.2 versicolor
30           4.7         3.2          1.6         0.2     setosa
17           5.4         3.9          1.3         0.4     setosa
25           4.8         3.4          1.9         0.2     setosa
75           6.4         2.9          4.3         1.3 versicolor
57           6.3         3.3          4.7         1.6 versicolor
65           5.6         2.9          3.6         1.3 versicolor
96           5.7         3.0          4.2         1.2 versicolor
.........
......
...
..
..


Тренируем рендом форест, для наглядности, но представим что это ансамбль из ваших нейросетей

Натренировали....

Получаем прогнозирующие правила, их около 700 штук

condition                                              pred        
  [1,] "X[,3]<=2.45"                                          "setosa"    
  [2,] "X[,3]>2.45 & X[,3]<=4.85"                             "versicolor"
  [3,] "X[,3]>2.45 & X[,3]<=4.85 & X[,4]<=1.6"                "versicolor"
  [4,] "X[,4]>1.6"                                            "virginica" 
  [5,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
  [6,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
  [7,] "X[,3]>4.85 & X[,3]<=5.15 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
  [8,] "X[,4]>1.75"                                           "virginica" 
  [9,] "X[,3]>5.15"                                           "virginica" 
 [10,] "X[,3]<=2.45"                                          "setosa"    
 [11,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65"               "versicolor"
 [12,] "X[,4]>1.65"                                           "virginica" 
 [13,] "X[,3]>4.85 & X[,4]>1.65"                              "virginica" 
 [14,] "X[,4]>1.9"                                            "virginica" 
 [15,] "X[,3]>4.95 & X[,4]<=1.65"                             "virginica" 
 [16,] "X[,3]>4.95 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [17,] "X[,3]>4.95"                                           "virginica" 
 [18,] "X[,4]<=0.8"                                           "setosa"    
 [19,] "X[,3]<=4.75 & X[,4]>0.8"                              "versicolor"
 [20,] "X[,3]>4.75 & X[,3]<=5 & X[,4]<=1.7"                   "versicolor"
 [21,] "X[,3]>5 & X[,4]<=1.55"                                "virginica" 
 [22,] "X[,3]>4.75 & X[,3]<=5.45 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [23,] "X[,3]>5.45"                                           "virginica" 
 [24,] "X[,4]>1.7"                                            "virginica" 
 [25,] "X[,3]<=5.05 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [26,] "X[,3]>4.95"                                           "virginica" 
 [27,] "X[,2]>2.6 & X[,3]<=5.05 & X[,3]>4.95"                 "versicolor"
 [28,] "X[,4]>1.75"                                           "virginica" 
 [29,] "X[,2]>3.1 & X[,3]<=5.05 & X[,4]>0.8"                  "versicolor"
 [30,] "X[,3]>5.05 & X[,4]<=1.55"                             "virginica" 
 [31,] "X[,2]<=2.85 & X[,3]>5.05 & X[,4]<=1.7 & X[,4]>1.55"   "versicolor"
 [32,] "X[,3]>5.05"                                           "virginica" 
 [33,] "X[,3]>5.05"                                           "virginica" 
 [34,] "X[,4]<=0.75"                                          "setosa"    
 [35,] "X[,3]<=4.95 & X[,4]>0.75 & X[,4]<=1.7"                "versicolor"
 [36,] "X[,4]>1.7"                                            "virginica" 
 [37,] "X[,2]>3.1 & X[,3]<=4.95 & X[,4]>0.75"                 "versicolor"
 [38,] "X[,3]>4.95"                                           "virginica" 
 [39,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.7"                 "versicolor"
 [40,] "X[,4]>1.7"                                            "virginica" 
 [41,] "X[,3]>4.95"                                           "virginica" 
 [42,] "X[,4]<=0.7"                                           "setosa"    
 [43,] "X[,2]<=2.25 & X[,4]<=1.25"                            "versicolor"
 [44,] "X[,2]<=2.25"                                          "versicolor"
 [45,] "X[,2]>2.25 & X[,4]>0.7 & X[,4]<=1.75"                 "versicolor"
 [46,] "X[,3]>5.3"                                            "virginica" 
 [47,] "X[,4]>1.75"                                           "virginica" 
 [48,] "X[,3]>2.45 & X[,3]<=4.95 & X[,4]<=1.75"               "versicolor"
 [49,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [50,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
 [51,] "X[,3]>4.95"                                           "virginica" 
 [52,] "X[,4]>1.75"                                           "virginica" 
 [53,] "X[,2]>3 & X[,3]>2.45 & X[,3]<=4.85"                   "versicolor"
 [54,] "X[,4]>1.75"                                           "virginica" 
 [55,] "X[,3]<=4.85 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [56,] "X[,3]<=4.65 & X[,4]>1.65"                             "virginica" 
 [57,] "X[,4]>1.65"                                           "virginica" 
 [58,] "X[,3]<=5.3 & X[,4]<=1.75"                             "versicolor"
 [59,] "X[,2]>2.6 & X[,3]>4.85 & X[,3]<=5.3 & X[,4]<=1.75"    "versicolor"
 [60,] "X[,3]>5.3"                                            "virginica" 
 [61,] "X[,4]>1.75"                                           "virginica" 
 [62,] "X[,3]<=2.5"                                           "setosa"    
 [63,] "X[,3]>2.5 & X[,3]<=4.95 & X[,4]<=1.75"                "versicolor"
 [64,] "X[,3]>4.95 & X[,3]<=5.05 & X[,4]<=1.65"               "virginica" 
 [65,] "X[,4]<=1.75"                                          "versicolor"
 [66,] "X[,3]<=4.75 & X[,4]>1.65"                             "virginica" 
 [67,] "X[,3]>4.75 & X[,4]<=1.75 & X[,4]>1.65"                "versicolor"
 [68,] "X[,3]>5.35"                                           "virginica" 
 [69,] "X[,4]>1.75"                                           "virginica" 
 [70,] "X[,3]<=4.75 & X[,4]>0.7"                              "versicolor"
 [71,] "X[,4]>1.65"                                           "virginica" 
 [72,] "X[,3]>4.75 & X[,3]<=4.95 & X[,4]<=1.7"                "versicolor"
 [73,] "X[,2]<=2.65 & X[,3]>4.95"                             "virginica" 
 [74,] "X[,2]<=2.75 & X[,2]>2.65 & X[,4]<=1.7"                "versicolor"
 [75,] "X[,3]>4.75"                                           "virginica" 
 [76,] "X[,4]>1.7"                                            "virginica" 
 [77,] "X[,2]>3.1 & X[,3]>4.75 & X[,3]<=4.85"                 "versicolor"
 [78,] "X[,4]>1.7"                                            "virginica" 
 [79,] "X[,3]>2.45 & X[,3]<=5 & X[,4]<=1.65"                  "versicolor"
 [80,] "X[,4]<=1.65"                                          "versicolor"
 [81,] "X[,3]>5"                                              "virginica" 
 [82,] "X[,4]>1.65"                                           "virginica" 
 [83,] "X[,3]>2.45 & X[,3]<=5.05 & X[,4]<=1.75"               "versicolor"
 [84,] "X[,4]>1.75"                                           "virginica" 
 [85,] "X[,2]>3.1 & X[,3]>2.45 & X[,3]<=5.05"                 "versicolor"
 [86,] "X[,3]>5.05"                                           "virginica" 
 [87,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.65"                "versicolor"
 [88,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [89,] "X[,3]<=5.45 & X[,4]<=1.65 & X[,4]>1.55"               "versicolor"
 [90,] "X[,3]>4.95"                                           "virginica" 
 [91,] "X[,4]>1.65"                                           "virginica" 
 [92,] "X[,4]>0.75 & X[,4]<=1.65"                             "versicolor"
 [93,] "X[,4]>1.65"                                           "virginica" 
 [94,] "X[,2]>3.1 & X[,3]<=4.85 & X[,4]>0.75"                 "versicolor"
 [95,] "X[,4]>1.65"                                           "virginica" 
 [96,] "X[,3]<=4.95 & X[,4]>0.8 & X[,4]<=1.75"                "versicolor"
 [97,] "X[,3]<=4.95 & X[,4]<=1.75 & X[,4]>1.65"               "virginica" 
 [98,] "X[,3]>4.95 & X[,4]<=1.55"                             "virginica" 
 [99,] "X[,3]>4.95 & X[,3]<=5.45 & X[,4]<=1.75 & X[,4]>1.55"  "versicolor"
..........................
..............
.......
....
..

теперь магия, есть алгоритм который может из этих 700 правил сделать 7, с минимальной потерей качества

learner[,-c(1:3)]
     condition                                pred        
[1,] "X[,3]<=2.45"                            "setosa"    
[2,] "X[,3]<=4.95 & X[,3]>2.45 & X[,4]<=1.65" "versicolor"
[3,] "X[,3]>4.95 & X[,4]>1.7"                 "virginica" 
[4,] "X[,2]<=3.1 & X[,3]<=4.95 & X[,4]>1.65"  "virginica" 
[5,] "X[,3]>4.95 & X[,4]<=1.55"               "virginica" 
[6,] "X[,3]<=5.3 & X[,4]<=1.75"               "versicolor"
[7,] "X[,1]==X[,1]"                           "versicolor"

Вот и весь наш рендом форест из 700 правил (деревьев)

не хило ? :)

 
mytarmailS:

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

Все ваше решение, это наплодить сотни сетей на разных данных и анализировать их выходы в виде вероятности...

да, именно так, ради реального практического результата

А что если разобраться в рынке и понять его законы ?

а зачем? может это вообще не возможно

Тогда одним лог. правилом можно будет описать то что вы описываете сотней сетей

это фантазии, полеты в облаках

ответил выше по тексту...

 
Evgeny Dyuka:

ответил выше по тексту...

Вы пишете :

Evgeny Dyuka:

2. На практике, используя мой метод, можно получать с приемлимой точностью ответ только примерно в 1% заданных вопросов. Говоря проще, если на каждой минутной свече спрашивать сеть "где будет цена через 5 мин - выше или ниже?" то только 1 раз из 100 сеть ответит.

Женя вам не кажется что причина в том что в ваших данных 99% мусора и 1% полезной информации, вам не кажется что этот 1% как раз и можно описать 1-3 лог правилами ?  которые и следует оставить, а остальное выкинуть

 
mytarmailS:

Вы пишете :

Evgeny Dyuka:

2. На практике, используя мой метод, можно получать с приемлимой точностью ответ только примерно в 1% заданных вопросов. Говоря проще, если на каждой минутной свече спрашивать сеть "где будет цена через 5 мин - выше или ниже?" то только 1 раз из 100 сеть ответит.

Женя вам не кажется что причина в том что в ваших данных 99% мусора и 1% полезной информации, вам не кажется что этот 1% как раз и можно описать 1-3 лог правилами ?  которые и следует оставить, а остальное выкинуть

К сожалению это не так.

99% процентов мусора это неотемлимое свойство объекта который мы изучаем. Он так устроен, это его природа.
Всем хочется надеяться, что у него внутри гармония и понятные простые правила которые мы еще не нашли, но обязательно найдем. Нет этих правил. Филосовски они конечно может и есть, у всего есть причина, но они за гранью наших текущих и перспективных возможностей.

Этот 1% тоже не описывается простыми правилами, что бы на него выйти сеть обучается на 500.000 примеров - это явно непростые правила.

 
mytarmailS:

Вот живой пример того как можно сжать информацию , это не то что я делаю, но я стремлюсь к этой концепции

Данные - ирисы Фишера


Тренируем рендом форест, для наглядности, но представим что это ансамбль из ваших нейросетей

Натренировали....

Получаем прогнозирующие правила, их около 700 штук

теперь магия, есть алгоритм который может из этих 700 правил сделать 7, с минимальной потерей качества

Вот и весь наш рендом форест из 700 правил (деревьев)

не хило ? :)

Чтобы описать 150 строк данных (в данных Ириса их 150) максимум нужно 150 правил (если все строки уникальны).
Откуда вы 700 взяли?

 
elibrarius:

Чтобы описать 150 строк данных (в данных Ириса их 150) максимум нужно 150 правил (если все строки уникальны).
Откуда вы 700 взяли?

я не знаю как точно работает пакет с форестом, но при настройке в 100 деревьев он генерит 400-700 правил, скорей всего каждую ветку считает правилом

Evgeny Dyuka:
К сожалению это не так.

99% процентов мусора это неотемлимое свойство объекта который мы изучаем. Он так устроен, это его природа.
Всем хочется надеяться, что у него внутри гармония и понятные простые правила которые мы еще не нашли, но обязательно найдем. Нет этих правил. Филосовски они конечно может и есть, у всего есть причина, но они за гранью наших текущих и перспективных возможностей.

Этот 1% тоже не описывается простыми правилами, что бы на него выйти сеть обучается на 500.000 примеров - это явно непростые правила.

хз..

 
mytarmailS:

Вот и весь наш рендом форест из 700 правил (деревьев)

не хило ? :)

Какой принцип сокращения листьев? Группировка по похожести и выделение из группы лучшего варианта?

 
mytarmailS:

я не знаю как точно работает пакет с форестом, но при настройке в 100 деревьев он генерит 400-700 правил, скорей всего каждую ветку считает правилом

хз..

Видимо 700 это в сумме на 100 деревьев.

Если вы одно дерево построите, то получите те же 7 правил, что вы считаете магией))

Вот что мне 1 дерево выдало на ирисы (Accuracy 96% или  6 ошибок из 150 примеров)


 if(x[3]<1.800000){
  if(x[3]<1.000000){v[0]=1.000000;v[1]=0.000000;v[2]=0.000000;s=50;}
  else{
   if(x[2]<4.700000){
    if(x[2]<4.500000){v[0]=0.000000;v[1]=1.000000;v[2]=0.000000;s=29;}
    else{v[0]=0.000000;v[1]=0.909091;v[2]=0.090909;s=11;}}
   else{v[0]=0.000000;v[1]=0.714286;v[2]=0.285714;s=14;}}}
 else{
  if(x[0]<6.300000){v[0]=0.000000;v[1]=0.090909;v[2]=0.909091;s=11;}
  else{v[0]=0.000000;v[1]=0.000000;v[2]=1.000000;s=35;}}
 

 
Aleksey Vyazmikin:

Какой принцип сокращения листьев? Группировка по похожести и выделение из группы лучшего варианта?

https://sites.google.com/site/houtaodeng/intrees


elibrarius:
Видимо 700 это в сумме на 100 деревьев.

Если вы одно дерево построите, то получите те же 7 правил, что вы считаете магией))

Вот что мне 1 дерево выдало на ирисы (Accuracy 96% или  6 ошибок из 150 примеров}} 

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

inTrees - Houtao Deng
  • sites.google.com
inTrees (interpretable trees) is a framework for extracting, measuring, pruning, selecting and summarizing rules from a tree ensemble (so far including random forest, RRF and gbm). All algorithms for classification, and some for regression have been implemented in the "inTrees" R package. For Latex user: t - For regression problems, rules with...
 
mytarmailS:

https://sites.google.com/site/houtaodeng/intrees


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

Чтобы показать, что это не магия
Причина обращения: