Como prever o preço das ações usando SVM

Como prever o preço das ações usando SVM
O aprendizado de máquina é um aplicativo de inteligência artificial que está melhorando a maneira como o mundo funciona em todos os domínios. Na sua essência, é um algoritmo ou modelo que observa padrões em um determinado conjunto de dados e depois prevê os padrões aprendidos em dados gerais. Nos termos do leigo, é a ideia de que as máquinas aprendem um padrão e se adaptam através da experiência para tomar decisões precisas e repetíveis. A máquina vetorial de suporte é um algoritmo ML popular que usaremos hoje para prever os preços das ações. Existem várias vantagens nesse modelo, que discutiremos e percorreremos a implementação da abordagem.

O que é um hiperplano?

Um hiperplano no espaço N-dimensional é um subespaço (N-1)-dimensional; Se o espaço for tridimensional, seus hiperplanos são os planos bidimensionais. Um espaço N-Dimensional é sempre abrangente por um conjunto de n vetores linearmente independentes, e é sempre possível encontrar n vetores mutuamente ortogonais que abrangem o espaço. Isso pode ou não estar na definição de um espaço vetorial finito-dimensional, mas é um fato para o qual a prova pode ser encontrada em quase qualquer livro de álgebra linear de graduação.

Como resultado, um hiperplano no espaço n é abrangido por vetores linearmente independentes n-1 e tem um vetor de enésimo (não no avião) ortogonal.

O que é uma máquina vetorial de suporte?

A máquina de vetor de suporte (SVM) é um algoritmo de classificação binária de aprendizado de máquina supervisionado. Dado um conjunto de dois tipos de pontos em n dimensões, o SVM gera um hiperplano dimensional (n-1) para dividir esses pontos em dois grupos, como mostrado abaixo:

Na figura acima, o SVM escolherá a linha vermelha como o melhor hiperplano que separa as classes azul e verde.

Vamos supor que você tenha dois tipos de pontos em um avião que é linearmente separável. O SVM encontrará uma linha reta que divide esses pontos em dois tipos e está o mais longe possível de todos eles. Essa linha é conhecida como hiperplano e foi escolhida para que os valores extremos não sejam ignorados, e pontos de diferentes classes são o mais longe possível. Se os pontos não puderem ser separados, o SVM usa uma transformação do kernel para aumentar as dimensões dos pontos.

O caso discutido acima foi bem direto porque os dados eram linearmente separáveis ​​- como vimos, poderíamos desenhar uma linha reta para separar tipos de pontos vermelhos e azuis.

E se os dados não forem linearmente separáveis? Não poderemos separar as classes desenhando um hiperplano reto. Para enfrentar esse desafio, vamos adicionar uma terceira dimensão ao conjunto de dados. Tivemos duas dimensões até agora: x e y. Criamos uma nova dimensão e mandamos que ela seja calculada de uma maneira conveniente para nós: z = x2 + y2.

Isso criará um espaço tridimensional a partir dos pontos anteriores. Podemos inferir da figura abaixo que, inicialmente, os pontos não eram linearmente separáveis, mas depois de aplicar a função do kernel, separamos facilmente os pontos de dados. Existem muitas funções de kernel disponíveis que você pode escolher de acordo com o seu caso de uso.

Vantagens do SVM

  1. Bom para dados em que o número de dimensões é mais do que o número de pontos de dados.
  2. Bom para classificação e regressão.
  3. É otimizado para o espaço.
  4. Ele lida com outliers.

Desvantagens do SVM

  1. É difícil selecionar uma função de kernel "boa".
  2. Grandes conjuntos de dados requerem um longo tempo de treinamento.
  3. O modelo final é difícil de entender e interpretar, com pesos variáveis ​​e impacto individual.
  4. Não podemos fazer pequenas calibrações no modelo porque o modelo final não é facilmente visível, dificultando a incorporação de nossa lógica de negócios.

Previsão de instruções do preço das ações usando SVM

As previsões do mercado de ações são feitas prevendo o valor futuro das ações de uma empresa ou outro instrumento financeiro negociado em uma bolsa usando análise fundamental ou técnica.

O benefício da previsão do mercado de ações é que ele permite que você investem com sabedoria e lucrativamente.

A primeira tarefa para esta implementação é importar todas as bibliotecas e módulos em nosso script. Sklearn será usado para construir o modelo, os pandas serão usados ​​para lidar com quadros de dados e Numpy é para álgebra linear. Abaixo estão as importações necessárias que fazemos:

de Sklearn.SVM Import Svc
de Sklearn.Métricas Importar precisão_score
importar pandas como PD
importar numpy como np

A próxima tarefa é ler o conjunto de dados do arquivo. O arquivo estará em armazenamento externo e você pode baixar o conjunto de dados aqui.

# Lendo o arquivo CSV do armazenamento externo
df = pd.read_csv ('Reliance.CSV ')

Atribua o DateTime como o índice do quadro de dados e solte a coluna "Data"

# Fazendo data como coluna de índice
df.Índice = Pd.to_dateTime (df ['data'])
# Largue a coluna chamada "Date"
df = df.soltar (['data'], eixo = 'colunas')

Atribua os recursos de entrada a uma variável

# Crie variáveis ​​preditivas
df ['Aberto'] = df.Aberto - df.Fechar
df ['alto-baixo'] = df.Alto - df.Baixo
# Armazene todas as variáveis ​​preditivas em uma variável x
X = df [['Aberto', 'High-Low']]
Imprimir (x.cabeça())

Atribuir coluna de destino a outra variável

# Variáveis ​​de destino
y = np.onde (df ['close'].turno (-1)> df ['Close'], 1, 0)
impressão (y)

Divida o conjunto de dados em amostras de trem e teste. As amostras de trem aumentarão o modelo, enquanto as amostras de teste identificarão a precisão do modelo.

split = int (0.9*len (df))
# Conjunto de dados de trem
X_train = x [: split]
y_train = y [: split]
# Conjunto de dados de teste
X_test = x [split:]
y_test = y [split:]

Crie o modelo SVM agora

# Classificador de vetor de suporte
modelo = svc ().ajuste (x_train, y_train)

Você pode encontrar a precisão deste modelo usando várias métricas.

Para prever o sinal do estoque, use o método abaixo.

df ['sig'] = modelo.prever (x)

Conclusão

Este artigo passou pela discussão, vantagens e casos de uso de máquinas vetoriais de suporte. É um algoritmo popular e com eficiência espacial para tarefas de classificação e regressão, e usa princípios geométricos para resolver nossos problemas. Mais tarde, também implementamos a previsão de direção do preço das ações usando o algoritmo SVM. A previsão de preços das ações é extremamente útil no mundo dos negócios e, quando empregamos automação para isso, cria mais hype para esse problema.