прогнозирование с помощью машинного обучения

Техники машинного обучения для прогнозирования цен акций: функции индикаторов и анализ новостей

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

В нашем блоге мы уже затрагивали тему предсказания цен акций с помощью алгоритма адаптивной фильтрации. Финансист из Нью-Йорка Ватсал Шах (Vatsal Shah) в своей работе рассмотрел возможность использования для этих целей алгоритмов машинного обучения. Мы представляем вашему вниманию главные мысли этого документа.

Введение

Существует две методики прогнозирования цен акций:

Гипотеза эффективного рынка

Гипотеза эффективного рынка (Efficient Market Hypothesis, EMH) предполагает, что вся существенная информация немедленно и в полной мере отражается на рыночной курсовой стоимости ценных бумаг. Существует три формы рыночной эффективности: слабая, средняя и сильная. Слабая форма подразумевает, что стоимость рыночного актива полностью отражает прошлую информацию, а сильная — что стоимость отражает всю информацию, как прошлую, так и публичную или внутреннюю.

Гипотеза случайного блуждания

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

Функции индикаторов

Для технического анализа рыночных цен используются различные атрибуты и индикаторы. К последним относятся, к примеру,:

где, alpha = 2/ (N+1), таким образом, for N=9, alpha = 0.20

В теории, проблема предсказания цены акции может быть рассмотрена, как оценка функции F во времени T на основе предыдущих значений F во время t-1,t-2 … t-n, присваивая соответствующую весовую фукнцию w на в каждый момент F:

F (t) = w1*F (t-1) + w2*F (t-2) + … + w*F (t-n)

График ниже показывает, как EMA моделирует текущую цену акций:

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

Среда обучения

В ходе проекта были использованы среды для дата-майнинга Weka и YALE. Конфигурация выглядела таким образом:

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

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

Предобработка исторических данных

Для эксперимента с сайта Yahoo Finance были загружены исторические данные по ценам акций компаний Google Inc. (тикер GOOG) и Yahoo Inc. (YHOO). Набор данных имел следующие атрибуты: Date Open High Low Close Volume Adj. Close.

Индикатор EMA предполагает, что цена акции в предыдущий день торгов будет оказывать на текущую цену наибольшее значение. Таким образом, чем ближе временная точка находится к текущему моменту, тем большее значение она оказывает на цену текущего дня. В ходе временного анализа исследователь брал Дату в качестве оси X — каждая дата представляла собой целое значение. К имеющимся атрибутам был добвлен еще один — Indicator, в данном конкретном случае EMA.

Техники машинного обучения

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

Алгоритм Decision Stump

Применения простого алгоритма для предсказания EMA позволило добиться следующих результатов:

Линейная регрессия

Применение простой линейной регрессии (используются только численные атрибуты) для предсказания EMA дали следующие результаты:

Метод опорных векторов

Использование метода опорных векторов (C-Class) с прмиенение радиальной базисной функции ядра с параметром настройки C в диапазоне от 512 до 65536, позволило получить следующую точность прогнозирования движения цены:

Корень среднеквадратичной ошибки: 0.486 ± 0.012
Точность: 60.20 ± 0.49%

Бустинг

После использования алгоритма C-SVC к набору данных был применен алгоритм бустинга AdaBoostM1 — это позволило добиться серьезного улучшения точности.

Корень среднеквадратичной ошибки: 0.467 ± 0.008
Точность: 64.32% ± 3.99%

Из выходных данных YALE была извлечена следующая матрица неточностей:

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

Предсказание цен акций на основе текстового анализа финансовых новостей

В настоящее время большой объём ценных данных, которые могут повлиять на ситуацию на рынке, доступен в сети (о подобном влиянии мы писали в своей статье). Большая часть такой информации содержится в финансовых новостях, отчетах компаний и рекомендациях экспертов (источником таких рекомендаций, к примеру, могут служить блог инсайдеров и аналитиков). Большая часть этих данных представлена в текстовом формате, что затрудняет их использование. Таким образом, новая проблема заключается в необходимости анализа текстовых документов одновременно с выполнением анализа временных рядов.

