Sei sulla pagina 1di 58

FUNDAÇÃO FRANCISCO MASCARENHAS

FACULDADES INTEGRADAS DE PATOS


CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO

ANA LUIZA DO NASCIMENTO LEITE

USO DE ALGORITMOS NÃO SUPERVISIONADOS PARA CLASSIFICAÇÃO


AUTOMÁTICA DE DADOS

PATOS
2008.1
USO DE ALGORITMOS NÃO SUPERVISIONADOS PARA CLASSIFICAÇÃO
AUTOMÁTICA DE DADOS
ANA LUIZA DO NASCIMENTO LEITE

USO DE ALGORITMOS NÃO SUPERVISIONADOS PARA CLASSIFICAÇÃO


AUTOMÁTICA DE DADOS

Monografia apresentada ao Curso de Sistemas de


Informação das Faculdades Integradas de Patos -
FIP, como requisito parcial para a obtenção de grau
de Bacharel em Sistemas de Informação.

Orientador: MSc. Ricardo Santos de Oliveira

PATOS-PB
2008.1
Dedico este trabalho à minha mãe, Sônia,
minha irmã, Isabel e a meu marido,
Jaildes.
AGRADECIMENTOS

A DEUS, que acredito ser uma força positiva em minha vida.


A minha mãe, SONIA, e a minha irmã, ISABEL, que não mediram esforços para me
ver formada, e foram pessoas fundamentais nessa minha caminhada.
Ao meu marido, JAILDES, que soube doar as noites que passaríamos juntos em troca
das minhas cansativas viagens em busca da graduação, e que através de palavras e atos me
incentivou a concluir essa etapa da minha vida.
A minha irmã, POLIANA, ao meu pai, LUIZ, e ao meu sobrinho, JOSÉ LUIZ, pelo
apoio.
Aos amigos que fiz no decorrer do curso: Daniel, Fabrízio, Marcelo, Neném,
Edmilson, Messias, André, Rafael ...
Aos professores, dedico um abraço e uma gratidão sincera.
A Lourdinha e Dona Toinha, pelas conversas nos corredores e pelo cafezinho.
E ao meu orientador, RICARDO, que desde o início sempre esteve ao meu lado,
período a período, incentivando-me sempre a ir mais além e principalmente acreditando que
eu poderia fazer o melhor. E que se tornou um amigo que pretendo conservar por muito
tempo.

A todos, meu sincero obrigada.


RESUMO

A descoberta de conhecimento em bases de dados é composta por várias etapas operacionais.


A mineração de dados é a principal etapa desse processo, onde é realizada a transformação de
dados em modelos de conhecimento através da escolha, preparação e execução de um ou mais
algoritmos. Existem várias técnicas de mineração de dados. Esse trabalho dá enfoque às
técnicas que se utilizam do treinamento não-supervisionado para desempenharem tarefas de
classificação e/ou agrupamento, onde dados de características semelhantes são agrupados sem
intervenção humana. Foi escolhida uma base de dados para ser trabalhada com três algoritmos
de aprendizado competitivo (K-means, SOM e GNG); e a partir dos dados levantados foi feita
uma análise mostrando o desempenho de cada algoritmo na extração dos padrões
representados nos dados.
SUMÁRIO

1 INTRODUÇÃO------------------------------------------------------------------------------------ 11
1.1 Considerações iniciais---------------------------------------------------------------------------- 11
1.2 Justificativa ---------------------------------------------------------------------------------------- 12
1.3 Objetivos ------------------------------------------------------------------------------------------- 13
1.3.1 Objetivo geral------------------------------------------------------------------------------------ 13
1.3.2 Objetivos específicos--------------------------------------------------------------------------- 13
1.4 Estrutura do trabalho------------------------------------------------------------------------------ 13

2 KDD E MINERAÇÃO DE DADOS ---------------------------------------------------------- 14


2.1 Descoberta de conhecimento em base de dados --------------------------------------------- 14
2.2 Mineração de dados ------------------------------------------------------------------------------ 16
2.2.1 Classificação ------------------------------------------------------------------------------------ 16
2.2.2 Regressão ---------------------------------------------------------------------------------------- 17
2.2.3 Agrupamento ------------------------------------------------------------------------------------ 18
2.3 Técnicas de mineração de dados ---------------------------------------------------------------- 18
2.3.1 Técnicas baseadas em redes neurais --------------------------------------------------------- 18
2.3.2 Técnicas baseadas em algoritmos genéticos ------------------------------------------------ 19
2.3.3 Técnicas baseadas em árvore de decisão --------------------------------------------------- 19
2.4 Considerações finais ------------------------------------------------------------------------------ 20

3 REDES NEURAIS E APRENDIZADO COMPETITIVO --------------------------------- 21


3.1 Motivação biológica ------------------------------------------------------------------------------ 21
3.2 Redes neurais artificiais ------------------------------------------------------------------------- 22
3.2.1 Neurônio artificial ------------------------------------------------------------------------------ 22
3.2.2 Arquitetura --------------------------------------------------------------------------------------- 23
3.2.2.1 Redes feedforward de uma única camada ------------------------------------------------- 23
3.2.2.2 Redes feedforward de múltiplas camadas ------------------------------------------------ 24
3.2.2.3 Redes recorrentes ----------------------------------------------------------------------------- 24
3.2.3 Processos de aprendizagem -------------------------------------------------------------------- 25
3.2.3.1 Aprendizagem supervisionada -------------------------------------------------------------- 26
3.2.3.2 Aprendizagem não-supervisionada -------------------------------------------------------- 26
3.2.4 Exemplos de redes neurais ------------------------------------------------------------------- 27
3.2.4.1 Perceptron ------------------------------------------------------------------------------------- 27
3.2.4.2 Kohonen --------------------------------------------------------------------------------------- 29
3.2.5 Aplicações de redes neurais artificiais ----------------------------------------------------- 29
3.3 Aprendizado competitivo ------------------------------------------------------------------------ 30
3.4 Considerações finais ------------------------------------------------------------------------------ 32

4 ALGORITMOS ------------------------------------------------------------------------------------ 33
4.1 K-means ------------------------------------------------------------------------------------------ 33
4.1.1 Algoritmo ---------------------------------------------------------------------------------------- 33
4.2 SOM (Mapas Auto-organizáveis)---------------------------------------------------------------- 36
4.2.1 Treinamento do SOM --------------------------------------------------------------------------- 37
4.2.2 Algoritmo de treinamento do SOM ----------------------------------------------------------- 39
4.2.3 Análise e visualização dos mapas ----------------------------------------------------------------------- 40
4.3 Growing neural gas ---------------------------------------------------------------------------------------------- 42
4.3.1 Algoritmo GNG ------------------------------------------------------------------------------------------------ 43
4.3.2 Resultados do GNG ------------------------------------------------------------------------------------------ 44

5 RESULTADOS OBTIDOS COM A BASE DE DADOS WINE.DATA----------------- 46


5.1 Características da base de dados --------------------------------------------------------------------------- 46
5.2 Aplicação do algoritmo k-means ---------------------------------------------------------------- 46
5.3 Aplicação do algoritmo SOM -------------------------------------------------------------------- 48
5.4 Aplicação do algoritmo GNG -------------------------------------------------------------------- 49

CONSIDERAÇÕES FINAIS ------------------------------------------------------------------------------ 51

REFERÊNCIAS BIBLIOGRÁFICAS ----------------------------------------------------------- 53

APÊNDICE -------------------------------------------------------------------------------------------- 57
LISTA DE FIGURAS

Figura 1. Etapas do processo de KDD 15


Figura 2. Exemplo de uma árvore de decisão 20
Figura 3. Neurônio biológico 21
Figura 4. Modelo básico de um neurônio artificial 23
Figura 5. Redes feedforward de uma única camada 24
Figura 6. Rede feedforward com uma camada oculta e uma camada de saída 25
Figura 7. Redes recorrentes sem neurônios escondidos 25
Figura 8. Aprendizagem supervisionada 26
Figura 9. Aprendizagem não-supervisionada 27
Figura 10. Perceptron de camada única 28
Figura 11. Perceptron de múltiplas camadas 28
Figura 12. Rede de Kohonen ou Mapas Auto-organizáveis 29
Figura 13. Processamento de imagens usando redes neurais 30
Figura 14. Fluxograma do algoritmo K-means 35
Figura 15. Vizinhança retangular 37
Figura 16. Vizinhança hexagonal 37
Figura 17. SOM treinado 39
Figura 18. Base de dados artificiais 2D 41
Figura 19. Matriz-U para SOM em base de dados artificiais 2D 41
Figura 20. GNG em base de dados artificial 3D 44
Figura 21. Fluxograma do GNG 45
Figura 22. Resultado do algoritmo k-means 47
Figura 23. Matriz U resultada da execução do SOM na base de dados Wine 48
Figura 24. Resultado do algoritmo GNG 49
LISTA DE TABELAS

Tabela 1. Exemplo de uma base de dados 17


LISTA DE SIGLAS E ABREVIATURAS

KDD – Knowledge Discovery in Databases (Descoberta de conhecimento em bases de dados)


RNA – Redes Neurais Artificiais
SOM – Self-Organizing Map (Mapas auto-organizáveis)
BMU – Best Matching Unit (Neurônio mais semelhante)
GNG – Growing Neural Gas
11

1 INTRODUÇÃO

1.1 Considerações iniciais

Os avanços da Tecnologia da Informação têm facilitado o processamento e


