Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3667
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А есть стандартные способы изменения порядка индексации у векторов?
Если я хочу, чтобы нулевой бар был последним, а не первым.
"При этом данные будут скопированы таким образом, что самый старый по времени элемент помещается в начало матрицы/вектора. Существует 3 варианта метода."
Машинное обучение (ML) произвело революцию в мире трейдинга, обеспечив принятие решений на основе данных и повысив эффективность торговли. Трейдеры и компании используют МЛ для прогнозирования движения рынка, оптимизации портфелей и реализации стратегий при минимальном вмешательстве человека. В этой статье рассматриваются теоретические основы, популярные модели, практические приложения и роль ML в алгоритмической торговле.
Я опубликую свой метод, который надежно и чувствительно решает аналогичные проблемы - я изложу теорию и опубликую код на R.
Это делается для взаимного обогащения "понимания" задач машинного обучения.
А давайте еще один теоретический момент рассмотрим.
Итак:
Лес. Каждое дерево голосует одним листом, в листе разное количество примеров/строк и среднее значение, которое является прогнозом листа.
1) Прогноз леса есть среднее голосов всех деревьев, т.е.
(сумма прогнозов всех активировавшихся листов) / (число деревьев).
2) Есть вариант: samples weighted. Листья С большим числом примеров будут больше влиять на результат леса.
Не знаю как в пакетах сделано, себе сделал как:
(сумма прогнозов всех активировавшихся листов * число примеров) / (сумма примеров всех активировавшихся листов).
Таким образом влияние листа с прогнозом 0,9 и 10 примерами будет меньше, чем листа с прогнозом 0,7 и 20 примерами.
В 1м случае по числу деревьев прогноз =(0,9+0,7)/2=0,8
Во 2м взвешенном по числу примеров прогноз = (0,9*10 + 0,7*20)/(10+20)=0,76. Т.е. лист с большим числом примеров перетянул прогноз в свою сторону. Возможно это хорошо.
Но может быть и такой пример: 0,9 с 10 примерами и 0,5 с 100 примерами (лист в котором собрался рондом).
В 1м случае по числу деревьев прогноз =(0,9+0,5)/2=0,7
Во 2м взвешенном по числу примеров прогноз = (0,9*10 + 0,5*100)/(10+100)=0,54. Прогноз близок к рандомному листу и это скорее плохо.
В своих экспериментах на линии баланса не увидел чтобы 1 из этих вариантов значительно улучшал результаты. Да и на рассмотренных примерах иногда лучше 1 вариант, а иногда 2-й.
Кто, что думает? Какой вариант на ваш взгляд правильнее и лучше? Может из практики какие-то наблюдения есть?
Имхо, зависит от способа построения деревьев (остановки сплитов). Можно же остановку делать как раз на основе размеров листьев.
Ну и в любом случае, более-менее осмысленный теоретический ответ можно получить с помощью Монте Карло. Чуть более практический ответ - наверно с помощью кросс-валидации.
Имхо, зависит от способа построения деревьев (остановки сплитов). Можно же остановку делать как раз на основе размеров листьев.
Ну и в любом случае, более-менее осмысленный теоретический ответ можно получить с помощью Монте Карло. Чуть более практический ответ - наверно с помощью кросс-валидации.
Думаю, что если размер листьев отличается не более 2-3 раз, то взвешивание скорее полезно (теоретически). Но нет гарантий, что не получится огромных листьев с мусором.
Да, как раз и думаю, что надо стараться листья делать близкими по размеру. Но листья в которых рандом собирается все равно будут большого размера, ведь они как раз содержат примеры с малым движением цены, а таких - большинство. А мельчить рандом - тоже получишь рандом - особого смысла нет.
Думаю, что если размер листьев отличается не более 2-3 раз, то взвешивание скорее полезно (теоретически). Но нет гарантий, что не получится огромных листьев с мусором.
Бессмысленно рассматривать построение модели без рассмотрения препроцессинга и способа деления на кассы.
1. Препроцессинг. Откуда такое количество рандома? Надо работать с отбором предикторов. Источником ошибки классификации является не способ построения дерева, а то, что одно и то значение предиктора в одних случаях дает один класс, а в других случаях дает другой класс. Бессмысленно классифицировать шум.
2. На каком основании рассматривается значение 0.5. У Вас вероятность класса распределена нормально с совпадающей средней и медианой? Как делим на классы? Существует большое количество способов деления на классы, самый примитивный и сомнительный пополам.
классы
Насколько понимаю, у Forester речь про регрессию, а не классификацию.
Насколько понимаю, у Forester речь про регрессию, а не классификацию.
В конечном итоге, всегда классы: "покупать-продавать" или более разнообразные, но классы. И при предсказании значения стоит тот же вопрос: при какой вероятности прогноза значения принимать решение, например, покупать.
Но при прогнозе значения, ситуация имеет другую сложность: вероятность должна сопровождаться доверительным интервалом, чего я не увидел в посте, и решил, что классы.
Бессмысленно рассматривать построение модели без рассмотрения препроцессинга и способа деления на кассы.
1. Препроцессинг. Откуда такое количество рандома? Надо работать с отбором предикторов. Источником ошибки классификации является не способ построения дерева, а то, что одно и то значение предиктора в одних случаях дает один класс, а в других случаях дает другой класс. Бессмысленно классифицировать шум.
2. На каком основании рассматривается значение 0.5. У Вас вероятность класса распределена нормально с совпадающей средней и медианой? Как делим на классы? Существует большое количество способов деления на классы, самый примитивный и сомнительный пополам.
Вероятность (значение лиcта) в классификации 0,5 эквивалентна равенству доходов и расходов в регрессии, т.е. среднее значение листа будет = 0. Т.е. говоря про 0,5 в классификации это я делаю перевод с 0 в регрессии.
А 0,5 классификации или 0 регрессии происходит из Распределения приращений на реальном рынке
Большиство движений мелкие и слабопрогнозируемые. Поэтому они в любом случае набьются в несколько листов. И будет большим успехом, если не во все, тогда модель вообще ничего не сможет предсказать. Из них еще надо вычесть маркап, что только ухудшит ситуацию.
Но все же бывают успешные листья с уменьшенным количеством шума, и задача - не заглушить их усреднением с шумовыми листами из других деревьев при усреднении.
В общем решение к этому уже есть - стремиться делать листья более близкими по размеру, если применяется взвешивание по числу примеров.
Ну а то, каким выбирать порог для действия (buy|sell) - другой вопрос. И заслуживает отдельного рассмотрения.