Продолжая тему, затронутую в
предыдущей публикации хочу поделиться некоторыми наблюдениями.
И так, возьмем 1000 дней AAPL, 20 внутридневных метрик и попробуем обучить алгоритмы случайного леса и ближайших соседей и прогнать его на последних 120 днях.
Результат для числовых значений результата:
Теперь формализованные значения:
Выглядит хуже, почти нет разбросам в результатах работы ближних соседей и RF.
Очень хорошо оценить эффективность обучения можно с помощью коэффициента корреляции между нашими результатами и B&H.
А теперь сделаем следующую вещь. Обучим 50 случайных лесов на случайных 80 процентах данных InSample, проверим на оставшихся 20%, и посмотрим, что получилось для каждого из них на наших 120 днях.
Теперь это можно проанализировать. Среднее значения для прогонки InSample — 68, OutOfSample — 55. Не стоит сравнивать эти значения между собой, так как объем данных отличается, но это значит, что в среднем леса в произвольной выборке были прибыльными, и наш OutOfSample в среднем тоже оказался прибыльными.
Теперь посмотрим коэффициент корреляции между этими значениями. Он равен -0.13, что значит, что зависимости результатов прогнозирования OutOfSample от результата пронозирования InSample нет.
А теперь посмотрим, какая эквити на OutOfSample у нас получится, если мы будем брать среднее прогнозное значение всех 50 лесов.
В общем, неплохо, но смущают просадки. Попробуем заменить абсолютные значения нашей выборки на термины Long/Short/Flat и брать только те случаи, когда перевес за лонг или шорт больше чем у пяти деревьев.
Получилось красивее, просадки меньше. Коэффициент корелляции равен -0.76, то есть мы в основном шортили, что было вполне оправдано.
Ну и последним делом я решил попробовать обучить еще один случайный лес уже на результатах этих 50 лесов и прогнать последние двадцать сделок.
Получилось, честно говоря, не очень, ну и ладно. Данных действительно мало.
И так, что я всем этим хотел сказать…
— несмотря на довольно относительные предикторы, самообучающиеся алгоритмы делают интерсные вещи;
— надо уметь оценивать эффективность обучения и использовать для этого разные возможности;
— оценка результатов обучения чрезвычайно важна при принятии решения о переобучении и достоверности новых моделей;
На связи!
Можно и guide — под 1000 страниц!
Алиса.У нас пять червонцев. Понятно? Пять на два не делится. Понятно? Попробуем разделить на пять, получается один червонец. Получай…
Базилио.Ты, слушай, не путай меня.
Алиса.Боже сохрани, когда же я путала. Остается четыре червонца. Четыре на пять не делится… Понятно? (Постным голосом.)Уж так и быть, я себе и неделящиеся возьму… Я всегда готова услужить другу.
Базилио.Запутала, обманула, тварь!
Ну смотри. Акция AAPL стоит сегодня $600. Через 2-3 недели будет сплит, одну акцию разобьют на семь. Вопрос: сколько будет стоить одна новая акция?
Только быстро думай, тут уже покупатель едет. Мне всё равно, кому продать, но он мент бывший, а ты мне нравишься. Есть у тебя голова, сразу видно! В общем, если успеешь за 15 минут через вебмани бабки мне скинуть — я мусору скажу, что все акции кончились, быстрее ехать надо было.
Или это грааль? ;)
Имхо.
Хватило бы и двух хороших метрик без всякого леса, да где их взять, вот в чем вопрос.
Написано конечно увлекательно, но к сожалению непонятно!
Автору было бы хорошо немного добавить текста «для чайников» :)
Вот обзор, попробуйте просмотреть, не вдаваясь в детали.
file:///C:/Users/saltykov/Downloads/trudy_2013_1_117-136.pdf
Смысл в том, чтобы настряпать кучу простых решающих правил (каждое из них называется дерево) и принимать решение по совокупности решений частных правил.
transactions.krc.karelia.ru/publ.php?plang=r&id=10552
Качните ПДФ по ссылке.
Я тоже играю с Random Forest (использую alglib) — результат совсем не впечатляет увы :(
Возможно дело в моих кривых руках и входных данных — я пока только цены и объемы запихал (на скорую руку).
PS. Есть кнчно и периоды просветления — как в данном примере. Вообщем или я тупой или RandomForest никуда не годится