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

 
mytarmailS:

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

Возможно перебор гармониками но рассмотрю все варианты.

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


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

Те как вообще работает сам механизм подстройки одной функции под другую
гармоническая, это через фурье? там просто синусоиды разных периодов и амплитуд складываются A1*cos(2Pi*t/T1+Fi1)+ A2*cos(2Pi*t/T2+Fi2) +... A - амплитуда, T - период, Fi - фаза
 
mytarmailS:

сколько раз я тебе этом писал ?   3 ?   5 ?

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

 
Aleksey Vyazmikin:

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

он применял t-sne (вроди) но это неважно, ну да придумали, и это работает и отлично работает но не для рынка, как и все остальное, загрузи любой дата сет с интернета и увидишь что вещь работает отлично но...

Но можно сделать выводы : кластера создаются устойчивые и не меняются но они не резонируют с прибылью, целевая резонирует с прибылью но гуляет по кластерам, наверное потому что каждая целевая это отсебятина а вот кластер это объективная реальность .  Щас буду тренировать без учителя, хочу пробовать распознавать паттерны по аналогам из истории но не по ценам а по umap как и задумывал с самого начала.


Rorschach:
гармоническая, это через фурье? там просто синусоиды разных периодов и амплитуд складываются A1*cos(2Pi*t/T1+Fi1)+ A2*cos(2Pi*t/T2+Fi2) +... A - амплитуда, T - период, Fi - фаза

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

 
mytarmailS:

Отбор признаков[править | править код]

Основная статья: Отбор признаков

Метод отбора признаков пытается найти подмножество исходных переменных (которые называются признаками или атрибутами). Есть три стратегии — стратегия фильтра (например, накопление признаков [en]), стратегия обёртывания (например, поиск согласно точности) и стратегия вложения (выбираются признаки для добавления или удаления по мере построения модели, основанной на ошибках прогнозирования). См. также задачи комбинаторной оптимизации.

В некоторых случаях анализ данных, такой как регрессия или классификация, может быть осуществлён в редуцированном пространстве более точно, чем в исходном пространстве [3].

Проекция признаков[править | править код]

Проекция признаков преобразует данные из пространства высокой размерности к пространству малой размерности. Преобразование данных может быть линейным, как в методе главных компонент (МГК), но существует большое число техник нелинейного понижения размерности [en] [4] [5]. Для многомерных данных может быть использовано тензорное представление для снижения размерности через полилинейное обучение подпространств [en] [6].

Пропустил текст с Вашими пояснениями - исправляюсь.

У меня сразу возникает ряд вопросов:

1. Как получить результат отбора признаков с их преобразованием в виде каких либо правил для отдельного применения в коде?

2. Может есть возможность визуализировать отобранные признаки и их преобразование - через дерево или ещё как?

3. Пробовали эти стратегии отбора признаков? 

Метод отбора признаков пытается найти подмножество исходных переменных (которые называются признаками или атрибутами). Есть три стратегии — стратегия фильтра (например, накопление признаков [en]), стратегия обёртывания (например, поиск согласно точности) и стратегия вложения (выбираются признаки для добавления или удаления по мере построения модели, основанной на ошибках прогнозирования). См. также задачи комбинаторной оптимизации.

В некоторых случаях анализ данных, такой как регрессия или классификация, может быть осуществлён в редуцированном пространстве более точно, чем в исходном пространстве [3].

mytarmailS:

То что мы вчера и делали

Снижение размерности[править | править код]

Для наборов данных высокой размерности (то есть с числом размерностей больше 10), снижение размерности обычно осуществляется перед применением метода k-ближайших соседей (англ. k-nearest neighbors algorithm, k-NN) с целью избежать эффект проклятия размерности [16].


Преимущества снижения размерности[править | править код]

  1. Оно уменьшает требуемое время и память.
  2. Удаление мультиколлинеарности улучшает скорость модели машинного обучения.
  3. Проще представить данные визуально, если свести к очень низким размерностям, таким как 2D или 3D.

А мне по коду показалось, что кластеризация была отдельно, построение проекции отдельно, а потом мы просто подали результаты кластеризации для цветовой градации при отрисовки - нет?

 
mytarmailS:

он применял t-sne (вроди) но это неважно, ну да придумали, и это работает и отлично работает но не для рынка, как и все остальное, загрузи любой дата сет с интернета и увидишь что вещь работает отлично но...

Но можно сделать выводы : кластера создаются устойчивые и не меняются но они не резонируют с прибылью, целевая резонирует с прибылью но гуляет по кластерам, наверное потому что каждая целевая это отсебятина а вот кластер это объективная реальность .  Щас буду тренировать без учителя, хочу пробовать распознавать паттерны по аналогам из истории но не по ценам а по umap как и задумывал с самого начала.

Так как Вы их разметку получите на истории для классификации? И потом, ну распознали, а что дальше? На днях я распределял по 4 кластерам поиск целевых... разве что менять целевую от кластера к кластеру. В общем надо понимать, почему в разные кластеры залетели строки - проанализировать логику, если она есть и сопрежена с рынком.

 
Aleksey Vyazmikin:

Пропустил текст с Вашими пояснениями - исправляюсь.

У меня сразу возникает ряд вопросов:

1. Как получить результат отбора признаков с их преобразованием в виде каких либо правил для отдельного применения в коде?

2. Может есть возможность визуализировать отобранные признаки и их преобразование - через дерево или ещё как?

3. Пробовали эти стратегии отбора признаков? 

4. А мне по коду показалось, что кластеризация была отдельно, построение проекции отдельно, а потом мы просто подали результаты кластеризации для цветовой градации при отрисовки - нет?


