Марат
Марат личный блог
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 применительно к анализу временных рядов ??
    Ну, вы хотя бы написали какой именно ряд (инструмент) исследуете, где зависимость то ищите ?
    Если хотите, то можем пообсуждать… Вы с какой целью вейвлет преобразование применяли?
  • ch5oh
    31 октября 2020, 00:07
    В чем делаете вейвлет-преобразование?
  • Тимофей Мартынов
    31 октября 2020, 15:29
    плюсанул пост!
    Люблю когда люди не просто пишут отсебятину, а делятся результатами своих исследований!
  • alexKa
    31 октября 2020, 16:51
    Где то у вас ошибка, вейвлет преобразование для таких графиков не может выглядеть одинаково. Особенно странно выглядят лучи, который из верхних углов расходятся. Как будто вы координаты местами перепутали при вызове функции

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

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