Bayesian regression - Делал ли кто советник по этому алгоритму? - страница 26

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

Да смотрел... Не помню..

Если говорить про тестер, то здесь такая проблема, на мой взгляд.

Берем некую выборку и считаем тестером например профит-фактор. Затем берем другую выборку и получаем новое значение профит-фактора. Итого две цифры. Две цифры - это основания для статистических выводов? Эти цифры вообще ни о чем.

Это должно решаться и решается по другому.

Берется выборка. Из этой выборки случайным образом выбирается некоторое подмножество и на нем считается как профит-фактор. Затем снова делается случайная выборка и т.д., например 1000 раз. Получаем 1000 профит-факторов. Это множество уже может служить основой для статистических выводов. 

Кстати эта метода не исключает применение тестера, демо.. 

СС, добрый день!

 

Выборка чего? Сделок?

Я понял к чему ведете - оценка квантилей выборочной статистики путем типа бутстрепа.

Но вопрос остается такой, если ТС подогнана на всей доступной выборке, то данный метод покажет то, что мы и так знаем, а именно, что профит-фактор ой как хорош.

 

Я в своем блоге подойду к вопросу немного по-другому. Сначала обучение с k-fold кроссвалидацией; взять хочу 5 подмножеств (в моем случае, это будут данные 5-ти валютных пар) и получится интересный эксперимент: обучение модели на 4 парах, тестирование на 5-ой. И так 5 раз. Но это еще не все. Изначально я имел чисто около-научный интерес в том, чтобы показать, что форекс прогнозируем. Так вот, m-лучших моделей (на отрезке кроссвалидации) пройдут валидацию на большой выборке, которую машина еще не видела. Свойство валидационной выборке еще в том ,что она объединяет цены, обособленные по времени в будущем. Ожидаю получить матрицу 100 * 18, где будут результаты валидации 100 лучших моделей на 18 предсказываемых выходных переменных (от 2 до 724 минут в будущее), например, по критерию R^2. Это сразу же покажет, прогнозируют ли мои "ящики" лучше, чем среднее значение.

 

А если бы нашелся спонсор моих самокопаний, можно арендовать Амазон клауд и повторить эксперимент 1 000 раз, каждый раз генерируя другие обучающие и валидационные наборы. И тогда будет трехмерная матрица 1000 * 100 * 18, которая позволит оценить стандартную ошибку метрики R^2 для лучших моделей и для разных целевых. Но это уже толсто.

Я к тому, что надо тестировать на будущих данных (или на прошлых, но явно обособленных по времени) и будет все гуд. 

 
Alexey Burnakov:

СС, добрый день!

 

Выборка чего? Сделок?

Я понял к чему ведете - оценка квантилей выборочной статистики путем типа бутстрепа.

Но вопрос остается такой, если ТС подогнана на всей доступной выборке, то данный метод покажет то, что мы и так знаем, а именно, что профит-фактор ой как хорош.

 

Я в своем блоге подойду к вопросу немного по-другому. Сначала обучение с k-fold кроссвалидацией; взять хочу 5 подмножеств (в моем случае, это будут данные 5-ти валютных пар) и получится интересный эксперимент: обучение модели на 4 парах, тестирование на 5-ой. И так 5 раз. Но это еще не все. Изначально я имел чисто около-научный интерес в том, чтобы показать, что форекс прогнозируем. Так вот, m-лучших моделей (на отрезке кроссвалидации) пройдут валидацию на большой выборке, которую машина еще не видела. Свойство валидационной выборке еще в том ,что она объединяет цены, обособленные по времени в будущем. Ожидаю получить матрицу 100 * 18, где будут результаты валидации 100 лучших моделей на 18 предсказываемых выходных переменных (от 2 до 724 минут в будущее), например, по критерию R^2. Это сразу же покажет, прогнозируют ли мои "ящики" лучше, чем среднее значение.

 

А если бы нашелся спонсор моих самокопаний, можно арендовать Амазон клауд и повторить эксперимент 1 000 раз, каждый раз генерируя другие обучающие и валидационные наборы. И тогда будет трехмерная матрица 1000 * 100 * 18, которая позволит оценить стандартную ошибку метрики R^2 для лучших моделей и для разных целевых. Но это уже толсто.

Я к тому, что надо тестировать на будущих данных (или на прошлых, но явно обособленных по времени) и будет все гуд. 

Ключевое слово Вашего поста отметил красным.

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

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

По мне проблема переобучения полностью порождается набором исходных данных. На интуитивном уровне: имеют исходные данные (предикторы) отношение к переменной или нет. Крайний случай - вообще не имеют - не рассматриваю. Промежуточный: часть имеет, а часть не имеет. Совершенно рабочая ситуация из личного опыта, когда предикторы, не имеющие отношение к целевой переменной, "глушат" предикторы, имеющие отношение к целевой переменной. Если Вы сумели отсеять вручную наиболее одиозные шумовые предикторы, то с некоторого момент начинают работать алгоритмы по отбору предикторов.

Цифры таковы. Из начального множества предикторов 50-200 штук самопальными методами отобрал около 30 штук.  Эти 30 штук не порождают переобученные модели, т.е. результативность на выборке обучения, ООВ, тестирования и валидации примерно одинакова.  Затем с помощью пакетов (пользуюсь varSelRF, можно и другими) произвожу отбор предикторов с использованием сдвигаемого окна, примерно 300-500 бар. Получаю рабочий набор предикторов 10-15 штук. По мере движения окна состав предикторов меняется. Любой из полученных наборов предикторов также не приводит к переобучению, но увеличивает результативность от 5% до 10%. Для задач классификации это около 20% ошибки. 

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


По мне проблема переобучения полностью порождается набором исходных данных. На интуитивном уровне: имеют исходные данные (предикторы) отношение к переменной или нет. Крайний случай - вообще не имеют - не рассматриваю. Промежуточный: часть имеет, а часть не имеет. Совершенно рабочая ситуация из личного опыта, когда предикторы, не имеющие отношение к целевой переменной, "глушат" предикторы, имеющие отношение к целевой переменной. Если Вы сумели отсеять вручную наиболее одиозные шумовые предикторы, то с некоторого момент начинают работать алгоритмы по отбору предикторов.

Цифры таковы. Из начального множества предикторов 50-200 штук самопальными методами отобрал около 30 штук.  Эти 30 штук не порождают переобученные модели, т.е. результативность на выборке обучения, ООВ, тестирования и валидации примерно одинакова.  Затем с помощью пакетов (пользуюсь varSelRF, можно и другими) произвожу отбор предикторов с использованием сдвигаемого окна, примерно 300-500 бар. Получаю рабочий набор предикторов 10-15 штук. По мере движения окна состав предикторов меняется. Любой из полученных наборов предикторов также не приводит к переобучению, но увеличивает результативность от 5% до 10%. Для задач классификации это около 20% ошибки. 

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

 

И еще вопрос. Вы используете разновидность леса решений, как я понял из этой аббревиатуры (сам такой метод не использовал).

Любое дерево леса решений это greedy-алгоритм отбора переменных + метрика, позволяющая провести сплит (границу отреза) на области значений этой переменной. Так вот, исходя из "жадности" деревьев они должны на верхних уровнях ветвей отбирать самые индивидуально значимые переменные. На более низких уровнях дерева (начиная уже со второго, на самом деле), отбор следующих наиболее важных переменных уже производится на подвыборке наблюдений, которая была сформирована прерыдующими отрезами. И в этой подвыборке также ищется следующая самая важная переменная (для каждой переменной перебираются все возможные отрезы и делается выбор лучшего, для которого считается метрика релевантности данной переменной). Но так как это уже работа с подвыборкой наблюдений, получается, что в целом вступает в силу условное распределение: var #18 is best in subsample #4 given variable #2 used before. Таким образом значимость переменных с ростом глубины дерева становится все более зависимой от используемых выше переменных.