Исследователь использовал метод, который подразумевает определение степени влияния новостей на конкретную акцию: оно может быть позитивным (Positive), негативным (Negative) или нейтральным (Neutral).

Считается, что новость имеет положительное влияние (или негативное), если цена акции серьезно растет (или падает) в период сразу после ее публикации. Если цена акции серьезным образом не изменяется после публикации новости, то ее влияние считается нейтральным.

Другой использованный метод подразумевает определение паттернов в новостных статьях, которые напрямую соовтетствуют росту или снижению цены акций. Он работает следующим образом:

Специальный поисковый робот проходит по новостным статьям и индексирует их для конкретного портфолио акций. Среда обучения запрашивает новости за период T минут с момента индексации. Эта среда состоит из несколько модулей обучения, которые ищут нужную информацию в тексте новостной заметки или материалах из блогов экспертов (например, «цена нефти будет снижаться»). В словарь для анализа входят слова и фразы, влияющие на условия положительного (Positive Prediction Terms) или негативного движения (Negative Prediction). Каждый раз, когда фраза из набора Positive Prediction Terms появляется в тексте статьи, ей присваивается положительная оценка (Positive Vote).

На диаграмме ниже представлена архитектура такой системы:

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

Как нетрудно заметить, данный метод позволяет делать лишь довольно грубые предположения. Чтобы повысить их точность необходимо добавить статьям больше весов — например, на основе ранжирования источников информации для публикации. Кроме того, следует учитывать форматы заголовков текстов, содержащие фразы из наборов Positive или Negative Prediction Terms.

Использование в качестве веса новости авторитетности экспертов

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

прогнозирование с помощью машинного обучения. image loader. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-image loader. картинка прогнозирование с помощью машинного обучения. картинка image loader.

На вход системы подаются мнения экспертов рынка акций (просто их мнение, которое необязательно оказывается верным), а затем на основе их прогнозов раз за разом делаются предсказания возможного движения цены. На каждой итерации вес эксперта, чье предсказание оказалось верно, повышается, а у тех, кто ошибся — наоборот снижается. Еще одна разновидность метода предполагает полное удаление из списка тех экспертов, которые ошиблись, однако он является не самым эффективным — все-таки ошибаются даже самые лучшие и уважаемые финансовые аналитики.

Алгоритм взвешивания экспертов может быть описан следующим образом:

Дано: вектор E = < e1, e2,….eN>финансовых экспертов и их прогнозов.

Присвоить вес W(e(i)) = 1 для каждого эксперта e(i).
Для раунда t in 1…T
Сделать предсказание на основе алгоритма взвешенного большинства.

Для экспертов, которые сделали верный прогноз W(e(i))(t) = 2*W(e(i))(t-1)

Для экспертов, которые сделали неверный прогноз W(e(i))(t) = ½ * W(e(i))(t-1)
Сохранить рейтинг эксперта (Expert Rating) для последующего взвешивания.

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

Заключение

Из всех использованных алгоритмов только комбинация метода опорных вектора и алгоритма бустинга позволили добиться сколько-нибудь удовлетворительных результатов точности прогноза.

Другим перспективным методом анализа является взвешивание экспертов. Однако в настоящий момент эффективность методов лингвистического анализа для генерирования прогнозов движения цен акций является предметом дальнейшего изучения и каких-то определенных выводов о его применимости на практике сделать нельзя.

Источник

Руководство по Прогнозирование спроса с помощью автоматизированного машинного обучения

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

Вам не потребуется писать код при работе с этим учебником — вы будете использовать интерфейс Студии для обучения. Вы узнаете, как выполнять указанные далее задачи.

Также опробуйте автоматизированное машинное обучение для таких типов моделей:

Предварительные требования

