Исследования в мат. пакетах - страница 8

 
Alexey Volchanskiy:
Попутный вопрос всем, кто в дискуссии. Вы работаете с тиковыми данными? Я давно отошел от анализа баров, работаю исключительно на методах DSP
Использую M1-бары бидов с асками, а также Level2.
 
zaskok3:
Использую M1-бары бидов с асками, а также Level2.
L2 - это на МТ5?
 
Vladimir Perervenko:

В статье на которую Вы ссылаетесь речь идет о регрессии. Мы занимаемся классификацией. Это две значительные разницы..

И все равно я не понял Ваш вопрос.

Удачи

Вот, не важно, какая регрессия или классификация. Все равно. Это просто статья именно про регрессию.

Уточнить хотел: у вас примеры для обучения с каким шагом берутся, один бар (то есть, входы каждой строки массива данных) или n баров, так чтобы был временной промежуток между строк? 

Я не просто занудствую и уж тем более не хочу дискредетировать вашу работу (мне ваши статьи помогают).

Поясню свою мысль на практическом примере, не выхватывая цитаты из статисческих исследований:

в дереве решений у вас будет, кажем, m терминальных нодов. В каждый нод попадут кейсы, похожие по входным векторам - субпространство значений входов. Так вот, если у вас подряд идущие примеры со сдвигом в бар используют входы, которые заглядывают в прошлое на несколько баров (в худшем случае, на сотни баров), то будет яркая автокорреляция между рядом стоящими точками, но при этом так как мы предсказываем будущее на несколько баров вперед (в худшем случае, также на сотни баров), то и рядом стоящие выходы будут одинаковыми. Например, столбец выходов будет формироваться последовательностями 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1. Так вот, в наши терминальные ноды будут падать десятки одинаковых выходов, относящихся к рядом стоящим - похожим - входам. Можно сказать, что будет избыточность одинаковых примеров, скученных по временным точкам, которые самым категоричным образом перекосят распределение ответов. Именно поэтому "в народе" гуляет рекомендация не держать более одной позиции в рынке, так как при обучении советника в терминале эффект зависимости соседних входов и выходов также имеет место.

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

  И далее, обращаясь к матрице ошибок, которую вы приводите в пример в статье:

OOB confusion matrix:
          Reference
Prediction   -1    1 class.error
        -1 1066  280      0.2080
        1   254 1043      0.1958
Test set
Error rate: 19.97%

Confusion matrix:
          Reference
Prediction  -1   1 class.error
        -1 541 145      0.2114
        1  119 517      0.1871

 

 я могу лишь сказать, что это фантастика. ) Эксперимент проведен с ошибкой. Никогда не получится достичь такой крутой матрицы ошибок на выборке с независимыми примерами, и при этом строго разделяя тестовый набор данных от обучающего по времени (look-ahead bias).

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

 

Можете сами попробовать взять немного побольше данных, и сделать тестовый набор по логике tail(all_data, 1/3) и увидеть как выровняется количество наблюдений в ячейках матрицы. Можно даже применить критерий хи-квадрат, чтобы убедиться, что гадание стало почти случайным.

 Все, что я хотел вам донести, я постарался сделать. Заметьте, с благими намерениями )

Успехов! Алексей

 

 
Alexey Volchanskiy:
L2 - это на МТ5?
MT4. Исходники проскакивали на форуме...
 
zaskok3:
MT4. Исходники проскакивали на форуме...

Друзья и коллеги, у меня вопрос.

Как можно формулизировать алгоритм, исходя из опубликованных данных по трейдингу? 

 
Alexey Volchanskiy:

Друзья и коллеги, у меня вопрос.

Как можно формулизировать алгоритм, исходя из опубликованных данных по трейдингу? 

Я знаю,что написал с ошибкой - именно формулизировать, от слова формула)
 
Alexey Volchanskiy:

Как можно формулизировать алгоритм, исходя из опубликованных данных по трейдингу? 

Если нужно реинженирить ТС по стейту исключительно автоматически, то через машинное обучение:

берете кучу значений индикаторов на входе, на выходе стейт. Подгоняете мат. моделями.

Таким бредом не занимался.

 
Alexey Volchanskiy:
Попутный вопрос всем, кто в дискуссии. Вы работаете с тиковыми данными? Я давно отошел от анализа баров, работаю исключительно на методах DSP

Применение DSP крайне сомнительно.

Для тиковых данных более подойдут идеи коинтеграции. 

 
Alexey Burnakov:
Вот, не важно, какая регрессия или классификация. Все равно. Это просто статья именно про регрессию.

Уточнить хотел: у вас примеры для обучения с каким шагом берутся, один бар (то есть, входы каждой строки массива данных) или n баров, так чтобы был временной промежуток между строк? 

Я не просто занудствую и уж тем более не хочу дискредетировать вашу работу (мне ваши статьи помогают).

Поясню свою мысль на практическом примере, не выхватывая цитаты из статисческих исследований:

