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

 
Aleksey Terentev:
И да, тут вся соль в нормализации. Она будет скакать, и на разных промежутках времени нормализовать данные по разному.

это да, попробую как-нибудь решить

 
Maxim Dmitrievsky:

Нет, я же уже привел скрин, приращения имеют стационарный вид и симметричны по обе стороны от ноля, поэтому вероятности будут +- одинаковые


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

с уважением.
 
Andrey Kisselyov:
возможно и будет, но когда я попытался выявить симметричность в поведении цены я ее не обнаружил. как следствие разные приращения будут иметь разную вероятность в разных направлениях.

с уважением.

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

 
Maxim Dmitrievsky:

здесь вероятность по сути 0 и 1 - принадлежит к классу или не принадлежит, а все остальные значения это сила сигнала. Поэтому даже если приращения не симметричны для бай и селл, НС это уже сама по себе должна усвоить :)

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

с уважением.

 
Andrey Kisselyov:

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

с уважением.


тогда отнесем к обоим классам с одинаковой вероятностью

 
Maxim Dmitrievsky:

тогда отнесем к обоим классам с одинаковой вероятностью

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

с уважением.
 
Maxim Dmitrievsky:

На примере линейного классификатора. Допустим, мы чему-то обучаем классификатор, на 2 выхода подаем приращения цен от 0 до 1, где 0.5 это нет сигнала (сумма выходов всегда равна единице)

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

Дальше модель обучится, и некоторые классификационные модели при предсказании действительно могут давать вероятность класса вместо строгих значений -1 и 1. Но эта вероятность совсем не связана с величиной прироста, её можно трактовать как "цена с вероятностью X% наверно вырастет, на неизвестную величину прироста". 


Maxim Dmitrievsky:

А если мы берем нейронную сеть с нелинейной классификацией, будут ли показания выходов говорить о силе сигнала, либо же они будут свидетельствовать только о степени принадлежности к 1 из 2-х классов, и не более

Тут будет опять только степени принадлежности к 1 из 2-х классов, и не более. Требование как на картинке не будет выполняться. Если хочется знать величину прироста, то нужно создавать кучу классов на несколько ступеней прироста.



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

Хотя конкретно на форексе я с регрессией добился не больше чем с просто классификацией. Модель выдавала при предсказании очень маленькие значения, хоть и угадывая направление в более чем 50% случаев, но по предсказанию невозможно было оценить размер ожидаемого прироста. Результат в итоге трактовался как и с двумя классами - "цена наверное вырастет, на неизвестную величину". 

 
Maxim Dmitrievsky:

Помогите осмыслить процесс :)

На примере линейного классификатора. Допустим, мы чему-то обучаем классификатор, на 2 выхода подаем приращения цен от 0 до 1, где 0.5 это нет сигнала (сумма выходов всегда равна единице)

Если мы построим просто линию регрессии, например, по ценам, то бОльшие приращения цен будут лежать дальше от линии, меньшие ближе, то есть если на выходах классификатора будет 0.9; 0,1 то положительное приращение лежит далеко от линии, т.е. сигнал 0.9 будет сильнее чем сигнал 0.6 на покупку

А если мы берем нейронную сеть с нелинейной классификацией, будут ли показания выходов говорить о силе сигнала, либо же они будут свидетельствовать только о степени принадлежности к 1 из 2-х классов, и не более

Т.е. будет ли соблюдаться такое условие:


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

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

P.S.
 уже написали в предыдущем сообщении - приблизительно то же имел ввиду...

 
Dr. Trader:

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

Дальше модель обучится, и некоторые классификационные модели при предсказании действительно могут давать вероятность класса вместо строгих значений -1 и 1. Но эта вероятность совсем не связана с величиной прироста, её можно трактовать как "цена с вероятностью X% наверно вырастет, на неизвестную величину прироста". 


Тут будет опять только степени принадлежности к 1 из 2-х классов, и не более. Требование как на картинке не будет выполняться. Если хочется знать величину прироста, то нужно создавать кучу классов на несколько ступеней прироста.



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

Хотя конкретно на форексе я с регрессией добился не больше чем с просто классификацией. Модель выдавала при предсказании очень маленькие значения, хоть и угадывая направление в более чем 50% случаев, но по предсказанию невозможно было оценить размер ожидаемого прироста. Результат в итоге трактовался как и с двумя классами - "цена наверное вырастет, на неизвестную величину". 


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

 
Ivan Negreshniy:

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

P.S.
 уже написали в предыдущем сообщении - приблизительно то же имел ввиду...


да, получается что регрессией будет ловчее (я кстати RF использую, не нейросеть)

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