MINISTÉRIO DA DEFESA
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO
DIEGO NASCIMENTO ESTEVES DA SILVA
PREDIÇÃO DE TENDÊNCIA DE ATIVOS EM SÉRIES FINANCEIRAS
UTILIZANDO ALGORITMOS DE APRENDIZADO DE MÁQUINA
Rio de Janeiro
2014
INSTITUTO MILITAR DE ENGENHARIA
DIEGO NASCIMENTO ESTEVES DA SILVA
PREDIÇÃO DE TENDÊNCIA DE ATIVOS EM SÉRIES
FINANCEIRAS UTILIZANDO ALGORITMOS DE
APRENDIZADO DE MÁQUINA
Dissertação de Mestrado apresentada ao Curso de
Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção
do título de Mestre em Sistemas e Computação.
Orientador: Prof. Julio Cesar Duarte - D.Sc.
Rio de Janeiro
2014
c2014
INSTITUTO MILITAR DE ENGENHARIA
Praça General Tibúrcio, 80-Praia Vermelha
Rio de Janeiro-RJ CEP 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo
em base de dados, armazenar em computador, microlmar ou adotar qualquer forma de
arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas
deste trabalho, sem modicação de seu texto, em qualquer meio que esteja ou venha a
ser xado, para pesquisa acadêmica, comentários e citações, desde que sem nalidade
comercial e que seja feita a referência bibliográca completa.
Os conceitos expressos neste trabalho são de responsabilidade do autor e do orientador.
005.1
S586p
Silva, Diego Nascimento Esteves da
Predição de tendência de ativos em séries nanceiras utilizando algoritmos de aprendizado de máquina/
Diego Nascimento Esteves da Silva, orientado por Julio
Cesar Duarte. Rio de Janeiro: Instituto Militar de
Engenharia, 2014.
123p.: il.
Dissertação (mestrado) Instituto Militar de
Engenharia Rio de Janeiro, 2014.
1. Curso de Sistemas e computação - teses e dissertações 2. Algoritmos. 3. Mercado nanceiro-Brasil.
I. Duarte, Julio Cesar. II. Título. III. Instituto Militar
de Engenharia.
CDD 005.1
2
INSTITUTO MILITAR DE ENGENHARIA
DIEGO NASCIMENTO ESTEVES DA SILVA
PREDIÇÃO DE TENDÊNCIA DE ATIVOS EM SÉRIES
FINANCEIRAS UTILIZANDO ALGORITMOS DE
APRENDIZADO DE MÁQUINA
Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do
título de Mestre em Sistemas e Computação.
Orientador: Prof. Julio Cesar Duarte - D.Sc.
Aprovada em 09 de Junho de 2014 pela seguinte Banca Examinadora:
Prof. Julio Cesar Duarte - D.Sc. do IME - Presidente
Prof. Anderson Fernandes Pereira dos Santos - D.Sc. do IME
Prof. Leandro Guimarães Marques Alvim - D.Sc. da UFRRJ
Rio de Janeiro
2014
3
Dedico este trabalho à minha irmã, Luane Nascimento Esteves da Silva (in memorian ).
4
AGRADECIMENTOS
À Deus, por estar comigo em todos os momentos da minha vida.
Ao meu professor e orientador Major Julio Cesar Duarte, por toda a dedicação, sabedoria, motivação e valiosos ensinamentos que me tornaram uma pessoa melhor e contribuíram diretamente no desenvolvimento deste trabalho.
À minha professora Maria Claudia Reis Cavalcanti (Yoko ), pelo apoio, incentivo e
grande oportunidade de prosseguir com a pesquisa.
Ao meus professores do CEFET-RJ, Eduardo Bezerra da Silva e Jorge de Abreu Soares, pelo apoio e incentivo direto, fundamental para que mais esta etapa fosse concluída.
Aos meus pais, Maria de Lourdes N. Esteves da Silva e Nelson Esteves da Silva, por
todo apoio, carinho e amor. À vocês que sempre me estimularam, me inspiraram a novas
conquistas e incentivaram-me a prosseguir sem medo em todas as etapas da vida.
A minha irmã, Luane N. Esteves da Silva, que mudou toda a minha vida e me ensinou
valores que jamais poderei aprender em lugar algum. Sua passagem foi a maior alegria
que nossa família poderia ter. "Você sempre estará comigo".
À Bruno Mesquita Amaral, por ser um verdadeiro irmão de coração.
À Josumar Amaral e Liliane Mesquita, por terem me abraçado como um lho desde
o início, por darem suporte incondicional a mim e minha esposa em todas as situações.
Por fazerem eu sempre me sentir amado como um lho. Serei eternamente grato.
Finalmente à minha eterna esposa, Bianca Mesquita Amaral Esteves, que sempre
esteve ao meu lado durante os últimos 10 anos, por todo amor, carinho, apoio e palavras
de força e por ser, desde o início, a maior incentivadora desta conquista.
Diego Nascimento Esteves da Silva
5
Todas as vitórias ocultam uma abdicação.
Simone de Beauvoir
6
SUMÁRIO
LISTA DE ILUSTRAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
LISTA DE ABREVIATURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1
INTRODUÇÃO
..................................................
17
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.2
Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.3
Justicativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.4
Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.5
Estrutura da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2
APRENDIZADO DE MÁQUINA
................................
23
2.1
Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.2
O processo de Indução de uma Hipótese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.3
Subajuste(Undertting) e Superajuste(Overtting) . . . . . . . . . . . . . . . . . . . . . . .
27
2.4
Métodos de amostragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
2.4.1 Retenção (Holdout ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4.2 Amostra Aleatória (Random Subsampling ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4.3 K-partições (K-fold ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4.4 Deixando um fora (Leave-One-Out ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.4.5 Estraticada (Stratied ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.5
Avaliação de Modelos de Classicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.5.1 Matriz de Confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
2.5.2 Análise ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
2.6
Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
2.7
Regressão Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
2.8
Máquinas de Vetores de Suporte (Support Vector Machine ) . . . . . . . . . . . . . . .
37
2.8.1 Teoria do Aprendizado Estatístico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
2.8.2 Limite do Risco Esperado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
2.8.3 Risco Marginal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
7
2.8.4 SVM lineares de margens rígidas (hard margin ) . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.8.5 SVM lineares de margens suaves (soft margin ) . . . . . . . . . . . . . . . . . . . . . . . . . .
42
2.8.6 SVM não-lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3
REVISÃO DA LITERATURA
...................................
45
3.1
Trabalhos na área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
3.2
Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.3
Tendências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4
MODELAGEM PARA O PROBLEMA DE PREVISÃO DE TENDÊNCIAS EM SÉRIES FINANCEIRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1
Arquitetura da Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.2
Pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.3
Sistema de Referência (Baseline System ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.4
Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.5
Regressão Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
4.6
Máquina de Vetores de Suporte (Support Vector Machine) . . . . . . . . . . . . . . . .
71
5
EXPERIMENTOS
...............................................
73
5.1
Análise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.1.1 Exp01 - Parâmetros do modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.1.2 Exp02 - Período de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.1.3 Exp03 - SVM - implementações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
5.1.4 Exp04 - SVM - kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
5.1.5 Exp05 - Validação cruzada deslizante - parâmetro . . . . . . . . . . . . . . . . . . . . . . .
93
5.1.6 Exp06 - Modelos híbridos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
6
CONCLUSÕES
7
REFERÊNCIAS BIBLIOGRÁFICAS
8
ANEXOS
8.1
Codigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8
LISTA DE ILUSTRAÇÕES
FIG.1.1
PETR4 - Comparação dos resultados dos modelos de diferentes
algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
FIG.1.2
Validação cruzada deslizante em função do tempo com 24 dias de
treino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
FIG.2.1
Hierarquia do Aprendizado Indutivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
FIG.2.2
Fluxo Básico do Aprendizado Supervisionado para um Classicador . . . .
26
FIG.2.3
Exemplos de overtting e undertting (Adaptado de SMOLA e
SCHOLKOPF, 2002) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
FIG.2.4
Análise ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
FIG.2.5
Exemplo de limiar logístico (a) x linear (b) . . . . . . . . . . . . . . . . . . . . . . . . .
36
FIG.2.6
Exemplo de classicação SVM - SV com margens rígidas . . . . . . . . . . . . .
42
FIG.2.7
Exemplo de classicação SVM - SV com margens suaves . . . . . . . . . . . . . .
43
FIG.2.8
Exemplo de dados não lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
FIG.4.1
Visão geral da arquitetura proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
FIG.4.2
Modelo de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
FIG.4.3
Vetor auxiliar de cálculo (média e desvio) . . . . . . . . . . . . . . . . . . . . . . . . . .
68
FIG.5.1
Série histórica nanceira (2006) com valores diários de fechamento
das ações América Latina Logística (ALLL11), Companhia Siderúrgica Nacional (CSNA3), Eletrobras (ELET6) e Petrobras (PETR4)
no período entre 01 de Janeiro a 30 de Setembro de 2006.
. . . . . . . . . . . 74
FIG.5.2
Resultados da América Latina Logística (ALLL11) em G1, G2 e G3 . . . .
FIG.5.3
Resultados da Companhia Siderúrgica Nacional (CSNA3) em G1,
75
G2 e G3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
FIG.5.4
Resultados da Eletrobras (ELET6) em G1, G2 e G3 . . . . . . . . . . . . . . . . .
77
FIG.5.5
Resultados da Petrobras (PETR4) em G1, G2 e G3 . . . . . . . . . . . . . . . . . .
78
FIG.5.6
Melhores e piores (por defasagem) resultados dos algoritmos agrupados em função do grupo de experimento e ações . . . . . . . . . . . . . . . . . . 79
FIG.5.7
Melhores resultados da Petrobras (PETR4) em diferentes tamanhos
de amostras de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9
FIG.5.8
Melhores resultados da Petrobras (PETR4) em diferentes tamanhos
de amostras de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
FIG.5.9
Melhores resultados da Petrobras (PETR4) em diferentes tamanhos
de amostras de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
FIG.5.10 Melhores resultados da Petrobras (PETR4) em diferentes tamanhos
de amostras de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10
LISTA DE TABELAS
TAB.1.1
PETR4 - Exemplo de dataset simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
TAB.2.1
Descrição da hierarquia do aprendizado indutivo . . . . . . . . . . . . . . . . . . . .
25
TAB.2.2
Matriz de confusão para um problema binário . . . . . . . . . . . . . . . . . . . . . . .
31
TAB.2.3
Principais kernels utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
TAB.3.1
Principais focos de previsão nanceira . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
TAB.3.2
Impacto dos parâmetros livres nos problemas de undert e overt
(TAY, 2001a) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
TAB.3.3
resumo dos trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
TAB.3.4
Parametrização nos trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . .
54
TAB.4.1
Série histórica nanceira obtida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
TAB.4.2
Estrutura parcial da tabela cotacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
TAB.4.3
Estrutura da tabela execution_group_user_description . . . . . . . . . . . . . .
64
TAB.4.4
Estrutura da tabela ibovespa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
TAB.4.5
Estrutura da tabela releases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
TAB.4.6
Estrutura parcial da tabela results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
TAB.4.7
Representação para dados discretizados em 3 dias . . . . . . . . . . . . . . . . . . .
66
TAB.5.1
Totais de melhores resultados dos algoritmos agrupados em função
do grupo de experimento. G1 apresentando melhores resultados. . . . . . .
TAB.5.2
79
Totais de piores resultados dos algoritmos agrupados em função do
grupo de experimento. G1 apresentando melhores resultados. . . . . . . . . .
80
TAB.5.3
Experimentos com diferentes tamanhos de amostras . . . . . . . . . . . . . . . . .
81
TAB.5.4
Períodos com melhores taxas de acertos por ação . . . . . . . . . . . . . . . . . . . .
87
TAB.5.5
Amostras utilizadas para análise das implementações de SVM: CSVC e nu -SVC, considerando melhores períodos por ações . . . . . . . . . . . .
TAB.5.6
Amostras utilizadas para análise das implementações de SVM: CSVC e nu -SVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TAB.5.7
88
89
Amostras utilizadas para análise do kernel Linear. Conforme esperado, resultados abaixo dos melhores cenários obtidos com uso
do kernel RBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
90
TAB.5.8
Amostras utilizadas para análise do kernel RBF . . . . . . . . . . . . . . . . . . . . .
91
TAB.5.9
Amostras utilizadas para análise do kernel Sigmoid . . . . . . . . . . . . . . . . . .
92
TAB.5.10 Amostras utilizadas para análise do kernel Polinomial . . . . . . . . . . . . . . . .
93
TAB.5.11 Bons resultados para modelos retreinados em função do tempo com
validação cruzada deslizante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
TAB.5.12 Amostras utilizadas para análise do modelo híbrido da ação ALLL11.
96
TAB.5.13 Análise do desempenho do modelo híbrido da ação ALLL11 . . . . . . . . . . .
98
TAB.5.14 Amostras utilizadas para análise do modelo híbrido da ação CSNA3 . . .
98
TAB.5.15 Análise do desempenho do modelo híbrido da ação CSNA3 . . . . . . . . . . . 100
TAB.5.16 Amostras utilizadas para análise do modelo híbrido da ação PETR4 . . . 100
TAB.5.17 Análise do desempenho do modelo híbrido da ação PETR4 . . . . . . . . . . . 101
TAB.5.18 Amostras utilizadas para análise do modelo híbrido da ação ELET6 . . . 101
TAB.5.19 Análise do desempenho do modelo híbrido da ação ELET6 . . . . . . . . . . . 103
12
LISTA DE ALGORITMOS
1
Método do Gradiente Descendente (versão para minimização) . . . . . . . . . . .
37
2
principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
3
Classicador BLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4
Treinador Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5
Classicador Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
6
Treinador Regressão Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
7
Classicador Regressão Logística . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
8
Transformação SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
9
Classicação SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
10
Regra de previsão do modelo híbrido composto por NB, RL e SVM
para ação ALLL11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Regra de previsão do modelo híbrido composto por NB, RL e SVM
para ação CSNA3 e PETR4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
97
99
Regra de previsão do modelo híbrido composto por NB e SVM para
ação ELET6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
13
LISTA DE ABREVIATURAS
AM
-
Aprendizado de Máquina
BLS
-
Sistema de Referência (Baseline System )
BOVESPA
-
Bolsa de Valores de São Paulo
FAMA
-
Framework de Aprendizado de Máquina
IME
-
Instituto Militar de Engenharia
NB
-
Naive Bayes
RL
-
Regressão Logística
SVM
-
Máquina de Vetores de Suporte (Support Vector Machines)
TAE
-
Teoria do Aprendizado Estatístico
14
RESUMO
Prever o comportamento de ativos nanceiros é um desao que vem sendo estudado
com diversas técnicas nos últimos anos, seja por modelos de regressão ou de classicação.
Apesar da grande quantidade de pesquisas acadêmicas, antecipar o movimento do preço
nal de um ativo ainda é um desao a ser superado. A maior diculdade está no comportamento não-linear e não estacionário das séries temporais nanceiras, assim como toda
incerteza e ruídos encontrados no mercado nanceiro.
Este trabalho foca em encontrar tendências para os preços de ações do mercado
Brasileiro em determinados períodos de tempo e abrange o estudo do comportamento
de três algoritmos de aprendizado de máquina, Naive Bayes (NB), Regressão Logística
(RL) e Support Vector Machines (SVM) aplicados a dados históricos de séries nanceiras.
O comportamento foi comparado com um algoritmo base (Baseline - BLS) criado para
ser o limite inferior de qualidade para os modelos gerados.
Como apresentado em estudos similares da área, o algoritmo SVM apresentou melhores resultados que os algoritmos comparados nesse estudo. Uma análise detalhada mostra
que o ajuste de parâmetros traz benefícios para o resultado dos modelos, com ganhos de
até 32%. A biblioteca LibSVM foi integrada ao framework FAMA, ambos disponíveis
livremente.
A m de obter modelos com maior capacidade de generalização, foi alterado o comportamento do método de validação cruzada padrão para se ajustar as características do
problema, tornando-a deslizante em função do tempo. Observou-se que retreinar o modelo em determinado período de tempo melhora positivamente a taxa de acerto quando
comparado ao modelo de validação cruzada padrão.
15
ABSTRACT
Predict the behavior of nancial assets is a challenge that has been studied with
various techniques in recent years, either regression or classication models . Despite the
large amount of academic research, anticipate the movement of the nal price of an asset
is still a challenge to be overcome . The main diculty is nonlinear and non-stationary
behavior of nancial time series, as well as all uncertainty and noise found in the nancial
market.
This work focuses on nding stock price trends in the Brazilian market in certain
periods of time and covers the study of the behavior of three machine learning algorithms,
Naive Bayes (NB), Logistic Regression (LR) and Support Vector Machines (SVM) applied
to historical data for nancial time series. The behavior was compared with a basic
algorithm (Baseline - BLS) developed as a lower limit of quality for models generated.
As shown in similar studies in the area, the SVM algorithm outperforms the others
algorithms compared in this study. A detailed analysis shows that the parameter setting
has benets for the outcome of the models, overcoming with up to 32% . The LIBSVM library has been integrated into the FAMA framework, both available as opensource
distribution.
In order to obtain models with larger capacity of generalization, the default behavior of the cross-validation method has been changed to adjust the characteristics of the
problem, making it slide on time's period. It was shown that retrain the model in a
given period of time positively improves the hit rate when compared to the standard
cross-validation model.
16
1 INTRODUÇÃO
O mercado nanceiro é composto por diversos tipos de investidores, com diversos
graus de experiência acerca das particularidades de cada ativo nanceiro. Apesar da heterogeneidade, antecipar a direção de ativos nanceiros (tendências de alta no preço de
fechamento do ativo ou tendências de baixa, de curto, médio ou longo prazo) ainda é um
desao a ser superado. Prever esse comportamento é uma tarefa que vem sendo estudada
por meio de diversas técnicas nos últimos anos, sejam elas por meio de análise técnica,
fundamentalistas ou ainda utilizando modelos computacionais (de regressão ou de classicação). Apesar da grande quantidade de pesquisas sobre o assunto (ATSALAKIS, 2009),
ainda não foi possível gerar modelos com uma alta taxa de acertos. A maior diculdade
em realizar essa tarefa está no comportamento não linear e não estacionário das séries
temporais nanceiras assim como toda a incerteza e ruídos encontradas nos dados, dicultando bastante a descoberta de padrões de predição. Essas características sugerem
ainda que não há informação completa que pode ser obtida do passado para capturar
completamente a dependência entre o passado e o futuro (o preço de fechamento do ativo,
por exemplo), divergindo parcialmente da Hipótese do Mercado Eciente (GRANGER,
1992) (ALLAN, 2004) (ALDRIGHI, 2005), que sugere o valor de um ativo é ajustado
sem atraso para reetir toda informação pública disponível, não sendo possível realizar
lucro excessivo. Fatores Econômicos (índices da economia de uma País ou região), Institucionais (informações econômicas de empresas privadas ou públicas) ou ainda Sociais
(determinada sociologia econômica) não são modeladas nesta pesquisa, que tem foco no
comportamento dos algoritmos de Aprendizado de Máquina (AM) aplicados a dados de
séries históricas nanceiras. Neste trabalho foram estudados algoritmos de aprendizado
supervisionado para induzir modelos preditivos que apresentem boa taxa de acurácia em
tarefas de classicação de ativos nanceiros, servindo como base para a tomada de decisão
de investidores.
1.1
MOTIVAÇÃO
Apesar dos bons resultados encontrados em estudos recentes na área (HUANG, 2005),
(PHICHHANG, 2009), (ZHONGYUAN, 2012), (SHEN, 2012), (KARAZMODEH, 2013),
17
(ALVIM, 2013), (WANG, 2013), o desao de encontrar modelos com boa capacidade de
generalização com dados atuais ainda está em aberto, seja para previsão de tendências
para indicadores nanceiros ou ações da bolsa de valores. Principalmente quando são
utilizados modelos gerados com o algoritmo SVM, onde são obtidos excelentes resultados
para a base de treinamento, que não se repetem quando o modelo é aplicado a novos
dados, evidenciando o problema de superajuste comumente encontrado em tarefas de
Aprendizado de Máquina (TAY, 2001b), (TAY, 2001a), (TAY, 2002), (TAY, 2003).
Em pesquisas com foco de maximização do investimento são encontrados bons modelos como ferramentas de apoio a decisão, apesar de pontos importantes ainda estarem em
aberto. (GOMIDE, 2011) propôs uma técnica de seleção de carteira baseada em Pairs
Trading 1 que apresenta bons resultados. (ALVIM, 2013) propôs um modelo baseado na
construção de estratégias multirresolução2 , a partir da resolução do problema de Agendamento de Intervalos Ponderados, alcançando um lucro médio anual de 77%, que representa
um excelente retorno nanceiro. A modelagem proposta é aplicada com valores de investimento superiores a R$ 50.000,00.
Outro foco de previsão no mercado nanceiro se dá para tendências de ações da Bolsa
de Valores. Em (ESTEVES, 2013) foi observado que o ajuste dos parâmetros do algoritmo SVM aplicados a uma tarefa de treinamento deslizante em relação ao tempo gera
melhores resultados na previsão da tendência da ações da Bolsa de Valores de São Paulo
(BOVESPA). O foco da pesquisa também se torna interessante por haver poucos trabalhos publicados nesta área para ativos do mercado nanceiro do Brasil (MARTINEZ,
2009), (ALVIM, 2010), (ALVIM, 2013).
1.2
OBJETIVO
O objetivo do estudo é voltado para análise de comportamento dos algoritmos de aprendizado de máquina aplicados em séries temporais nanceiras. O trabalho será focado
em realizar um estudo comparativo entre os algoritmos e entre trabalhos relacionados,
desenvolvendo um método computacional que possa ser usado como base para predição
1 Basicamente
pode ser denida como uma operação baseada em uma taxa calculada entre duas ações
(spread ), que normalmente reetem o mesmo fundamento econômico. Quando esta taxa oscila em determinado valor, sugere uma boa oportunidade de lucro através de uma operação casada de venda de um
dos ativos e compra de outro.
2 Uma estratégia que opera em diferentes escalas de tempo
18
de tendências de ativos nanceiros (ações), além de desenvolver um modelo público de
tratamento de séries históricas nanceiras e colaborar com futuras pesquisas, integrando
a biblioteca LibSVM (CHANG, 2011) com o framework opensource de aprendizado de
máquina FAMA(FAMA, 2012).
1.3
JUSTIFICATIVA
Para operar no mercado nanceiro com realização de lucro é muito importante obter
subsídios para tomada de decisão. Esses subsídios podem ser traduzidos em informações
provenientes de especialistas de domínio (analistas nanceiros) ou ainda de softwares
com inteligência computacional capaz de antecipar o movimento dos íncides. Dada a
característica do mercado nanceiro, o risco envolvido na tomada de decisão é grande e
pode gerar perdas nanceiras consideráveis. Este trabalho estuda o comportamento de
certos algoritmos de aprendizado de máquina para desenvolver uma metodologia que possa
servir de base para construção de sistemas complexos para a tomada de decisão, usando
como nível inferior o classicador BLS, que simula o comportamento de um investidor
sem conhecimento de mercado nanceiro.
1.4
METODOLOGIA
Este estudo busca desenvolver uma plataforma para a análise do comportamento dos
ativos quando submetidos a dados encontrados nas séries temporais nanceiras, através
da predição da tendência do ativo, que representa a classe alvo do problema. Deni-se
a classe como "positiva" quando a variação do preço é positiva ou nula, ou seja, quando
o preço de fechamento atual é igual ou superior ao preço de fechamento anterior. Na
situação inversa, a classe é denida como "negativa".
Após a extração das informações dos preços dos ativos (obtidas diretamente do site
da Bovespa), é realizado o pré-processamento dos dados. Essa tarefa consiste em algumas
etapas, como a escolha dos atributos de entrada do modelo, na exclusão de outliers,
gerados pelo processo de desdobramento 3 e agrupamento 4 da série e a transformação dos
3 estratégia
de companhias para melhorar a liquidez de um ativo nanceiro. Ocorre quando o valor da
ação está muito acima, dicultando a transação nanceira
4 representa o processo inverso ao desdobramento e é realizado para melhorar a liquidez de um papel.
Quando o preço está muito abaixo, qualquer alteração menor pode signicar uma variação grande.
19
valores para um domínio de valores que não privilegie alguns destes, além de facilitar a
execução de certos cálculos matemáticos. (MANCUSO, 2013)
De acordo com estudos realizados em (ESTEVES, 2013) foi vericado que os algoritmos
geravam modelos com acurácia maior quando submetidos a determinados períodos de
treinamento, que variavam em função do tempo. Apesar da melhora considerável na taxa
de acertos da tendência futura para este método deslizante de validação cruzada (sliding
cross-validation ), serão detalhadas as variações deste parâmetro na tarefa de classicação.
Toda informação foi mantida em banco de dados relacional. Um serviço consulta
essas informações e transforma os parâmetros e entrada escolhidos em determinada série
temporal para o formato de arquivos do FAMA.
TAB. 1.1: PETR4 - Exemplo de dataset simples
preabe premax premin preult qtd
21,09
21,49
21,26
21,27
21,10
21,40
21,12
21,86
21,49
21,57
21,26
21,52
21,49
21,39
21,49
21,51
21,53
21,88
21,71
21,60
20,90
21,10
21,26
21,03
21,05
21,14
21,03
21,16
21,40
21,32
21,04
21,21
21,34
21,37
21,23
21,28
21,49
21,24
21,58
21,55
15,423,600
19,397,900
12,603,500
14,738,800
23,325,800
17,024,700
21,066,100
30,343,800
31,775,700
17,723,400
d-1
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
0,34
-0,03
d-2
0,00
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
0,34
d-3
0,00
0,00
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
y
+1
-1
+1
-1
+1
-1
+1
-1
+1
+1
Após a extração e transformação dos dados disponíveis, foram realizados estudos com
relação ao impacto dos atributos de entrada do modelo, além de ajustes nos parâmetros
de conguração.
A tabela 1.1 mostra um exemplo simples de dataset do ativo PETR4 como parâmetro
de entrada para o FAMA (preço de abertura, preço máximo no dia, preço mínimo no
dia, preço de fechamento, quantidade de ações negociadas, diferença de 1 dia, diferença
de 2 dias, diferença de 3 dias e classe alvo, respectivamente). Essa estrutura de dados é
utilizada no treinamento de diferentes modelos, utilizando cada um os algoritmos BLS,
Naive Bayes, Regressão Logística e Support Vector Machines.
Como limite inferior da análise foi considerado o algoritmo BLS, que representa uma
20
implementação de lógica simples para prever a tendência de um ativo, considerando apenas o dia anterior como parâmetro. Em sua lógica estima que o preço futuro seguirá a
tendência passada. Em uma série nanceira com informações diárias, isto signica que o
preço de fechamento de amanhã será positivo, se o preço de fechamento atual for positivo
(Cópia Carbono). A este baseline foi comparado o resultado dos outros algoritmos para
tentar encontrar um especialista em cada ativo, ou em grupos de ativos (normalmente
ativos do mesmo setor econômico ou empresas de porte similar).
A gura 1.1 mostra a comparação entre os algoritmos durante a fase de treinamento.
FIG. 1.1: PETR4 - Comparação dos resultados dos modelos de diferentes algoritmos
Melhores resultados foram obtidos com modelos retreinados em função do tempo, evidenciando o peso maior dos dias anteriores mais próximos. Para isso, alteramos o método
leave-one-out (seção 2.4.4) para deslizar em função do tempo e considerar determinada
janela na fase de indução da hipótese.
21
FIG. 1.2: Validação cruzada deslizante em função do tempo com 24 dias de treino
Para a implementação do algoritmo SVM, foi desenvolvida uma interface com a biblioteca LibSVM (CHANG, 2011) para integração ao FAMA (FAMA, 2012).
1.5
ESTRUTURA DA DISSERTAÇÃO
Esta dissertação está organizada da seguinte forma: no capítulo 2 serão apresentados os
principais conceitos a respeito do tema Aprendizado de Máquina, bem como os principais
algoritmos utilizados. No capítulo 3, será discutido o problema de predição de ativos, enfatizando nos trabalho relacionados. No capítulo 4, será discutida a modelagem utilizada
neste trabalho para a resolução do problema proposto. No capítulo 5, serão realizadas
as análises dos experimentos propostos. No capítulo 6, serão realizadas as considerações
nais e apresentadas sugestões de trabalhos futuros. O capítulo 7 contém as referências
bibliográcas utilizadas como base neste trabalho. Por m, o capítulo 8 apresentará nos
anexos os scripts de banco de dados utilizados neste trabalho.
22
2 APRENDIZADO DE MÁQUINA
Inicialmente vista como uma área teórica, o ramo de Inteligência Articial alavancou
pesquisas com bons resultados nas últimas décadas. No início dos anos de 1970, começou a
ser observado o desenvolvimento de programas que buscavam resolver problemas reais por
meio da informação de especialistas, e não somente a resolução de uma cadeia de regras
bem-denidas que buscava seguir o uxo de uma lógica compilada em um algoritmo. Esses
programas eram conhecidos como Sistemas Especialistas e buscavam extrair as regras para
auxiliar à tomada de decisão.
Recentemente, com a crescente complexidade dos problemas a serem solucionados e o
aumento gradativo da quantidade de informação disponível, tornou-se clara a necessidade
de ferramentas mais sosticadas e inteligentes, que fossem adaptáveis à novas situações
e apresentassem menor intervenção humana. Essa técnica deveria ser capaz de extrair
conhecimento da experiência passada para gerar modelos computacionais capazes de lidar
com novas situações de maneira inteligente.
Um entendimento detalhado dos modelos computacionais gerados pelos algoritmos de
aprendizado de máquina poderiam, então, lidar melhor com situações especícas do que
a capacidade humana em resolver determinadas situações.
Aprendizado de Máquina é o ramo da Inteligência Articial que tem como principal
objetivo aprender a reconhecer padrões complexos e tomar decisões baseada em eventos,
dados, históricos. É o processo de indução de uma função ou hipótese a partir de uma
experiência passada (Machine Learning ). Basicamente, permite à máquina a capacidade
de aprender sem ser explicitamente programada para tal tarefa. A ideia básica por trás
disso é baseada pela forma de representar e à capacidade de generalização de um modelo.
De acordo com (MITCHELL, 1997) pode-se denir Aprendizado de Máquina como:
"A capacidade de melhorar o desempenho na realização de alguma tarefa por meio de
experiência.".
Outra denição recente proposta por (FACELI, 2011):
"O processo de indução de uma hipótese, ou aproximação de uma função, a partir da
experiência."
Na tentativa de gerar modelos cada vez mais próximos (ou superiores) a resultados
23
obtidos por especialistas, diversos algoritmos tem sido propostos, assim como suas variações.
2.1
TIPOS
Algoritmos de Aprendizado de Máquina podem ser classicados em grupos, de acordo com
o problema a ser tratado. Conceitualmente são organizados em dois grupos primários:
Tarefas Preditivas, ou Aprendizado Supervisionado (quando se conhece a saída de determinada instância a ser classicada) e Tarefas Descritivas ou Aprendizado não-supervisionado
(quando não se conhece a saída de determinada instância a ser classicada)(FACELI,
2011).
Nas tarefas de previsão, diz-se que o aprendizado é supervisionado porque o algoritmo
conhece a saída de cada exemplo, normalmente denida por um especialista, no conjunto
de dados. Este induz modelos preditivos (ou hipóteses) a m de prever um rótulo ou valor
que caracterize um novo exemplo, baseado em seus atributos de entrada.
Nas tarefas de descrição, a meta é descrever um determinado conjunto de dados.
Nesse cenário não são usados exemplos rotulados (ou seja, não se conhece os valores dos
elementos de saída para cada exemplo no conjunto de dados), seguindo o paradigma de
aprendizado não-supervisionado. Um exemplo simples seria o agrupamento de exemplos
de um conjunto de dados por semelhança ou ainda extrair regras de associação entre
objetos.
A gura 2.1 apresenta a estrutura do aprendizado, proposta por (MONARD, 2003).
FIG. 2.1: Hierarquia do Aprendizado Indutivo
A raiz da árvore representa o aprendizado indutivo, característica padrão em todas as
24
tarefas de aprendizado de máquina, que busca generalizações a partir do conjunto de dados. Abaixo há duas estruturas, uma representando o aprendizado supervisionado e outra
representando o não-supervisionado. As tarefas supervisionadas se concentram em problemas de classicação e de regressão. As tarefas não supervisionadas se concentram em
problemas de agrupamento, de associação ou ainda de sumarização. A tabela 2.1 resume
a hierarquia sugerida, apesar de não separar cada denição deste nos modelos propostos,
uma vez que um modelo descritivo também pode ser usado para realizar previsões.
TAB. 2.1: Descrição da hierarquia do aprendizado indutivo
subtarefa
Classicação
Regressão
Agrupamento
Associação
Sumarização
Por Esforço
característica
Dados discretos (Modelo Preditivo)
Dados contínuos (Modelo Preditivo)
Dados agrupados de acordo com similaridade (Modelo descritivo)
Padrões frequentes de associação
(Modelo descritivo)
Descrição simples para um conjunto de
dados (Modelo descritivo)
Reforçar uma ação positiva e punir uma
ação negativa (Modelo descritivo)
O foco neste trabalho é no aprendizado supervisionado para gerar modelos de previsão
que classicam ativos nanceiros em duas classes: valorização ou desvalorização de um
ativo em um período de tempo.
O aprendizado supervisionado contempla um conjunto de exemplos rotulados (Xi , yi ),
onde Xi representa o conjunto de atributos do exemplo xi e yi representa a saída esperada
para o i-ésimo exemplo x.
Ao processo de induzir um modelo a partir de um conjunto de exemplos rotulados, é
conhecido como treinamento (MONARD, 2003).
Os rótulos são as saídas desejadas (classes) e os valores que eles assumem caracterizam
o tipo de problema, conforme detalhado na tabela 2.1
A arquitetura geral consiste num conjunto de atributos (características do problema),
representado por um vetor de entrada, onde cada atributo expressa um determinado aspecto do modelo de dados. Resumidamente essas características podem ser divididas em
dois tipos básicos de variáveis: quantitativas (discretas ou contínuas) e qualitativas (nom25
inais ou ordinais). Uma característica, representada por uma variável, é dita quantitativa
quando pode ser medida em uma escala innita de valores. Uma característica representada por uma variável é dita qualitativa (ou ainda categórica) quando é denida por
categorias nitas que representam classicações.
A gura 2.2 exemplica o uxo básico do aprendizado supervisionado para um classicador. Os dados coletados (a) são tratados a m de gerar o vetor de entrada para o
algoritmo, contendo as características e a classe associada ao exemplo (b). Nesta etapa,
exemplos que não são comuns ao cenário estudado (outliers ) são retirados da amostra
e as variáveis continuas são ajustadas para otimizar o processo de cálculo, além de não
privilegiar certos valores (scaling ) (c). Na fase de treinamento, é realizada a indução de
uma hipótese (d), gerando um classicador (e). Após essa fase, o classicador é avaliado
(comparando os rótulos conhecidos com os gerados) (f) a m de gerar as métricas do
modelo proposto (g).
FIG. 2.2: Fluxo Básico do Aprendizado Supervisionado para um Classicador
2.2
O PROCESSO DE INDUÇÃO DE UMA HIPÓTESE
O processo de indução de uma hipótese, etapa fundamental para algoritmos de aprendizado de máquina, parte da análise de um conjunto de dados selecionados. Dessa amostra
26
de dados são extraídas informações a partir dos atributos de entrada de cada exemplo.
O objetivo do algoritmo é aprender (desconsiderando corretamente os ruídos presentes)
a partir de um subconjunto de dados, denominado conjunto de treinamento, e gerar um
modelo ou hipótese capaz de associar corretamente os dados contidos no conjunto de
entrada ao valor do seu atributo de saída.
O objetivo é deduzir corretamente o valor da variável de saída para determinado exemplo de um novo conjunto de dados através da indução da hipótese gerada pelo processo
de treinamento do algoritmo. A essa propriedade é dado o nome de capacidade de generalização da hipótese. Espera-se que o algoritmo encontre boa capacidade de generalização,
podendo então tornar-se útil, quando submetido a novas instâncias.
2.3
SUBAJUSTE(UNDERFITTING) E SUPERAJUSTE(OVERFITTING)
Pode-se vericar dois problemas comuns a esta fase, ambos retratando extremos no
processo de geração do modelo, ou seja, modelos super-ajustados (overtting ) ou subajustados (undertting ) ao conjunto de treinamento.
A gura 2.3(a) exemplica o problema de overtting, quando no processo de treinamento, o classicador gerado consegue prever corretamente todos os exemplos da amostra,
inclusive possíveis ruídos. Esse ajuste excessivo que o algoritmo produz ao conjunto de
dados de treinamento acaba gerando um modelo ruim, normalmente com baixa taxa de
acerto quando submetido a novas instâncias.
No caso extremo oposto, conhecido como undertting, o algoritmo apresenta uma baixa
taxa de acertos (gura 2.3(b)), mesmo na fase de treinamento, caracterizando o subajustamento aos dados. Isto comumente ocorre quando os exemplos são pouco representativos
ou o modelo usado é muito simples e não consegue capturar os padrões existentes nos
dados apresentados ou ainda quando o número de exemplos é insuciente (MONARD,
2003).
A situação mais próxima do desejado é representada pela gura 2.3(c), onde tem-se
um classicador que acerta a maior parte das predições, sem se ater a exemplos muito
fora da curva.
27
FIG. 2.3: Exemplos de overtting e undertting (Adaptado de SMOLA e SCHOLKOPF,
2002)
2.4
MÉTODOS DE AMOSTRAGEM
Existem duas formas básicas de avaliar o desempenho do modelo gerado, classicando-o
com os mesmos dados utilizados no treinamento ou submetendo-o a um novo conjunto
de dados. O primeiro método, chamado de Ressubstituição (TOUSSAINT, 1974), fornece
uma medida de desempenho falsa e muito otimista, uma vez que os algoritmos tendem a
gerar um modelo super-ajustado aos dados durante a fase indutiva. Em geral o erro/acerto
obtido nesse tipo de avaliação é denominado aparente.
Para garantir que o algoritmo seja o mais genérico possível, é importante que algum
método de validação seja aplicado utilizando uma nova amostra, exclusiva aos exemplos
utilizados na fase de treinamento (MONARD, 2003). Os exemplos de treinamento são
empregados na indução e no ajuste do modelo, enquanto que os exemplos de teste são
usados como parâmetros de entrada para o modelo gerado na etapa de testes.
Nesse contexto, pode-se empregar a técnica da validação cruzada (cross-validation ),
que é um método de amostragem para avaliar a capacidade de generalização de um modelo
a partir de um conjunto de dados. (KOHAVI, 1995). O objetivo é estimar a taxa de
acerto de um modelo na prática, com um novo conjunto de dados. Apesar das derivações
existentes, o método funciona basicamente na divisão da amostra em conjuntos exclusivos,
utilizando uma determinada quantidade para o treinamento do modelo (estimação dos
parâmetros) e outros para a validação (testes). As subseções a seguir detalharão alguns
dos métodos mais conhecidos.
28
2.4.1
RETENÇÃO (HOLDOUT )
Método bastante comum e simples, a técnica de holdout divide o grupo seguindo uma porcentagem xa p para treinamento e (1−p) para testes, normalmente seguindo a proporção
de 2/3 e 1/3, respectivamente. Essa técnica, possivelmente, pode gerar um preditor superajustado aos dados, uma vez que um produtor produzido sobre todos os objetos, em geral,
apresentará taxa de acerto maior que a gerada a partir de uma parte deles (MONARD,
2003).
Apesar de (MICHIE, 1994) propor que, para um conjunto de dados grande, o superajuste não ocorra, a interpretação do quão grande deve ser o conjunto de dados para que
isto não ocorra deve ser levada em consideração. Outro ponto negativo quanto a este
método é que ele não permite avaliar a variação do desempenho em diferentes amostras
utilizadas para treinamento.
2.4.2
AMOSTRA ALEATÓRIA (RANDOM SUBSAMPLING )
A amostragem aleatória (random subsampling ) ajusta o método holdout, permitindo
avaliar a variação do desempenho em amostras distintas. Divide-se o conjunto em t
diferentes conjuntos aleatórios, aplica-se o método holdout em cada um deles, e ao nal
retira-se a média aritmética dos resultados.
2.4.3
K-PARTIÇÕES (K-FOLD )
Nessa abordagem de validação, assegura-se a representatividade máxima de todas as
classes no processo de treino e testes, repartindo o conjunto de dados em k -partições
exclusivas (folds ) de mesmo tamanho, ou tamanho aproximado, igual a t =
n
k
, onde:
• n = Total de exemplos do conjunto de dados
• t = Tamanho do bloco
• k = Total de blocos
O treinamento é realizado utilizando os exemplos de k−1 blocos e a hipótese é induzida
no bloco (fold ) remanescente. O processo é realizado k vezes e a média da métrica utilizada
é obtida com o resultado das iterações.
29
2.4.4
DEIXANDO UM FORA (LEAVE-ONE-OUT )
Esse método de validação cruzada pode se tornar muito custoso e por isso é normalmente utilizado em amostras pequenas. Para uma amostra de tamanho n, realiza-se o
treinamento utilizando (n − 1) exemplos e a hipótese induzida é testada no único exemplo
remanescente. O processo é repetido n vezes.
2.4.5
ESTRATIFICADA (STRATIFIED )
Método muito similar a validação cruzada, se diferenciando por considerar a distribuição
de classes na amostra. Ou seja, durante a partição dos blocos deve-se levar em consideração a distribuição de classes total. O cenário de 65% de exemplos da classe 0 e 35% de
exemplos da classe 1 num amostra qualquer deve-se repetir em cada bloco (fold ) gerado,
mantendo a proporção de classes.
2.5
AVALIAÇÃO DE MODELOS DE CLASSIFICAÇÃO
A acurácia gerada pelos métodos de amostragem pode ocultar uma boa capacidade de
generalização de um modelo gerado para determinada classe do problema. O algoritmo
pode ser capaz de induzir uma hipótese que tenha boa taxa de acerto para determinada
classe, tornando-o especialista em determinado cenário.
Segundo (MITCHELL, 1997) a avaliação dos algoritmos de aprendizado de máquina é
feita através da análise do desempenho do classicador utilizando dados que não zeram
parte de seu treinamento.
2.5.1
MATRIZ DE CONFUSÃO
A matriz de confusão (MONARD, 2003) realiza papel importante, detalhando o número
de classicações corretas e incorretas de cada classe do problema. A partir da matriz
é possível extrair medidas estatísticas como precisão (precision ), abrangência (recall ) e
acurácia (acuracy ), por exemplo, utilizadas para medir a efetividade do classicador.
(MANNING, RAGHAVAN, SCHUTZE, 2008).
Em um modelo de duas classes, pode-se denir a matriz de confusão da seguinte
maneira (de acordo com a tabela 2.2) :
30
TAB. 2.2: Matriz de confusão para um problema binário
previsto
+1 -1
+1 vp fn
realizado
-1 fp vn
onde:
• vp = verdadeiros positivos (true positive )
total de classes positivas classicadas corretamente.
• vn = verdadeiros negativos (true negative )
total de classes negativas classicadas corretamente.
• f p = falsos positivos (false positive )
total de classes positivas classicadas erradamente.
• f n = falsos negativos (false negative )
total de classes negativas classicadas erradamente.
• tot − prev+ = vp + f p
total de classes previstas como positiva na amostra.
• n = vp + f n + f p + vn total de exemplos na amostra
Existem alguns indicadores de desempenho que podem ser derivados a partir da matriz
de confusão (MONARD, 2003), tais como:
• Taxa de verdadeiro positivo - tvp (true positive rate or recall )
Taxa de acerto na classe positiva
tvp =
vp
(vp + f n)
É uma medida que independe da proporção de exemplos. Equivale à pergunta: "De
todos os exemplos positivos, quantos o modelo acertou?"
• Taxa de verdadeiro negativo - tvn ou especicidade (true negative rate or specicity )
Taxa de acerto na classe negativa
tvn =
vn
(f p + vn)
31
É a medida que independe da proporção de exemplos. Equivale à pergunta: "De
todos os exemplos negativos, quantos o modelo acertou?"
• Taxa de falso positivo - tfp (false positive rate )
Taxa de erro na classe positiva
tf p =
fp
(f p + vn)
É a medida que independe da proporção de exemplos. Equivale à pergunta: "De
todos os exemplos negativos, quantos o modelo errou (previu como positivo)?"
• Taxa de falso negativo - tfn (false negative rate )
Taxa de erro na classe negativa
tf n =
fn
(f n + vp)
É a medida que independe da proporção de exemplos. Equivale à pergunta: "De
todos os exemplos positivos, quantos o modelo errou (previu como negativo)?"
• Acurácia - acc (accuracy )
acc =
(vp + vn)
n
Calcula a taxa total de acertos (em ambas as classes).
• Taxa de previstos positivos - tpp ou precisão - prec (precision )
proporção de exemplos positivos classicados corretamente sobre o conjunto de classicados positivos.
tpp =
vp
(vp + f p)
É a medida dependente da proporção de exemplos, que pode mudar por evento
aleatório. Equivale à pergunta: "Qual o percentual de acerto da classe positiva sob
todos os exemplos classicados como positivos?"
32
• Taxa de previstos negativos - tpn
proporção de exemplos negativos classicados corretamente sobre o conjunto de
classicados negativos.
tpn =
vn
(f n + vn)
É a medida dependente da proporção de exemplos, que pode mudar por evento
aleatório. Equivale à pergunta: "Qual o percentual de acerto da classe negativa sob
todos os exemplos classicados como negativos?"
Para este contexto, o foco será nas seguintes medidas de desempenho: acurácia, taxa
de verdadeiro positivo e taxa de verdadeiro negativo, uma vez que ambas as classes se
tornam relevantes a este cenário de análises (informação de tendência de baixa é tão
importante quanto informação de tendência de alta para o investidor).
2.5.2
ANÁLISE ROC
Análise ROC (Receiver Operating Characteristic ) é um método gráco para a avaliação de
sistemas de predição(FAWCETT, 2005), que ganhou força e começou a ser utilizado em
Aprendizado de Máquina para a avaliação de modelos de classicadores (PRATI, 2008). É
uma ferramenta interessante para domínios onde existe uma grande desproporção entre as
possíveis classes ou ainda quando a relação custo-benefício deve ser levada em consideração
para a predição.
O modelo de classicação é plotado no gráco considerando duas variáveis: no eixo x,
o cálculo da taxa de falsos positivos (false positive rate ) e no eixo y, o cálculo da taxa de
verdadeiros positivos (true positive rate ).
Pode-se observar na gura 2.4 alguns pontos de destaque. O ponto (0,0) representa a
estratégia de nunca classicar um exemplo como positivo (ou seja, o modelo não gera falso
positivo mas também não gera verdadeiro positivo). Inversamente, o ponto (1,1) classica
todos os exemplos como positivos. O ponto (0,1) representa o cenário perfeito, ou seja,
todos os exemplos positivos e negativos são corretamente classicados. Inversamente, o
ponto (1,0) representa o modelo que sempre faz predições erradas.
33
FIG. 2.4: Análise ROC
Quanto mais próximo ao ponto (0,0), mais "conservador" é o modelo. A classicação
positiva depende de grande segurança na classicação (poucos erros de falsos positivos,
mas baixas taxas de verdadeiro positivo).
Quantos mais próximo ao ponto (1,1), mais "liberal" é o modelo. A predição da classe
positiva ocorre mais frequentemente e de maneira correta, mas consequentemente tem
altas taxas de falsos positivos.
A diagonal (0,0)-(1,1) representa o comportamento aleatório e modelos que se encontrem a área de triangulo inferior a esta (área destacada em vermelho) representam
modelos piores que o aleatório.
2.6
NAIVE BAYES
O algoritmo Naive Bayes (Naive Bayes Gaussiano) é a implementação de um modelo
probabilístico baseado na regra de Bayes (BITTENCOURT, 2006). Por sua simplicidade
este algoritmo é largamente utilizado em aprendizado de máquina, seja em variáveis discretas ou contínuas. Sua implementação é considerada ingênua porque considera que todos
os atributos são condicionalmente independentes, ou seja, um dado atributo não possui
relação com nenhum outro. Em outras palavras, todo atributo xi contido no vetor de
34
entrada X é considerado independente dado yi , além de pressupor que os dados apresentam uma distribuição normal simétrica. Apesar da premissa simplista e comportamento
ingênuo, reporta bom desempenho em diversas tarefas de classicação (MCCALLUM,
1998).
A regra básica de Bayes é denida por:
P (h|E) =
P (E|h) ∗ P (h)
P (E)
(2.1)
onde:
P (h) = probabilidade a priori de h (probabilidade do evento h independente de E )
P (E) = probabilidade a priori de E (probabilidade do evento E independente de h)
P (h|E) = probabilidade a posteriori de h (probabilidade do evento após a evidência ser
vista). Probabilidade de E dado h.
P (E|h) = probabilidade a posteriori de E (probabilidade do evento após a evidência ser
vista). Probabilidade de h dado E .
A suposição Naive Bayes implica que a evidência (E ) pode ser dividida em atributos
independentes:
P (h|E) =
P (E 1 |h) ∗ P (E 2 |h)∗, ..., P (E n |h) ∗ P (h)
P (E)
(2.2)
Para atributos numéricos, utiliza-se a função de densidade probabilidade (f (x)), denida
pelos parâmetros de média (µ) (equação 2.3) e desvio-padrão (σ ) (equação 2.4):
n
µ=
1 X
∗
xi
n i=1
(2.3)
n
X
1
σ=
∗
(xi − µ)2
n − 1 i=1
f(x)=
√1
2πσ
∗ e−
(2.4)
(x−µ)2
2σ 2
(2.5)
No processo de treinamento o algoritmo calcula os parâmetros individuais (médias
e desvios-padrão) para cada classe c do problema, de acordo com a equação 2.5. O
processo de classicação, derivado da Teoria de Bayes (BITTENCOURT, 2006), ocorre
comparando o resultado da equação para cada possível classe c do problema. O maior
valor indica a classe alvo prevista.
35
2.7
A
REGRESSÃO LOGÍSTICA
função logística
é derivada da regressão linear multivariada e interpola uma série
de pontos através da melhor curva/hiperplano, gerados a partir de uma função de limiar
(threshold ). O fato, que pode se tornar um problema, de classicadores lineares sempre
apresentarem a predição booleana, mesmo para exemplos que possam estar muito próximos a fronteira, torna o classicador muito rígido, tendendo a um aumento do número
de classicações incorretas.
(2.6)
hx (x) = w1 x + w0
A equação 2.6 representa a função para a regressão linear univariada, onde x é o
parâmetro de entrada e w0 e w1 , os coecientes a serem aprendidos ("pesos"), através de
uma função que minimize o erro empírico, usualmente função de perda (também conhecida
como função de custo).
A equação logística (equação 2.7) é uma função de aproximação na forma f:X → y ou
ainda P (X|y), quando y for uma variável discreta que, dado um conjunto de treinamento
x = x1 ,...,xn , estima yi . Ou seja, calcula a probabilidade da variável alvo ser igual a
1 dado um conjunto de variável discretas ou contínuas como vetor de entrada. Normalmente, considera-se y como uma variável booleana através da implementação de um limiar
(threshold ) que tende a se tornar menos rígido (g(z) ) do que na regressão linear (gura
2.5), ou seja, o problema de classicação como sendo binário apesar da variável resposta
ser categórica.
FIG. 2.5: Exemplo de limiar logístico (a) x linear (b)
36
Quando y é booleano, tem sua formulação básica denida por:
P (y = 1|X) = g(w0 +
n
X
(2.7)
wk x k )
k=1
g(z) =
1
1 + e(−z)
(2.8)
onde:
wk = representa o k -ésimo termo do vetor de pesos w
xk = representa o k -ésimo termo do vetor de entrada X
g(z)= função logística
Para classicar dado exemplo xk busca-se associar o maior valor de yk que maximiza
a expressão P (y = y k |X), ou seja, assume-se que y = 0 se e somente se a condição
1 <
P (y=0|X)
P (y=1|X)
for verdadeira. A saída da função logística pode ser interpretada como a
probabilidade do exemplo pertencer a classe 1.
Usualmente o método
gradiente descendente
é a função de custo para denir os
valores dos pesos de w iterativamente. O processo de busca dos melhores parâmetros w
(pesos) que minimiza a perda no conjunto de dados é chamado de
regressão logística
(algoritmo 1).
Algoritmo 1 Método do Gradiente Descendente (versão para minimização)
procedimento gradiente
Escolher xk=0 como ponto inicial
enquanto k∇f (x(k) )k2 > faça
∆x(k) = −∇f (x(k) )
Utilizar busca linear para encontrar tamanho do passo α
x(k+1) = x(k) + α∆x(k)
m enquanto
m procedimento
2.8
MÁQUINAS DE VETORES DE SUPORTE (SUPPORT VECTOR MACHINE )
As Máquinas de Vetores de Suporte (support vector machine - SVM ) é atualmente uma
das mais populares abordagens para o aprendizado supervisionado. Tem implementação
37
baseada na Teoria do Aprendizado Estatístico (TAE) proposta por (VAPNIK, 1995) e
estabelece uma série de princípios a serem seguidos para obter classicadores com boa
capacidade de generalização. Quando não se tem um conhecimento especializado sobre o
domínio, então a escolha de SVM tende a ser um método excelente para utilizar. (RUSSELL, 2010).
Pode-se denir o problema de maneira similar ao encontrado pelos outros algoritmos
deste trabalho: dada N amostras (ou exemplos) de treinamento {xi , yi }, com i = 1, 2, ..., N
e xi ∈ <m é uma representação vetorial de um conjunto de dados e yi ∈ {−1, +1}
é sua classe associada. Considera-se ainda uma distribuição de probabilidades P (x, y)
desconhecida da qual os dados de treinamento foram retirados. O processo de treinamento
do algoritmo consiste em treinar um classicador que aprenda um mapeamento x → y
por meio de exemplos de treino {x, y}. Desta maneira é esperado que o classicador
atribua uma classe a um novo conjunto de exemplos seguindo a mesma distribuição de
probabilidade P . Na prática o classicador é treinado para aprender um conjunto de
possíveis mapeamentos x → f (x, α).
Seu principal objetivo é determinar fronteiras que produzam uma separação ótima
entre classes por meio de minimização dos erros
2.8.1
TEORIA DO APRENDIZADO ESTATÍSTICO
Sejam h0 um classicador pertencente a um conjunto de todos os classicadores que um
algoritmo de AM pode gerar (H) e X um conjunto de treinamento composto por n pares
(xi , yi ). A Teoria do Aprendizado Estatístico - TAE - estabelece condições matemáticas
que auxiliam na escolha de um classicador particular h0 ∈ H , levando em consideração
sua complexidade.
Tem como premissa a geração dos dados ocorre de forma independente, além de serem
identicamente distribuídos de acordo com uma distribuição de probabilidade P (x, y), que
descreve a relação entre as variáveis (objetos) e suas classes (rótulos). Neste sentido, o
risco esperado (ou ainda erro esperado) de um classicador pode ser denido pela equação
2.10, através de uma função de custo, por exemplo, função de custo 0 − 1 (equação 2.9)
custo(h(x), y) =
1
|y − h(x)|
2
(2.9)
38
Z
R(h) =
(2.10)
(custo(h(x), y)dP (x, y))
O principal dicultador da equação 2.10 é que, em geral, a distribuição de probabilidade é desconhecida, não sendo possível minimizar o risco esperado. Uma saída para
obter o melhor classicador é através do risco empírico (ou ainda erro empírico), denido
na equação 2.11.
n
Remp (h) =
1X
(custo(h(x), y))
n i=1
(2.11)
O risco empírico mede desempenho do classicador nos dados de treinamento, por
meio da taxa de classicações incorretas e constitui o principio de minimização do risco
empírico.
Assintoticamente, com n → ∞, é possível estabelecer condições para o algoritmo de
AM que garantam a obtenção de classicadores que tenham valores de risco empírico
convertendo para o risco esperado. De fato, é importante observar que minimizar o risco
empírico nem sempre leva a um menor risco esperado. Como exemplo pode-se destacar
um determinado classicador superajustados ao conjunto de treinamento (memorizam o
conjunto de treinamento e geram classicações aleatórias para novas amostras): seu risco
empírico é nulo, mas o risco esperado é reduzido pela metade.
Ou seja, é sempre possível encontrar um h0 (dentro de um conjunto de funções do
amplo H ) com menor risco empírico, mas com conjunto de dados onde exemplo são pouco
informativos, pode ocorrer o superajuste. Deve-se então restringir a classe de funções da
qual h0 é extraída. A TAE lida com essa questão considerando a complexidade da classe de
funções que o algoritmo de AM é capaz de induzir, propondo limites
ao risco esperado
de uma função de classicador.
2.8.2
LIMITE DO RISCO ESPERADO
A TAE relaciona o risco esperado de uma função R(h) ao seu risco empírico Remp (h) e a
um termo de capacidade (TC), conforme a inequação 2.12. Esse limite é garantido com
probabilidade 1 − θ, em que θ ∈ [0, 1].
(2.12)
R(h) ≤ Remp (h) + T C
39
onde T C é calculado pela
q
V C(ln(2n/V C)+1)−ln(θ/4)
n
e V C representa a dimensão Vapnik-
Chervonenkis (VAPNIK, 1995), que mede a capacidade do conjunto de funções H . Quando
maior o seu valor, mais complexas são as funções de classicação que podem ser induzidas
a partir de H .
O objetivo principal é minimizar o risco esperado considerando um classicador que
minimize do risco empírico e que pertença a um conjunto de funções H com baixa dimensão V C . Este é o princípio da minimização do risco estrutural (VAPNIK, 1998).
2.8.3
RISCO MARGINAL
Computar a dimensão V C pode ser um problema, uma vez que geralmente não é trivial
e seu valor pode ser desconhecido ou innito. Para funções de decisão lineares do tipo
h(x) = w · x (onde w representa o vetor normal a h) existem resultados alternativos que
relacionam o risco esperado ao conceito de margem.
Esta margem de conança de um exemplo tem relação com sua distância à fronteira
de decisão induzida e é uma medida da conança da previsão do classicador, denida na
equação 2.13
(2.13)
∂(h(xi , yi )) = yi h(xi )
A partir da margem de conança pode-se denir o risco marginal (ou erro marginal)
de uma função h0 conforme equação 2.14
n
Rρ (h) =
1X
I(yi h(xi ) < ρ)
n i=1
(2.14)
onde ρ é uma constante > 0 e I(x) = 1, se verdadeiro.
Ou seja, fornece a proporção do número de exemplos de treinamento cuja margem de
conança é menor que a constante ρ. Alterando a formulação do limite do risco esperado,
propõe-se a formulação de acordo com a equação 2.15, onde tem-se o erro esperado (R(h))
limitado pela soma de uma medida de erro no conjunto de treino (erro marginal: Rρ (h)),
a um termo de capacidade.
s c R2
n
1
2
log
+ log
R(h) ≤ Rρ (h) +
2
n ρ
ρ
θ
40
(2.15)
Pode-se destacar os seguintes pontos da relação:
a) uma maior margem implica em um menor termo de capacidade
b) a maximização da margem pode levar a uma maior taxa de erro marginal
c) baixo valor da margem leva a um erro marginal menor, porém a um termo de
capacidade maior
Ou seja, deve-se buscar a maximização da margem com um menor erro marginal
(hiperplano ótimo).
2.8.4
SVM LINEARES DE MARGENS RÍGIDAS (HARD MARGIN )
As SVMs lineares com margens rígidas geram fronteiras lineares a partir de dados linearmente separáveis. Ou seja, é possível separar os exemplos de treinamento por um
hiperplano de acordo com a equação 2.16, aonde w · x representa o produto escalar entre
os vetores w (vetor normal ao hiperplano) e
b
kwk
representa a distância do hiperplano em
relação a origem (b ∈ <)
(2.16)
h(x) = w · x + b
A partir da equação 2.16 separa-se o espaço de entrada X em duas regiões: w·x+b > 0
(classes +1) e w · x + b < 0 (classes -1). As margens podem ser observadas conforme a
gura 2.6. Os vetores de suporte (support vectors - SVs) são os exemplos que participam
da formação do hiperplano.
41
FIG. 2.6: Exemplo de classicação SVM - SV com margens rígidas
Nesta formulação não devem existir dados de treinamento entre as margens de separação das classes (por isto a formulação é chamada de SVM com margem rígida ).
2.8.5
SVM LINEARES DE MARGENS SUAVES (SOFT MARGIN )
Em cenários reais é difícil encontrar amostras que os dados sejam linearmente separáveis,
tanto pela presença de ruídos ou outliers na série ou até mesmo pela característica da
amostra, que muitas vezes não é linear. Para minimizar este problema é introduzido o
conceito de variáveis de folga ξi (slack variables ) para todo i = 1, · · · , n. A aplicação
deste conceito suaviza as margens do classicador linear, permitindo que alguns exemplos
permanecam entre os hiperplanos, e também que ocorram alguns erros de classicação
(ξi > 1). Logo, a soma dos ξi representa o limite do erro de classicação na fase de
treinamento. Nesta solução é adicionada uma constante de regularização (C ), que controla
a penalidade para imperfeição na fase de treinamento. A principal diferença é a diferença
entre os SVs (gura 2.7):
a) SVs sobre as margens são considerados livres (αi∗ > 0)
b) SVs limitados (αi∗ = C ), podem representar:
• Se ξi∗ > 1: erro na classicação
42
• Se 0 < ξi∗ ≤ 1: acerto na classicação, mas entre as margens
• Se ξi∗ = 0: acerto na classicação, mas sob a margem (raro)
FIG. 2.7: Exemplo de classicação SVM - SV com margens suaves
2.8.6
SVM NÃO-LINEARES
A suavização proposta com a inclusão de variáveis de folga ao classicador linear ajuda
a reduzir erros de classicação por presença de outliers e ruídos, mas na maioria das
vezes não se mostra uma boa solução, uma vez que os casos práticos normalmente não
apresentam uma característica linear em sua distribuição (gura 2.8)
Como não é possível separar dados distribuídos de maneira não linear em um ambiente
bi-dimensional, SVM usa funções de kernel (K )5 para transformar um vetor de entradas
em seu espaço original para um novo espaço de alta dimensão, denominado espaço de características (feature space ), onde é possível aplicar um classicador linear para resolução
do problema, conforme observado na equação 2.17:
(2.17)
K(xi , xj ) = Φ(xi ) · Φ(xj )
5 função
que recebe dois pontos xi e xj no espaço de entradas X e calcula o produto escalar no espaço
de alta dimensão
43
Seja Φ X → = um mapeamento, em que X representa o vetor de entradas e = o
espaço de alta dimensão. A escolha apropriada da função Φ faz com que o conjunto de
treinamento seja separado linearmente em um espaço amostral de alta dimensão.
FIG. 2.8: Exemplo de dados não lineares
Após o mapeamento dos objetos para um espaço de maior dimensão utilizando as
funções de kernel, aplica-se SVM linear com margens suaves sobre esse espaço. As funções
de kernel mais usadas são as polinomiais, os de função base radial (radial base function -
RBF ) e os sigmoidais, conforme tabela 2.3
TAB. 2.3: Principais kernels utilizados
kernel
polinomial
rbf
sigmoidal
função (K(xi , xj ))
d
(δ(xi · xj ) + k)
exp(−σ kxi − xj k2 )
tanh(δ(xi · xj ) + k)
parâmetros
δ, k, d
σ
δ, k
A modelagem do problema com uso de SVM depende então da escolha de uma função
de kernel e da escolha do valor para a constante de regularização C , que impacta diretamente no comportamento do classicador, uma vez que estes afetam a fronteira de decisão
induzida. Em destaque a simplicidade do kernel RBF apresentando apenas 1 parâmetro
em sua formulação.
44
3 REVISÃO DA LITERATURA
O estudo de preços de ativos em séries temporais nanceiras utilizando algoritmos de
aprendizado de máquina se subdivide em dois focos: previsão e classicação. Apesar da
distinção clara entre ambos, a análise de todo o processo de tratamento dos dados e o uso
de variáveis de entrada e congurações da arquitetura utilizada, podem contribuir para o
desenvolvimento de soluções mais robustas que gerem melhores respostas. Recentemente,
diversas técnicas de previsão e classicação vêm sendo exploradas, desde métodos estatísticos clássicos até algoritmos mais complexos de aprendizado de máquina, como
Redes
Neurais Articiais (ABRAHAM, 2001), (CHANG, 2009), (MARTINEZ, 2009), (GOMIDE, 2011), Regressão Logística (DUTTA, 2008), (ARUN, 2012), Partial Least
Squares Regression (ALVIM, 2010) e Support Vectors Machines (TAY, 2001b),
(TAY, 2001a), (TAY, 2002), (TAY, 2003), (KIM, 2003), (CHOUDHRY, 2005), (HUANG,
2005), (SAMSUDIN, 2010), (ZHONGYUAN, 2012), (ROSILLO, 2013), (WANG, 2013).
A diferença principal entre a maioria dos trabalhos relacionados, além dos modelos
gerados, é quanto às variáveis de entrada do modelo e a informação alvo. Enquanto
alguns fornecem a ação que deve ser tomada (abordagem com modelos de classicação),
outros focam em valores previstos de cotação de preço de ativos alcançados durante um
determinado período (abordagem com modelos de regressão), ou ainda a previsão de
algum indicador relacionado ao ativo. Independente da abordagem, ainda encontra-se o
mesmo problema: a perda de acurácia com novos dados e o risco de aplicar o modelo em
um cenário real.
45
TAB. 3.1: Principais focos de previsão nanceira
cenário
modelos
variáveis
entrada
domínio
de
variável
explicativa
classicação, regressão e híbridos
indicadores de análise fundamentalista,
indicadores de análise técnica, indicadores sociais e informação de especialista
valor de fechamento (normalmente
ação ou índice de mercado), valor
mínimo no período, valor máximo no
período, volume, tendência, ...
Neste trabalho o foco é o estudo do comportamento dos algoritmos em função do ajuste
de parâmetros livres (uma vez que não há meio estruturado de escolher estes valores) e em
prever as tendências de mercado para um ativo (de alta e de baixa) baseado em informação
base disponível dos ativos no site da BOVESPA.
3.1
TRABALHOS NA ÁREA
Em (TAY, 2001b), foi apresentado um estudo sobre os parâmetros da formulação SVM
em comparação com Redes Neurais Articiais - RNAs (treinado com o algoritmo Back
Propagation ), que embora tenha apresentado resultados pouco satisfatórios na classicação de uma nova amostra do ponto de vista de um investidor, mostrou-se superior ao
uso de RNAs. Este trabalho foi base nesta pesquisa, por focar em tendências de alta
e baixa para ativos com uso de SVM e na comparação com outros modelos. Em seu
trabalho, (TAY, 2001b) além de destacar o uso de SVM em séries temporais nanceiras,
mostrou que a análise multivariada6 (variáveis externas a série temporal nanceira, como
indicadores técnicos, fundamentalistas ou de inter-mercado), na maioria dos casos, não
melhora o poder de predição do modelo quando comparado a análise univariada7 , além
de encontrar um padrão no ajuste dos parâmetros de conguração do SVM quanto ao
problema de super-ajuste e sub-ajuste.
No mesmo ano (TAY, 2001a) aplica os conceitos em cinco datasets com dados de
fontes distintas para, mais uma vez, comparar os SVMs com RNAs, aprofundando na
6 através
dos indicadores MCAD, OBV
de cinco dias da série
7 defasagem
e Volatility
46
análise dos parâmetros livres. Neste trabalho percebe-se que o kernel RBF apresenta
melhores resultados do que o kernel Polinomial, tanto em capacidade de generalização
quanto a tempo de processamento. Na análise dos parâmetros livres, encontrou-se uma
correlação entre as variáveis δ 2 , C, .8 , além de impactos diretos em cenários de subajuste
e superajuste de acordo com a tabela 3.2
TAB. 3.2: Impacto dos parâmetros livres nos problemas de undert e overt (TAY, 2001a)
valor muito pequeno
2
δ
C
valor muito grande
(0.1 a 1) sobreajuste
subajuste
(100 a 100.000) subajuste
sobreajuste
Em (TAY, 2002), (TAY, 2003) defende-se a hipótese de que para séries temporais
nanceiras não-estacionárias é importante considerar que os valores mais próximos são
mais importantes do que valores mais antigos da série. Para isso, foi alterada a função
de regularização de risco do algoritmo SVM, chamada de C-ascending SVM a m de
penalizar erros mais recentes na fase de treinamento. Esta hipótese é considerada em nossa
pesquisa na forma de menores períodos de treinamento, onde ocorrem vários treinamentos
em função do tempo, para ajustar o modelo capturando a tendência da série. Para isto,
criou-se um parâmetro para denir o tamanho da janela de treinamento na alteração do
método de validação cruzada deslizante9 . No capítulo 4 esta implementação é detalhada,
apresentando resultados promissores (ESTEVES, 2013).
(KIM, 2003) segue a mesma linha de raciocínio em um trabalho similar, raticando
a pesquisa de (TAY, 2001b) e (TAY, 2001a) sobre a sensibilidade dos parâmetros C e
δ 2 da implementação SVM, mas focando em características distintas para a resolução do
problema. Em sua pesquisa são avaliados 12 indicadores técnicos10 para prever a direção
diária (tendência de alta e baixa) do índice coreano (KOSPI). Os testes são focados
na implementação do kernel polinomial e RBF comparados com um modelo gerado por
redes neurais e outro método baseado na distância euclidiana, chamado de CBR. Como
esperado, o modelo SVM supera os concorrentes mostrando-se uma técnica promissora
8 δ2
= 10, C = 100, = 0.001
9 Alteração
do método tradicional de validação cruzada proposto nesta pesquisa para séries temporais
nanceiras
10 %K, %D, Slow %D, Momentum, ROC, Williams %R, A/D Oscillator, Disparity5, Disparity10, OSCP,
CCI, RSI
47
na geração de modelos de previsão para séries temporais nanceiras. Ambas as pesquisas
deixam em aberto os melhores valores dos parâmetros do algoritmo SVM para séries
temporais nanceiras, além da esperada melhoria da resposta do modelo em trabalhos
futuros.
(HUANG, 2005) altera o foco aplicando modelos de classicação para realizar a previsão de tendências semanais no índice NIKKEI11 . Essa informação, apesar de não prever
o valor de um ativo, é muito importante para o investidor, pois é uma importante variável no mercado nanceiro. Em seu trabalho compara alguns modelos com SVMs (kernel
RBF), mostrando a superioridade do algoritmo, conseguindo resultado de 70% na taxa
de acertos da tendência do período.
Em (PHICHHANG, 2009) um grupo de algoritmos é estudado para prever tendência
diárias de grupo de ativos da Bolsa de Hong-Kong, apresentando bons resultados com a
observação do índice S&P500 e a taxa de câmbio entre o dólar (HK e US), além da adição
dos atributos base12 como variáveis do modelo.
Em (SAMSUDIN, 2010) foi realizado um estudo da aplicação de modelos de regressão
SVM e Redes Neurais em cinco cenários reais distintos, com séries de dados apresentando
diferentes características. Mais uma vez o SVM reportou melhores resultados, ainda que
a pesquisa tenha deixado aberta a possibilidade de se aprofundar nos parâmetros livres
do algoritmo (o kernel RBF foi o que, inicialmente, gerou melhores resultados)
(ROSILLO, 2011) analisa o comportamento de modelos gerados com SVM no mercado
americano (S&P500) com foco em dois indicadores técnicos: RSI e MACD. Além de
obter uma boa taxa de acurácia na previsão do índice de mercado, conclui que SVM se
comporta melhor em mercados de alta e baixa volatilidade do que mercado de tendências.
(ROSILLO, 2013)
(ZHONGYUAN, 2012) aplica SVM num estudo no mercado de ações chinês (Shang-
hai Stock Exchange Composite Index ), comparando o desempenho de busca de tendência
diária em alguns índices. Assim como em trabalhos similares, enfrenta o mesmo problema
de obter parâmetros ótimos para o algoritmo, escolhendo-os com base em resultados obtidos em experimentos de validação cruzada. Apresenta valores médios de 61% na acurácia
do modelo.
(SHEN, 2012) analisa a alta correlação entre dados globais para a previsão de índices
11 índice
12 valor
composto por ações da indústria japonesa
de abertura, valor de fechamento, valor mínimo no dia e valor máximo no dia
48
do mercado nanceiro, mostrando que aplicar somente indicadores de mercado local tende
a não captar o movimento global, cando passível de gerar modelos com pior capacidade
de generalização. Em seu trabalho, apesar de reconhecer que a informação mundial sobre
ativos possivelmente ter importância na previsão (análise de sentimento ), tratar e gerar
uma massa de dados estruturada ainda é um desao. Consegue bons resultados de previsão de tendência para o mercado americano(NASDAQ). Em trabalho similar, (KARAZMODEH, 2013) argumenta que o movimento do preço de uma ação pode ser usado para
prever o movimento de outras ações, denindo uma fórmula para esta correlação.
(WANG, 2013) insere um componente de correlação entre ativos no modelo desenvolvido com SVM para realizar classicação de tendências de índices (KOSPI e HSI) e
ações. Com isso, consegue aproximar a acurácia dos modelos, que anteriormente vinham
apresentando resultados muito mais satisfatórios em previsão de índices de mercado, além
de gerar um modelo que tende a ter maior capacidade de generalização na bolsa da Korea
(KIM, 2003).
As tabelas 3.3 e 3.4 resumem as principais pesquisas em torno de predição em séries
temporais nanceiras utilizando, principalmente, o SVM como algoritmo de aprendizado
de máquina.
3.2
TRABALHOS RELACIONADOS
(BEZERRA, 2009) realiza uma pesquisa aplicada a ações da BOVESPA para obter informações não-triviais em redes complexas modeladas por grafos, através de conceitos
da teoria dos grafos. Apesar de não ser foco desta pesquisa, essa informação pode ser
útil na modelagem do problema, uma vez que estudos recentes apontam para a importância da correlação entre índices nanceiros. (HUANG, 2005), (PHICHHANG, 2009),
(ZHONGYUAN, 2012), (SHEN, 2012), (WANG, 2013).
(MARTINEZ, 2009) analisa o comportamento de duas das ações com mais operações
na Bovespa (PETR4 e VALE5). Em sua pesquisa é proposto um simulador de Sistema de
Trade (VANSTONE, 2008)13 para operar com a saída de um modelo de regressão baseado
em Redes Neurais (máximo e mínimo no dia) em um período de crise nanceira (2008).
Além do fato de publicar um trabalho para um cenário pouco estudado (ATSALAKIS,
2009), a pesquisa resulta em resultados interessantes utilizando indicadores técnicos.
13 Sistema
que simula operações na Bolsa de Valores baseado em modelos de predição, considerando
fatores inerentes ao cenário, como controle de risco, valores de operações e gerenciamento do capital
49
(ALVIM, 2010) apresentou um trabalho focado na predição da quantidade diária usando preditores de alta frequência, através de modelos construídos com os algoritmos SVR
(Support Vector Regression ) e PLS (Partial Least Squares ) e uso de informação intraday
14
.
A análise dos resultados, rodados em períodos de 15 em 15 minutos no decorrer do
dia, mostra que a inserção da informação anterior impacta diretamente na resposta do
algoritmo. Além disto, a análise empírica dos valores dos parâmetros de conguração
SVM foi destacada com melhores os resultados obtidos.
(GOMIDE, 2011) propôs um modelo de Redes Neurais baseado em Pairs Trading15 .
Foram realizados experimentos considerando 3 pares de importantes empresas no cenário
brasileiro, considerando valores de abertura, fechamento, mínimo e máximo do ativo. A
inserção dos indicadores da análise intraday na análise interday fez com que os resultados
obtidos melhorassem, conforme esperado (ALVIM, 2010), uma vez que o erro de previsão é
minimizado. A resposta do modelo de previsão gerou uma ação avaliada em um simulador
de Sistema de Trading, aproximando a modelagem de um cenário real, onde a correlação
entre os ativos mostrou-se um ponto importante para realização de investimentos com
lucro. Apesar do foco distinto e da premissa de investimento considerada alta para alguns
investidores (R$ 50.000,00), o trabalho mostrou-se promissor, além de colaborar para as
pesquisas direcionadas a Bolsa de Valores do mercado nanceiro brasileiro (BOVESPA),
até então com poucos trabalhos relacionados.
3.3
TENDÊNCIAS
Estudos recentes alteram a metodologia inserindo um novo tipo de informação no modelo:
a opinião
de mercado extraída de feeds de notícias em tempo real (ou, em alguns casos,
análise de especialista). Em (HAN, 2007) foi construído um modelo híbrido com base em
conhecimento de especialista para prever a tendência do comportamento de um ativo da
14 A
análise intraday considera os indicadores do dia na previsão futura, normalmente o treinamento
do modelo considera o valor dos indicadores gerados nas últimas horas, se aproximando de uma análise
em tempo real, ao contrário da análise interday, que considera somente as informações até o limite do
dia anterior
15 Basicamente pode ser denida como uma operação baseada em uma taxa calculada entre duas ações
(spread ), que normalmente reetem o mesmo fundamento econômico. Quando esta taxa oscila em determinado valor (denidos empiricamente), sugere uma boa oportunidade de lucro através de uma operação
casada de venda de um dos ativos e compra de outro.
50
Bolsa de Valores de Changai. Além do modelo base gerado pela opinião do especialista
(OAGR) com o modelo SVM (kernel RBF), foram combinados 3 índices primários (EPS,
BVPS e NPGR), gerando 8 combinações de modelos. O estudo apresenta bons resultados,
mas se faz com o uso de informação de especialista, que tende a ser muito mais conável
do que indicadores técnicos. (ALVIM, 2010) realiza um estudo focado em uma das ações
mais importantes no cenário brasileiro, a PETR4, com um corpus anotado com 1050
notícias na web da empresa, apresentando resultados promissores.
(RAMA, 2012) faz um mapeamento de fontes de dados, anotando termos considerados
importantes por especialistas com relação a correlação do termo e o mercado. Essa variável
é adicionada a série histórica para gerar uma arquitetura de previsão de tendências. No
entanto, a inserção dessa nova variável ainda está condicionada ao entendimento correto
da correlação entre ela e a variação do valor do índice na série.
TAB. 3.3: resumo dos trabalhos relacionados
autor
parâmetros
foco
(TAY, 2001b)
Análise univariada e multivari-
Análise da capacidade de gene-
ada, indicadores técnicos, Ker-
ralização diária
do modelo na
nel RBF, y = 10−3 , C = 10, previsão do índice S&P500 Index
(TAY, 2001a)
e = 0.015
(EUA)
Análise dos parâmetros livres
Análise da capacidade de gene-
do SVM, indicadores técnicos,
ralização diária
do modelo na
Kernel RBF, y = 10, C = 100, previsão do índice S&P500 Index
(TAY, 2002)
e = 0.001
(EUA)
Alteração SVM ponderando
Análise da capacidade de gene-
features recentes, indicadores ralização diária do modelo na
(KIM, 2003)
técnicos, Kernel RBF, y = 10,
previsão do índice S&P500 Index
C = 100, e = 0.001
(EUA)
Hit rate, novo mercado, indi-
Análise da
cadores técnicos, Kernel Poli-
modelo na previsão do índice
nomial e RBF, C = 78, y = 25
KOSPI Index (Coreia): 57.83%
acurácia diária
do
continua na próxima página
51
autor
parâmetros
foco
(TAY, 2003)
Análise dos parâmetros livres
Análise da capacidade de gene-
do SVM, indicadores técnicos,
ralização diária
do modelo na
Kernel RBF, C = 5, e = 0.05, previsão do índice S&P500 Index
y = 100
(EUA)
Taxa de acerto, novo mercado,
Análise da acurácia
indicadores fundamentalistas,
modelo através do índice NIKKEI
Kernel RBF, C = 50
225 Index (Japão): 73.00%
(MARTINEZ,
Segundo trabalho no mercado
Desenvolvimento de um Sistema
2009)
nanceiro brasileiro. Sistema
de Trading
de Trading
elo de Redes Neurais aplicado
(HUANG, 2005)
semanal do
baseado em mod-
ao índice BM&F Bovespa Index
(Brasil)
acurácia diária
(PHICHHANG,
Análise inter-mercado, Kernel
Análise
2009)
RBF, C = 24 , y = 24
do modelo através do índice
da
Hangseng Index (Hong Kong):
86%
(SAMSUDIN,
Kernel RBF, C = 10, y = Análise da capacidade de gene-
2010)
0.25, e = 10−1 para série tem-
ralização
poral nanceira (ação da IBM)
rentes séries temporais
Foco na quantidade diário in-
Análise da capacidade de gene-
(ALVIM, 2010)
do modelo em 5 dife-
terday com inserção de infor- ralização diária do modelo com
mação intraday em real-time,
informação intraday através de 9
considerando escala de tempo
ações de maior liquidez da Bolsa
de mercado.Kernel RBF, C =
de Valores de São Paulo (Brasil)
2−5 até 215 , nu = 0.5, γ = 2−15
até 23
continua na próxima página
52
autor
parâmetros
foco
(GOMIDE, 2011)
Previsões em modelos PLRS,
Desenvolvimento de um Sistema
SVR, NN para operações sim-
de Trading
uladas de Pairs Trading. Cor-
erações de compra e venda si-
relação entre ativos.
multâneas de ações da BM&F
como foco em op-
Bovespa Index (Brasil)
(ROSILLO, 2011)
Kernel HTRBF, C = 50
Análise da
acurácia semanal
do modelo na previsão do índice
S&P500 Index (EUA): 92.3%
(ZHONGYUAN,
Indicadores
2012)
talistas,
C
Fundamen-
Kernel
=
Análise da
acurácia diária
do
RBF,
modelo através dos índices SSE
(210 , 211 , 212 ),
50 Index, SSE 180 Index, SSE
Composite Index, SZSE 100 In-
y = (0.05, 0.25, 0.1)
dex, SZSE Composite index and
CSI 300 Index (China):
61%
(90% Sensitividade, 35% Especi-
cidade )
(SHEN, 2012)
Correlação
entre
índices
Análise
da
acurácia diária
(ações, moedas, commodities).
do modelo através dos índices
Parâmetros livres do SVM
NASDAQ Index, S&P500 Index,
não-publicados.
DJIA Index (EUA): 76%
acurácia diária do
através de ações dos
(KARAZMODEH, Defende que preço das ações se
Análise da
2013)
modelo
movem
correlacionadamente,
propondo um cálculo para tal.
índices NASDAQ Index, S&P500
Gera modelo híbrido de SVM
Index, DJIA Index (EUA): 64%
com AG
no modelo híbrido
continua na próxima página
53
autor
parâmetros
foco
(ROSILLO, 2013)
Análise de 4 tipos de séries
Análise da acurácia
temporais nanceiras (tendên-
modelo através do índice S&P500
cia de alta, tendência de baixa,
Index (EUA)
semanal do
alta volatilidade, baixa volatilidade), Kernel HTRBF, C =
10
(WANG, 2013)
Co-movimento
(ações
e
mercado),
entre
acurácia diária
ativos
Análise da
índices
inter-
modelo através dos índices HSI
Kernel
RBF,
Index, KOSPI Index e ações do
mercado Coreano. (Corea): 67%,
C = 100
69% e 70%, respectivamente
TAB. 3.4: Parametrização nos trabalhos relacionados
autor
modelos input
mercado output métrica
(TAY, 2001b)
SVM,
RDP−5 , MACD,
NASDAQ RDP+5
NMSE,
NN(BP)
OBV, Volatility
(EUA)
MAE,
DS,
CP,
CD
(TAY, 2001a)
do
SVM,
EMA15 , RDP−5 ,
NASDAQ RDP+5
NMSE,
NN(BP)
RDP−10 ,
(EUA)
MAE,
RDP−15 ,
DS,
RDP−20
WDS
continua na próxima página
54
autor
modelos input
mercado output métrica
(TAY, 2002)
SVM,
EMA15 , RDP−5 ,
NASDAQ RDP+5
CASVM
RDP−10 ,
(EUA)
NMSE
RDP−15 ,
RDP−20
(KIM, 2003)
SVM,
%K, %D, Slow
KRX
NN(BP)
%D,
Momen-
(Coreia
de
tum,
ROC,
do Sul)
ac-
Williams
d+1
%R,
Taxa
erto
A/D Oscillator,
Disparity5, Disparity10, OSCP,
CCI, RSI
(TAY, 2003)
SVM,
EMA100 ,
NASDAQ RDP+5
NMSE,
NN(BP)
RDP−5 ,
(EUA)
MAE,
RDP−10 ,
DS
RDP−15 ,
RDP−20
(HUANG, 2005)
LDA,
S&P500
Index,
TSE
QDA,
Tx.
Camb.
(Japão)
NN,
Dólar-Yen
SVM
d+7
Taxa
de
acerto
continua na próxima página
55
autor
modelos input
mercado output métrica
(MARTINEZ,
NN
abed , mind−[1a5] ,
BM&F
Sistema MSE,
maxd−[1a5] ,
(Brasil)
de
MAE,
abed−[1a5] ,
PETR4
Trad-
mind (d),
fecd−[1a5] ,
e
ing
maxd
EMAmin5 ,
VALE5
d+1
Hit
2009)
EMAmax5 ,
EMAabe5 ,
EMAf ec5 ,
BBmin5 , BBmax5 ,
BBabe5 , BBf ec5
(PHICHHANG,
LDA,
abed−1 , mind−1 ,
SEHK
2009)
QDA,
maxd−1 , fecd−1 ,
(Hong
K-
s&p500d−1 ,
Kong)
nearest,
Tx.
NB,
Dólar(USxHK)
Ratio
Camb.
LOGIT,
TREE,
NN,
BAYES,
SVM,
LSSVM
(SAMSUDIN,
SVM,
fecd−2 ,
fecd−4 ,
NASDAQ d+1
RMSE,
2010)
NN
fecd−6 ,
fecd−8 ,
(EUA)
MAE,
-
R
fecd−10 , fecd−12
IBM
Stock
continua na próxima página
56
autor
modelos input
mercado output métrica
(ALVIM, 2010)
SVR,
BM&F
d + 0,
(Brasil)
d+1
qtdintra , qtdinter
PLS
MPE
PETR3,
PETR4,
VALE5,
USIM5,
GOAU5,
ITSA4,
ITAU4,
BBDC4,
CSNA3
(GOMIDE, 2011)
SVM,
abed−1 , mind−1 ,
BM&F
NN,
maxd−1 , fecd−1 ,
(Brasil)
max),
PLSR
SMA,
PETR4
MD,
x
ROI,
PETR3,
AROI
EMA,
RSI, BB
d+1
MAPE(min,
USIM5
x
GGBR4,
BBDC4
x
BRAP4
(ROSILLO, 2011)
SVM
RSI, MACD
NASDAQ d+7
Taxa
(USA)
de
acerto
continua na próxima página
57
autor
modelos input
(ZHONGYUAN,
SVM,
IR,
2012)
NN
nese
mercado output métrica
EUR/ChiYuan,
USD/Chinese
Yuan,
CSI300,
d+1
Taxa
SZSE,
de
SSE
ac-
Index
erto
JPY/Chinese
(SSE e
Yuan, S&P500,
SZSE
EURO STOXX,
(China))
NIKKEI225
(SHEN, 2012)
SVM,
NASDAQ,
NASDAQ d+1
Taxa
MART
DJIA, S&P500,
(EUA)
de
DAX AUD
acerto
(KARAZMODEH, SVM,
2013)
abed−1 ,
f ecd−1 ,
DJI
d+1
Taxa
PSOSVM, maxd−1 , mind−1 ,
(USA),
de
IP-
vold−1 , Momen-
S&P500
ac-
SOSVM
tum,
Williams
(USA),
erto
%R,
ROC,
NAS-
f ecd−5 , f ecd−10 ,
DAQ
Stochastic %K,
(EUA)
PVT
(ROSILLO, 2013)
SVM
RSI
(14),
MACD(k=12,
d=26)
NASDAQ d+7
Taxa
(EUA)
de
acerto
continua na próxima página
58
autor
modelos input
mercado output métrica
(WANG, 2013)
SVM,
KOSPI,
KRX
PCA,
S&P500,
ANN
Defasagem
HSI,
Taxa
(Coreia
de
do Sul)
ac-
e SEHK
erto
(Hong
Kong)
59
d+1
4 MODELAGEM PARA O PROBLEMA DE PREVISÃO DE
TENDÊNCIAS EM SÉRIES FINANCEIRAS
4.1
ARQUITETURA DA SOLUÇÃO
A gura 4.1 apresenta uma visão geral da arquitetura proposta. A solução se baseia
nos dados com informações históricas de ativos disponibilizados gratuitamente no site da
BOVESPA (A)16 . Um serviço (B) foi desenvolvido para ler as informações dos arquivos
de texto e importá-las para um banco de dados (C)17 , a m de facilitar o processamento
e organização da informação. Para ns de interface de sistemas, foi construído um outro
serviço (D) para exportar a informação básica no formato de dados interpretado pelo
FAMA (E). O algoritmo 2 (F) foi integrado a dois frameworks de AM: (FAMA, 2012) e
(CHANG, 2011)
FIG. 4.1: Visão geral da arquitetura proposta
16 disponível
em:
http://www.bmfbovespa.com.br/en-us/services/market-data/historicalseries.aspx?Idioma=en-us
17 Foi utilizada a distribuição opensource do servidor de banco de dados da Microsoft (MS SQL Server
2012 Express Edition)
60
Algoritmo 2 principal
procedimento main
inicializa variáveis de congurações dos algoritmos e ambiente
para todo ativo em vetorDeAtivos faça
corpus ← carregar arquivo de interface do ativo
realizar pre-processamento do corpus
para todo janela em vetorDeJanelas faça
classicar BLS
treinar SVM
classicar SVM
treinar NB
classicar NB
treinar RL
classicar RL
inserir resultados e congurações no banco de dados
m para
m para
m procedimento
61
FIG. 4.2: Modelo de dados
A gura 4.2 apresenta o modelo de dados utilizado pelo sistema desenvolvido (F).
Basicamente 4 tabelas estruturam as informações, a saber:
• cotacoes : 1.944.386 registros com cotações históricas e outras informações relativas
a ações da Bolsa de Valores de São Paulo, distribuídos de acordo com a tabela 4.118 .
• ibovespa : valor diário de fechamento do índice IBOVESPA de 01-01-2006 a 31-122012 (totalizando 2.556 registros)
• releases : alterações no algoritmo do programa (versionamento)
• results : toda informação de saída dos modelos gerados em cada processamento
18 a
implementação do serviço ocorreu de acordo com o layout v22.09.2005 do arquivo de interface da
BOVESPA
62
TAB. 4.1: Série histórica nanceira obtida
ano registros ações
2006 198.367
5.460
2007 280.255
5.954
2008 284.235
6.704
2009 265.046
8.191
2010 287.480
8.844
2011 298.370
12.373
2012 330.633
15.718
A tabela 4.2 detalha os principais campos utilizados da tabela cotacoes pelos algoritmos de AM.
TAB. 4.2: Estrutura parcial da tabela cotacoes
atributo
data
codneg
nomres
especi
preabe
premax
premin
preult
totneg
quatot
voltot
fatcot
1 Para
descrição
Data do pregão
Código de negociação do papel
Nome resumido do papel
Especicação do papel
Preço de abertura
Preço máximo
Preço mínimo
Preço de fechamento
Número de negócios efetuados com o papelmercado no pregão
Quantidade total de títulos negociados neste
papel-mercado
Volume total de títulos negociados neste papelmercado
Fator de cotação do papel
ns acadêmicos foram detalhados apenas os campos pertinentes a implementação do estudo
proposto
63
TAB. 4.3: Estrutura da tabela execution_group_user_description
atributo
id
description
descrição
chave-primária da tabela
descrição para o grupo de
execução
TAB. 4.4: Estrutura da tabela ibovespa
atributo
id
data
cotacao
descrição
chave-primária da tabela
data do pregão
valor de fechamento do
índice
TAB. 4.5: Estrutura da tabela releases
atributo
id
description
datetime
descrição
chave-primária da tabela
label da alteração
data/hora da alteração
64
TAB. 4.6: Estrutura parcial da tabela results
atributo
id
window
asset_code
start_period
end_period
out_bls
out_svm(*)
out_nb(*)
out_lr(*)
param(*)
serie_total_lenght
processing_date
serie_nal_lenght
scaled_data
tot_ocurrences(*)
tot_hits(*)
descrição
chave-primária da tabela
defasagem
código do ativo nanceiro
data de inicio da serie
data de m da serie
acurácia BLS
acurácia SVM no treino e testes
acurácia NB no treino e testes
acurácia RL no treino e testes
parâmetros de ambiente, modelagem e algoritmos
tamanho total de série antes préprocessamento
data do processamento
tamanho total da série após préprocessamento
minmáx ou padronização
total de ocorrências de cada classe no treino e teste
total de acertos de cada classe no treino e teste
As tabelas 4.3, 4.4, 4.5 e 4.6 detalham, respectivamente, a estrutura das tabelas
ibovespa, releases e results (* campos agrupados por similaridade)
4.2
PRE-PROCESSAMENTO
Algumas etapas foram realizadas a m de permitir a manipulação dos dados pelos algoritmos de aprendizado de máquinas.
65
TAB. 4.7: Representação para dados discretizados em 3 dias
preabe premax premin preult qtdtot
21,09
21,49
21,26
21,27
21,10
21,40
21,12
21,86
21,49
21,57
21,26
21,52
21,49
21,39
21,49
21,51
21,53
21,88
21,71
21,60
20,90
21,10
21,26
21,03
21,05
21,14
21,03
21,16
21,40
21,32
21,04
21,21
21,34
21,37
21,23
21,28
21,49
21,24
21,58
21,55
15,423,600
19,397,900
12,603,500
14,738,800
23,325,800
17,024,700
21,066,100
30,343,800
31,775,700
17,723,400
d-1
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
0,34
-0,03
d-2
0,00
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
0,34
d-3
0,00
0,00
0,00
0,17
0,13
0,03
-0,14
0,05
0,21
-0,25
Da fonte de dados extraída da BOVESPA Z (tabela 4.2), foi criado um vetor Xi
considerando os seguintes atributos: código da ação (codneg), valor de abertura (preabe), valor máximo no dia (premax), valor mínimo no dia (premin), valor de fechamento
(preult) e quantidade total de títulos da ação negociados no dia (voltot). Os valores
de fechamento foram discretizados utilizando intervalos de 3, 5, 10, 15, 20, 40, 60 e 80
dias, (diferença entre o valor de fechamento do dia e do n -ésimo dia) gerando novos vetores X1 , X2 , X3 , X4 , X5 , X6 , X7 , X8 , respectivamente. (THOMASON, 1999) sugere que
um horizonte de 5 dias é uma escolha interessante para uma série diária, o que pode ser
visto nos experimentos. A tabela 4.7 exemplica a estrutura de um vetor X 0 obtido a
partir de Z , com discretização de 3 dias, para a ação da Petrobras (PETR4) no período
de 17-08-2012 a 30-08-2012.
As amostras de treino e testes foram transformadas para normalizar os dados entre o
range de −1 a +1 (normalização min-máx ) (FACELI, 2011). A principal vantagem nesta
etapa é prevenir que atributos com grandes ranges numéricos dominem sobre aqueles com
menor range numérico. Outra vantagem que pode ser destacada se dá na fase de cálculos
nas funções de Kernel, onde valores em grande escala numérica podem causar problemas
numéricos. (CHANG, 2011).
Técnicas de agrupamento (inplit ) e desdobramento (split ) foram consideradas outliers
na série nanceira, uma vez que oferecem representatividade baixa na busca de padrões,
representando apenas técnicas de mercado nanceiro.
Por m, além do estudo detalhado da inuência dos parâmetros do algoritmo SVM
66
em séries nanceiras, conforme visto no Capítulo 3, uma vez que não há modo estruturado de obtê-los (TAY, 2001b), (TAY, 2001a), (TAY, 2002), (TAY, 2003), (KIM,
2003), foi assumida a hipótese de que os dados mais recentes tem um maior peso para
a formação do preço de fechamento do próximo dia de um determinado ativo nanceiro. Essa hipótese é conrmada pelo ajuste da validação cruzada padrão (cross val-
idation ), alterada para re-treinar o modelo (sliding cross validation ) após determinado
período (param_sys_size_sliding_window_exp2 ) e que apresentou melhores resultados
(ESTEVES, 2013). No Capítulo 5 serão detalhados os resultados obtidos.
As próximas seções detalharão as implementações dos algoritmos no framework de
aprendizado de máquina (FAMA).
4.3
SISTEMA DE REFERÊNCIA (BASELINE SYSTEM )
O algoritmo Classicador BLS (algoritmo 3) serve como limite inferior para a comparação
com outros modelos gerados. Em sua implementação assume que a tendência para o valor
de fechamento previsto para o próximo período (d + 1), é igual a tendência atual (d).
(estratégia cópia carbono ). Ou seja, em nossa formulação inicial (previsões diárias), caso
hoje ocorra uma tendência de alta, a previsão para o dia seguinte é de manutenção da
tendência de alta, caso contrário, uma tendência de baixa é prevista.
Algoritmo 3 Classicador BLS
função executarClassificacao(valores)
se (valoresi − valoresi−1 ) > 0 então
retorna alta
senão
retorna baixa
m se
m função
4.4
NAIVE BAYES
Seguindo a premissa ingênua, a previsão de classes de acordo com o algoritmo treinador
Naive Bayes (algoritmo 4) ocorre pelo cálculo da probabilidade de cada classe pertencer
a cada exemplo do conjunto de dados (X ). Para cada k -atributo do i − ésimo exemplo
67
do vetor de entrada X , calcula-se a média (M ED), conforme denido na equação 4.1
e o desvio-padrão (DP ), conforme denido na equação 4.2, para cada possível classe C
(algoritmo 4).
Os valores são mantidos em uma matriz, de acordo com a gura 4.3, onde C representa
o total de classes e K o total de atributos do treinamento. A área destacada representa
uma matriz para um problema de classicação binário.
FIG. 4.3: Vetor auxiliar de cálculo (média e desvio)
• Média da classe C no atributo k
n
P
(µc,k ) =
xi
i=1,yi =c,xi =k
(4.1)
fc
• Desvio-padrão da classe C no atributo k
v
u
n
P
u
(xi − µk,c )2
u
t i=1,yi =c,xi =k
(σc,k ) =
fc − 1
onde,
Xik → valor do k -ésimo atributo no i-ésimo exemplo.
yi → classe C no i-ésimo exemplo.
fc → frequência da classe C na amostra.
68
(4.2)
Algoritmo 4 Treinador Naive Bayes
função executarTreinamento(X)
c ← total de classes
k ← total de atributos em X
para todo c faça
para todo k em Xi faça
vetor de medias[c, k] ← calcular média(c, k)
vetor de desvios[c, k] ← calcular desvio-padrão(c, k)
m para
m para
m função
[H]ω(c ) =
N X
K
X
i=1
1
−(Xik − µc,k )2
p
fc ∗
∗ exp
(2σc,k )2
( 2πσc,k )
k=1
(4.3)
O processo de classicação do algoritmo ocorre de acordo com a equação 4.3 aplicado
a cada possível classe C , realizando a previsão com a classe que apresentou um maior
valor (algoritmo 5). Nesta implementação, caso ω(−1) ≥ ω(+1), então a previsão é para
uma tendência de baixa, caso contrário, para uma tendência de alta.
69
Algoritmo 5 Classicador Naive Bayes
função executarClassificacao(X)
c ← total de classes
k ← total de atributosemX
maxprod ← 0
target ← 0
para todo c faça
para todo k em Xi faça
prod ← prod+ calcular produtorio(c, k)
m para
se (prod > maxprod) então
maxprod = prod
target = c
m se
m para
retorna target
m função
4.5
REGRESSÃO LOGÍSTICA
O algoritmo de regressão logística foi desenvolvido considerando o método do gradiente
descendente como função-objetivo para encontrar os coecientes (w) da fórmula básica,
denida na equação 2.6, a m de minimizar o erro. Esse método parte de um ponto θ
inicial qualquer (determinado pelo usuário) e realiza uma busca direcionada do ótimo local
na sua vizinhança (seguindo a direção contrária ao gradiente, que corresponde a direção
de maior crescimento da função). O processo de busca se repete até que não se obtenha
ganhos signicativos (algoritmo 6). O vetor w armazena os melhores valores encontrados
na função de custo.
70
Algoritmo 6 Treinador Regressão Logística
função executarTreinamento(X)
α ← valor inicial de α
θ ← valor inicial de θ
enquanto existe ganho de minimização faça
vetor w ← calcular gradiente descendente(X )
m enquanto
m função
Em um cenário ideal, a convergência para o ótimo global é realizada. O tempo de
convergência está diretamente relacionado ao valor de α (quanto menor, mais demorado
o processo, mas possível convergir para o mínimo global. Quanto maior, mais rápido o
processo, mas tende a car preso em mínimo local).
A classicação ocorre aplicando a função sigmoid (equação 2.8) conforme algoritmo 7.
Algoritmo 7 Classicador Regressão Logística
função executarClassificacao(X)
k ← total de atributos em X
z ← 1 ∗ θ0
para todo k em Xi faça
z ← z + Xi ∗ θi+1
m para
target ← sigmoid(z)
retorna target
m função
4.6
MÁQUINA DE VETORES DE SUPORTE (SUPPORT VECTOR MACHINE)
A pesquisa com o algoritmo SVM ocorreu integrando a biblioteca LibSVM (CHANG,
2011) ao FAMA (FAMA, 2012), ambos escritos em c++. Basicamente a estrutura de dados
do FAMA (algoritmo 8), os parâmetros da solução (seção 2.8) e os arquivos de saída19
foram traduzidos para as estruturas do LibSVM (f ama.corpus → libsvm.svm_problem)
19 a
biblioteca cria alguns arquivos de saída no processamento do algoritmo, com informações úteis ao
pesquisador, bastando apenas deni-los
71
Algoritmo 8 Transformação SVM
função gerarClasseProblemaSVM(X)
inicializa estrutura svm_problem
inicializa estrutura svm_node
atualiza quantidade de exemplos em svm_problem
enquanto existe exemplo Corpus faça
svm_problem.y ← corpus.y
svm_problem.X ← corpus.X
m enquanto
retorna svm_problem
m função
Após a transformação, pode-se então realizar o treinamento pelo FAMA, com a implementação de um método que encapsulou a chamada de treinamento existente no LibSVM.
A classicação dos dados de uma nova amostra foi possível com a transformação inversa
(libsvm.svm_node → f ama.corpus), utilizando o modelo gerado pela biblioteca LibSVM
(svm_model) para realizar as predições (svm_predict) (algoritmo 9).
Algoritmo 9 Classicação SVM
procedimento executarClassificacao(X)
svm_model ← modelo gerado no treinamento
enquanto existe exemplo Corpus faça
realiza predição SVM utilizando modelo gerado
corpus.y ← classe predita
m enquanto
m procedimento
Toda conguração dos parâmetros dos algoritmos e variáveis inerentes ao problema em
questão são armazenadas em banco de dados para futuras análises, conforme detalhado
na tabela 4.6.
72
5 EXPERIMENTOS
Neste capítulo são detalhados os experimentos realizados na pesquisa, comparando
o desempenho dos algoritmos de aprendizado de máquina estudados ao baseline (BLS)
proposto. Foram coletados os dados históricos de ações da Bolsa de Valores de São Paulo
para criar a série histórica nanceira. As seções a seguir detalharão as etapas realizadas.
5.1
ANÁLISE DOS RESULTADOS
Conforme trabalhos relacionados no capítulo 3 desta dissertação, o algoritmo Support
Vector Machines (SVM) alcançou resultados superiores aos algoritmos comparados (Regressão Logística, Naive Bayes, além do Baseline implementado) mostrando-se promissor
para a tarefa de classicação. Isto se dá, principalmente, pelo fato do SVM ser baseado
no principio de Minimização do Risco Estrutural ao invés do principio de Minimização do
Risco Empírico, conforme detalhado no capítulo 2.
Foram realizados experimentos com 4 ações de diferentes mercados: América Latina
Logística (ALLL11), Companhia Siderúrgica Nacional (CSNA3), Petrobras (PETR4) e
Eletrobras (ELET6).
Os experimentos iniciais (seção 5.1.1 e 5.1.2) foram realizados utilizando o kernel RBF.
As etapas a seguir detalharão os resultados encontrados.
5.1.1
EXP01 - PARÂMETROS DO MODELO
Inicialmente foi gerado um corpus com dados do período de 01-01-2006 a 30-09-2006
para análise da inuência do conjunto de variáveis explicativas (xi ) do modelo, gerando
um dataset X (de acordo com estrutura detalhada na tabela 4.7) com 187 exemplos. A
gura 5.1 mostra as séries históricas para o preço de fechamento das ações inicialmente
analisadas (ALLL11, CSNA3, ELET6 e PETR4).
73
FIG. 5.1: Série histórica nanceira (2006) com valores diários de fechamento das ações
América Latina Logística (ALLL11), Companhia Siderúrgica Nacional (CSNA3), Eletrobras (ELET6) e Petrobras (PETR4) no período entre 01 de Janeiro a 30 de Setembro de
2006.
Nesta etapa, foi analisada a inuência dos parâmetros de entrada do modelo para as
principais ações, dividindo em 3 grupos (G1, G2 e G3) de análise principais
representa o tamanho da janela.
20 de
acordo com tabela 4.2
74
20
, onde n
a) Grupo 1 (G1): abe, max, min, f ec, qtd, def asagem(d − 1, d − 2, d − n)
b) Grupo 2 (G2): f ec, def asagem
c) Grupo 3 (G3): f ec, qtd, def asagem
As guras 5.2, 5.3, 5.4 e 5.5 comparam a acurácia dos modelos na fase de treinamento
e validação em função da defasagem aplicada nos 3 grupos descritos.
FIG. 5.2: Resultados da América Latina Logística (ALLL11) em G1, G2 e G3
Conforme detalhado na gura 5.2, pode-se observar a fase de treinamento os modelos
SVM e NB com aproveitamento muito bom, tendendo a um superajuste aos dados para
janelas muito altas (40, 60 e 80), enquanto o modelo RL apresentando resultados muito
75
próximos do BLS proposto. Na fase de validação, o modelo SVM se comporta bem com
uma diferença baixa e média (3, 5, 10 e 15) para o grupo de experimentos G1 e em uma
diferença média (10, 15 e 20) para o grupo de experimentos G2 e G3, enquanto o modelo
NB apresentou forte queda de desempenho a partir de uma diferença de 20 dias.
FIG. 5.3: Resultados da Companhia Siderúrgica Nacional (CSNA3) em G1, G2 e G3
O comportamento da ação da CSN (CSNA3) pode ser observado na gura 5.3. Como
esperado, a fase de treinamento apresentou excelentes resultados para SVM e bons resultados para NB, ambos tendendo para modelos superajustados em altas diferenças aplicadas
ao modelo. Na fase de validação, bons resultados para o modelo SVM para todos os
três grupos (G1, G2 e G3) em uma defasagem de 15 ou 20 dias e resultados abaixo do
76
esperado para modelo RL em uma defasagem de 60 dias em todos os grupos (G1, G2 e
G3). Destaque para o modelo NB apresentando forte queda a partir de uma defasagem
se 20 dias.
FIG. 5.4: Resultados da Eletrobras (ELET6) em G1, G2 e G3
A gura 5.4 destaca o comportamento da ação ELET6: a fase de treinamento seguiu o
padrão das ações analisadas anteriormente, com forte tendência de superajuste para altas
defasagens e modelo SVM se destacando na ecácia. Na fase de validação, resultados
razoáveis com SVM para todos os grupos em uma defasagem entre 15 e 20 dias e em altas
defasagens (40, 60 e 80), resultados muito ruins para todos os modelos.
77
FIG. 5.5: Resultados da Petrobras (PETR4) em G1, G2 e G3
Na gura 5.5 pode-se observar o comportamento da ação PETR4 em função dos 3
grupos de experimentos. Mais uma vez a fase de treinamento seguiu um padrão, com
destaque para o modelo SVM. Em contrapartida, na fase de validação, todos os modelos apresentando comportamento abaixo da média das ações estudadas, especialmente o
modelo RL com performance muito abaixo do BLS proposto. De modo geral, todos os
grupos de experimento (G1, G2 e G3) com baixa acurácia. As próximas seções focarão
em experimentos variados, visando modelos mais estáveis em função do tempo.
O resultado detalhado dos experimentos citados nesta seção podem ser observados na
gura 5.6 e nas tabelas 5.1 e 5.2, onde são agrupados os totais com os melhores (acima de
78
59% de taxa de acerto) e piores (abaixo de 32% de taxa de acerto) resultados obtidos pelos
experimentos nos grupos G1, G2 e G3. Destaque para o algoritmo SVM, que apresentou
melhor taxa de acerto em G1, G2 e G3. Outra característica marcante para todos os
algoritmos analisados é quanto a baixa defasagem (entre 3 e 20 dias), que melhorou a
ecácia do modelo, ao contrário das altas defasagens (entre 40 e 80 dias) que, de modo
geral, pioraram a performance.
FIG. 5.6: Melhores e piores (por defasagem) resultados dos algoritmos agrupados em
função do grupo de experimento e ações
TAB. 5.1: Totais de melhores resultados dos algoritmos agrupados em função do grupo
de experimento. G1 apresentando melhores resultados.
grupo
G1
G2
G3
RL
NB
8
17
3
3
2
SVM
5
8
4
16
11
10
37
total
24
22
16
Pode-se extrair comportamentos gerais em cada situação, analisando a gura e grácos
citados, de tal modo que:
79
TAB. 5.2: Totais de piores resultados dos algoritmos agrupados em função do grupo de
experimento. G1 apresentando melhores resultados.
grupo
G1
G2
G3
RL
NB
9
12
2
2
5
SVM
4
4
4
3
4
3
10
total
9
10
12
• De modo geral nas 4 ações analisadas, utilizar defasagem maior que 20 dias contribui
negativamente para a complexidade do modelo, além de aumentar a probabilidade
de gerar um modelo superajustado aos dados de treinamento (melhores resultados
para d-3,d-5,d-10,d-15 e d-20)
• Defasagens entre 15 e 20 dias geram melhores resultados na maioria dos cenários
para o algoritmo SVM, superando, em todos os casos, o baseline (BLS) proposto
neste trabalho.
• A ação da Petrobras (PETR4) teve comportamento oposto entre os algoritmos SVM
e NB para uma alta defasagem (80 dias) em grupos similares (G2 e G3). Este
comportamento pode ser analisado em outros cenários futuros.
• Na ação da Companhia Siderúrgica Nacional (CSNA3) o algoritmo NB apresenta
resultados muito abaixo do esperado em defasagem de 60 dias para todos os grupos
(G1, G2 e G3).
• Na ação da Eletrobras (ELET6) o algoritmo NB apresenta resultados muito abaixo
do esperado em defasagem de 40 dias para todos os grupos (G1, G2 e G3).
• RL apresenta resultados inferiores na maioria dos casos.
• SVM se destaca como o melhor algoritmo dentre os 3.
• Grupo de experimentos G1 com maior concentração de bons resultados e menor
concentração de piores resultados.
De maneira geral conclui-se que os melhores resultados estão com defasagens entre
3 e 20 dias e os parâmetros de entrada do grupo G1. Os ativos apresentam algumas
80
características que serão observadas nos experimentos a seguir a m de conrmar um
padrão.
5.1.2
EXP02 - PERÍODO DE TREINAMENTO
Modelos gerados para realizar previsão de séries nanceiras devem levar em conta o fator
temporal existente na amostra, assim como a relevância das últimas cotações para a
formação do preço atual. Para conrmar o comportamento dos algoritmos em função
do crescimento da amostra, foram executados 13 experimentos baseados no período de
01-01-2006 a 31-05-2008, cada um com um corpus para treinamento diferente, crescendo
em função do tempo.
Os modelos gerados foram validados sob uma amostra com período de 1 mês, subsequente ao m da amostra de treinamento.
A tabela 5.3 detalha os grupos de experimentos.
TAB. 5.3: Experimentos com diferentes tamanhos de amostras
grupo
GR1
GR2
GR3
GR4
GR5
GR6
GR7
GR8
GR9
GR10
GR11
GR12
GR13
amostra de treinamento
1 mês
2 meses
3 meses
4 meses
5 meses
6 meses
7 meses
8 meses
9 meses
10 meses
11 meses
1 ano
2 anos
Fatores observados na seção anterior 5.1.1, como a melhor defasagem para SVM, foram
raticados.
Assim como esperado cada modelo apresentou um comportamento particular com a
variação, mas indicando o melhor fator temporal para a previsão em cada ação. Esse
viés é um bom indicador para análises futuras em cada modelo, como, por exemplo, o
81
comportamento acima da média para as ações PETR4 e ELET6 com uso de regressão
logística, apresentando taxa de acerto suave em função da defasagem aplicada.
Foram gerados grácos (guras 5.8, 5.7), 5.9, 5.10 com os melhores resultados em
função da amostra, indicando o melhor comportamento de cada algoritmo para cada ação
da bolsa de valores. De maneira geral, pode-se observar que:
Ação da Petrobras (PETR4)
a) Melhores modelos com amostra de treinamento maior (9, 10, 11 e 12 meses)
b) Resultados acima da média para SVM em períodos médios (9 e 10 meses) com média
defasagem (10,15 e 20)
c) Bons resultados para NB em períodos médios (10 e 11 meses) com média defasagem
(15)
d) Bons resultados para RL em período médio (12 meses) em todas as defasagens (3,
5, 10, 15 e 20)
82
FIG. 5.7: Melhores resultados da Petrobras (PETR4) em diferentes tamanhos de amostras
de treinamento
Ação da Eletrobras (ELET6)
a) Melhores modelos com amostra de treinamento maior (9, 10 e 12 meses)
b) Bons resultados para SVM em período médio (10 meses) com baixa defasagem (5)
c) Bons resultados para NB em períodos médios (9 e 10 meses) com baixa defasagem
(3, 5, 10)
d) Bons resultados para RL em período médio (12 meses) em todas as defasagens (3,
5, 10, 15 e 20)
83
FIG. 5.8: Melhores resultados da Petrobras (PETR4) em diferentes tamanhos de amostras
de treinamento
Ação da América Latina Logística (ALLL11)
a) Bons resultados para SVM em períodos de 1, 4 ou 7 meses em média defasagem
(20)
b) Bons resultados para SVM e NB para período curto (1 mês) com baixa defasagem
(3 e 5).
c) Bons resultados para SVM e NB para períodos de 1, 4 ou 7 meses em baixa defasagem (SVM = 5 dias e NB = 10 dias)
d) Em todos os 13 experimentos a ação
não apresentou bons resultados para modelos
gerados com RL.
84
FIG. 5.9: Melhores resultados da Petrobras (PETR4) em diferentes tamanhos de amostras
de treinamento
Ação da Companhia Siderurgica Nacional (CSNA3)
a) Resultados acima da média para SVM em períodos de 3, 4 e 7 meses, com media
defasagem (20).
b) Bons resultados para NB em períodos de 6 e 7 meses, com baixa defasagem (3 e 5).
c) Resultados acima da média para RL em períodos de 3 e 7 meses, com baixa defasagem (3 e 5).
85
FIG. 5.10: Melhores resultados da Petrobras (PETR4) em diferentes tamanhos de
amostras de treinamento
A tabela 5.4 detalha os períodos de maior acerto para cada ação. Modelos gerados
a partir de amostras maiores tendem a ser mais ecientes para as ações da Petrobras
(PETR4) e da Eletrobras (ELET6). Em contrapartida, a ação da America Latina Logistica (ALLL11) tende a se comportar melhor com modelos gerados a partir de uma
amostra menor.
86
TAB. 5.4: Períodos com melhores taxas de acertos por ação
ação
período algoritmo(defasagem)
ALLL11 1 mês
4 meses
7 meses
CSNA3 3 meses
4 meses
6 meses
7 meses
11 meses
ELET6 4 meses
6 meses
9 meses
10 meses
11 meses
12 meses
PETR4 9 meses
10 meses
11 meses
12 meses
5.1.3
SVM(d3,d5) e NB(d3,d5,d10)
SVM(d3,d5) e NB(d3,d5,d10)
SVM(d10,d20) e NB(d10,d15,d20)
SVM(d15,d20) e RL(d3,d5)
SVM(d10,d15,d20)
SVM(d20) e NB(d3,d5)
SVM(d5,d10,d20), RL(d3,d5,d10,d15) e NB(d5,d10,d15)
RL(d3,d5,d10,d15,d20)
SVM(d3) e NB(d3,d5)
NB(d3,d5,d15)
NB(d3,d5,d10,d15,d20)
SVM(d5), NB(d3,d5,d10)
SVM(d20), NB(d3,d5,d10,d15)
RL(d3,d5,d10,d15,d20)
SVM(d5,d10,d15,d20) e NB(d10)
SVM(d5,d10,d15,d20), RL(d3,d5), NB(d3,d5,d15,d20)
SVM(d20), NB(d10)
RL(d3,d5,d10,d15,d20)
EXP03 - SVM - IMPLEMENTAÇÕES
Conforme detalhado no capítulo 4, foi utilizada a biblioteca LibSVM para gerar modelos SVM. Esta biblioteca suporta o método tradicional de modelos de classicação
(C-SVC) e a implementação alterada (nu -SVC) proposta por (SCHÖLKOPF, 2000). Basicamente neste método alterado a constante de regularização C (−∞, +∞) é substituída
pela constante de regularização nu (0,1). A m de comparar o resultado desta implementação, foram realizados alguns experimentos entre modelos SVM com o kernel RBF,
considerando um dos melhores períodos para cada ação, conforme analisado na seção
5.1.2.
As amostras também extraídas do período de 01-01-2006 a 31-05-2008 são detalhadas
na tabela 5.5.
87
TAB. 5.5: Amostras utilizadas para análise das implementações de SVM: C-SVC e nu SVC, considerando melhores períodos por ações
ação
ALLL11
CSNA3
ELET6
PETR4
período
1 mês
4 meses
10 meses
9 meses
defasagem
d20
d20
d5
d15
Em (HSU, 2010) uma análise foi descrita para a seleção de parâmetros livres do SVM,
onde o range de 2−5 até 215 é indicado para a constante de regularização C (C-SVC).
De acordo com estudos recentes com foco em modelos de classicação para previsão de
índices, detalhados no capítulo 3, bons resultados apresentam valores de C entre 24 e 27
(WANG, 2013), (ROSILLO, 2011), (PHICHHANG, 2009), (HUANG, 2005).
Proposto por (SCHÖLKOPF, 2000), o parâmetro nu tem valor padrão denido para
0.5.
Foram realizados 40 experimentos, detalhados na tabela 5.6, a m de comparar o
comportamento dos modelos validados nas seções anteriores aplicando a variação das
duas implementações SVM (C-SVC e nu-SVC), além da variação dos parâmetros inerentes a cada situação. Os testes foram realizados em períodos de 30 dias, subsequentes
aos respectivos períodos de treinamento. Pode-se observar que ambas implementações,
quando aplicados valores corretos dos respectivos parâmetros, atingem níveis de resposta
muito similar, exceto pela ação da Eletrobras (ELET6), que teve melhores resultados
com a implementação nu -SVC (Experimentos GI37, GI38). O valor entre 0, 3 e 0, 5 da
constante nu leva aos melhores resultados médios.
88
TAB. 5.6: Amostras utilizadas para análise das implementações de SVM: C-SVC e nu SVC
grupo ação
GI1
GI2
GI3
GI4
GI5
GI6
GI7
GI8
GI9
GI10
GI11
GI12
GI13
GI14
GI15
GI16
GI17
GI18
GI19
GI20
GI21
GI22
GI23
GI24
GI25
GI26
GI27
GI28
GI29
GI30
GI31
GI32
GI33
GI34
GI35
GI36
GI37
GI38
GI39
GI40
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
ALLL11
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
CSNA3
PETR4
PETR4
PETR4
PETR4
PETR4
PETR4
PETR4
PETR4
PETR4
PETR4
ELET6
ELET6
ELET6
ELET6
ELET6
ELET6
ELET6
ELET6
ELET6
ELET6
implementação valor
C-SVC
C-SVC
C-SVC
C-SVC
C-SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
C-SVC
C-SVC
C-SVC
C-SVC
C-SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
C-SVC
C-SVC
C-SVC
C-SVC
C-SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
C-SVC
C-SVC
C-SVC
C-SVC
C-SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
nu -SVC
0
2
24
25
26,4411
26,65
0.1
0.3
0.5
0.7
0.9
20
24
25
26,4411
26,65
0.1
0.3
0.5
0.7
0.91
20
24
25
26,4411
26,65
0.1
0.3
0.5
0.7
0.9
20
24
25
26,4411
26,65
0.1
0.3
0.5
0.7
0.9
89
acurácia
63.6%
68.1%
68.1%
68.1%
68.1%
68.1%
68.1%
68.1%
68.1%
68.1%
63%
68.1%
77.1%
77.3%
77.3%
73%
77.3%
73%
59%
59%
54.5%
68.2%
68.2%
68.2%
82%
68.2%
77.5%
82%
68.2%
72.8%
45.5%
55%
50%
54.5%
50%
59%
63.5%
64%
45.5%
50%
5.1.4
EXP04 - SVM - KERNELS
Conforme apresentado no capítulo 2, as funções de kernel, responsáveis pelo mapeamento
dos pontos para um ambiente de alta dimensão, podem ter várias denições, entre elas
foram implementadas no framework as seguintes: função base radial (radial basis function
- RBF), polinomial (polynomial) e sigmoidal (sigmoid) (tabela 2.3). A escolha dos kernels
e de seus parâmetros afeta diretamente o desempenho do classicador obtido (FACELI,
2011).
Além disso, pode-se utilizar SVM com o kernel linear, ou seja, seu uso implica em não
mapear os dados para um ambiente de alta dimensão (também obtido pela utilização do
kernel polinomial com os seguintes parâmetros: d = 1, γ = 1 e k = 0).
Nos experimentos anteriores foi utilizada a função RBF, indicada quando não se tem
conhecimento detalhado do domínio do problema e por apresentar bons resultados em
tarefas de predição. (HSU, 2010). As tabelas 5.7, 5.8, 5.9 e 5.10 detalham os experimentos
realizados nesta seção para cada kernel.
Foram realizados 63 experimentos com amostras extraídas para treinamento de um dos
melhores resultados obtidos para cada ação e variáveis de entrada, conforme detalhado
na tabela 5.5 e nos experimentos iniciais (5.1.1).
TAB. 5.7: Amostras utilizadas para análise do kernel Linear. Conforme esperado, resultados abaixo dos melhores cenários obtidos com uso do kernel RBF
grupo ação
GK1
GK2
GK3
GK4
ALLL11
CSNA3
PETR4
ELET6
acurácia
58%
50%
41%
54%
Tabela 5.8 apresentando melhores resultados com parâmetro γ = n1 , onde n representa
o numero de variáveis do modelo. Ação da Petrobrás (PETR4) apresentando melhores
resultados com γ = 1.
90
TAB. 5.8: Amostras utilizadas para análise do kernel RBF
grupo ação
GK5 ALLL11
GK6
GK7
GK8
GK9
GK10
GK11
GK12
GK13
GK14
GK15
GK16
GK17
GK18
GK19
GK20
γ
1/24
0.0001
1
10
1/24
0.0001
1
10
1/19
0.0001
1
10
1/9
0.0001
1
10
ALLL11
ALLL11
ALLL11
CSNA3
CSNA3
CSNA3
CSNA3
PETR4
PETR4
PETR4
PETR4
ELET6
ELET6
ELET6
ELET6
acurácia
68.2%
59.2%
45%
45%
73%
36%
50%
59%
82%
50%
87%
54%
64%
55%
45%
59%
A tabela 5.9 detalha os resultados para o kernel sigmoid e apresenta bons resultados
em alguns casos, mas inferiores aos obtidos com RBF.
91
TAB. 5.9: Amostras utilizadas para análise do kernel Sigmoid
grupo ação
GK21 ALLL11
GK22 ALLL11
GK23 ALLL11
GK24 ALLL11
GK25 ALLL11
GK26 ALLL11
GK27 CSNA3
GK28 CSNA3
GK29 CSNA3
GK30 CSNA3
GK31 CSNA3
GK32 CSNA3
GK33 PETR4
GK34 PETR4
GK35 PETR4
GK36 PETR4
GK37 PETR4
GK38 PETR4
GK39 ELET6
GK40 ELET6
GK41 ELET6
GK42 ELET6
GK43 ELET6
GK44 ELET6
γ
1/24
1/24
1/24
0.0001
0.0001
0.0001
1/24
1/24
1/24
0.0001
0.0001
0.0001
1/19
1/19
1/19
0.0001
0.0001
0.0001
1/9
1/9
1/9
0.0001
0.0001
0.0001
k
0
3
10
0
3
10
0
3
10
0
3
10
0
3
10
0
3
10
0
3
10
0
3
10
acurácia
68%
63%
45%
68%
59%
45%
54%
67%
59%
55%
55%
59%
36%
41%
45.5%
68.2%
50%
45.4%
59%
32%
55%
37%
45%
55%
A tabela 5.10 detalha os resultados para o kernel polinomial. Bons resultados em
alguns casos, chegando a ser superior ao kernel sigmoid, mas em geral inferiores aos
obtidos com RBF. Importante destacar bons resultados com parâmetro k = 3 (denido
de maneira empírica e ainda não conhecido até o momento) em todas as ações analisadas
(experimentos GK28, GK48, GK49, GK50, GK54, GK67), obtendo resultados próximos
ao kernel RBF.
92
TAB. 5.10: Amostras utilizadas para análise do kernel Polinomial
grupo ação
GK45 ALLL11
GK46 ALLL11
GK47 ALLL11
GK48 ALLL11
GK49 ALLL11
GK50 ALLL11
GK51 CSNA3
GK52 CSNA3
GK53 CSNA3
GK54 CSNA3
GK55 CSNA3
GK56 CSNA3
GK57 PETR4
GK58 PETR4
GK59 PETR4
GK60 PETR4
GK61 PETR4
GK62 PETR4
GK63 ELET6
GK64 ELET6
GK65 ELET6
GK66 ELET6
GK67 ELET6
GK68 ELET6
5.1.5
γ
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/24
1/19
1/19
1/19
1/19
1/19
1/19
1/9
1/9
1/9
1/9
1/9
1/9
k
0
0
0
3
3
3
0
0
0
3
3
3
0
0
0
3
3
3
0
0
0
3
3
3
d
2
3
4
2
3
4
2
3
4
2
3
4
2
3
4
2
3
4
2
3
4
2
3
4
acurácia
54%
59%
54%
68%
68%
68%
55%
45%
41%
68%
54%
59%
68.2%
68.2%
82%
68.2%
73%
73%
50%
60%
50%
54%
64%
59%
EXP05 - VALIDAÇÃO CRUZADA DESLIZANTE - PARÂMETRO
O grande desao em previsões de índices em séries nanceiras é obter modelos que tenham boa performance com novos dados, e não somente captem uma tendência temporal.
Baseado nos experimentos das seções anteriores, buscou-se padrões que correspondessem
aos melhores modelos iniciais para determinada ação, determinado pelas variáveis de
entrada (seção 5.1.1), pelo período de treinamento ideal (seção 5.1.2) e pela análise do
impacto dos parâmetros livres do SVM (seção 5.1.4), além da implementação ideal (seção
5.1.3).
Modelos aplicados a novos períodos de treinamento tendem a ter uma queda sensível na
acurácia (no caso de modelos de classicação). Para avaliar esses cenários foi adaptado o
93
método de validação cruzada de modo que deslize em função do tempo (validação cruzada
deslizante), ou seja, os modelos serão gerados diversas vezes ao longo do tempo, para tentar
captar a tendência atual.
A tabela 5.11 detalha os alguns bons resultados para cada ativo analisado neste trabalho, considerando os melhores parâmetros descobertos nas seções anteriores. Os modelos foram retreinados e testados 10 vezes (em períodos consecutivos aleatórios) entre 3006-2006 a 31-12-2012, o que inclui um período de forte crise nanceira (2008), mostrando
que os modelos apresentam boa estabilidade, quando comparado aos melhores resultados
obtidos de outras amostras.
A coluna média acurácia apresenta a média simples da acurácia obtida nos 10 experimentos para cada modelo gerado.
TAB. 5.11: Bons resultados para modelos retreinados em função do tempo com validação
cruzada deslizante
grupo ação
GV1
GV2
GV3
GV4
ALLL11
ALLL11
ALLL11
ALLL11
kernel
rbf (γ = 1/24)
rbf (γ = 1/24)
rbf (γ = 1/24)
pol (γ = 1/24, k
3, d = 3)
GV5 ALLL11 sig (k = 0)
GV6 CSNA3 rbf (γ = 1/24)
GV7 CSNA3 rbf (γ = 1/24)
GV8 CSNA3 pol (γ = 1/24, k
3, d = 2)
GV9 CSNA3 pol (γ = 1/24, k
3, d = 3)
GV10 CSNA3 pol (γ = 1/24, k
3, d = 3)
GV11 PETR4 rbf (γ = 1/24)
GV12 PETR4 rbf (γ = 1/24)
GV13 PETR4 rbf (γ = 1/8)
GV14 PETR4 rbf (γ = 1/46)
GV15 PETR4 rbf (γ = 1/46)
GV16 ELET6 rbf (γ = 1/8)
GV17 ELET6 rbf (γ = 1/44)
GV18 ELET6 rbf (γ = 1/8)
treino previsão
def.
=
17
17
17
17
d+1,d+2,d+3
d+1,d+2,d+3,d+4
d+1,d+2,d+3,d+4
d+1,d+2,d+3,d+4
d-10
d-15
d-10
d-10
=
17
66
70
67
d+1,d+2,d+3,d+4
d+1,d+2
d+1,d+2
d+1,d+2
d-10
d-3
d-15
d-5
65%
62%
67%
62%
= 67
d+1,d+2
d-3
64%
= 67
d+1,d+2
d-5
67%
d+1
d+1
d+1
d+1
d+1
d+1
d+1
d+1
d-20
d-20
d-3
d-40
d-40
d-40
d-40
d-5
71.5%
65%
62%
74%
75%
64%
70%
68%
200
220
246
245
245
245
245
88
94
a
a
a
a
a
a
a
a
d+3
d+2
d+2
d+2
d+3
d+2
d+3
d+3
média
acurácia
63.5%
65%
64%
63.75%
5.1.6
EXP06 - MODELOS HÍBRIDOS
A partir dos resultados obtidos nas seções anteriores, obteve-se uma padronização para
bons resultados em cada um dos ativos estudados.
A m de melhorar a acurácia, avaliou-se a matriz de confusão de cada classicador
gerado e sua taxa de acerto em cada classe. A partir da análise dos melhores modelos,
dos resultados das seções anteriores e da matriz de confusão dos experimentos realizados,
criou-se um modelo híbrido para cada ação estudada (conforme detalhado nos algoritmos
10, 11 e 12) utilizando o kernel RBF, que apresentou bons resultados ao longo da pesquisa.
Esse modelo foi testado em 6 períodos distintos entre 01-01-2006 e 31-12-2012 para
cada ação (ALLL11, CSNA3, PETR4 e ELET6), totalizando 24 experimentos (6 para
cada ação), conforme detalhado nas tabelas 5.12, 5.14 , 5.16 e 5.18, onde:
• grupo ← identicador do experimento
• dias ← total de dias na amostra de teste
• diasp ← total de dias que o modelo realizou alguma previsão (alta ou baixa)
• hits ← total de acertos do modelo, quando realizou a previsão
• prev+1 ← total de previsões de alta (+1)
• hits+1 ← total de acertos nas previsões de alta (+1)
• prec+1 ← precisão da classe de alta (+1)
• prev−1 ← total de previsões de baixa (-1)
• hits−1 ← total de acertos nas previsões de baixa (-1)
• prec−1 ← precisão da classe de baixa (-1)
• acc ← acurácia geral do modelo
• bls ← baseline no período
As regras de decisão de cada modelo geraram também uma região indeterminada,
criada quando não há certeza suciente para realizar uma previsão ("+2"), ou seja, as
95
previsões podem não se tornar diárias, mas apenas quando há um aumento no nível de
certeza (diasp ) apontando a direção de alta ou baixa.
Os algoritmos 10, 11 e 12 detalham a ordem de prioridade das previsões baseada
nos algoritmos estudados neste trabalho. Essa regra gerada foi extraída da análise da
matriz de confusão de cada algoritmo (gerada a partir da análise do resultados dos 6
experimentos em períodos aleatórios para cada ação) e a partir de estudos realizados nas
seções anteriores.
Ação da America Latina Logistica (ALLL11)
De maneira geral, Naive Bayes e
SVM apresentaram um boa taxa de previsão para períodos de alta ("+1") (com destaque
para NB ), enquanto a combinação de Regressão Logística com SVM mostrou-se uma boa
combinação para previsão de períodos de baixa ("-1").
A tabela 5.12 detalha os períodos considerados para realização dos experimentos desta
seção para a ação ALLL11, de acordo com melhores períodos para treinamento de modelo,
detalhado na tabela 5.4. Função de kernel SVM utilizada: RBF com parâmetro γ = 1/24
em 1 mês de treinamento. Implementação nu-SV C com parâmetro nu = 0.5. Diferenças
da série: SVM (d − 5), NB(d − 10) e RL (d − 15).
TAB. 5.12: Amostras utilizadas para análise do modelo híbrido da ação ALLL11.
grupo período treino período validação
GH1
GH2
GH3
GH4
GH5
GH6
05-2006
05-2007
05-2008
05-2009
05-2010
08-2006
06-2006
06-2007
06-2008
06-2009
06-2010
09-2006
O algoritmo 10 detalha a regra de decisão para o modelo híbrido composto pelos 3
algoritmos estudados, gerando uma previsão para tendência de alta (+1) ou tendência de
baixa (-1) e ainda uma região indeterminada (+2), que não gera previsão.
Observa-se a baixa qualidade do modelo para um período de forte crise mundial (2008
e 2009), iniciada no mercado imobiliário norte-americano e impactando diretamente o
índice bovespa (Ibovespa), com períodos altamente voláteis (experimentos GH3 e GH4).
Em períodos fora de forte crise econômica, o modelo mostrou-se estável e com acurácia
96
Algoritmo 10 Regra de previsão do modelo híbrido composto por NB, RL e SVM para
ação ALLL11
procedimento realizarPrevisao
obter modelos NB, RL e SVM
Xn ← executar classicação NB
Xl ← executar classicação RL
Xs ← executar classicação SVM
para todo i = 1 até total de exemplos faça
se (Xni = +1) então
retorna +1
senão
se (Xli = −1)e(Xsi = −1) então
retorna −1
senão
se (Xsi = +1) então
retorna +1
senão
retorna +2
m se
m se
m se
m para
m procedimento
97
acima da média encontrada nos experimentos realizados anteriormente.
A tabela 5.13 detalha os resultados obtidos com o modelo híbrido. Bons resultados
para previsões de alta e acurácia geral do modelo em períodos não impactados pela crise
internacional.
TAB. 5.13: Análise do desempenho do modelo híbrido da ação ALLL11
grupo dias diasp hits prev+1 hits+1 prec+1 prev−1 hits−1 prec−1 acc bls
GH1 22 11 8
8
5
62.5% 3
3
100% 72.73% 42%
GH2 22 13 10 3
3
100% 10
7
70%
76.92% 51%
GH3
GH4
GH5
GH6
22
22
22
22
22
12
13
10
10
6
9
7
18
12
4
5
6
6
3
4
33.3%
50%
75%
80%
4
0
9
5
4
0
6
3
Ação da Companhia Siderúrgica Nacional (CSNA3)
100%
0%
66.7%
60%
45.4%
50%
70%
70%
46%
66%
54%
53%
A ação da CSN também
obteve bons resultados com a combinação os 3 algoritmos propostos. De maneira geral,
SVM e RL tiveram bom aproveitamento para tendências de alta e NB para tendência de
baixa.
A tabela 5.14 detalha os períodos considerados para realização dos experimentos desta
seção para a ação CSNA3, de acordo com melhores períodos para treinamento de modelo,
detalhado na tabela 5.4. Função de kernel SVM utilizada: RBF com parâmetro γ = 1/24
em 7 meses de treinamento. Implementação nu-SV C com parâmetro nu = 0.5. Diferenças
da série: SVM (d − 10), NB (d − 10) e RL (d − 15).
TAB. 5.14: Amostras utilizadas para análise do modelo híbrido da ação CSNA3
grupo período treino
GH7
GH8
GH9
GH10
GH11
GH12
05-2006
05-2007
05-2008
05-2009
05-2010
05-2011
a
a
a
a
a
a
11-2006
11-2007
11-2008
11-2009
11-2010
11-2011
período validação
12-2006
12-2007
12-2008
12-2009
12-2010
12-2011
O algoritmo 11 detalha a regra de decisão para o modelo híbrido composto pelos 3
algoritmos estudados, gerando uma previsão para tendência de alta (+1) ou tendência de
98
baixa (-1) e ainda uma região indeterminada (+2), que não gera previsão.
Algoritmo 11 Regra de previsão do modelo híbrido composto por NB, RL e SVM para
ação CSNA3 e PETR4.
procedimento realizarPrevisao
obter modelos NB, RL e SVM
Xn ← executar classicação NB
Xl ← executar classicação RL
Xs ← executar classicação SVM
para todo i = 1 até total de exemplos faça
se (Xli = +1)e(Xsi = +1) então
retorna +1
senão
se (Xni = −1) então
retorna −1
senão
retorna +2
m se
m se
m para
m procedimento
Pode-se observar em 2008 novamente a baixa qualidade do modelo, que não realizou
nenhuma previsão para tendência de alta. Outro fato importante é quanto a acurácia
muito baixa em 2011. Esse resultado evidencia uma possível variação na característica
dos resultados da ação, que deve ser tratado com a reavaliação dos melhores períodos
estabelecidos na tabela 5.4.
A tabela 5.15 detalha os resultados obtidos com o modelo híbrido.
99
TAB. 5.15: Análise do desempenho do modelo híbrido da ação CSNA3
grupo dias diasp hits prev+1 hits+1 prec+1 prev−1 hits−1 prec−1 acc
GH7 22 15 11 15
11
74%
0
0
N/A 74%
GH8 22 13 11 6
5
84%
7
6
86%
85%
GH9
22
GH10 22
GH11 22
GH12 22
2
7
17
15
2
5
12
7
0
7
3
11
0
5
2
5
N/A
72%
67%
46%
2
0
14
4
2
0
10
2
100%
N/A
72%
50%
100%
72%
70%
47%
bls
43%
51%
45%
65%
57%
57%
Ação da Petrobras (PETR4)
A ação PETR4 apresentou comportamento similar a CSNA3, com a mesma implementação do algoritmo base que gerou o modelo híbrido (algoritmo 11). O modelo apresentou
boa taxa de acerto para previsões de alta e comportamento muito abaixo do esperado no
ano de crise, conforme esperado.
A tabela 5.16 detalha os períodos considerados para realização dos experimentos desta
seção para a ação PETR4, de acordo com melhores períodos para treinamento de modelo,
detalhado na tabela 5.4. Função de kernel SVM utilizada: RBF com parâmetro γ =
1/24 em 10 meses de treinamento. Implementação nu-SV C com parâmetro nu = 0.5.
Diferenças da série: d − 15, NB = d − 15 e RL d − 20.
TAB. 5.16: Amostras utilizadas para análise do modelo híbrido da ação PETR4
grupo período treino
GH13
GH14
GH15
GH16
GH17
GH18
01-2006
01-2007
01-2008
01-2009
01-2010
01-2011
a
a
a
a
a
a
03-2007
03-2008
03-2009
03-2010
03-2011
03-2012
período validação
04-2007
04-2008
04-2009
04-2010
04-2011
04-2012
A tabela 5.17 detalha os resultados obtidos com o modelo híbrido. Bons resultados
para previsões de alta e acurácia geral do modelo em períodos não impactados pela crise
internacional.
100
TAB. 5.17: Análise do desempenho do modelo híbrido da ação PETR4
grupo dias diasp hits prev+1 hits+1 prec+1 prev−1 hits−1 prec−1 acc
GH13 22 17 13 13
10
77%
4
3
75%
77%
GH14 22 5
3
0
0
N/A 5
3
60%
60%
GH15 22
GH16 22
GH17 22
GH18 22
22
15
21
8
8
12
13
5
13
7
4
0
5
6
4
0
38%
86%
100%
N/A
9
8
17
8
3
6
9
5
33%
75%
53%
63%
37%
80%
62%
63%
bls
43%
52%
46%
59%
52%
49%
Ação da Eletrobras (ELET6)
A ação ELET6 teve melhor comportamento com a combinação dos algoritmos NB e
SVM em um comitê de dupla conrmação. Ou seja, apenas uma classe é denida caso
ambos tenham a mesma saída.
A tabela 5.18 detalha os períodos considerados para realização dos experimentos desta
seção para a ação ELET6, de acordo com melhores períodos para treinamento de modelo,
detalhado na tabela 5.4. Funçaõ de kernel SVM utilizada: RBF com parâmetro γ =
1/24 em 10 meses de treinamento. Implementação nu − SV C com parâmetro nu = 0.5.
Diferenças da série: SVM (d − 20) e NB (d − 15).
TAB. 5.18: Amostras utilizadas para análise do modelo híbrido da ação ELET6
grupo período treino
GH19
GH20
GH21
GH22
GH23
GH24
01-2006
01-2007
01-2008
01-2009
01-2010
01-2011
a
a
a
a
a
a
03-2007
03-2008
03-2009
03-2010
03-2011
03-2012
período validação
04-2007
04-2008
04-2009
04-2010
04-2011
04-2012
O algoritmo 12 detalha a regra de decisão para o modelo híbrido composto pelos 3
algoritmos estudados, gerando uma previsão para tendência de alta (+1) ou tendência de
baixa (-1) e ainda uma região indeterminada (+2), que não gera previsão.
Observa-se a boa taxa de acertos nas tendências de alta e comportamento nulo em
parte do período de crise (2009). A tabela 5.19 detalha os resultados obtidos com o
modelo híbrido.
101
Algoritmo 12 Regra de previsão do modelo híbrido composto por NB e SVM para ação
ELET6
procedimento realizarPrevisao
obter modelos NB, RL e SVM
Xn ← executar classicação NB
Xs ← executar classicação SVM
para todo i = 1 até total de exemplos faça
se (Xsi = +1)e(Xni = +1) então
retorna +1
senão
se (Xsi = −1)e(Xni = −1) então
retorna −1
senão
retorna +2
m se
m se
m para
m procedimento
102
TAB. 5.19: Análise do desempenho do modelo híbrido da ação ELET6
grupo dias diasp hits prev+1 hits+1 prec+1 prev−1 hits−1 prec−1 acc
GH19 22 13 9
8
6
75%
5
3
60%
70%
GH20 22 10 6
4
3
75%
6
3
50%
60%
GH21 22 15 12 8
7
88%
7
5
71%
80%
GH22 22
GH23 22
GH24 22
12
11
17
4
10
12
0
1
2
0
1
2
N/A
100%
100%
12
10
15
4
9
10
33%
90%
67%
33%
91%
71%
bls
43%
51%
46%
50%
47%
47%
Os modelos podem ainda ser analisados especicando os períodos de treinamento para
cada algoritmo em cada ação, de acordo com guras 5.7, 5.8, 5.9 e 5.10. Espera-se que
este ajuste melhore a capacidade de previsão do modelo híbrido gerado.
Apesar de não ser foco deste trabalho, outro ponto importante para automatizar e
melhorar a capacidade preditiva dos modelos híbridos gerados é usar um modelo de árvore
de decisão para gerar as regras de decisão implementadas em cada modelo híbrido, ao invés
da análise realizada sob o resultado da matriz de confusão.
103
6 CONCLUSÕES
Conforme detalhado no capítulo 3, resultados de trabalhos recentes na área mostram
que previsão em séries temporais nanceiras ainda é uma tarefa complexa, basicamente
pelo comportamento não-linear e não-estacionário desse tipo de série, além de toda incerteza e ruídos encontrados no mercado nanceiro.
As pesquisas com foco em predição de tendências em séries nanceiras (d + n) focam,
basicamente, em dois grupos:
da bolsa de valores.
previsão de índices (de mercado) e previsão de ações
Em um estudo detalhado das principais pesquisas relacionadas ao
primeiro grupo (KIM, 2003), (HUANG, 2005), (PHICHHANG, 2009), (ROSILLO, 2011),
(ZHONGYUAN, 2012), (SHEN, 2012), (KARAZMODEH, 2013) e (WANG, 2013) foi observado que, na grande maioria das vezes, tem-se um melhor desempenho (acurácia média
de 70%) quando comparado as pesquisas relacionadas ao segundo grupo (SAMSUDIN,
2010). Uma importante característica que favorece esta tarefa é o aumento da correlação
direta entre os índices e indicadores econômicos, como por exemplo a relação entre o índice
da Bolsa de Valores da China (SZSE ) com a taxa cambial (dólar-yuan ).
Este trabalho focou na análise do comportamento diário de quatro ações (América
Latina Logística - ALLL11, Companhia Siderúrgica Nacional - CSNA3, Eletrobras ELET6 e Petrobras - PETR4) do mercado de ações da Bolsa de Valores de São Paulo
(BOVESPA) a m de desenvolver uma metodologia para previsão de tendências de alta
e de baixa para cada uma destas ações. Neste sentido, foram criados classicadores com
foco na previsão da tendência diária (d+1) de cada ação, utilizando somente informação
de cotação do ativo (preço de abertura, preço de fechamento, mínima do dia, máxima do
dia, total de títulos negociados), através de algoritmos de aprendizado de máquina (Naive
Bayes, Regressão Logística e Máquinas de Vetores de Suporte).
De modo geral, além da diculdade comum em prever tendência em ativos nanceiros (sejam índices ou ações), destaca-se a baixa quantidade de pesquisa relacionada
ao mercado nanceiro brasileiro, apesar deste (BOVESPA) ser o terceiro maior mercado
nanceiro do mundo. (MARTINEZ, 2009), (GOMIDE, 2011) e (ALVIM, 2013), além da
falta de pesquisas com foco em ações.
Como resultado da pesquisa, obteve-se, além da contribuição para previsões na BOVESPA,
104
a integração de duas recentes bibliotecas opensources de aprendizado de máquina: FAMA
(FAMA, 2012) (framework para aprendizado de máquina) e LibSVM (CHANG, 2011)
(implementação do algoritmo Support Vector Machines ) e um ambiente integrado e automatizado para realizar novas pesquisas com foco em previsões nanceiras (capítulo 4).
Como esperado, modelos gerados a partir do algoritmo SVM tiveram melhores resultados
que os algoritmos analisados, e pode-se comparar os resultados obtidos pelas variações de
kernel e seus parâmetros livres, que não apresentam método especíco para sua escolha
(TAY, 2001a).
Apesar de uma boa avaliação que um modelo possa ter, o fator temporal e toda diculdade existente na série nanceira diculta a previsão quando aplicados a novos dados.
Neste sentido, foi alterado o método de validação cruzada a m dar maior importância
a dados mais recentes e tentar captar a tendência atual. Os experimentos realizados
na seção 5.1.5 sugerem que este método (baseado na hipótese que retreinar o modelo
em função do tempo ajuda na predição) apresenta melhores resultados médios, quando
comparados a validação cruzada.
Por m, vericou-se que as abordagens, quando correlacionadas, produziram bons
modelos híbridos, capazes de se equiparar ou superar a acurácia da previsão diária de
tendência (hit rate ) de outros modelos analisados nesta pesquisa, ainda que em Bolsas de
Valores distintas (EUA, Japão, China, Coreia do Sul, Hong Kong).
Como trabalhos futuros propõe-se o ajuste do algoritmo SVM a m de considerar a
penalização (falso positivo ou falso negativo ) para valores com pouca diferença. Uma
variação de 1 centavo, por exemplo, pode tornar-se irrelevante para o investidor, apesar
de indicar uma tendência de alta.
Outra importante consideração é a validação de modelos aplicados a ações do mesmo
grupo, a m de obter resultados semelhantes. Estudos recentes que evidenciam a correlação entre determinados ativos ((ALVIM, 2010), (GOMIDE, 2011), (BEZERRA, 2009))
e este fato pode ser relevante para nova ações inseridas no mercado nanceiro, que podem
se beneciar de modelos existentes para realização de previsões de tendência, uma vez
que pode ser difícil gerar novos modelos quando se tem pouca informação relativa ao seu
comportamento.
Além da correlação direta entre grupos de ativos, uma variável interessante para análise
é o próprio índice bovespa (IBOV) e também médias móveis que são utilizadas como
indicadores para prever tendências (através de linhas de suporte e linhas de resistência ) e
105
podem ser utilizadas nos modelos gerados nesta pesquisa, além de outros indicadores de
análise técnica.
Por m, estudos recentes vem focando em previsões associadas a análise de sentimento
(HAN, 2007), (ALVIM, 2010), (RAMA, 2012). Ações consideradas pequenas (smallcaps
e micos ) sofrem mais com a especulação e podem ser fortes candidatas para gerar bons
padrões de previsão, apesar da diculdade de denir os feeds mais relevantes neste cenário.
106
7 REFERÊNCIAS BIBLIOGRÁFICAS
ABRAHAM, A., NATH, B. e MAHANTI, P. K. Hybrid intelligent systems for stock
market analysis. International Conference on Computational Science, págs. 337345,
2001.
ALDRIGHI, D. M. e MILANEZ, D. Y. Finança Comportamental e a Hipótese dos
Mercados Ecientes. Em Revista de Economia Contemporânea 9/1, págs. 4172,
2005.
ALLAN, T. e GRANGER, C. W.
Ecient market hypothesis and forecasting.
International Journal of Forecasting, 20(1):1527, 2004.
ALVIM, L. G. M., VILELA, P., MOTTA, E. e L., M. R.
News: A Natural Language Processing Approach.
Sentiment of Financial
Em in Psychology, 2010,
Buenos Aires. 1st Workshop on Natural Language Processing Tools Applied to Discourse
Analysis in Psychology, 2010.
Estratégias de Negociação de Ativos Financeiros Utilizando
Agendamento por Intervalos Ponderados. Tese de Doutorado, Pontifícia Univer-
ALVIM, L. G. M.
sidade Católica do Rio de Janeiro - PUC-RJ, 2013.
ALVIM, L. G. M., MILIDIÚ, R. L. e DOS SANTOS, C. N. Daily volume forecasting
using high-frequency predictors. IASTED International Conference on Articial
Intelligence and Applications, 2, 2010.
Forecasting stock performance in indian
market using multinomial logistic regression. Journal of Business Studies Quar-
ARUN, U., GAUTAM, B. e AVIJAN, D.
tely, 2012.
Surveying stock market forecasting techniques - part ii: Soft computing methods. Expert Systems with Applications, 36
ATSALAKIS, G. S. e VALAVANIS, K. P.
(3):59325941, 2009.
BEZERRA, E., DE LIMA, L. S. e ATTIAS, T. Uma
Aplicação da teoria de grafos em
redes complexas: estudo de caso do mercado de ações da Bovespa. Technical
report, CEFET, 2009.
BITTENCOURT, G. Inteligência articial:
UFSC, 2006. editor:ed., Florianópolis: Ed.
ferramentas e teorias. 3a edição.
da
CHANG, CHIH-CHUNG e CHIH-JEN, L. LIBSVM: A library for support vector
machines. ACM Transactions on Intelligent Systems and Technology, 2:127, 2011.
Software available at http://www.csie.ntu.edu.tw/ cjlin/libsvm.
107
A neural network
with a case based dynamic window for stock trading prediction. Expert Sys-
CHANG, P.-C., LIU, C.-H., LIN, J.-L., FAN, C.-Y. e NG, C. S. P.
tems with Applications, págs. 363, 2009.
CHOUDHRY, R. e GARG, K. A hybrid machine learning system for stock market
forecasting. WASET -Proceedings of World Academy of Science, Engineering and
Technology, 39, 2005.
Classication and prediction of stock performance using logistic regression: An empirical examination from indian stock market: Redening business horizons. McMillan Advanced Research Series, págs. p.4662,
DUTTA, A. E. A.
2008.
Prediction of assets behavior in nancial series
using machine learning algorithms. International Journal of Advanced Research
ESTEVES, D. N. e DUARTE, J. C.
in Articial Intelligence, Volume 2, Issue, 11:4652, 2013.
FACELI, K., LORENA, A. C., GAMA, J. e DE CARVALHO, A. C. P. L. F. Inteligência
Articial - Uma Abordagem de Aprendizado de Máquina. LTC, 2011.
FAMA.
Framework
de
Aprendizado
de
Máquina.
https://code.google.com/p/fama/. Framework IME, Janeiro 2012.
FAWCETT, T. An
861874, 2005.
URL
introduction to roc analysis. Pattern Recognition Letters,
27:
GOMIDE, P. T. A System for Stock Market Forecasting and Simulation. Dissertação de Mestrado, Pontícia Universidade Católica do Rio de Janeiro - PUC-RJ,
2011.
GRANGER, C. W.
Forecasting stock market prices: Lessons for forecasters.
International Journal of Forecasting, 8(1):313, 1992. Elsevier.
HAN, S. e CHEN, R.-C. Using svm with nancial statement analysis for prediction
of stocks. Communications of the IIMA, 7:6372, 2007.
HSU, C.-W., CHANG, C.-C. e LIN, C.-J. A Practical Guide to Support
Classication. Technical report, National Taiwan University, 2010.
Vector
HUANG, W., NAKAMORI, Y. e WANG, S.-Y. Forecasting stock market movement
direction with support vector machine. Comput. Oper. Res, 32:25132522, 2005.
Stock price forecasting using
support vector machines and improved particle swarm optimization. Journal
KARAZMODEH, M., NASIRI, S. e HASHEMI, S. M.
of Automation and Control Engineering, 1(2), March 2013.
KIM, K.
Financial time series forecasting using support vector machines. Neu-
rocomputing, 55:307319, 2003.
108
A study of cross-validation and bootstrap for accuracy estimation
and model selection. International joint Conference on articial intelligence, 14:
KOHAVI, R.
11371145, 1995.
MANCUSO, A. C. B. e WERNER, L.
Review of combining forecasts approaches.
Independent Journal of Management & Production, 4(1):248277, 2013.
MARTINEZ, L. C., DA HORA, D. N., PALOTTI, J. R. M., PAPPA, G. L. e JR, W. M.
From na articial neural network to a stock market day-trading system: A
case study on the bm&f bovespa. Em The 2009 International Joint Conference on
Neural Networks, 2009.
MCCALLUM,
models
for
A.
e
naive
NIGAM,
bayes
K.
text
A comparison of
classication, 1998.
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1529.
MICHIE, SPIEGELHALTER, D. J. e TAYLOR, C. C. Machine learning
and statistical classication. Ellis Horwood, págs. 616, 1994.
event
URL
and neural
MITCHELL, T. M. Machine Learning. McGraw-Hill Science/Engineering/Math; 1
edition (March 1, 1997), 1997.
Conceitos sobre aprendizado de
máquina in: Sistemas inteligentes fundamentos e aplicações. 1.ed. Barueri-
MONARD, M. C. e REZENDE, B. J. A. S. O.
SP: Manole Ltda, 2003(1):89114, 2003.
PHICHHANG. Prediction of stock market index movement
techniques. Modern Applied Science, 3:2842, 2009.
PRATI, R. C., BATISTA, G. E. A. P. A. e MONARD, M. C.
de classicadores. IEEE América Latina, 6(2), 2008.
by ten data mining
Curvas roc para avaliação
RAMA, K. B., BANGARI, K. S. e CHANDRAGIRI, P. S. Financial news classication
using support vector machines. International Journal of Scientic and Research
Publications, 2, 2012.
ROSILLO, R., DE LA FUENTE, D. e BRUGOS, J. A. L. Forecasting S&P500 Index
Movement with Support Vector Machines. Technical report, University of Oviedo,
2011.
ROSILLO, R., GINER, J., PUENTE, J. e PONTE, B. Dierent stock market models
using support vector machines. International Journal of Trade, Economics and
Finance, 4:310313, 2013.
RUSSELL, S. e NORVIG, P.
Pearson, 2010.
Articial Intelligence: a modern approach, volume 3.
A comparison of time series forecasting
using support vector machine and articial neural network model. Journal of
SAMSUDIN, R., SHABRI, A. e SAAD, P.
Applied Sciences, 10:950958, 2010.
109
SCHÖLKOPF, B., SMOLA, A., WILLIAMSON, R. e BARTLETT, P. L.
vector algorithms. Neural Computation, 12:12071245, 2000.
SHEN, S., JIANG, H. e ZHANG, T. Stock market forecasting using
ing algorithms. Technical report, Stanford Institution, 2012.
New support
machine learn-
TAY, F. E. e CAO, L. Application of support vector machines in nancial time
series forecasting. The International Journal of Management Science, 29:309317,
2001a.
TAY, F. E. e CAO, L.
Financial forecasting using support vector machines. Neural
Computing & Applications, 10:184192, 2001b.
Support vector machine with adaptive parameters in nancial time series forecasting. IEEE TRANSACTIONS ON NEURAL NETWORKS,
TAY, F. E. e CAO, L.
14:15061518, 2003.
TAY, F. E. e CAO, L. Modied support vector machines
forecasting. Neurocomputing, 48:847861, 2002.
THOMASON, M.
in nancial time series
The practitioner methods and tool. Journal of Computational
Intelligence in Finance, 7:3645, 1999.
TOUSSAINT.
Bibliography on estimation of misclassication. IEEE Transactions
on Information Theory, 20:472479, 1974.
An empirical methodology for developing stockmarket trading systems using articial neural networks. Expert Systems with
VANSTONE, B. e FINNIE, G.
Applications, 2008.
VAPNIK, V.
Statistical Learning Theory.
VAPNIK, V. e CORTES, C.
1995. 273297.
Wiley, 1998.
Support-vector networks. Machine Learning, pág. pages,
Market index and stock price direction prediction
using machine learning techniques - an empirical study on the kospi and
hsi. ScienceDirect, 00:113, 2013.
WANG, Y. e CHOI, I.-C.
A svm approach in forecasting the moving direction of chinese stock indices theses and dissertations. Theses and Dissertations, pág. 1098,
ZHONGYUAN, W.
2012.
110
8 ANEXOS
111
8.1
CODIGOS
Abaixo lista de scripts de banco de dados com tabelas utilizadas no experimento:
CREATE TABLE [ dbo ] . [ c o t a c o e s ] (
[ ID ] [ numeric ] ( 1 8 , 0 ) IDENTITY ( 1 , 1 ) NOT NULL,
[ TIPREG ] [ v a r c h a r ] ( 2 ) NULL,
[DATA] [ d a t e ] NULL,
[CODBDI] [ v a r c h a r ] ( 2 ) NULL,
[CODNEG] [ v a r c h a r ] ( 1 2 ) NULL,
[TPMERC] [ v a r c h a r ] ( 3 ) NULL,
[NOMRES] [ v a r c h a r ] ( 1 2 ) NULL,
[ ESPECI ] [ v a r c h a r ] ( 5 0 ) NULL,
[PRAZOT] [ v a r c h a r ] ( 3 ) NULL,
[MODREF] [ v a r c h a r ] ( 4 ) NULL,
[PREABE] [ v a r c h a r ] ( 1 3 ) NULL,
[PREMAX] [ v a r c h a r ] ( 1 3 ) NULL,
[PREMIN] [ v a r c h a r ] ( 1 3 ) NULL,
[PREMED] [ v a r c h a r ] ( 1 3 ) NULL,
[PREULT] [ v a r c h a r ] ( 1 3 ) NULL,
[PREOFC] [ v a r c h a r ] ( 1 3 ) NULL,
[PREOFV] [ v a r c h a r ] ( 1 3 ) NULL,
[TOTNEG] [ v a r c h a r ] ( 5 ) NULL,
[QUATOT] [ v a r c h a r ] ( 1 8 ) NULL,
[VOLTOT] [ v a r c h a r ] ( 1 8 ) NULL,
[PREEXE] [ v a r c h a r ] ( 1 3 ) NULL,
[INDOPC] [ v a r c h a r ] ( 1 ) NULL,
[DATVEN] [ v a r c h a r ] ( 8 ) NULL,
[FATCOT] [ v a r c h a r ] ( 7 ) NULL,
[PTOEXE] [ v a r c h a r ] ( 1 3 ) NULL,
[ CODISI ] [ v a r c h a r ] ( 1 2 ) NULL,
[ DISMES ] [ v a r c h a r ] ( 3 ) NULL,
112
CONSTRAINT [ PK_cotacoes ] PRIMARY KEY CLUSTERED
(
[ ID ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Listing 8.1: criacao da tabela 1
CREATE TABLE [ dbo ] . [ e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n ] (
[ i d ] [ i n t ] IDENTITY ( 1 , 1 ) NOT NULL,
[ execution_group_id ] [ i n t ] NOT NULL,
[ d e s c r i p t i o n ] [ v a r c h a r ] ( 4 0 0 0 ) NOT NULL,
CONSTRAINT [ PK_execution_group_user_description ]
PRIMARY KEY CLUSTERED ( [ i d ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N'FK t o r e s u l t s ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' ,
@level1name=N' e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n ' ,
@ l e v e l 2 t y p e=N'COLUMN' ,
@level2name=N' execution_group_id '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' some t e x t u a l d e s c r i p t i o n from u s e r
o f e x e c u t i o n group id ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' ,
113
@level1name=N' e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n ' ,
@ l e v e l 2 t y p e=N'COLUMN' ,
@level2name=N' d e s c r i p t i o n '
GO
Listing 8.2: criacao da tabela 1
CREATE TABLE [ dbo ] . [ i b o v e s p a ] (
[ i d ] [ i n t ] IDENTITY ( 1 , 1 ) NOT NULL,
[ data ] [ d a t e ] NOT NULL,
[ c o t a c a o ] [ f l o a t ] NULL,
CONSTRAINT [ PK_ibovespa2 ] PRIMARY KEY CLUSTERED
(
[ i d ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [ dbo ] . [ i b o v e s p a ] ADD
[ DF_ibovespa2_cotacao ]
CONSTRAINT
DEFAULT ( ( 0 ) ) FOR [ c o t a c a o ]
GO
Listing 8.3: criacao da tabela 1
CREATE TABLE [ dbo ] . [ r e l e a s e s ] (
[ i d ] [ i n t ] IDENTITY ( 1 , 1 ) NOT NULL,
[ d e s c r i p t i o n ] [ v a r c h a r ] ( 5 0 0 ) NOT NULL,
[ d a t e t i m e ] [ d a t e t i m e ] NOT NULL,
CONSTRAINT [ PK_releases ] PRIMARY KEY CLUSTERED
(
[ i d ] ASC
114
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [ dbo ] . [ r e l e a s e s ]
ADD CONSTRAINT [ DF_releases_datetime ]
DEFAULT ( g e t d a t e ( ) ) FOR [ d a t e t i m e ]
GO
Listing 8.4: criacao da tabela 1
CREATE TABLE [ dbo ] . [ r e s u l t s ] (
[ i d ] [ numeric ] ( 1 8 , 0 ) IDENTITY ( 1 , 1 ) NOT NULL,
[ window ] [ s m a l l i n t ] NOT NULL,
[ a s s e t _ c o d e ] [ v a r c h a r ] ( 1 0 ) NOT NULL,
[ s t a r t _ p e r i o d ] [ d a t e ] NOT NULL,
[ end_period ] [ d a t e ] NULL,
[ out_bls ] [ f l o a t ] NULL,
[ out_svm ] [ f l o a t ] NULL,
[ out_svm_exp1 ] [ f l o a t ] NULL,
[ out_svm_exp2 ] [ f l o a t ] NULL,
[ out_svm_exp3 ] [ f l o a t ] NULL,
[ out_nb ] [ f l o a t ] NULL,
[ out_nb_exp1 ] [ f l o a t ] NULL,
[ out_nb_exp2 ] [ f l o a t ] NULL,
[ out_nb_exp3 ] [ f l o a t ] NULL,
[ o u t _ l r ] [ f l o a t ] NULL,
[ out_lr_exp1 ] [ f l o a t ] NULL,
[ out_lr_exp2 ] [ f l o a t ] NULL,
[ out_lr_exp3 ] [ f l o a t ] NULL,
115
[ param_sys_fold_exp1 ] [ s m a l l i n t ] NULL,
[ param_sys_size_sliding_window_exp2 ] [ s m a l l i n t ] NULL,
[ param_sys_perc_train_exp3 ] [ f l o a t ] NULL,
[ param_sys_att_high ] [ f l o a t ] NULL,
[ param_sys_att_low ] [ f l o a t ] NULL,
[ param_sys_att_open ] [ f l o a t ] NULL,
[ param_sys_att_close ] [ f l o a t ] NULL,
[ param_sys_att_tot_volume ] [ f l o a t ] NULL,
[ param_sys_adjustment_factor ] [ f l o a t ] NULL,
[ param_sys_adjustment_factor_perc ] [ f l o a t ] NULL,
[ param1_lr ] [ v a r c h a r ] ( 4 5 ) NULL,
[ param2_lr ] [ v a r c h a r ] ( 4 5 ) NULL,
[ param3_lr ] [ v a r c h a r ] ( 4 5 ) NULL,
[ param1_svm_type ] [ s m a l l i n t ] NULL,
[ param2_svm_kernel ] [ s m a l l i n t ] NULL,
[ param3_svm_degree ] [ f l o a t ] NULL,
[ param4_svm_gamma ] [ f l o a t ] NULL,
[ param5_svm_coef0 ] [ f l o a t ] NULL,
[ param6_svm_C ] [ f l o a t ] NULL,
[ param7_svm_nu ] [ f l o a t ] NULL,
[ param8_svm_p ] [ f l o a t ] NULL,
[ param9_svm_cache_size ] [ f l o a t ] NULL,
[ param10_svm_eps ] [ f l o a t ] NULL,
[ param11_svm_shrinking ] [ f l o a t ] NULL,
[ param12_svm_probability ] [ f l o a t ] NULL,
[ param13_svm_nr_weight ] [ f l o a t ] NULL,
[ s e r i e _ t o t a l _ l e n g h t ] [ i n t ] NULL,
[ v e r s i o n ] [ i n t ] NOT NULL,
[ p r o c e s s i n g _ d a t e ] [ d a t e ] NOT NULL,
[ execution_group_id ] [ i n t ] NOT NULL,
[ s e r i e _ f i n a l _ l e n g h t ] [ i n t ] NULL,
[ r e c o r d s _ u s e d _ a d j u s t m e n t _ f a c t o r ] [ i n t ] NULL,
116
[ out_svm_exp1_description ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ out_svm_exp2_description ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ o u t _ l r _ e x p 1 _ d e s c r i p t i o n ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ o u t _ l r _ e x p 2 _ d e s c r i p t i o n ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ out_nb_exp1_description ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ out_nb_exp2_description ] [ v a r c h a r ] ( 4 0 0 0 ) NULL,
[ s c a l e d _ d a t a ] [ i n t ] NULL,
[ tot_occurrences_train_C0 ] [ i n t ] NULL,
[ tot_hits_C0_svm ] [ i n t ] NULL,
[ tot_occurrences_train_C1 ] [ i n t ] NULL,
[ tot_hits_C1_svm ] [ i n t ] NULL,
[ tot_hits_C0_rl ] [ i n t ] NULL,
[ tot_hits_C1_rl ] [ i n t ] NULL,
[ tot_hits_C0_nb ] [ i n t ] NULL,
[ tot_hits_C1_nb ] [ i n t ] NULL,
[ tot_occurrences_test_C0 ] [ i n t ] NULL,
[ tot_occurrences_test_C1 ] [ i n t ] NULL,
[ tot_occurrences_test1_C0 ] [ i n t ] NULL,
[ tot_occurrences_test1_C1 ] [ i n t ] NULL,
[ tot_occurrences_test3_C0 ] [ i n t ] NULL,
[ tot_occurrences_test3_C1 ] [ i n t ] NULL,
[ tot_hits1_C0_svm ] [ i n t ] NULL,
[ tot_hits1_C1_svm ] [ i n t ] NULL,
[ tot_hits1_C0_rl ] [ i n t ] NULL,
[ tot_hits1_C1_rl ] [ i n t ] NULL,
[ tot_hits1_C0_nb ] [ i n t ] NULL,
[ tot_hits1_C1_nb ] [ i n t ] NULL,
[ tot_hits3_C0_svm ] [ i n t ] NULL,
[ tot_hits3_C1_svm ] [ i n t ] NULL,
[ tot_hits3_C0_rl ] [ i n t ] NULL,
[ tot_hits3_C1_rl ] [ i n t ] NULL,
[ tot_hits3_C0_nb ] [ i n t ] NULL,
117
[ tot_hits3_C1_nb ] [ i n t ] NULL,
CONSTRAINT [ PK_results ] PRIMARY KEY CLUSTERED
(
[ i d ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
ADD
CONSTRAINT [ DF_Table_1_dt_inicio ]
DEFAULT ( g e t d a t e ( ) ) FOR [ s t a r t _ p e r i o d ]
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
ADD
CONSTRAINT [ DF_Table_1_cenario ]
DEFAULT ( ( 0 . 1 ) ) FOR [ v e r s i o n ]
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
ADD
CONSTRAINT [ DF_Table_1_data_processamento ]
DEFAULT ( g e t d a t e ( ) ) FOR [ p r o c e s s i n g _ d a t e ]
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
ADD
WITH CHECK
CONSTRAINT [ F K _ r e s u l t s _ e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n ]
FOREIGN KEY( [ execution_group_id ] )
REFERENCES [ dbo ] . [ e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n ] ( [ i d ] )
GO
118
ALTER TABLE [ dbo ] . [ r e s u l t s ]
CHECK CONSTRAINT [ F K _ r e s u l t s _ e x e c u t i o n _ g r o u p _ u s e r _ d e s c r i p t i o n
]
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
ADD
WITH CHECK
CONSTRAINT [ F K _ r e s u l t s _ r e l e a s e s ] FOREIGN KEY( [ v e r s i o n ] )
REFERENCES [ dbo ] . [ r e l e a s e s ] ( [ i d ] )
GO
ALTER TABLE [ dbo ] . [ r e s u l t s ]
CHECK CONSTRAINT [ F K _ r e s u l t s _ r e l e a s e s ]
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' data de i n i c i o do p e r i o d o t e s t a d o ' ,
@ l e v e l 0 t y p e=N'SCHEMA' , @level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE
',
@level1name=N' r e s u l t s ' ,
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' s t a r t _ p e r i o d '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' data fim do p e r i o d o t e s t a d o ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' ,
@level1name=N' r e s u l t s ' , @ l e v e l 2 t y p e=N'COLUMN' ,
@level2name=N' end_period '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' c o n t r o l s o f t w a r e v e r s i o n v a r i a b l e ' ,
@ l e v e l 0 t y p e=N'SCHEMA' , @level0name=N' dbo ' ,
119
@ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s ' ,
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' v e r s i o n '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' s e t t h e i d f o r e x e c u t i o n group by time :
i . e : program e x e c u t i o n s t a r t s a t 05 − 10 − 2013 1 1 : 5 6 s e t
t h i s execution_group_id = old_execution_group_id + 1 ' ,
@ l e v e l 0 t y p e=N'SCHEMA' , @level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE
',
@level1name=N' r e s u l t s ' , @ l e v e l 2 t y p e=N'COLUMN' ,
@level2name=N' execution_group_id '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' 1 − min−max
2 − p a d r o n i z a c a o ' , @ l e v e l 0 t y p e=N'SCHEMA' , @level0name=N' dbo ' ,
@ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s ' ,
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' scaled_data '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' ,
@level1name=N' r e s u l t s ' , @ l e v e l 2 t y p e=N'COLUMN' ,
@level2name=N' tot_hits_C0_svm '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' ,
@level1name=N' r e s u l t s ' , @ l e v e l 2 t y p e=N'COLUMN' ,
120
@level2name=N' tot_hits_C1_svm '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N'
results ' ,
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits_C0_rl '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits_C1_rl '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits_C0_nb '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits_C1_nb '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
121
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits1_C0_rl '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits1_C1_rl '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits1_C0_nb '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits1_C1_nb '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits3_C0_rl '
122
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits3_C1_rl '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits3_C0_nb '
GO
EXEC s y s . sp_addextendedproperty @name=N' MS_Description ' ,
@value=N' f o r t r a i n n i n g ' , @ l e v e l 0 t y p e=N'SCHEMA' ,
@level0name=N' dbo ' , @ l e v e l 1 t y p e=N'TABLE' , @level1name=N' r e s u l t s
',
@ l e v e l 2 t y p e=N'COLUMN' , @level2name=N' tot_hits3_C1_nb '
GO
Listing 8.5: criacao da tabela 1
123
Download

Predição de Tendência de Ativos em Séries Financeiras Utilizando