Блог им. afecn19

ML - to be or not to be. Part 3.

Оценки для RF получили, под капот заглянули, хотелось бы теперь и ручками все проверить-посмотреть. Тем более что косяк у RF есть, он единственную смысловую фичу ставил не в вершине дерева, а только второй а порой и третьей после случайно сгенерированной. То есть примерно половина событий сразу криво отсекалось.
  Выгрузил в excell  сгруппировал и получил примерно такое:

Названия строк

 Коли

   target

1

40861

0,52

-1

355

0,53

Общий итог

41216

0,52


  А это, кто не понял-крах! Это как нейросетка которая в качестве прогноза завтрашней цены показывает последнюю цену из теста. Вот и здесь та же история-RF просто 40861 раз из 41216 (99% случаев) спрогнозировал 1, потому что единица в выборке встречалась в 52% случаях. То есть RF поступил как поц на рынке, который увидел что рынок в среднем чаще растет и решил постоянно ставить на рост, при том что у меня был зашита вполне конкретная зависимость. 
  Но горевать не будем, потому что насколько убого себя показал RF, настолько блестяще показал себя GradientBoostingClassifier:

Названия строк

 Коли

   target

1

27818

0,53

-1

13398

0,50

Общий итог

41216

0,52

 
Сразу видно что GradientBoosting тупо не ставит постоянно на единичку, он явно что то нащупал. С дополнительной разбивкой по дням недели:

Названия строк

 Коли

   target

1

27818

0,53

1

4891

0,49

2

4947

0,50

3

4739

0,49

4

5017

0,51

5

8224

0,60

-1

13398

0,50

1

3363

0,51

2

3259

0,50

3

3406

0,50

4

3363

0,50

5

7

0,43

Общий итог

41216

0,52

 
Видно что GradientBoosting четко отнес все пятницы к событиям 1 (8224 раза против 7), а все остальные дни недели оценил как 60 на 40 в пользу события 1. Верно было бы если он оценил 50 на 50, но по сравнению с идиотом RF это огромный прогресс. Если взять порог в >55%, то получится еще красивей: 

Названия строк

           Коли

1

7053

2

1

4

2

5

7050

Общий итог

7053


  То есть с таким порогом у нас точность прогноза составит 99,5% пр полноте 85,72%. То есть мы выловили 85,72% осмысленных событий, и при этом делая прогноз, были точны в 99,5% случаев. Можно констатировать что GradientBoosting  без особых настроек выловил практически все. А вот RF запутался в 100 случайных фичах и делал наивные прогнозы.  Думаю именно в этом причина того что RF, на реальных данных и с осмысленными фичами, показавший себя лучше GradientBoosting, при засланных казачках потерялся и не смог решить заданную ему головоломку. Если помочь RF, и уменьшить число рандомных фичей и использовать порог, то он оживает и показывает вразумительные результаты.

to be continued…
★6
7 комментариев
По логике, правильно в пятницу лонг, в остальные дни аут. А я такого что-то не вижу!
Врут все пациенты. (доктор Хауз).
avatar
Марат, здравствуйте, есть пара вопросов, рейтинга не хватает в ЛС написать, можете почтой поделиться?

Буду благодарен
avatar

Dmitriy Kiselev, так почему бы не спросить здесь, может кому еще интересно будет

avatar

Я пишу (пытаюсь) диплом на тему «Методы анализа исторических данные для прогнозирования временных рядов на фондовом рынке». Тема для меня очень сложная, но я пытаюсь, ибо интересно. Как и полагает, начал со структуры, выделил интересные методы и среди них самые сложные — нейросетки, ансамбли модулей на Python и аддитивные модели на Python. Если честно, то я пока не вдавался в подробности, так как начал пока с классических математических и эконометрических методов, но черт, очень хочу и эти, более сложные и на практике более полезные методы прогнозирования. 

И тут я натыкаюсь в поисковике на Вас, смотрю на даты и понимаю, что у меня даже есть шанс получить фидбэк. У меня вопросов на самом деле много, но главный только один. Имеет ли смысл мне туда суваться? Это сэкономит огромное количество времени и сил, напрасно потраченных. Если про себя, то я практик, сам торгую уже 2 года, внутри дня. То есть я понимаю, что такое фонда и с чем это едят. И параллельно изучаю Python по Лутцу, но там успехи такие себе, это оказалось сложнее, чем я планировал.

