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

 
Mihail Marchukajtes:

Ну и в добавок оценки модели.

В предикторах указан номер столба в файле

258 общее число векторов. Удалил класс 0 и оставил клас 2 переименовав его в ноль, так как по количеству с классом 1 они были сбалансированы, 19.60 это квадратичная ошибка, вернее разница между прямо линейной и квадратичной она должна стремится к нулю, 79.141 это Генеральная обобщающая способность, при стремлении к показателю 100 разница между ошибками снижается, 69.767 это спицифичность. Общее количество контрольного участка 75 при этом генеральная обобщающая способность 70. Ответ НЕ ЗНАЮ мы получили на 77 векторах общей выборки где на контрольном участке их было 17.

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

Адабуст мне 79 на 79 дал

 
Maxim Dmitrievsky:

Адабуст мне 79 на 79 дал

Проторговать можешь мою модель на ООС?
 
Mihail Marchukajtes:
Возможно Вы используете такую конфигурацию ИИ которая используя весь набор может получить высокую оценку обучения

Это оно и есть. Попробую по другому объяснить. Допустим есть классическая система на ма(100) и цене. Пересечение вверх покупка, пересечение вниз продажа. Обычно в сеть подают ма и цену на вход и сигналы системы на выход. Здесь получается экономия на входах, так как ма заранее посчитали и в готовом виде скормили сети. А можно подать сети не ма, а 100 лагов цены (чтобы сеть сама посчитала) на вход и сигналы системы на выход. В таком виде сети нельзя подавать меньше 100 лагов цены.

 
Rorschach:

Это оно и есть. Попробую по другому объяснить. Допустим есть классическая система на ма(100) и цене. Пересечение вверх покупка, пересечение вниз продажа. Обычно в сеть подают ма и цену на вход и сигналы системы на выход. Здесь получается экономия на входах, так как ма заранее посчитали и в готовом виде скормили сети. А можно подать сети не ма, а 100 лагов цены (чтобы сеть сама посчитала) на вход и сигналы системы на выход. В таком виде сети нельзя подавать меньше 100 лагов цены.

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

Цытирую:

