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

 
Aleksey Vyazmikin #:

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

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

Надо не "ощущать", а выкладывать код  и результаты кода.

Жадный очень! А жадный из-за лени.

500$ и все ответы.  А потом лежишь на диване и "ощущаешь" с облегченным карманом, но с результатом. 

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

Надо не "ощущать", а выкладывать код  и результаты кода.

Жадный очень! А жадный из-за лени.

500$ и все ответы.  А потом лежишь на диване и "ощущаешь" с облегченным карманом, но с результатом. 

Так не ленитесь - попробуйте осилить задачку!

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

У меня есть свой метод вытягивания полезной информации, вот и хочу сравнить с другими.

 
mytarmailS #:
Следиш но ничего не понимаешь...(

Например то что - для решения любой задачи нужен критерий решения задачи,  он же ошибка))) 


Сейчас заметил, что пост ты дополнил. Поэтому позволю себе ответить.

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

Ошибайтесь и дальше)) Отвечать и мешать больше не буду.

 
Uladzimir Izerski #:

Сейчас заметил, что пост ты дополнил.

более того , я и на твой вопрос давно ответил  ))


Uladzimir Izerski #:

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

ты очень, очень узко смотришь на понятие "ошибка"  

именно в том случаи была ошибка прогноза по индикатору,  

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

или динамика роста капитала,

или например количество ошибок алгритма  (кол. ошибок алгоритма это тоже ошибка)

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

И еще милионы разных вариаций, и даже то что ты делаешь, у  тебя тоже есть некий критерий (хорошо/плохо) . Это тоже ошибка..

То что ты этого не понимаешь, не признаешь, это как бы только твое...


Кароч ошибка это критерий хорошо\плохо выраженый цифрой

 

Уладзимир опять пытается своим по-детски пытливым умом постичь великие для него смыслы и дискредитировать участников данной темы, а именно эти смыслы:

Реконструкция уравнений: «черный ящик»

«Черный ящик» – это одновременно и наиболее трудная, и самая «соблазнительная» постановка задачи моделирования, когда априорная информация об объекте, а, следовательно, и о структуре модели отсутствует. Интрига состоит в том, что модель, способную воспроизвести наблюдаемое поведение или дать прогноз дальнейшей эволюции, нужно получить только из наблюдаемого ряда, т.е. практически «из ничего».Шансы на успех невелики, но в случае удачи «хорошая» модель становится очень ценным инструментом для характеристики объекта и понимания «механизмов» его функционирования: «почти блеф может привести к большому выигрышу». Отсутствие априорной информации вынуждает использовать универсальные структуры модельных уравнений, например, в качестве функций в правых частях используют искусственные нейронные сети, радиальные базисные функции, алгебраические многочлены и т.д. Такие модели зачастую оказываются многомерными и содержат очень много неизвестных параметров.


ЗЫ а еще больше года назад писал, что сам использует нейросети и что все его ТС на них построены.. такой клоун что абздец

#870

#1826

Дорогой наш Уладзимир очень быстро, за 2 месяца освоил нейросеть, оказывается

Хорошо бы так, но 2-мя годами ранее ему НС уже выдавала сигналы

#5758

То есть тип вообще несет какой-то бред в алкогольном угаре и врет, врет, врет... и дискредитирует только себя и свои полоумные индикаторы

 

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

иначе была бы однозначность, не может же быть столько прибыльных ТС за раз

попробовал по науське Саныча отобрать через std - примерно такая же картина. Но я отбирал сеты признаков, а не каждый отдельно.

посмотрю по признакам отдельно еще

 
>>> results = []
>>> for i in range(25):
...     pr = get_prices()
...     pr = labeling_shift(pr,shift=i)
...     mi = mutual_info_classif(pr[pr.columns[1:-1]], pr[pr.columns[-1]])
...     results.append([mi.mean(), mi.std(), mi, i])
...     print(i)
... 
results.sort()
results[-1]    
pd.DataFrame(results)

