Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2550
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Согласен. Собственно хотел лишь выразить мысль, что кроссвалидация тоже может быть устроена непросто и задаваться какими-то своими параметрами (метаметапараметрами), которые тоже можно оптимизировать по ещё одной выборке (а не брать их с потолка).
Правильно поняли - проводить какие либо действия для того, что бы выборка train больше была похожа на выборку exam.
Вопрос в том, как это лучше тогда делать.
Один из вариантов, что часто используют, перебор предикторов - но при большом наборе их слишком много. А можно ли, допустим, сравнить строки (набор предикторов) на похожесть и устойчивость исхода целевой в двух выборках? Тогда мы можем выкинуть аномальные (допустим редкие или не встречающиеся в выборке exam) строки из выборки обучения, и за счет этого обучиться гораздо лучше, в теории.
Правильно поняли - проводить какие либо действия для того, что бы выборка train больше была похожа на выборку exam.
Вопрос в том, как это лучше тогда делать.
Один из вариантов, что часто используют, перебор предикторов - но при большом наборе их слишком много. А можно ли, допустим, сравнить строки (набор предикторов) на похожесть и устойчивость исхода целевой в двух выборках? Тогда мы можем выкинуть аномальные (допустим редкие или не встречающиеся в выборке exam) строки из выборки обучения, и за счет этого обучиться гораздо лучше, в теории.
У Владимира было в статье про это, не помню как назывался тот пакет, но он как раз выкидывал не прогнозируемые строки из выборки
Интересно, надо будет поискать. Но, я то хочу выкидывать не то, что не прогнозируемые, а те, что не встречаются в выборке вне обучения. Даже интересно их как то пометить конечно, а не просто выкинуть - идентифицировать.
Интересно, надо будет поискать. Но, я то хочу выкидывать не то, что не прогнозируемые, а те, что не встречаются в выборке вне обучения. Даже интересно их как то пометить конечно, а не просто выкинуть - идентифицировать.
Возможно, речь об удалении выбросов в наблюдениях, которые могут быть двух типов - по величине ответа и по величине предикторов (могут оба совмещаться в одном наблюдении). Собственно выбросами называются первые, а вторые обычно называются как-то по другому. Эта наука хорошо проработана для линейной регрессии. Наверное, можно каждое наблюдение из test проверить не является ли оно выбросом в каком-то смысле относительно exam.
Интересно, надо будет поискать. Но, я то хочу выкидывать не то, что не прогнозируемые, а те, что не встречаются в выборке вне обучения. Даже интересно их как то пометить конечно, а не просто выкинуть - идентифицировать.
У Владимира было в статье про это, не помню как назывался тот пакет, но он как раз выкидывал не прогнозируемые строки из выборки
Пакет NoiseFiltersR. Посмотрите статью.
Самое оптимальное метапараметры выбирать не по одному участку test, а на нескольких склеенных собранных кросс валидацией или валкинг форвардом. Недавно обсуждали.
А как правильнее потом использовать результаты CV? брать лучшие найденные параметры модели и обучать потом на всем датасете, либо юзать ее только для выбора хороших датасетов
например, на выходе такая таблица
Пакет NoiseFiltersR. Посмотрите статью.
Если с шумовыми предикторами всё более-менее понятно, то с шумовыми примерами не очень. Хотелось бы узнать побольше о способах их определения (в смысле теории, а не названий используемых пакетов/функций, хотя конечно в R всегда есть ссылки на статьи). Понятно, что при классификации должен быть класс "не торговать", поскольку стремление всё время быть в рынке считается ошибкой. Но не очень понятно как корректно описать этот класс в более-менее формальном виде.
А как правильнее потом использовать результаты CV?
Я делаю оптимизацию гиперпараметров модели (глубина обучения дерева или число примеров в листе, к-во деревьев и т.п.) и датасета (число строк, можно комбинации фичей)
Прогоняю все эти варианты, потом по лучшему суммарному результату валкинг форварда выбираю лучший вариант параметров модели и данных. Кросс-валидация на мой взгляд хуже, валкинг форвард - это копия того, как будет в реальности: поторговали неделю - переобучились, еще неделю, еще переобучились и т.д.
На всём датасете - нелогично.
Какую наилучшую глубину истории получил - на такой же и дальше обучаться. У меня модель обученная N раз по 50000 строк М5 (почти год) может показывать 52% на сумме всех форвардов , если обучать со всеми теми же параметрами и с отличием только в глубине истории, т.е. на 70000 или 30000 строках, то будет уже менее 50% на сумме всех форвардов.
Причина в том, что в листья будут попадать не те же самые примеры. Деревья могут больше или меньше листьев иметь и т.п. Думаю, что для разных по размеру датасетов надо менять глубину или число примеров в листе.
Я делаю оптимизацию гиперпараметров модели (глубина обучения дерева или число примеров в листе, к-во деревьев и т.п.) и датасета (число строк, можно комбинации фичей)
Прогоняю все эти варианты, потом по лучшему суммарному результату валкинг форварда выбираю лучший вариант параметров модели и данных. Кросс-валидация на мой взгляд хуже, валкинг форвард - это копия того, как будет в реальности: поторговали неделю - переобучились, еще неделю, еще переобучились и т.д.
На всём датасете - нелогично.
Какую наилучшую глубину истории получил - на такой же и дальше обучаться. У меня модель обученная N раз по 50000 строк М5 (почти год) может показывать 52% на сумме всех форвардов , если обучать со всеми теми же параметрами и с отличием только в глубине истории, т.е. на 70000 или 30000 строках, то будет уже менее 50% на сумме всех форвардов.
Причина в том, что в листья будут попадать не те же самые примеры. Деревья могут больше или меньше листьев иметь и т.п. Думаю, что для разных по размеру датасетов надо менять глубину или число примеров в листе.