armazenamento de grandes quantidades de dados. A busca pelo conhecimento embutido
nesses dados torna-se um diferencial para as empresas, pois neles estão contidas informações
valiosas. A análise dessas bases de dados é irrealizável pelo homem sem a ajuda de
ferramentas computacionais apropriadas. Daí surge à área de mineração de dados que é a
aplicação de algoritmos específicos para extrair padrões desses dados [FAYYAD, 1996].
Mineração de dados é uma das etapas de um processo conhecido como Descoberta de
Conhecimento em Bancos de Dados (Knowledge Discovery in Databases - KDD). Este
processo é comumente dividido em três etapas: pré-processamento, responsável pela
preparação dos dados para a etapa de mineração de dados, através da seleção, limpeza e
transformação (normalização) dos dados; mineração de dados, onde é escolhido o algoritmo
para a extração de padrões dos dados e pós-processamento, que é a interpretação do
conhecimento obtido [GOLDSCHMIDT; PASSOS, 2005].
As Redes Neurais Artificiais foram desenvolvidas baseadas no funcionamento do
cérebro humano. Existem problemas que o cérebro resolve de maneira inata como
reconhecimento de padrões, processamento de imagens, aprendizado de novos fatos, entre
outros. As RNAs proporcionam facilidades tanto na habilidade de aprendizagem como na
capacidade de generalização, mostrando-se eficiente em responder a novos padrões.
O processo de aprendizado ou treinamento é classificado em duas formas:
aprendizagem supervisionada (possui um supervisor para indicar à rede uma saída desejada
quanto ao conjunto de padrões de entrada) e não-supervisionada (não possui supervisor e a
saída não é conhecida, pois ocorre uma separação automática entre padrões) [RESENDE,
2005].
Este trabalho irá mostrar algoritmos que utilizam treinamento não-supervisionado e
que se valem de uma técnica chamada aprendizado competitivo [COSTA, 1999] em suas
dinâmicas de treinamento. Nessa técnica, todos os neurônios de saída competem pelo direito
de responder a um conjunto de padrões de entrada. Ao final dessa competição haverá apenas
um neurônio vencedor, o qual ficará ativo por um determinado instante por possuir
12

característica relevante para a classificação do padrão de entrada submetido. [HAYKIN,


2001]
Neste trabalho serão abordados os algoritmos K-means, SOM (Self-organizing Maps)
e GNG (Growing Neural Gas). Esses algoritmos realizam a classificação automática dos
dados, sendo que o K-means necessita de informação prévia quanto a quantidade de grupos
nas quais os dados submetidos devem ser particionados. Já o SOM e o GNG realizam
agrupamentos de dados sem nenhuma informação prévia a respeito dos grupos de dados. O K-
means é um algoritmo simples e comumente utilizado pela comunidade científica, como
também nesse trabalho, para efeito de comparação, pelo fato de já ter sido amplamente
implementado [MACQUEEN, 1967]. O SOM é o algoritmo de aprendizado competitivo mais
amplamente utilizado pela comunidade científica [KASKI; KANGAS; KOHONEN, 1997],
sendo inspiração para diversas variantes, entre elas o GNG. Este é um algoritmo mais recente
[FRITZKE, 1997], semelhante ao SOM, mas com diferenças fundamentais em sua dinâmica
de treinamento.

1.2 Justificativa

Com o aumento substancial da quantidade de informação armazenada, tornou-se


inexeqüível a sua análise pelo homem sem a ajuda de ferramentas computacionais adequadas.
Nessas grandes massas de dados, podem ser encontradas muitas informações importantes para
auxiliar na tomada de decisões. Muitos esforços vêm sendo empreendidos no sentido de
desenvolver ferramentas capazes de automatizar a descoberta de informações úteis em
grandes bases de dados. Os algoritmos de mineração de dados automatizam o trabalho de
extração de padrões desses dados.
Em várias aplicações de mineração de dados são utilizadas as Redes Neurais
Artificiais. Isso deve-se ao fato das mesmas serem robustas e eficientes para a resolução de
problemas quanto ao reconhecimento e classificação de padrões [GOLDSCHMIDT;
PASSOS, 2005].
Baseado nesses argumentos, o presente trabalho apresenta resultados obtidos com a
aplicação dos algoritmos de aprendizado competitivo na mineração dos dados da base Wine,
observando a eficiência dos mesmos em extrair possíveis conhecimentos da base.
13

1.3 Objetivos

1.3.1 Objetivo Geral

Aplicar diferentes algoritmos para minerar os dados de uma base de dados real. Colher
resultados desses experimentos e mostrar através de gráficos a classificação e agrupamentos
dos dados feito por cada algoritmo para tal base.

1.3.2 Objetivos Específicos

Conhecer KDD, mineração de dados, redes neurais, agrupamento e classificação


de dados e aprendizado competitivo.
Estudar os algoritmos de aprendizado competitivo:
o K-means
o Self-Organizing Maps
o Growing Neural Gas
Escolher uma base de dados para a aplicação de algoritmos e posterior análise dos
resultados obtidos.

1.4 Estrutura da Monografia

Este trabalho será apresentado da seguinte forma: o capítulo 2 discorre sobre o


processo de descoberta de conhecimento em bases de dados, enfatizando a etapa de mineração
de dados. O capítulo 3 fala sobre redes neurais artificiais, especialmente sobre a utilização de
aprendizado competitivo. O capítulo 4 descreve os algoritmos a serem utilizados, enquanto
que o capítulo 5 mostra os resultados obtidos pelos diferentes algoritmos no processo de
mineração. O capítulo 6 faz algumas considerações finais.
14

2 KDD E MINERAÇÃO DE DADOS

Atualmente, os progressos na área da tecnologia da informação proporcionam o


desenvolvimento de sistemas de diversas naturezas e possibilitam o armazenamento de
grandes volumes de dados. Presume-se que haja informações úteis a serem extraídas dessas
grandes bases de dados, de forma a oferecer às organizações conhecimento para futuras
tomadas de decisões.
Para analisar, interpretar e relacionar os dados, o homem precisa da ajuda de
ferramentas computacionais adequadas, devido à dificuldade do mesmo em encontrar
informações úteis sem automatização. Serão apresentados neste capítulo os processos de
KDD e mineração de dados, que auxiliam o homem nessas tarefas. Apesar de alguns autores
considerarem os dois como sinônimos, este trabalho adota a definição de Fayyad [FAYYAD,
1996], de que KDD é o processo global de descoberta de conhecimento útil a partir de dados,
enquanto mineração de dados é uma das etapas do KDD.
O objetivo deste capítulo é apresentar uma introdução às etapas do processo de KDD,
processo capaz de descobrir conhecimento útil em grandes bancos de dados, e uma introdução
à mineração de dados, etapa em que ocorre a extração de padrões dos dados. Serão
apresentadas algumas das principais tarefas de mineração de dados: classificação, regressão e
agrupamento; e algumas técnicas para a aplicação dessas tarefas como redes neurais,
algoritmos genéticos e árvores de decisão.

2.1 Descoberta de Conhecimento em Bases de Dados

O armazenamento em bases de dados de grandes quantidades de dados tornou-se uma


prática considerada comum e essencial nos dias de hoje em diversas organizações. Isso
ocasiona uma grande possibilidade de existência de informações preciosas entre esses dados.
A exploração dessas bases de dados à procura de conhecimento implícito caracteriza o termo
KDD. Fayyad [FAYYAD, 1996] diz que KDD é um processo, de etapas seqüenciais,
interativo e iterativo, para identificação de padrões compreensíveis, válidos, novos e
potencialmente úteis a partir de grandes bases de dados.
Para o bom entendimento de tal definição torna-se necessário dar uma explicação
individual de alguns dos termos usados. O processo é interativo, pois necessita do homem
15

como responsável, é iterativo por possuir etapas seqüenciais e possibilitar retorno as etapas
anteriores. Por padrões válidos entenda-se conhecimento válido e verdadeiro, e por padrões
novos a agregação de novos conhecimentos aos já existentes, o conhecimento útil é o que
pode ser usado para beneficiar o contexto aplicado ao processo de KDD.
As etapas do KDD consistem na etapa de pré-processamento, mineração de dados e
pós-processamento, conforme mostrado na Figura 1.

Seleção Limpeza
Pré-processamento
Transformação

Base de
dados

Mineração de dados

Padrões

Pós-processamento

$$$$ Conhecimento

Figura 1 – Etapas do processo de KDD

Na etapa de pré-processamento ocorre a seleção, limpeza e tratamento dos dados. A


seleção dos dados ocasiona a escolha das instâncias e atributos relevantes para o processo. A
limpeza permite a qualidade dos dados, possibilitando o preenchimento dos dados
incompletos (ausência de valores), a correção de dados ruidosos, ou seja, dados que
contenham valores disparatados (outliers) e a verificação de dados inconsistentes, que
possuam alguma discordância entre si. Em seguida, ocorre o tratamento dos dados, que
normaliza os dados para serem adequadamente utilizados pelos algoritmos.
16

Após o pré-processamento dos dados, segue a etapa de mineração de dados (será


detalhada na seção 2.2), onde ocorre a escolha do algoritmo para o cumprimento da tarefa do
problema em questão.
Na etapa de pós-processamento ocorre a visualização, análise e interpretação do
conhecimento obtido, onde os dados são organizados de forma a serem avaliados pelo
especialista. O especialista tem papel fundamental nessa etapa, pois é o mesmo que definirá se
os padrões adquiridos são interessantes, se o conhecimento é válido, novo e útil, ou se será
necessário à volta a alguma das etapas anteriores.

2.2 Mineração de Dados

Mineração de dados é a etapa mais importante do processo de KDD. O objetivo dessa


etapa consiste na análise de dados e aplicação de algoritmos de descoberta que produzem uma
enumeração particular de padrões (ou modelos) a partir dos dados. Ou seja, algoritmos que
buscam explorar os dados para determinar modelos de conhecimento [FAYYAD, 1996].
As técnicas de mineração de dados são aplicadas de acordo com as tarefas a serem
realizadas no processo de KDD. Serão descritas a seguir algumas dessas tarefas.

2.2.1 Classificação

