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

Делюсь результатами, значит дерево [3,3,3] - на каждом уровне в листе происходит кластеризация на 3 кластера, всего 3 уровня, в итоге 27 конечных листьев.

Применяем результат на 3 выборках - test и exam не участвовали в построении дерева.

На графике ниже показано смещение целевой "1" в процентах относительно среднего значения целевой "1" в своей выборке - для каждого листа дерева.

Что радует - устойчивость смещения, т.е. там где на train было больше 0 или 1, так и на остальных выборках часто остаётся.

Правда, если взять по выборке train примеры в выборке со смещением более 5%, то получиться всего около 20% примеров от всей выборки, что маловато.

какая то мода на кластеризацию пошла...

Создал алгоритм автоматической идентификации проторговок на основе кластеризации )


работает...

скажете нет?

Aleksey Vyazmikin #:

Делюсь результатами, значит дерево [3,3,3] - на каждом уровне в листе происходит кластеризация на 3 кластера, всего 3 уровня, в итоге 27 конечных листьев.

Применяем результат на 3 выборках - test и exam не участвовали в построении дерева.

На графике ниже показано смещение целевой "1" в процентах относительно среднего значения целевой "1" в своей выборке - для каждого листа дерева.

Что радует - устойчивость смещения, т.е. там где на train было больше 0 или 1, так и на остальных выборках часто остаётся.

Правда, если взять по выборке train примеры в выборке со смещением более 5%, то получиться всего около 20% примеров от всей выборки, что маловато.

А если сразу на 27 кластеров разделить без деревьев? Результат изменится?

mytarmailS #:

какая то мода на кластеризацию пошла...

Создал алгоритм автоматической идентификации проторговок на основе кластеризации )


работает...

скажете нет?

Выглядит весьма интересно. Подробности будут?

Forester #:

А если сразу на 27 кластеров разделить без деревьев? Результат изменится?

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

Сейчас поставлю посчитать сразу 27 кластеров, заодно проверю алгоритм свой на адекватность отработки с таким усечённым деревом по сути

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

А вот так выглядят листья дерева 3-3-3-3, ниже отдельные графики по каждой выборки - в очередности train, test, exam



Ну, видно, что уже побольше смещение вероятности в листьях, но и начала проявляется нестабильность. Процент примеров в позитивных листьях дерева (кластерах) на последующих выборках уменьшился, что ещё раз подтверждает в общем то уникальность комбинаций, характерных на определенном участке торговли. Отмечу, что выборка сложная - всего 10% единиц (позитивных целевых).

[Удален]
Aleksey Vyazmikin #:

Делюсь результатами, значит дерево [3,3,3] - на каждом уровне в листе происходит кластеризация на 3 кластера, всего 3 уровня, в итоге 27 конечных листьев.

Применяем результат на 3 выборках - test и exam не участвовали в построении дерева.

На графике ниже показано смещение целевой "1" в процентах относительно среднего значения целевой "1" в своей выборке - для каждого листа дерева.

Что радует - устойчивость смещения, т.е. там где на train было больше 0 или 1, так и на остальных выборках часто остаётся.

Правда, если взять по выборке train примеры в выборке со смещением более 5%, то получиться всего около 20% примеров от всей выборки, что маловато.

50 кластеров. Кластеризация по волатильности.


Learn 0 BATCH 0 model
R2: -0.6975072967971953
Learn 0 BATCH 1 model
R2: 0.9475296697469157
Learn 0 BATCH 2 model
R2: 0.016017417967087666
Learn 0 BATCH 3 model
R2: -0.4384662368711072
Learn 0 BATCH 4 model
R2: -0.815427090254198
Learn 0 BATCH 5 model
R2: 0.22019051717293892
Learn 0 BATCH 6 model
R2: -0.3800956817962319
Learn 0 BATCH 7 model
R2: 0.07809908347775751
Learn 0 BATCH 8 model
/Users/dmitrievsky/miniforge3/lib/python3.10/site-packages/sklearn/metrics/_regression.py:1187: UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.
  warnings.warn(msg, UndefinedMetricWarning)
