12
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]

A rede neural supervisionada chamada perceptron multicamadas

Embed Size (px)

Citation preview

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.