Ошибки, баги, вопросы - страница 3635

 
Artyom Trishkin #:
Учитель с учениками. 

Нет, это уже написанный текст, а не действие выполняемое в текущий момент и совместно, по этому такая форма глагола не уместна.

 
Andrei Sokolov #:

Нет, это уже написанный текст, а не действие выполняемое в текущий момент и совместно, по этому такая форма глагола не уместна.

Напишите тогда сами. Грамотно и достойно изучения. 

Upd. Описывается процесс, который у каждого нового читатели происходит "здесь и сейчас". Такая форма описания лучше подходит для вовлечения читателя в процесс изучения.

Это разговорный жанр, а не сухой академический стиль.

За сим откланяюсь - оффтоп это.

 
Открыл последнюю статью (переведенную).

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


Обзор торговой стратегии

Обратим внимание на прогнозирование валютной пары NZDJPY. Мы хотим алгоритмически изучить торговую стратегию на основе данных по символу, которые соберем из терминала MetaTrader 5. Будучи людьми, мы можем быть по своей природе склонны выбирать торговые стратегии, соответствующие нашим собственным убеждениям и интересам. Модели машинного обучения также предвзяты. Предвзятость модели машинного обучения — это степень, в которой нарушаются предположения, сделанные моделью. Наша торговая стратегия будет основана на ансамбле из двух моделей ИИ. Первая модель будет обучена прогнозировать будущую цену закрытия пары NZDJPY через 20 минут. Вторая будет обучена предсказывать величину ошибки в прогнозе, сделанном первой моделью. Этот метод известен как стекинг (stacking). Мы надеемся, что, объединив две модели, мы сможем преодолеть предвзятость, и этого будет достаточно для получения более высоких результатов.



Обзор методологии

Мы извлекли около 9000 строк рыночных данных M1 по паре NZDJPY из терминала MetaTrader 5 с помощью настроенного скрипта MQL5. Мы создали 2D- и 3D-диаграммы рассеяния рыночных данных. Однако нам не удалось выявить каких-либо заметных взаимосвязей в данных. Мы также выполнили разложение временных рядов на основе набора данных и смогли выявить четкую тенденцию к снижению и наличие сильных сезонных эффектов в данных.

Затем наши данные были разделены на обучающие и тестовые наборы. На обучающей выборке был подобран и оценен набор из 15 различных моделей. Регрессор стохастического градиентного спуска (Stochastic Gradient Descent, SGD) оказался лучшей моделью в группе в плане эффективности.

Впоследствии, когда мы проанализировали показатели важности признаков, мы обнаружили, что максимальная цена оказалась наиболее информативным предиктором, который у нас был для прогнозирования будущей цены закрытия пары NZDJPY. Максимальный цена (High) показала наилучшее значение взаимной информации (Mutual Information, MI). Кроме того, мы использовали реализацию алгоритма рекурсивного исключения признаков (Recursive Feature Elimination, RFE) в scikit-learn. Все имеющиеся у нас предикторы были признаны важными алгоритмом RFE. Однако, как мы увидим в ходе нашего обсуждения, сам факт существования взаимосвязи не гарантирует, что мы успешно ее зафиксируем и смоделируем.

Определив наиболее эффективную модель, мы приступили к настройке ее параметров. Обычно в наших обсуждениях после настройки параметров мы приступаем к тестированию на переобучение, сравнивая производительность нашей настроенной модели с производительностью модели по умолчанию. Однако существует множество различных способов проверки переобучения. В этой статье мы проведем проверку на переобучение, проанализировав остатки (residuals) нашей модели. Мы наблюдали высокий уровень корреляции между остатками нашей модели и ее задержками. Обычно остатки модели, которая достаточно хорошо обучена, не должны иметь корреляции. Таким образом, это навело нас на мысль, что наша наиболее эффективная модель могла неэффективно обучиться или что существуют другие данные, которые могут помочь нам объяснить нашу цель, но мы не включили эти данные.

После этого мы записали остатки нашей модели на обучающем и тестовом наборах. На этом этапе мы не подогнали модель под тестовый набор. Затем мы провели перекрестную проверку нашего набора из 15 моделей на остатках обучения нашего SGD-регрессора. Нашей лучшей моделью оказалась регрессия лассо, однако в качестве возможного решения мы выбрали третью по эффективности модель — глубокую нейронную сеть (Deep Neural Network, DNN). Мы решили сделать это, потому что гибкость, которую предоставляет нам глубокая нейронная сеть, дает нам возможность лучше настраивать ее в соответствии с данными в отличие от ограниченного числа параметров настройки лассо.

Мы настроили наш DNN-регрессор для прогнозирования остатков нашего SGD-регрессора в двухэтапном процессе, что привело к получению двух уникальных моделей. Сначала мы выполнили 100 итераций случайного поиска по параметрам нашего регрессора DNN, таким образом создав первую модель. Наилучшие непрерывные параметры, которые мы определили, были использованы в качестве отправной точки для попытки неограниченной глобальной оптимизации с использованием алгоритма L-BFGS-B с ограниченной памятью, и именно так мы получили нашу вторую модель. Обе модели превзошли стандартный DNN-регрессор на невидимых проверочных данных. Более того, наша последняя модель оказалась наиболее эффективной, а это значит, что мы не тратили время на выполнение дополнительных шагов дважды.

Наконец, мы экспортировали обе наши модели в формат ONNX и приступили к созданию советника на базе ИИ, который научился исправлять собственные ошибки.

Самооптимизирующийся советник на языках MQL5 и Python (Часть IV): Стекинг моделей
Самооптимизирующийся советник на языках MQL5 и Python (Часть IV): Стекинг моделей
  • www.mql5.com
В статье мы продемонстрируем, как можно создавать торговые приложения на базе ИИ, способные учиться на собственных ошибках. Мы рассмотрим технику, известную как стекинг (stacking), при которой мы используем 2 модели для создания 1 прогноза. Первая модель, как правило, является более слабым обучающимся алгоритмом, а вторая - более мощной моделью, которая обучается на результатах более слабого алгоритма. Наша цель — создать ансамбль моделей, чтобы достичь более высокой точности.
 
Artyom Trishkin #:

Напишите тогда сами. Грамотно и достойно изучения. 

Upd. Описывается процесс, который у каждого нового читатели происходит "здесь и сейчас". Такая форма описания лучше подходит для вовлечения читателя в процесс изучения.

Это разговорный жанр, а не сухой академический стиль.

За сим откланяюсь - оффтоп это.

"Напишите тогда сами" - вообще-то я просил, а не брался указывать.

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

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

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

 
Andrei Sokolov #:

"Напишите тогда сами" - вообще-то я просил, а не брался указывать.

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

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

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

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

Повторю тогда: пишите сами. Лучше и качественнее. Что мешает?

Читайте только справку.

 
Artyom Trishkin #:

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

Повторю тогда: пишите сами. Лучше и качественнее. Что мешает?

Читайте только справку.

"сейчас "плюнули" практически в каждого" - не надо писать чего нет, и еще и обвинять меня в этом. Я однозначно указал что это имхо. 

"Повторю тогда: пишите сами" - тогда еще раз повторю - однозначно указано что это просьба/пожелание, или даже фидбек, но никак не указания. 

"Читайте только справку" - и мне настойчиво прошу не указывать, у нас нет отношений где это было бы уместно.

Почему вы так болезненно реагируете на обычный и не беспричинный фидбек?  Фидбек это нормально.

 
fxsaber #:
Открыл последнюю статью (переведенную).
Мы - это автор и его читатели. Ничего необычного.
 
Andrei Sokolov #:

Нет, это уже написанный текст, а не действие выполняемое в текущий момент и совместно, по этому такая форма глагола не уместна.

Почитайте другие учебники по кодингу, там тоже не редкость такой приём.
 
Andrei Sokolov #:

Из начала учебника по MQL5.

Кто все эти "мы"? 

Которые "узнаЕМ", когда "перейдЕМ".  

(FACEPALM) 

Пишите пограмотнее, пж. 

А где тут "просьба" или "обратная связь"?
Здесь явно обвинение в некомпетентности. На это указывает ваш "facepalm".
 
Andrei Sokolov #:

"Напишите тогда сами" - вообще-то я просил, а не брался указывать.

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

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

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


И обратите внимание - несколько программистов высказались в поддержку стиля изложения, где автор использует "мы". Думаете, они не читали других книг по кодингу?