Марат
Марат личный блог
30 октября 2020, 20:08

CNN+wavelet

Займемся бессмыслицей. Никакого прогнозирования, просто попробуем методами вейвлет преобразований и CNN ответить на вопрос — есть или нет разница в цикличности при росте фишки и падении? Эллиот чертил 3 волны вверх и 2 вниз. Давайте почертим и мы.
Данные я взял недельные, от понедельника до пятницы, но с разбивкой по 15 минуткам, итого ряд в 175 элементов. Судя по прошлым результатам, мизерная длина, и никакой цикличности там нет. Но...«а вдруг?!». Ну а разбивка недельная, в надежде уловить недельную цикличность, все таки понедельник это «день тяжелый», пятница это «тяпницы», четверг это маленькая пятница. В общем каждый день недели уникален и помню какие то корреляции/антикорреляции даже были, вроде пятница и понедельник шли вразрез, а четверг и пятница шли вместе. Впрочем точно не помню.
Каждому ряду в 175 отчетов я присвоил лейбл (1 рост, 0 падение). Ряд прогнал через вейлет преобразование, получив квадратную картинку. Все это добро загнал в CNN и стал ждать чего нейросеть намутит. В теории, после вейвлет преобразования, на полученной картинке, не должно быть никакого намека на то росла фишка или нет. Следы наличия тренда присутствуют, но какого именно не указывается. Хотя это не точно. А вот точно что должны быть следы цикличности, и если при росте и падении цикличность разная то точность классификации должна быть больше 0,5… Хотя это не точно.  Ну нам жалко чтоли, попробовать? Пуская нейросетка крутит колесико. Крутило колесико нейросеть долго....:

CNN+wavelet
Более 200 эпох нейросетка вообще ничего цеплять не могла, даже на трейне, болтаясь практически вокруг 50% угадайки. Тормознулось обучение на 7 часу обучения, по валидации. 

А это матрица, так хорошо знакомая всем машинленингистам пишущих на пайтон:
CNN+wavelet
По диагонали угаданное. В общем на тесте угадали 66,5%, на валидации 56%, а на тесте, что нас интересует больше всего — 60%.

То есть как бы и правда при падении и при росте частоты разные?! И мы типа это выловили?! Может быть, но это не точно. Смущает что картинки вейвлет преобразования выглядят жутко похожими:

CNN+wavelet

То есть преобразовывают в частоты разные графики, а на человеческий взгляд, картиночки выглядят одинаково. И визуально никаких периодов не выявлено. Но это на человеческий взгляд, если посмотреть на матрицы с цифрами, то можно увидеть что они разные, то есть формы на рисуночках одинаковые, но цифры за ними разные стоят.
Лейблы я ставил только два: рост и падение, а сами понимаете бывает рост на +0,1% и бывает падение на -0,1%, что практически одинаково. Поэтому если использовать оценки уверенности нейросети то получим более интересную картинку:
CNN+wavelet
Как видим если убрать случаи, когда нейросеть уверенно в своем решении  менее чем на 55% («50/50»), то как раз получим случаи со слабо выраженной динамикой. И наоборот, когда сеть уверенна в прогнозе на более чем 57,5%, то там и точность 67,87 (для роста) и 100-23,9  (для падения) и движение в предсказанную сторону более выраженное.

Как то так.

12 Комментариев
  • Alexey
    30 октября 2020, 21:36
    Браво, аплодирую стоя. Мне кажется ваш пост — издевательство над головами местной публики )) 
    А вы что вообще хотели показать? Как круто вы овладели методами machine learning применительно к анализу временных рядов ??
    Ну, вы хотя бы написали какой именно ряд (инструмент) исследуете, где зависимость то ищите ?
    Если хотите, то можем пообсуждать… Вы с какой целью вейвлет преобразование применяли?
      • Alexey
        30 октября 2020, 22:18
        Марат, 
        уж простите меня, ваш пост начался с утверждения, что вы занялись бессмыслицей. И после этого утверждения сплошная бессмыслица у вас.
        Вот, например, вы пишите: «есть или нет разница в цикличности при росте фишки и падении». Тут вам следовало пояснить разницу в чем вы ищите: в длине цикла или еще каких то характеристиках. Далее вам следовало пояснить, где вы цикл то ищите? Сам рост не может быть цикличным, а вот в временном ряду, который растёт, может быть цикличная компонента. Аналогично про падение. Вы представляете временной ряд как сумму компонент, одна их которых цикличная. Верно или у вас другая логика ?
        Название инструмента, который вы исследуете нужно писать обязательно. Т.к. поведение разных инструментов разной. Нужно четко указать какие даты временных рядов вы берете. Во-первых, интересно. А, во-вторых, кто-то может захотеть повторить ваши исследования.
        Но самое спорное, это применимость ко всему этому CNN. Нет, ну если очень хочется, то применить можно.
        Вообще правильные статьи на такие темы имеют достаточно стандартную структуру и должны содержать определения и допущения на хорошем математическом языке.

  • ch5oh
    31 октября 2020, 00:07
    В чем делаете вейвлет-преобразование?
  • Тимофей Мартынов
    31 октября 2020, 15:29
    плюсанул пост!
    Люблю когда люди не просто пишут отсебятину, а делятся результатами своих исследований!
  • alexKa
    31 октября 2020, 16:51
    Где то у вас ошибка, вейвлет преобразование для таких графиков не может выглядеть одинаково. Особенно странно выглядят лучи, который из верхних углов расходятся. Как будто вы координаты местами перепутали при вызове функции
  • Replikant_mih
    31 октября 2020, 20:11

    1. Почему займемся бессмыслицей? Результат вроде же норм). Или это из-за этого вэйвлета? Я просто не до конца понял, что это за хренована, видимо обучение после преобразования не позволяет это использовать в торговле?

     

    2. А я когда недавно с нейросетями игрался останавливался на 1-3 эпохах, не до конца понимал, как они работают. У меня получалось, что лучшие результаты после 1-2, на 3-й уже начинают падать, возможно это какие-то локальные больше колебания, надо попробовать подольше погонять, дороговато, конечно, по времени на CPU нейросети обучать).

     

    3. По табличке с пробами — странное какое-то представление данных. Я делаю так (и это намного наглядней и как-то логичней) — определяю пороги вероятностей и и считаю результаты общие для шорта и лонга, т.е. если порог 0.55, например, я смотрю долю верно спрогнозированных шортов и лонгов в общем (естественно, я смотрю лонги, по которым нейросеть на 0.55+ уверена, что это лонг, а шорты те, где нейросеть на 0.55+ уверена, что шорт).

  • Replikant_mih
    31 октября 2020, 20:14
     Щас глянул на график целевой метрики — какой-то он не здоровый по-моему)), по трейну белый шум, по отложенной стабильный рост, может подписи местами перепутаны просто)) — это было бы реалистичней).
      • Replikant_mih
        31 октября 2020, 20:28
        Марат, С поведениях на первых 200 эпохах тоже какая-то очень странная история по-моему)), я в нейросетях ещё не супер-спец, но это тоже выглядит очень странным моментом.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн