Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 56

 
Alexey Burnakov:
Лет несколько. Здесь в теме ее результат.
Ссылку подскажите, пожалуйста.
 
Vadim Shishkin:
Ссылку подскажите, пожалуйста.
Вся тема это и есть результат.
 
Yury Reshetov:

Ну хотя бы со строгим разделением на обучающую и тестовую выборку по датам вместо предварительного рандомного перемешивания примеров с равномерным распределением в генеральной выборке с последующим разделением её на части. Ведь может получиться так, что в одну часть выборки попадут по большей части вертикальные тренды, а во вторую боковые. Если сделать рандомное перемешивание, то вероятность скучивания схожих паттернов по разным частям выборки умаляется.

Кстати, таким недостатком страдает и встроенный в MetaTrader тестер стратегий, т.е. он делит обучающую выборку и форвардный тест строго по датам. Из-за чего смена рыночных тенденций близкая к разделительной линии может дать заведомое переобучение.

Это и есть ключевой момент в планировании эксперимента. В реале же есть строгое разделнние по времени. Так и проверяется модель на будущем в полном смысле слова.

У меня тоже есть такое: на валидации рынок преимущественно падал, и есть перевес шортов. Ну, а в будущем он может преимущественно расти. Все может быть. 
 
Vadim Shishkin:
То есть вы, как всякий уважающий трейдер, произнесли ответ.
Ответ вселенной, если хотите.
 
Alexey Burnakov:
Это и есть ключевой момент в планировании эксперимента. В реале же есть строгое разделнние по времени. Так и проверяется модель на будущем в полном смысле слова.

У меня тоже есть такое: на валидации рынок преимущественно падал, и есть перевес шортов. Ну, а в будущем он может преимущественно расти. Все может быть. 

Это называется несбалансированная выборка и является проблемой машинного обучения.

Чтобы было понятнее, приведу пример. Пусть у нас есть обучающая выборка в которой преобладают восходящие тренды, а значит нисходящие движения в ней представлены в меньшем количестве, по сравнению с восходящими, т.е. имеем дисбаланс.

Предположим, что нисходящих движений у нас в выборке 1 000, а восходящих 10 000. И предположим, что ошибка классификации для восходящих движений 10%. Но эти десять процентов для 10 000 примеров равны 1 000 ложных сигналов, классифицированных как прогноз нисходящих движений и примеров с нисходящими движениями у нас в выборке всего 1 000. Это значит, что какова бы ни была точность классификации нисходящих движений, то при любом ответе классификатора, прогнозирующего что будущее движение, как потенциально нисходящее, его ошибка будет не менее 50%. Т.е. чем больше примеров в обучающей выборке для какого-то одного класса - дисбаланс, тем больше влияние неверной классификации для этого класса на качество ответов классификатора  для другого класса.

По этой причине очень сложно прогнозировать редкие явления: землетрясения, извержения вулканов, экономические кризисы и проч. Ведь если явление очень редкое и малопредставительно в выборке, то любая ошибка для примеров противоположных классов становится чрезмерно большой для редких явлений.

А посему обучающую выборку необходимо предварительно балансировать, чтобы в ней примеры для всех классов были представлены одинаковым количеством. В противном случае, малопредставительные классы с большей вероятностью не смогут успешно пройти тесты вне обучающей выборки. К тому же, примеры при делении генеральной выборки на обучающую и тестовую часть необходимо перемешивать с помощью ПГСЧ с равномерным распределением вероятностей, чтобы избежать скучивания примеров с похожими предикторами в какой либо части и отличающимися в другой. Т.е. чтобы избежать дисбаланса по предикторам, а не только по зависимым переменным.

 
Yury Reshetov:

Это называется несбалансированная выборка и является проблемой машинного обучения.

Чтобы было понятнее, приведу пример. Пусть у нас есть обучающая выборка в которой преобладают восходящие тренды, а значит нисходящие движения в ней представлены в меньшем количестве, по сравнению с восходящими, т.е. имеем дисбаланс.

