Sunteți pe pagina 1din 25

UNIVERSIDADE FEDERAL DE MINAS GERAIS

Programa de Pós-Graduação em Engenharia Elétrica


Curso de Especialização em Automação Industrial

IMPLEMENTAÇÃO DE CLASSIFICADORES
PARA CLASSIFICAÇÃO DE PACIENTES COM
LEUCEMIA

Luiz Eduardo Ferreira Barbosa

Belo Horizonte
2010
Luiz Eduardo Ferreira Barbosa

IMPLEMENTAÇÃO DE CLASSIFICADORES
PARA CLASSIFICAÇÃO DE PACIENTES COM
LEUCEMIA
Universidade Federal de Minas Gerais

Trabalho final apresentado ao Programa de Pós-Graduação


em Automação Industrial da Universidade Federal de
Minas Gerais, como requisito parcial para conclusão da
disciplina de Princípio e Aplicações de Redes Neurais
Artificiais

Professor: Antônio de Pádua Braga

Belo Horizonte
2010
LISTA DE ILUSTRAÇÕES

FIGURA 1 - EXEMPLO DE UM PERCEPTRON SIMPLES. 9


FIGURA 2 – (A) RESULTADO DO CLASSIFICADOR KNN PARA K=1. (B)
RESULTADO DO CLASSIFICADOR KNN PARA K=2 (K ÓTIMO). (C)
VARIAÇÃO DO ERRO DO CLASSIFICADOR KNN. 14
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR PERCEPTRON SIMPLES
PARA OS DADOS DE TREINAMENTO. (B) PERCEPTRON SIMPLES PARA OS
DADOS DE VALIDAÇÃO. (C) MASSA DE DADOS DE TREINAMENTO
UTILIZADA PARA O ALGORITMO DO PERCEPTRON SIMPLES. 15
FIGURA 4 – VARIAÇÃO DO ERRO DO CLASSIFICADOR PERCPETRON
SIMPLES. 16
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (10 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 300 GENES. (B) APROXIMACAO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 17
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (10 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 18
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (19 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 300 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 19
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (19 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 20
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (20 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 300 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 21
FIGURA 3 – (A) RESULTADO DO CLASSIFICADOR MLP (20 NEURÔNIOS NA
ENTRADA, 1 NA SAÍDA) DURANTE TREINAMENTO E CONSIDERANDO UM
CONJUNTO DE 50 GENES. (B) APROXIMAÇÃO PARA OS DADOS DE
VALIDAÇÃO. (C) VARIAÇAO DO ERRO AO LONGO DAS ÉPOCAS. 22
4

SUMÁRIO
1 INTRODUÇÃO............................................................................................................................................ 6

2 DESENVOLVIMENTO.................................................................................................................................. 6

2.1 KNN..............................................................................................................................................7
2.2 PERCEPTRON SIMPLES...............................................................................................................8
2.2 MLP (MULTILAYER PERCEPTRON)...........................................................................................10
3 DESENVOLVIMENTO................................................................................................................................ 10

3.1 BASE DE DADOS........................................................................................................................10


3.2 ESCOLHA DOS ATRIBUTOS PARA CLASSIFICAÇÃO.................................................................11
3.3 IMPLEMENTAÇÃO DOS MÉTODOS............................................................................................11
3.3.1 KNN......................................................................................................................................12
3.3.2 Perceptron simples..............................................................................................................12
3.3.3 Multilayer Perceptron.........................................................................................................13
4 RESULTADOS OBTIDOS............................................................................................................................ 13

5 CONCLUSÃO............................................................................................................................................ 23

REFERÊNCIAS.............................................................................................................................................. 25
5

1 INTRODUÇÃO

As redes neurais, na atualidade, vêm sendo amplamente utilizadas em

diversas áreas. Matemática, estatística, biotecnologia e os variados campos da

engenharia são alguns exemplos de onde a aplicação das redes neurais tem

obtido sucesso na busca de soluções para os problemas da atualidade. A

capacidade de aprendizado das redes neurais e o comportamento similar ao

pensamento humano são alguns dos fatores que posicionam as redes neurais

como uma boa aposta para os dias que virão.

Uma das aplicações em desenvolvimento e que já apresentam resultados

são os classificadores, capazes de analisar os dados que lhe são apresentados,

identificar padrões a partir de certos atributos e separá-los em diferentes

classes.

Nesse trabalho, pretende-se analisar alguns dos métodos de classificação

com o intuito classificar pacientes com leucemia por meio de sua composição

genética, sendo eles o KNN (K-Nearest Neighbors), o Perceptron Simples e o

MLP (Multilayer Perceptron). Dentre eles somente os dois últimos podem ser

considerados redes neurais, dada a sua capacidade de aprendizado.

Inicialmente, é realizada uma apresentação dos métodos juntamente com

uma revisão bibliográfica, seguida pela descrição da base de dados escolhida e

a respectiva apresentação e avaliação dos resultados obtidos.


6

2 DESENVOLVIMENTO

2.1 KNN

O método KNN é bastante conhecido e utilizado para classificação. A sua

utilização pode ser confirmada com uma simples inspeção em processos

químicos e biológicos, onde seus bons resultados são uma característica assim

como sua fácil implementação. Além disso, o método KNN pode ser utilizado

para clustering, sendo este método baseado em memória, sem aproximação de

modelos, com toda a massa de dados de treinamento armazenada e sendo

utilizada a cada nova predição ou classificação. Uma característica que merece

destaque é a capacidade das redes KNN de aproximarem superfícies de

separação não-lineares, que ocorrem inevitavelmente quando se trabalha com

uma massa onde ocorre superposição entre os mesmos.

A abordagem por trás deste método é caracterizada por atribuir uma

classe a um determinado ponto ou dado conforme sua distância em relação aos

k pontos mais próximos e suas respectivas classes. Em outras palavras, uma

rede KNN é capaz de classificar um novo dado conforme sua distância em

relação aos dados armazenados. Logo, para um ponto k qualquer, onde dentre

os 5 pontos mais próximos, 3 pertencem a classe 1 e 2 pertencem a classe 2,

será atribuída a classe 1.


7

Dentre as vantagens da rede KNN pode-se destacar a robustez a ruídos,

resposta interpretável e sua fácil implementação. Dentre as desvantagens deve-

se destacar a necessidade de escolher um valor para o parâmetro k e a

complexidade computacional imposta, pois quanto maior a base de dados

utilizada maior o esforço computacional caracterizado pelo tempo demandado na

classificação. Existem duas derivações do KNN que merecem descrição. A

primeira, Distance Weighted KNN, atribui pesos durante a escolha das classes

conforme a distância, resultando em classes atribuídas considerando uma

determinada área ao redor do ponto apresentado. A segunda derivação, CNN

(Condensed Nearest Neighbors) é caracterizada pelo fato de escolher pontos

dentre o conjunto de dados armazenados ou de treinamento, que são mais

importantes para a determinação da superfície de separação. Este algoritmo

utiliza apenas os pontos escolhidos para determinar a classe dos pontos que lhe

são apresentados, o que reduz o esforço computacional.

Para o cálculo da distância foi adotado o cálculo euclidiano, definido como

a raiz quadrada da soma das distâncias em cada dimensão ou a soma do

módulo das distâncias em cada dimensão.

2.2 PERCEPTRON SIMPLES

O neurônio humano e seu funcionamento foi a inspiração para o modelo

de rede neural denominado perceptron. Basicamente, os neurônios humanos

recebem impulsos elétricos por meio de seus axônios e, a partir daí, por meio de
8

uma lógica interna que leva em consideração a intensidade dos sinais e suas

origens, decidem se os mesmos devem ser propagados ou não.

O perceptron, na forma mais simples que se possa descrever, é uma

função que soma os valores de suas entradas, de forma ponderada, utilizando

pesos pré-estabelecidos. Caso o resultado da soma das entradas ultrapasse o

valor conhecido como valor de limiar, será atribuído ao conjunto de valores de

entrada uma classe e, caso contrário, outra.

De forma resumida, as entradas são os atributos que determinam o ponto

a ser avaliado. A superfície de separação determinada por um perceptron é

linear, ou seja, as classes são determinadas em lados opostos de um hiperplano.

Um perceptron pode ser entendido pela Figura 1. Matematicamente, se wmxn é a

matriz de pesos, xnxp são os atributos de entrada e ymxp é a saída, sendo n o

número de dimensões (atributos), m o número de neurônios (1, no caso do

perceptron simples) e p o número de observações, tem-se que:

Figura 1 - Exemplo de um perceptron simples.

u   wi xi  wx
(1)
9

A função f(z) pode ser do tipo “se u > Ө, então y = 1, caso contrário y = 0”.

Sendo assim, 0 e 1 representariam duas classes. Essa estratégia foi adotada na

metodologia desse artigo.

Os pesos são ajustados automaticamente, de forma a se obter o menor

erro possível para os dados de treinamento. Para facilitar o entendimento do

ajuste de pesos, pode-se tomar o exemplo de um perceptron com dois atributos

de entrada. A equação de saída resultará em uma superfície de separação

determinada pela reta

1 
x2   x1 
2 2 . (2)

O ajuste automático dos pesos busca, então, encontrar a direção de ajuste

da reta e em quanto deve ser ajustada para que o erro de classificação seja o

menor possível. O aprendizado de um perceptron encontra-se justamente no

ajuste desses pesos tendo-se em vista a base de dados de treinamento.

2.2 MLP (MULTILAYER PERCEPTRON)

O neurônio humano e seu funcionamento foi a inspiração para o modelo

de rede neural denominado perceptron. Basicamente, os neurônios humanos

recebem impulsos elétricos por meio de seus axônios e, a partir daí, por meio de

uma lógica interna que leva em consideração a intensidade dos sinais e suas

origens, decidem se os mesmos devem ser propagados ou não.


10

3 DESENVOLVIMENTO

3.1 BASE DE DADOS

A base de dados escolhida para este trabalho visa classificar pacientes

com leucemia por meio de sua expressão genética. Os dados provenientes de

Golub et al, são uma combinação de amostras de treinamento e validação de 47

pacientes com leucemia linfóide aguda (acute lymphoblastic leukemia - ALL) e 25

pacientes com leucemia mielóide aguda (acute myeloid leukemia - AML). As

amostras foram obtidas utilizando o Affymetrix Hgu6800 e apresentam

informações referentes a 7129 genes (Affymetrix probes). Os dados foram

obtidos por meio de um website de pesquisas e foram trabalhados para

atenderem os interesses desse estudo.

Ao todo este estudo avaliou 72 amostras, cada uma contendo 7129 genes

com o objetivo de classificar pacientes com leucemia em duas classes, ALL e

AML.

Dessa massa de dados, 80% foi utilizada para treinamento e 20% para

validação.

3.2 ESCOLHA DOS ATRIBUTOS PARA CLASSIFICAÇÃO

Durante etapa de desenvolvimento dos classificadores ficou visível, por

meio de testes iniciais, que trabalhar com todos os genes disponíveis na base de

dados seria uma tarefa complexa, de grande esforço computacional e de


11

pequeno retorno para o processo de classificação. Desta forma, os dados foram

trabalhados e os 7129 genes foram classificados quanto a sua variabilidade, o

que nos garante sua influência ou relevância sobre todo o conjunto genético e

conseqüentemente sobre o processo classificatório.

3.3 IMPLEMENTAÇÃO DOS MÉTODOS

Para todos os métodos apresentados foi utilizado como ferramenta

computacional o software Matlab.

3.3.1 KNN

Para implementar o algoritmo do KNN temos que, sendo pi um ponto

pertencente às observações dos dados de teste (Stest - a serem classificados), qj às

observações de treinamento (Strain - já classificados) e D(pi, qj) a distância entre pi e

qj, o pseudo-algoritmo para a implementação do método KNN deve ser:

Para todo pi є Stest

 Calcular D(pi, qj) para todo qj є Strain;

 Escolher k pontos com as menores distâncias em relação à pi;

 Contar número de classes para cada classe dentro dos k pontos;

 Escolher a classe de pi de acordo com o maior número de classes

contadas.
12

Para a escolha do valor de k a ser adotado, executou-se o método KNN para

uma faixa de valores de k. O valor mais baixo dentre aqueles com menor erro foi

escolhido.

3.3.2 Perceptron simples

No algoritmo apresentado abaixo, xi é o ponto da massa de dados de

treinamento, di é a classificação desejada para esse ponto, yi é a saída calculada

pelo perceptron considerando-se os pesos atuais e η é a taxa de aprendizado:

1) Inicializar as conexões wij;

2) Repetir

 para cada par de treinamento (xi, di)

o calcular yi

o ajustar os pesos w(n+1) = w(n) + η(d-y)x

 até que yi = di para todos os pares (xi,di), ou respeitando um

valor de erro admissível.

Para cada época – ajuste de pesos para todos os pares de treinamento (1

passo dentro do item 2) – é calculado o erro. Se o mesmo for abaixo de um limiar

desejado ou o número máximo de épocas for atingido, o algoritmo é finalizado e

retorna os pesos da rede. Esses pesos são utilizados pelo perceptron na massa de

dados de teste, para comparar sua aproximação com os dados reais.


13

3.3.3 Multilayer Perceptron

Para implementar a rede com várias camadas, denominada Multilayer

Perceptron, foi utilizado o toolbox de redes neurais nativo do software Matlab que

pode ser chamado por meio do comando newff.

4 RESULTADOS OBTIDOS

O KNN e o Perceptron simples apresentaram resultados ruins, muito

próximos do aleatório (50% de acerto para 2 classes), como pode ser verificado

na Figura 2 e na Figura 3.
14

A B

Figura 2 – (A) Resultado do classificador KNN para k=1. (B) Resultado do classificador
KNN para k=2 (k ótimo). (C) Variação do erro do classificador KNN.
15

A B

Figura 3 – (A) Resultado do classificador Perceptron simples para os dados de


treinamento. (B) Perceptron simples para os dados de validação. (C) Massa de dados de
treinamento utilizada para o algoritmo do Perceptron simples.

O gráfico de erro do Perceptron, Figura 4, é suficiente para indicar que o

erro é bem aleatório, e não diminui com o número de genes, o que significa que

um neurônio somente não conseguiu classificar bem os dados. O KNN também

apresentou um porcentual de erro alto, mesmo utilizando o valor ótimo de K (que

produzia menor erro).


16

Figura 4 – Variação do erro do classificador Perceptron simples.

O próximo passo então foi utilizar uma rede multicamadas (MLP), pois a

camada intermediária de neurônios é conhecida por ter capacidade de modelar

não só processos não-lineares, mas também processos descontínuos.

O algoritmo MLP apresentou erros menores com um conjunto de 300

genes, sendo este valor escolhido como valor ótimo, do que com 50 genes, valor

inicialmente escolhido para as análises. Para todos os testes realizados o valor

limite para o número de épocas foi sempre 300. Os erros obtidos foram

razoáveis, mas bem melhores do que aqueles obtidos com o KNN e Perceptron

simples. Foram realizados testes com 10, 19 e 20 neurônios na primeira camada.

Também foram realizados testes com 3 camadas, mas não foi possível perceber

alteração significativa no desempenho da rede. Devido a característica da rede

MLP de gerar um resultado em float, foi necessário uma função de ativação: se

resultado > 0.5, então classe 1, senão classe 0 para definição da resposta do

classificador.
17

A B

Figura 5 – (A) Resultado do classificador MLP (10 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
18

A B

Figura 6 – (A) Resultado do classificador MLP (10 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.
19

A B

Figura 7 – (A) Resultado do classificador MLP (19 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
20

A B

Figura 8 – (A) Resultado do classificador MLP (19 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.
21

A B

Figura 9 – (A) Resultado do classificador MLP (20 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 300 genes. (B) Aproximação para os
dados de validação. (C) Variação do erro ao longo das épocas.
22

A B

Figura 10 – (A) Resultado do classificador MLP (20 neurônios na entrada, 1 na saída)


durante treinamento e considerando um conjunto de 50 genes. (B) Aproximação para os dados
de validação. (C) Variação do erro ao longo das épocas.

Ainda considerando a análise dos resultados, é importante mencionar a

grande superposição de dados, o que proporciona dificuldades interessantes para os

métodos, e conseqüentemente, erros.

Apesar de todos serem métodos de classificação, apenas o perceptron e sua

variação com múltiplas camadas podem ser considerados uma rede neural devido à

sua capacidade de aprendizado. O KNN guarda toda a base de dados para si e

efetua comparações. Ainda com relação ao KNN, pode-se perceber que o erro

assumiu valores bastante elevados ao se aumentar o valor de k (k acima de 2).


23

Quando uma superfície é muito não-linear, o classificador KNN acaba perdendo sua

generalização, que é o fato de ser capaz de se aproximar à função que gerou os

dados, ao contrário de se aproximar dos dados. Tal análise justifica o grande erro

encontrado para k > 2, como apresentado anteriormente.

Dentre os métodos utilizados, a rede MLP teve o melhor desempenho por ser

a única capaz de classificar os dados e, além disso, apresentar um erro percentual

aceitável (Erro percentual de treinamento: 5.2 e Erro percentual de validação: 21.4).

5 CONCLUSÃO

Esse trabalho apresentou os métodos de classificação KNN, perceptron

simples e perceptron com múltiplas camadas (MLP). Os métodos foram utilizados

para classificar uma base de dados com pacientes portadores de leucemia, e,

devido a estrutura da massa de dados, expressão genética, apenas a rede MLP

apresentou um desempenho aceitável tendo-se em vista a grande superposição de

dados. As camadas adicionais implementadas por meio da rede MLP contribuíram

bastante para a construção de um classificador de melhor qualidade. Para melhorar

o desempenho dos classificadores, pode-se aproveitar do uso de técnicas mais

recentes que focam na análise da base de dados inicial e sua relevância na

classificação.

Como destaques devem ser mencionados a razoável facilidade de

implementação dos códigos dos classificadores no Matlab e a rapidez apresentada


24

na resposta dos mesmos, o que acarreta em um reduzido esforço computacional

para implementação dos classificadores.


25

REFERÊNCIAS

Haykin, S. Neural Networks – A Comprehensive Foundation. Second Edition,


Prentice Hall (2005).

Nigsch, F., Bender, A., van Buuren, B., Tissen, J., Nigsch, E., Mitchell, J. B. O.
Melting Point Prediction Employing k-Nearest Neighbor Algorithms and Genetic
Parameter Optimization. J. Chem. Inf. Model. 2006, 46, 2412-2422

Hristozov, D., da Costa, F. B., Gasteiger, J. Sesquiterpene Lactones-Based


Classification of the Family Asteraceae Using Neural Networks and k-Nearest
Neighbors. J. Chem. Inf. Model. 2007, 47, 9-19

Huber, Wofgang, von Heydebreck, Anja, Vingron, Martin. Analysis of microarray


gene expression data. 02 de abril de 2003.

T.R. Golub, D.K. Slonim, P. Tamayo, C. Huard, M. Gaasenbeek, J.P. Mesirov, H.


Coller, M.L. Loh, J.R. Downing, M.A. Caligiuri, C.D. Bloomfield, and E.S. Lander.
Molecular classification of cancer: Class discovery and class prediction by gene
expression monitoring. Science, 286:531–537, 1999.

Molecular Classification of Cancer: Class Discovery and Class Prediction by Gene


Expression (GOLUB Dataset). Disponível em < http://www.broadinstitute.org/cgi-
bin/cancer/publications/pub_paper.cgi?mode=view&paper_id=43> Acesso em 12 de
junho de 2010.

S-ar putea să vă placă și