SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Universidade de Brasília 
Campus Darcy Ribeiro 
Trabalho Complementar da Disciplina Inteligência Artificial 
Rede Neural Supervisionada Multicamadas – Árvore de decisão 
plataforma WEKA 
Li Weingang 
Professor Orientador - Depto CIC/UnB - weigang@unb.br 
Cesar do Amaral 
Aluno Especial - CIC/UnB - amaral12342012@hotmail.com 
José Maria Celestino de Lima 
Mestrando PPMEC/ UnB - onitcales@gmail.com 
Luiz Eduardo Santos de Oliveira 
Mestrando PPMEC/ UnB - luizeduardo.ufs@gmail.com
Resumo 
Aprendizagem supervisionada e aquela que utiliza dados com a classe especificada a instancia, contem 
um atributo classe que especifica a qual classe ela pertence. Existem diversos métodos de mineração que 
trabalham com este tipo de aprendizado. A rede neural supervisionada chamada Perceptron multicamadas 
MLP- multilayerpercetron utiliza métodos derivados do gradiente nos ajustes de seus pesos por retro 
propagação (Back-Propagation). Esta rede consiste de uma camada de entrada, uma ou mais camadas 
escondidas e uma ou mais camadas de saída. Um sinal de entrada é propagado, de camada em camada, da 
entrada para a saída, esta saída propaga-se em caminho reverso da saída para entrada alterando os pesos, 
para uma nova validação. Estágios da aprendizagem por retro propagação do erro: Passo para frente: 
Estímulo aplicado à entrada é propagado para frente até produzir resposta da rede. Passo para trás: O sinal 
de erro da saída é propagado da saída para a entrada para ajuste dos pesos sinápticos .
Introdução 
Aprendizagem supervisionada e aquela que utiliza dados com a classe especificada a instancia , 
contem um atributo classe que especifica a qual classe ela pertence. Existem diversos métodos de 
mineração que trabalham com este tipo de aprendizado. 
A rede neural supervisionada chamada Perceptron multicamadas MLP- multilayer percetron [1] 
utiliza métodos derivados do gradiente no ajustes de seus pesos por retro propagação (Back-Propagation). 
Esta rede consiste de uma camada de entrada, uma ou mais camadas escondidas e uma ou mais camadas 
de saída. Um sinal de entrada é propagado, de camada em camada, da entrada para a saída, esta saída 
propaga-se em caminho reverso da saída para entrada alterando os pes os, para uma nova validação. 
Estágios da aprendizagem por retro propagação do erro: 
– Passo para frente: Estímulo aplicado à entrada é propagado para frente até produzir resposta da rede. 
– Passo para trás: O sinal de erro da saída é propagado da saída para a entrada para ajuste dos pesos 
sinápticos. 
O algoritmo (Back-Propagation [2]) é baseado no método gradiente descendente, que computa 
as derivadas parciais de uma função de erro, com relação ao vetor peso W de um vetor de entradas X. O 
treinamento da rede é dividido em duas fases principais: avante (forward) e retorno (backward). A 
primeira etapa (forward) consiste na propagação dos estímulos apresentados da entrada para a saída. 
Esses estímulos fluem por toda a rede oculta, camada por camada até gerarem a saída. A partir do 
resultado desejado (target), calcula-se o erro na camada de saída. A segunda etapa (backward) ocorre em 
sentido contrário, onde o erro calculado é retropropagado pelas camadas antecessoras, atualizando os 
pesos das conexões, produzindo novas saídas . 
A MLP [1], apresenta varias características importantes dentre elas destacamos as seguintes : 
Cada unidade de processamento tem função de ativação logística (forma sigmoidal) que é não-linear, 
suave, diferençável e continua em todo o intervalo dados considerado. 
Existência de pelo menos uma camada escondida que possibilita aprendizagem de tarefas 
complexas por extração progressiva de características relevantes dos padrões de entrada. A existência de 
mais camadas deve ser criteriosa escolhida visto que pode resulta em convergência mínima locais sem 
saída consistente com resultados utilizáveis. 
O grau de conectividade é alto. 
Parâmetros a serem considerados em uma Rede Neural Artificial RNA [2]. 
Uma Rede Neural Artificial [2] do tipo Múltiplas Camadas com algoritmo de Retro propagação 
(Back-Propagation [3]), necessita de vários parâmetros devem ser considerados: número de camadas de 
neurônios, número de neurônios em cada camada, taxa de aprendizagem. Uma Rede Neural deve conter 
no mínimo duas camadas de neurônios uma camada que se destina à entrada dos dados e outra que se 
destina à saída dos resultados. Este tipo de rede apresenta uma utilidade muito limitada. 
O aumento do número de camadas de neurônios melhora o desempenho das redes neurais. Sua 
capacidade de aprendizado aumenta o que se traduz na melhoria da precisão com que ela delimita as 
regiões de decisão (GORNI, 1993) [1]. Existe a necessidade de pelo menos uma camada oculta na Rede 
Neural, mas não há determinação de qual numero ideal de camadas ocultas necessárias para o sistema. 
Entretanto, a taxa de aprendizagem deve ser uma variável importante nas considerações do tempo de 
aprendizagem desejado. 
Na camada de entrada deve existir um número de neurônios igual ao número de variáveis a 
serem fornecidos à rede. Eventualmente, uma variável de entrada pode ser subdividida para vários 
neurônios, segundo um esquema binário, o que pode melhorar o desempenho. 
A camada de saída deve conter um número de neurônios igual ao número de variáveis que se 
deseja calcular. No caso de modelos classificatórios, pode-se utilizar um neurônio para cada item de 
classificação ou utilizar uma representação mais compacta, pode ser empregado técnicas binárias para 
diminuir o número de neurônios. O uso de representação binária na camada de saída aumenta a carga de 
trabalho da camada oculta, obrigando a um aumento do número de neurônios dessa camada ou mesmo a 
adição de uma camada oculta suplementar para que a Rede Neural mantenha o mesmo nível de 
desempenho. 
Vários autores sugerem critérios mínimos para a escolha do número de neurônios das camadas 
ocultas. Outra questão a ser tratada por ocasião da programação de uma Rede Neural diz respeito aos 
valores dos parâmetros da taxa de aprendizagem contida no algoritmo, esta taxa definida por um 
coeficiente de aprendizado, deve ser alta no início do treinamento e vá diminuindo à medida que ele 
evolui. (GORNI, 1993) [1], método que tem o propósito de proporcionar rapidez na convergência do 
treinamento, estabilidade e resistência ao aparecimento de mínimos locais.
Definição do problema - Base de Dados 
O experimento foi realizado utilizando uma base de dados de uma concessionária HONDA que 
contém quatro atributos de dados e três mil instancias. 
A concessionária está começando uma campanha promocional, está tentando desenvolver uma 
garantia estendida de dois anos para seus clientes passados. 
O presente estudo utiliza a base de dados convertida em formato de valores separados em 
vírgulas (CSV – Comma Separated Values) e estão no formato ARFF [4], compatível com o programa 
minerador de dados Weka [2]. Mesmo a base Honda possuindo quatro atributos e três mil instancias. 
Foram utilizados todos os atributos uma vez que todas estas características são relevantes para os testes. 
Atributos do conjunto de dados são: 
Faixa de renda 
Ano / mês primeiro Honda 
Ano / mês mais recente Honda 
E Se eles responderam à oferta de garantia estendida no passado. 
Para análise e quantificação presente na base de dados da concessionária Honda foi utilizado o 
processo de mineração de dados, através do software Weka [2]. 
O Weka [2] é um software desenvolvido na Universidade de Waikato na Nova Zelândia, escrito 
em linguagem Java, possui chave de licença pública e código aberto. Os dados po dem ser carregados no 
Weka utilizando o formato de Arquivo de Atributo Relação (ARFF) [5]. Nesse arquivo é definida cada 
coluna com um tipo de dado, por exemplo, numérico ou caractere, em cada linha é fornecido os dados, 
com seus respectivos tipos de dados, delimitados por vírgulas. 
Metodologia 
Definição da configuração da rede: 
Seleção da rede neural apropriada à aplicação, que tipo de rede será utilizado; 
Determinação da topologia da rede a ser utilizada - o número de camadas escondidas e o número 
de unidades em cada camada; 
Determinação dos parâmetros do algoritmo de treinamento e funções de ativação. 
Opções de visualização e configuração do WEKA 
GUI - traz uma interface GUI. Isto irá permitir uma interação mais aprimorada com opções de 
pausa e alteração da Rede Neural Artificial durante o treino. 
* Para adicionar um nó à esquerda, clique (este nó será selecionado automaticamente, tem que 
ter certeza de que não haja outros nós foram selecionados ). 
* Para selecionar um nó com o botão esquerdo sobre ele, enquanto nenhum outro nó for 
selecionado ou mantendo pressionada a tecla Control 
* Para conectar um nó, primeiro tem o nó (s) de partida selecionado, em seguida, clique em nó 
de extremidade ou em um espaço vazio (isto irá criar um novo nó que está conectado com os nós 
selecionados). O estado de seleção de nós vai ficar na mesma depois que a conexão. (Nota essas conexões 
são dirigidas, também uma conexão entre dois nós não será estabelecida mais de uma vez e certas 
conexões que são consideradas inválidas não serão feitas). 
* Para remover uma conexão, selecione um dos nó conectados e, em seguida, clique com botão 
direito do outro nó (não importa se o nó é o início ou terminar a ligação será removido). 
*Para remover um nó de clique direito, enquanto nenhum outro nó são selecionados. 
*Para cancelar a seleção de um nó para a esquerda clique nele enquanto mantém pressionado o 
controle, ou clique direito no espaço vazio. 
*As entradas matérias são fornecidos os rótulos à esquerda. 
*Os nós vermelhos são camadas ocultas. 
*Os nós de laranja são os nós de saída. 
*As etiquetas à direita mostra a classe do nó que a saída representa. 
*Alterações à rede neural só podem ser feitas enquanto a rede não está funcionando, isso 
também se aplica à taxa de aprendizagem e a outros campos no painel de controle. 
* Pode-se aceitar a rede como sendo finalizada a qualquer momento. 
* Na modelagem GUI a rede inicia-se automaticamente pausada. 
* Há uma indicação de funcionamento de que época a rede está fazendo e o que o erro (bruto) 
para a época era (ou para a validação se que está sendo usado). Note-se que este valor de erro se baseia 
numa rede que muda quando o valor é calculado. 
* Uma vez que a rede montada ele irá parar de novo e vai esperar o comando de aceito ou 
continuar com o treinado. 
Parâmetros opcionais a ser mudados 
Autobuild - Adiciona e conectam-se as camadas ocultas na rede.
Debug - Se verdadeiro, classificador pode emitir informações adicionais para o console. 
Decaimento - Isto fará com que a taxa de aprendizagem para diminuir. Isto irá dividir a taxa de 
aprendizagem começando pelo número época, para determinar que a taxa de aprendizagem atual deveria 
ser. Isto pode ajudar a parar a rede de divergentes a partir da saída de destino, bem como melhorar a 
performance geral. Note-se que a taxa de aprendizado em decomposição não será mostrado no gui, apenas 
a taxa de aprendizagem original. Se a taxa de aprendizagem é alterado no gui, esta é tratada como a taxa 
de aprendizado inicial. 
hiddenLayers - Isso define as camadas ocultas da rede neural. Esta é uma lista de números 
inteiros positivos. 1 para cada camada escondida. Separados por vírgulas. Para não têm camadas ocultas 
colocar um único 0 aqui. Isso só será utilizado se AutoBuild está definido. Há também valores curinga 'A' 
= (classes Attribs +) / 2, 'i' = attribs, aulas = 'O', = Attribs + aulas de 'T'. 
learningRate - O valor dos pesos são atualizados. 
impulso - Momentum aplicado aos pesos durante a atualização. 
nominalToBinaryFilter - o que irá pré-processar as instâncias com o filtro. Isso poderia ajudar 
a melhorar o desempenho se existem atributos nominais nos dados. 
normalizeAttributes - Isso vai normalizar os atributos. Isso poderia ajudar a melhorar o 
desempenho da rede. Este não é dependente do numérico ser classe. Isso também vai normalizar atributos 
nominais, bem como (depois de terem sido executados, através do filtro de binário nominal se que está 
em uso) de forma que os valores nominais são entre -1 e 1 
normalizeNumericClass - Isso vai normalizar a classe se é numérico. Isso poderia ajudar a 
melhorar o desempenho da rede, Normaliza a classe para estar entre -1 e 1 Note-se que este é apenas 
internamente, a saída será reduzida para a faixa original. 
redefinir - Este vai permitir que a rede de repor com uma taxa inferior a aprendizagem. Se a rede 
diverge da resposta esta irá reiniciar automaticamente a rede com uma taxa de aprendizagem mais baixo e 
começar a treinar novamente. Esta opção só está disponível se o gui não está definido. Note que se a rede 
diverge, mas não tem permissão para redefinir ele irá falhar o processo de treinamen to e retornar uma 
mensagem de erro. 
semente - semente usada para inicializar os números generator.Random números aleatórios são 
usados para definir os pesos iniciais dos nós conexões betweem, e também para embaralhar os dados de 
treinamento. 
trainingTime - O número de épocas para treinar completamente. Se o conjunto de validação é 
diferente de zero, então ele pode terminar mais cedo rede 
validationSetSize - A percentagem do tamanho do conjunto de validação (A formação irá 
continuar até que se observa que o erro no conjunto de validação foi consistentemente a piorar, ou se o 
tempo de formação é atingido).. 
Se isso for definido para zero, nenhum conjunto de validação serão utilizados e, em vez da rede vai 
treinar para o número especificado de épocas. 
validationThreshold - Usado para terminar valor testes.O validação aqui dita quantas vezes 
seguidas o erro conjunto de validação pode ficar pior antes do treino é encerrado. 
Técnica de Aprendizado 
Toda técnica de mineração passa por um processo chamado de treinamento , e nesta fase que 
ocorre a apresentação dos dados processados para o algoritmo de mineração, cujo objetivo e identificar as 
características ou padrões úteis para o processo de descoberta de conhecimento. 
Apos o aprendizado ter sido realizado, e aplicada uma avaliação, onde podemos verificar 
medidas estatísticas dos resultados alcançados. A utilização de dados inéditos fornecera medidas realistas 
sobre o desempenho do algoritmo, o conjunto deve ser dividido em dados de treinamento e de teste. 
Às vezes, e necessário dividir o conjunto de dados em 3 diferentes conjuntos: treinamento, 
validação e teste. O conjunto de validação e utilizado para ajustar valores dos parâmetros de alguns 
algoritmos e ao mesmo tempo uma boa generalização. Quando o conjunto de dados e divididos em dois, 
geralmente a divisão e de 70% do conjunto para o conjunto de treinamento e 30% para o conjunto de 
testes. Já, quando o conjunto será divido em 3 (três), usa-se a proporção 70% para treinamento, 20% para 
validação e 10% para testes. 
Árvore de Decisão 
Para a realização da mineração de dados foi utilizado o filtro Discretize para a normalização dos 
dados de entrada em um intervalo numérico. Após o filtro, foram selecionad os o algoritmo árvore de 
decisão (J48) [6] e a Rede Neural Artificial (RNA) [2] MLP Multi-Layer Perceptron (MLP) [1]. 
O algoritmo J48 [6] constrói um modelo de árvore de decisão baseado num conjunto de dados de 
treinamento, sendo que esse modelo é utilizado para classificar as instâncias de um conjunto de teste.
O algoritmo MLP Multi-Layer Perceptron [1] [4] possui aprendizado supervisionado e tem o 
objetivo calcular o erro para a camada de saída e propagar este no sentido saída -entrada 
(backpropagation), ajustando os pesos de todas as camadas, através da retro propagação do erro. 
Conjunto de dados WEKA 
O conjunto de dados que usaremos para nosso exemplo de classificação estará focado em uma 
concessionária fictícia da Honda. A concessionária está iniciando uma campanha promocional na qual 
está tentando vender uma garantia estendida de dois anos para seus clientes passados. A concessionária já 
fez isso antes e reuniu 4.500 pontos de dados de vendas antigas de garantias estendidas . Os atributos no 
conjunto de dados são: 
Colchete de renda 
Ano/mês de compra da primeira Honda 
Ano/mês de compra da Honda mais recente 
Se eles responderam à oferta de garantia estendida no passado 
Classificação da arvore de decisão 
Figura 1. Classificação de dados da concessionária HONDA no WEKA 
Para gerar a arvore de decisão do modelo foi utilizado o algoritmo J48 
Figura 2. Classificação do resultado dos dados da concessionária HONDA no WEKA
Resposta do modelo criado pelo WEKA. 
== Run information === 
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 
Relation: Honda respostas 
Instances: 3000 
Attributes: 4 
Faixa de renda 
Primeira Compra 
Ultima Compra 
Respondeu 
Test mode: evaluate on training data 
=== Classifier model (full training set) === 
J48 pruned tree 
Itens importantes para analise 
1 -"Correctly Classified Instances" (59,1 por cento) 
2 -"Incorrectly Classified Instances" (40,9 por cento). 
=== Evaluation on training set === 
Time taken to test model on training data: 0.2 seconds 
=== Summary === 
 Correctly Classified Instances 1774 59.1333 % 
 Incorrectly Classified Instances 1226 40.8667 % 
 Kappa statistic 0.1807 
 Mean absolute error 0.4773 
 Root mean squared error 0.4885 
 Relative absolute error 95.4768 % 
 Root relative squared error 97.7122 % 
