Скачать MetaTrader 5

Машинное обучение в трейдинге: теория и практика (торговля и не только) - страница 4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
СанСаныч Фоменко
7034
СанСаныч Фоменко  
Alexey Burnakov:

НС очень хорошо справилась.

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

Доказательств, что НС с чем-то справилась я не вижу.

Переобучение - всемирное зло в науке и в частности при построении модели.

Поэтому необходима ошибка для трех наборов:

  • набора обучения. Вполне подойдет то, как это понимает rattle (OOB, test, validation)
  • набор, который находится вне, в смысле по датам, набора обучения.
  • еще один набор, который находится вне, в смысле по датам, набора обучения. 

Последние два набора без перемешивания, так как они поступают в терминале, баз за баром. 

На всех трех наборах должна быть примерно одинаковая ошибка. При этом Вам придется зафиксировать набор предикторов, которые Вы берете при обучении модели. 

СанСаныч Фоменко
7034
СанСаныч Фоменко  
Alexey Burnakov:


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

Ваша идея, учитывать взаимодействие между предикторами - революция в статистике. До сих пор я считал, что взаимодействие между предикторами - это зло. Мало того, что сами предикторы обычно не стационарны, так еще мы пытаемся учитывать связи между этими не стационарными случайными процессами.

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

Alexey Burnakov
3011
Alexey Burnakov  
СанСаныч Фоменко:

Доказательств, что НС с чем-то справилась я не вижу.

Переобучение - всемирное зло в науке и в частности при построении модели.

Поэтому необходима ошибка для трех наборов:

  • набора обучения. Вполне подойдет то, как это понимает rattle (OOB, test, validation)
  • набор, который находится вне, в смысле по датам, набора обучения.
  • еще один набор, который находится вне, в смысле по датам, набора обучения. 

Последние два набора без перемешивания, так как они поступают в терминале, баз за баром. 

На всех трех наборах должна быть примерно одинаковая ошибка. При этом Вам придется зафиксировать набор предикторов, которые Вы берете при обучении модели. 

Давайте так. Не смотря на то, что это не входит в часть задания. Я выкладываю валидационную выборку, на которой следует прогнать обученную модель и замерить точность предсказания output.

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

Файлы:
Alexey Burnakov
3011
Alexey Burnakov  

Заложенная в данные закономерность:

 

Количество по полю input_19 output
input_1 input_3 input_5 input_7 input_9 input_11 0 1 сумма предикторов четность
1 1 1 1 1 1 143 6 ИСТИНА
1 1 1 1 1 2 100 7 ЛОЖЬ
1 1 1 1 2 1 121 7 ЛОЖЬ
1 1 1 1 2 2 119 8 ИСТИНА
1 1 1 2 1 1 114 7 ЛОЖЬ
1 1 1 2 1 2 124 8 ИСТИНА
1 1 1 2 2 1 105 8 ИСТИНА
1 1 1 2 2 2 102 9 ЛОЖЬ
1 1 2 1 1 1 101 7 ЛОЖЬ
1 1 2 1 1 2 131 8 ИСТИНА
1 1 2 1 2 1 122 8 ИСТИНА
1 1 2 1 2 2 114 9 ЛОЖЬ
1 1 2 2 1 1 111 8 ИСТИНА
1 1 2 2 1 2 98 9 ЛОЖЬ
1 1 2 2 2 1 123 9 ЛОЖЬ
1 1 2 2 2 2 112 10 ИСТИНА
1 2 1 1 1 1 128 7 ЛОЖЬ
1 2 1 1 1 2 114 8 ИСТИНА
1 2 1 1 2 1 111 8 ИСТИНА
1 2 1 1 2 2 126 9 ЛОЖЬ
1 2 1 2 1 1 143 8 ИСТИНА
1 2 1 2 1 2 95 9 ЛОЖЬ
1 2 1 2 2 1 108 9 ЛОЖЬ
1 2 1 2 2 2 117 10 ИСТИНА
1 2 2 1 1 1 112 8 ИСТИНА
1 2 2 1 1 2 132 9 ЛОЖЬ
1 2 2 1 2 1 92 9 ЛОЖЬ
1 2 2 1 2 2 134 10 ИСТИНА
1 2 2 2 1 1 110 9 ЛОЖЬ
1 2 2 2 1 2 114 10 ИСТИНА
1 2 2 2 2 1 120 10 ИСТИНА
1 2 2 2 2 2 108 11 ЛОЖЬ
2 1 1 1 1 1 109 7 ЛОЖЬ
2 1 1 1 1 2 133 8 ИСТИНА
2 1 1 1 2 1 99 8 ИСТИНА
2 1 1 1 2 2 115 9 ЛОЖЬ
2 1 1 2 1 1 123 8 ИСТИНА
2 1 1 2 1 2 116 9 ЛОЖЬ
2 1 1 2 2 1 131 9 ЛОЖЬ
2 1 1 2 2 2 119 10 ИСТИНА
2 1 2 1 1 1 96 8 ИСТИНА
2 1 2 1 1 2 120 9 ЛОЖЬ
2 1 2 1 2 1 111 9 ЛОЖЬ
2 1 2 1 2 2 99 10 ИСТИНА
2 1 2 2 1 1 132 9 ЛОЖЬ
2 1 2 2 1 2 110 10 ИСТИНА
2 1 2 2 2 1 93 10 ИСТИНА
2 1 2 2 2 2 106 11 ЛОЖЬ
2 2 1 1 1 1 100 8 ИСТИНА
2 2 1 1 1 2 127 9 ЛОЖЬ
2 2 1 1 2 1 127 9 ЛОЖЬ
2 2 1 1 2 2 101 10 ИСТИНА
2 2 1 2 1 1 119 9 ЛОЖЬ
2 2 1 2 1 2 120 10 ИСТИНА
2 2 1 2 2 1 99 10 ИСТИНА
2 2 1 2 2 2 106 11 ЛОЖЬ
2 2 2 1 1 1 133 9 ЛОЖЬ
2 2 2 1 1 2 97 10 ИСТИНА
2 2 2 1 2 1 100 10 ИСТИНА
2 2 2 1 2 2 116 11 ЛОЖЬ
2 2 2 2 1 1 119 10 ИСТИНА
2 2 2 2 1 2 118 11 ЛОЖЬ
2 2 2 2 2 1 102 11 ЛОЖЬ
2 2 2 2 2 2 128 12 ИСТИНА
Dr. Trader
4052
Dr. Trader  
СанСаныч Фоменко:

