Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2111
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не согласен. Квантованием вы уменьшаете количество информации. Максимальное число квантования оставит максимум информации.
Но квантовать на 65535 дольше чем на 255.
Зря, что несогласны - информации там мало и её надо отделить от шума. Нам (мне) нужны устойчивые зависимости, а не те, что повторяются раз в 5 лет и поэтому по ним недостаточно просто статистики для оценки их склонности к конкретной целевой, использование недостаточного числа примеров приводит просто к подгонке.
Да, я работаю над этим - изначально это делалось для генетических деревьев.
Необходимо оценивать распределение информации по выборке и её связь с целевой. Я смотрю на то, как уменьшается ошибка на конкретном участке квантования и какой процент примеров она содержит - сбалансированность этих показателей позволяет отобрать лучшие разбиения.
Как вы оцениваете ошибку при квантовании. Её же можно получить только прогнав обучение, причем сразу по всем столбцам, а не по каждому, квантуемому вы настоящий момент.
Aleksey Vyazmikin:
Как вы оцениваете ошибку при квантовании. Её же можно получить только прогнав обучение, причем сразу по всем столбцам, а не по каждому, квантуемому вы настоящий момент.
Я оцениваю изменение баланса целевых относительно всей выборки. Это особенно актуально, если целевых более двух.
Я оцениваю изменение баланса целевых относительно всей выборки. Это особенно актуально, если целевых более двух.
В любом случае очередной сплит будет разбиваться через точку квантования на 2 части.
Вы квантованием крупных 255 кусков можете сдвинуть границу кванта достаточно грубо - 5-10-20% от его размера. Применив 65535 квантов вы будете иметь шаг в 0,5% от вашего кванта. А дерево подберет лучший вариант.
Хотя вряд ли. Обычно бьет просто по середине или по четвертинкам. С 65535 квантами середина найдется точнее, а с 255 грубее в 256 раз.
В любом случае очередной сплит будет разбиваться через точку квантования на 2 части.
Вы квантованием крупных 255 кусков можете сдвинуть границу кванта достаточно грубо - 5-10-20% от его размера. Применив 65535 квантов вы будете иметь шаг в 0,5% от вашего кванта. А дерево подберет лучший вариант.
Хотя вряд ли. Обычно бьет просто по середине или по четвертинкам. С 65535 квантами середина найдется точнее, а с 255 грубее в 256 раз.
Вот именно, что будет разбиение, но разбиение будет не на 50% а неравномерно - в зависимости от корреспонденции с верхним сплитом(сплитами), но логика подсказывает, что шансы будут разные, если искать там, где насыщенный отрезок единицами или там где их равномерное количество (относительно баланса всей выборки). Цель - получить в листьях не менее 1% примеров от выборки и при этом порядка 65% меток одного класса.
Вот именно, что будет разбиение, но разбиение будет не на 50% а неравномерно - в зависимости от корреспонденции с верхним сплитом(сплитами), но логика подсказывает, что шансы будут разные, если искать там, где насыщенный отрезок единицами или там где их равномерное количество (относительно баланса всей выборки). Цель - получить в листьях не менее 1% примеров от выборки и при этом порядка 65% меток одного класса.
Думаю это весьма сложная задача.
А если такая фича найдется, то можно только по ней и работать, даже без МО.
К сожалению у нас таких фич нету.
на экзам не надо, но может пригодится
Результаты получились странные - на тестовой и учебной выборке Recall 0,6-0,8 , а на exam без преобразования 0,009, а с преобразованием 0,65 - чтот тут не так :(
Такое ощущение, что CatBoost выучил алгоритм преобразования :)
А есть ли возможность пометить старые и новые строки? Тогда можно из преобразованной выборки убрать преобразованные строки и посмотреть - это проблема интерпретации или же не качественное обучение всё ж.
Думаю это весьма сложная задача.
А если такая фича найдется, то можно только по ней и работать, даже без МО.
К сожалению у нас таких фич нету.
По y - разбиение сетки, а по X отклонение в процентах от сумму целевой каждого класса во всей выборке. Фильтр 5%. Видно, что на разных участках доминируют разные классы, бывает зеркальное изменение - тогда улучшение происходит за счет конкретного класса (в минус идет гистограмма), а бывает что нет. Всё это надо использовать при обучении, но стандартные методы обучения, известные мне, не очень это учитывают. Возможно, что эффективней будет перебор с генетикой (точней на выбывание) - надо делать.
По y - разбиение сетки, а по X отклонение в процентах от сумму целевой каждого класса во всей выборке. Фильтр 5%. Видно, что на разных участках доминируют разные классы, бывает зеркальное изменение - тогда улучшение происходит за счет конкретного класса (в минус идет гистограмма), а бывает что нет. Всё это надо использовать при обучении, но стандартные методы обучения, известные мне, не очень это учитывают. Возможно, что эффективней будет перебор с генетикой (точней на выбывание) - надо делать.
Допустим, вы нашли хороший квант в котором 65% примеров 1 класса.
Разделение происходит например по середине, пусть разбили по этому вашему кванту.
1)От сплита в левую ветку уйдут все примеры из вашего кванта с 65% нужных примеров и еще от куча квантов, которые меньше по значению вашего кванта. В итоге получим не 65%, а другой процент - значительно меньший за счет разбавления примерами из других квантов.
2) Второе - если по вашему кванту не первый сплит в дереве, то все предыдущие сплиты удаляли из выборки примерно по 50% примеров. И на 5 уровне дерева от примеров в вашем кванте останется 1/(2^5)=1/32 часть примеров, которые перемешаются с такими же прореженными квантами, как в первом случае. Т.е. 65% примеров вряд ли останется в листе в результате обучения.
Единственный вариант - после квантования пометить столбцы как категориальные признаки - тогда если это первый сплит в дереве - то все 65% примеров уйдут в левую ветку без перемешивания с другими квантами. Если не первый сплит в дереве - то опять получим прореживание верхними сплитами.
Допустим, вы нашли хороший квант в котором 65% примеров 1 класса.
Разделение происходит например по середине, пусть разбили по этому вашему кванту.
1)От сплита в левую ветку уйдут все примеры из вашего кванта с 65% нужных примеров и еще от куча квантов, которые меньше по значению вашего кванта. В итоге получим не 65%, а другой процент - значительно меньший за счет разбавления примерами из других квантов.
2) Второе - если по вашему кванту не первый сплит в дереве, то все предыдущие сплиты удаляли из выборки примерно по 50% примеров. И на 5 уровне дерева от примеров в вашем кванте останется 1/(2^5)=1/32 часть примеров, которые перемешаются с такими же прореженными квантами, как в первом случае. Т.е. 65% примеров вряд ли останется в листе в результате обучения.
Единственный вариант - после квантования пометить столбцы как категориальные признаки - тогда если это первый сплит в дереве - то все 65% примеров уйдут в левую ветку без перемешивания с другими квантами. Если не первый сплит в дереве - то опять получим прореживание верхними сплитами.
1-2 - да так может быть, но не обязательно, нужен подход, который будет минимизировать такую вероятность.
А насчет категориальных признаков - это верно, но для MQ нет интерпретатора модели с категориальными признаками.
Пока вижу решение в консолидации квантовых отрезков под одно значение и создание отдельной выборки, где эти значения встречаются - так будем гарантированно работать с этим подмножеством. Это я буду делать в поисках листьев, но в начале нужно быстро квантовать разными методами.