Essa tarefa tem o objetivo de descobrir uma função para mapear um conjunto de dados
de entrada em um conjunto de classes predefinidas, de forma que o processo de classificação
possa encontrar algum relacionamento entre um novo dado e essas classes, estabelecendo a
qual classe esse novo dado pertence.
Um exemplo dessa tarefa seria uma base de dados de clientes potenciais para
empréstimos. Os clientes são divididos em clientes confiáveis e clientes inadimplentes. O
processo de classificação descobrirá uma função de modo a inserir os clientes que existem no
banco de dados em uma das duas classes predefinidas. Um novo cliente pode também ser
associado a uma das classes a partir de sua semelhança com outros clientes previamente
classificados.

2.2.2 Regressão
17

A tarefa de regressão consiste em utilizar o relacionamento existente entre duas ou


mais variáveis contínuas de forma que uma delas tenha o seu valor estimado a partir das
demais.
Para exemplificar essa tarefa será considerada uma base de dados que possua
informações sobre o tempo de experiência e o salário atual dos funcionários de uma empresa,
exibida na Tabela 1 [GOLDSCHMIDT; PASSOS, 2005]. Nessa base de dados existe uma
influência direta da variável que denota a experiência em anos na variável salário. Pode-se
então construir, através do processo de regressão, uma função para estimar o salário anual de
um funcionário a partir de sua experiência. Em um processo real de regressão, procura-se
estimar o valor de uma variável em função de várias outras variáveis.

Tabela 1. Exemplo de uma base de dados. [GOLDSCHMIDT; PASSOS, 2005].


X (experiência em anos) Y (salário anual em R$ 1.000)
03 30
08 57
09 64
13 72
03 36
06 43
11 59
21 90
01 20
16 83

Utilizando o modelo de regressão linear nos dados da Tabela 1, temos:


(x’ e y’ são as médias dos valores dos atributos x e y)

X’ = 9,1
Y’ = 55,4

(a e β são coeficientes de regressão linear )

β = (3 - 91) (30 – 55,4) + (8 – 9,1) (57 – 55,4) + ... + (16 – 9,1) (83 – 55,4) = 3,7
(3 - 91)² + (8 – 9,1)² + ... + (16 – 9,1)²

a = 55,4 – (3,7) (9,1) = 21,7


Portanto: Y = 21,7 + 3,7*X.
18

Assim, pode-se estimar que uma pessoa com 20 anos de experiência teria seu salário
anual de aproximadamente R$ 95.700,00.

2.2.3 Agrupamento (clustering)

A tarefa de agrupamento a partir de uma base de dados separa os dados formando


grupos, utilizando critérios de similaridade. A identificação desses grupos é feita utilizando o
princípio de obter padrões que minimizam a distância interna entre elementos do mesmo
grupo e maximizam a distância entre os grupos [HAN & KAMBER, 2001], obtendo dessa
forma grupos compostos por dados com alta similaridade, entretanto, distintos de dados
presentes em outros grupos.
Diferente da tarefa de classificação, que tem rótulos predefinidos, o agrupamento
precisa automaticamente identificar os grupos de dados aos quais o usuário deverá atribuir
rótulos [FAYYAD, 1996]. Exemplificando a tarefa de agrupamento pode-se utilizar uma rede
de supermercado que queira agrupar a partir de seu banco de dados, clientes que possuam um
mesmo perfil de compras. Uma das formas é agrupar cliente que tenham o mesmo perfil a
partir de atributos como faixa etária, nível de renda, etc., para oferecer linhas de produtos
semelhantes.

2.3 Técnicas de Mineração de Dados

Harrison [HARRISON, 1998] afirma que não há uma técnica que resolva todos os
problemas de mineração de dados. Há técnicas diferentes para propósitos diferentes. A
escolha influenciará na qualidade do resultado, pois, para cada problema, há as que oferecem
vantagens e as que oferecem desvantagens. As seções a seguir falam sobre algumas técnicas
bastante utilizadas.

2.3.1 Técnicas baseada em redes neurais

Redes neurais artificiais são modelos matemáticos inspirados nos princípios de


funcionamento dos neurônios biológicos e na estrutura do cérebro. Na implementação de
técnicas de mineração de dados podem ser usados vários tipos de redes neurais. O que
19

acontece geralmente, em aplicações de mineração de dados, é o recebimento, na camada de


entrada de uma rede, de dados pré-processados de uma base de dados, a qual produzirá uma
saída que varia de acordo com a aplicação [GOLDSCHMIDT; PASSOS, 2005].
Entre as tarefas que podem ser implementadas por redes neurais estão classificação,
regressão, e agrupamento. Redes Neurais modificam os pesos das conexões para produzirem
uma saída desejada. Há redes de aprendizado supervisionado, que são úteis em tarefas que
envolvam predição como classificação e regressão. Há também redes com aprendizado não-
supervisionado, que são úteis para tarefas como agrupamento.
GNG (Growing Neural Gas) e SOM (Self-Organizing Maps) são algoritmos baseados
em redes neurais de treinamento não supervisionado, onde geralmente acontece uma
competição entre os dados de entrada.

2.3.2 Técnicas baseadas em algoritmos genéticos

Os algoritmos genéticos são métodos generalizados de busca e otimização que


simulam os processos naturais de evolução. Um algoritmo genético é um procedimento
iterativo para evoluir uma população de organismos e é usado em mineração de dados para
formular hipóteses sobre dependências entre variáveis, na forma de algum formalismo interno
[GOEBEL e GRUENWALD, 1999]. Ou seja, algoritmos genéticos são técnicas que buscam
soluções otimizadas em problemas complexos, seguindo os princípios da evolução natural de
uma população.
As tarefas possíveis de serem implementadas por algoritmos genéticos são
classificação e agrupamento.

2.3.3 Técnicas baseada em árvores de decisão

Uma árvore de decisão consiste numa hierarquia formada por nós folhas e nós
decisivos que são ligados por ramos. É uma estrutura de dados recursiva que tem como
objetivo principal separar classes, correspondentes aos nós folhas da árvore, caminhando
através dos nó de decisão que realizam algum teste sobre um atributo. A árvore pode ser
representada por um conjunto de regras explícitas o que a torna uma modelo de fácil
entendimento, pois cada regra tem o início na raiz da árvore que segue fazendo testes até
alcançar a folha que represente o resultado. Classificação é um exemplo de tarefa que pode
20

ser implementada por árvores de decisão. A Figura 2 mostra uma árvore de decisão que
baseada no clima, utiliza-se dos atributos aparência, umidade e vento para oferecer uma
disposição quanto a jogar ou não jogar golfe.

Aparência

Ensolarada Nublada Chuvosa

Umidade SIM Vento

≤ 75 > 75 Não Sim

SIM NÃO SIM NÃO

Figura 2 – Exemplo de uma árvore de decisão

2.4 Considerações Finais

Neste capítulo foram mostrados conceitos acerca do processo de descoberta de


conhecimento em bases de dados, KDD. Em especial, foi abordada a etapa de mineração de
dados, pois será o foco principal deste trabalho. Nos capítulos que se seguem serão abordados
conceitos de redes neurais, e sobre os algoritmos escolhidos para a realização da etapa de
mineração e análise de resultados.
21

3 REDES NEURAIS ARTIFICIAIS E APRENDIZADO COMPETITIVO

3.1 Motivação Biológica

O cérebro humano é considerado o processador baseado em carbono mais fascinante


que existe. É constituído por neurônios com conexões maciças entre si. Possui
aproximadamente 10 bilhões de neurônios e cerca de 60 trilhões de conexões entre eles
possibilitando a formação de redes muito complexas. Os neurônios recebem, geram e
transmitem os estímulos que chegam ou partem do cérebro.
O neurônio (Figura 3) é formado por dois tipos de extensões filamentares, os dendritos
e o axônio. Os dendritos são responsáveis por conduzirem os impulsos nervosos das
extremidades para o corpo celular e o axônio por conduzir os impulsos nervosos do corpo
celular para as extremidades. Ao ser excitado, um neurônio transmite informações, através de
impulsos nervosos, para outros neurônios. Estes sinais são repetidos como ondas pelo axônio
do neurônio e convertidos para sinais químicos nas sinapses. As conexões sinápticas
conectam os dendritos aos axônios de outros neurônios. As sinapses possuem neuro-
transmissores que realizam a propagação dos impulsos nervosos, e, de acordo com o neuro-
transmissor, a sinapse pode ser inibitória, dificultando a passagem da informação ou
excitatória, favorecendo a passagem da informação.

Figura 3 – Neurônio biológico [Certificação digital nº 0016231/CA – PUC - Rio, 2005]


22

3.2 Redes Neurais Artificiais

As RNAs são modelos matemáticos que se assemelham às estruturas neurais


biológicas e que tem capacidade computacional adquirida por meio de aprendizado e
generalização [BRAGA, CARVALHO & LUDEMIR 2000; HAYKIN 1994]. O aprendizado
é a capacidade que a rede tem de adquirir conhecimento a partir da influência com o
ambiente. A capacidade de generalizar se associa ao fato da rede conseguir responder
corretamente a novos padrões não apresentados durante o treinamento, apenas por já ter sido
passado um problema similar a ela.
Sua semelhança com o cérebro se dá pelo fato de que o conhecimento da rede é
adquirido através de aprendizado e por esse conhecimento ser armazenado em unidades
conectadas entre si denominadas neurônios.
A rede neural tem como uma de suas principais características o fato de a mesma
funcionar como um aproximador universal de funções, uma vez que a partir do treinamento
consegue-se dotar a rede do poder de predizer a saída, mesmo para valores de entrada
diferentes daqueles submetidos no treinamento, alcançando um nível baixo de erros nessas
predições.
O neurônio é a unidade de processamento fundamental de uma RNA. As mesmas são
especificadas pela arquitetura da rede, características dos neurônios e pelo tipo de aprendizado
ou treinamento. A arquitetura é organizada em camadas e está ligada a forma como os
neurônios estão estruturados nas mesmas (será detalhada na seção 3.2.2) e o aprendizado ou
treinamento especifica como devem ser ajustados os pesos (será detalhada na seção 3.2.3).