лучший результат - лаг 9, но std получше у 0-го:

15  0.002473  0.002008  [0.0, 0.0, 0.0, 7.738132773948969e-05, 0.00428...   0
16  0.002482  0.002536  [0.0027194272625081783, 0.004082692968791601, ...   4
17  0.002544  0.002137  [0.00016451381901605444, 0.003159073557252867,...   2
18  0.002678  0.002174  [0.0, 0.0015686230398428425, 0.000974887322880...   8
19  0.002749  0.001978  [0.0, 0.001425018820565338, 0.0, 0.0, 0.002788...   1
20  0.002793  0.002378  [0.00535509344523355, 0.0, 0.00400320235670181...  12
21  0.002897  0.002330  [0.00406257691063705, 0.001421806087245736, 0....  13
22  0.003113  0.002501  [0.0, 0.0, 0.004822852461999094, 3.66068989796...  10
23  0.003195  0.002560  [0.0024128008240758003, 0.0, 0.001845732619932...  11
24  0.003255  0.002406  [0.0, 0.0, 0.0034648745240082324, 0.0063568287...   9

Окейб посмотрим на бэктесты обеих, 9-я:

0-я:

У нулегого, логично, разброс значений на бэктесте ниже, потому что std для mi изначально меньше. Но он не влияет на результаты на OOS, так же как и более высокое значение mi (Mutual information)

Хорошо, допустим идет переобучение на большое число признаков (здесь их 14)

MA_PERIODS = [i for i in range(10, 150, 10)]

Давайте смотреть статистики каждого признака и выберем только лучшие для модели с 9-м лагом:

>>> results[24]
[0.003255328338368026, 0.002405621052220332, array([0.        , 0.        , 0.00346487, 0.00635683, 0.00490859,
       0.        , 0.00305732, 0.00268664, 0.00877952, 0.00305562,
       0.00138638, 0.00320064, 0.00415751, 0.00452067]), 9]
>>> 

Некоторые фичи вообще занулены, то есть не имеют никакой ценности. Выберем только те, что больше 0.004 и обучимся на них:

>>> per = results[24][2]
>>> np.array(per) > 0.004
array([False, False, False,  True,  True, False, False, False,  True,
       False, False, False,  True,  True])
>>> 

MA_PERIODS = [40, 50, 90, 130, 140] - отобранные фичи

Обучаемся и проверяем:

Мнде..

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

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

 
Maxim Dmitrievsky #:

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

иначе была бы однозначность, не может же быть столько прибыльных ТС за раз

попробовал по науське Саныча отобрать через std - примерно такая же картина. Но я отбирал сеты признаков, а не каждый отдельно.

посмотрю по признакам отдельно еще

std числовой оценки связи признака с целевой?

Сначала надо удалить коррелированные. На моих признаках оптимум корреляции, почему-то, 75%.

Потом отобрать 5-10 признаков с максимальной оценкой.

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

Ошибка предсказания должна быть менее 30%. Если это не так, то признаки придется выбросить.

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

std числовой оценки связи признака с целевой?

Сначала надо удалить коррелированные. На моих признаках оптимум корреляции, почему-то, 75%.

Потом отобрать 5-10 признаков с максимальной оценкой.

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

Ошибка предсказания должна быть менее 30%. Если это не так, то признаки придется выбросить.

там по энтропии видно, что связь никакущая (0.003), а должна стремиться к 1

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

в целом даже если все хорошо (есть хорошие в наборе), остальные фичи удалять не обязательно

Это так, заготовка для других вещей типа нестандартного окна
 
Maxim Dmitrievsky #:

там по энтропии видно, что связь никакущая (0.003), а должна стремиться к 1

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

в целом даже если все хорошо (есть хорошие в наборе), остальные фичи удалять не обязательно

Сама оценка штука относительная.

Повторю картинки.

Плохо, безнадежно%


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



И мусор обязательно удалять, а то на наборе обучения фишка может лечь в пользу мусора, легче найти значение, которое ведет к оптимуму. 

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