R2 is fixed to -1.0
R2: -1.0
Learn 0 BATCH 9 model
R2: 0.004266344436175684
Learn 0 BATCH 10 model
R2: 0.4981881787045557
Learn 0 BATCH 11 model
R2: 0.0053097855769144164
Learn 0 BATCH 12 model
R2: 0.054027256930358925
Learn 0 BATCH 13 model
R2: 0.5899093013972916
Learn 0 BATCH 14 model
R2: -0.4946899648797436
Learn 0 BATCH 15 model
R2: 0.7939071178120198
Learn 0 BATCH 16 model
R2: 0.6477014231474504
Learn 0 BATCH 17 model
R2: 0.47273004383962347
Learn 0 BATCH 18 model
R2: 0.248941419849391
Learn 0 BATCH 19 model
R2: 0.800761188745112
Learn 0 BATCH 20 model
R2: 0.11376642072996479
Learn 0 BATCH 21 model
/Users/dmitrievsky/miniforge3/lib/python3.10/site-packages/sklearn/metrics/_regression.py:1187: UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.
  warnings.warn(msg, UndefinedMetricWarning)
R2 is fixed to -1.0
R2: -1.0
Learn 0 BATCH 22 model
R2: 0.7838797961879156
Learn 0 BATCH 23 model
R2: -0.4268170909757055
Learn 0 BATCH 24 model
R2: 0.5737133818949138
Learn 0 BATCH 25 model
R2: 0.36270135520520974
Learn 0 BATCH 26 model
R2: -0.12049707206984317
Learn 0 BATCH 27 model
R2: 0.27317804513554567
Learn 0 BATCH 28 model
R2: -0.005998374759471736
Learn 0 BATCH 29 model
R2: 0.32044801432519554
Learn 0 BATCH 30 model
R2: 0.3106442469001309
Learn 0 BATCH 31 model
R2: 0.6887039726402294
Learn 0 BATCH 32 model
R2: -0.5321374845982312
Learn 0 BATCH 33 model
/Users/dmitrievsky/miniforge3/lib/python3.10/site-packages/sklearn/metrics/_regression.py:1187: UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.
  warnings.warn(msg, UndefinedMetricWarning)
R2 is fixed to -1.0
R2: -1.0
Learn 0 BATCH 34 model
R2: -0.036793036508273036
Learn 0 BATCH 35 model
R2: -0.13234917037561222
Learn 0 BATCH 36 model
R2: -0.7195407853537261
Learn 0 BATCH 37 model
/Users/dmitrievsky/miniforge3/lib/python3.10/site-packages/sklearn/metrics/_regression.py:1187: UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.
  warnings.warn(msg, UndefinedMetricWarning)
R2 is fixed to -1.0
R2: -1.0
Learn 0 BATCH 38 model
R2: 0.7462004403933388
Learn 0 BATCH 39 model
R2: -0.014321696157866604
Learn 0 BATCH 40 model
R2: 0.8581957623344842
Learn 0 BATCH 41 model
R2: -0.5150586236832828
Learn 0 BATCH 42 model
R2: 0.88749024612301
Learn 0 BATCH 43 model
R2: -0.02320296391829768
Learn 0 BATCH 44 model
R2: 0.5986943139612424
Learn 0 BATCH 45 model
/Users/dmitrievsky/miniforge3/lib/python3.10/site-packages/sklearn/metrics/_regression.py:1187: UndefinedMetricWarning: R^2 score is not well-defined with less than two samples.
  warnings.warn(msg, UndefinedMetricWarning)
R2 is fixed to -1.0
R2: -1.0
Learn 0 BATCH 46 model
R2: 0.08375468541665188
Learn 0 BATCH 47 model
R2: 0.7318534153534879
Learn 0 BATCH 48 model
R2: 0.3927709261051455
Learn 0 BATCH 49 model
R2: 0.8029591287960962

Лучшие результаты:


[Удален]
Aleksey Vyazmikin #:

А вот так выглядят листья дерева 3-3-3-3, ниже отдельные графики по каждой выборки - в очередности train, test, exam



Ну, видно, что уже побольше смещение вероятности в листьях, но и начала проявляется нестабильность. Процент примеров в позитивных листьях дерева (кластерах) на последующих выборках уменьшился, что ещё раз подтверждает в общем то уникальность комбинаций, характерных на определенном участке торговли. Отмечу, что выборка сложная - всего 10% единиц (позитивных целевых).

Попробуйте EURGBP


Maxim Dmitrievsky #:

Попробуйте EURGBP

А у тебя тестер считает вход по клоузу сигнальной свечи или по открытию следующей? 

Комиссия считаеться? 
Aleksey Vyazmikin #:

Выглядит весьма интересно. Подробности будут?

Будут, но позже