3.2.1 Neurônio Artificial

O neurônio artificial é uma unidade de processamento de informação essencial a uma


rede neural artificial. De acordo com Tafner [TAFNER, 1998] a semelhança com o neurônio
natural está na associação dos dendritos com entradas, o axônio com saídas, e as ligações do
corpo celular que são realizadas através das sinapses, no corpo celular artificial, são realizadas
através de pesos. As entradas captam os estímulos que são processados pela função de soma e
o limiar de disparo do neurônio biológico é substituído pela função de transferência.
23

Pesos
sinápticos

X1 W1

Entradas
X2 W2 ∑
Função de
... ativação

Xn Wn

Figura 4 – Modelo básico de um neurônio artificial

É possível identificarmos na Figura 4 os três elementos básicos de um neurônio


artificial: um conjunto de sinapses, cada sinapse caracterizada por pesos próprios; um
somador, responsável por fazer a soma das entradas (multiplicadas pelos respectivos peso
sinápticos) e a função de ativação que reduz a amplitude da saída do neurônio [HAYKIN,
2001]

3.2.2 Arquitetura de uma RNA

Os neurônios de uma rede neural artificial podem se conectar de diversos modos. A


forma como eles estão estruturados resulta em diferentes arquiteturas de interconexão. Eles
são arrumados em camadas que se classificam em três categorias: a camada de entrada, onde
são apresentados os vetores de entrada; as camadas intermediárias ou escondidas, onde é feita
a maior parte do processamento e a camada de saída, onde o resultado é obtido e apresentado.
É possível distinguir três tipos de arquiteturas de rede: redes feedforward de uma única
camada, redes feedforward de múltiplas camadas e redes recorrentes.

3.2.2.1 Redes feedforward de uma única camada

Esse tipo de arquitetura possui uma camada de neurônios fontes e uma camada de
neurônios computacionais, sendo considerada como uma rede do tipo alimentada adiante por
24

permitir apenas que os neurônios fontes se esquematizem sobre os neurônios computacionais


e nunca o contrário. Na Figura 5 é possível ver que os neurônios fontes funcionam apenas
como propagadores puros, ou seja, repetem o sinal de sua entrada na sua saída. Dependente
disso a rede possui uma única camada referente à camada de saída dos neurônios
computacionais.

Entradas de
neurônios
fontes

Camada de saída de
neurônios computacionais

Figura 5 – Redes feedforward de uma única camada

3.2.2.2 Redes feedforward de múltiplas camadas

Essa rede se diferencia pela presença de uma ou mais camadas ocultas. Essas camadas
funcionam como extratora de características, seus pesos são uma reunião de características
apresentadas nos padrões de entrada e permitem que a rede crie sua própria representação,
mais rica e complexa do problema. A inclusão de uma ou mais dessa camada possibilita o
aumento de poder computacional da rede, devido ao ganho de conexões sinápticas extras e da
dimensão extra de interações neurais [FERNANDES, 2003] [HAYKIN, 2001]. Na Figura 6 é
exibida uma rede com cinco entradas, uma camada oculta composta de três neurônios e uma
camada de saída com dois neurônios.

3.2.2.3 Redes recorrentes

Distingue-se das redes feedforward por possuir pelo menos um laço de realimentação,
ou seja, possui uma camada de neurônios que conecta sua saída ou com a mesma camada ou
com uma camada anterior. Além de atingir significativamente a capacidade de aprendizagem
e desempenho da rede, esse laço reúne dinâmicas não-lineares por envolver o uso de ramos
25

particulares compostos de elementos de retardo ( ), assumindo a presença de unidades não-


lineares na rede neural [HAYKIN, 2001]. A Figura 7 mostra um exemplo simples de rede
recorrente.

Entradas
de
neurônios
fontes

Camada de
saída
Camada
oculta
Figura 6 – Rede feedforward com uma camada oculta e uma camada de saída

z ˉ¹

z ˉ¹

z ˉ¹

Figura 7 – Redes recorrentes sem neurônios escondidos

3.2.3 Processos de aprendizagem


26

A aprendizagem ou treinamento é o processo pelo qual as redes neurais têm os


parâmetros livres adaptados através da apresentação de estímulos fornecidos pelo ambiente no
qual a rede está inserida. A seqüência de eventos para o processo de aprendizagem implica em
apresentar um estímulo à rede neural, fazer a alteração dos parâmetros livres de acordo com
esse estímulo e obter um novo padrão de resposta ao ambiente de acordo com as mudanças
sofridas pela sua estrutura interna [HAYKIN, 1998]
O processo de aprendizado ou treinamento é classificado em duas formas:
aprendizagem supervisionada e não-supervisionada.

3.2.3.1 Aprendizagem supervisionada

Possui um supervisor para indicar a rede uma saída desejada quanto ao conjunto de
padrões de entrada. Para esse processo, ilustrado na Figura 8, é necessário um conjunto de
treinamento formado pelos vetores de entrada e pelo vetor alvo que se almeja como saída.
Ocorre de forma que são aplicados vetores de entrada, calculando logo após o erro entre a
saída fornecida pela rede e a saída desejada. Baseado nesse erro ocorre à atualização dos
pesos sinápticos, visando aproximar o resultado obtido do resultado esperado nas iterações
seguintes. A adaptação dos pesos sinápticos faz com que os parâmetros submetidos levem ao
resultado esperado para os dados submetidos no treinamento. Com isso, novos dados
submetidos tendem a encontrar na maioria dos casos a resposta correta.
A adaptação dos pesos sinápticos ocorre sempre no sentido de minimizar o erro na
resposta a cada dado submetido. O processo de treinamento é repetido até ser alcançado um
nível de erros considerado aceitável.

Saída real
Entrada RNA
-

Erro ∑

Supervisor +
Saída desejada

Figura 8 – Aprendizagem supervisionada

3.2.3.2 Aprendizagem não-supervisionada


27

Neste tipo de aprendizado não existe supervisor, já que não há resultados previamente
conhecidos para auxiliar no treinamento da rede. Nesse tipo de rede neural o objetivo é
encontrar dados semelhantes entre si, de forma a estabelecer grupos ou classes de dados
semelhantes. Para tanto, uma série de neurônios é distribuída no espaço de entrada, cada um
com um vetor de referência preenchido com valores aleatórios. Durante o treinamento da
rede, o ajuste dos pesos sinápticos ocorre como um ajuste nos valores dos vetores de
referência dos neurônios.
O treinamento não-supervisionado acontece de forma que a rede extraia características
dos dados de entrada, ajustando os pesos dos neurônios de forma a gerar neurônios capazes de
representar bem um grupo de dados de entrada. Assim, grupos de dados são distribuídos em
neurônios representativos de acordo com a similaridade entre eles, gerando as classes ou
grupos de dados citados anteriormente.
Os algoritmos não-supervisionados geralmente utilizam à técnica de aprendizagem
competitiva (será detalhada na seção 3.3).

Entrada RNA Saída

Figura 9 – Aprendizagem não-supervisionada

3.2.4 Exemplos de Redes Neurais

3.2.4.1 Perceptrons

Há dois tipos de Perceptrons: o de camada única e o de múltiplas camadas. São redes


do tipo feedforward de aprendizado supervisionado, cujos pesos são treinados para, a partir de
um vetor de entrada, produzir um vetor alvo mais próximo da solução desejada. O perceptron
de camada única é considerado como o primeiro modelo de rede neural, criado por Rosenblatt
(1958), possuindo a limitação de conseguir tratar apenas aplicações separáveis linearmente.
Para solucionar essa restrição, utiliza-se o perceptron de múltiplas camadas, que surgiu da
necessidade de resolver problemas mais complexos como a separação de classes não -
28

linearmente separáveis, tendo conseguido sucesso na resolução desses problemas, através do


uso do algoritmo erro back-propagation no seu treinamento supervisionado. A Figura 10
ilustra uma perceptron de camada única baseado no modelo de McCulloch-Pitts e a Figura 11
uma perceptron de múltiplas camadas.

Figura 10 – Perceptron de camada única

Figura 11 – Perceptron de múltiplas camadas


29

3.2.4.2 Kohonen

A Rede de Kohonen ou Mapas Auto-Organizáveis (SOM) é uma rede neural do tipo


feedforward de treinamento não-supervisionado. O treinamento dessa rede é feito de acordo
com a técnica de aprendizado competitivo.
A rede é composta por uma camada de entrada e uma camada competitiva de
neurônios onde cada neurônio da camada competitiva se conecta com um padrão de entrada
através de vetores de pesos sinápticos ajustados por um aprendizado não-supervisionado. A
estrutura do mapa se dá pela relação de vizinhança na qual os neurônios da camada de saída
estão interconectados [LOESH, 1996]. É muito aplicada à tarefa de agrupamento, por ser uma
tarefa que une os dados de entrada de acordo com a sua similaridade. É um dos modelos não-
supervisionados mais populares, possuindo várias variantes como modelos hierárquicos, o
Growing Neural Gas e o Growing Grid [FRITZKE, 1997] entre outros. A Figura 12 ilustra
uma rede de Kohonen.

Conexões
sinápticas
Entrada

Neurônio
vencedor

Figura 12 – Rede de Kohonen ou Mapas Auto-Organizáveis

3.2.5 Aplicações de Redes Neurais Artificiais

São inúmeras as aplicações que utilizam redes neurais artificiais. Dentre elas, podemos
destacar reconhecimento de padrões, processamento de imagem, predição de séries temporais,
robótica, controle de processos, processamento adaptativo de sinais e eliminação de ruídos,
entre outros. A Figura 13 mostra um exemplo de uso de mapas de Kohonen para
processamento de imagens. É realizado uma codificação conhecida como quantização
30

vetorial, mostrando uma pequena perda na qualidade da imagem recuperada após


compactação.

Figura 13 – Processamento de imagens usando redes neurais

3.3 Aprendizado Competitivo