Рабочая область машинного обучения Azure. См. сведения о создании рабочей области машинного обучения Azure.

Вход в Студию

В рамках этого учебника вы создадите эксперимент автоматизированного машинного обучения, который будет выполняться в Студии машинного обучения Azure — объединенном веб-интерфейсе, включающем в себя средства машинного обучения для выполнения сценариев обработки и анализа данных, основанных на всех уровнях навыков. Студия не поддерживается в браузерах Internet Explorer.

Выберите свою подписку и рабочую область, которую создали.

Выберите Начать.

На панели слева выберите Automated ML (Автоматизированное ML) в разделе Автор.

Выберите +Новое выполнение автоматизированного машинного обучения.

Создание и загрузка набора данных

Прежде чем настроить эксперимент, отправьте файл данных в рабочую область в виде набора данных Машинного обучения Azure. Это позволит правильно отформатировать данные для эксперимента.

В форме Выбор набора данных выберите из раскрывающегося списка +Создание набора данных пункт From local files (Из локальных файлов).

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

Выберите Далее внизу слева.

Нажмите кнопку Обзор.

Выберите файл bike-no.csv на локальном компьютере. Это тот файл, который вы скачали при подготовке необходимых компонентов.

Щелкните Далее.

Когда загрузка завершится, форма «Settings and preview» (Настройки и предварительный просмотр) будет автоматически заполнена в зависимости от типа файла.

Убедитесь, что форма Settings and preview (Настройки и предварительный просмотр) заполнена, как описано ниже, и щелкните Далее.

ПолеОписаниеЗначение для руководства
Формат файлаСвойство определяет структуру и тип данных, хранящихся в файле.С разделителями
РазделительОдин или несколько символов для указания границы между отдельными, независимыми регионами в виде простого текста или других потоков данных.Запятая
КодированиеОпределяет, какой бит следует использовать в таблице схемы символов, чтобы считать набор данных.UTF-8
Заголовки столбцовУказывает, как будут обрабатываться заголовки набора данных, если таковые имеются.Использовать заголовки из первого файла
Пропустить строкиУказывает, сколько строк, если таковые имеются, пропускается в наборе данных.None

Форма Схема позволяет выполнять дальнейшую настройку данных для этого эксперимента.

В этом примере игнорируйте столбцы casual и registered. Эти столбцы предназначены для разбивки данных из столбца cnt, поэтому мы их исключаем.

Кроме того, в этом примере оставьте значения по умолчанию для параметров Свойства и Тип.

Выберите Далее.

В форме Confirm details (Подтверждение сведений) проверьте правильность сведений, которые ранее были введены в формах Basic info (Базовые сведения) и Settings and preview (Параметры и просмотр).

Выберите Создать, чтобы завершить создание набора данных.

Выберите набор данных, когда он появится в списке.

Нажмите кнопку Далее.

Настройка запуска

После загрузки и настройки данных настройте удаленный целевой объект вычислений и выберите столбец данных, который вы хотите спрогнозировать.

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

Выберите в качестве типа вычислений вычислительный кластер.

Выберите +Создать, чтобы настроить целевой объект вычислений. Автоматизированное машинное обучение поддерживает только вычисления в Службе машинного обучения Azure.

Заполните форму Выбрать виртуальную машину, чтобы настроить вычислительную среду.

ПолеОписаниеЗначение для руководства
Приоритет виртуальной машиныВыберите приоритет, который должен иметь ваш эксперимент.Выделенные
Virtual machine typeВыберите тип виртуальной машины для вычислительной среды.ЦП (центральный процессор)
Virtual machine sizeВыберите размер виртуальной машины для вычислительной среды. Список рекомендуемых размеров выводится с учетом ваших данных и типа эксперимента.Standard_DS12_V2

Выберите Далее, чтобы заполнить форму Настройка параметров.

