Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 57
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дык ведь устойчивость достигается за счёт того, что нужно предотвращать потенциальное переобучение. А несбалансированная обучающая выборка является потенциальной причиной переобучения для малопредставительных классов. Ведь обучающий алгоритм пытается действовать, как ему проще, а не как нужно для повышения обобщающей способности. Если выборка несбалансирована, то он будет минимизировать ошибки обучения на наименее представительных классах, т.к. примеров для таких классов мало и вызубрить их наизусть легче всего, вместо того, чтобы заниматься обобщением. После такой зубрёжки нечего удивляться, что вне обучающей выборки наиболее вероятными будут ошибки алгоритма на малопредставительных классах.
Мысль проста. НА реале никто не позволит вам взять смешанную выборку, содержающую наблюдения из будущего для оценки качества реальной торговли. Все наблюдения пойдут после дня икс.
Следовательно, беря при валидации смешанную выборку (без разделения по датам), вы завышаете метрику качества на валидации. Вот и все. Потом будут неприятные сюрпризы.
Причём тут мысль? Мысли - это субъективизм. Мыслить можно и правильно и заведомо ошибочно. Потому как воображение проблематично ограничить. Критерием истины всегда является опыт.
Возьмите две обучающие выборки, одну предварительно сбалансированную, а вторую сильно разбалансированную. Обучите алгоритм на обоих выборках и замерьте обобщающую способность на тестовых частях. После этого сравните обобщающие способности. Тот вариант, который даст наилучшую обобщающую способность и будет критерием истины.
А иначе мы будем мыслить и домысливать до потери пульса. Ведь в спорах рождаются разногласия, а в опыте - истина.
А посему я завязываю с дальнейшим обсуждением темы сбалансированности обучающей выборки. Иначе этот холивар можно продолжать до бесконечности, т.к. есть два различных мнения и продолжать меряться на предмет, кто из нас мыслит правильнее - пустая трата времени.
Дык ведь устойчивость достигается за счёт того, что нужно предотвратить переобучение. А несбалансированная обучающая выборка является потенциальной причиной переобучения для малопредставительных классов. Ведь обучающий алгоритм пытается действовать, как ему проще, а не как нужно для повышения обобщающей способности. Если выборка несбалансирована, то он будет минимизировать ошибки обучения на наименее представительных классах, т.к. примеров для таких классов мало и вызубрить их наизусть легче всего, вместо того, чтобы заниматься обобщением. После такой зубрёжки нечего удивляться, что вне обучающей выборки ошибки алгоритма на малопредставительных классах будут наиболее вероятными.
1. На несбалансированных классах вообще получается черти что: ошибка между классами может в разы расходиться. И какая правильная?
2. Далеко не всегда можно сбалансировать классы.
Твой пример с BUY|SELL. При числе наблюдений (баров) свыше 3000 разница не сбалансированности будет 10% максимум 20%. Вполне можно балансировать.
А здесь выше Dr.Trader предлагал целевую переменную "разворот/нет разворота" . Вроде брал из ЗЗ. Так в такой целевой переменной не сбалансированность классов будет разнится на порядки. Если мы дополним до максимального класса, то можно ли будет учить на такой сбалансированной выборке? Мне кажется, что нет.
Так что с балансировкой не все так просто.
Из собственного опыта:
Других решений найти не удалось.
Ща все дела брошу, стану адептом R, чтобы играться в цифири с серьёзной рожей на лице.
Пока не заметил, чтоб ты играл в цифирь, а вот на счет рожи не знаю - не видно.
Причём тут мысль? Мысли - это субъективизм. Мыслить можно и правильно и заведомо ошибочно. Потому как воображение проблематично ограничить. Критерием истины всегда является опыт.
Возьмите две обучающие выборки, одну предварительно сбалансированную, а вторую сильно разбалансированную. Обучите алгоритм на обоих выборках и замерьте обобщающую способность на тестовых частях. После этого сравните обобщающие способности. Тот вариант, который даст наилучшую обобщающую способность и будет критерием истины.
А иначе мы будем мыслить и домысливать до потери пульса. Ведь в спорах рождаются разногласия, а в опыте - истина.
А посему я завязываю с дальнейшим обсуждением темы сбалансированности обучающей выборки. Иначе этот холивар можно продолжать до бесконечности, т.к. есть два различных мнения и продолжать меряться на предмет, кто из нас мыслит правильнее - пустая трата времени.
Я про одно, вы про другое. Я говорю, надо набор делить строго по датам. А вы про баланс.
Извините, но я уже сказал, что продолжать этот холивар не вижу никакого смысла. Уже попытался объяснить недостатки сбалансированности на примерах. Наверное не шибко убедительно получилось? Ну не силён я в чёрной риторике, чтобы выдавать чёрное за белое с серьёзной рожей на лице. Так что не обессудьте.
Скорее всего причина в том, что Вы пытаетесь убедить меня в том, что якобы пытаюсь "заставить" Вас сбалансировать реальную действительность? Но у меня нет такого намерения. Я знаю, что реальная действительность и к моему же сожалению зачастую несбалансирована и возможности для её балансировки не всегда доступны. Поэтому в своих постах я пытался объяснить Вам, что не обязательно пытаться сбалансировать реальную действительность вне обучающей выборки, а необходимо и достаточно всего лишь сбалансировать обучающую выборку, чтобы полученная по ней модель не была перекошена в сторону сильно представительных классов. При делении генеральной выборки на части по датам, также зачастую невозможно добиться баланса. Поэтому я балансирую обучающую выборку не по датам, а по равной представительности классов в ней.
Более отвечать на вопросы по балансировке обучающей выборки я не буду. Итак этот холивар уже затянулся.
Извините, но я уже сказал, что продолжать этот холивар не вижу никакого смысла. Уже попытался объяснить недостатки сбалансированности на примерах. Наверное не шибко убедительно получилось? Ну не силён я в чёрной риторике, чтобы выдавать чёрное за белое с серьёзной рожей на лице. Так что не обессудьте.
Скорее всего причина в том, что Вы пытаетесь убедить меня в том, что якобы пытаюсь "заставить" Вас сбалансировать реальную действительность? Но у меня нет такого намерения. Я знаю, что реальная действительность и к моему же сожалению зачастую несбалансирована и возможности для её балансировки не всегда доступны. Поэтому в своих постах я пытался объяснить Вам, что не обязательно пытаться сбалансировать реальную действительность вне обучающей выборки, а необходимо и достаточно всего лишь сбалансировать обучающую выборку, чтобы полученная по ней модель не была перекошена в сторону сильно представительных классов. При делении генеральной выборки на части по датам, также зачастую невозможно добиться баланса. Поэтому я балансирую обучающую выборку не по датам, а по равной представительности классов в ней.
Более отвечать на вопросы по балансировке обучающей выборки я не буду. Итак этот холивар уже затянулся.
Хочу встрять для полноты картины и повторить свое мнение, высказанное выше по ветке.
1. Необходимо иметь два набора данных: второй продолжение первого по времени.
2. Первый набора данных балансируем. Обязательно балансируем.
3. Первый набор данных делим случайным образом на три части: обучения,тестирования и проверки.
4. Получаем ошибку на втором наборе, который является продолжением первого по времени.
Если ошибка на всех ЧЕТЫРЕХ наборах примерно одинакова, то модель не переобучена. Если ошибка имеет приличное значение, то можно смело идти дальше, т.е. пропускать через тестер.
Если имеется значительная разница (более 30%), то исходный набор предикторов приводит к переобучению модели и по личному опыту замена типа модели ничего исправить, в смысле преобучения, не может. Нужно избавиться от шумовых предикторов. Запросто может получиться, что среди предикторов ВООБЩЕ нет НЕ шумовых предикторов.