No presente trabalho serão trabalhados algoritmos de aprendizado não-supervisionado.


Esses algoritmos utilizam a técnica de aprendizado competitivo, que é muito adequada para
extrair características relevantes de um conjunto de padrões de entrada. O aprendizado
competitivo possui uma abordagem simples, onde neurônios competem entre si pelo direito
de responder a um determinado estímulo, resultando apenas um neurônio vencedor, que ficará
ativo.
Esse processo é constituído de três elementos básicos [RUMELHART e ZISPER,
1985]:

Um conjunto de neurônios com função de ativação igual, diferenciados pelos


pesos da conexão, o que os faz responder diferentemente a um determinado
estímulo;
Limite entre os pesos que conectam os neurônios;
Um mecanismo de competição permitindo aos neurônios responderem a um
conjunto de estímulos de entrada, terminando com apenas um neurônio
vencedor no final do processo.
31

O aprendizado competitivo ocorre quando os neurônios são montados em uma mesma


camada, com estrutura de uma ou duas dimensões, atribuindo-se a cada um deles um vetor de
informações, com seus valores iniciados aleatoriamente ou selecionados entre os dados de
entrada. Estes vetores internos dos neurônios, chamados vetores de referência, estabelecem
uma localização dos neurônios do algoritmo no espaço de entrada. Durante a fase de
treinamento, os dados de entrada são submetidos à camada competitiva onde os neurônios
competem entre si para ver qual o que tem maior proximidade com o padrão fornecido. O
neurônio vencedor é o que se apresentar mais próximo do dado fornecido. A relação de
proximidade pode ser medida através de várias fórmulas, sendo mais comumente utilizada a
distância Euclidiana, dada pela expressão:

n
(x i - y i ) 2 ,
DE = i=1

onde:
DE = Distância Euclidiana
xi = valor para cada atributo no vetor de referência do neurônio analisado;
yi = valor para cada atributo no sinal de entrada;
n = dimensão do espaço amostral.

Após a competição, ocorre à atualização dos pesos, fazendo com que o vetor fique
ainda mais próximo do vetor de entrada e mais representativo para o grupo a qual o padrão
pertence. Esse ajuste é feito exatamente para o neurônio representar a classe ou grupo de
padrões semelhantes. Essa atualização ocorre em função do erro em relação ao sinal de
entrada, ou seja, a atualização dos pesos deve minimizar o erro entre o vetor de pesos e o sinal
de entrada do neurônio que foi o vencedor. A finalidade desse tipo de aprendizado consiste no
ajuste dos pesos para que ocorra sucessivamente a ativação do mesmo neurônio para os sinais
de entrada semelhantes.
A definição dos neurônios a serem atualizados depende do tipo de aprendizado
competitivo que se está realizando. Os algoritmos de aprendizado competitivo pesado (hard
competitive learning) determinam a atualização de apenas um neurônio, o neurônio vencedor,
ou seja, o neurônio considerado mais próximo do sinal de entrada submetido. Essa política é
também chamada de winner-takes-all (vencedor leva tudo). Já algoritmos de aprendizado
competitivo leve (soft competitive learning) determinam a atualização de outros neurônios
32

além do vencedor, numa política chamada de winner-takes-most (vencedor leva a maior parte)
[FRITZKE, 1997].

3.4 Considerações Finais

Este capítulo expôs conceitos fundamentais para a compreensão das redes neurais, sua
arquitetura, suas dinâmicas de treinamento, além do fornecimento de exemplos de utilização.
Esses conceitos são necessários ao trabalho, uma vez que os modelos a serem trabalhados
realizam mineração de dados usando algoritmos baseados em redes neurais. Foi dado um
enfoque em redes neurais não-supervisionadas que usam a técnica de aprendizado
competitivo, pois os algoritmos trabalhados na seqüência são baseados nessa técnica.
33

4 ALGORITMOS: K-MEANS, GNG E SOM

4.1 K-means

É a técnica não-supervisionada e não-hierárquica mais utilizada para a resolução de


problemas de segmetação por agrupamento [MOORE, 2001]. É uma técnica não-
supervisionada pelo fato de fornecer uma classificação automática dos dados, isto é, agrupar
os dados sem a necessidade de intervenção humana e não-hierárquica porque não há conexão
entre os dados agrupados.
O objetivo desse método é, a partir de uma massa de dados, agrupar n objetos em k
grupos com a maior diferença possível entre eles, onde k representa a quantidade de grupos e
deve ser definida antecipadamente. Deve-se aplicar a técnica diversas vezes para diferentes
valores de K, pois nem sempre há satisfação na apresentação dos grupos de alguns desses
valores. É preciso escolher resultados que mostrem uma melhor interpretação dos grupos ou
representação gráfica [BUSSAB, 1990].
Apesar de não ser uma técnica de redes neurais, discute-se se o k-means é ou não um
algoritmo de aprendizado competitivo. Este trabalho adota o ponto de vista de Fritzke
[FRITZKE, 1995], que diz que o processo de treinamento do k-means pode ser considerado
de aprendizado competitivo duro (Hard Competitive Learning).

4.1.1 Algoritmo

O algoritmo k-means foi desenvolvido por J.B. MacQueen em 1967. É um algoritmo


de complexidade O(n) com n representando o número de padrões. O critério de agrupamento
dos clusters é baseado em algumas medidas de similaridade.
Cada cluster é representado pelo seu centro. O k-means é um algoritmo que minimiza
o erro quadrático, função objetivo utilizada pelo mesmo, ou seja, minimiza a distância de cada
objeto ao centro do cluster do qual pertence.
O algoritmo tem como parâmetros de entrada, um conjunto de dados com n elementos
e o número de clusters, k. Como saída, o k-means tenta identificar entre os dados clusters bem
separados.
34

A execução do algoritmo consiste na escolha aleatória dos k centros iniciais para os


clusters, sendo isso de extrema importância já que as posições iniciais muito influenciam no
resultado, pois dependendo da escolha desses centróides o algoritmo pode convergir para um
ótimo local. O passo seguinte será calcular a distância euclidiana de cada objeto em relação ao
centróide de cada grupo, atribuindo o objeto a um cluster onde a distância entre o mesmo e o
centróide é mínima, ou seja, associá-lo ao centro mais próximo. Em seguida, recalcular os
novos centros dos clusters de modo a minimizar a função objetivo erro quadrático, definida
por:

Onde: é a distância escolhida entre um ponto de dados; = i-ésimo padrão


pertencente ao j-ésimo cluster; e cj = centróide do j-ésimo cluster.

Uma vez recalculados os centróides, o algoritmo atualiza os clusters atribuindo todos


os objetos aos novos centros. Esse processo se repete em diversas iterações até que sejam
encontrados os centros finais de cada cluster, ou seja, não apresentem deslocamentos
significativos, ou até que a função objetivo comece a diminuir expressivamente após certa
quantidade de iterações.
O algoritmo tem como vantagens: a simplicidade, facilidade de implementação,
eficiência para trabalhar com grandes bases de dados, e a realocação iterativa, que com
freqüência descobre um ótimo local. Como desvantagens, apresenta a dependência dos
valores iniciais de k, a sensibilidade aos ruídos, já que dados ruidosos ou com valores
extremamente altos podem influenciar na distribuição dos dados, além de apenas funcionar
bem para descobrir clusters com formatos convexos.
A Figura 14 mostra um fluxograma da execução do algoritmo k-means, ressaltando a
inicialização aleatória dos centros, a atribuição de cada objeto conforme a distância que se
encontram dos centros e a busca de forma iterativa pelos centros finais.
35

Escolha aleatória de
Dados
K centros iniciais

Calcular as distâncias
dos objetos aos
centros dos clusters

Atribuir objetos a um
cluster onde a
distância é mínima

Calcular novos centros:


minimizar função
objetivo

Atualizar clusters

Houve deslocamento sim


significativo dos
centros

não

Exibir clusters

Figura 14 – Fluxograma do Algoritmo K-means


36

4.2 SOM (Mapas Auto-organizáveis)

O algoritmo SOM (Self-Organizing Maps – Mapas Auto-Organizáveis) foi


desenvolvido por Teuvo Kohonen, inicialmente em 1982, havendo uma vasta literatura
disponível [KASKI; KANGAS; KOHONEN, 1981-1997]. Desde o seu início, vem sendo
aplicado em diversos campos, como a engenharia, medicina, estatística, entre outros, tendo
como destaques a visualização de dados multivariados, análise de agrupamentos, mineração
de dados, descoberta de conhecimento e compressão de dados [KOHONEN, 2001].
Os mapas auto-organizáveis foram inspirados em mecanismos relacionados ao modo
como diferentes entradas sensoriais são mapeadas de forma ordenada para áreas
correspondentes do córtex cerebral. O SOM é um algoritmo baseado na aprendizagem
competitiva, e que possui treinamento não-supervisionado, tendo como objetivo principal
transformar uma série de padrões de qualquer dimensão em um mapa discreto uni ou
bidimensional [HAYKIN, 2001]. Ou seja, o objetivo do algoritmo é reduzir a
dimensionalidade dos dados fornecidos, conservando ao máximo as relações topológicas do
espaço de entrada [COSTA, 1999; KOHONEN, 1982].
O SOM é uma RNA de duas camadas [KOHONEN, 2001], a camada de entrada e a
d
camada de saída. A camada de entrada corresponde a vetores no espaço , ou seja, uma
série de valores reais, um para cada dimensão dos dados de entrada. Cada um dos d
integrantes do vetor de entrada fornece subsídios para a formação de cada um dos neurônios
da camada de saída [GONÇALVES, NETTO e COSTA, 2006].
Os neurônios da camada de saída são organizados em uma grade e estão
completamente conectados a camada de entrada. Cada neurônio da grade possui o vetor peso
sináptico com dimensão igual a do espaço de entrada. Na camada de saída ocorre a disputa
dos neurônios baseada na aprendizagem competitiva, definindo para cada sinal de entrada o
neurônio mais próximo. O neurônio vencedor é chamado de BMU (Best Matching Unit ou
Neurônio Mais Semelhante). Existe uma relação de vizinhança nesta camada que liga os
neurônios entre si. A relação de vizinhança provê a ligação dos neurônios que respondem a
estímulos similares em grupos de neurônios. Isso devido ao SOM manter as relações
topológicas, pois informações semelhantes são mapeadas no mesmo neurônio e em neurônios
próximos [COSTA, 1999].
A estrutura do mapa é formada pela relação de vizinhança do BMU e seus neurônios
adjacentes. Existem várias topologias para estruturação de um SOM, e a mais comum é a de
37