1. Это тоже самое что хотеть 100к цен закрытия описать правилами для  отдельного применения в коде

2. признаки получаются в виде функций со всеми вытекающими

3. кое что пробовал, размерность снижает, качество не повышает, но все равно круто можно например 10к признаков сжать до 500 без потери качества, как по мне это оч. круто, или до 50 с приемлемой потерей.

4. так и было,  мы сначала снижали размерность потом кластеризировали, тут так и написано - ----- Для наборов данных высокой размерности (то есть с числом размерностей больше 10), снижение размерности обычно осуществляется перед применением метода k-ближайших соседей

 
mytarmailS:


1. Это тоже самое что хотеть 100к цен закрытия описать правилами для  отдельного применения в коде

2. признаки получаются в виде функций со всеми вытекающими

3. кое что пробовал, размерность снижает, качество не повышает, но все равно круто можно например 10к признаков сжать до 500 без потери качества, как по мне это оч. круто, или до 50 с приемлемой потерей.

4. так и было,  мы сначала снижали размерность потом кластеризировали, тут так и написано - ----- Для наборов данных высокой размерности (то есть с числом размерностей больше 10), снижение размерности обычно осуществляется перед применением метода k-ближайших соседей

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

2. Это хорошо.

3. Вероятно, что высокая корреляция между предикторами, в том числе после их преобразования? Список выбывших предикторов получить можно или они не выбывают а сливаются в группы просто - не могу понять.

4. Может я код неверно понимаю или не то кластеризовал, выложу повторно

#way <- "F:\\FX\\R\\tree_classification_2019_fS_Eks_29\\Test_Pred_ALL_01.csv"  # ваш путь
way <- "F:\\FX\\R\\2020_04_11_Pred_New_Full\\Pred_New_Full.csv"  # ваш путь

dt <- read.csv(file = way,header = T,sep = ";") # читаем файл

target <- dt$Target_100 # целевую в отдельную переменную

dt <- dt[, ! colnames(dt)  %in% 
           #           c("Target_100_Buy","Target_100_Sell",
           #             "Time","Target_100")  ] # удаляем не нужные колонки
                      c("Target_100")  ] # удаляем не нужные колонки

km <- kmeans(um$layout, centers = 4)           

# роскоментируем и Устанавливаем нужные пакеты после чего эту строку можно удалить
#install.packages(c("rgl", "car" , "umap"))



# про umap
#https://cran.r-project.org/web/packages/umap/vignettes/umap.html
#https://github.com/ropenscilabs/umapr

library(umap)
um <- umap(dt,n_components=3)   
# n_components=3  во сколько измерений уменьшаем данные, можно 100 можно 1
# можно 333, но нам для 3д надо трех мерное пространство поетому у нас n_comp=3
um.res <- um$layout # наши три вектора выход 



#тут все настройки по пакету  car
# http://www.sthda.com/english/wiki/amazing-interactive-3d-scatter-plots-r-software-and-data-visualization
library(car)  # 3d

target <- as.factor(target)  #  target нужен для того чтобы окрасить точки в цвет целевой

scatter3d(x = um.res[,1], 
          y = um.res[,2], 
          z = um.res[,3],
          groups = as.factor(km$cluster),
          grid = FALSE, 
          surface = FALSE,
          ellipsoid = TRUE,
            bg.col = "black")


write.csv(km$cluster, file = "F:\\FX\\R\\2020_04_11_Pred_New_Full\\Pred.csv", sep = ";",row.names = F,col.names = T)
 
Aleksey Vyazmikin:

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

2. Это хорошо.

3. Вероятно, что высокая корреляция между предикторами, в том числе после их преобразования? Список выбывших предикторов получить можно или они не выбывают а сливаются в группы просто - не могу понять.

4. Может я код неверно понимаю или не то кластеризовал, выложу повторно

1. тогда я до сих пор не понял

3. после преобразования коррелированых признаков быть не может. Да можно сказать что они сливаются в другие структуры (признаки) но уже без избыточности 

4. 

dt <- dt[, ! colnames(dt)  %in% 
           #           c("Target_100_Buy","Target_100_Sell",
           #             "Time","Target_100")  ] # удаляем не нужные колонки
                      c("Target_100")  ] # удаляем не нужные колонки

 это все одно выражение , нельзя внутри него коментировать )))

 
mytarmailS:

1. тогда я до сих пор не понял

3. после преобразования коррелированых признаков быть не может. Да можно сказать что они сливаются в другие структуры (признаки) но уже без избыточности 

4. 

 это все одно выражение , нельзя внутри него коментировать )))

1. Что тут непонятного - у нас есть наши предикторы, которые мы знаем как воспроизвести, потом происходит преобразование их по неким правилам и получаются новые предикторы, которые рассчитываются уже по конкретным правилам, которые возникли при преобразовании и которые можно применять на любую изначальную выборку. Так вот, мне и нужно эти получившиеся правила сохранить в отдельный файл, что бы преобразовывать строку при появлении нового бара в терминале - т.е. мне нужна автономность от R.

3. Я говорю о том, что они были до преобразования имели высокую корреляцию, за счет этого и значительное сокращение. А вот сливаются или нет - надо проанализировать.

4. У меня R не ругается и все работает, но по сути то вопроса - построение модели и кластеризация не связаны же.

 
mytarmailS:

Вот выгрузил umap компоненту одну, сжал 2500 признаков в один ряд, с потерей дикой конечно но все равно для тестов само то

Вдумайтесь вот этим одним рядом я алгоритм описал 2500 признаков с потерей +- 10%

Вот и расскажите, как их выгружать то, эти компоненты то :)