Как прогнозировать акции с помощью SVM?

Как прогнозировать акции с помощью SVM Изучение

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

Что такое гиперплоскость?

Гиперплоскость в n-мерном пространстве — это (n-1) -мерное подпространство; если пространство трехмерно, то его гиперплоскости — это двумерные плоскости. N-мерное пространство всегда натянуто на набор из n линейно независимых векторов, и всегда можно найти n взаимно ортогональных векторов, которые охватывают пространство. Это может быть, а может и не быть в определении конечномерного векторного пространства, но это факт, доказательство которого можно найти почти в любом учебнике линейной алгебры для студентов.

В результате гиперплоскость в n-пространстве натянута на n-1 линейно независимых векторов и имеет n-й вектор (не в плоскости), ортогональный ей.

Что такое машина опорных векторов?

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

На приведенном выше рисунке SVM выберет красную

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

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

Читайте также:  Алгоритм Дейкстры (Dijkstra’s Algorithm)

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

Что делать, если данные нельзя разделить линейно? Мы не сможем разделить классы, нарисовав прямую гиперплоскость. Чтобы решить эту проблему, мы собираемся добавить к набору данных третье измерение. До сих пор у нас было два измерения: x и y. Мы создаем новое измерение и требуем, чтобы оно вычислялось удобным для нас способом: z = x2 + y2.

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

Это создаст трехмерное пространство из предыдущих точек

Преимущества SVM

  1. Подходит для данных, в которых количество измерений больше, чем количество точек данных.
  2. Подходит как для классификации, так и для регрессии.
  3. Он оптимизирован по пространству.
  4. Он обрабатывает выбросы.

Недостатки SVM

  1. Трудно выбрать «хорошую» функцию ядра.
  2. Большие наборы данных требуют длительного обучения.
  3. Окончательная модель трудна для понимания и интерпретации, поскольку имеет переменный вес и индивидуальное влияние.
  4. Мы не можем выполнять небольшие калибровки модели, потому что окончательную модель не так легко увидеть, что затрудняет включение нашей бизнес-логики.

Прогнозирование направления курса акций с использованием SVM

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

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

Первая задача для этой реализации — импортировать все библиотеки и модули в нашем скрипте. sklearn будет использоваться для построения модели, pandas будет использоваться для обработки фреймов данных, а numpy — для линейной алгебры. Ниже приведены необходимые импортные данные, которые мы делаем:

from sklearn.svm import SVC

from sklearn.metrics import accuracy_score

import pandas as pd

import numpy as np

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

# Reading the CSV file from external storage

df = pd.read_csv(‘RELIANCE.csv’)

Назначьте дату и время в качестве индекса фрейма данных и опустите столбец «дата».

# Making date as index column

df.index = pd.to_datetime(df[‘Date’])

# drop the column named “Date”

df = df.drop([‘Date’], axis=‘columns’)

Назначьте входные характеристики переменной

# Create predictor variables

df[‘Open-Close’] = df.Open — df.Close

df[‘High-Low’] = df.High — df.Low

# Store all predictor variables in a variable X

= df[[‘Open-Close’, ‘High-Low’]]

print(X.head())

Назначьте целевой столбец другой переменной

# Target variables

= np.where(df[‘Close’].shift(1) > df[‘Close’], 1, )

print(y)

Разделите набор данных на обучающие и тестовые образцы. Образцы поездов будут строить модель, а тестовые образцы будут определять точность модели.

split = int(0.9*len(df))

# Train data set

X_train = X[:split]

y_train = y[:split]

# Test data set

X_test = X[split:]

y_test = y[split:]

Создайте модель SVM сейчас

# Support vector classifier

model = SVC().fit(X_train, y_train)

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

Чтобы предсказать сигнал акции, используйте метод ниже.

df[‘sig’] = model.predict(X)

Вывод

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

Оцените статью
bestprogrammer.ru
Добавить комментарий