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

 
Forester #:

Спасибо! Почитал и обдумал опыт др. людей работы с этим.
Думаю, что лучше выкидывать столбец, если в нем есть NAN.
В моем случае всего 1 столбец содержал несколько сотен NAN и INF. Что-то накосячил с созданием фичи.

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

Можно интерполировать или заменить средним
Вы в R пишите? 
 
mytarmailS #:
Можно интерполировать или заменить средним

Замена на среднее использовалась в статистике, когда просто не было данных, тогда и подставляли среднее. Они использовали NAN, как отсутствие или пропуск данных - им надо было как то этот момент отметить - решили использовать NAN для этого с последующей заменой на среднее.

У меня же NAN - есть ошибка в подготовке данных и получается например после /0 (но иногда получается + - INF). Мне не нужно ошибочные данные считать нормальными и даже средними.
Ошибки надо исправлять (вывожу в распечатку, что столбец содержит NAN и пропущен). Хотя кто читает эти распечатки?... )))

 
Forester #:

Замена на среднее использовалась в статистике, когда просто не было данных, тогда и подставляли среднее. Они использовали NAN, как отсутствие или пропуск данных - им надо было как то этот момент отметить - решили использовать NAN для этого с последующей заменой на среднее.

У меня же NAN - есть ошибка в подготовке данных и получается например после /0 (но иногда получается + - INF). Мне не нужно ошибочные данные считать нормальными и даже средними.
Ошибки надо исправлять (вывожу в распечатку, что столбец содержит NAN и пропущен). Хотя кто читает эти распечатки?... )))

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


На всякий случай пример замены НА"шек, раз уже написал пример

m <- round(matrix(rnorm(100),ncol = 5,nrow = 10),2)
m[ sample(1:nrow(m),5,replace = T) , sample(1:ncol(m),5,replace = T) ] <- NaN
m

[,1]  [,2]  [,3]  [,4]  [,5]
 [1,] -1.17 -0.10 -0.22 -1.49 -1.23
 [2,]   NaN   NaN  0.85   NaN -2.13
 [3,]  0.60  0.06  1.50 -0.31  0.05
 [4,]   NaN   NaN -0.41   NaN -0.43
 [5,]  1.17  0.86 -0.51  1.43 -0.07
 [6,] -0.44  0.79 -0.61  0.68  0.11
 [7,]  0.85  0.74  0.31 -1.16 -0.38
 [8,]   NaN   NaN  1.09   NaN -0.36
 [9,]   NaN   NaN -0.58   NaN -1.27
[10,] -0.19 -0.42  0.07  0.31  1.92

и решение

library(imputeTS)
m2 <- round(apply(m,2,na_ma),2)
m2

 [,1]  [,2]  [,3]  [,4]  [,5]
 [1,] -1.17 -0.10 -0.22 -1.49 -1.23
 [2,] -0.14  0.12  0.85 -0.57 -2.13
 [3,]  0.60  0.06  1.50 -0.31  0.05
 [4,]  0.49  0.49 -0.41  0.27 -0.43
 [5,]  1.17  0.86 -0.51  1.43 -0.07
 [6,] -0.44  0.79 -0.61  0.68  0.11
 [7,]  0.85  0.74  0.31 -1.16 -0.38
 [8,]  0.37  0.51  1.09 -0.14 -0.36
 [9,]  0.14  0.14 -0.58  0.04 -1.27
[10,] -0.19 -0.42  0.07  0.31  1.92
 
mytarmailS #:

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


На всякий случай пример замены НА"шек, раз уже написал пример

и решение

Спасибо, может кому и пригодится код.

 
Справка по onnx на сайте обновилась - https://www.mql5.com/ru/docs/onnx
Документация по MQL5: ONNX модели
Документация по MQL5: ONNX модели
  • www.mql5.com
ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
mytarmailS #:


Подумал по поводу Вашего примера.

Большие сомнения.

Для начала, правильно ли я понял.

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

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


Может быть как-то иначе? Или я чего-то не допонял?

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

Подумал по поводу Вашего примера.

Большие сомнения.

Для начала, правильно ли я понял.

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

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


Может быть как-то иначе? Или я чего-то не допонял?

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

В данном примере (по заявкам страждущих) показано как обучить АМО по максимально стабильной прибыли,  но может быть абсолютно любая ФФ по вкусу... 

Также никто не мешает приделать для обучения тестовую и валидационную выборку что бы не было переобучения, но это усложнило бы код и выходит за рамки примера
 
mytarmailS #:
Суть/цель примера  показать что можно обучать модель не только готовым таргетам,  а и функциям потерь любой сложности минимизируя или максимизируя ФФ.

В данном примере (по заявкам страждущих) показано как обучить АМО по максимально стабильной прибыли,  но может быть абсолютно любая ФФ по вкусу... 

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

Понятно, очень любопытно

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

Понятно, очень любопытно

что любопытно? так об этом же говорилось пару месяцев назад в этой ветке в диалогах с моим участием)) тут многие спорили что макс/минить фф нивкоем случае нельзя)))

как фф задашь так моарабль и поплывёт...

 
Andrey Dik #:

что любопытно? так об этом же говорилось пару месяцев назад в этой ветке в диалогах с моим участием)) тут многие спорили что макс/минить фф нивкоем случае нельзя)))

как фф задашь так моарабль и поплывёт...

У алгоритма своя фф, которую нельзя менять (не будет работать), это просто надстройка для curve fitting, чтобы было красиво. Глобально ни на что не влияет. Уже был здесь вариант с кастомным лоссом по профит фактору, на трейне красиво как обычно.

Ходим вокруг да около и каждый раз удивляемся. Амнезия - приятный недуг, каждый день новости 😀