ПолеОписаниеЗначение для руководства
Имя вычислительной средыУникальное имя для идентификации контекста вычислительной среды.bike-compute
Min/Max nodes (Минимальное и максимальное количество узлов)Для профилирования данных необходимо указать один или больше узлов.Min nodes (Минимум узлов): 1
Max nodes (Максимум узлов): 6
Время до уменьшения масштаба (сек)Время простоя перед автоматическим уменьшением масштаба кластера до минимального количества узлов.1800 (по умолчанию)
Дополнительные параметрыПараметры для настройки и авторизации виртуальной сети для эксперимента.None

Выберите Создать, чтобы получить целевой объект вычислений.

Операция займет несколько минут.

Когда создание целевого объекта вычислений завершится, выберите его из раскрывающегося списка.

Выберите Далее.

Выбор параметров прогнозирования

Завершите настройку эксперимента автоматического машинного обучения, указав тип задачи и параметры конфигурации машинного обучения.

В форме Тип задачи и параметры в качестве типа задачи машинного обучения выберите Прогнозирование временных рядов.

В качестве столбца времени выберите date, а значение Time series identifiers (Идентификаторы временных рядов) оставьте пустым.

Горизонт прогноза — продолжительность времени в будущем, на которое требуется прогноз. Снимите флажок «Автовыбор» и введите 14 в поле.

Выберите View additional configuration settings (Просмотреть дополнительные параметры конфигурации) и заполните поля следующим образом. Эти параметры позволяют лучше контролировать задание обучения и указывать параметры для прогнозирования. В противном случае применяются значения по умолчанию, основанные на выборе эксперимента и данных.

Количество проверок: 5

Дополнительные конфигурацииОписаниеЗначение для руководства
Основная метрикаОценочная метрика, по которой будет проверяться алгоритм машинного обучения.Нормализованная среднеквадратическая погрешность
Пояснения для наилучшей моделиАвтоматическое отображение пояснений для лучшей модели, созданной с помощью автоматизированного машинного обучения.Включить
Запрещенные алгоритмыАлгоритмы, которые вы хотите исключить из задания обучения.Крайне случайные деревья
Дополнительные параметры прогнозированияСледующие параметры помогают повысить точность модели.

Forecast target lags (Задержка целевого объекта для прогноза) — время, на которое вы хотите создать задержку для целевой переменной.
Размер целевого скользящего интервала — определяет длительность периода, в течение которого будут создаваться функции, такие как max, min и sum.

ПараллелизмМаксимальное число выполняемых параллельных итераций за одну итерацию.Максимальное число параллельных итераций: 6

Щелкните Сохранить.

Выполнение эксперимента

Чтобы выполнить эксперимент, щелкните Готово. Откроется экран Сведения о запуске, в верхней части которого рядом с номером запуска указано состояние запуска. Это состояние обновляется по мере выполнения эксперимента. Уведомления также отображаются в правом верхнем углу студии, сообщая о состоянии эксперимента.

Подготовка к запуску эксперимента занимает 10-15 минут. С начала эксперимента на каждую итерацию уходит 2-3 минуты.

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

Изучение моделей

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

В ожидании завершения всех моделей эксперимента вы можете щелкнуть Algorithm name (Имя алгоритма) для любой завершенной модели, чтобы просмотреть сведения о ее эффективности.

Чтобы просмотреть свойства, метрики и диаграммы производительности выбранной модели, воспользуйтесь вкладками Подробности и Метрики из следующего примера.

прогнозирование с помощью машинного обучения. explore models. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-explore models. картинка прогнозирование с помощью машинного обучения. картинка explore models.

Развертывание модели

Автоматизированное машинное обучение в Студии машинного обучения Azure позволяет развернуть лучшую модель как веб-службу всего с помощью нескольких действий. Развертывание — это интеграция модели для прогнозирования по новым данным и определения потенциальных новых возможностей.

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

После завершения выполнения вернитесь на страницу родительского выполнения, выбрав Run 1 (Запуск 1) в верхней части экрана.

