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