По идее авторов, шумовые переменные должны остаться за бортом. НО! Greedy-природа подхода ведет к тому, что, например, отбракованные на 1 уровне переменные в связке с другими возможными переменными на другом возможном 2-ом уровне могут также дать значительный gain целевой метрики, который сам оказывается за бортом. Может быть в экстремальном случае и так, что две независимые переменные, каждая из которых - шум с точки зрения целевой, дают такое совместное распределение с целевой переменной, что становятся значимым взаимодействием. Жадная модель это просмотрит, но это происходит редко, в смысле, такая конфигурация данных.

Что думаете? 

 
Пожалуйста ответьте на один вопрос, кто нибудь из вас зарабатывает на форекс? Я уже потратил 5 лет жизни и более миллиона рублей и ничего не получилось по сегодняшний день.  
 
Alexey Burnakov:

 

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

Именно так. 

И еще вопрос. Вы используете разновидность леса решений, как я понял из этой аббревиатуры (сам такой метод не использовал). 

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

 
Mikhail Gorenberg:
Пожалуйста ответьте на один вопрос, кто нибудь из вас зарабатывает на форекс? Я уже потратил 5 лет жизни и более миллиона рублей и ничего не получилось по сегодняшний день.  
Начните с сигналов, научитесь отбирать прибыльные... 
 
Mikhail Gorenberg:
Пожалуйста ответьте на один вопрос, кто нибудь из вас зарабатывает на форекс? Я уже потратил 5 лет жизни и более миллиона рублей и ничего не получилось по сегодняшний день.  
Не удивительно, вы же не ботаете в понятиях квантилей, кроссвалидаций и бутстрепов.
 
Mikhail Gorenberg:
Пожалуйста ответьте на один вопрос, кто нибудь из вас зарабатывает на форекс? Я уже потратил 5 лет жизни и более миллиона рублей и ничего не получилось по сегодняшний день.  

Я в сумме примерно вышел в ноль (может быть, небольшой плюс). Все мои начинания погубила жадность.

Даже если есть прибыльный робот (у меня он есть)  - в смысле реально прибыльный и постоянный - когда он работате и ты ждешь результатов несколько месяцев, начинает казаться, что 30% прироста это мало. И тут наступает трындец. То есть даже с польностью автоматизированной торговлей, где расчитаны риски и макс.просадка под контролем, психологически лично я живу не комфортно.

Поэтому решил заняться квантилями. 

PS: если я сделаю хорошую автоматическую торговую систему, я сделаю доступной для всех. А special edition сдам в аренду кому-нибудь в бабками.

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

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

Именно так. 

И еще вопрос. Вы используете разновидность леса решений, как я понял из этой аббревиатуры (сам такой метод не использовал). 

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

Почему шум глушит сигнал? Мне не совсем понятно.

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

Может быть, вы поясните вашу мысль подробнее? 

 
Alexey Burnakov:

Почему шум глушит сигнал? Мне не совсем понятно.

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

Может быть, вы поясните вашу мысль подробнее? 

Почему шум глушит сигнал? Мне не совсем понятно.

Не знаю.

У меня есть программка, которая вычисляет меру отношения предиктора к целевой переменной. Это некоторая абстрактная величина.

Если < 1, то шум

1-2 - лучше не связываться

свыше 3 - хорошо.

свыше 5 - счастье, но редко

Так вот, если предикторов с оценкой менее 2 слишком много, то полезные предикторы иными способами кроме моих выделить не удается. Как это истолковать - не знаю. Не будем забывать, что предикторы имеют влияние не только на целевую переменную, но и между собой. Очень часто важен не только перечень удаляемых предикторов , но и порядок их удаление.

К чему я это все?

Базовой проблемой трейдинга является проблема переобучения (сверх подгонки), это самостоятельная проблема и не зависит от применяемых моделей и методов. 

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