Total Number of Instances 3000 
Analise dos resultados - Resultado do modelo, baseando-se em nossa taxa de exatidão de 
somente 59,1 por cento, teria que dizer que através de uma análise inicial, esse não é um modelo muito 
bom. Comparação dos n úmeros – Comparando os números dos itens 1 e 2 , "Correctly Classified 
Instances" conjunto com (55,7 por cento) e "Correctly Classified Instances" conjunto de treinamento 
(59,1 por cento), podemos perceber que a exatidão do modelo e bem próxima do ideal, podemos tira 
como conclusão que este modelo e próximo de ideal com dados desconhecidos ou quando forem 
acrescentados dados futuros nela e posteriormente aplicados. 
Confusion Matrix: e onde os número de positivos falsos e negativos falsos sao mostrados, no nosso 
modelo são positivos falsos 516 e os negativos falsos, 710 nessa matriz. 
 a b <-- classified as 
 1009 516 | a = 1 
 710 765 | b = 0 
Resposta da analise do modelo, porcentagens da resposta para montagens da arvore de decisão. 
Primeira Compra <= 200011 
| Faixa de renda = 0: 1 (271.0/114.0) 
| Faixa de renda = 1 
| | Ultima Compra <= 200512: 0 (69.0/21.0) 
| | Ultima Compra > 200512: 1 (69.0/27.0) 
| Faixa de renda = 2: 1 (194.0/84.0) 
| Faixa de renda = 3: 1 (109.0/38.0) 
| Faixa de renda = 4 
| | Ultima Compra <= 200511: 0 (54.0/22.0) 
| | Ultima Compra > 200511: 1 (105.0/40.0) 
| Faixa de renda = 5 
| | Ultima Compra <= 200505 
| | | Ultima Compra <= 200504: 0 (8.0) 
| | | Ultima Compra > 200504 
| | | | Primeira Compra <= 199712: 1 (2.0) 
| | | | Primeira Compra > 199712: 0 (3.0) 
| | Ultima Compra > 200505: 1 (185.0/78.0) 
| Faixa de renda = 6 
| | Ultima Compra <= 200507 
| | | Primeira Compra <= 199812: 0 (8.0)
| | | Primeira Compra > 199812 
| | | | Primeira Compra <= 200001: 1 (4.0/1.0) 
| | | | Primeira Compra > 200001: 0 (3.0) 
| | Ultima Compra > 200507: 1 (107.0/43.0) 
| Faixa de renda = 7: 1 (115.0/40.0) 
Primeira Compra > 200011 
| Faixa de renda = 0 
| | Primeira Compra <= 200412: 1 (297.0/135.0) 
| | Primeira Compra > 200412: 0 (113.0/41.0) 
| Faixa de renda = 1: 0 (122.0/51.0) 
| Faixa de renda = 2: 0 (196.0/79.0) 
| Faixa de renda = 3: 1 (139.0/69.0) 
| Faixa de renda = 4: 0 (221.0/98.0) 
| Faixa de renda = 5 
| | Ultima Compra <= 200512: 0 (177.0/77.0) 
| | Ultima Compra > 200512 
| | | Primeira Compra <= 200306: 0 (46.0/17.0) 
| | | Primeira Compra > 200306: 1 (88.0/30.0) 
| Faixa de renda = 6: 0 (143.0/59.0) 
| Faixa de renda = 7 
| | Ultima Compra <= 200508: 1 (34.0/11.0) 
| | Ultima Compra > 200508: 0 (118.0/51.0) 
Estrutura da arvore de decisão. 
Number of Leaves: 28 
Size of the tree: 43 
Configuração da Rede Neural Artificial RNA Utilizando o algoritmo MLP 
Avaliação do critério de parada do treinamento: 
E necessária uma avaliação de qual o critério mais adequado 
Avaliação do número de neurônios em RNAs de camada única: 
Após definição do critério de parada de treinamento deve ser avaliado o número de neurônio em 
uma rede com uma camada oculta. 
Avaliação da influência do número de camadas : 
Variando–se o número de camadas e o número de neurônio em cada uma delas percorre–se um 
espaço de soluções com o objetivo de selecionar as melhores configurações. Esta análise pode ser 
dividida em redes balanceadas, definido o número de neurônios de uma camada oculta, distribui–se este 
número pelo número total de camadas ocultas, e desbalanceadas, definido o número de neurônios de uma 
camada oculta. 
Avaliação do momento: 
Estando definido o número de camadas e o número de neurônios de cada uma avalia–se então o 
valor do momento da rede. Este parâmetro diminui a possibilidade de que a rede estabilize em mínimos 
locais. 
Avaliação da taxa de aprendizado: 
Este e o ultimo parâmetro de otimização da rede. Com este parâmetro procura–se aperfeiçoar o 
treinamento da rede, fazendo com que ela atinja de forma mais rápida o ponto de treinamento desejado. 
Para elaboração de uma rede neural artificial pode–se alterar diversas variáveis, dentre elas, o número de 
neurônios, o número de camadas, a taxa de aprendizado. Com estas variáveis temos o problema de como 
encontrar a melhor configuração que gere a rede neural com menor erro de predição. Para a solução de 
problemas desta natureza existem diversos métodos de otimização. Como não se conhecia o 
comportamento da eficiência da rede ao alterar os parâmetros da mesma, elaborou –se uma busca que 
consistia em configurar diversas redes neurais seguindo um padrão e observar o erro médio de cada 
configuração qualificando a melhor, e desta forma realizando uma busca dirigida para se encontrar uma 
solução adequada para o sistema. 
Para essa análise de sensibilidade da configuração da rede, inicialmente adotou –se uma 
configuração padrão de rede neural e a partir desta foram variados os parâmetros da mesma realizando–se 
uma busca no campo de possíveis soluções. Analisou–se a média e o desvio padrão do erro de cada 
configuração sempre selecionando em cada análise a melhor configuração e continuando o processo até 
se obter uma configuração boa.
Simulações do algoritmo MLP (Multilayerperceptron). 
Parâmetros escolhidos para o primeiro teste do modelo: 
-GUI = True 
-Camadas ocultas (hidden layers)=a 
-Taxa de Aprendizagem (learning rate) = 0,3, 
-Momentum = 0,2, 
-Épocas (training time) = 600, sigmoide para a ativação. 
Resultado: 
Figura 3 – Saída da MLP na primeira representação GUI 
=== Run information === 
Scheme: weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 600 -V 0 -S 0 -E 20 -H a -G -R 
Relation: Honda respostas 
Instances: 3000 
Attributes: 4 
Faixa de renda 
Primeira Compra 
Ultima Compra 
Respondeu 
Class 1 
Input 
Node 0 
Class 0 
Input 
Node 1 
Time taken to build model: 175.85 seconds 
=== Evaluation on training set === 
Time taken to test model on training data: 0.05 seconds 
=== Summary === 
Correctly Classified Instances 1713 57.1 % 
Incorrectly Classified Instances 1287 42.9 % 
Kappa statistic 0.1365 
Mean absolute error 0.4801 
Root mean squared error 0.4897 
Relative absolute error 96.0491 % 
Root relative squared error 97.9563 % 
Coverage of cases (0.95 level) 100 % 
Mean rel. region size (0.95 level) 100 % 
Total Number of Instances 3000 
=== Confusion Matrix === 
a b <-- classified as 
1158 367 | a = 1 
920 555 | b = 0
Parâmetros escolhidos para o segundo teste do modelo 
-GUI = True 
-Camadas ocultas (hidden layers)= 2 
-Taxa de aprendizagem (learning rate) = 0,2, 
-Momentum = 0,1, 
-Épocas = 500, sigmoide para a ativação. 
Resultado 
Figura 4 – Saída da MLP na segunda representação GUI 
=== Run information === 
Scheme:weka.classifiers.functions.MultilayerPerceptron -L 0.2 -M 0.1 -N 500 -V 0 -S 0 -E 20 -H 2 -G -R 
Relation: Honda respostas 
Instances: 3000 
Attributes: 4 
Faixa de renda 
Primeira Compra 
Ultima Compra 
Respondeu 
Test mode: evaluate on training data 
=== Classifier model (full training set) === 
Time taken to build model: 331.25 seconds 
=== Evaluation on training set === 
Time taken to test model on training data: 0.06 seconds 
=== Summary === 
Correctly Classified Instances 1706 56.8667 % 
Incorrectly Classified Instances 1294 43.1333 % 
Kappa statistic 0.1349 
Mean absolute error 0.4879 
Root mean squared error 0.4932 
Relative absolute error 97.6104 % 
Root relative squared error 98.6514 % 
Coverage of cases (0.95 level) 100 % 
Mean rel. region size (0.95 level) 100 % 
Total Number of Instances 3000 
=== Confusion Matrix === 
a b <-- classified as 
991 534 | a = 1 
760 715 | b = 0
Parâmetros escolhidos para o terceiro modelo 
-GUI = True 
-Camadas ocultas (hidden layers)= 4 
-Taxa de aprendizagem (learning rate) = 0,3, 
-Momentum = 0,2, 
-Épocas = 400, sigmoide para a ativação. 
Resultado 
Figura 4 – Saída da MLP na terceira representação GUI 
=== Run information === 
Scheme:weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 400 -V 0 -S 0 -E 20 -H 4 -G -R 
Relation: Honda respostas 
Instances: 3000 
Attributes: 4 
Faixa de renda 
Primeira Compra 
Ultima Compra 
Respondeu 
Test mode: evaluate on training data 
=== Classifier model (full training set) === 
Time taken to build model: 239 seconds 
=== Evaluation on training set === 
Time taken to test model on training data: 0.08 seconds 
=== Summary === 
Correctly Classified Instances 1716 57.2 % 
Incorrectly Classified Instances 1284 42.8 % 
Kappa statistic 0.1473 
Mean absolute error 0.4888 
Root mean squared error 0.493 
Relative absolute error 97.7791 % 
Root relative squared error 98.6168 % 
Coverage of cases (0.95 level) 100 % 
Mean rel. region size (0.95 level) 100 % 
Total Number of Instances 3000 
=== Confusion Matrix === 
a b <-- classified as 
694 831 | a = 1 
453 1022 | b = 0
Conclusões 
A adição de recurso extra de visualização do modulo GUI aumenta dimensionalidade e ajuda a 
entender o modelo e cria uma melhor interação com a Rede Neural Artificial na solução WEKA. 
Para MLP decidir sobre taxa de aprendizagem é muito importante dimensionar uma taxa mais 
baixa, podemos observar nos resultados que estes tiveram melhor desempenho. 
Depois de realizar o experimento com três números de camadas e três nós escondido, verificou - 
se que uma única camada escondida e com poucos nós escondidos melhora o desempenho, adicionando 
camadas extras no experimento observou-se que o modelo não melhorou o desempenho, mas o aumento 
do número de nós tende a melhorar a resposta do modelo. 
Discussão e trabalho futuro 
A capacidade de aprender das redes neurais artificiais as tornas muito flexíveis e poderosa s. Não 
necessitando de conceber um algoritmo, a fim de executar uma tarefa específica; ou seja, não há 
necessidade de compreender os mecanismos internos dessa tarefa. 
Mas há desvantagens nas redes neurais elas não podem ser programadas para executar uma 
tarefa específica; os exemplos devem ser selecionados com cuidado caso contrários o tempo útil é 
desperdiçado e também a rede pode estar funcionando incorretamente. Além disso, a rede descobre como 
resolver o problema por si só, podemos colocar esta situação como um modelo de imprevisibilidade no 
seu funcionamento. A desvantagem com o algoritmo backpropagation é que ele tenta encontrar um 
mínimo de saídas para função de erro, e se ele encontra a situação errada, os resultados encontrados 
podem ser inevitavelmente ruins, por esta razão temos que dimensionar a importância da taxa de 
aprendizagem.

Mais conteúdo relacionado

Mais procurados

Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdM Serafim
 
Protótipos em Papel
Protótipos em PapelProtótipos em Papel
Protótipos em Papelelliando dias
 
Mineração de Dados no Weka - Regressão Linear
Mineração de Dados no Weka -  Regressão LinearMineração de Dados no Weka -  Regressão Linear
Mineração de Dados no Weka - Regressão LinearJoão Gabriel Lima
 
Criptografia
CriptografiaCriptografia
CriptografiaPaula P.
 
Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPVagner Santana
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados info_cimol
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaCleber Fonseca
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Apostila projetode redes
Apostila projetode redesApostila projetode redes
Apostila projetode redesredesinforma
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Luis Ferreira
 

Mais procurados (20)

Banco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bdBanco de dados distribuídos mnt bd
Banco de dados distribuídos mnt bd
 
Protótipos em Papel
Protótipos em PapelProtótipos em Papel
Protótipos em Papel
 
Mineração de Dados no Weka - Regressão Linear
Mineração de Dados no Weka -  Regressão LinearMineração de Dados no Weka -  Regressão Linear
Mineração de Dados no Weka - Regressão Linear
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUP
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - Criptografia
 
Regressão Linear I
Regressão Linear IRegressão Linear I
Regressão Linear I
 
Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04
 
Aula1 historia das redes
Aula1   historia das redesAula1   historia das redes
Aula1 historia das redes
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Crimes virtuais
Crimes virtuais Crimes virtuais
Crimes virtuais
 
Apostila projetode redes
Apostila projetode redesApostila projetode redes
Apostila projetode redes
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
 

Semelhante a Rede neural MLP para prever respostas de clientes

Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosDiego Negretto
 
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Ricardo Brasil
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasAlan Carlos
 
Redes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRedes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRenato Ximenes
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesAdilmar Dantas
 
INTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNAINTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNACarlos Cheth
 
Apresentacao-LSTM.pdf
Apresentacao-LSTM.pdfApresentacao-LSTM.pdf
Apresentacao-LSTM.pdfssuser821b0f
 
Banner sic 02
Banner sic 02Banner sic 02
Banner sic 02siridakis
 
As camadas do modelo OSI
As camadas do modelo OSIAs camadas do modelo OSI
As camadas do modelo OSIBruno David
 
Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Rogério Cardoso
 
Search based gravitational algorithm
Search based gravitational algorithmSearch based gravitational algorithm
Search based gravitational algorithmCRISLANIO MACEDO
 

Semelhante a Rede neural MLP para prever respostas de clientes (20)

Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de Dados
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
 
Geração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e SistemasGeração TEC - Help Desk - Ambientes e Sistemas
Geração TEC - Help Desk - Ambientes e Sistemas
 
RNA_Matlab.pdf
RNA_Matlab.pdfRNA_Matlab.pdf
RNA_Matlab.pdf
 
Redes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRedes neurais e lógica fuzzy
Redes neurais e lógica fuzzy
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de Faces
 
Deep Learning
Deep LearningDeep Learning
Deep Learning
 
Modelos de previsão de Ocorrências
Modelos de previsão de OcorrênciasModelos de previsão de Ocorrências
Modelos de previsão de Ocorrências
 
Redes Neuronais
Redes NeuronaisRedes Neuronais
Redes Neuronais
 
Cluster
ClusterCluster
Cluster
 
Artigo tecnico RNA Iris
Artigo tecnico RNA IrisArtigo tecnico RNA Iris
Artigo tecnico RNA Iris
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
INTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNAINTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNA
 
Apresentacao-LSTM.pdf
Apresentacao-LSTM.pdfApresentacao-LSTM.pdf
Apresentacao-LSTM.pdf
 
Banner sic 02
Banner sic 02Banner sic 02
Banner sic 02
 
As camadas do modelo OSI
As camadas do modelo OSIAs camadas do modelo OSI
As camadas do modelo OSI
 
Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Aplicações de redes neurais 2010
Aplicações de redes neurais 2010
 
Search based gravitational algorithm
Search based gravitational algorithmSearch based gravitational algorithm
Search based gravitational algorithm
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 

Rede neural MLP para prever respostas de clientes

  • 1. Universidade de Brasília Campus Darcy Ribeiro Trabalho Complementar da Disciplina Inteligência Artificial Rede Neural Supervisionada Multicamadas – Árvore de decisão plataforma WEKA Li Weingang Professor Orientador - Depto CIC/UnB - weigang@unb.br Cesar do Amaral Aluno Especial - CIC/UnB - amaral12342012@hotmail.com José Maria Celestino de Lima Mestrando PPMEC/ UnB - onitcales@gmail.com Luiz Eduardo Santos de Oliveira Mestrando PPMEC/ UnB - luizeduardo.ufs@gmail.com
  • 2. Resumo Aprendizagem supervisionada e aquela que utiliza dados com a classe especificada a instancia, contem um atributo classe que especifica a qual classe ela pertence. Existem diversos métodos de mineração que trabalham com este tipo de aprendizado. A rede neural supervisionada chamada Perceptron multicamadas MLP- multilayerpercetron utiliza métodos derivados do gradiente nos ajustes de seus pesos por retro propagação (Back-Propagation). Esta rede consiste de uma camada de entrada, uma ou mais camadas escondidas e uma ou mais camadas de saída. Um sinal de entrada é propagado, de camada em camada, da entrada para a saída, esta saída propaga-se em caminho reverso da saída para entrada alterando os pesos, para uma nova validação. Estágios da aprendizagem por retro propagação do erro: Passo para frente: Estímulo aplicado à entrada é propagado para frente até produzir resposta da rede. Passo para trás: O sinal de erro da saída é propagado da saída para a entrada para ajuste dos pesos sinápticos .
  • 3. Introdução Aprendizagem supervisionada e aquela que utiliza dados com a classe especificada a instancia , contem um atributo classe que especifica a qual classe ela pertence. Existem diversos métodos de mineração que trabalham com este tipo de aprendizado. A rede neural supervisionada chamada Perceptron multicamadas MLP- multilayer percetron [1] utiliza métodos derivados do gradiente no ajustes de seus pesos por retro propagação (Back-Propagation). Esta rede consiste de uma camada de entrada, uma ou mais camadas escondidas e uma ou mais camadas de saída. Um sinal de entrada é propagado, de camada em camada, da entrada para a saída, esta saída propaga-se em caminho reverso da saída para entrada alterando os pes os, para uma nova validação. Estágios da aprendizagem por retro propagação do erro: – Passo para frente: Estímulo aplicado à entrada é propagado para frente até produzir resposta da rede. – Passo para trás: O sinal de erro da saída é propagado da saída para a entrada para ajuste dos pesos sinápticos. O algoritmo (Back-Propagation [2]) é baseado no método gradiente descendente, que computa as derivadas parciais de uma função de erro, com relação ao vetor peso W de um vetor de entradas X. O treinamento da rede é dividido em duas fases principais: avante (forward) e retorno (backward). A primeira etapa (forward) consiste na propagação dos estímulos apresentados da entrada para a saída. Esses estímulos fluem por toda a rede oculta, camada por camada até gerarem a saída. A partir do resultado desejado (target), calcula-se o erro na camada de saída. A segunda etapa (backward) ocorre em sentido contrário, onde o erro calculado é retropropagado pelas camadas antecessoras, atualizando os pesos das conexões, produzindo novas saídas . A MLP [1], apresenta varias características importantes dentre elas destacamos as seguintes : Cada unidade de processamento tem função de ativação logística (forma sigmoidal) que é não-linear, suave, diferençável e continua em todo o intervalo dados considerado. Existência de pelo menos uma camada escondida que possibilita aprendizagem de tarefas complexas por extração progressiva de características relevantes dos padrões de entrada. A existência de mais camadas deve ser criteriosa escolhida visto que pode resulta em convergência mínima locais sem saída consistente com resultados utilizáveis. O grau de conectividade é alto. Parâmetros a serem considerados em uma Rede Neural Artificial RNA [2]. Uma Rede Neural Artificial [2] do tipo Múltiplas Camadas com algoritmo de Retro propagação (Back-Propagation [3]), necessita de vários parâmetros devem ser considerados: número de camadas de neurônios, número de neurônios em cada camada, taxa de aprendizagem. Uma Rede Neural deve conter no mínimo duas camadas de neurônios uma camada que se destina à entrada dos dados e outra que se destina à saída dos resultados. Este tipo de rede apresenta uma utilidade muito limitada. O aumento do número de camadas de neurônios melhora o desempenho das redes neurais. Sua capacidade de aprendizado aumenta o que se traduz na melhoria da precisão com que ela delimita as regiões de decisão (GORNI, 1993) [1]. Existe a necessidade de pelo menos uma camada oculta na Rede Neural, mas não há determinação de qual numero ideal de camadas ocultas necessárias para o sistema. Entretanto, a taxa de aprendizagem deve ser uma variável importante nas considerações do tempo de aprendizagem desejado. Na camada de entrada deve existir um número de neurônios igual ao número de variáveis a serem fornecidos à rede. Eventualmente, uma variável de entrada pode ser subdividida para vários neurônios, segundo um esquema binário, o que pode melhorar o desempenho. A camada de saída deve conter um número de neurônios igual ao número de variáveis que se deseja calcular. No caso de modelos classificatórios, pode-se utilizar um neurônio para cada item de classificação ou utilizar uma representação mais compacta, pode ser empregado técnicas binárias para diminuir o número de neurônios. O uso de representação binária na camada de saída aumenta a carga de trabalho da camada oculta, obrigando a um aumento do número de neurônios dessa camada ou mesmo a adição de uma camada oculta suplementar para que a Rede Neural mantenha o mesmo nível de desempenho. Vários autores sugerem critérios mínimos para a escolha do número de neurônios das camadas ocultas. Outra questão a ser tratada por ocasião da programação de uma Rede Neural diz respeito aos valores dos parâmetros da taxa de aprendizagem contida no algoritmo, esta taxa definida por um coeficiente de aprendizado, deve ser alta no início do treinamento e vá diminuindo à medida que ele evolui. (GORNI, 1993) [1], método que tem o propósito de proporcionar rapidez na convergência do treinamento, estabilidade e resistência ao aparecimento de mínimos locais.
  • 4. Definição do problema - Base de Dados O experimento foi realizado utilizando uma base de dados de uma concessionária HONDA que contém quatro atributos de dados e três mil instancias. A concessionária está começando uma campanha promocional, está tentando desenvolver uma garantia estendida de dois anos para seus clientes passados. O presente estudo utiliza a base de dados convertida em formato de valores separados em vírgulas (CSV – Comma Separated Values) e estão no formato ARFF [4], compatível com o programa minerador de dados Weka [2]. Mesmo a base Honda possuindo quatro atributos e três mil instancias. Foram utilizados todos os atributos uma vez que todas estas características são relevantes para os testes. Atributos do conjunto de dados são: Faixa de renda Ano / mês primeiro Honda Ano / mês mais recente Honda E Se eles responderam à oferta de garantia estendida no passado. Para análise e quantificação presente na base de dados da concessionária Honda foi utilizado o processo de mineração de dados, através do software Weka [2]. O Weka [2] é um software desenvolvido na Universidade de Waikato na Nova Zelândia, escrito em linguagem Java, possui chave de licença pública e código aberto. Os dados po dem ser carregados no Weka utilizando o formato de Arquivo de Atributo Relação (ARFF) [5]. Nesse arquivo é definida cada coluna com um tipo de dado, por exemplo, numérico ou caractere, em cada linha é fornecido os dados, com seus respectivos tipos de dados, delimitados por vírgulas. Metodologia Definição da configuração da rede: Seleção da rede neural apropriada à aplicação, que tipo de rede será utilizado; Determinação da topologia da rede a ser utilizada - o número de camadas escondidas e o número de unidades em cada camada; Determinação dos parâmetros do algoritmo de treinamento e funções de ativação. Opções de visualização e configuração do WEKA GUI - traz uma interface GUI. Isto irá permitir uma interação mais aprimorada com opções de pausa e alteração da Rede Neural Artificial durante o treino. * Para adicionar um nó à esquerda, clique (este nó será selecionado automaticamente, tem que ter certeza de que não haja outros nós foram selecionados ). * Para selecionar um nó com o botão esquerdo sobre ele, enquanto nenhum outro nó for selecionado ou mantendo pressionada a tecla Control * Para conectar um nó, primeiro tem o nó (s) de partida selecionado, em seguida, clique em nó de extremidade ou em um espaço vazio (isto irá criar um novo nó que está conectado com os nós selecionados). O estado de seleção de nós vai ficar na mesma depois que a conexão. (Nota essas conexões são dirigidas, também uma conexão entre dois nós não será estabelecida mais de uma vez e certas conexões que são consideradas inválidas não serão feitas). * Para remover uma conexão, selecione um dos nó conectados e, em seguida, clique com botão direito do outro nó (não importa se o nó é o início ou terminar a ligação será removido). *Para remover um nó de clique direito, enquanto nenhum outro nó são selecionados. *Para cancelar a seleção de um nó para a esquerda clique nele enquanto mantém pressionado o controle, ou clique direito no espaço vazio. *As entradas matérias são fornecidos os rótulos à esquerda. *Os nós vermelhos são camadas ocultas. *Os nós de laranja são os nós de saída. *As etiquetas à direita mostra a classe do nó que a saída representa. *Alterações à rede neural só podem ser feitas enquanto a rede não está funcionando, isso também se aplica à taxa de aprendizagem e a outros campos no painel de controle. * Pode-se aceitar a rede como sendo finalizada a qualquer momento. * Na modelagem GUI a rede inicia-se automaticamente pausada. * Há uma indicação de funcionamento de que época a rede está fazendo e o que o erro (bruto) para a época era (ou para a validação se que está sendo usado). Note-se que este valor de erro se baseia numa rede que muda quando o valor é calculado. * Uma vez que a rede montada ele irá parar de novo e vai esperar o comando de aceito ou continuar com o treinado. Parâmetros opcionais a ser mudados Autobuild - Adiciona e conectam-se as camadas ocultas na rede.
  • 5. Debug - Se verdadeiro, classificador pode emitir informações adicionais para o console. Decaimento - Isto fará com que a taxa de aprendizagem para diminuir. Isto irá dividir a taxa de aprendizagem começando pelo número época, para determinar que a taxa de aprendizagem atual deveria ser. Isto pode ajudar a parar a rede de divergentes a partir da saída de destino, bem como melhorar a performance geral. Note-se que a taxa de aprendizado em decomposição não será mostrado no gui, apenas a taxa de aprendizagem original. Se a taxa de aprendizagem é alterado no gui, esta é tratada como a taxa de aprendizado inicial. hiddenLayers - Isso define as camadas ocultas da rede neural. Esta é uma lista de números inteiros positivos. 1 para cada camada escondida. Separados por vírgulas. Para não têm camadas ocultas colocar um único 0 aqui. Isso só será utilizado se AutoBuild está definido. Há também valores curinga 'A' = (classes Attribs +) / 2, 'i' = attribs, aulas = 'O', = Attribs + aulas de 'T'. learningRate - O valor dos pesos são atualizados. impulso - Momentum aplicado aos pesos durante a atualização. nominalToBinaryFilter - o que irá pré-processar as instâncias com o filtro. Isso poderia ajudar a melhorar o desempenho se existem atributos nominais nos dados. normalizeAttributes - Isso vai normalizar os atributos. Isso poderia ajudar a melhorar o desempenho da rede. Este não é dependente do numérico ser classe. Isso também vai normalizar atributos nominais, bem como (depois de terem sido executados, através do filtro de binário nominal se que está em uso) de forma que os valores nominais são entre -1 e 1 normalizeNumericClass - Isso vai normalizar a classe se é numérico. Isso poderia ajudar a melhorar o desempenho da rede, Normaliza a classe para estar entre -1 e 1 Note-se que este é apenas internamente, a saída será reduzida para a faixa original. redefinir - Este vai permitir que a rede de repor com uma taxa inferior a aprendizagem. Se a rede diverge da resposta esta irá reiniciar automaticamente a rede com uma taxa de aprendizagem mais baixo e começar a treinar novamente. Esta opção só está disponível se o gui não está definido. Note que se a rede diverge, mas não tem permissão para redefinir ele irá falhar o processo de treinamen to e retornar uma mensagem de erro. semente - semente usada para inicializar os números generator.Random números aleatórios são usados para definir os pesos iniciais dos nós conexões betweem, e também para embaralhar os dados de treinamento. trainingTime - O número de épocas para treinar completamente. Se o conjunto de validação é diferente de zero, então ele pode terminar mais cedo rede validationSetSize - A percentagem do tamanho do conjunto de validação (A formação irá continuar até que se observa que o erro no conjunto de validação foi consistentemente a piorar, ou se o tempo de formação é atingido).. Se isso for definido para zero, nenhum conjunto de validação serão utilizados e, em vez da rede vai treinar para o número especificado de épocas. validationThreshold - Usado para terminar valor testes.O validação aqui dita quantas vezes seguidas o erro conjunto de validação pode ficar pior antes do treino é encerrado. Técnica de Aprendizado Toda técnica de mineração passa por um processo chamado de treinamento , e nesta fase que ocorre a apresentação dos dados processados para o algoritmo de mineração, cujo objetivo e identificar as características ou padrões úteis para o processo de descoberta de conhecimento. Apos o aprendizado ter sido realizado, e aplicada uma avaliação, onde podemos verificar medidas estatísticas dos resultados alcançados. A utilização de dados inéditos fornecera medidas realistas sobre o desempenho do algoritmo, o conjunto deve ser dividido em dados de treinamento e de teste. Às vezes, e necessário dividir o conjunto de dados em 3 diferentes conjuntos: treinamento, validação e teste. O conjunto de validação e utilizado para ajustar valores dos parâmetros de alguns algoritmos e ao mesmo tempo uma boa generalização. Quando o conjunto de dados e divididos em dois, geralmente a divisão e de 70% do conjunto para o conjunto de treinamento e 30% para o conjunto de testes. Já, quando o conjunto será divido em 3 (três), usa-se a proporção 70% para treinamento, 20% para validação e 10% para testes. Árvore de Decisão Para a realização da mineração de dados foi utilizado o filtro Discretize para a normalização dos dados de entrada em um intervalo numérico. Após o filtro, foram selecionad os o algoritmo árvore de decisão (J48) [6] e a Rede Neural Artificial (RNA) [2] MLP Multi-Layer Perceptron (MLP) [1]. O algoritmo J48 [6] constrói um modelo de árvore de decisão baseado num conjunto de dados de treinamento, sendo que esse modelo é utilizado para classificar as instâncias de um conjunto de teste.
  • 6. O algoritmo MLP Multi-Layer Perceptron [1] [4] possui aprendizado supervisionado e tem o objetivo calcular o erro para a camada de saída e propagar este no sentido saída -entrada (backpropagation), ajustando os pesos de todas as camadas, através da retro propagação do erro. Conjunto de dados WEKA O conjunto de dados que usaremos para nosso exemplo de classificação estará focado em uma concessionária fictícia da Honda. A concessionária está iniciando uma campanha promocional na qual está tentando vender uma garantia estendida de dois anos para seus clientes passados. A concessionária já fez isso antes e reuniu 4.500 pontos de dados de vendas antigas de garantias estendidas . Os atributos no conjunto de dados são: Colchete de renda Ano/mês de compra da primeira Honda Ano/mês de compra da Honda mais recente Se eles responderam à oferta de garantia estendida no passado Classificação da arvore de decisão Figura 1. Classificação de dados da concessionária HONDA no WEKA Para gerar a arvore de decisão do modelo foi utilizado o algoritmo J48 Figura 2. Classificação do resultado dos dados da concessionária HONDA no WEKA
  • 7. Resposta do modelo criado pelo WEKA. == Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: Honda respostas Instances: 3000 Attributes: 4 Faixa de renda Primeira Compra Ultima Compra Respondeu Test mode: evaluate on training data === Classifier model (full training set) === J48 pruned tree Itens importantes para analise 1 -"Correctly Classified Instances" (59,1 por cento) 2 -"Incorrectly Classified Instances" (40,9 por cento). === Evaluation on training set === Time taken to test model on training data: 0.2 seconds === Summary ===  Correctly Classified Instances 1774 59.1333 %  Incorrectly Classified Instances 1226 40.8667 %  Kappa statistic 0.1807  Mean absolute error 0.4773  Root mean squared error 0.4885  Relative absolute error 95.4768 %  Root relative squared error 97.7122 % Total Number of Instances 3000 Analise dos resultados - Resultado do modelo, baseando-se em nossa taxa de exatidão de somente 59,1 por cento, teria que dizer que através de uma análise inicial, esse não é um modelo muito bom. Comparação dos n úmeros – Comparando os números dos itens 1 e 2 , "Correctly Classified Instances" conjunto com (55,7 por cento) e "Correctly Classified Instances" conjunto de treinamento (59,1 por cento), podemos perceber que a exatidão do modelo e bem próxima do ideal, podemos tira como conclusão que este modelo e próximo de ideal com dados desconhecidos ou quando forem acrescentados dados futuros nela e posteriormente aplicados. Confusion Matrix: e onde os número de positivos falsos e negativos falsos sao mostrados, no nosso modelo são positivos falsos 516 e os negativos falsos, 710 nessa matriz.  a b <-- classified as  1009 516 | a = 1  710 765 | b = 0 Resposta da analise do modelo, porcentagens da resposta para montagens da arvore de decisão. Primeira Compra <= 200011 | Faixa de renda = 0: 1 (271.0/114.0) | Faixa de renda = 1 | | Ultima Compra <= 200512: 0 (69.0/21.0) | | Ultima Compra > 200512: 1 (69.0/27.0) | Faixa de renda = 2: 1 (194.0/84.0) | Faixa de renda = 3: 1 (109.0/38.0) | Faixa de renda = 4 | | Ultima Compra <= 200511: 0 (54.0/22.0) | | Ultima Compra > 200511: 1 (105.0/40.0) | Faixa de renda = 5 | | Ultima Compra <= 200505 | | | Ultima Compra <= 200504: 0 (8.0) | | | Ultima Compra > 200504 | | | | Primeira Compra <= 199712: 1 (2.0) | | | | Primeira Compra > 199712: 0 (3.0) | | Ultima Compra > 200505: 1 (185.0/78.0) | Faixa de renda = 6 | | Ultima Compra <= 200507 | | | Primeira Compra <= 199812: 0 (8.0)
  • 8. | | | Primeira Compra > 199812 | | | | Primeira Compra <= 200001: 1 (4.0/1.0) | | | | Primeira Compra > 200001: 0 (3.0) | | Ultima Compra > 200507: 1 (107.0/43.0) | Faixa de renda = 7: 1 (115.0/40.0) Primeira Compra > 200011 | Faixa de renda = 0 | | Primeira Compra <= 200412: 1 (297.0/135.0) | | Primeira Compra > 200412: 0 (113.0/41.0) | Faixa de renda = 1: 0 (122.0/51.0) | Faixa de renda = 2: 0 (196.0/79.0) | Faixa de renda = 3: 1 (139.0/69.0) | Faixa de renda = 4: 0 (221.0/98.0) | Faixa de renda = 5 | | Ultima Compra <= 200512: 0 (177.0/77.0) | | Ultima Compra > 200512 | | | Primeira Compra <= 200306: 0 (46.0/17.0) | | | Primeira Compra > 200306: 1 (88.0/30.0) | Faixa de renda = 6: 0 (143.0/59.0) | Faixa de renda = 7 | | Ultima Compra <= 200508: 1 (34.0/11.0) | | Ultima Compra > 200508: 0 (118.0/51.0) Estrutura da arvore de decisão. Number of Leaves: 28 Size of the tree: 43 Configuração da Rede Neural Artificial RNA Utilizando o algoritmo MLP Avaliação do critério de parada do treinamento: E necessária uma avaliação de qual o critério mais adequado Avaliação do número de neurônios em RNAs de camada única: Após definição do critério de parada de treinamento deve ser avaliado o número de neurônio em uma rede com uma camada oculta. Avaliação da influência do número de camadas : Variando–se o número de camadas e o número de neurônio em cada uma delas percorre–se um espaço de soluções com o objetivo de selecionar as melhores configurações. Esta análise pode ser dividida em redes balanceadas, definido o número de neurônios de uma camada oculta, distribui–se este número pelo número total de camadas ocultas, e desbalanceadas, definido o número de neurônios de uma camada oculta. Avaliação do momento: Estando definido o número de camadas e o número de neurônios de cada uma avalia–se então o valor do momento da rede. Este parâmetro diminui a possibilidade de que a rede estabilize em mínimos locais. Avaliação da taxa de aprendizado: Este e o ultimo parâmetro de otimização da rede. Com este parâmetro procura–se aperfeiçoar o treinamento da rede, fazendo com que ela atinja de forma mais rápida o ponto de treinamento desejado. Para elaboração de uma rede neural artificial pode–se alterar diversas variáveis, dentre elas, o número de neurônios, o número de camadas, a taxa de aprendizado. Com estas variáveis temos o problema de como encontrar a melhor configuração que gere a rede neural com menor erro de predição. Para a solução de problemas desta natureza existem diversos métodos de otimização. Como não se conhecia o comportamento da eficiência da rede ao alterar os parâmetros da mesma, elaborou –se uma busca que consistia em configurar diversas redes neurais seguindo um padrão e observar o erro médio de cada configuração qualificando a melhor, e desta forma realizando uma busca dirigida para se encontrar uma solução adequada para o sistema. Para essa análise de sensibilidade da configuração da rede, inicialmente adotou –se uma configuração padrão de rede neural e a partir desta foram variados os parâmetros da mesma realizando–se uma busca no campo de possíveis soluções. Analisou–se a média e o desvio padrão do erro de cada configuração sempre selecionando em cada análise a melhor configuração e continuando o processo até se obter uma configuração boa.
  • 9. Simulações do algoritmo MLP (Multilayerperceptron). Parâmetros escolhidos para o primeiro teste do modelo: -GUI = True -Camadas ocultas (hidden layers)=a -Taxa de Aprendizagem (learning rate) = 0,3, -Momentum = 0,2, -Épocas (training time) = 600, sigmoide para a ativação. Resultado: Figura 3 – Saída da MLP na primeira representação GUI === Run information === Scheme: weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 600 -V 0 -S 0 -E 20 -H a -G -R Relation: Honda respostas Instances: 3000 Attributes: 4 Faixa de renda Primeira Compra Ultima Compra Respondeu Class 1 Input Node 0 Class 0 Input Node 1 Time taken to build model: 175.85 seconds === Evaluation on training set === Time taken to test model on training data: 0.05 seconds === Summary === Correctly Classified Instances 1713 57.1 % Incorrectly Classified Instances 1287 42.9 % Kappa statistic 0.1365 Mean absolute error 0.4801 Root mean squared error 0.4897 Relative absolute error 96.0491 % Root relative squared error 97.9563 % Coverage of cases (0.95 level) 100 % Mean rel. region size (0.95 level) 100 % Total Number of Instances 3000 === Confusion Matrix === a b <-- classified as 1158 367 | a = 1 920 555 | b = 0
  • 10. Parâmetros escolhidos para o segundo teste do modelo -GUI = True -Camadas ocultas (hidden layers)= 2 -Taxa de aprendizagem (learning rate) = 0,2, -Momentum = 0,1, -Épocas = 500, sigmoide para a ativação. Resultado Figura 4 – Saída da MLP na segunda representação GUI === Run information === Scheme:weka.classifiers.functions.MultilayerPerceptron -L 0.2 -M 0.1 -N 500 -V 0 -S 0 -E 20 -H 2 -G -R Relation: Honda respostas Instances: 3000 Attributes: 4 Faixa de renda Primeira Compra Ultima Compra Respondeu Test mode: evaluate on training data === Classifier model (full training set) === Time taken to build model: 331.25 seconds === Evaluation on training set === Time taken to test model on training data: 0.06 seconds === Summary === Correctly Classified Instances 1706 56.8667 % Incorrectly Classified Instances 1294 43.1333 % Kappa statistic 0.1349 Mean absolute error 0.4879 Root mean squared error 0.4932 Relative absolute error 97.6104 % Root relative squared error 98.6514 % Coverage of cases (0.95 level) 100 % Mean rel. region size (0.95 level) 100 % Total Number of Instances 3000 === Confusion Matrix === a b <-- classified as 991 534 | a = 1 760 715 | b = 0
  • 11. Parâmetros escolhidos para o terceiro modelo -GUI = True -Camadas ocultas (hidden layers)= 4 -Taxa de aprendizagem (learning rate) = 0,3, -Momentum = 0,2, -Épocas = 400, sigmoide para a ativação. Resultado Figura 4 – Saída da MLP na terceira representação GUI === Run information === Scheme:weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 400 -V 0 -S 0 -E 20 -H 4 -G -R Relation: Honda respostas Instances: 3000 Attributes: 4 Faixa de renda Primeira Compra Ultima Compra Respondeu Test mode: evaluate on training data === Classifier model (full training set) === Time taken to build model: 239 seconds === Evaluation on training set === Time taken to test model on training data: 0.08 seconds === Summary === Correctly Classified Instances 1716 57.2 % Incorrectly Classified Instances 1284 42.8 % Kappa statistic 0.1473 Mean absolute error 0.4888 Root mean squared error 0.493 Relative absolute error 97.7791 % Root relative squared error 98.6168 % Coverage of cases (0.95 level) 100 % Mean rel. region size (0.95 level) 100 % Total Number of Instances 3000 === Confusion Matrix === a b <-- classified as 694 831 | a = 1 453 1022 | b = 0
  • 12. Conclusões A adição de recurso extra de visualização do modulo GUI aumenta dimensionalidade e ajuda a entender o modelo e cria uma melhor interação com a Rede Neural Artificial na solução WEKA. Para MLP decidir sobre taxa de aprendizagem é muito importante dimensionar uma taxa mais baixa, podemos observar nos resultados que estes tiveram melhor desempenho. Depois de realizar o experimento com três números de camadas e três nós escondido, verificou - se que uma única camada escondida e com poucos nós escondidos melhora o desempenho, adicionando camadas extras no experimento observou-se que o modelo não melhorou o desempenho, mas o aumento do número de nós tende a melhorar a resposta do modelo. Discussão e trabalho futuro A capacidade de aprender das redes neurais artificiais as tornas muito flexíveis e poderosa s. Não necessitando de conceber um algoritmo, a fim de executar uma tarefa específica; ou seja, não há necessidade de compreender os mecanismos internos dessa tarefa. Mas há desvantagens nas redes neurais elas não podem ser programadas para executar uma tarefa específica; os exemplos devem ser selecionados com cuidado caso contrários o tempo útil é desperdiçado e também a rede pode estar funcionando incorretamente. Além disso, a rede descobre como resolver o problema por si só, podemos colocar esta situação como um modelo de imprevisibilidade no seu funcionamento. A desvantagem com o algoritmo backpropagation é que ele tenta encontrar um mínimo de saídas para função de erro, e se ele encontra a situação errada, os resultados encontrados podem ser inevitavelmente ruins, por esta razão temos que dimensionar a importância da taxa de aprendizagem.