Предположим, что нисходящих движений у нас в выборке 1 000, а восходящих 10 000. И предположим, что ошибка классификации для восходящих движений 10%. Но эти десять процентов для 10 000 примеров равны 1 000 ложных сигналов, классифицированных как прогноз нисходящих движений и примеров с нисходящими движениями у нас в выборке всего 1 000. Это значит, что какова бы ни была точность классификации нисходящих движений, то при любом ответе классификатора, прогнозирующего что будущее движение, как потенциально нисходящее, его ошибка будет не менее 50%. Т.е. чем больше примеров в обучающей выборке для какого-то одного класса - дисбаланс, тем больше влияние неверной классификации для этого класса на качество ответов классификатора  для другого класса.

По этой причине очень сложно прогнозировать редкие явления: землетрясения, извержения вулканов, экономические кризисы и проч. Ведь если явление очень редкое и малопредставительно в выборке, то любая ошибка для примеров противоположных классов становится чрезмерно большой для редких явлений.

А посему обучающую выборку необходимо предварительно балансировать, чтобы в ней примеры для всех классов были представлены одинаковым количеством. В противном случае, малопредставительные классы с большей вероятностью не смогут успешно пройти тесты вне обучающей выборки. К тому же, примеры при делении генеральной выборки на обучающую и тестовую часть необходимо перемешивать с помощью ПГСЧ с равномерным распределением вероятностей, чтобы избежать скучивания примеров с похожими предикторами в какой либо части и отличающимися в другой. Т.е. чтобы избежать дисбаланса по предикторам, а не только по зависимым переменным.

Юрий, я понял мысль. Выборка действительно может быть несбалансирована как на обучении, так и на валидации. Но в реале же вы торгуете будущее, где перекос может быть очень сильный. И стратегия должна быть устойчивой к такому раскладу.
 
Yury Reshetov:


А посему обучающую выборку необходимо предварительно балансировать, чтобы в ней примеры для всех классов были представлены одинаковым количеством. В противном случае, малопредставительные классы с большей вероятностью не смогут успешно пройти тесты вне обучающей выборки. К тому же, примеры при делении генеральной выборки на обучающую и тестовую часть необходимо перемешивать с помощью ПГСЧ с равномерным распределением вероятностей, чтобы избежать скучивания примеров с похожими предикторами в какой либо части и отличающимися в другой. Т.е. чтобы избежать дисбаланса по предикторам, а не только по зависимым переменным.

Пакет caret

Пара функций:  downSample/upSample - уменьшает/увеличивает количество наблюдений, получая полностью сбалансированные классы. Уменьшение/увеличение наблюдений в классе ведется по алгоритму простой случайной выборки. 

 

ПС.

Решетов!

Начни изучать R. Все чаще скатываешься на банальности. 

 
СанСаныч Фоменко:

Решетов!

Начни изучать R. Все чаще скатываешься на банальности. 

Ща все дела брошу, стану адептом R, чтобы играться в цифири с серьёзной рожей на лице.
 
Alexey Burnakov:
Юрий, я понял мысль. Выборка действительно может быть несбалансирована как на обучении, так и на валидации. Но в реале же вы торгуете будущее, где перекос может быть очень сильный. И стратегия должна быть устойчивой к такому раскладу.
Дык ведь устойчивость достигается за счёт того, что нужно предотвращать потенциальное переобучение. А несбалансированная обучающая выборка является потенциальной причиной переобучения для малопредставительных классов. Ведь обучающий алгоритм пытается действовать, как ему проще, а не как нужно для повышения обобщающей способности. Если выборка несбалансирована, то он будет минимизировать ошибки обучения на наименее представительных классах, т.к. примеров для таких классов мало и вызубрить их наизусть легче всего, вместо того, чтобы заниматься обобщением. После такой зубрёжки нечего удивляться, что вне обучающей выборки наиболее вероятными  будут ошибки алгоритма на малопредставительных классах.
 

you blind yourself to date ranges; - разделение данных именно по датам (до дня икс - обучение, после - валидация)

 

Мысль проста. НА реале никто не позволит вам взять смешанную выборку, содержающую наблюдения из будущего и из прошлого для оценки качества реальной торговли. Все наблюдения пойдут после дня икс.

Следовательно, беря при валидации смешанную выборку (без разделения по датам), вы завышаете метрику качества на валидации. Вот и все. Потом будут неприятные сюрпризы.

Причина обращения: