Классификация цен акций на основе вероятностей - PullRequest
0 голосов
/ 07 января 2019

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

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

Однако представление этой цели 3-х классов алгоритму привело к низкой точности для классификаторов покупки и продажи. Чтобы улучшить это, я решил вручную назначать классы на основе вероятностей каждой выборки. То есть я устанавливаю цели как 1 или 0 в зависимости от того, произошло ли повышение или понижение цены. Затем алгоритм возвращает вероятность от 0 до 1 (обычно от 0,45 до 0,55) для уверенности в том, к какому классу относится каждая выборка. Затем я выбираю некоторую вероятность вероятности для каждого класса в пределах этих вероятностей. Например: я выбираю p> 0,53 для классификации в качестве сигнала на покупку, p <0,48 для классификации в качестве сигнала на продажу и все промежуточное в качестве сигнала удержания. </p>

Этот метод значительно улучшил точность классификации, в некоторых точках до 65%. Тем не менее, мне не удается придумать метод выбора этих вероятностных границ без большого набора проверки. Я попытался найти наилучшие значения вероятности в наборе проверки 3000, и это улучшило точность классификации, но чем больше становится набор проверки, становится ясно, что точность прогноза в наборе испытаний уменьшается.

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

1 Ответ

0 голосов
/ 26 января 2019

То, что вы испытываете, называется нестационарным процессом. Движение рынка зависит от времени события.

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

Например, используйте данные с 1-го по 10-й день для обучения и 11-го дня для тестирования / проверки, затем перейдите на один день, со 2-го по 11-й день для обучения и 12-го дня для тестирования / проверки.

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

и вы получите еще 3 параметра для настройки, # 1, сколько данных использовать для поезда, # 2, сколько данных для теста, # на сколько дней / часов / точек данных вы переобучаете свои данные.

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