• Nenhum resultado encontrado

Máquina de Aprendizagem e Parâmetros Utilizados

3.4 Correlação das Variáveis com o Sucesso dos Filmes

4.1.5 Máquina de Aprendizagem e Parâmetros Utilizados

Muitos testes foram realizados para se chegar ao modelo final proposto, seja na alteração da seleção das variáveis preditoras, na alteração dos parâmetros da máquina de aprendizagem ou na escolha da própria máquina de aprendizagem. No que se refere ao último quesito, a Figura 4.3 apresenta o desempenho de quatro técnicas diferentes tanto sob a métrica Bingo quanto 1-away. Foram comparadas com as técnicas: Redes Neurais Multi Layer Perceptron (MLP) (WERBOS, 1974), Regressão Linear Multivariável (RENCHER, 2003), SVM (CORTES; VAPNIK, 1995) e Random Forest (BREIMAN, 2001). RNA foi testada utilizando 1 camada escondida com 15 neurônios, Resilient backpropagation (RIEDMILLER; BRAUN, 1993) como algoritmo de treinamento, e a performance foi medida com crossentropy (RUBINSTEIN; KROESE, 2013). SVM foi adaptado para realizar aprendizagem de multiclasses através do processo descrito por Allwein et al. (2001). Nos testes com regressão linear não houve parâmetro a ser ajustado. Como regressão retorna os valores estimados de bilheteria, estes foram convertidos em classes para realizar a comparação de performance com os demais métodos. E Random Forest obteve os melhores resultados em ambas as métricas e, por isso, seus parâmetros serão explicados mais adiante. Por conta do seu melhor desempenho, que não foi só encontrado nos testes do modelo proposto, mas de todos testados, ela foi escolhida como a máquina de aprendizagem responsável pela predição de bilheterias de filmes.

Random Forestfoi proposto por Breiman em 2001 na publicação de Breiman (2001) e, nela, ele propôs evoluir a aprendizagem por árvores de decisão treinando um conjunto delas, ao

4.1. MODELO PROPOSTO 75

Figura 4.3: Comparação de performance de diferentes métodos de aprendizagem de máquina.

(a) (b)

FLORENCIO (2016)

invés de apenas uma. Essa evolução é proposta porque contextos em que os padrões são muito irregulares, a ávore de decisão tende a crescer muito em profundidade. Como consequência, o modelo começa a a sofrer overfitting (HAWKINS, 2004), ou seja, uma super assimilação da base de treinamento e, com isso, acaba tendo uma taxa de acerto com alta variância quando submetido à bases diferentes da qual o modelo foi treinado. Para evitar essa perda de capacidade de generalização, o algoritmo de aprendizagem Random Forest submete a base de treinamento a várias árvores de decisão. Cada uma é treinada com um sub-conjunto de amostras da base, que pode ser um sub-conjunto único ou com repetição, no caso de se permitir que o sub-conjunto volte para a base original e seus elementos possam ser selecionados novamente por outras árvores de decisão. Esse processo é chamado de bootstrap aggregating ou bagging quando usado com árvores de decisão (BREIMAN, 1996).

Para o algoritmo ser considerado Random Forest um procedimento é adicionado ao processo de bagging (BREIMAN, 2001). No lugar de submeter as mesmas variáveis para todas as árvores de decisão, apenas um sub-conjunto aleatório das variáveis preditoras são utilizadas. Isso estimula que cada árvore de decisão se “especialize” em um sub-conjunto e, com isso, sejam pouco correlacionadas com as demais, aumentando a riqueza de aprendizagem do modelo como um todo. Caso as árvores fossem treinandas com o mesmo conjunto de amostras e com as mesmas variáveis, as árvores teriam as mesmas características e em nada acrescentariam ao modelo.

Após o treinamento, testes com amostras que ainda não foram analisadas pelo preditor podem ser submetidas ao modelo a fim testar a sua aptidão. O processo de decisão que define a qual classe a amostra pertence é determinado da seguinte forma: 1. Cada árvore preditora irá processar a amostra e retornar a classe prevista; 2. A classe que for prevista pelo maior número de árvores será a classe escolhida pelo modelo.

4.1. MODELO PROPOSTO 76 Algoritmo 4.1: Algoritmo de treinamento Random Forest.

Data: numArvores /* Número de árvores para treino */ , f r /* Fração de reposição das amostras */ , np /* Número de preditores selecionados */ , baseTreino

Result: f orest f orest= ListaVazia; for i in numArvores do

varSet= GetVariaveis(np);

/* Seleciona aleatoriamente np variáveis */ treinoSet = SelecionarAmostras(baseTreino);

/* Seleciona aleatoriamente um cojunto de amostras

para treinamento */

ReporAmostras( f r, treinoSet);

/* Repõe f r porcentos das amostras ao conjunto

original */

arvore= CriarArvoreDecisao(); Treinar(arvore, treinoSet, varSet);

f orest.Add(arvore); end

return forest;

Ciente do processo de aprendizagem e decisão do Random Forest, agora é possível definir os parâmetros dele de forma que possam se aderir ao máximo ao problema tratado. Cinco parâmetros são ajustáveis no Matlab (versão 2015a) para execução algoritmo, são eles: BaggedTreesSize, SampleWithReplacement, InBagFraction, Method e NumPredictorsToSample. Dentre eles, apenas o parâmetro BaggedTreesSize foi alterado em relação ao valor padrão para adequar o método ao tipo de problema tratado. Os demais foram mantidos os valores padrões. A Tabela 4.8 mostra os valores de cada um, e a seguir serão comentados cada um deles.

BaggedTreesSizerepresenta o número de árvores de decisão que o modelo é treinado. Normalmente, algumas centenas de árvores são utilizadas dependendo do tipo de problema tratado. O número ótimo de árvores é aquela quantidade que atinge o valor mínimo do erro médio de predição que as amostras de validação tiveram quando submetidas às árvores que não analisaram a amostra no seu conjunto de treinamento (out-of-bag error). O valor padrão de execução do Random Forest é de 50 árvores. Porém, essa quantidade não é suficiente para o modelo atingir o nível de erro mínimo. Utilizar 150 árvores, apesar de aumentar o tempo de execução, permitiu que o modelo atingisse mínimo de erro médio de predição para todos os testes realizados. O tempo de treinamento não ultrapassou o valor de 1 minuto.

InBagFraction representa a fração das amostras que serão repostas ao conjunto de treinamento após serem utilizadas para treinamento de alguma árvore de decisão. Isso significa que outras árvores podem repetir os dados de uma ou mais árvores. O valor utilizado para este parâmetro é 1, que significa que todas as amostras serão respostas ao conjunto original. Esse

4.1. MODELO PROPOSTO 77

Tabela 4.8: Parâmetros para encontrar o melhor padrão que define o comportamento da bilheteria de um filme Parâmetros Definidos Parâmetro Valor BaggedTreesSize 150 SampleWithReplacement on InBagFraction 1 Method classification

NumPredictorsToSample √n, onde n é o número de preditores MinLeafSize 1

parâmetro está diretamente relacionado ao SampleWithReplacement, pois é o que permite as amostras serem respostas ou não. O valor foi ajustado para “on"de forma que permita reposição das amostras selecionadas.

NumPredictorsToSamplerefere-se ao número de variáveis preditoras que serão seleci- onadas para cada árvore de decisão. Caso o valor fosse ajustado um valor igual ao número de variáveis o algoritmo não seria considerado Random Forest, mas sim, Tree Bagger. O valor selecionado para este parâmetro é a raiz quadrada do número total de variáveis. Como são 18 variáveis preditoras, cada árvore decisora irá selecionar 4 variáveis para treinar o modelo.

78 78 78

5

Experimentos e Resultados

Neste capítulo são descritos os experimentos realizados com modelo proposto. São abordadas as metodologias que guiam os testes comparativos, as técnicas que comparadas com o modelo proposto e como que elas são replicadas para viabilizar a comparação na mesma base e os resultados. Por fim, uma análise é realizada dos resultados, em que são apontadas as principais contribuições do modelo proposto.

5.1

Descrição dos Experimentos

Com o modelo formalmente descrito no capítulo anterior, o objetivo volta-se agora a testá-lo, medi-lo e compará-lo com outros modelos. Nesta seção descrevemos o processo realizado e a metodologia adotada para se alcançar os resultados obtidos.

Todos os experimentos são realizados utilizando o Matlab com o uso das toolboxes: Neural Network Toolbox, Optimization Toolbox, Curve Fitting Toolbox, Global Optimization Toolbox, e Statistics and Machine Learning Toolbox.