Обсуждение статьи "Оценка и выбор переменных для моделей машинного обучения" - страница 4

 
JulInParis:

Привет, Влад,

Я пытаюсь повторить ваш пример шаг за шагом.

В разделе Входные данные, функция In(p=16) имеет дело с объектом цены. Каков его R-формат или класс (zoo, xts или dataframe) и как он выглядит (названия столбцов и т.д.). Без этой информации невозможно выполнить команду x <- In(p = 16) ...

С уважением.

Жюльен

Привет, Жюльен,

> class(price)
[1] "matrix"
> colnames(price)
[1] "Open"  "High"  "Low"   "Close" "Med"   "CO"

Я приложил снимок сессии. Откройте его в Rstudio и проводите эксперименты.

Удачи

Владимир

Файлы:
EURUSD30.zip  302 kb
 
Zhi Long Yang:
Большое спасибо автору статьи. Я только начал и столкнулся с проблемой. Я установил RStudio, а не Revolution R Open 3.2.1, как предлагает автор. Пакет "RandomUniformForests" ипакет "RoughSets" загрузились, но функция nearZeroVar() и функция findLinearCombos() вызываются некорректно. Пакеты "RandomUniformForests" и "RoughSets" были загружены, нофункция nearZeroVar() ифункция findLinearCombos() не работают должным образом, являются ли эти функции специфичными для Revolution R Open?

Revolution R Open (в настоящее время поддерживается Microsoft и переименована в MRO) - это улучшенная версия R. RStudio - это просто IDE, не сравнимая с R. Две упомянутые функции находятся в оригинальной статье автора. Две упомянутые функции четко обозначены как функции пакета caret в оригинальной статье автора. Кроме того, автор оригинальной статьи использовал русский язык, возможно, на английском еще можно общаться, а вот на китайском вроде бы можно.
 

Смотрите caret: :nearZeroVar () // caret::findLinearCombos ()

Удачи

 
Vladimir Perervenko:

Привет, Жюльен,

> class(price)
[1] "matrix"
> colnames(price)
[1] "Open"  "High"  "Low"   "Close" "Med"   "CO"

Я приложил снимок сессии. Откройте его в Rstudio и проводите эксперименты.

Удачи

Владимир


Уважаемые все,


Может ли кто-нибудь сказать мне, что означает -Dig--, определенная в ZZ функциональная переменная . Является ли она константой? Если да, то какое значение должно быть у этой константы?

 
hzmarrou :


Уважаемые все,


Кто-нибудь может мне сказать, что означает переменная -Dig--, определенная в функции ZZ . Является ли она константой? Если да, то какое значение должна иметь эта константа?

Я ответил вам в соседней ветке.
 
 

Здравствуйте, Владимир,


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




dz <- zz %>% diff %>% c(0,.)

...В конце концов, мы хотим обучить модель предсказывать БУДУЩЕЕ значение Зигзага, так какой смысл обучать модель, используя предикторы ( технические индикаторы ), которые суммируют рыночные котировки в конце дня N с целевым значением, которое является знаком разницы между значением Зигзага в день N и его значением N-1 (это то, что вы делаете после сдвига)? Разве мы не должны использовать знак разницы между значением Зигзага в день ( N+1 ) и значением Зигзага в день N вместо этого (т.е. нам не нужно было бы сдвигать)?

Я знаю, что я, должно быть, пропустил что-то очевидное в вашей методологии, но если бы вы могли потратить 5 минут, чтобы разъяснить мне это, я был бы очень рад.


С наилучшими пожеланиями.


Жюльен

 
JulInParis :

Здравствуйте, Владимир,


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




dz <- zz %>% diff %>% c(0,. )

...В конце концов, мы хотим обучить модель предсказывать БУДУЩЕЕ значение Зигзага, так какой смысл обучать модель, используя предикторы ( технические индикаторы ), которые суммируют рыночные котировки в конце дня N с целевым значением, которое является знаком разницы между значением Зигзага в день N и его значением N-1 (это то, что вы делаете после сдвига)? Разве мы не должны использовать знак разницы между значением Зигзага в день ( N+1 ) и значением Зигзага в день N вместо этого (т.е. нам не нужно было бы сдвигать)?

Я знаю, что я, должно быть, пропустил что-то очевидное в вашей методологии, но если бы вы могли потратить 5 минут, чтобы разъяснить мне это, я был бы очень рад.


С наилучшими пожеланиями.


