Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1963
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
да
Ущербная логика.
может есть подводные камни. Например, нельзя отрицательные значения в признаках, т.к. он использует бинаризованные в своих микротестах. В скудном описании ничего нет про это, ошибок не показывает.
может есть подводные камни. Например, нельзя отрицательные значения в признаках, т.к. он использует бинаризованные в своих микротестах. В скудном описании ничего нет про это, ошибок не показывает.
Интересный подход НС для Collaborative Filtering
Можно вместо ID людей и фильмов взять торговые инструменты и стратегии, вместо оценок какую нибудь метрику (матожидание и т.п.). Затем вычислить скрытые переменные для инструмента и стратегии. А дальше все, что душе угодно. Подбирать систему под инструмент или генерить на ходу с нужными характеристиками, строить синтетики под систему....
Скинул автору сетки резы и свое негодование по почте
Интересно что он отписал.
Интересно что он отписал.
Самый чистый сплит смешаем с менее чистыми. Т.е. ухудшим результат на трейне, в принципе он нам не важен. Но и не факт, что это улучшит результат на тесте, т.е. обобщающую способность. Надо кому-то попробовать... лично я не думаю, что обобщение будет лучше случ. лесов.
Гораздо проще ограничить глубину дерева и не делать последний сплит, остановившись на предыдущем. В итоге получим такой же менее чистый лист, чем если бы мы дополнительный сплит сделали. Ваш вариант даст что-то среднее между тем делали мы сплит или нет. Т.е. например вы усредните своим способом лист на 7 уровне глубины. Он будет чуть чище листа 6-го уровня глубины. Думаю обобщение от этого не сильно изменится, а работы много, чтобы проверить идею. Еще можно усреднить несколько деревьев с глубиной 6 и 7 - получим примерно то же, что получится по вашей методике.
Ранее я, наверное, не пояснил, что в листе должно оставаться минимум 1% показателей на малых выборках и 100 на больших, поэтому конечно разбиение будет не до отсутствия ошибки в листе по какому либо классу.
Кажется, что Вы не совсем верно понимаете последний этап - я вижу это как статистическую оценку оставшейся выборки в 1% - в этой выборке мы наблюдаем, что результат улучшается при сплитах разными предикторами, у нас получается информация о подпространстве, к примеру:
Если A>x1, то целевой 1 будет верно определено 40% что составит 60% подвыборки
Если B>x2, то целевой 1 будет верно определено 55% что составит 45% подвыборки
Если A<=x1, то целевой 1 будет верно определено 70% что составит 50% подвыборки
У каждого такого разбиения есть коэффициент значимости (пока не решил, как его считать), он есть и у последнего сплита.
и так далее, допустим до 5-10 предикторов, потом при применении, если мы дошли до последнего сплита, то складываем коэффициенты (или используем более сложный метод сведения), и если сумма коэффициентов превышает порог, то в листе классифицируется 1, иначе ноль.
Простым способом это реализовать можно, если принудительно строить лес до предпоследнего сплита, а потом исключать предикторы уже отобранные из выборки, что б выбирались новые. Или просто после построения дерева фильтровать выборку по листу и самому проходиться по каждому предиктору в поисках лучшего сплита, отвечающего критерию полноты и точности.
И, результат на обучающей выборке будет улучшаться, если другой класс "0" означает бездействие, а не противоположный вход, иначе может быть как улучшение так и ухудшение.
Ранее я, наверное, не пояснил, что в листе должно оставаться минимум 1% показателей на малых выборках и 100 на больших, поэтому конечно разбиение будет не до отсутствия ошибки в листе по какому либо классу.
Кажется, что Вы не совсем верно понимаете последний этап - я вижу это как статистическую оценку оставшейся выборки в 1% - в этой выборке мы наблюдаем, что результат улучшается при сплитах разными предикторами, у нас получается информация о подпространстве, к примеру:
Если A>x1, то целевой 1 будет верно определено 40% что составит 60% подвыборки
Если B>x2, то целевой 1 будет верно определено 55% что составит 45% подвыборки
Если A<=x1, то целевой 1 будет верно определено 70% что составит 50% подвыборки
У каждого такого разбиения есть коэффициент значимости (пока не решил, как его считать), он есть и у последнего сплита.
и так далее, допустим до 5-10 предикторов, потом при применении, если мы дошли до последнего сплита, то складываем коэффициенты (или используем более сложный метод сведения), и если сумма коэффициентов превышает порог, то в листе классифицируется 1, иначе ноль.
Простым способом это реализовать можно, если принудительно строить лес до предпоследнего сплита, а потом исключать предикторы уже отобранные из выборки, что б выбирались новые. Или просто после построения дерева фильтровать выборку по листу и самому проходиться по каждому предиктору в поисках лучшего сплита, отвечающего критерию полноты и точности.
И, результат на обучающей выборке будет улучшаться, если другой класс "0" означает бездействие, а не противоположный вход, иначе может быть как улучшение так и ухудшение.
Ранее описал простой способ - часть деревьев обучить до 6, а часть до 7 уровня глубины. Это потребует переписывать код.
Сейчас придумал более простой способ, т.к. ничего не надо переписывать. Просто строите случайный лес любым пакетом до 6 уровня и еще один лес до 7 уровня, потом усредняете.
Обучающая выборка не должна нас волновать, - она всегда прекрасна.
Все равно результат обучения будет чем то между деревом обученным до N и N+1 глубины, например 6 и 7. Если на уровне 6 ошибка равна 20% а на уровне 7 - 18%, ваш метод даст ошибку между ними, например 19%. Вы думаете выигрыш в 1% стоит того, чтобы тратить на это время?
Ранее описал простой способ - часть деревьев обучить до 6, а часть до 7 уровня глубины. Это потребует переписывать код.
Сейчас придумал более простой способ, т.к. ничего не надо переписывать. Просто строите случайный лес любым пакетом до 6 уровня и еще один лес до 7 уровня, потом усредняете.
Обучающая выборка не должна нас волновать, - она всегда прекрасна.
Прирост обычно получается больше, чем 1%.
Конечно можно случайные леса, но как их заставить быть одинаковыми до предпоследнего сплита? Допустим обучили 10 деревьев до 6 сплита, а остальные ещё 10 учим так же, но до 7го.