Кхе, кхе... смешно. Ладно не буду томить.Ты был добр ко мне поэтому расскажу. Я же практик и нередко натыкаюсь на разного рода явления, которые в последствии пытаюсь как то объяснить выстроив теорию или проработать детально обнаруженные мною эффекты. Но самое интересное это получать ответы на свои вопросы. Итак у нас был вопрос. Как при обучении классификатора снабдить его историческими данными, а не текущими. При построении прогнозной модели на основании регрессии очень важен порядок данных, то есть если из истории был сформирован обучающий фал то ни в коем случае нельзя менять их местами или перемешивать. Именно последовательность данных (идут в строгом порядке) позволяет прогностическим моделям видеть всю историю обучающей выборки и как я говорил самые первые данные в обучающей выборке влияют на последнии благодаря именно упорядочиванию. То есть из прошлого в будущее и их ни в коем случае нельзя перемешивать. Помнишь Макс как то пытался но итог был удручающим. Потому как перемешивание не применимо к регрессии. Другое дело классификация, когда метод рандомного перемешивания тренировочного набора является обязательним для невилирования переобучения. Другими словами мы получаем истиную оценку качества обучния, а не завышенную потому что данные были удачно выстроены. Прокрутили 10 эпох, перемешали набор, снова крутим. снова перемешиваем. В этом случае связи между обучающими векторами отсутствуют и по сути каждый вектор идёт сам по себе.
2020.07.02 22:47
Ну вот я и задумался, а как же сделать так чтоб НС предоставить на обучение не только значения индикаторов для текущего сигнала, но и историю. В итоге пришла мысль. Да очень просто. Сохраняем индикаторы в момент сигнала, потом берем для текущего сигнала значения индикаторов предыдущего сигнала, потом ещё предыдущего и т.д. В итоге для текущего сигнала сохраняются не только его показатели, но и показатели предыдущих сигналов. На данный момент я беру лаг в 24 сигнала. То есть для текущего сигнала я сохраняю значение индикаторов за 24 сигнала назад. Я помнится говорил на форуме что у меня обучающий фал содержит 7500 столбцов для 50 строк, но ни у кого не хватило даже додуматься а откуда у него столько. Проблема области МО, мы тут слишком все умные :-)
2020.07.02 22:52
Теперь давай к делу:
Как Вы заметили я сохраняю данные по 15 инструментам на основании этих данных я строю несколько индикаторов. Беру стахостическую функцию. Накопительную стандартное отклонение да и пожалуй всё. В итоге у меня 307 уникальных входных столбиков, первичных для текущего сигнала. В итоге я беру эти 307 столбиков для текущего сигнала и добавляю к нему (сигналу) ещё по 307 столбиков из 24 четырёх предыдущих сигналов. Смысл данной постановы при появлении сигнала предъявить НС данные сразу за последние 24 сигнала. Это и является тем преобразованием которое позволяет классификации взглянуть в глубь истории на текущем сигнале. По сути это лаг до 24 глубины
2020.07.02 22:59
НО самое интересное я оставил на последний абзац: Уверен ты слышал про адон vtreat для Р. Так вот этот зверь осуществляет предобработку данных выявляя значимые столбики для выходной переменной. Как правило после его обработки остаётся 130-180 Реально значимых столбиков. Но парадокс оказался в том что текущие значения индикаторов для текущего сигнала крайне редко попадают в эту выборку. Прикинь, крайне редко. Очень часто попадают данные с большими лагами. тот же 24 лаг не редкий гость в пост обработанном файле. То есть смысл такой что важными для целевой функции являются значения индикаторов которые были 24 сигнала назад. По сути идея проста как 5 копеек. Сохранить достаточно большую по длине выборку, потом размножить столбики со смещением вниз на одну клетку екселя и произвести предобработку. Всё профит!


Цытата закончена:

Сеть ничего сама сделать не сможет. То что Вы ей подадите на вход то и получите в результате. Не все лаги полоезны как показывает практика, а в Вашем наборе нет ни одного столбца который хоть как то бы помого НС получить адекватную модель..... Удачи!!!!!

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 

И когда всё сделано правильно модель работает как то так.....


 
Valeriy Yastremskiy:

Да, обшибся) Видимо глюки это все при парсинге, или на данных где чтение идет.

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

Ну да, бесплатный и хороший календарь вряд ли вообще возможен)

 
Aleksey Nikolayev:

Ну да, бесплатный и хороший календарь вряд ли вообще возможен)

Да календарь то можно и плохой, главное длинный и точный) в архиве) это сервис монетный) о пока тока парсить самому)
 
Mihail Marchukajtes:

Спасибо, интересно, подавать предыдущие сигналы точно не пришло бы в голову. Напрашивается вопрос может сеть вообще лишнее звено?

Мне сеть тем и интересна, что бы не отбирать признаки. Иначе проще сделать классическую систему.

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

 
Rorschach:

Спасибо, интересно, подавать предыдущие сигналы точно не пришло бы в голову. Напрашивается вопрос может сеть вообще лишнее звено?

Мне сеть тем и интересна, что бы не отбирать признаки. Иначе проще сделать классическую систему.

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

К сожалению машки Вам не помогут увы. Вы куда пришли? Как это место называется?
 
Maxim Dmitrievsky:

Адабуст мне 79 на 79 дал

Ну что Максим, с дулся? Подогрелся качественной моделью и теперь бабло рубишь на право и налево???? То то и оно, что все мы тут ВАЖНЫЕ когда на белом троне сидим. Я сейчас планирую формировать команду и теперь точно определился что никого из присутствующих тет не позову. Не на того напали.... :-)
Причина обращения: