Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 35
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто нибудь может мне объяснить очень простым но достаточно точным языком по каким принципам RF строит шкалу важности предикторов?
У меня вот есть набор с двумя классами в целевой , количество наблюдений в одном классе в сотни раз больше чем во втором, я откуда то помню что один из критериев важности проедикторов у RF является частота появлений какого то наблюдения.
Так вот мне интересно, не подавляет ли RF тот класс в котором мало наблюдений при расчете важности предикторов
Я так подозреваю что вы на форексе, на форексе нет брокеров и они не торгуют, это конторки работающие по документам букмекеров
п.с. что думаете о моем предложении по отбору признаков?
Ну да, дилинг центр а не брокер. Но выход на межбанк им всё равно никто не отменял.
Ваш отбор вроде бы логичный. Но я решил не отбирать индикаторы по своим понятиям, ибо это никогда не приносило улучшения модели. А лучше дать много индикаторов алгоритму для отбора, пускай он решает что хорошо а что нет. Иногда у меня скользящие средние тоже попадают в финальный набор предикторов, я думаю они могут давать какую-то информацию не сами по себе, а в комбинации с другими индикаторами. Но результаты у меня пока-что нестабильные, гарантировать их полезность ещё не могу.
Ещё я бы не пытался предсказать именно разворот, в тренировочных данных класс "всё по-старому" будет иметь в десятки раз больше случаев чем "разворот", а говорят что отношение классов для обучения лучше иметь в отношении 50/50.
У меня есть алгоритм, который определяет предсказательную способность предиктора для конкретной целевой переменной. Если кратко, то это осцилляторы и разные приращения. Если конкретный предиктор облюдает предсказательной способностью для конкретной целевой переменной, то из этого не вытекает, что он будет обладать предсказательной способностью для другой целевой переменной. Более того, предиктор может иметь предсказательную способность в одном окне и не иметь в другом.
Алгоритм работает хорошо. Отобранные им предикторы не приводят к переобучению моделей.
ПС
По моему алгоритму скользящие любых типов не обладают предсказательной способностью как это не смешно звучит.
Переобучаются все модели с любыми наборами данных.
Другой вопрос, что вероятность переобучения при правильном выборе, трансформации предикторов значительно снижается.
Вероятность переобучения в равной степени зависит от набора данных и типа модели.
Не нужно иллюзий.
Посмотрите пакет pbo, там интересно этот вопрос рассмотрен.
Удачи
Переобучаются все модели с любыми наборами данных.
Другой вопрос, что вероятность переобучения при правильном выборе, трансформации предикторов значительно снижается.
Вероятность переобучения в равной степени зависит от набора данных и типа модели.
Не нужно иллюзий.
Посмотрите пакет pbo, там интересно этот вопрос рассмотрен.
Удачи
Посмотрел. Исходные посылки совершенно не понятны. Особенно "рост числа наблюдений ведет к переобучению"???
Я использую совершенно понятный и, главное, практически ценный, критерий.
Суть излагал много раз. Повторю.
Я использую следующий критерий переобучения (сверхподгонки): если ошибка при обучении НЕ равна ошибке на других данных, вне выборки обучения, т.е. на других временных интервалах, то модель переобучена. Т.е. при обучении модель выхватила некоторые частности, которые она не встретила на последующих временных интервалах.
Как это реализуется на практике.
Берем котир, например 10 000 бар.
Делим механически, по номеру бара без всяких там изысков, что для меня принципиально, так как на практике будет именно так, а не как иначе.
Итак беру первые бары с номера 1 по 7000. Эти бары использую для обучения тестирования и валидации. Для дележа на три набора использую, например, sample, или то, что встроено в саму модель.
Получаю три цифры результативности модели. Если модель не переобучена, то эти цифры примерно равны.
Далее самое главное.
Беру файл с барами 7001 по 10 000. И использую обученную на предыдущих барах модель. Получаю ошибку. Если ошибка незначительно отличается от предыдущих трех, то модель НЕ переобучена. Обычно считаю, что если расхождение 15-20%, то не переобучена. Если одна из цифр отличает от какой-либо другой более, чем на 50%, значит модель переобучена.
Так вот своей методике я из некоторого набора предикторов отбираю некоторое подмножество. Если таковые находятся, что совсем не обязательно, то в дальнейшем такие модели как randomforest, SVM, ada и их разновидности НЕ переобучаются! Про другие модели не знаю - не пользуюсь.
Это не иллюзии. Это факт.
Кто нибудь может мне объяснить очень простым но достаточно точным языком по каким принципам RF строит шкалу важности предикторов?
У меня вот есть набор с двумя классами в целевой , количество наблюдений в одном классе в сотни раз больше чем во втором, я откуда то помню что один из критериев важности проедикторов у RF является частота появлений какого то наблюдения.
Так вот мне интересно, не подавляет ли RF тот класс в котором мало наблюдений при расчете важности предикторов
У Вас дикая НЕ сбалансированность классов, а это не есть хорошо. Есть алгоритмы балансировки классов, но в Вашем случае у меня ничего не получилось. Я пытался разворот ЗЗ обозначить не одним номером бара, а несколькими, до и после разворота. Это уменьшало не сбалансированность, но проблему не решало.
Я не нашел моделей, которые бы гарантировано работали на НЕ сбалансированных классах.
У Вас дикая НЕ сбалансированность классов, а это не есть хорошо. Есть алгоритмы балансировки классов, но в Вашем случае у меня ничего не получилось. Я пытался разворот ЗЗ обозначить не одним номером бара, а несколькими, до и после разворота. Это уменьшало не сбалансированность, но проблему не решало.
Я не нашел моделей, которые бы гарантировано работали на НЕ сбалансированных классах.
Мне про отбор признаков вопрос интересен
Все, что считал нужным, я ответил.
Если у Вас имеется набор признаков с целевой переменной, присылайте, проведу отбор, потом построите на отобранных модели и посмотрим результат
Никто случайно не пробовал применить нелинейный pca?? ссылку на который я оставил выше, у меня что то не получается новые данные им распознавать, ошибку выдает
Мне кажется этого пакета недостаточно для создания модели способной предсказывать целевую переменную. Всё что я нашёл в хелпе - построить PCA модель на основе предикторов, целевой переменной там вообще нету.
Это создаст объект resNipals (Nonlinear Estimation by Iterative Partial Least Squares) с 5 главными компонентами для анализа таблицы metaboliteDataComplete. Вместо metaboliteDataComplete можно подставить свою таблицу с предикторами. Важно не подавать сюда целевую переменную, она будет использована позже.
Но этого хватит только для анализа взаимосвязей между переменными, путём изучения разных графиков. Для создания предсказательной модели после этого строится модель линейной регрессии, которая использует главные компоненты PC1, PC2,PC3,PC4,PC5 как входные переменные (x1,x2,x3,...). И в линейную модель уже подаётся целевая переменная Y как требуемый результат. Проблема в том что resNipals это какой-то объект класса "pcaRes" из пакета pcaMethods. Как с ним всё это сделать я в хелпе не нашёл.
Если бы это была PCA модель из пакета caret, то дальше было бы так:
Но с resNipals это не работает, по идее в пакете pcaMethods должны быть какие-то свои функции для работы с этим объектом, но я ничего не нашёл.