duas dimensões. No caso dos mapas bidimensionais podemos ter vizinhança retangular, ou
seja, ligação do neurônio vencedor com outros quatro neurônios (figura 15), e vizinhança
hexagonal, ligação do BMU com outros seis neurônios (figura 16) [AURÉLIO, 2004;
COSTA, 1999].

Figura 15 – Vizinhança retangular Figura 16 – Vizinhança hexagonal

4.2.1 Treinamento do SOM

O processo de treinamento do som consiste na inicialização dos pesos sinápticos, e,


em seguida, a inicialização do raio de vizinhança e da taxa de aprendizagem. Então, ocorre o
processo de formação do mapa que é composto por três etapas essenciais: competição, onde
para cada padrão de entrada calcula-se a resposta dos neurônios da grade, sendo escolhido
como vencedor o neurônio com maior resposta, também chamado de BMU; cooperação,
onde se define a vizinhança topológica do BMU; e adaptação, fase em que ocorre a
atualização dos pesos do BMU e neurônios adjacentes [HAYKIN 2001].
A inicialização pode ser de forma aleatória ou linear. A inicialização aleatória é a
forma mais utilizada. Consiste na atribuição de valores aos pesos, sendo recomendável a
escolha de valores pequenos aleatórios, dessa forma, não é considerada nenhuma organização
prévia [HAYKIN, 2001]. Outra possibilidade de inicialização aleatória é a utilização de
alguns dos padrões do conjunto de dados de entrada, que têm seus vetores de referência
copiados para os vetores de pesos dos neurônios da camada de saída [COSTA, 1999]. A
inicialização linear tenta impor alguma organização prévia na criação do mapa, dispensando a
fase de ajuste inicial dos pesos e passando para a parte de convergência do algoritmo de
treinamento.
38

Na fase de competição, cada padrão de entrada é apresentado a todos os neurônios da


grade, ocorrendo uma disputa entre eles, segundo algum critério, geralmente a distância
euclidiana. O neurônio vencedor é aquele que apresenta maior proximidade em relação ao
padrão apresentado, ou seja, possuir a menor distância entre seu vetor de pesos e o vetor do
padrão de entrada. Quando é encontrado o neurônio vencedor, o BMU, ele se torna o centro
de uma função de vizinhança topológica, que define a próxima etapa.
Na fase de cooperação, o neurônio vencedor representa o centro de uma região de
neurônios cooperativos. Os neurônios da camada de saída possuem interações laterais que
induzem efeitos excitatórios nos neurônios vizinhos e inibitórios nos neurônios distantes.
Devido a isso, essa etapa compreende a definição de uma função de vizinhança que tem por
objetivo determinar quais os neurônios que devem sofrer atualização de seus pesos sinápticos
devido à sua relação com o BMU. Essa função é decrescente com o tempo e à medida que se
distancia do BMU [COSTA, 1999]. Torna-se necessário reduzir a função de vizinhança para
obter a convergência [HAYKIN, 2001].
Na adaptação, ao participar da vizinhança, o neurônio se ajusta ao modelo do BMU,
ou seja, os pesos do neurônio vencedor e de seus vizinhos são adaptados de modo que eles
possam se aproximar do padrão de entrada. Os ajustes dos pesos são feitos de tal forma que a
resposta do BMU a um novo padrão de entrada semelhante é melhorada [HAYKIN, 2001].
Diante de uma inicialização aleatória, onde a grade se encontra desorganizada, a etapa
de adaptação é composta por duas fases: ordenação e convergência. Na fase de ordenação,
ocorre a ordenação topológica dos vetores de peso. Deve-se ter cuidado na escolha do
parâmetro de aprendizagem e da função de vizinhança, já que nessa fase a taxa de
aprendizagem deve ser alta e decrescer gradualmente, e a função de vizinhança, que
inicialmente abrange quase todos os neurônios da grade, tem que diminuir lentamente com o
tempo, podendo exigir 1000 iterações ou mais do algoritmo. Na fase de convergência, busca-
se a realização de uma “sintonia fina” do mapa, que pode durar um número de iterações muito
maior do que a fase de ordenação. A taxa de aprendizagem deve ter um valor menor e a
função de vizinhança deve abranger apenas os vizinhos do BMU, podendo ser reduzida
apenas ao neurônio vencedor [HAYKIN, 2001].
Ao término do treinamento espera-se uma ordenação topológica dos padrões de
entrada, ou seja, padrões que eram próximos no espaço de entrada de múltiplas dimensões
devem ser mapeados em neurônios próximos, o que mantém a relação de proximidade no
39

espaço de saída, geralmente bidimensional. A figura 17 retirada de Fritzke, 1997, mostra


resultado do SOM após 40000 sinais de entrada.

Figura 17 – SOM treinado [Fritzke, 1997].

4.2.2 Algoritmo de treinamento do SOM

1. Inicializar os pesos sinápticos da rede:

A = {c1, c2, ..., cN}, gerando um conjunto de vetores de referência wi | i = 1, ..., N.

2. Selecionar aleatoriamente um padrão de entrada:


d
ξ = (ξ1, ξ2, ..., ξd), ξ

3. Calcular a distância euclidiana para cada neurônio da grade:

4. Escolher o BMU de acordo com o critério de maior similaridade

5. Atualizar pesos do BMU e de sua vizinhança


40

onde t é uma iteração, a função hsi (t) define a vizinhança do neurônio vencedor s na
iteração t. A função é formada pela taxa de aprendizagem α(t) e por uma função de vizinhança
definida pela seguinte forma:

Se necessário reduzir raio de vizinhança e reduzir taxa de aprendizado α(t).

Após estes passos, o processo se reinicia com a submissão de um novo padrão de


entrada para treinamento, realizando-se então uma nova iteração. As iterações continuam até
que se atinja um critério de parada, que pode ser o número máximo de iterações.

4.2.3 Análise e visualização dos Mapas

O SOM é considerado uma ferramenta de grande aplicação para analisar e visualizar


agrupamentos de dados. Isso se dá fundamentalmente pela facilidade de visualização dos
resultados através do método comumente empregado, a matriz de distâncias unificadas, ou
matriz-U [ULTSCH, 1993]. A mesma permite que dados com dimensões maiores que três,
sejam mapeados em uma grade bidimensional, com detecção visual das relações topológicas
dos mesmos, já que a matriz-U é composta pelas distâncias de todos os neurônios adjacentes.
Sobre o mapa bidimensional gerado pela matriz-U podemos visualizar regiões de
proximidades entre os neurônios, consideradas “vales” e que representam os grupos; e regiões
com maior distância entre os neurônios, consideradas “elevações”, que representam a
distinção entre os agrupamentos.
Para mostrar os resultados através da matriz-U utilizaremos a base composta de dados
artificiais, num espaço de entrada de duas dimensões, ou seja, apenas dois atributos compõem o vetor
de cada sinal de entrada. A base é composta de 500 sinais, que formam duas classes de dados
compostas de 200 pontos cada uma, além de 100 pontos distribuídos aleatoriamente para formar dados
de ruídos, ou outliers, fora de qualquer agrupamento. A figura 18 mostra os dados em uma projeção
bidimensional. E a figura 19 mostra a matriz-U para SOM em base de dados artificiais 2D, foi gerado
um mapa de tamanho 16 x 7, com 112 neurônios.
41

Figura 18 – Base de dados artificiais 2D

Figura 19 – Matriz-U para SOM em base de dados artificiais 2D


42

4.3 Growing Neural Gas

O algoritmo Growing Neural Gas (GNG) foi desenvolvido por Bernd Fritzke
[FRITZKE, 1995]. Surgiu com o propósito de melhorar limitações do modelo básico de
Kohonen quanto à dimensão e estrutura. Ao contrário do SOM, que necessita previamente da
definição de uma topologia e da quantidade de neurônios, que permanecem fixos até o final
do treinamento, no GNG não é necessário especificar o tamanho da rede nem definir uma
estrutura. No GNG, independente da dimensão dos dados de entrada, o seu treinamento é
iniciado com apenas dois neurônios, número esse que vai sendo incrementado, mantendo a
capacidade de gerar uma topologia adequada ao tipo de problema [VARGAS, 2004].
O GNG é um algoritmo incremental não-supervisionado [HOLMSTROM, 2002] em
que, dado um conjunto inicial de vetores, gera-se um grafo de forma incremental, onde os
vértices representam os neurônios e as arestas a vizinhança entre os neurônios. Esse grafo
reflete a topologia dos dados de entrada, como também sua dimensão, sendo que o algoritmo
não faz redução de dimensionalidade o que não permite uma fácil visualização dos dados.
Durante o treinamento do GNG é possível inserir e remover neurônios. Cada neurônio
consiste de: w i - um vetor de referencia em Rn ; erroi – variável que representa o erro local
acumulado; e um conjunto de arestas que define a vizinhança topológica do neurônio i
[HOLMSTROM, 2002]. Como já citado anteriormente, o algoritmo inicia com dois
neurônios, acrescentando novos neurônios durante o decorrer do treinamento. A inserção de
novos neurônios ocorre a cada λ iterações do algoritmo, sendo λ um parâmetro pré-definido.
A posição onde um novo neurônio é inserido é determinada pela variável erroi, já que
essa inserção ocorre próxima a neurônios que possuem o maior erro acumulado. O erro
acumulado representa a distância entre um dado fornecido e o vetor de referência do neurônio
vencedor. Toda vez que um neurônio é escolhido como vencedor, sua distância para o dado de
entrada é somada ao valor já existente na variável erroi. Dessa forma, o erro acumulado torna-
se um parâmetro para determinar um local no espaço de saída onde os dados de entrada estão
relativamente distantes dos neurônios vencedores, mostrando a necessidade da inserção de
mais neurônios na região.
Para gerar a topologia da rede é utilizado o aprendizado competitivo de Hebb
(Competitive Hebbian Learning - CHL) que adiciona uma aresta entre o neurônio vencedor e
segundo melhor colocado na iteração. As arestas possuem uma variável idade, que possui um
valor máximo que ocasiona a remoção das mesmas. Se a remoção de arestas resultar em
43