Есть, черт, огромнейшее желание в этом всем разобраться, но реально ли в этом всем разобраться, скажем так за 3 месяца? Насколько должен быть «профессионалом» человек, который сможет по различным туториалам и с применением чужого кода все это сделать?

P.S. Если да, то на какие модели стоит обратить внимание? 

avatar
Dmitriy Kiselev, я 3 месяца назад не знал что такое ML, не знал ни один язык программирования (да и сейчас наверно не знаю, но могу юзать Python для настройки моделей, в режиме копипаста), и образование у меня гуманитарное, никакими особыми умственными талантами не страдаю. Такой мой вам ответ на вопрос можно или нет за 3 месяца. Можно, особенно если не расстекаться по древу. Насчет стоит или нет это зависит что именно вы хотите. Если хотите загнать в нейросетку сырые котировки и получить что то стоящее-по моему это бред. А вот если вы хотите сберечь уйму своего ручного труд в поиске стоящей стратегии для торговли на фондовой бирже-то это да и очень даже. И собственно я и показывал в своих постах, на примере сгенерированного DataFrame, с 1 настоящей фичей и 100 рандомными, что тот же RF и градиентный бустинг смогет: найти эту единственную стоящую фичу или фичи, указать на степень ее значимости, а в случаи RF еще и указать на то значение которая фича должна принимать чтобы был сделан тот или иной прогноз. То есть сбывается мечта всех бездельников-за вас все обсчитывать и искать будет компьютер, а за вами написание грамотного кода. Ну а вообще если вы хотите как то скооперироваться, то я только за, в этом деле чем больше народа тем лучше, потому что группа из нескольких человек найдет мифическую чашу грааля на рынке в разы быстрей чем одиночка
avatar
Марат, как много я хочу, где бы взять на этом время и сил, ведь нет точного пути как и что нужно делать, у каждого он свой. С чего начать каждый решает сам, так или иначе, опыт в данном случае куда более важен, чем больше ты изучаешь рынок, различные средства анализа, тем ближе ты к своей цели, пусть даже она будет достигнута совершенно другими средствами и другим путем. За что я люблю и ненавижу рынок, так это то, что порой он так глубоко в говно тебя окунает, что не все смогут из него выбраться, кому то не хватает морали, кому то характера, кто то привык опускать руки, а кому то оно и не особо нужно в силу финансового состояния. Выбираются сильнейшие, те, что хоть что то делает и изучает. И конечно, все эти ТА, и прочее ну совершенно не тот путь, а вот какой тот, я пока не знаю. Вот и решил взять эту тему, если разберусь, то и для себя хорошо и диплом сильный будет. Мб и возьмет какой нибудь брокер структурные продукты продавать пенсионерам и студентам)



А если на полном серьёзе. Я наверное на таком этапе в торговле, когда понимаешь, что ты просто тупое дно, которое жмякает на кнопки случайным образом (на самом деле нет). Да, есть стратегии, да, есть вещи, которые работают, но количество и качество случайных сделок, больше и хуже соответственно, нежели по ТС. Осознаешь, что нужно разбираться не только в графиках и рисунках на них. Поэтому если это реально будет под силу, то я конечно же за это возьмусь, и спасибо вам, за эти посты, я уверен, они мне очень помогу в анализе и построении своих моделей.



А вот что насчёт скооперироваться, то не хочу воровать у вас идею, я и не против, только за, да вот знаний у меня пока нет в этой сфере. Если вы торгуете нефтью, то тогда речь может действительно зайти о чем то более интересном и тогда я всеми руками за, там я буду знать, что свой вклад я смогу внести
avatar
Марат, но скажу так, нейронка не должна быть единым инструментом, это всегда должна быть совокупность различных средств. Есть теория хаоса и фрактальный анализ. Вот эта тема тоже интересна для изучение, правда сложна до безумия, нужен ни один год, чтобы ко всему этому придти. При чем проблема даже не в том, чтобы все это понять, а как это реализовать в таком виде, чтобы это было применимо к рынку.
avatar

теги блога Марат

....все тэги



UPDONW
Новый дизайн