Доказательств, что НС с чем-то справилась я не вижу.

Нейронка эту задачу решила, в атачменте лог c кодом из Rattle. В коде пара изменений при вызове нейронки - я увеличил максимальное число итераций, и убрал связи которые идут с инпута сразу на выход минуя средний слой (skip=TRUE). А то эти два ограничения всё портят.

Я сделал валидацию на новом файле, ошибки в обоих случаях почти 0% (есть одна единственная ошибка при валидации из второго файла).

Но поскольку НС как чёрный ящик, логику решения узнать нельзя. Можно посмотреть на веса, определить среднее абсолютное значение к каждому входу, и нарисовать диаграмму. И узнать что 1, 3, 5 ,7, 9, 11 важнее остального. Но при этом остальные входы тоже почему-то используются, нулевых весов нигде нету. То есть получается наоборот, сначала проходит обучение, затем мы можем определить важные входы.

Файлы:
Alexey Burnakov
3011
Alexey Burnakov  
Dr.Trader:

Нейронка эту задачу решила, в атачменте лог c кодом из Rattle. В коде пара изменений при вызове нейронки - я увеличил максимальное число итераций, и убрал связи которые идут с инпута сразу на выход минуя средний слой (skip=TRUE). А то эти два ограничения всё портят.

Я сделал валидацию на новом файле, ошибки в обоих случаях почти 0% (есть одна единственная ошибка при валидации из второго файла).

Но поскольку НС как чёрный ящик, логику решения узнать нельзя. Можно посмотреть на веса, определить среднее абсолютное значение к каждому входу, и нарисовать диаграмму. И узнать что 1, 3, 5 ,7, 9, 11 важнее остального. Но при этом остальные входы тоже почему-то используются, нулевых весов нигде нету. То есть получается наоборот, сначала проходит обучение, затем мы можем определить важные входы.

Так и есть . Остальные входы это шум. Вот минус многих методов - шумовые переменные не удаляются полностью.

Возможно, надо учить дольше и с меньшим шагом.

Но в целом, браво. НС решила сложную задачу.
Dmitry Fedoseev
47056
Dmitry Fedoseev  
СанСаныч Фоменко:

Доказательств, что НС с чем-то справилась я не вижу.

Переобучение - всемирное зло в науке и в частности при построении модели.

Поэтому необходима ошибка для трех наборов:

  • набора обучения. Вполне подойдет то, как это понимает rattle (OOB, test, validation)
  • набор, который находится вне, в смысле по датам, набора обучения.
  • еще один набор, который находится вне, в смысле по датам, набора обучения. 

Последние два набора без перемешивания, так как они поступают в терминале, баз за баром. 

На всех трех наборах должна быть примерно одинаковая ошибка. При этом Вам придется зафиксировать набор предикторов, которые Вы берете при обучении модели. 

Разве очевидное нуждается в доказательстве? В процессе обучения веса входов несущих противоречивые данные снизились, т.е. можно сказать, что заблокировалось поступление противоречивых данных.

Проблема переобучения в данном случае отсутствует, потому-что обученную сеть не используют ни для каких других целей. 

Вот насколько целесообразно использовать такой метод, вот это - вопрос. Не тяжеловата ли артиллерия. 

Alexey Burnakov
3011
Alexey Burnakov  
Dmitry Fedoseev:

Вот насколько целесообразно использовать такой метод, вот это - вопрос. Не тяжеловата ли артиллерия. 

Можете попробовать иной способ. Но мне кажется средство соответствует проблеме.
Dmitry Fedoseev
47056
Dmitry Fedoseev  
Alexey Burnakov:
Можете попробовать иной способ. Но мне кажется средство соответствует проблеме.
Справляется с задачей, и хорошо справляется. Но всегда интересно, а может есть, что эффективней и проще. 
Alexey Burnakov
3011
Alexey Burnakov  
Dmitry Fedoseev:
Справляется с задачей, и хорошо справляется. Но всегда интересно, а может есть, что эффективней и проще. 
Пока не попробуете не поймёшь. Обычные включения и исключения не сработают. А что еще?
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий