A rede neural supervisionada chamada perceptron multicamadas
-
Upload
cesardoamatal -
Category
Internet
-
view
212 -
download
4
Transcript of A rede neural supervisionada chamada perceptron multicamadas
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 - [email protected]
Cesar do Amaral
Aluno Especial - CIC/UnB - [email protected]
José Maria Celestino de Lima
Mestrando PPMEC/ UnB - [email protected] Luiz Eduardo Santos de Oliveira
Mestrando PPMEC/ UnB - [email protected]
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 poderosas. 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.