Eugene777
Eugene777 личный блог
21 мая 2014, 17:01

Немного извратов с Random Forest в R

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

И так, возьмем 1000 дней AAPL, 20 внутридневных метрик и попробуем обучить алгоритмы случайного леса и ближайших соседей и прогнать его на последних 120 днях. 

Результат для числовых значений результата:
Немного извратов с Random Forest в R 

Теперь формализованные значения:
Немного извратов с Random Forest в R 
Выглядит хуже, почти нет разбросам в результатах работы ближних соседей и RF.

Очень хорошо оценить эффективность обучения можно с помощью коэффициента корреляции между нашими результатами и B&H.


А теперь сделаем следующую вещь. Обучим 50 случайных лесов на случайных 80 процентах данных InSample, проверим на оставшихся 20%, и посмотрим, что получилось для каждого из них на наших 120 днях.

Немного извратов с Random Forest в R 


 Теперь это можно проанализировать. Среднее значения для прогонки InSample — 68, OutOfSample — 55. Не стоит сравнивать эти значения между собой, так как объем данных отличается, но это значит, что в среднем леса в произвольной выборке были прибыльными, и наш OutOfSample в среднем тоже оказался прибыльными. 

Теперь посмотрим коэффициент корреляции между этими  значениями. Он равен -0.13, что значит, что зависимости результатов прогнозирования OutOfSample от результата пронозирования InSample нет.


А теперь посмотрим, какая эквити на OutOfSample у нас получится, если мы будем брать среднее прогнозное значение всех 50 лесов.
  
Немного извратов с Random Forest в R 
В общем, неплохо, но смущают просадки. Попробуем заменить абсолютные значения нашей выборки на термины Long/Short/Flat и брать только те случаи, когда перевес за лонг или шорт больше чем у пяти деревьев.

Немного извратов с Random Forest в R
 Получилось красивее, просадки меньше. Коэффициент корелляции равен -0.76, то есть мы в основном шортили, что было вполне оправдано. 

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

Немного извратов с Random Forest в R 

Получилось, честно говоря, не очень, ну и ладно. Данных действительно мало.
 

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


На связи!
35 Комментариев
  • Тимофей Мартынов
    21 мая 2014, 17:01
    молоток!
      • Марина
        21 мая 2014, 17:07
        Eugene777, привет!) где можно по R найти что-нить почитать, руководства и т.д.?
          • Марина
            21 мая 2014, 17:50
            Eugene777, ок, почитаю! Спасибо!)
        • Rustem
          21 мая 2014, 20:57
          Макс, Matloff N. — Art of R Programming — A Tour of Statistical Software Design — 2011, примитивно, просто и быстро.

          Можно и guide — под 1000 страниц!
          • Марина
            22 мая 2014, 09:35
            Rustem, Оу, круто! Спасибо!)
  • Spekyl
    21 мая 2014, 17:11
    Я тебе без всяких алгоритмов скажу: до тех пор, пока люди верят, что разбив стольник на десять десяток они становятся богаче — в них будут без малейшего сомнения разгружать позиции институционалы, уверяя, что сплит 1:7 в начале июня приведет к цене за акцию в $100.

    Алиса.У нас пять червонцев. Понятно? Пять на два не делится. Понятно? Попробуем разделить на пять, получается один червонец. Получай…
    Базилио.Ты, слушай, не путай меня.
    Алиса.Боже сохрани, когда же я путала. Остается четыре червонца. Четыре на пять не делится… Понятно? (Постным голосом.)Уж так и быть, я себе и неделящиеся возьму… Я всегда готова услужить другу.
    Базилио.Запутала, обманула, тварь!
      • Spekyl
        21 мая 2014, 17:17
        Eugene777, и ты туда же…

        Ну смотри. Акция AAPL стоит сегодня $600. Через 2-3 недели будет сплит, одну акцию разобьют на семь. Вопрос: сколько будет стоить одна новая акция?
          • Spekyl
            21 мая 2014, 17:23
            Eugene777, ну и про то же! Т.е. у тебя сколько сейчас денег есть? Я могу еще по старой цене эппловских акций тебе продать. На бирже их уже не осталось почти, да и обманут там. А мне деньги срочно понадобились.
            Только быстро думай, тут уже покупатель едет. Мне всё равно, кому продать, но он мент бывший, а ты мне нравишься. Есть у тебя голова, сразу видно! В общем, если успеешь за 15 минут через вебмани бабки мне скинуть — я мусору скажу, что все акции кончились, быстрее ехать надо было.
              • Spekyl
                21 мая 2014, 17:28
                Eugene777, да я тебе и дам кредит… Не переживай. У тебя прямо сейчас хоть немного денег есть? Надо только маржу внести, а остальное потом заплатишь. Под 8% в рублях — где еще такой процент найдешь? За два дня там всего-то ничего набежит, процентов 16. А прибыль все покроет.
  • siva
    21 мая 2014, 17:13
    Начать стоило бы серию постов о двадцати метриках :)

    Или это грааль? ;)
      • SergeyJu
        21 мая 2014, 17:32
        Eugene777, вот в этом то все и дело.
        Имхо.
        Хватило бы и двух хороших метрик без всякого леса, да где их взять, вот в чем вопрос.
          • SergeyJu
            21 мая 2014, 18:21
            Eugene777, а Вы не пробовали оценить, какие из метрик реально что-то дают Вашему лесу и Вашим ближайшим соседям. Наверняка окажется, что из этих 20 можно оставить 5, а то и 3 и получится результат не хуже.
  • Lafert
    21 мая 2014, 18:07
    А на тиковых данных не хотите проверить?
  • Роман Frank_Cowperwood
    21 мая 2014, 23:19
    Интересно, кто нибудь понял из присутствующих о чем это все?
    Написано конечно увлекательно, но к сожалению непонятно!
    Автору было бы хорошо немного добавить текста «для чайников» :)
      • Роман Frank_Cowperwood
        22 мая 2014, 09:07
        Eugene777, я бы с удовольствием почитал бы о сути этого метода, о языке R, о лесах могучих только в более читаемом формате с разъяснениями.
        • SergeyJu
          22 мая 2014, 15:24
          Frank_Cowperwood, трудно объяснять математику «на пальцах».
          Вот обзор, попробуйте просмотреть, не вдаваясь в детали.
          file:///C:/Users/saltykov/Downloads/trudy_2013_1_117-136.pdf
          Смысл в том, чтобы настряпать кучу простых решающих правил (каждое из них называется дерево) и принимать решение по совокупности решений частных правил.
  • ELab
    12 августа 2014, 13:12
    Попробуйте сделать шаг за шагом тестирование чтобы не попасть в тренд (как у вас преимущественно short).
    Я тоже играю с Random Forest (использую alglib) — результат совсем не впечатляет увы :(
    Возможно дело в моих кривых руках и входных данных — я пока только цены и объемы запихал (на скорую руку).
      • ELab
        13 августа 2014, 12:45
        Eugene777, я запихывал по 2000 баров для обучения и все равно выходили ямы — алгоритм тупил при OutOfSample внушительными убытками
        PS. Есть кнчно и периоды просветления — как в данном примере. Вообщем или я тупой или RandomForest никуда не годится

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

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