В разделе Сводка по лучшей модели лучшей моделью на основе метрики Нормализованная среднеквадратическая погрешность в контексте этого эксперимента считается модель StackEnsemble.

Мы развернем эту модель. Учитывайте, что процесс развертывания занимает около 20 минут. Процесс развертывания выполняется за несколько шагов, включая регистрацию модели, создание ресурсов и их настройку для веб-службы.

Выберите StackEnsemble, чтобы открыть страницу для конкретной модели.

Нажмите кнопку Развернуть в левой верхней области экрана.

Заполните панель Deploy a model (Развертывание модели), как показано ниже.

ПолеЗначение
Deployment name (Имя развертывания)bikeshare-deploy
Deployment description (Описание развертывания)Развертывание модели спроса на прокат велосипедов
Тип вычисленияВыберите «Вычислительная операция Azure (ACI)»
Включить проверку подлинностиОтключите.
Использовать настраиваемые ресурсы развертыванияОтключите. Отключение позволяет автоматически создавать файл драйвера (скрипт оценки) и файл среды по умолчанию.

Для этого примера мы воспользуемся стандартными параметрами, доступными в меню Дополнительно.

Выберите Развернуть.

В верхней части окна запуска появится зеленое сообщение об успешном завершении, в котором указано, что развертывание было начато успешно. Ход выполнения развертывания можно просмотреть в области Сводка по модели в разделе Deploy status (Состояние развертывания).

Если развертывание завершилось успешно, теперь у вас есть рабочая веб-служба для создания прогнозов.

Перейдите к дальнейшим действиям, чтобы узнать больше о том, как использовать новую веб-службу, и протестируйте прогнозы, используя встроенную поддержку Power BI в Машинном обучении Azure.

Очистка ресурсов

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

Удаление промежуточного развертывания

Чтобы сохранить группу ресурсов и рабочую область для изучения других руководств и собственных исследований, удалите из Студии машинного обучения Azure только экземпляр развертывания.

Перейдите в Студию машинного обучения Azure. Перейдите в свою рабочую область и слева под областью Ресурсы выберите Конечные точки.

Выберите развертывание для удаления и щелкните Удалить.

Выберите Продолжить.

удаление группы ресурсов.

Созданные вами ресурсы могут использоваться в качестве необходимых компонентов при работе с другими руководствами по Машинному обучению Azure.

Если вы не планируете использовать созданные вами ресурсы, удалите их, чтобы с вас не взималась плата:

На портале Azure выберите Группы ресурсов в левой части окна.

Выберите созданную группу ресурсов из списка.

Выберите Удалить группу ресурсов.

прогнозирование с помощью машинного обучения. delete resources. прогнозирование с помощью машинного обучения фото. прогнозирование с помощью машинного обучения-delete resources. картинка прогнозирование с помощью машинного обучения. картинка delete resources.

Введите имя группы ресурсов. Теперь щелкните Удалить.

Дальнейшие действия

Во время работы с этим руководством вы создали и развернули в Студии машинного обучения Azure с помощью автоматизированного машинного обучения модель прогнозирования временных рядов для прогнозирования спроса для службы проката велосипедов.

В этой статье приведены инструкции о том, как создать схему с поддержкой Power BI для облегчения использования новой развернутой веб-службы:

Набор данных о прокате велосипедов был изменен для этого руководства. Этот набор данных был представлен в рамках конкурса Kaggle и изначально был доступен на сайте Capital Bikeshare. Его также можно найти в базе данных машинного обучения UCI.

Источник: Хади Фанаи-Ти, Жоао Гама (Hadi Fanaee-T, Joao Gama), Event labeling combining ensemble detectors and background knowledge (Создание меток для событий путем объединения средств обнаружения ансамблей и фоновых знаний), Progress in Artificial Intelligence (Прогресс в области искусственного интеллекта), 2013 г., стр. 1–15, Springer Berlin Heidelberg.

Источник

Добавить комментарий

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