Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 551
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поддержу тему: Последние дни тоже задумался о сокращении количества входных переменных дабы ускорить процесс оптимизаци. И надо сказать, что некоторые успехи в отсеивании ненужных входов за эти дни приобрёл.
Вопрос: Какие входные переменные нужно убрать из обучающей выборки так как они являются шумом????
На самом деле вопрос этот очень не тривиален, ведь если бы мы знали какие входа являются шумом, а какие нет. То построение модели было бы делом простым. А когда у нас все входа имеют то или иное отношение к выходу. Что тогда????? Какие удалить?
Для меня ответ оказался очень простым.... Нужно оставить только те входные данные, которые имею нормальный закон распределения. Когда гистограмма имеет вид нармального распределения и центральная её часть находится в середине диапазона. Именно такие переменные могут быть полезны для обучения. Я не говорю что именно в таких переменных и есть альфа для выхода. Её там может и не быть. Но сам поиск будет более тщательный и в таких переменных алгоритму больше шансов зацепится и увеличить количество входов. Вот для примера:
Этот вход считает хорошим. Так как имеет нормальное распределение и центральная часть гистограммы находится в середине диапазона
А вот эти данные имеют скошенное распределение с выпадами за пределами основной гистограмм. Эта гистограмма говорит о том что данные скошены в одну из сторон, что вряд ли будут полезны для построения модели
На начальном этапе выбора входных данных мы не можем судить о значимости того или иного входа для выхода. Потому как это и есть работа для оптимизатора. На начальном этапе мы можем только судить о распределении переменной относительно нуля. И если это распределение имеет нормальный характер (данные равномерно распределены с одно и другой стороны относительно нуля), то скорее всего у оптимизаторы будет больше выбора в отличии от скошенных данных относительно нуля, когда большая часть данных находится в отрицательной зоне или наоборот.
Так что, как то так....
смотря для какой модели ты их выбираешь :) если после удаления неинформативного признака модель не сильно теряет в точности то и нафиг он нужен. Удаляется, заново переобучается - смотрим есть ли опять что-нибудь лишнее.
а если у тебя регрессионная модель с нестационарным процессом на выходе, то таим подходом ты наоборот все испортишь, т.к. она переобучится на шумах нормально распределенных
смотря для какой модели ты их выбираешь :) если после удаления неинформативного признака модель не сильно теряет в точности то и нафиг он нужен. Удаляется, заново переобучается - смотрим есть ли опять что-нибудь лишнее.
а если у тебя регрессионная модель с нестационарным процессом на выходе, то таим подходом ты наоборот все испортишь, т.к. она переобучится на шумах нормально распределенных
Классификация относительно нуля. Для этих целей данный подход в самый раз ИМХО!
А вот эти данные имеют скошенное распределение с выпадами за пределами основной гистограмм. Эта гистограмма говорит о том что данные скошены в одну из сторон, что вряд ли будут полезны для построения модели
В статьях Владимира, есть пункт о удалении выбросов, если выбросы на вашем рисунке №2 удалить, то получится более нормальное распределение.
А еще есть центрирование входных данных - оно еще улучшит ситуацию.
В статьях Владимира, есть пункт о удалении выбросов, если выбросы на вашем рисунке №2 удалить, то получится более нормальное распределение.
А еще есть центрирование входных данных - оно еще улучшит ситуацию.
Что делать когда этот выброс поступит в новых данных? Как его интерпретирует модель?
Удалить выброс из данных это значит удалить весь входной вектор при данном выбросе, а вдруг в этом векторе при других входах есть важные данные. Если природа входа склонна к таким выбросам, то лучше этот вход не брать вообще. ИМХО.
Классификация относительно нуля. Для этих целей данный подход в самый раз ИМХО!
да, если выходы распределены примерно по тому же закону, если нет - будет то же самое переобучение
В статьях Владимира, есть пункт о удалении выбросов, если выбросы на вашем рисунке №2 удалить, то получится более нормальное распределение.
А еще есть центрирование входных данных - оно еще улучшит ситуацию.
удаление выбросов это статистическая мера или костыль (а-ля стремление сделать все стационарным), которая может значительно ухудшить предсказаниия на форе и свести всю систему на нет (будет работать только там где рынок нормально распределен)
надо понимать где НС вообще используетс и для каких целей.. а не просто по книжкам делать че попало :)
у Владимира нет ни одного подтверждения робастности его моделей.. только очень грубые тесты моделей в том же R
так что я хз чему в этой жизни верить. .все нужно перепроверять
да, если выходы распределены примерно по тому же закону, если нет - будет то же самое переобучение
Ну я всегда балансирую выход на предмет равного количества класса "0" и "1". Тоесть выход у меня сбалансирован и при этом беру входа с нормальным распределением относительно нуля. Оптимизатор приходится запускать несколько раз, но как правило чем больше входов используется в модели, тем лучше её показатели. Поэтому выбираю именну ту модель, которая является более параметрична с максимальным результатом на тестовом участке. Дальше бустинг и другие примочки...
Что делать когда этот выброс поступит в новых данных? Как его интерпретирует модель?
Удалить выброс из данных это значит удалить весь входной вектор при данном выбросе, а вдруг в этом векторе при других входах есть важные данные. Если природа входа склонна к таким выбросам, то лучше этот вход не брать вообще. ИМХО.
В новых данных выбросы тоже удаляются, по полученному диапазону при обучении. Допустим удалили от -100 до +100 при обучении, запомнили - и удалили по этим же уровням на новых данных. Делать это надо на абсолютных значениях, а потом можно нормировать. Без удаления выбросов, у меня центр отнормированных данных все время смещался и они становились не сравнимыми) с самим собой на неделю раньше.
А выбросы появляются только в моменты выхода новостей или экстраординарных событий, но каждый раз сила этих выбросов будет разной. Для себя решил, что их лучше отбросить, ну и Владимир, это не сам придумал, видимо это подтверждено исследованиями многих людей.
Ну я всегда балансирую выход на предмет равного количества класса "0" и "1". Тоесть выход у меня сбалансирован и при этом беру входа с нормальным распределением относительно нуля. Оптимизатор приходится запускать несколько раз, но как правило чем больше входов используется в модели, тем лучше её показатели. Поэтому выбираю именну ту модель, которая является более параметрична с максимальным результатом на тестовом участке. Дальше бустинг и другие примочки...
то есть уже не jPredictor наконец-то? :)