neurônios sem ligações, serão considerados como neurônios mortos, que são também
removidos.
O algoritmo pára ao atingir uma condição de parada pré-definida. Essa condição pode
ser a quantidade máxima de neurônios atingida, ou um erro médio global mínimo atingido.
Ao final do treinamento é gerado um grafo, cuja formação e topologia foram atualizadas
correspondendo à distribuição do espaço de entrada. A seguir será descrito o algoritmo
Growing neural gas.

4.3.1 Algoritmo GNG

1. Inicializar um grafo com dois neurônios com vetores de referência aleatórios e


uma aresta de idade 0 entre eles;

2. Dado um sinal de entrada x, localizar o neurônio mais próximo s e segundo colocado t,


usando Distância Euclidiana

onde ||ws - x||2 é o menor valor e ||wt - x||2 é o segundo menor;

3. O neurônio vencedor s atualiza seu erro local acumulado

erros = erros + ||ws - x||2;

4. Mover s e seus vizinhos topológicos em direção ao dado de entrada por frações ew e en

ws = ws + ew (x - ws)

wn = wn + en (x - wn), n Neighbour(s)

As idades de todas as arestas vizinhas do neurônio vencedor são incrementadas;

5. Se existe uma aresta conectando s e t, sua idade é ajustada para 0; senão, uma
aresta com idade 0 é criada;

6. As arestas com idade maior que o parâmetro amax são removidas;

7. Caso seja uma iteração múltipla de λ, insere-se um novo neurônio. Para tanto, encontra-
se o nó u com o maior erro local acumulado; encontra-se o vizinho de u, v, com o maior
erro local acumulado; insere-se um neurônio r entre u e v

wr = (wu + wv) / 2;
44

cria-se arestas entre u e r, v e r; remove-se a aresta entre u e v; atualiza-se os erros locais


dos neurônios envolvidos

errou = α x errou

errov = α x errov

error = errou;

8. Decrementa-se todos os erros em um fator β

erroj = erroj – β x erroj

 Repete-se até alcançar critério de parada.

4.3.2 Resultados do GNG

A figura 20 mostra a execução do GNG sobre a base de dados artificial tridimensional, com
parada definida para erro médio acumulado máximo de 1,0 quando havia um total de 145 neurônios. É
possível perceber a formação de três classes de dados.

Figura 20 – GNG em base de dados artificial 3D


45

A figura 21 representa o algoritmo GNG na forma de um fluxograma.

Figura 21 – Fluxograma do algoritmo GNG.

4.4 Considerações Finais

Neste capítulo foram mostrados os algoritmos de agrupamento estudados, o k-means,


seguido pelo SOM e GNG, com descrições passo a passo da execução de cada um e
demonstrações de resultados. O capítulo a seguir mostrará a aplicação dos algoritmos em uma
base de dados real e um comparativo de seus resultados.
46

5 RESULTADOS OBTIDOS COM A BASE DE DADOS WINE.DATA

Neste capítulo será apresentada a base de dados Wine, disponível no UCI Machine
Learning Repository [ASUNCION & NEWMAN, 2007]. Serão mostrados os resultados
colhidos pela aplicação dos algoritmos à referida base de dados. Para a execução do k-means
e do SOM foi utilizado o SOMToolbox [SOM Toolbox, 2002-2005], um pacote de funções
para o software MatLab ® a partir da versão 5.0. Para a execução do GNG foram utilizadas
funções disponíveis em www.info.ffm.com.br/~ricardo/gng. Os códigos utilizados para a
execução e visualização dos resultados estão no apêndice A.
Como os atributos da base de dados são todos numéricos, mas de ordens de grandeza
diferentes, é necessário um procedimento de normalização dos dados. Esse procedimento faz
parte da fase de transformação dos dados do processo de KDD, sendo necessário para que a
aplicação dos algoritmos seja bem sucedida. Neste procedimento, é feito um cálculo de
proporcionalidade para que todos os valores sejam encaixados numa faixa de valores, de
forma que algum atributo de ordem de grandeza diferente dos demais não distorça os
resultados obtidos.

5.1 Características da base de dados

A base de dados Wine Data é o resultado de uma análise química de vinhos


produzidos de uvas de uma mesma região da Itália, mas de três diferentes cultivadores. Essas
análises químicas mostraram as quantidades encontradas de 13 diferentes constituintes de
cada amostra. Entre estes atributos estão álcool, cinzas, alcalinidade das cinzas, magnésio,
tonalidade, intensidade da cor, alguns componentes químicos, etc.
A base é composta por 178 instâncias dos 13 atributos, todos contínuos e sem
valores faltando, distribuídos em três classes, a 1ª com 59, a 2ª com 71 e a 3ª com 48.
Exemplo de algumas linhas da base Wine:
1,14.23,1.71,2.43,15.6,127,2.8,3.06,.28,2.29,5.64,1.04,3.92,1065
1,13.2,1.78,2.14,11.2,100,2.65,2.76,.26,1.28,4.38,1.05,3.4,1050
1,13.16,2.36,2.67,18.6,101,2.8,3.24,.3,2.81,5.68,1.03,3.17,1185
1,14.37,1.95,2.5,16.8,113,3.85,3.49,.24,2.18,7.8,.86,3.45,1480
1,13.24,2.59,2.87,21,118,2.8,2.69,.39,1.82,4.32,1.04,2.93,735
1,14.2,1.76,2.45,15.2,112,3.27,3.39,.34,1.97,6.75,1.05,2.85,1450
47

5.2 Aplicação do algoritmo k-means

A Figura 22 traz uma visualização bidimensional da base de dados Wine, com as


classes encontradas pelo algoritmo k-means em destaque.

Figura 22 – Resultado do algoritmo k-means.

Aplicando o algoritmo k-means, assumindo que K=3, foram formados grupos bem
separados sendo fácil a visualização das três classes nas três cores do gráfico. Para a obtenção
de uma boa visualização foi necessário reduzir a dimensionalidade dos dados. Neste ponto foi
utilizado o procedimento Sammon [Sammon, 1969], que realiza otimização, preservando a
ordem de similaridade dos pontos no espaço de entrada Rd no espaço de saída com a
dimensionalidade escolhida [COSTA, 1999]. Para uma melhor visualização dos resultados, a
redução foi feita para duas dimensões.
48

Percebe-se em alguns pontos uma má classificação por parte do k-means, notadamente


no ponto verde mais à direita da Figura 22, que se localiza muito mais próximo da classe
ilustrada em vermelho. Isso se deve ao não-determinismo do k-means, que é sensível à ordem
de submissão dos dados de entrada, podendo gerar algumas classificações disparatadas. Como
o k-means escolhe aleatoriamente a ordem dos dados de entrada a serem analisados, em novas
execuções, é possível que a má classificação ocorra em pontos completamente distintos.

5.3 Aplicação do algoritmo SOM

A figura 23 demonstra o resultado da execução do algoritmo sobre a base de dados


Wine, mostrada sobre um gráfico da superfície da Matriz U.

Figura 23 – Matriz U resultada da execução do SOM na base de dados Wine.

Para esta execução do SOM foi utilizada a determinação automática do tamanho do


mapa, tendo sido gerado um mapa de 11 x 6 neurônios. Foram utilizadas as duas topologias
49

do SOM (retangular e hexagonal), tendo sido observado um resultado mais claro na topologia
hexagonal, exibida então na figura 23.
A matriz U permite uma fácil visualização das classes, pois por si só já efetua a
redução da dimensionalidade dos dados, trazendo para o plano bidimensional. As três classes
são evidenciadas pelas três depressões no gráfico, enquanto as elevações indica o nível de
distinção entre os dados.

5.4 Aplicação do algoritmo GNG

A figura 24 mostra uma projeção tridimensional dos neurônios após a execução do


algoritmo GNG, incluindo as relações de vizinhança entre eles.

Figura 24 – Resultado do algoritmo GNG


50

Assim como no k-means, no algoritmo GNG foi necessário o uso de um procedimento


para redução de dimensionalidade, com o intuito de permitir uma visualização dos resultados.
Novamente foi usado o procedimento Sammon.
O GNG possui uma série de parâmetros a serem inicializados para executar, entre eles
taxa de aprendizado do neurônio vencedor (ew), taxa de aprendizado dos neuronios adjacentes
(en), idade máxima das arestas (aMax), número de iterações até a inserção de um novo neurônio
(λ), taxa de decremento dos erros locais (α), taxa de decremento do erro global (β). Os valores
utilizados foram os valores padrão da implementação do algoritmo utilizado, listados a seguir:
ew = 0,2
en = 0,006
aMax = 100
λ = 100
α = 0,5
β = 0,005
Além destes parâmetros, é necessário definir o critério de parada para o GNG. Nesta
execução foi utilizado um erro global máximo de 1,0 ou um número máximo de 250
neurônios, o que ocorrer primeiro.
51

CONSIDERAÇÕES FINAIS

O processo de descoberta de conhecimento em base de dados e conseqüentemente a