в дереве решений у вас будет, кажем, m терминальных нодов. В каждый нод попадут кейсы, похожие по входным векторам - субпространство значений входов. Так вот, если у вас подряд идущие примеры со сдвигом в бар используют входы, которые заглядывают в прошлое на несколько баров (в худшем случае, на сотни баров), то будет яркая автокорреляция между рядом стоящими точками, но при этом так как мы предсказываем будущее на несколько баров вперед (в худшем случае, также на сотни баров), то и рядом стоящие выходы будут одинаковыми. Например, столбец выходов будет формироваться последовательностями 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1. Так вот, в наши терминальные ноды будут падать десятки одинаковых выходов, относящихся к рядом стоящим - похожим - входам. Можно сказать, что будет избыточность одинаковых примеров, скученных по временным точкам, которые самым категоричным образом перекосят распределение ответов. Именно поэтому "в народе" гуляет рекомендация не держать более одной позиции в рынке, так как при обучении советника в терминале эффект зависимости соседних входов и выходов также имеет место.

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

  И далее, обращаясь к матрице ошибок, которую вы приводите в пример в статье:

 

 я могу лишь сказать, что это фантастика. ) Эксперимент проведен с ошибкой. Никогда не получится достичь такой крутой матрицы ошибок на выборке с независимыми примерами, и при этом строго разделяя тестовый набор данных от обучающего по времени (look-ahead bias).

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

 

Можете сами попробовать взять немного побольше данных, и сделать тестовый набор по логике tail(all_data, 1/3) и увидеть как выровняется количество наблюдений в ячейках матрицы. Можно даже применить критерий хи-квадрат, чтобы убедиться, что гадание стало почти случайным.

 Все, что я хотел вам донести, я постарался сделать. Заметьте, с благими намерениями )

Успехов! Алексей

 

Прошу извинить, что влез, но вроде публичная дискуссия.

По мне в Вашем посте смешано в кучу несколько взаимосвязанных, но разных проблемы.

1. Чему учите модель? Трендам?, пробою уровня? Отклонению от чего-то? Казалось бы очень просто подобрать учителя модели, но на практике это встречает определенные трудности. Во всяком случае надо совершенно конкретно под свою торговую идею, например, "торгую тренды", готовить и учителя (вектор, по которому обучается модель).

2. На чем учите?  В своем посте Вы пишите о наличие зависимости между соседними барами. Да, существуют деревянные модели (CORELearn), которые учитывают зависимости между соседними барами, но проблемf, которую Вы поднимаете гораздо шире и неприятнее и мало зависит от используемой модели. Это переобучение модели. По моим представлениям существуют такие наборы данных, которые ВСЕГДА порождают переобученные модели. И никакие приемы устранения переобученности здесь не помогают.

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

Поэтому обязателен этап ручного отбора предикторов по критерию "вроде имеют отношение к нашему учителю - целевой переменной".  

 ПС.

Смешно сказать, но при торговле трендов любые предикторы, полученные путем сглаживания, в частности МА, являются крайне сильным шумом и модели всегда переобучаются. Причем при обучении на выборках ООВ можно получить ошибку и 5%!  

 
Alexey Burnakov:
Вот, не важно, какая регрессия или классификация. Все равно. Это просто статья именно про регрессию.

Уточнить хотел: у вас примеры для обучения с каким шагом берутся, один бар (то есть, входы каждой строки массива данных) или n баров, так чтобы был временной промежуток между строк?

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

Я не просто занудствую и уж тем более не хочу дискредетировать вашу работу (мне ваши статьи помогают).

Да я далек от таких мыслей. Но я действительно не могу понять вопрос.

Поясню свою мысль на практическом примере, не выхватывая цитаты из статисческих исследований:

в дереве решений у вас будет, кажем, m терминальных нодов. В каждый нод попадут кейсы, похожие по входным векторам - субпространство значений входов. Так вот, если у вас подряд идущие примеры со сдвигом в бар используют входы, которые заглядывают в прошлое на несколько баров (в худшем случае, на сотни баров), то будет яркая автокорреляция между рядом стоящими точками, но при этом так как мы предсказываем будущее на несколько баров вперед (в худшем случае, также на сотни баров), то и рядом стоящие выходы будут одинаковыми. Например, столбец выходов будет формироваться последовательностями 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1. Так вот, в наши терминальные ноды будут падать десятки одинаковых выходов, относящихся к рядом стоящим - похожим - входам. Можно сказать, что будет избыточность одинаковых примеров, скученных по временным точкам, которые самым категоричным образом перекосят распределение ответов. Именно поэтому "в народе" гуляет рекомендация не держать более одной позиции в рынке, так как при обучении советника в терминале эффект зависимости соседних входов и выходов также имеет место.

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

  И далее, обращаясь к матрице ошибок, которую вы приводите в пример в статье:

 

 я могу лишь сказать, что это фантастика. ) Эксперимент проведен с ошибкой. Никогда не получится достичь такой крутой матрицы ошибок на выборке с независимыми примерами, и при этом строго разделяя тестовый набор данных от обучающего по времени (look-ahead bias).

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

 

Можете сами попробовать взять немного побольше данных, и сделать тестовый набор по логике tail(all_data, 1/3) и увидеть как выровняется количество наблюдений в ячейках матрицы. Можно даже применить критерий хи-квадрат, чтобы убедиться, что гадание стало почти случайным.

Так Вы выложите пример, что на пальцах объяснять. . Или Вы думаете, что я не проводил такие проверки?

 Все, что я хотел вам донести, я постарался сделать. Заметьте, с благими намерениями )

Я действительно хочу понять, что Вы пытаетесь донести. На примере, я думаю,  это будет  более понятно.

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

Без обид.

Удачи


 

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