Жюльен

Вопрос правильный. В статье есть опечатка. Должно быть так:

1. рассчитать входные данные

 x <- In(p = 16 ) 

2. вычислить цель

 out1 <- ZZ(ch = 25 )
 

> head(out1) zz sig [1,] 84.213 0 [2,] 84.199 -1 [3,] 84.185 -1 [4,] 84.171 -1 [5,] 84.157 -1 [6,] 84.143 -1 > tail(out1) zz sig [4995,] 89.3965 0 [4996,] 89.3965 0 [4997,] 89.3965 0 [4998,] 89.3965 0 [4999,] 89.3965 0 [5000,] 89.3965 0

3. Объединить x и out в данных. Где:

  • Удалите примеры, в которых sig == 0.
  • Создаем новую переменную СІаѕѕ (фактор)
  • Мы сдвигаем переменную Class на 1 бар в "будущее".
  • Удаляем переменную sig из набора

 data <- cbind(x, sig = out1[ , 2 ]) %>% tbl_df %>% 
   dplyr::filter(., sig != 0 ) %>%
  mutate(., Class = factor(sig, ordered = F) %>% dplyr::lead()) %>% 
  dplyr::select(-sig) %>% 
  na.omit() 

> data %>% str() Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 4944 obs. of 18 variables: $ DX : num 0.355 0.541 6.324 3.026 9.511 ... $ ADX : num 12 11.3 11 10.5 10.4 ... $ oscDX : num 0.303 0.427 5.012 2.459 -8.641 ... $ ar : num -18.8 -18.8 -18.8 -18.8 -12.5 ... $ tr : num 0.032 0.051 0.037 0.004 0.011 ... $ atr : num 0.0422 0.0432 0.0425 0.038 0.0348 ... $ cci : num -14.75 20.6 27.23 6.22 -33.27 ... $ chv : num 0.0422 0.03 -0.0439 -0.0456 -0.1172 ... $ cmo : num -16.3 -20.1 -26.5 -39.2 -40.7 ... $ sign : num -0.0137 -0.013 -0.0117 -0.0107 -0.0108 ... $ vsig : num -0.00352 0.00655 0.0132 0.01059 -0.00103 ... $ rsi : num 45.7 49.8 50 46.8 42.4 ... $ slowD : num 0.408 0.438 0.447 0.43 0.405 ... $ oscK : num 0.0137 0.039 -0.0116 -0.0427 -0.0322 ... $ SMI : num -18.2 -16.6 -15.8 -16.2 -17.1 ... $ signal: num -12.8 -13.6 -14 -14.5 -15 ... $ vol : num 0.01005 0.01004 0.00985 0.00975 0.00946 ... $ Class : Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 1 1 1 ... - attr(*, "na.action")=Class 'omit' Named int [1:34] 1 2 3 4 5 6 7 8 9 10 ... .. ..- attr(*, "names")= chr [1:34] "1" "2" "3" "4" ...

Далее по тексту.

Удачи

 

Существует большая проблема в применении сигнала зигзага в качестве целевой переменной.

В основе всех моделей лежат априори уже зигзагообразные точки (-1, 1), остальные точки с условием = 0 исключаются.

На практике вы не знаете, является ли временная точка точкой зигзага (-1, 1) или нет, и есть большая вероятность, что это точка с условием = 0, потому что невозможно различить два состояния (-1, 1) и (0).

Таким образом, для точки с условием 0 требуются те же вычисления и суждения. На этот раз обучающая модель и реальная модель будут иметь большое отклонение;

 
freewalk :

зигзагообразный сигнал в качестве целевой переменной очень проблематично применить.

В основу всех моделей априори положена уже зигзагообразная точка (-1, 1), остальные точки с условием = 0 исключаются.

На практике вы не знаете, является ли временная точка точкой зигзага (-1, 1) или нет, и велика вероятность, что это точка с условием = 0, поскольку невозможно различить два состояния (-1, 1) и (0).

Таким образом, для точки с условием 0 требуются те же вычисления и суждения. В этой точке обучающая модель и реальная модель будут иметь большое отклонение;

Нарисуйте простой график, иллюстрирующий числа (-1, 1 (0) ????.

Пожалуйста, внимательно прочитайте статью? И рядом с ней? И не знаете, как использовать ZZ?

Может быть, перевод не очень удачный?

Уточните точнее ваши комментарии, пожалуйста, может улучшить английский?