mineração de dados, a principal etapa desse processo, possuem atualmente uma vasta
aplicação em diferentes segmentos. O avanço tecnológico da informação traz consigo a
necessidade de ferramentas que automatizem a descoberta de padrões interessantes e
desconhecidos em bases de dados reais, que venham a ajudar em tomadas de decisões
importantes que sejam um diferencial no mercado competitivo. A utilização de dados bem
processados e normalizados, da técnica e do algoritmo de mineração de dados escolhidos
propriamente para o determinado problema, juntamente com o especialista, profissional
humano que deve possuir um amplo estudo teórico e prático, proporcionam grandes chances
de sucesso ao final do processo de KDD.
Neste trabalho foram descritos alguns conceitos sobre KDD e mineração de dados,
como também algumas tarefas e técnicas utilizadas. Um enfoque maior foi dado à técnica
baseada em redes neurais artificiais, pois a aplicação da mesma dentro desse contexto tem se
mostrado robusta e eficiente. A capacidade de aprender e generalizar das RNAs, juntamente
com um treinamento adequado, oferece possibilidades de sucesso no reconhecimento de
padrões.
Neste trabalho, foram escolhidos algoritmos não supervisionados. O k-means para
efeito de comparação e o SOM e o GNG, que se valem de aprendizado competitivo. Os
mesmos foram aplicados a base de dados real Wine, e obtiveram semelhanças nos resultados.
Cada um com sua dinâmica de treinamento, vantagens e desvantagens, conseguiram ressaltar
três classes que podem ser visualizadas com suas particularidades nos gráficos gerados por
cada um.
A execução do k-means é muito dependente do valor fornecido como número de
centróides. Os resultados alcançados foram positivos, pois a quantidade de centróides passada
era igual à quantidade de classes da base de dados, uma vez que esse valor era conhecido. Isso
é uma séria limitação do k-means quando se trata de uma base com número de classes ainda
desconhecido.
O algoritmo SOM mostra bons resultados independente de valores de inicialização. A
matriz U dispensa o uso de um procedimento de redução de dimensionalidade e fornece uma
52

visualização precisa, facilitando a análise do especialista. Por facilidades assim, o SOM é o


algoritmo mais utilizado para classificação automática de dados.
O GNG mostra o resultado de pior visualização entre os três, dificultando a análise do
especialista. Além disso, seus resultados são influenciados por um grande número de
parâmetros de inicialização, o que dificulta a obtenção de bons resultados, pois um parâmetro
mal configurado pode distorcer o resultado final.
A mineração dos dados foi feita através da aplicação dos algoritmos, cujos resultados
foram provenientes de uma base de dados com os dados já pré-processados e que foram
normalizados antes da execução da etapa de mineração. A etapa de mineração entrega
resultados para etapa de pós-processamento, a qual não é objetivo deste trabalho, mas que é
feita pelo especialista dotado de conhecimentos específicos da área, responsável pela
interpretação dos resultados.
Como sugestão para trabalho futuro: desenvolver outra forma de visualização do
GNG, que demonstrou ter a visualização mais deficiente para identificação das classes.
53

REFERÊNCIAS BIBLIOGRÁFICAS

ASUNCION, A. & NEWMAN, D.J. (2007). UCI Machine Learning Repository [http://
www.ics.uci.edu/~mlearn/MLRepository.html]. Irvine, CA: University of California, School
of Information and Computer Science.

AURÉLIO M.; VELLASCO M.; LOPES C. H. Descoberta de conhecimento e Mineração


de dados. ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo
26/08/99).

BRAGA, A. P.; CARVALHO, A. P. L. F., & LUDEMIR, T. B. Redes Neurais Artificiais:


teorias e aplicações. Rio de Janeiro: Livros Técnicos e científicos.

BUSSAB, Wilton de Oliveira; MIAZAKI, Édina Shizue; ANDRADE, Dalton Francisco de.
Introdução à análise de agrupamentos. São Paulo: Associação Brasileira de Estatística,
1990.

COSTA, José A. F. Classificação Automática e Análise de Dados por Redes Neurais


Auto-Organizáveis. Tese de Doutorado. UNICAMP, dezembro de 1999.

DONI, Marcelo Viana. Análise de cluster: métodos hierárquicos e de particionamento.


São Paulo: O Autor, 2004.

FAYYAD, Usama M. et al. Advances in knowledge discovery and data mining.


Massachusetts: MIT Press, 1996.

FAYYAD, U. M; PIATETSKY-SHAPIRO, G.; SMYTH, P. From Data Mining to


Knowledge Discovery in Databases: An Overview. Knowledge Discovery and Data Mining,
Menlo Park: AAAI Press, 1996.

FERNANDES, A. M. R. Inteligência artificial: noções gerais. Florianópolis – SC: Visual


Books, 2003.

FRITZKE, B. A Growing Neural Gas Network Learns Topologies. Advances in Neural


Information Processing Systems, 1995.
54

_____. Some Competitive Learning Methods. Disponível online em


http://www.neuroinformatik.ruhr-uni-bochum.de/ini/VDM/research/gsn/JavaPaper/t.html.
Abril de 1997. Acesso em 12 de novembro de 2007.

GOEBEL, M.; GRUENWALD, L. A survey of data mining and knowlodge discovery


software tools. SIGKDD Explorations, v. 1, p. 20-33, 1999.

GOLDSCHMIDT R.; PASSOS E. Data Mining: um guia prático. Rio de Janeiro: Elsevier,
2005.

GONÇALVES, Márcio L.; NETTO, Márcio L. de Andrade; COSTA, Jose Alfredo F.


Explorando as Propriedades do Mapa Auto-organizável de Kohonen na Classificação de
Imagens de Satélite.

HAN, J., KAMBER, M., Data Mining: Concepts and Tecniques. Morgan Kaufmann
Publishers. San Francisco. EUA. 2001.

HARRISON, Thomas H. Intranet Data Warehouse. São Paulo: Berkeley Brasil, 1998.

HAYKIN, S. Neural Networks – A Comprehensive Foundation. Prentice-Hall, 1994.

_____. Redes Neurais: princípios e prática. 2ed – Porto Alegre: Bookman, 2001.

HOLMSTRÖM, J. Experiments with GNG, GNG with Utility and Supervised GNG.
Master Thesis, Uppsala University, 2002.

KASKI Samuel; KANGAS Jari; KOHONEN Teuvo. Bibliography of Self-Organizing Map


(SOM) Papers. Finland: 1981-1997.

KOHONEN, Teuvo. Self-organizing formation of topologically correct feature maps.


Biological Cybernetics, 1982.

_____. Self-Organizing Maps. 3nd Ed., Berlim: Springer, 2001.


55

LOESCH, Cláudio; SARI, Solange Teresinha. Redes Neurais Artificiais: fundamentos e


modelos. Blumenau: FURB, 1996.

MACQUEEN J. B. Some Methods for classification and Analysis of Multivariate


Observations, Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and
Probability Berkeley, University of California Press, (1967): 1:281-297.

MOORE, Andrew. K-means and Hierarchical Clustering – Tutorial Slides. Disponível em


http://www-2.cs.cmu.edu/~awm/tutorials/kmeans.html. 2001. Acesso em 21 de março de
2008.

PUC-RIO, Certificação digital. Redes neurais artificiais. Disponível online em:


http://www.maxwell. lambda.ele.puc-rio.br/cgi-bin/PRG_0599.EXE/5566_6.pdf. Acesso em
15 de outubro de 2007.

REGO, Renata Lúcia; MENDONÇA Ernesto do. Sistema neural para reconstrução de
superfícies a partir de nuvem de pontos. Recife: O autor, 2006.

RESENDE, Solange Oliveira (org). Sistemas inteligentes: fundamentos e aplicações.


Barueri, SP: Manole, 2005.

SAMMON, J.W. A Non-Linear Mapping for Data Structure Analysis. IEEE Trans. In
Computers, vol 18, 1969.

SILVA, Marcos Aurélio Santos da. Mapas auto-organizáveis na análise exploratória de


dados geoespaciais multivariados. INPE – São Jose dos Campos, 2004.

SOM Toolbox is Copyright (C) 2000-2005 by Esa Alhoniemi, Johan Himberg, Juha
Parhankangas and Juha Vesanto.

TAFNER, M. A. O que são redes neurais artificiais. Disponível online em http://www.


cerebromente.org.br/n05/tecnologia/rna.htm#neuronio html. Março/maio 1998. Acesso em 22
de novembro de 2007.

TEIXEIRA, R. A. Redes Neurais Artificiais. Tese de Mestrado. Unileste - MG, 2005.

ULTSCH, A. Self-Organizing Neural Networks for Visualization and Classification. In:


O. Opitz et al. (Eds). Information and Classification. Springer: Berlin. 1993.
56

VARGAS, Ernesto Cuadros. Recuperação de informação por similaridade utilizando


técnicas inteligentes. USP – São Carlos. Janeiro, 2004.
57

APÊNDICE A

Trechos de códigos para execução dos algoritmos no Matlab

% SOM
normWine = som_normalize(Wine,'var'); % Normalização dos dados
sMap = som_make(normWine,’hexa’); % Execução do SOM
umat = som_umat(sMap); % Cálculo da matriz U
surf(umat); % Exibição do gráfico
shading interp;

% kmeans
respKmeans = kmeans(normWine,3); % Execução do k-means
dados = sammon(normWine,2); % Procedimento Sammon para reduzir a duas dimensões
set(gcf, 'color', [ 1 1 1]); % Exibição do gráfico
hold;
plot(dados(find(respKmeans == 1),1),dados(find(respKmeans == 1),2),'*r');
plot(dados(find(respKmeans == 2),1),dados(find(respKmeans == 2),2),'*b');
plot(dados(find(respKmeans == 3),1),dados(find(respKmeans == 3),2),'*g');

% GNG
respGNG = gngMake(normWine,250); % Execução do GNG
gngShow(normWine,respGNG.Neurons,respGNG.adj); % Visualização do GNG

Potrebbero piacerti anche